LAPORAN MODUL 3.3 PRAKTIKUM SISTEM OPERASI ”SELEKSI, PERULANGAN, DAN ARRAY PADA SHELL PROGRAMMING LINUX”
Nama : Luh Sukma Sukma Widiasari Widiasari Nim : 090 090860 860503 5038 8
Assisten Dosen : NAMA : G.A.Vida Mastrika Giri NIM : 0808605056
Nama Dosen : I Gusti Ngurah Anom Cahyadi Putra, S.T, M.Cs
Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Udayana 2011
Kata Pengantar Puji Syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, karena berkat rahmat Nya lah laporan Praktikum Sistem Operasi dapat selesai tepat pada waktunya. waktunya. Penulis Penulis menyadari menyadari bahwa bahwa laporan ini jauh dari sempurna. Sehingga perlu pembelajaran yang lebih mendalam lagi bagi penulis, baik dalam hal materi perkuliahan maupun dalam suatu bentuk penulisan penulisan laporan. Tidak lupa penulis mengucapkan terima kasih kepada semua pihak yang membantu penulis dalam penyelesaian laporan ini.
Denpasar, 20 maret 2011
penulis
1
Daftar Isi
1 Pendahuluan
4
1.1
Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2
Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3
Manfaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2 LANDASAN TEORI
2.1
2.2
2.3
6
Seleksi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.1.1
Statement If . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.1.2
Statement Builtin case . . . . . . . . . . . . . . . . . . .
7
Perulangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2.1
Statement For . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2.2
Statement While . . . . . . . . . . . . . . . . . . . . . .
8
2.2.3
Statement Until . . . . . . . . . . . . . . . . . . . . . . .
9
2.2.4
Statement Select . . . . . . . . . . . . . . . . . . . . . . 10
Array
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 HASIL PRAKTIKUM
12
3.1
Ulasan Praktikum Lalu . . . . . . . . . . . . . . . . . . . . . . . 12
3.2
Soal Tugas Praktikum . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1
Jawaban Soal 1 . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2
Jawaban Soal 2 . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.3
Jawaban Soal 3 . . . . . . . . . . . . . . . . . . . . . . . 23
4 PENUTUP
25
4.1
Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2
Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 DAFTAR PUSTAKA
27
2
Daftar Gambar 3.1
Output jawaban soal 1 . . . . . . . . . . . . . . . . . . . . . . . 15
3.2
Output soal 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3
Output soal 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4
Output soal 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5
Output soal 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6
Output soal 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.7
Output soal 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.8
Contoh statement select . . . . . . . . . . . . . . . . . . . . . . 21
3.9
Tampilan deret bil.ganjil . . . . . . . . . . . . . . . . . . . . . . 22
3.10 Tampilan deret bil.genap . . . . . . . . . . . . . . . . . . . . . . 23 3.11 Tampilan alamat array . . . . . . . . . . . . . . . . . . . . . . . 24
3
Bab 1 Pendahuluan 1.1
Latar Belakang
Shell adalah program (penterjemah perintah) yang menjembatani user dengan sistem operasi dalam hal ini kernel (inti sistem operasi), umumnya shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan perintah-perintah yang diinginkan baik berupa perintah internal shell (internal command), ataupun perintah eksekusi suatu file progam (eksternal command), selain itu shell memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file untuk dieksekusi sebagai program. Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat banyak, sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux antara lain: •
Bourne shell(sh),
•
C shell(csh),
•
Korn shell(ksh),
•
Bourne again shell(bash),
•
dsb.
Masing - masing shell mempunyai kelebihan dan kekurangan yang mungkin lebih didasarkan pada kebutuhan pemakai yang makin hari makin meningkat, 4
untuk dokumentasi ini shell yang digunakan adalah bash shell dari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa feature (keistimewaan) dari C shell serta Korn shell, Bash shell merupakan shell yang cukup banyak digunakan pemakai linux karena kemudahan serta banyaknya fasilitas perintah yang disediakan. Khusus pada pembahasan kali ini, penulis hanya akan membahas mengenai seleksi, perulangan dan array.
1.2
Tujuan
Adapun tujuan dari laporan ini adalah untuk memperkenalkan dasar pemrograman shell, dalam hal ini adalah mengenai perintah seleksi, perulangan, dan array
1.3
Manfaat
Manfaat yang dapat diperoleh dari laporan ini adalah : 1. Agar mempermudah kalangan pelajar yang mulai mempelajari matakuliah sistem operasi. 2. Agar pelajar memiliki pedoman dalam penggunaan shell pada sistem operasi linux terutama dalam menggunakan statement-statement dalam perintah seleksi, perulangan dan array 3. Dapat menginformasikan pembaca mengenai text editor yang dapat digunakan dalam shell programming di sistem operasi Linux Ubuntu.
5
Bab 2 LANDASAN TEORI
2.1
Seleksi
2.1.1
Statement If
syntax:
if test-command1; then perintah1; elif test-command2; then perintah2; else alternatif_perintah; fi
1. Contoh Script If #!/bin/bash kunci="bash"; read -s -p "Password anda : " pass if [ $pass==$kunci ]; then echo "Sukses, anda layak dapat linux" else
6
echo "Wah sorry, gagal nih"; fi
Berikut adalah output script diatas : Password anda : bash Sukses, anda layak dapat linux Password anda : Bash Wah sorry, gagal nih klausa else akan dieksekusi jika if tidak terpenuhi, sebaliknya jika if terpenuhi maka else tidak akan dieksekusi
2.1.2
Statement Builtin case
Seperti halnya if statement case digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case terasa lebih efisien Syntax: case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac
1. Contoh Script case #!/bin/bash clear echo -n "Masukkan nama binatang :"; read binatang; case $binatang in pinguin | ayam | burung ) echo "$binatang berkaki 2" break ;; onta | kuda | anjing ) echo "$binatang berkaki 4" break ;; *) echo "$binatang blom didaftarkan"
7
break ;; esac
Hasil Output Script diatas : Masukkan nama binatang : pinguin pinguin berkaki 2
2.2
Perulangan
2.2.1
Statement For
Syntax: for NAME [in WORDS ...]; do perintah; done contoh script for1 1. Contoh script for : #!/bin/bash for angka in 1 2 3 4 5; do echo "angka=$angka"; done
Hasil script diatas : angka=1 angka=2 angka=3 angka=4 angka=5
2.2.2
Statement While
Selama kondisi bernilai benar atau zero perintah dalam blok while akan diulang terus Syntax: while KONDISI; do perintah; done;
8
1. contoh script whi1e mencetak bilangan ganjil antara 1-10 #!/bin/bash i=1; while [ $i -le 10 ]; do echo "$i,"; let i=$i+2; done
Hasil script diatas : 1,3,5,7,9, kondisi tidak terpenuhi pada saat nilai i=11 (9+2), sehingga perintah dalam blokwhile tidak dieksekusi lagi
2.2.3
Statement Until
Jika while akan mengulang selama kondisi benar, lain halnya dengan statement until yang akan mengulang selama kondisi salah. berikut contoh script ut menggunakan until
#!/bin/bash i=1; until [ $i -gt 10 ]; do echo $i; let i=$i+1 done
Hasil output scriptnya: 1,2,3,4,5,6,7,8,9,10,
9
2.2.4
Statement Select
Select berguna untuk pembuatan layout berbentuk menu pilihan, anda lihat contoh script pembuatan menu diatas kita hanya melakukannya dengan echo secara satu persatu, dengan select akan terlihat lebih efisien. Syntax: select varname in (<item list>); do perintah; done
Sewaktu dijalankan bash akan menampilkan daftar menu yang diambil dari item list, serta akan menampilkan prompt yang menunggu masukan dari keyboard, masukan tersebut oleh bash disimpan di variabel builtin REPLY, apabila daftar item list tidak dituliskan maka bash akan mengambil item list dari parameter posisi sewaktu script dijalankan. lebih jelasnya lihat contoh berikut:
#!/bin/bash #menu1 clear select menu do echo "Anda memilih $REPLY yaitu $menu" done
Hasilnya : Layout: menu1 Slackware Redhat Mandrake 1) Slackware 2) Redhat 3) Mandrake ? 1 Anda memilih 1 yaitu Slackware
2.3
Array
Array adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa membayangkan array ini sebagai 10
tumpukan buku - buku dimeja belajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:
#!/bin/bash #array1 buah=(Melon,Apel,Durian); echo ${buah[*]};
Hasil scriptnya : ./array1. Melon,Apel,Durian Anda lihat bahwa membuat tipe array di Bash begitu mudah, secara otomatis array buah diciptakan dan string Melon menempati index pertama dari array buah, perlu diketahui bahwa array di Bash dimulai dari index 0, jadi array buah mempunyai struktur seperti berikut: buah[0] berisi Melon buah[1] berisi Apel buah[2] berisi Durian
11
Bab 3 HASIL PRAKTIKUM 3.1
Ulasan Praktikum Lalu
Pada pratikum minggu lalu kami diberikan contoh soal mengenai perintah seleksi, perulangan, dan array pada shell programming sebagai berikut: Berikut adalah sintax yang diberikan dan hasil screenshot setelah sintax dijalankan.
1. #!/bin/bash echo -n "masukkan bilangan :" read bil if [ $bil -gt 0 ] then echo "bilangan $bil adalah bilangan positif"; elif [ $bil -eq 0 ] then echo "bilangan $bil adalah bilangan netral"; else echo "bilangan $bil adalah bilangan negatif"; fi;
2. #!/bin/bash echo -n "masukkan nama seekor binatang :" read BINATANG
12
echo -n "binatang $BINATANG memiliki :" case $BINATANG in kuda | anjing | kucing) echo -n "empat" ;; ayam | burung) echo -n "dua" ;; *) echo -n "tidak diketahui jumlah" ;; esac echo " kaki"
3. #!/bin/bash select fname in "Ayam Goreng" "Ayam Bakar" "Opor Ayam" "exit" do case $REPLY in 1)echo "Ayo makan nasi dengan ayam goreng spesial" break; ;; 2)echo "Ayo makan nasi dengan ayam bakar spesial" break; ;; 3)echo "Ayo makan nasi dengan ayam opor spesial" break; ;; 4)echo "terimakasih" break; ;; esac done 4. #!/bin/bash
13
for angka in 1 2 3 4 5; do echo "angka=$angka" done
5. #!/bin/bash i=1; while [ $i -le 10 ]; do echo "$i" let i=$i+2; done
6. #!/bin/bash i=1; until [ $i -gt 10 ]; do echo "$i" let i=$i+1; done
7. #!/bin/bash i=1; array=() read -p "inputkan jumlah anggota array" jum; while [ $i -le $jum ]; do read -p "inputkan bilangan [$i] " array[$i]; let i=$i+1; done
14
i=1; echo "anggota array yang sudah diinputkan " while [ $i -le $jum ]; do echo "index[$i]=${array[$i]}"; let i=$i+1; done
1. jawaban soal 1
Gambar 3.1: Output jawaban soal 1
15
2. jawaban soal 2
Gambar 3.2: Output soal 2
3. jawaban soal 3
Gambar 3.3: Output soal 3
16
4. jawaban soal 4
Gambar 3.4: Output soal 4
17
5. jawaban soal 5
Gambar 3.5: Output soal 5
6. jawaban soal 6
Gambar 3.6: Output soal 6
18
7. jawaban soal 7
Gambar 3.7: Output soal 7
3.2
Soal Tugas Praktikum
Membuat contoh-contoh program mengenai soal-soal dibawah ini. Tampilkan scriptnya, beserta screenshot hasil setelah program tersebut dijalankan di terminal. Berikut soalnya. •
Buatlah script mengenai seleksi, memilih sebuah pilihan kompetensi di ilkom. Kemudian bila memilih akan muncul penjelasan mengenai pilihan kompetensi.
•
Buatlah script perulangan bilangan ganjil dan genap!
•
Buatlah script mengenai array!
Pada laporan, sertakan script program dan screenshots output program.
3.2.1
Jawaban Soal 1
Statement select pada contoh soal Contoh script. 19
#!/bin/bash select fmenu in "Komputasi" "RPL" "Jarkom" "exit"; do case $REPLY in 1) echo "Pada kompetensi ini lulusan diharapkan mempunyai keahlian dalam bidang komputasi komputer, pengembangan algoritma, kecerdasan buatan. "; break; ;; 2) echo "RPL (Rekayasa Perangkat Lunak), pada kompetensi ini lulusan diharapkan mempunyai keahlian di bidang pembuatan perangkat lunak yang baik dan sesuai dengan kebutuhan serta perkembangan teknologi terbaru."; break; ;; 3) echo "Pada kompetensi ini lulusan diharapkan mempunyai keahlian di bidang jaringan komputer, komunikasi data dan sistem pengamanan jaringan komputer."; break; ;; 4) echo "Terimakasih"; break; ;; esac done
Hasil output script :
20
Gambar 3.8: Contoh statement select
3.2.2
Jawaban Soal 2
1. Perulangan bilangan ganjil Script ini bertujuan menampilkan deret perulangan bilangan ganjil sesuai dengan jumlah deret yang diinputkan. #!/bin/bash echo -n "Jumlah deret bilangan ganjil:"; read batas i=1; let batasbaru=batas*2; while [ $i -le $batasbaru ]; do echo "$i,"; let i=$i+2; done
Setelah dijalankan pada terminal hasilnya adalah : Output script:
21
Gambar 3.9: Tampilan deret bil.ganjil 2. Perulangan bilangan genap #!/bin/bash echo -n "jumlah deret bilangan genap:"; read batas i=2; let batasbaru=batas*2; while [ $i -le $batasbaru ]; do echo "$i,"; let i=$i+2; done
Setelah dijalankan pada terminal hasilnya adalah : Output script:
22
Gambar 3.10: Tampilan deret bil.genap
3.2.3
Jawaban Soal 3
Penggunaan Array Script ini bertujuan menampilkan data berupa banyak hari pada bulan yang diinputkan dengan menggunakan array pada script pemrograman shell. #!/bin/bash read -p "masukkan bulan-keberapa yang dicari :" bulan; if [ $bulan -le 0 ] || [ $bulan -gt 12 ]; then echo "Ops, bulan tidak boleh <1 atau Bulan harus <=12"; exit 0; fi bulan[1]=31 bulan[2]=28 bulan[3]=31 bulan[4]=30 bulan[5]=31 bulan[6]=30 bulan[7]=31 bulan[8]=31
23
bulan[9]=30 bulan[10]=31 bulan[11]=30 bulan[12]=31 hari=${bulan[bulan]}; echo "Banyak hari dalam bulan $bulan adalah $hari hari"
Setelah dijalankan pada terminal hasilnya adalah : Output script:
Gambar 3.11: Tampilan alamat array
24
Bab 4 PENUTUP
4.1
Kesimpulan
Shell adalah program penerjemah perintah yang dijembatani user dengan sistem operasi. Pada umumnya shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan perintah-perintah yang diinginkan, baik perintah internal shell ataupun perintah eksternal shell untuk mengeksekusi suatu file program. Di samping itu, shell memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file dengan menggunakan editor teks, untuk dieksekusi seperti layaknya sebuah program. Terdapat macam-macam perintah pada pemrograman shell. Beberapa diantaranya adalah seleksi, perulangan, dan array. Masing-masing diantaranya memiliki statement yang berbeda untuk menjalankan perintah. Pada seleksi terdapat statement if dan builtin case yang bertujuan untuk menyeleksi kondisi majemuk. Pada perulangan terdapat beberapa statement yaitu For, While, Until, Select yang bertujuan untuk melakukan perulangan atau looping pada pemrograman. Sedangkan array adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa membayangkan array ini sebagai tumpukan buku - buku dimeja belajar.
25
4.2
Saran Shell merupakan salah satu kekuatan yang membuat sistem Linux men-
jadi powerful, bertenaga, dan dapat diandalkan untuk segala macam aktifitas komputasi. Shell inilah yang menjadi salah satu tulang punggung jalannya sistem-sistem yang ada pada Linux. Terdapat banyak statement-statement pada pemrograman shell yang masi harus dipelajari lebih banyak guna membuat suatu program serta dapat mengembangkan dan membudayakan open source di komunitas pelajar.
26
Bab 5 DAFTAR PUSTAKA 1. Dasar-dasar shell dan direktori (http://ilmukomputer.org/2008/11/25/mempela jaridasar-dasar-shell-operasi-file-dan-direktori) diakses tanggal 20 maret 2011 pukul 20:00 wita 2. Seleksi dan perulangan pada shell programming (http://pemula.linux.or.id/programming shell.html/seleksi) diakses tanggal 20 maret 2011 pukul 20:00 wita 3. Pemrograman shell (http://lecturer.eepis-its.edu/˜subhankh/Shell%20Programming/Pra PRAKTIKUM%20IV.pdf) diakses tanggal 20 maret 2011 pukul 20:00 wita 4. Pengantar shell Linux http://www.yasinmaster.com/computer/linux/pengantarshell-di-linux.html
27