Praktikum 6-A dan 6-B Pemrograman Shell
Fara Aurin
Salsabila
BM5A
Praktikum 6-A
dan 6-B Pemrograman Shell
POKOK BAHASAN
:
ü Pemrograman Shell
TUJUAN
BELAJAR :
Setelah
mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
ü Mempelajari elemen dasar shell
script
ü Membuat program shell interaktif
ü Menggunakan parameter dalam program
ü Mempelajari test kondisi serta
operator logic yang terkait dengan instruksi test
ü Mengenal variable built-in dari
shell
ü Membuat aplikasi dengan shell
menggunakan konstruksi if-then-else
ü Menggunakan struktur case – esac
ü Loop dengan while, for, do while
ü Membuat fungsi dan mengetahui cara
memanggil fungsi tersebut
DASAR TEORI :
1. INSTRUKSI
TEST
Instruksi test digunakan untuk memeriksa kondisi dari
sebuah ekspresi. Ekspresi terdiri dari factori dan operator yang dipisahkan
oleh spasi. Hasil test akan memberikan nilai berupa status exit, yaitu 0 bila
ekspresi sesuai, bila tidak maka hasilnya adalah tidak sama dengan nol.
Tanda [ sebenarnya adalah nama lain dari test,bedanya
[ akan mencari kurung penutup ] pada akhir ekspresi yang harus dipisahkan oleh
spasi.
2. LOGICAL
&& DAN || (SHELL LEVEL)
Notasi && dan || digunakan untuk menggabungkan
instruksi shell sebagai alternative dari if then else. Notasi && dan ||
sering ditemukan pada shell script system administrator untuk menjalankan
routine dari system operasi.
- instruksi1 && instruksi2
shell akan mengeksekusi instruksi1, dan bila exit
status instruksi1 adalah false, maka hasil dari AND tersebut sudah pasti sama
dengan FALSE, sehingga instruksi2 tidak mempunyai pengaruh lagi. Oleh karna itu
instruksi2 tidak dijalankan. Sebaliknya bila hasil instruksi1 adalah true/0,
maka instruksi2 dijalankan.
- instruksi1 || instruksi2
shell akan mengeksekusi instruksi1, dan bila exit
status adalah TRUE(0), hasil dari operasi OR tersebut sudah pasti menghasilkan
TRUE, terlepas dari hasil eksekusi instruksi2. Oleh karena itu instruksi2 tidak
perlu dijalankan. Bila hasil instruksi1 adalah FALSE, maka instruksi2 akan
dijalankan.
3. OPERATOR
BILANGAN BULAT UNTUK TEST
Untuk membandingkan 2 buah bilangan, test memerlukan
operator yang berbeda dengan string.
4. OPERATOR
LOGICAL (TEST LEVEL)
Logical operator terdiri dari AND(-a), OR(-o), dan
NOT(!). Operator ini menggabungkan hasil ekspresi sebagai berikut :
5. KONSTRUKSI
IF THEN ELSE IF
Bila status exit tidak sama dengan 0, maka kondisi
menjadi FALSE dan instruksi setelah else akan dijalankan.
6. HITUNGAN
ARITMATIKA
Untuk melakukan perhitungan aritmatik, shell tidak
memiliki kemampuan built-in, tetapi meminta bantuan program lain yaitu `expr`.
Program expr berfungsi untuk mengevaluasi suatu expresi baik itu perbandingan
string atau operasi aritmatik sederhana. Operator aritmatik yang disediakan
expr antara lain:
Selain digunakan untuk perhitungan aritmatik, perintah
`expr` juga cukup handal untuk melakukan manipulasi string, untuk lebih jelas
silahkan lihat halaman manual dari expr dengan mengetikkan `man expr`.
7. INSTRUKSI
EXIT
Program dapat dihentikan (terminated/selesai) dengan
intruksi exit. Sebagai nilai default program tersebut akan memberikan status
exit 0.
8. KONSTRUKSI
CASE
Case digunakan untuk menyerdehanakan pemakaian if yang
berantai, sehingga dengan case, kondisi dapat dikelompokkan secara logis dengan
lebih jelas dan mudah untuk ditulis.
Case diakhiri dengan esac dan pada setiap kelompok
instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *) yang berarti adalah
“default”, bila kondisi tidak memenuhi pola sebelumnya.
9. KONSTRUKSI
FOR
For digunakan untuk perulangan dengan menggunakan variable
yang ada pada setiap perulangan akan diganti dengan nilai yang berada pada
daftar (list).
10. KONSTRUKSI
WHILE
Pernyataan perulangan ini umumnya digunakan untuk
melakukan perulangan dengan kondisi tertentu, di mana perulangan akan terus
dilakukan dalam blok while selama ekspresi yang menjadi syarat masih dipenuhi
(bernilai benar). Untuk ilustrasi, dapat dilihat pada gambar Sedangkan mengenai
bentuk dari pernyataan ini adalah:
While digunakan untuk perulangan instruksi, yang
umumnya dibatasi dengan sustu kondisi. Selama kondisi tersebut true, maka
pengulangan akan terus dilakukan. Loop akan berhenti, bila kondisi false, atau
program keluar dari blok while melalui exit atau break.
11. INSTRUKSI
DUMMY
Instruksi dummy adalah instruksi yang tidak melakukan
apa-apa, namun isntruksi ini memberikan status exit 0 (TRUE). Oleh karna itu,
instruksi dummy dapat digunakan sebagai kondisi forever pada loop (misalnya
while).
Symbol instruksi dummy adalah => :
12. FUNGSI
Hampir sama dengan bahasa pemrograman tingkat tinggi, pada
shell script juga dikenal istilah fungsi. Dimana dengan adanya fungsi kita
dapat membagi kode kita ke dalam sub-sub yang lebih kecil. Hal ini sangat
berguna jika kita membangun sebuah program shell script yang cukup kompleks.
Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan
menggunakan notasi NamaFungsi(). Fungsi memberikan exit status ($?) yang
dinyatakan dengan return nr, atau nilai 0 sebagai default. Membuat fungsi
diawali dengan nama fungsi, parameter, kemudian blok program yang dinyatakan
dalam {…….}. Contoh :
Variabel dapat di definisikan dalam fungsi sebagai
variabel local atau global. Hal yang perlu diperhatikan, nama variable yang
digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama variable yang
sama di luar fungssi, sehingga tidak terjadi isi variable berubah.
PERCOBAAN
Percobaan 1 :
Membuat Shell Script
1. Buatlah file prog01.sh dengan editor vi
$ vi prog01.sh
#!/bin/sh
#Program shel
l#
var1=x
var2=8
Analisa : Membuat file dengan editor vi.
Lalu inputkan code program sesuai modul pada file prog01. Untuk
keluar dari editor tekan esc, lalu ketik :wq! dan enter.
2. Untuk menjalankan shell, gunakan notasi TITIK di
depan nama program
$ . prog01.sh
Analisa : Untuk menjalankan file tersebut, gunakan .(spasi)nama
file.sh
3. Untuk menjalankan shell, dapat juga dengan membuat
executable file dan dieksekusi relatif dari current directory
$ chmod +x
prog01.sh
$ ./prog-1.sh
Analisa :
· Gunakan perintah $ chmod +x untuk membuat file menjadi executable
· Gunakan perintah $ ./ untuk menjalankan file yang executable
Percobaan 2 :
Variabel
1. Contoh menggunakan variable pada shell interaktif
$ VPT=poltek
$ echo $VPT
Analisa :
· Perintah VPT untuk mengisi file VPT
· Perintah echo $VPT digunakan untuk melihat isi VPT
2. Pemisahan 2 kata dengan spasi menandakan eksekusi 2
buah instruksi. Karakter $ harus ada pada awal nama variable untuk melihat isi
variable tersebut, jika tidak, maka echo akan mengambil parameter tersebut
sebagai string.
$ VPT2=poltek
negeri Jakarta (Terdapat pesan error)
$ VPT2=”poltek
negeri Jakarta”
$ echo VPT2
$ echo $VPT2
Analisa : Terdapat pesan error sebab pemisahan dengan spasi tanda
menandakan 2 buah instruksi. Agar dibaca sebagai variable, gunakan tanda petik.
3. Menggabungkan dua variable atau lebih
$ V1=poltek
$ V2=’:’
$ V3=jakarta
$ V4=$V1$V2$V3
$ echo $V4
Analisa :
· Membuat 3 variable dengan nama V1,V2, dan V3.
· Untuk menggabungkan ketiga variable diatas, buat
variable ke-4 yang isinya ialah gabungan dari variable V1,V2,V3 dengan
perintah $V4=$V1,$V2,$V3.
· Gunakan perintah $echo $V$ untuk membaca file V4.
4. Menggabungkan isi variable dengan string yang lain.
Jika digabungkan dengan nama variable yang belum didefinisikan (kosong) maka
instruksi echo menghasilkan string kosong. Untuk menghindari kekeliruan, nama
variable perlu diproteksi dengan { } dan kemudian isi variable tersebut
digabung dengan string.
$ echo $V3
$ echo $V3ITS
$ echo ${V3}ITS
Analisa : Perintah $ echo $V3 digunakan untuk membaca isi file V3. Untuk
menggabungkan isi file V3 dengan string”ITS” variable V3 harus diproteksi
dengan {} dan digabungkan dengan string. Jadi perintahnya ${V3}ITS.
5. Variabel dapat berisi instruksi, yang kemudian bila
dijadikan input untuk shell, instruksi tersebut akan dieksekusi
$ CMD=who
$ $CMD
$ CMD=”ls –l”
$ $CMD
Analisa : CMD dapat diisi dengan perintah, tidak harus variable. Karena
kita masukkan who, maka output nya ialah perintah who.
6. Modifikasi file prog01.sh berikut
$ vi prog01.sh
#!/bin/sh
V1=poltek
V2=’:’
V3=jakarta
echo
“Pemrograman shell”
echo $V1$V2$V3
V3=ITS
echo $V1$V2 di
$V3
Analisa : Untuk menginputkan code program, gunakan
cara yang sama pada percobaan 1. Arti dari program diatas ialah pertama akan
mencetak “Pemrograman shell”. Lalu membuat variable V1, V2, dan V3. Kemudian
membuat variable V3(ITS). Gabungkan variable V1 dengan V2 dan ditambah dengan
V3.
7. Cara sederhana mengeksekusi shell adalah dengan
menggunakan notasi titik di depan nama shell script tersebut. Bila direktori
actual tidak terdaftar dalam PATH, maka command tersebut tidak dapat ditemukan.
Bila script belum executable, script tidak dapat dieksekusi.
$ . prog01.sh
$ prog01.sh
(Terdapat pesan error)
$ ./prog01.sh
(Terdapat pesan error)
$ chmod +x
prog01.sh
$ ./prog01.sh
Analisa : Terdapat pesan error sebab perintah
tersebut bukan untuk mengeksekusi file .sh.
Percobaan 3 :
Membaca keyboard
1. Menggunakan instruksi read
$ read nama
amir
$ echo $nama
Analisa :
Untuk memasukkan nilai kedalam variable juga bisa
melalui keyboard dengan menggunakan instruksi read. Bisa juga membaca isi variable nama dengan
perintah echo $(nama variable)
2. Membaca nama dan alamat dari keyboard
$ vi prog02.sh
#!/bin/sh
# prog02.sh
# membaca nama
dan alamat
echo “Nama Anda
: “
read nama
echo “Alamat :
“
read alamat
echo “Kota : “
read kota
echo
echo “Hasil
adalah : $nama, $alamat di $kota”
Analisa :
· Pertama kita mencetak “nama anda :”. Kemudian kita
akan disuruh memasukkan nama kita yang akan disimpan dalam variable
nama(perintah read nama).
· Selanjutnya program akan mencetak “alamat:”. Lalu masukkan alamat kita
yang akan disimpang didalam variable alamat(perintah read alamat). Maka program
akan mencetak “kota:”.
· Kemudian kita akan disuruh memasukkan kota kita yang akan disimpan
didalam variable kota (perintah read kota). Hasil akhir program akan mencetak
“hasil adalah: (nama yang kita inputkan),(alamat yang kita inputkan), di
kota kota yang kita inputkan)”
3. Eksekusi program prog02.sh
$ . prog02.sh
Nama Anda :
Amir
Alamat :
Jl Margonda 67
Kota :
Depok
Hasil adalah :
Amir, Jl Margonda di Depok
Analisa : Outputnya sesuai dengan yang kita harapkan di
percobaan 3 nomor 2.
4. Instruksi echo secara otomatis memberikan baris
baru, maka untuk menghindari hal tersebut disediakan opsi – n, yang menyatakan
kepada echo untuk menghilangkan baris baru. Modifikasi program prog02.sh
$ vi prog02.sh
#!/bin/sh
# prog02.sh
# membaca nama
dan alamat
echo –n “Nama Anda
: “
read nama
echo –n “Alamat
: “
read alamat
echo –n “Kota :
“
read kota
echo
echo “Hasil
adalah : $nama, $alamat di $kota”
Analisa : Program ini sama dengan sebelumnya, hanya
saja ditambahkan –n. Artinya menghilangkan baris baru setelah mencetak
kata.
5. Eksekusi program prog02.sh
$ . prog02.sh
Nama Anda :
Amir
Alamat : Jl
Margonda 67
Kota : Depok
Hasil adalah :
Amir, Jl Margonda di Depok
Analisa : Dapat dilihat outputnya kita menginputkan
nama, alamat, dan kota berada di samping.
6. Variabel kosong adalah variable yang tidak
mempunyai nilai. Variabel ini didapat atas assignment atau membaca dari
keyboard atau variable yang belum didefinisikan
$ read nama
<CR>
$ echo $nama
$ A=
$ B=””
$ C=$A$B
$ echo $C
Analisa :
- Read nama adalah untuk
mengisi variable nama, kemudina kita menginputkan <CR>dan saat kita
baca dengan echo $nama ternyata isinya adalah <CR>. Variable
tersebut bukan termasuk variable kosong.
- Kemudian kita membuat
variable A tanpa isi, dan variable b tanpa isi juga. Membuat variable
kosong bisa dengan 2 cara diatas. Pertama tanpa ditulisi sama sekali, yang
kedua diapit tanda petik 2 tanpa ada isi.
- Kita gabung variable A
dan B dengan cara diatas. Kita masukkan keduanya kedalam variable C.
- Setelah variable C
dibaca ternyata tidak ada isinya karena memang variable C terdiri dari
variable A dan variable B yang tidak ada isi nya
7. Variabel dapat disubtitusikan dengan hasil eksekusi
dari sebuah instruksi. Pada contoh dibawah , instruksi pwd dieksekusi lebih
dahulu dengan sepasang Back Quate (tanda kutip terbalik). Hasil dari eksekusi
tersebut akan masuk sebagai nilai variable DIR
$ pwd
$ DIR=`pwd`
$ echo $DIR
Analisa : Variable dapat disubtitusi dengan hasil
suatu instruksi. Contohnya kita menuliskan $ DIR=`pwd`, artinya kita menginputkan perintah pwd dan
hasilnya akan disimpan di dalam variable DIR.
8. Buatlah shell script prog03.sh
$ vi prog03.sh
#!/bin/sh
# prog03.sh
#
NAMA=`whoami`
echo Nama
Pengguna Aktif adalah $NAMA
tanggal=`date |
cut –c1-10`
echo Hari ini
tanggal $tanggal
Analisa :
· Output dari perintah whoami akan disimpandidalam variable NAMA dan
kemudian kita mencetak “Nama pengguna aktif adalah (output whoami)”
· Output dari perintah date | cut -c1 -10 ialah perintah tersebut akan
disimpan didalam variable tanggal. Kemudian kita mencetak “hari initanggal
(output dari date | cut -c -10).
9. Eksekusi prog03.sh
$ . prog03.sh
Analisa : Output dari whoami adalah Salsabilla dan output
dari date | cut –c1-10 adalah Sel Okt 27.
Percobaan 4 :
Parameter
1. Membuat shell script prog04.sh
$ vi prog04.sh
#!/bin/sh
# prog04.sh
versi 1
# Parameter
passing
#
echo “Nama
program adalah $0”
echo “Parameter
1 adalah $1”
echo “Parameter
2 adalah $2”
echo “Parameter
3 adalah $3”
Analisa :
· Membuaat file prog04.sh
· Arti dari $0 ialah menampilkan
parameter nol yaitu berupa nama program. Program yang kita gunakan adalah
program bash, maka outputnya adalah bash.
· Arti dari $1, $2, dan $3 ialah
menampilkan parameter kesatu, kedua, dan ketiga.
2. Eksekusi prog04.sh tanpa parameter, dengan 2
parameter, dengan 4 parameter
$ . prog04.sh
$ . prog04.sh
amir hasan
$ . prog04.sh
amir hasan badu ali
Analisa :
· Mengeksekusi program prog04.sh
· Terlihat outputnya. $0 menunjukan nama program.
· Saat kita menginputkan 2 parameter yaitu Amir dan Hasan maka
parameter tersebut akan ditampilkan sebagai $1 dan $2, sedangkan lainnya kosong.
· Saat kita menginputkan 4 parameter yaitu Amir, Hasan, Badu,
dan Ali maka keempat variable nya akan terisi berurutan.
3. Membuat shell script prog04.sh versi 2 dengan
memberikan jumlah parameter
$ vi prog04.sh
#!/bin/sh
# prog04.sh
versi 2
# Parameter
passing
#
echo “Jumlah
parameter yang diberikan adalah $#”
echo “Nama
program adalah $0”
echo “Parameter
1 adalah $1”
echo “Parameter
2 adalah $2”
echo “Parameter
3 adalah $3”
Analisa : Arti dari $# ialah menghitung
parameter yang kita berikan.
4. Eksekusi prog04.sh tanpa parameter dan dengan 4
parameter
$ . prog04.sh
$ . prog04.sh
amir hasan badu ali
Analisa :
· Mengeksekusi program prog04.sh
· Output “jumlah parameter yang diberikan 0” sebab
kita tidak menginputkan parameter sama sekali.
· Output “jumlah parameter yang diberikan 4” sebab
kita menginputkan 3 parameter yaitu amir, hasan, badu, dan ali.
5. Membuat shell script prog04.sh versi 3 dengan
menambahkan total parameter dan nomor proses id (PID)
$ vi prog04.sh
#!/bin/sh
# prog04.sh
versi 3
# Parameter
passing
#
echo “Jumlah
parameter yang diberikan adalah $#”
echo “Nama
program adalah $0”
echo “Parameter
1 adalah $1”
echo “Parameter
2 adalah $2”
echo “Parameter
3 adalah $3”
echo “Total
parameter adalah $*”
echo “PID
proses shell ini adalah $$”
Analisa :
· Arti dari $* adalah menampilkan
seluruh parameter yang diberikan.
· Arti dari $$ adalah menampilkan
nomor PID proses program tersebut.
6. Eksekusi prog04.sh dengan 4 parameter
$ . prog04.sh
amir hasan badu ali
Analisa : Mengeksekusi file prog04.sh dengan
memberikan parameter amir, hasan, badu, dan ali. Sehingga outputnya :
· Jumlah parameter ialah 4, parameter 1 adalah amir,
parameter 2 adalah hasan, parameter 3 adalah badu
· Total parameter ialah amir hasan badu ali dan nomor
PID nya ialah 2019.
Percobaan 5 :
Status Exit
1. String tidak diketemukan, maka status exit adalah 1
$ grep xyz
/etc/passwd
$ echo $?
Analisa :
· Arti perintah $ grep xyz
/etc/passwd ialah mencari file xyz di
dalam direktori etc di dalam passswd
· Arti dari perintah $ echo $? adalah jika file yang kita cari ditemukan maka
status exitnya ialah 1.
2. String diketemukan, maka status exit adalah 0
$ grep
<user> /etc/passwd
$ echo $?
Analisa : Saat kita mencari “salsabilla” dietc/passwd
dan ketemu. Maka saat kita cek status exit menunjukkan 0.
Percobaan 6 :
Konstruksi If
1. Instruksi dengan exit status 0
$ who
$ who | grep <user>
$ echo $?
Analisa : Arti perintah program diatas ialah
perintah who | grep <user> akan mencari kata “salsabilla” didalam output dari perintah who,
dan ternyata kata “salsabilla” ditemukan dari who, sehingga saat kita cek
status exitnya adalah 0.
2. If membandingkan exit status dengan 0, bila sama, maka
blok program masuk ke dalam blok then-fi
$ if [ $? = 0 ]
>then
>echo “Pemakai tersebut sedang aktif”
>fi
Analisa : Arti dari perintah program diatas ialah
jika status exit 0, maka akan mencetak pemakai tersebut sedang aktif.
3. Nomor (1) dan (2) diatas dapat disederhanakan
dengan
$ if who|grep
<user> >/dev/null
>then
>echo okay
>fi
Analisa : Arti perintah program diatas ialah,
mencari kata “test” yaitu user yang sedang aktif pada direktori
/dev/null. Jika ketemu, maka akan mencetak okey.
Percobaan 7 :
Konstruksi if then else
1. Membuat shell script prog05.sh
$ vi prog05.sh
#!/bin/sh
# prog05.sh
# Program akan memberikankonfirmasi apakah nama
# user sedang aktif atau tidak
#
echo –n “Berikan nama pemakai : ”
read nama
if who | grep $nama > /dev/null
then
echo “$nama sedang aktif”
else
echo “$nama tidak aktif”
fi
Analisa :
· Arti Perintah echo -n“berikan nama pemakai” ialah kita memasukkan nama
pemakai. Nama yang kita inputkan akan disimpan di dalam variable nama.
· Kemudian jika nama yang kita inputkan sama dengan
nama user yang sedang aktif maka program akan mencetak“(user) sedang aktif ”
· Sedangkan jika nama yang kita inputkan bukan user
yang sedang aktif maka program akan mencetak“(nama yang diinputkan) tidak
aktif”
2. Jalankan prog05.sh, masukkan nama pemakai yang
aktif yang tampil pada instruksi who dan coba juga untuk nama pemakai yang
tidak aktif
$ who
$ . prog05.sh [nama=<user>]
$ . prog05.sh [nama=studentOS]
Analisa : Program akan menjalankan sesuai perintah.
Karena user yang sedang aktif ialah salsabilla, maka outputnya ialah salsabilla
sedang aktif.
Percobaan 8 :
Instruksi Test
1. Menggunakan instruksi test, perhatikan spasi antara
$ NAMA=amir
$ test $NAMA = amir
$ echo $?
$ test $NAMA = boris
$ echo $?
Analisa : Perintah diatas merupakan perintah
instruksi test. Variable NAMA diisi dengan amir. Untuk memanggil variable NAMA,
gunakan perintah test dengan $NAMA dan didefinisikan amir maka status exit
bernilai 0. Sedangkan jika berisi boris, status exit berisi 1. Artinya, nama
boris belum diinputkan.
2. Aplikasi test dengan konstruksi if
$ vi prog06.sh
#!/bin/sh
# prog06.sh
echo –n “NAMA = “
read NAMA
if test “$NAMA” = amir
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi
Analisa
: Variable NAMA didefinisikan sebagai amir. Jika kita memasukkan kata amir maka
program akan mencetak “Selamat datang amir”. Namun jika kita menginputkan kata
selain amir, maka akan mencetak “Anda bukan amir, sorry”.
3. Jalankan program prog06.sh dengan memasukkan NAMA =
amir dan NAMA = <CR> perhatikan hasil tampilannya
$ . prog06.sh [NAMA =
amir]
$ . prog06.sh [NAMA = <CR>] (Terdapat pesan error)
Analisa
:
· Kita mengeksekusi dengan memberi isi variable NAMA=amir, sehingga
menghasilkan output NAMA = Selamat datang amir.
· Sedangkan saat kita memasukkan <CR>,
menghasilkan output NAMA = Anda bukan amir, sorry.
4. Modifikasi prog06.sh dengan menggunakan notasi
untuk test
$ vi prog06.sh
#!/bin/sh
# prog06.sh
echo –n “NAMA = “
read NAMA
if [ “$NAMA” = amir ]
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi
Analisa
: Perintah diatas sama seperti nomor sebelumnya. Bedanya, perintah test diganti
dengan perintah [ ], dan akan di eksekusi pada percobaan berikutnya.
5. Jalankan program prog06.sh dengan memasukkan NAMA =
amir
$ . prog06.sh [NAMA =
amir]
Analisa
: Meskipun perintah if didefiniskan dengan perintah [ ] tapi hasil eksekusi
prog06.sh akan menampilkan hasil yang sama dengan perintah test sebelumnya.
Percobaan 9 :
Notasi && dan ||
1. Bila file prog01.sh ada (TRUE), maka jalankan
program berikutnya. File prog01.sh ada, karena itu exit status adalah TRUE,
hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan
dengan demikian instruksi echo akan dijalankan.
$ [ -f prog01.sh ]
&& echo “Prog01.sh ada”
Analisa
: Karena pada percobaan ini prog01.sh ada, maka program
selanjutnya dijalankan yaitu mencetak “prog01.sh ada”.
2. File prog99.sh tidak ada, karena itu exit status
adalah FALSE dan instruksi echo tidak dijalankan
$ [ -f prog99.sh ]
&& echo “Prog99.sh ada”
Analisa
: Karena pada percobaan ini prog99.sh ada, maka program selanjutnya
dijalankan yaitu mencetak “prog99.sh ada”.
3. Bila prog01.sh ada maka jalankan shell script
tersebut
$ [ -f prog01.sh ]
&& . prog01.sh
Analisa
: Jika pada percobaan ini prog01.sh ada, maka akan
menjalankan program . prog01.sh dan outputnya adalah program
prog01.sh
4. Bila prog01.sh ada maka jalankan program
berikutnya. File prog01.sh memang ada, karena itu exit status adalah TRUE, dan
karena sudah TRUE maka instruksi echo tidak lagi dijalankan
$ [ -f prog01.sh ] ||
echo “Dieksekusi tidak ?”
Analisa
: Jika prog01.sh ada maka akan menjalankan program berikutnya. File
prog01.sh memang ada, karena itu exit status adalah TRUE, dank arena sudah
TRUE maka instruksi echo tidak lagi dijalankan.
5. File prog99.sh tidak ada, karena itu exit status
adalah FALSE, hasil m tergantung atas exit status instruksi ke dua, karena itu
instruksi echo dijalankan
$ [ -f prog99.sh ] ||
echo “Dieksekusi tidak ?”
Analisa
: File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil masih
tergantung atas exit status instruksi ke dua, karena itu instruksi echo
dijalankan (dieksekusi).
6. File prog99.sh tidak ada, maka tampilkan pesan
error
$ [ -f prog99.sh ] ||
echo “Sorry, prog99.sh tidak ada”
Analisa : File prog99.sh tidak ada, maka tampilkan
pesan error seperti perintah di atas.
Percobaan 10 :
Operator bilangan bulat untuk test
1. Menggunakan operator dengan notasi test
$ i=5
$ test “$i” –eq 5
$ echo $?
Analisa
: Perintah diatas merupakan perintah operator bilangan bulat. Variable i berisi
5 maka dengan notasi test, variable i –eq (sama dengan) 5 dan apabila
dijalankan instruksi echo $? status exit bernilai 0 karena i memang berisi
dengan nilai 5.
2. Menggunakan operator dengan notasi [ ] (penganti
notasi test)
$ [ “$i” –eq 5 ]
$ echo $?
Analisa
: Sama seperti perintah nomor 1, bedanya diganti dengan notasi [ ] maka status
exit tetap akan bernilai 0.
Percobaan 11 :
Operator Logical dan konstruksi elif
1. Buatlah file prog07.sh
$ vi prog07.sh
#!/bin/sh
# prog07.sh
echo –n “INCOME = “
read INCOME
if [ $INCOME –ge 0 –a $INCOME –le 10000 ]
then
BIAYA=10
elif [ $INCOME –gt 10000 –a $INCOME –le 25000 ]
then
BIAYA=25
else
BIAYA=35
fi
echo “Biaya = $BIAYA”
Analisa : Perintah diatas ialah perintah operator
logika dan konstruksi elif. Perintah $ vi prog07.sh berfungsi untuk membuat Shell script prog07.sh yang berisi perintah
if dengan variabel income. Ada 3 perintah yaitu BIAYA=10, BIAYA=25 dan BIAYA=35
yang kemudian akan dieksekusi pada berikutnya.
2. Jalankan file prog07.sh dan masukkan untuk
INCOME=5000, 20000, 28000
$ . prog07.sh
[INCOME=5000]
$ . prog07.sh [INCOME=20000]
$ . prog07.sh [INCOME=28000]
Analisa
:
· Jika variabel income diisi dengan INCOME antara 0
sampai dengan 10000, biaya yang ditampilkan adalah 10.
· Jika variabel income berisi nilai antara
10000 sampai dengan 25000, biaya yang ditampilkan adalah 25.
· Jika variabel income berisi lebih dari 25000 maka
ditampilkan BIAYA 35.
Percobaan 12 :
Hitungan aritmetika
1. Menggunakan utilitas expr
$ expr 5 + 1
$ A=5
$ expr $A + 2
$ expr $A – 4
$ expr $A * 2 (Ada pesan error)
$ expr $A \* 2
$ expr $A / 6 +10
$ expr 17 % 5
Analisa
: Perintah diatas merupakan perintah hitungan aritmatika. Untuk perhitungan
aritmatika dapat menggunakan utilitas expr.
· Simbol dari penjumlahan adalah +
· Simbol dari pengurangan –
· Untuk perkalian bukan menggunakan perintah * tetapi
\*
· Untuk pembagian menggunakan / dan % digunakan untuk
expr mod atau sisa hasil bagi dan tampil seperti gambar di atas.
2. Substitusi isi variable dengan hasil utilitas expr
$ A=5
$ B=`expr $A + 1`
$ echo $B
Analisa
: Variabel A diisi dengan 5 kemudian variabel 5 berisi subtitusi dari perintah
expr $A + 1 maka apabila variabel B dipanggil akan berisi hasil dari aritmatika
tersebut.
Percobaan 13 :
Instruksi exit
1. Buat shell script prog08.sh
$ vi prog08.sh
#!/bin/sh
if [ -f prog01.sh ]
then
exit 3
else
exit –1
fi
Analisa
: Perintah diatas merupakan perintah instruksi exit. Script diatas berisi
instruksi if untuk notasi [ ] prog01.sh berisi instruksi exit dan akan
dieksekusi pada percobaan berikutnya.
2. Jalankan script prog08.sh dan periksa status exit
$ . prog08.sh
$ echo $?
Analisa
: Jika prog08.sh dieksekusi dengan . prog08.sh kemudian status exit di
tampilkan akan menampilkan nilai 0 dan tampil seperti gambar di atas.
Percobaan 14 :
Konstruksi case – esac
1. Buatlah file prog09.sh dengan editor vi
$ vi prog09.sh
#!/bin/sh
# Prog: prog09.sh
echo “1. Siapa yang aktif”
echo “2. Tanggal hari ini”
echo “3. Kalender bulan ini”
echo –n “ Pilihan : “
read PILIH
case $PILIH in
1)
echo “Yang aktif saat ini”
who
;;
2)
echo “Tanggal hari ini”
date
;;
3)
echo “Kalender bulan ini”
cal
;;
*)
echo “Salah pilih !!”
;;
esac
Analisa
: Perintah diatas merupakan perintah konstruksi case-esac. Dengan variabel
pemilihan PILIH melalui keyboard.
· Format penulisan case ini diawali dengan case
kemudian variabel pilih diikuti dengan in.
· Lalu definisikan untuk nomor 1 hingga 3 setiap
nomor ditutup dengan simbol ;;.
· Untuk pemilihan terakhir apabila memilih selain
nomor 1 2 3 digunkan perintah *).
· Kemudian ditutup dengan esac dan akan dieksekusi
pada percobaan berikutnya
2. Jalankan program prog09.sh, cobalah beberapa kali
dengan inputan yang berbeda
$ . prog09.sh
Analisa
:
· Jika memilih nomor 1 maka akan ditampilkan siapa
user yang sedang aktif.
· Jika memilih nomor 2 akan ditampilkan tanggal hari
ini.
· Jika memilih nomer 3 akan tampil kalender bulan
ini.
· Jika memilih selai nomor 1 2 atau 3 maka akan
ditampilkan echo Salah pilih !!.
· Kemudian ditutup dengan esac.
3. Buatlah file prog10.sh yang merupakan bentuk lain
dari case
$ vi prog10.sh
#!/bin/sh
# Prog: prog10.sh
echo –n “Jawab (Y/T) : “
read JWB
case $JWB in
y | Y | ya |Ya |YA ) JWB=y ;;
t | T | tidak | Tidak | TIDAK ) JWB=t ;;
esac
Analisa
: Perintah diatas merupakan bentuk lain dari perintah case.
· Variabel JWB dapat dijawab dengan perintah
y/Y/ya?Ya/YA untuk y.
· Variabel JWB=t dapat ditulis dengan t/T/tidak/Tidak/TIDAK dan akan
dieksekusi pada percobaan berikutnya.
4. Jalankan program prog10.sh, cobalah beberapa kali
dengan inputan yang berbeda
$ . prog10.sh
Analisa
: Merupakan eksekusi dari prog10.sh. saya menggunakan 3 buah contoh untuk nilai
JWB yaitu y, T dan YA.
5. Modifikasi file prog10.sh yang merupakan bentuk
lain dari case
$ vi prog10.sh
#!/bin/sh
# Prog: prog10.sh
echo –n “Jawab (Y/T) : \c“
read JWB
case $JWB in
[yY] | [yY][aA] ) JWB=y ;;
[tT] | [tT]idak ) JWB=t ;;
*) JWB=? ;;
esac
Analisa
: Perintah case untuk jawaban juga dapat ditulis seperti diatas.
· y dapat ditulis huruf kecil atau besar.
· kemudian untuk “ya” bisa y nya bisa huruf
besar/kecil. Begitupula dengan a nya.
· “tidak” juga sama seperti “ya”.
6. Jalankan program prog10.sh, cobalah beberapa kali
dengan inputan yang berbeda
$ . prog10.sh
Analisa
: Merupakan eksekusi dari program shell script prog10.sh untuk modifikasi nya
dan tampil seperti gambar di atas.
Percobaan 15 :
Konstruksi for-do-done
1. Buatlah file prog11.sh
$ vi prog11.sh
#!/bin/sh
# Prog: prog11.sh
for NAMA in bambang harry kadir amir
do
echo “Nama adalah : $NAMA”
done
Analisa
: Perintah diatas merupakan perintah konstruksi for-do-done. Shell script ini
berisi konstruksi for-do-done, dimana for untuk variabel nama bambang harry
kadir amir. Kemudian dijalankan dengan perintah do dan ditutup dengan done dan
akan dieksekusi pada percobaan berikutnya.
2. Jalankan program prog11.sh
$ . prog11.sh
Analisa
: Jika prog11.sh ini dijalankan perintah echo akan ditampilkan untuk setiap
NAMA karena menggunakan pengulangan for dan tampil seperti tampilan di atas.
3.
Buatlah file prog12.sh yang berisi konstruksi for
dan wildcard, program ini akan menampilkan nama file yang berada di current
direktori
$ vi prog12.sh
#!/bin/sh
# Prog: prog12.sh
for F in *
do
echo $F
done
Analisa : Shell script prog12.sh ini berisi
konstrusi for dan wild card. Program ini akan menampilkan nama file yang berada
pada current directory dan akan dieksekusi pada percobaan berikutnya.
4. Jalankan program prog12.sh
$ . prog12.sh
Analisa
: Jika prog12.sh ini dijalankan maka seluruh nama direktori pada current
directory akan ditampilkan dan tampil seperti gambar.
5. Modifikasi file prog12.sh, program ini akan
menampilkan long list dari file yang mempunyai ekstensi lst
$ vi prog12.sh
#!/bin/sh
# Prog: prog12.sh
for F in *.lst
do
ls –l $F
done
Analisa
: Perubahan pada prog12.sh ini akan menampilkan long list dari file yang
mempunyai ekstensi file .lst dan akan dieksekusi pada percobaan berikutnya.
6. Jalankan program prog12.sh
$ . prog12.sh
Analisa
: Tidak ditemukan file/direktori dengan ekstensi .lst pada current directory
ini sehingga ditampilkan pesan error dan tampil seperti gambar.
Percobaan 16 :
Konstruksi while-do-done
1. Buatlah file prog13.sh
$ vi prog13.sh
#!/bin/sh
# Prog: prog13.sh
PILIH=1
while [ $PILIH –ne 4 ]
do
echo “1. Siapa yang aktif”
echo “2. Tanggal hari ini”
echo “3. Kalender bulan ini”
echo “4. Keluar”
echo “ Pilihan : \c”
read PILIH
if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”
Analisa
: Perintah diatas merupakan perintah kontruksi while-do-done.
Program shell script untuk prog13.sh berisi perintah pengulangan serta terdapat
4 pilihan. Variabelnya adalah PILIH –ne 4 dan akan dieksekusi pada percobaan
berikutnya.
2. Jalankan program prog13.sh
$ . prog13.sh
Analisa
: Ketika prog13.sh dijalankan :
· Jika memilih nomor 1 2 atau 3 maka akan diulangi
atau ditampilkan lagi pilihan tersebut karena perintahnya tidak berisi.
· Jika memilih nomor 4 maka pengulangan akan berhenti kemudian tampil
tulisan dan tampil seperti gambar.
Percobaan 17 :
Instruksi dummy
1. Modifikasi file prog13.sh
$ vi prog13.sh
#!/bin/sh
# Prog: prog13.sh
PILIH=1
while :
do
echo “1. Siapa yang aktif”
echo “2. Tanggal hari ini”
echo “3. Kalender bulan ini”
echo “4. Keluar”
echo “ Pilihan : \c”
read PILIH
if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”
Analisa
: Modifikasi ini terlihat pada penulisan while : sebelumnya
ditambahkan dengan notasi [ $PILIH –ne 4]. Sedangkan pada prog14.sh
sekarang tidak ada dan akan dieksekusi pada percobaan berikutnya.
2. Jalankan program prog13.sh
$ . prog13.sh
Analisa
: Hasil dari eksekusi modifikasi prog13.sh ini akan sama dengan perintah
sebelumnya yaitu pada percobaan 17 dan tampil seperti gambar
3. Buatlah file prog14.sh yang berisi instruksi dummy
untuk konstruksi if
$ vi prog14.sh
#!/bin/sh
# Prog: prog14.sh
echo –n “Masukkan nilai : “
read A
if [ $A –gt 100 ]
then
:
else
echo “OK !”
fi
Analisa : Pada program prog14.sh berisi instruksi
dummy untuk konstruksi if. Variabel A dinyatakan dengan nilai –ne 100. Then
echo OK dan akan dieksekusi pada percobaan berikutnya
4. Jalankan program prog14.sh beberapa kali dengan
input yang berbeda
$ . prog14.sh
Analisa
: Ketika program dijalankan :
· Jika nilai yang dimasukan masih kurang dari 100
maka ditampilkan OK !
· Jika nilai lebih dari 100 maka tidak akan ada pesan
OK !
Percobaan 18 :
Fungsi
1. Buatlah file fungsi.sh
$ vi fungsi.sh
#!/bin/sh
# Prog: fungsi.sh
F1( ) {
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo $?
Analisa
: Perintah diatas merupakan perintah fungsi. File fungsi.sh pada shell script
ini berisi perintah fungsi untuk return 1 dan status exit setalah menjalankan
fungsi dan akan dieksekusi pada percobaan berikutnya.
2. Jalankan program fungsi.sh
$ . fungsi.sh
Analisa
: File fungsi.sh ini apabila dijalankan akan berstatus exit 1 karena bernilai
false.
3. Menggunakan variable pada fungsi dengan
memodifikasi file fungsi.sh
$ vi fungsi.sh
#!/bin/sh
# Prog: fungsi.sh
F1( )
{
Honor=10000
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo “Nilai balik adalah $?”
echo “Honor = $Honor”
Analisa
: Modifikasi file fungsi.sh ini hanya ditambah variabel Honor dengan 10000 dan
echo Nilai balik adalah $? dan akan dieksekusi pada percobaan berikutnya.
4. Jalankan program fungsi.sh
$ . fungsi.sh
Analisa
: Tidak ada perbedaan fungsi dalam file.sh hasil modifikasi ini hanya
penambahan nilai dari variabel Honor.
5. Menggunakan variable pada fungsi dengan
memodifikasi file fungsi.sh
$ vi fungsi.sh
#!/bin/sh
# Prog: fungsi.sh
F1( )
{
local Honor=10000
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo “Nilai balik adalah $?”
echo “Honor = $Honor”
Analisa
: Percobaan ini juga masih merupakan modifikasi dari file fungsi.sh dengan penambahan
local sebelum pendefinisian variabel Honor=10000 dan akan dieksekusi pada
percobaan berikutnya.
6. Jalankan program fungsi.sh
$ . fungsi.sh
Analisa
: Hasilnya pun tidak ada perubahan dari modifikasi file fungsi.sh sebelumnya.
Hasilnya sama dengan percobaan 18 nomor 3.
LATIHAN
1. Buatlah program salin.sh yang menyalin file (copy )
sebagai berikut :
salin.sh file -asal file-tujuan
Dengan ketentuan :
· Bila file asal tidak ada, berikan pesan, salin
gagal.
· Bila file tujuan ada dan file tersebut adalah
directory, beri pesan bahwa file tidak bisa disalin ke direktori
· Bila file tujuan ada dan file biasa, beri pesan
apakan file tersebut akan dihapus, bila dijawab dengan “Y”, maka copy file
tersebut
· Bila file tujuan belum ada, lakukan copy
Untuk mengambil nama file, gunakan parameter $1 dan
$2. Bila jumlah parameter tidak sama ($#) dengan 2, maka beri pesan exit = -1
#!/bin/sh
# file: salin.sh
# Usage: salin.sh fasal ftujuan
if [ $# -ne 2]
then
echo “Error, usage: salin.sh file-asal file-tujuan”
exit –1
fi
fasal=$1
ftujuan=$2
echo “salin.sh $fasal $ftujuan”
……
……
Analisa :
· Perintah diatas merupakan program memeriksa nama direktori. Ketika dijalankan
program checkdir.sh dan tidak menemukan direktori yang dicari, maka secara
otomatis akan di tutup / exit.
· Untuk pilihan digunakan perintah if else then, tetapi karena
perintah pertama pada salin.sh menyatakan jika file tidak ada maka akan di close.
· Karena file ini tidak ada, sehingga perintah yang dikerjakannya pada
saat shell script dieksekusi menggunakan perintah . salin.sh adalah perintah pilihan nomor 1 yaitu
“keluar” karena tidak ada filenya dan tampil seperti gambar di atas.
2. Buat program yang memeriksa nama direktori, jika
parameter tersebut adalah direktori, maka jalankan instruksi ls – ld pada
direktori tersebut. Namakan program tersebut checkdir.sh. Gunakan notasi [ -d
NamaDirektori ] dan pilih logic al && atau || pada level shell.
#!/bin/sh
# file: checkdir.sh
# Usage: checkdir.sh DirectoryName
#
if [ $# -ne 1]
then
echo “Error, usage: checkdir.sh DirectoryName”
exit 1
fi
[ … ] && …
Analisa
: Perintah diatas merupakan program memeriksa nama direktori. Ketika
dijalankan program checkdir.sh dan tidak menemukan direktori yang dicari, maka
secara otomatis akan di tutup / exit.
3. Dengan shell script pph.sh, hitung PPH per tahun
dengan ketentuan sebagai berikut:
− 10 juta pertama PPH 15%
− 25 juta berikutnya (sisa) PPH 25%
− Bila masih ada sisa, maka sisa tersebut PPH 35%
Contoh :
Gaji 8 juta
PPH = 15% * 8 juta
Gaji 12 juta
PPH =15% * 10 juta + 25% * (12-10) juta
Gaji 60 juta
PPH = 15% * 10 juta + 25% * 25 juta + 25% * (60-10-25)
juta
Debugging : untuk melakukan tracing (debug) gunakan opsi –x pada
eksekusi shell.
$ sh –x pph.sh
+ echo –n ‘Berikan gaji dalam ribuan rupiah : ‘
Berikan gaji dalam ribuan rupiah : + read gaji
20000
+ pkp=10000
+ ‘[‘ 20000 –le 10000 ‘]’
++ expr 20000 – 10000
+ gaji=10000
+ pph=1500
+ pkp=25000
+ ‘[‘ 10000 –le 25000 ‘]’
+ pkp=10000
++ expr 1500 + 10000 ‘*’ 25 / 100
+ pph=4000
+ echo ‘Pajak Penghasilan = 4000’
Pajak Penghasilan = 4000
Analisa
: Program diatas untuk
menghitung PPH per tahun dengan ketentuan 10 juta pertama PPH 15%, 25 juta
berikutnya (sisa) PPH 25%. Bila masih ada sisa, maka sisa tersebut PPH 35%.
Untuk membuat sebuah file pph.sh gunakan
perintah vi pph.sh.
· Masuk ke shell dan buat sebuah perintah dalam vi pph.sh dengan memasukan
perintah yang ada pada gambar di atas.
· Gunakan tombol Esc ‘:’
dan wq! untuk keluar dari shell dan menyimpan.
· Kemudian jalankan pph.sh dengan perintah bash
pph.sh dan untuk debugging untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi shell.
4. Buatlah program myprog.sh yang memproses parameter
$1, nilai parameter harus berupa string :
start
stop
status
restart
reload
Bila buka dari string tersebut, maka berikan pesan
error. Sempurnakan program di bawah ini untuk keperluan tersebut
#!/bin/sh
# See how we were called
case “$1” in
start)
echo “Ini adalah start”
;;
stop)
*)
echo “Ini adalah stop”
;;
echo $”Usage:$0 {start|stop|restart|reload|status}”
;;
esac
return
Analisa : Perintah diatas merupakan tahapan membuat program
myprog.sh yang memproses parameter $1. Nilai parameter harus berupa string
start, stop, status, restart, dan reload. Isi dari file myprog.sh dengan
perintah untuk melakukan seleksi terhadap inputan yang dimasukan.
· Jika inputan yang dimasukan start, stop, status,
restart, atau reload maka akan muncul output seperti gambar di atas.
· Jika tidak, akan muncul informasi kesalahan dan
tampil seperti gambar di atas.
5. Buat sebuah fungsi pada script confirm.sh yang
memberikan konfirmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka
beri nilai balik 0, No = 1 dan Continue = 2. Modifikasi kerangka program
berikut untuk memenuhi permintaan tersebut.
#!/bin/sh
# Confirm whether we really want to run this service
confirm() {
local YES=”Y”
local NO=”N”
local CONT=”C”
while :
do
echo –n “(Y)es/(N)o/(C)ontinue? {Y] “
read answer
answer=`echo “$answer” | tr ‘[a-z]’ ‘[A-Z]’`
if [ “$answer” = “” –0 “$answer” = $YES ]
then
return 0
elif ….
then
return 2
elif ….
then
return 1
fi
done
}
Test fungsi diatas dengan program berikut :
$ vi testp.sh
. confirm.sh
confirm
if [ $? –eq 0 ]
then
echo “Jawaban YES OK”
elif [ $? =eq 1 ]
then
echo “Jawaban NO”
else
echo “Jawaban CONTINUE”
fi
Perhatikan baris pertama, adalah loading dari
fungsi confirm yang terdapat di script confirm.sh. Setelah eksekusi script
tersebut, maka fungsi confirm dapat digunakan
Analisa : Perintah diatas
berfungsi untuk membuat sebuah fungsi pada script confirm.sh yang memberikan
konfirmasi jawaban Yes, No atau Continue.
· Jika jawaban “Yes”, maka beri nilai balik 0, No = 1
dan continue = 2 serta memodifikasi program tersebut.
· Pada perintah yang terdapat di modul tidak bisa
dijalankan, gunakan modifikasi terhadap isi perintah.
· Lalu gunakan perintah elif seperti yang terlihat
pada gambar di atas, dan ketika dijalankan hasilnya akan tampil seperti di atas
dengan output tulisan “Jawaban YES OK”.
KESIMPULAN
Berdasarkan kedua
praktikum yang saya lakukan diatas terdapat Shell Script, Variable, Membaca
Keyboard, Parameter, Status Exit, Konsntruksi If Then Else, Logical &&
dan || (Shell Level), Operator Bilangan Bulat, Operator logical, Konstruksi If
Then Else If, Hitungan Aritmetika, Instruksi Exit, Konstruksi Case, Konstruksi
For, Konstruksi While, Instruksi Dummy, dan Membuat dan Mengetahui cara memanggil
Fungsi.
Komentar
Posting Komentar