Thursday, September 24, 2015

Shell Scripting Bilangan Prima

Halo gimana kabarnya semua? semoga baik-baik aja yah hehe. Oh iya Selamat Hari Raya Idul Adha bagi yang merayakan ya (bagi dagingnya dong hehe :p).

Kali ini gue mau ngasih bash script tentang bilangan prima, jadi disini gue bakal ngasih inputan sebuah angka, lalu dimunculkan antgka prima apa saja sampe pada angka inputan tadi. Gausah banyak ngomong lagi sikat aja ini diaaa...

Awalnya itu kita buka terminal bisa dengan cara cepat di ctrl+alt+t.

Masuk sudo su. Sudo su ini artinya kita masuk sebagai super user yang bisa mengakses hampir segala aktivitas di terminal

Terus setelah masuk sebagai super user. Kita ketik nano namafile.sh. Nano itu sebagai editor untuk mengcoding shell script. Kenapa nama extensi file nya itu .sh? Karena .sh itu yang bisa di eksekusi di terminal linux. Lalu coding di bawah ini

#!/bin/bash
angka=$1
for i in `seq 1 $angka`;
do
        cek=0
        for j in `seq 2 $angka`;
        do
                if [ $(( i%j )) -eq 0 ];
                then
                let "cek=$cek+1"
                fi
        done
                if [ $cek -eq 1 ];
                then
                echo $i
                fi
done

Setelah itu kita ketik chmod 777 namafile.sh. chmod 777 itu untuk mengubah permission untuk file tersebut agar bisa di read, write, dan execute.

Untuk menjalankan file tersebut kita ketik ./namafile.sh

Jadi gini penjelasannya untuk codingan di atas, untuk angka=$1 itu angka inputannya.

Buat baris selanjutnya itu memulai looping(perulangan) dimulai dari angka 1 sampe berhenti pada angka inputan di deklarasi sebagai i.

Lalu gue bikin cek atau flag nya atau penanda nya itu 0 setiap kali sebelum memasuki looping kedua.

Di looping kedua kali ini di mulai dari angka 2 sampe angka inputan di deklarasi sebagai j, karena gue bakal bagi ngelakuin i%j (i mod j).

Jika i%j sisa hasil bagi nya adalah 0,  maka gue naikin "cek"(flag/penanda) gue tadi jadi 1. Lalu keluar dr kondisi i%j=0 dan di cek apakah cek=1 atau engga. Karena bilangan prima itu bilangan yang bisa hanya bisa di bagi 1 dan bilangan itu sendiri, maka cek itu pasti 1, karena cek hanya akan naik dari 0 jadi 1 ketika i%j hasil baginya 0. Terus di keluarin deh angka-angka di variabel i.

Contohnya inputan gue adalah 3, lalu masuk looping dimulai dari 1, lalu masuk looping lagi di mulai dari 2, karena 1%2 hasil baginya bukan 0, terus ulang lagi ke j nya 3, dan 1%3 hasil baginya bukan 0, jadi 1 itu bukan prima.

Terus ulang lagi dari cek=0 karena looping untuk j itu udah selesai karena perintah loopingnya selesai ketika j sampai angka inputan, terus di mulai lagi i berikutnya yaitu 2, j nya juga 2, karena 2%2 hasil baginya adalah 0, lalu cek gue naikin dari 0 jadi 1, terus gue keluar dari kondisi i%j=0, dan masuk di kondisi apakah cek=1, karena benar cek gue sama dengan 1, terus gue munculin angka i tadi yaitu 2.


Lalu masuk lagi ke cek=0 dan di ulang lagi perintahnya kayak di atas ini, untuk i angka 3, begitulah seterusnya sampe nanti hasilnya yang keluar adalah angka 2 dan 3. Ini contohnya di bawah




Gimana? Simpel kan? hehe makasih yah udah baca blog gueee semoga lo semua bahagia hari ini. Have a great day!:)