• Tidak ada hasil yang ditemukan

Praktikum VI Shell Programming PRAKTIKUM VI

N/A
N/A
Protected

Academic year: 2021

Membagikan "Praktikum VI Shell Programming PRAKTIKUM VI"

Copied!
8
0
0

Teks penuh

(1)

PRAKTIKUM VI

I. Judul

Dasar Pemrograman Shell BASH (Fundamental III)

II. Tujuan

1. Mengerti mengenai aritmetika dalam Shell BASH 2. Mengerti array dalam lingkungan Shell BASH 3. Memahami pembacaan masukan dari user

III. Dasar Teori

3.1 Pembacaan masukan dari user 3.1.1 Variabel (review)

Pada praktikum sebelum telah dibahas mengenai deklarasi sebua variabel dan bagaimana memberikan nilai ke dalam variabel tersebut. Seperti telah dijelaskan pula bahwa ada dua kelompok varibel dalam lingkungan Shell BASH yaitu, variabel environment dan variabel lokal.

Sebagai gambaran, variabel environment adalah variabel yang merupakan bawaan dari Shell BASH itu sendiri, kelompok variabel ini secara default berisi definisi-definisi environment seperti PATH, USER, LOGNAME dll. Sifat dari varibel environment ini adalah global atau berlaku disemua Shell dan SubShell. Berikut contoh mekanisme untuk membuat sebuah variabel environment baru dan menjadikan variabel tersebut bersifat global.

$ nama=”john” atau bisa juga dengan declare nama=”john” $ export NAME=”john”

$ echo “$nama” “$NAME”

Keterangan :

1. Baris pertama mendefinisikan sebuah variabel lokal dengan identitas “nama” 2. Mendefinisikan variabel global dengan identitas “NAME”

3. Mengektraksi masing-masing nilai dari variabel nama dan NAME

3.1.2 Read (perintah membaca input dari user)

perintah “Read” merupakan perintah yang termasuk dalam kelompok buil-in command shell. Perintah ini berfungsi untuk membaca masukan dari user melalui perantara keyboard. Jika tidak ada opsi maka perintah ini akan membaca masukan yang diberikan oleh user tanpa memilah-milah terlebih dahulu. Batas pembacaan masukan adalah ketika mulai baris baru yang ditandai dengan penekanan tombol ‘enter’ oleh user.

Berikut ini adalah format penggunaan perintah read beserta opsi yang dapat digunakan dalam penulisan skrip BASH Shell.

(2)

Tabel 3.1 Format perintah Read

Format Deskripsi read jawaban Membaca satu baris masukan dari standard input dan

disubstitusikan ke variabel jawaban

read awal akhir Membaca satu baris input dan dipisahkan berdasarkan spasi, masukan pertama disubtitusikan ke variabel awal, dan masukan kedua disubtitusikan ke variabel akhir

read Membaca satu baris masukan dan disubtitusikan ke variabel built-in yang bernama REPLY.

read –a nama_array Membaca daftar kata dari masukan dan mensubtitusikan ke dalam variabel array nama_array.

read –e Digunakan di shell intereraktif

read –p prompt Menampilkan prompt, menunggun masukan, dan mensubtitusikan masukan ke dalam variabel REPLY

read –r line Memperbolehkan adanya karakter backslash pada masukan yang diberikan.

Contoh penggunaan perintah read :

#!/bin/bash

#nama skrip : coba

echo –e “apakah kamu senang : ” read hasil

echo “anda menjawab $hasil” echo “siapa nama lengkap kamu ?” read n_awal n_tengah n_akhir

echo “nama lengkap kamu adalah $n_awal $n_tengah $n_akhir” echo “nama awal kamu adalah $n_awal”

output program adalah :

$./coba

apakah kamu senang : ya anda menjawab ya

siapa nama lengkap kamu ? rudi hadi suwarno nama lengkap kamu adalah rudi hadi suwarno nama awal kamu adalah rudi

3.2 Array

Pada versi BASH 2.x terdapat fungsi untuk mendefinisikan array satu dimensi. Array memungkinkan seorang programmer mengkoleksi daftar beberapa nilai dalam sebuah variabel. Untuk mengektraksi kembali nilai-nilai tersebut dapat dilakukan dengan menyebutkan nama varibel yang diikuti oleh nomer indek array tersebut.

Pendefinisian sebuah array juga bisa dilakukan on the fly(tanpa mendefinisikan terlebih dahulu). Dan tidak ada batasan maksimum dari sebuah array yang dibuat dalam lingkungan BASH Shell. Pada saat sebuah nilai diberikan ke dalam sebuah array yang telah didefinisikan, indek array secara otomatis akan dimulai dari 0, dan bertambah naik 1 sampai semua kumpulan nilai-nilai dimasukkan.

(3)

Contoh deklarasi array :

$ declare –a nomor=(45 50 23) $ nama=(andi hafid intan)

$ kota=(surabaya medan jakarta) x[0]=7

x[4]=400

contoh lain :

$ declare –a nama

$ nama=(luky ani arman) $ echo ${nama[1]}

ani

$ echo ${nama[2]} arman

$ echo “berikut ini nama teman-temanku ${nama[*]}” berikut ini nama teman-temanku luky ani arman

$ echo “jumlah total indek array adalah ${#nama[*]}” jumlah total indek adalah 3

$ unset nama

Keterangan :

1. Mendeklrasikan variabel array “nama” 2. Memasukkan nilai ke dalam array “nama” 3. Menampilkan isi dari array indek ke 1 4. Menampilkan isi dari array indek ke 2 5. Menampilkan semua isi array “nama”

6. Menampilkan jumlah indek total dari array “nama” 7. Menghapus array “nama”

3.3 Aritmetika (perintah declare dan let) 3.3.1 Integer

Selain untuk mendefinisikan array perintah declare juga digunakan untuk mendefinisikan variabel bertipe integer. Dengan menggunakan opsi –i pada penggunaan declare maka sebuah variabel akan didefinisikan sebagai variabel yang bertipe interger.

Selain declare perintah let juga dapat digunakan untuk mendefinisikan sebuah variabel bertipe integer. Namun pada dasarnya let lebih ke arah operasi aritmetika. Hal inilah yang menjadi pembeda antara perintah declare dan let.

Contoh deklarasi integer :

$ declare –i num $ num=halo

$ echo $num 0

$ num=5 + 5

bash: +: command not found $ num=5+5

$ echo $num 10

(4)

$ num=9*8 $ echo $num 72 $ num=”5 + 5” $ echo $num 10 $ num =6.5

bash: num: 6.5 syntax error in expression(remainder of expression is “.5”)

contoh perintah let

$ i=5 atau let i=5 $ let i=i+1 $ echo $i 6 $ let “i = i + 2” $ echo $i 8 $ let “i+=1” $ echo $i 9 $ i=3 $ ((i=i+4)) $ echo $i 7 $ ((i=i-2)) $ echo $i 5 3.3.2 Format bilangan

Dalam lingkungan Bash Shell pendefinisian sebuah varibel numerik juga mengenal format basis bilangan. Seperti biner atau basis 2, desimal atau basis 10, heksadesimal atau basis 16, oktal atau basis 8. Bentuk pendefinisian dari format bilangan dalam Bash Shell adalah :

variabel=basis#numerik bilangan dalam basis terdefinisi

contoh :

$ n=2#1001 maksudnya adalah basis 2; numeriknya 1001 dalam basis 2

$ echo $n 9

$ declare –i x=017 integer yang diawali oleh 0 akan dibaca

sebagi bilangan oktal

$ echo $x 15

(5)

$ x=8#17 $ echo $x 15 $ x=16#b $ echo $x 11 3.3.3 Floating point

Floating point atau lebih dikenal dengan bilangan mengambang atau dikenal juga dengan bilangan pecahan. Dalam Bash Shell floating point tidak dapat di definisikan dengan perintah built-in. namun dalam lingkungan Shell untuk proses bilangan pecahan dapat menggunakan utilitas yang ada seperti bc, awk, dan nawk. Utilitas ini sangat berguna karena BASH sendiri tidak support terhadap bilangan pecahan.

Contoh :

$ n=`echo “scale=3; 13 / 2” | bc` $ echo $n

6.500

$ produk=`awk –v x=2.45 –v y=3.123 ‘BEGIN{printf “%.2f”,x*y}’`

$ echo $produk

7.65

IV. Percobaan Petunjuk praktikum

1. Tulis setiap percobaan berikut dalam sebuah file yang diberi nama sesuai dengan percobaannya

2. Gunakan editor VIM

3. Setelah menyimpan dan keluar dari editor VIM gunakan perintah “chmod 755 nama_file” untuk merubah file menjadi mode executable

4. Lakukan untuk setiap percobaan

5. Laporan sementara adalah hasil observasi beserta output program

4.1 Perintah Read Percobaan 411 #!/bin/bash

echo “siapa nama kamu ?” read nama

echo “$nama, anda login tanggal `date +%D`“ echo “selamat datang $nama”

Percobaan 412 #!/bin/bash

echo “siapa nama kamu” read

(6)

Percobaan 413 #!/bin/bash

echo “sebutkan tiga nama panggilan dari teman-teman mu [xxx rrrr ssss]”

read teman1 teman2 teman3

echo “nama temanmu yang pertama adalah $teman1” echo “nama temanmu yang kedua adalah $teman2” echo “nama temanmu yang ketiga adalah $teman3” set $teman1 $teman2 $teman3

echo “jumlah teman kamu adalah $#” Percobaan 414

#!/bin/bash

read –p “masukkan nrp kamu dengan format xxxx xxx xxx : ” echo “nomor nrp kamu adalah $REPLY”

Percobaan 415 #!/bin/bash

echo –n “masukkan nrp kamu dengan format xxxx xxx xxx : ” read –a nrp

echo “nomor awal nrp kamu adalah ${nrp[0]}” echo “kode diploma ${nrp[1]}”

4.2 Perintah Declare dan Let Percobaan 421

#!/bin/bash declare –i data data=ardi

echo “isi variabel data adalah $data” data=5

echo “sekarang isi data adalah $data” echo “hasil dari 5 * $data adalah 5*$data” data=data*5

echo isi data saat ini $data unset data

Percobaan 422 #!/bin/bash

declare –i num data hasil num=”6 * 4 ”

echo “hasil 6 * 4 adalah $num” data=5

hasil=data*num echo “hasil $data * $num adalah $hasil” unset num data hasil

Percobaan 423 #!/bin/bash

declare –i data1 data2 hasil

read –p “Masukkan sebuah angka : ” data1=$REPLY

read –p “Masukkan angka lagi : ” data2=$REPLY

hasil=data1/data2

echo “hasil dari $data1 / data2 adalah $hasil” unset data1 data2 hasil

(7)

Percobaan 424 #!/bin/bash let i=5

echo “nilai i adalah $i” let i=i+5

echo “nilai i saat ini” let “i = i + 10”

echo “nilai menjadi $i” unset i

Percobaan 425 #!/bin/bash

let data1 data2 hasil

read –p “masukkan sebuah angka : ” data1=$REPLY

read –p “masukkan sebuah angka lagi : ” data2=$REPLY

((hasil=data1-data2))

echo “hasil dari $data1 - $data2 adalah $hasil ” unset data1 data2 hasil

Percobaan 426 #!/bin/bash declare –i data data=2#1000111

echo “10001111 sama dengan $data desimal (basis 10)” data=8#15

echo “15 oktal sama dengan $data desimal” data=16#ff

echo “ff heksadesimal sama dengan $data desimal” nilai=1111

data=2#$nilai

echo “$nilai basis 2 sama dengan $data basis 10” 4.3 Array

Percobaan 431 #!/bin/bash

declare –a nilai=(jeruk nanas apel semangka) echo “isi dari array indek 0 adalah ${nilai[0]}” echo “isi array ke 1 adalah ${nilai[1]}”

echo “jumlah indek adalah ${#nilai[*]}” echo “isi array adalah ${nilai[*]}” unset nilai

Percobaan 432 #!/bin/bash

declare –a x=(2 [3]=hai [8]=ali) echo “indek ke 0 berisi ${x[0]}” echo “indek ke 1 berisi ${x[1]}” echo “indek ke 3 berisi ${x[3]}” echo “indek ke 8 berisi ${x[8]}”

echo “jumlah total indek adalah ${#x[*]}” unset x

Percobaan 433 #!/bin/bash

echo “Masukkan minimal 3 nama buah-buahan : ” read –a buah

echo “nama buah-buahannya adalah ${buah[*]}”

(8)

Percobaan 434 #!/bin/bash x[0]=3 x[5]=2 x[2]=4

echo “isi array berturut-turut adalah ${x[*]}” echo “jumlah indeknya adalah ${#x[*]}”

unset x Percobaan 435 #!/bin/bash declare –ai x x[0]=2 x[2]=3 x[3]=${x[0]}*${x[2]}

echo “hasil ${x[0]} kali ${x[2]} adalah ${x[3]} echo “jumlah indek array adalah ${#x[*]}”

unset hasil 4.4 Floating point

Percobaan 441 #!/bin/bash

hasil=`awk –v data=3.45 –v data1=5.59 ‘BEGIN{printf “%.3f”, data+data1}’`

echo “hasil dari 3.45 + 5.59 adalah $hasil”

Percobaan 442 #!/bin/bash

read –p “masukkan sebuah bilang floating point (x.y) : ” data=$REPLY

read –p “masukkan lagi bilangan floating point (a.b) : ” data1=$REPLY

hasil=`awk –v nilai1=$data –v nilai2=$data1 ‘BEGIN{printf “%.3f” nilai1*nila2}’`

echo “hasil kali $data dan $data1 adalah $hasil” V. Tugas

1. Buat rangkuman mengenai utilitas awk dan penggunaannya, minimal 1 lembar kertas ukuran A4 dan dikumpulkan bersamaan dengan laporan resmi.

Gambar

Tabel 3.1 Format perintah Read

Referensi

Dokumen terkait

 Drive device : berupa alat yang digunakan untuk menekan simbol dalam bentuk yang hanya dapat dibaca oleh mesin pada media seperti mislanya disk magnetik atau tape magnetik,

Menghitung waktu yang diperlukan Bulan untuk berjalan mulai titik pusat Bulan saat segaris dengan bayangan inti Bumi sampai titik pusat ketika seluruh piringan Bulan

Sedangkan menurut Vivian (1997:368) pada bukunya yang berjudul “The media of Mass Communication” menyatakan bahwa komunikasi massa adalah sebuah proses komunikasi yang dilakukan

Laporan tugas akhir ini bertujuan agar para pembaca mengetahui bagaimana pembuatan “SISTEM PAKAR IDENTIFIKASI PENYAKIT BURUNG PUYUH MENGGUNAKAN INFERENSI FORWARD

temperatur yang mencolok, maka pada proyek akhir ini metode titik kritis distribusi digunakan untuk monitoring temperatur tubuh berdasarkan lokasi peletakan

Data yang digunakan untuk penelitian terdiri dari 4 penyakit kelamin pada perempuan dengan 10 gejala.. System pakar yang dibuat menggunakan metode Naïve

Memastikan aktiviti yang dirancang bagi tahun 2020 dilaksanakan pada tahun 2021 dalam bentuk fizikal mahupun maya, bergantung kepada keadaan pandemik COVID19..1. KPI JUSTIFIKASI

Hasil uji banding menunjukkan bahwa analisis bilangan iod, bilangan asam, bilangan peroksida, dan bilangan penyabunan yang dilakukan pada penelitian tidak berbeda