Ya Halooo....!!
First Post dalam blog ini adalah tutorial
menampilkan bilangan prima dan mengisinya dalam sebuah file txt menggunakan bash
script. Kenapa bilangan prima yang dipilih?
Pertama, karena dalam membuat sebuah
script, dasar yang dibutuhkan adalah menampilkan sesuatu (echo), if statement,
perulangan, dan juga sedikit aritmatika.
Kedua, karena bilangan prima adalah contoh
sederhana yang mudah dipahami hehe..
Sebelum membahas soal scriptnya, mari kita
pahami sedikit tentang bash command untuk linux.
Apa itu bash command?
Bash command adalah perintah-perintah yang
digunakan di terminal (seperti command prompt pada windows) untuk mengatur
file, waktu, user, sistem operasi, dan lain-lain pada sistem operasi linux.
Bash command inilah yang nanti akan digunakan dalam menjalankan sebuah script.
Contoh bash command :
1. ls : menampilkan informasi tentang file
dalam sebuah direktori
2. pwd : Print Working Directory,
menampilkan direktori saat ini
3. mkdir : membuat folder baru
4. chmod : mengubah izin akses dari file
dan direktori
5. chown : mengganti kepemilikan file user
dan grup
6. chroot : mengganti direktori root
7. sudo : mengubah identitas user
8. grep : mencari file untuk baris yang
sesuai dengan pola yang diberikan
9. ps : Process status
10. halt : menghentikan dan restart OS
11. cd : Change Directory, mengubah
folder yang bekerja
12. rm : menghapus file
13. mv : memindahkan atau rename file atau
direktori
14. date : menampilkan atau mengubah
tanggal dan waktu
15. free : menampilkan pemakaian memori
16. whoami : menampilkan id user dan nama
yang bekerja
17. which : menampilkan lokasi program
file dalam path user
18. touch : membuat sebuah file kosong
Setelah mengetahui bash command, mari kita
mulai membahas tentang shell script...
Shell script adalah beberapa perintah yang
ditulis dengan plain text file untuk 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.
Shell script dapat berupa bash script, c shell script, korn shell
script dan lain-lain.
Sekarang untuk membuat script bilangan
prima, kita perlu mengetahui tentang cara menampilkan sesuatu (echo), kondisi
if, dan perulangan.
Echo
Echo adalah perintah untuk menampilkan
sesuatu
Contoh :
echo 10
Maka terminal akan menampilkan output :
10
Untuk dapat menulisnya dalam sebuah file, maka setelah echo
ditambahkan “> (nama file)” atau “>> (nama file)”
> (nama file) : untuk meng-overwrite file dan menggantinya
dengan yang baru
>> (nama file) : untuk meng-update isi dari file
Contoh :
echo 10
>> angka.txt
Maka output akan tertulis dalam file angka.txt :
10
If statement
If statement adalah suatu perintah penyeleksian kondisi, contohnya
jika … maka …
Sintaks dari if statement dalam bash script adalah
if [kondisi]
then
…
fi
Dalam if statement, untuk menyeleksi suatu kondisi maka diperlukan
suatu perbandingan dengan beberapa command berikut :
-eq : sama dengan (“==”)
-ne : tidak sama dengan (“!=”)
-lt : lebih kecil dari (“<”)
-le : lebih kecil atau sama dengan (“<=”)
-gt : lebih besar dari (“>”)
-ge : lebih besar atau sama dengan (“>=”)
Contoh if statement :
if [ 1 –lt 10 ]
then
echo “angka 1 lebih
kecil dari 10”
fi
Outputnya adalah :
angka 1 lebih kecil dari 10
Selain if, ada juga if – else. If – else adalah suatu penyeleksian
kondisi dan jika kondisi tersebut tidak terpenuhi maka akan menjalankan else
nya.
Sintaks dari if-else
if [kondisi]
then
…
else
…
fi
Contoh if – else :
if [11 –lt 10]
then
echo “angka 11
lebih kecil dari 10”
else
echo “angka 11
lebih besar dari 10”
fi
output :
angka 11 lebih besar dari 10
Perulangan
Dalam bash script terdapat beberapa
statement perulangan yaitu perulangan for, while dan until.
Perulangan for
Perulangan for adalah perulangan untuk
melakukan sesuatu dalam kondisi tertentu.
Sintaksnya adalah :
for (nama variabel) in (kata);
do
…
Done
Contoh :
for i in seq 1 5;
do
echo
i
done
output
:
1
2
3
4
5
Penjelasan : seq adalah perintah untuk
menjalankan deretan angka dari angka pertama hingga angka kedua. Jadi seq 1 5
dapat diganti dengan 1 2 3 4 5.
Perulangan while
While adalah perintah yg digunakan untuk
mengulangi sesuatu selama kondisi tersebut memenuhi.
Sintaksnya adalah
while [kondisi];
do
…
Done
Contoh :
i=1
while [$i –lt 5];
do
echo
i
i=$i+1
done
output :
1
2
3
4
Perulangan until
Until adalah kebalikan dari while,
perintah ini akan menjalankan sesuatu selama kondisi tersebut salah. Sintaksnya
mirip dengan while, hanya merubah kata while menjadi until.
Contoh :
i=1
until [$i –gt 5];
do
echo
i
i=$i+1
done
output :
1
2
3
4
5
Input
Setelah mengetahui echo, if, dan
perulangan, kita perlu mengetahui cara menginputkan sesuatu kedalam program. Ada
beberapa cara menginputkan sesuatu kedalam program. Yang akan dibahas dalam
post ini adalah cara menginputkan menggunakan parameter dan read.
Input menggunakan parameter
Input menggunakan parameter yaitu
memasukan input setelah menuliskan nama script.
Sintaksnya :
./(nama
script) (parameter1) (parameter2) (…);
Contoh menggunakan 1 parameter :
./namascript.sh 5
Output :
5
Keterangan :
Dalam script namascript.sh perintah yang
digunakan adalah :
echo $1
yaitu perintah menampilkan sesuatu dalam
parameter1.
Contoh menggunakan 2 atau lebih
parameter :
./namascript2.sh 5 7 9
Output :
Parameter 1: 5
Parameter 2 : 7
Parameter 3 : 9
Keterangan :
Dalam script namascript2.sh perintah
yang digunakan adalah :
echo Parameter 1 : $1
echo Parameter 2 : $2
echo Parameter 3 : $3
Input menggunakan read
Read adalah perintah untuk menginputkan
saat program meminta input
Sintaksnya
read (variabel)
contoh:
read a
echo inputnya adalah $a
input : 5
output :
inputnya adalah 5
Setelah memahami hal-hal diatas, mari
kita mulai membahas script bilangan prima yaitu menuliskan bilangan prima dari
2 hingga angka yang kita inputkan.
Pertama, untuk memulai sebuah bash
script perlu diawali dengan :
#!/bin/bash
Setelah itu, mari kita mengawali script
tersebut dengan menginisialisasi input dari parameter 1 dengan:
input=$1
Setelah memeberi input pada program,
mari kita membuat file txt untuk menyimpan hasil output dari program kita
dengan command touch sebagai berikut:
touch
prima.txt
Setelah memberi input dan membuat file,
mari kita mulai dengan perulangan untuk menentukan angka yang akan dicetak
adalah prima atau bukan dengan variabel i:
for
i in `seq 2 $input`;
do
….
done
Perintah for ini akan mengawali
pengecekan angka dari angka 2 hingga angka yang kita inputkan dalam parameter
1.
Kenapa memulai dari 2?
Karena pastilah kita sudah dajarkan pada
sekolah dasar angka prima awal adalah 2 bukan 0 atau 1.
Setelah itu, mari kita isi … dengan
beberapa perintah…
Sebelum memulai perhitungan mari kita
memberi penanda terlebih dahulu. Penanda ini berguna untuk menandai apakah
angka yang akan dicetak itu prima atau bukan. Kita akan memberi penanda dengan
variabel “divisible” yang nantinya diisi angka 0 atau 1 dimana 0 adalah angka
tersebut prima alias tidak habis dibagi selain dengan angka 1 atau angka
tersebut sendiri, dan 1 menandakan angka tersebut bukan prima alias habis
dibagi angka diantara 1 hingga angka tersebut. Sebelum itu, mari kita
inisialisasi divisible dengan 0 :
divisible=0
setelah itu mari kita membuat perulangan
untuk mengetes bilangan tersebut prima atau bukan mulai dari angka 2 sampai
angka yang akan dicetak (i) dengan variabel pembaginya adalah j:
for j in
`seq 2 $i`;
do
…
done
Dalam … yang ke-2 kita awali dengan
memberi if statement jika sudah sampai angka i maka keluar dari perulangan dengan
perintah if dan break :
if
[ $i -eq $j ];
then
break
fi
perintah break adalah perintah untuk
keluar dari loop(perulangan) sebelumnya.
Setelah itu, kita memulai penentuan
untuk bilangan prima dengan menentukan i habis dibagi dengan j atau tidak seperti
yang dijelaskan sebelumnya dengan menggunakan penanda divisible. Cara menentukan
habis dibagi adalah menggunakan modulus yaitu “%” jika hasil modulus adalah 0
maka habis dibagi. Jadi scriptnya adalah :
if
[ $(( i%j )) -eq 0 ];
then
divisible=1
break
fi
jika angka yang akan dicetak (i) habis
dibagi dengan angka diantara 1 dan i, maka penanda akan berubah menjadi 1
menandakan angka tersebut bukan prima.
Setelah selesai dengan perulangan untuk
mengecek bilangan tersebut prima atau bukan, maka kita akan mencetak bilangan prima
tersebut dengan menggunakan if statement, echo, dan “>>”.
If statement berguna untuk melihat
kondisi penanda (divisible) adalah 0
atau bukan. Jika divisible adalah 0 maka bilangan tersebut adalah prima.
Echo berguna untuk mencetak bilangan
prima tersebut.
“>” digunakan untuk meng-overwrite
isi dari file .txt dan mencetak bilangan prima pertama yaitu 2
“>>” berguna untuk mencetak
bilangan prima dalam file yang sudah dibuat sebelumnya (prima.txt) .
Kita akan menuliskan script dibawah ini
setelah perintah done pada for yang ke-2.
if
[ $divisible -eq 0 ];
then
then
echo
$i >prima.txt;
else
echo
$i >>prima.txt
fi
fi
inilah akhir dari … dari for yang
pertama. Maka semuanya selesai dan diakhiri dengan done.
Berikut ini adalah contoh script
lengkapnya :
#!/bin/bash
input=$1
touch prima.txt
for i in `seq 2 $input`;
do
divisible=0
for
j in `seq 2 $i`;
do
if
[ $i -eq $j ];
then
break
fi
if
[ $(( i%j )) -eq 0 ];
then
divisible=1
break
fi
done
if
[ $divisible -eq 0 ];
then
if [$i –eq 2];
then
echo
$i >prima.txt;
else
echo
$i >>prima.txt
fi
fi
done
setelah menulis script, mari kita simpan
script tersebut dengan ekstensi .sh contoh nama script adalah prime.sh dalam
sebuah folder (contoh desktop).
Setelah menyimpan script, mari kita
masuk ke terminal untuk menjalankan script tersebut. Kita mulai dengan masuk ke
folder dimana script itu disimpan (desktop) dengan bantuan command pwd, cd
namafolder dan ls (untuk melihat file dalam folder).
Setelah sampai pada folder tersebut,
kita mulai dengan mengubah permission file tersebut agar dapat dieksekusi
dengan command :
chmod +x prime.sh.
Lalu setelah mengubah permission, kita
jalankan script tersebut dengan menuliskan :
./prime.sh (input)
Setelah kita jalankan script tersebut,
kita akan mendapat sebuah output berupa file prima.txt yang berisikan hasil
bilangan prima yang dicetak. Ada tidaknya file output ini dapat dicek melalui command
ls atau langsung melihat dalam folder dimana kita menyimpan script tersebut.
File prima.txt dapat dibuka menggunakan text editor atau menggunakan command
nano prima.txt .
Contoh input :10
./prime.sh 10
Output dalam file prima.txt:
2
3
5
7
Sekian post kali ini, semoga bermanfaat J See you next time!!