Praktikum 8. Pemrograman Shell 2

dokumen-dokumen yang mirip
Pemrograman Shell (1)

KATA PENGANTAR Dengan menyebut nama Allah STW yang Maha Pengasih dan Maha Penyayang, kita panjatkan puji dan syukur atas kehadirat-nya, yang telah mel

Laporan Praktikum Modul 9 Sistem Operasi

Praktikum 6-A POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI: 1 SHELL SCRIPT. Pemrograman Shell

POSTEST SISTEM OPERASI. Disusun Oleh : : Nurul Annisa Putri. Nim : Jurusan/ Kelas : Teknik Informatika/ 4 (Empat) B

Perulangan. Praktikum 7 A. T U J U A N B. DASAR TEORI

TUGAS SISTEM OPERASI. Disusun Oleh : : Nurul Annisa Putri. Nim : Jurusan/ Kelas : Teknik Informatika/ 4 (Empat) B

Otomasi Shell Script Lanjut

Zaid Romegar Mair Lisensi Dokumen: Gambaran umum : Break statement

Pengkondisian (Perintah if dan case)

Subrutin atau Fungsi. Praktikum 9 A. T U J U A N B. DASAR TEORI

Pemrograman Shell (2)

Praktikum Sistem Operasi (Pertemuan 06) Pemrograman Shell. Husni

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh:

Pemrograman Shell Linux

Expresi dan Test. Praktikum 5 A. T U J U A N B. DASAR TEORI. Operator Kondisi

DEPARTEMEN PENDIDIKAN NASIONAL BIRO PERENCANAAN DAN KERJASAMA LUAR NEGERI

MODUL PRAKTIKUM. Sistem Operasi LAB KOMPUTASI DASAR JURUSAN ILMU KOMPUTER UNIVERSITAS LAMPUNG. Modul Praktikum: Sistem Operasi

Pertemuan2 Percabangan & Perulangan pada Python

PERTEMUAN KE <JUDUL PERTEMUAN PRAKTIKUM>

Mengontrol setting internal option shell. Me-load (mengambil) nilai parameter posisi pada shell.

Praktikum 1. Perintah Dasar Sistem Operasi Linux

Selection, Looping, Branching

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Web Programming. Pengenalan PHP

JavaScript (Dialog Box) Oleh : Devie Rosa Anamisa

Percabangan & Perulangan

STRUKTUR PEMROGRAMAN PYTHON

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Praktikum 2. Operasi Linux. POKOK BAHASAN: Format Instruksi pada Sistem Operasi Linux Perintah-Perintah Dasar pda Sistem Operasi Linux

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

Modul praktikum OS. MANUAL Linux menyediakan manual secara on-line. Beberapa kunci keyboard yang penting dalam menggunakan manual adalah : Q

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

P10 Seleksi & Perulangan

Bab 2. Bourne Again Shell. i STTS. Teori PENDAHULUAN

MODUL PRAKTIKUM ALGORITMA & BAHASA PEMROGRAMAN I (BASIC) Dosen Pengasuh : Suroto, S.Kom, M.Ak

BAB VII DASAR-DASAR PHP

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON

Struktur dan Kondisi Perulangan. Struktur Kondisi

PERCABANGAN P E N G E N A L A N P R O G R A M S T U D I T E K N I K I N F O R M AT I K A. Institut Teknologi Sumatera

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

Program. Instruksi-instruksi yang diberikan kepada komputer agar dapat melaksanakan tugas-tugas tertentu

Pertemuan 2. Muhadi Hariyanto

Praktikum TRANSACT SQL. Tujuan : Praktikan mampu untuk mengerti dan memahami Transact-SQL

Definisi Percabangan

STRUKTUR DASAR ALGORITMA

OPERATOR DAN STATEMEN I/O

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

Struktur Data II. Bekerja Dengan Form.

Konstruksi Dasar Algoritma

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

PHP Programing. M.M. Ubaidillah. Dasar-dasar PHP. merupakan bahasa pemrograman berbasis web yang memiliki kemampuan untuk memproses data dinamis.

(Struktur Kondisi dan Perulangan) KOMPETENSI DASAR

Looping : break, continue, nested loop

MODUL DUA VARIABEL DAN TIPE VARIABEL

1. Mengenal Profile 2. Mengerti konsep history 3. Membuat dan mengeksekusi shell script sederhana 4. Mengerti Job control

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

Shell Lanjutan. Praktikum 5 A. T U J U A N

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Bab 2 Editor vi 9. BAB 2 EDITOR vi TUJUAN PRAKTIKUM

BATCH FILE. Merupakan sekumpulan perintah DOS yang disusun dan disimpan dalam sebuah file yang berekstensi.bat.

Pemrograman Filter (awk)

Praktikum 1. Perintah Dasar Sistem Operasi Linux. Format Instruksi pada Sistem Operasi Linux Perintah-Perintah Dasar pda Sistem Operasi Linux

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Shell dan Pemrograman Shell

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

MODUL 3 Tipe Data, Variabel Dan Konstanta Pada Php

Aplikasi Rekursif dalam Analisis Sintaks Program

Control Structure. Dasar Pemrograman C Mikrokontroler AVR. Hendawan Soebhakti Oktober 2009

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

PHP (HYPERTEXT PREPROCESSOR)

Perintah Perintah Dasar Pada Sistem Operasi Linux

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Pemrograman Berorientasi Objek. Beni Suranto, S.T.

P9 Seleksi & Perulangan

SUMBER BELAJAR PENUNJANG PLPG

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

Praktikum 3 Perintah DasarSistem Operasi Linux

Algoritma dan Struktur Data

MODUL. Variabel. Workshop Programming

PEMROGRAMAN TERSTRUKTUR MENGGUNAKAN MATLAB

Struktur Kondisi dan Perulangan

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

MODUL PRAKTIKUM PEMROGRAMAN WEB (DASAR)

POSTEST SISTEM OPERASI. Disusun Oleh : : Nurul Annisa Putri. Nim : Jurusan/ Kelas : Teknik Informatika/ 4 (Empat) B

Decission : if & if else

Variabel dan Tipe data Javascript

Bab 9. Percabangan dan Perulangan

Pertemuan 2. Editor vi

Chapter 1 KONSEP DASAR C

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

MODUL III CONTROL FLOW & FLOWCHART

shell. Kenapa Shell? User dapat mencoba unix mereka. Shell yang pertama kali dibuat adalah Bourne shell (sh).

MODUL 2 Review Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017

Transkripsi:

Praktikum 8 Pemrograman Shell 2 POKOK BAHASAN: ü Pemrograman Shell TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: ü 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 factor dan operator yang dipisahkan oleh spasi. Hasil test akan memberikan nilai berupa status exit, yaitu 0 bila ekspresi sesuai, bila tidak maka hasil adalah 0. Operator untuk test Operator 0 atau TRUE, jika string1 = string2 Identical string1!= string2 Not identical -n string String is not null -z string String is null 88

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 89 Test untuk les dan directory Test dapat dilakukan untuk memeriksa apakah le ada (Exist), dapat dibaca, dapat ditulis, kosong dan lainnya. Operator 0 atau TRUE, jika -f namale File ada, le biasa -d namale File ada, le adalah direktori -r namale File dapat dibaca -w namale File dapat ditulis -x namale File adalah executable -s namale File ada dan tidak kosong -w namale File dapat ditulis Untuk memudahkan pembacaan (readability), test dapat ditulis dengan [ ekspresi ] [ 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 alternatif untuk if else. Notasi && dan sering ditemukan dalah 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 karena itu, instruksi2 tidak dijalankan. Sebaliknya bila hasil instruksi1 adalah TRUE(0), maka instruksi2 dijalankan instruksi1 instruksi2 shell akan mengeksekusi instruksi1, bila exit status adalah TRUE(0), hasil dari operasi OR tersebut sudah pasti menghasilkan TRUE, terlepas dari hasil eksekusi

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 90 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. Operator i1 eq i2 i1 ge i2 i1 gt i2 i1 le i2 i1 lt i2 i1 ne i2 0 atau TRUE, jika Bilangan sama Lebih besar atau sama dengan Lebih besar Lebih kecil atau sama dengan Lebih kecil Bilangan tidak sama 4 OPERATOR LOGICAL (TEST LEVEL) Logical operator terdiri dari AND, OR dan NOT. Operator ini menggabungkan hasil ekspresi sebagai berikut : NOT : symbol!! True False False True AND : symbol -a V1 V2 V1 a V2 False False False False True False True False False True True True

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 91 OR : symbol -o V1 V2 V1 o V2 False False False False True True True False True True True True 5 KONSTRUKSI IF THEN ELSE IF if instruksi1 instruksi1.1 instruksi1.2 elif instruksi2 else instruksi2.1 instruksi2.2 instruksi3.1 instruksi3.2 Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan dijalankan. 6 HITUNGAN ARITMETIKA Tipe dari variable SHELL hanya satu yaitu STRING. Tidak ada tipe lain seperti Numerik, Floating, Boolean atau lainnya. Akibatnya variable ini tidak dapat membuat perhitungan aritmetika, misalnya : A=5 B=$A +1 ## error

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 92 UNIX menyediakan utilitas yang bernama expr yaitu suatu utilitas yang melakukan aritmetika sederhana. 7 INSTRUKSI EXIT Program dapat dihentikan (terminated/selesai) dengan instruksi exit. Sebagai nilai default program tersebut akan memberikan status exit 0. 8 KONSTRUKSI CASE Case digunakan untuk menyederhanakan pemakaian if yang berantai, sehingga dengan case, kondisi dapat dikelompokkan secara logis dengan lebih jelas dan mudah untuk ditulis. case variable in match1) instruksi1.1 instruksi1.2 ;; match2) instruksi2.1 instruksi2.2 ;; *) esac instruksi3.1 instruksi3.2 ;; Case diakhiri denan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *) yang berarti adalah default, bila kondisi tidak memenuhi pola sebelumnya

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 93 9 KONSTRUKSI FOR For digunakan untuk pengulangan dengan menggunakan var yang pada setiap pengulangan akan diganti dengan nilai yang berada pada daftar (list). 10 KONSTRUKSI WHILE While digunakan untuk pengulangan instruksi, yang umumnya dibatasi dengan suatu kondisi. Selama kondisi tersebut TRUE, maka pengulangan terus dilakukan. Loop akan berhenti, bila kondisi FALSSE, atau program keluar dari blok while melalui exit atau break. for var in str1 str2..strn do instruksi1 instruksi2 done while kondisi do instruksi1 instruksi2 done 11 INSTRUKSI DUMMY Instruksi dummy adalah instruksi yang tidak melakukan apa-apa, namun instruksi ini memberikan status exit 0 (TRUE). Oleh karena itu, instruksi dummy dapat digunakan sebagai kondisi forever pada loop (misalnya while). Simbol instruksi dummy adalah :

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 94 12 FUNGSI Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan menggunakan notasi NamaFungsi(). dinyatakan dengan return nr, atau nilai 0 sebagai default. Fungsi memberikan exit status ($?) yang Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok program yang dinyatakan dalam { }. Contoh : F1( ) {.... return 1 } Variabel dapat didenisikan dalam fungsi sebagai variable local atau global. Hal yang perlu diperhatikan, nama variable yang digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama variable yang sam adi luar fungsi, sehingga tidak terjadi isi variable berubah. TUGAS PENDAHULUAN: Sebagai tugas pendahuluan, ketiklah progam yang ada pada semua percobaan berikut dan analisalah apa kegunaan dari program tersebut: Percobaan 1 : Instruksi Test 1. Menggunakan instruksi test, perhatikan spasi antara $ NAMA=amir $ test $NAMA = amir $ echo $? $ test $NAMA = boris $ echo $?

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 95 2. Aplikasi test dengan konstruksi if $ vi prog06.sh # prog06.sh echo n NAMA = read NAMA if test $NAMA = amir echo Selamat Datang $NAMA else echo 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) 4. Modikasi prog06.sh dengan menggunakan notasi untuk test $ vi prog06.sh # prog06.sh echo n NAMA = read NAMA if [ $NAMA = amir ] echo Selamat Datang $NAMA else echo Anda bukan amir, sorry! 5. Jalankan program prog06.sh dengan memasukkan NAMA = amir $. prog06.sh [NAMA = amir]

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 96 Percobaan 2 : Notasi && dan 1. Bila le 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 2. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan $ [ -f prog99.sh ] && echo Prog99.sh ada 3. Bila prog01.sh ada maka jalankan shell script tersebut $ [ -f prog01.sh ] &&. 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? 5. File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil ma tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan $ [ -f prog99.sh ] echo Dieksekusi tidak? 6. File prog99.sh tidak ada, maka tampilkan pesan error $ [ -f prog99.sh ] echo Sorry, prog99.sh tidak ada Percobaan 3 : Operator bilangan bulat untuk test 1. Menggunakan operator dengan notasi test $ i=5 $ test $i eq 5 $ echo $? 2. Menggunakan operator dengan notasi [ ] (penganti notasi test) $ [ $i eq 5 ] $ echo $?

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 97 Percobaan 4 : Operator Logical dan konstruksi elif 1. Buatlah le prog07.sh $ vi prog07.sh # prog07.sh echo n INCOME = read INCOME if [ $INCOME ge 0 a $INCOME le 10000 ] BIAYA=10 elif [ $INCOME gt 10000 a $INCOME le 25000 ] BIAYA=25 else BIAYA=35 echo Biaya = $BIAYA 2. Jalankan le prog07.sh dan masukkan untuk INCOME=5000, 20000, 28000 $. prog07.sh [INCOME=5000] $. prog07.sh [INCOME=20000] $. prog07.sh [INCOME=28000] Percobaan 5 : 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 2. Substitusi isi variable dengan hasil utilitas expr $ A=5 $ B=`expr $A + 1` $ echo $B

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 98 Percobaan 6 : Instruksi exit 1. Buat shell script prog08.sh $ vi prog08.sh if [ -f prog01.sh ] exit 3 else exit 1 2. Jalankan script prog08.sh dan periksa status exit $. prog08.sh $ echo $? Percobaan 7 : Konstruksi case - esac 1. Buatlah le prog09.sh dengan editor vi $ vi prog09.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

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 99 2. Jalankan program prog09.sh, cobalah beberapa kali dengan inputan yang berbeda $. prog09.sh 3. Buatlah le prog10.sh yang merupakan bentuk lain dari case $ vi prog10.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 4. Jalankan program prog10.sh, cobalah beberapa kali dengan inputan yang berbeda $. prog10.sh 5. Modikasi le prog10.sh yang merupakan bentuk lain dari case $ vi prog10.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 6. Jalankan program prog10.sh, cobalah beberapa kali dengan inputan yang berbeda $. prog10.sh

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 100 Percobaan 8 : Konstruksi for-do-done 1. Buatlah le prog11.sh $ vi prog11.sh # Prog: prog11.sh for NAMA in bambang harry kadir amir do echo Nama adalah : $NAMA done 2. Jalankan program prog11.sh $. prog11.sh 3. Buatlah le prog12.sh yang berisi konstruksi for dan wildcard, program ini akan menampilkan nama le yang berada di current direktori $ vi prog12.sh # Prog: prog12.sh for F in * do echo $F done 4. Jalankan program prog12.sh $. prog12.sh 5. Modikasi le prog12.sh, program ini akan menampilkan long list dari le yang mempunyai ekstensi lst $ vi prog12.sh # Prog: prog12.sh for F in *.lst do ls l $F done 6. Jalankan program prog12.sh $. prog12.sh

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 101 Percobaan 9 : Konstruksi while-do-done 1. Buatlah le prog13.sh $ vi prog13.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 ] break clear done echo Program berlanjut di sini setelah break 2. Jalankan program prog13.sh $. prog13.sh Percobaan 10 : Instruksi dummy 1. Modikasi le prog13.sh $ vi prog13.sh # Prog: prog13.sh

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 102 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 ] break clear done echo Program berlanjut di sini setelah break 2. Jalankan program prog13.sh $. prog13.sh 3. Buatlah le prog14.sh yang berisi instruksi dummy untuk konstruksi if $ vi prog14.sh # Prog: prog14.sh echo n Masukkan nilai : read A if [ $A gt 100 ] : else echo OK! 4. Jalankan program prog14.sh beberapa kali dengan input yang berbeda $. prog14.sh

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 103 Percobaan 11 : Fungsi 1. Buatlah le fungsi.sh $ vi fungsi.sh # Prog: fungsi.sh F1( ) { echo Fungsi F1 return 1 } echo Menggunakan Fungsi F1 F1 echo $? 2. Jalankan program fungsi.sh $. fungsi.sh 3. Menggunakan variable pada fungsi dengan memodikasi le fungsi.sh $ vi fungsi.sh # Prog: fungsi.sh F1( ) { } Honor=10000 echo Fungsi F1 return 1 echo Menggunakan Fungsi F1 F1 echo Nilai balik adalah $? echo Honor = $Honor 4. Jalankan program fungsi.sh $. fungsi.sh

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 104 5. Menggunakan variable pada fungsi dengan memodikasi le fungsi.sh $ vi fungsi.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 6. Jalankan program fungsi.sh $. fungsi.sh LATIHAN: 1. Buatlah program salin.sh yang menyalin le (copy ) sebagai berikut : Dengan ketentuan : salin.sh le-asal le-tujuan Bila le asal tidak ada, berikan pesan, salin gagal. Bila le tujuan ada dan le tersebut adalah directory, beri pesan bahwa le tidak bisa disalin ke direktori Bila le tujuan ada dan le biasa, beri pesan apakan le tersebut akan dihapus, bila dijawab dengan Y, maka copy le tersebut Bila le tujuan belum ada, lakukan copy Untuk mengambil nama le, gunakan parameter $1 dan $2. Bila jumlah parameter tidak sama ($#) dengan 2, maka beri pesan exit = -1 # le: salin.sh # Usage: salin.sh fasal ftujuan if [ $# -ne 2] echo Error, usage: salin.sh le-asal le-tujuan

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 105 exit 1 fasal=$1 ftujuan=$2 echo salin.sh $fasal $ftujuan 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 logical && atau pada level shell. # le: checkdir.sh # Usage: checkdir.sh DirectoryName # if [ $# -ne 1] echo Error, usage: checkdir.sh DirectoryName exit 1 [ ] && 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

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 106 + 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 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 # 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 5. Buat sebuah fungsi pada script conrm.sh yang memberikan konrmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan Continue = 2. Modikasi kerangka program berikut untuk memenuhi permintaan tersebut. # Conrm whether we really want to run this service conrm() { local YES= Y local NO= N local CONT= C

PRAKTIKUM 8 PEMROGRAMAN SHELL 2 107 while : do echo n (Y)es/(N)o/(C)ontinue? {Y] read answer answer=`echo $answer tr [a-z] [A-Z] ` } done if [ $answer = 0 $answer = $YES ] return 0 elif. return 2 elif. return 1 Test fungsi diatas dengan program berikut : $ vi testp.sh. conrm.sh conrm if [ $? eq 0 ] echo Jawaban YES OK elif [ $? =eq 1 ] echo Jawaban NO else echo Jawaban CONTINUE Perhatikan baris pertama, adalah loading dari fungsi conrm yang terdapat di script conrm.sh. Setelah eksekusi script tersebut, maka fungsi conrm dapat digunakan. LAPORAN RESMI: 1. Analisa hasil percobaan yang Anda lakukan. 2. Kerjakan latihan diatas dan analisa hasil tampilannya. 3. Berikan kesimpulan dari praktikum ini.