Friday, 25 September 2015

MENERJEMAHKAN BAHASA C KE DALAM BENTUK BASH SCRIPT

SHELL SCRIPTING

Shell adalah sebuah command-line interpreter yang bertugas untuk menterjemahkan perintah yang diinputkan oleh pengguna secara langsung ke dalam sistem melalui terminal sebagai antar muka tampilannya (sejenis platform windows). Fungsi utama dari shell scripting adalah mengotomasi perintah – perintah yang sudah biasa kita gunakan sehingga kita tidak perlu menuliskan setiap kali dengan cara yang berulang dan lengkap tapi cukup dengan fungsi yang telah kita buat. Salah satu jenis shell yang paling umum digunakan adalah BASH (Bourne-Again Shell) yang diciptakan oleh Bryan Fox pada tahun 1988.

Bash command line for linux
-------------------------------------------------------------
lsList information about file(s)
pwdPrint working directory
mkdirCreate new folder(s
chmodChange the access permissions of files and directories(s)
chownChange the user and group ownership of files
chrootChange root directory
sudoSubsitute user identity
grepSubsitute Search file(s) for lines that match a given pattern
psSubsitute Process status
haltStop and restart the operating system
cdChange directory – change the current working folder
rmRemove files
mvMove or rename files or directories
dateDisplay or change the date & time
freeDisplay memory usage
whoamiPrint the current user id and name (‘id –un’)
whichLocate a program file in the user’s path

Arithmetic Comparisons
-------------------------------------------------------------
-lt<
-gt>
-le<=
-ge>=
-eq==
-ne!=

Contoh penerapan codingan bahasa C ke dalam bash script
-----------------------------------------------------------------------
MASALAH :

    Indra diberi tugas oleh dosennya untuk merubah codingan program bilangan prima dari bahasa C ke bash script.
Input : baris pertama berisi bilangan n
Output : semua bilangan prima <= n
Contoh:
5
2 3 5

10
2 3 5 7
Bantulah indra untuk menyelesaikan tugasnya ini!

SOLUSI :

                >> Codingan dalam bahasa C
                 >> Codingan dalam bash script


PENJELASAN :
Bilangan prima adalah bilangan yang hanya mempunyai dua faktor pembagi yaitu satu dan bilangan itu sendiri. Maka untuk menentukan berapa jumlah faktor pembaginya, kita harus mencoba membagi bilangan tersebut dengan bilangan - bilangan sebelum dirinya. Jika ternyata faktor pembaginya hanya dua maka outputkan bilangan tersebut sebagai bilangan prima.

Langkah - Langkah
1. Pertama siapkan 5 buah variabel. Dalam devC dibutuhkan inisialisasi awal (ex. int i,n,j,x,flag) sedangkan dalam terminal tidak dibutuhkan inisialisasi.

2. Dalam kasus ini tentu kita membutuhkan input sebagai bilangan batasan maka code dalam devC scanf("%d",&n) yang artinya kita meminta inputan integer(%d) untuk menjadi nilai dari variabel n. Sedangkan code pada terminal input=$1 yang artinya satu inputan dari user yang dibatasi oleh spasi akan menjadi nilai dari variabel input.

3. Operasi bilangan prima tidak akan lepas dari operasi dasar pembagian. Maka dari itu kita butuh bilangan awal sebagai pembilang yang didapatkan dari looping/perulangan pertama yang dimulai dari 2 karena 1 dan 0 sudah pasti bukan bilangan prima.Code dalam devC akan tampak seperti for(i=2;i<=n;i++)  maka setiap pembilang akan masuk dalam operasi looping untuk ditentukan apakah dia bilangan prima atau bukan, setelah itu pembilang akan berganti ke bilangan selanjutnya. Begitu seterusnya hingga bilangan ke-n. Sedangkan code dalam terminal akan tampak seperti for i in `seq 2 $input`; yang artinya sama seperti dalam devC tetapi variabel input yang menjadi batasan.

4. Setiap pembilang di inisialisasikan bahwa jumlah pembaginya masih nol yang dinyatakan dalam code flag=0 baik dalam devC maupun terminal.

5. Dalam operasi pembagian selain membutuhkan pembilang, tentu kita membutuhkan penyebut. Nah penyebut ini bisa didapat dari looping/perulangan kedua yang dimulai dari 1. Karna 1 adalah syarat untuk menentukan apakah sang pembilang merupakan bilangan prima atau bukan.

6. Setelah mendapatkan nilai untuk pembilang dan penyebut maka kita lakukan operasi pembagian dengan code di devC x=i%j yang berarti nilai untuk variabel x adalah sisa bagi dari pembagian i dan j. Begitu pula pada terminal. Jika sisa bagi adalah 0 maka penyebut itu merupakan faktor pembagi sang pembilang. Dan jangan lupa untuk menambahkan nilai flag sebagai jumlah faktor pembagi dengan code dalam devC flag++; sedang dalam terminal berupa flag=$flag+1.

7. Lalu setiap pembilang di cek apakah memiliki 2 faktor pembagi atau tidak. Jika ya maka outputkan pembilang sebagai bilangan prima dengan code dalam devC printf("%d",i) dan pada terminal echo "$i". Step ke 4 sampai ke 7 akan terus berulang sampai batasan terakhir sesuai permintaan user.

Semoga bermanfaat terima kasih!