BAB VI Variable, Escape & Pipe

dokumen-dokumen yang mirip
LAPORAN PRAKTIKUM SISTEM OPERASI MODUL II VARIABEL & KARAKTER ESCAPE

PRAKTIKUM SISTEM OPERASI TEKNIK INFORMATIKA

PRAKTIKUM SISTEM OPERASI TEKNIK INFORMATIKA

Panduan Praktikum Sistem Operasi

Pemrograman Shell Linux

PRAKTIKUM SISTEM OPERASI TEKNIK INFORMATIKA

PRAKTIKUM SISTEM OPERASI TEKNIK INFORMATIKA

LABORATORIUM SISTEM INFORMASI JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO

LAPORAN RESMI PRAKTIKUM SISTEM OPERASI MODUL I SHELL INTERAKTIF DAN SKRIP

Praktikum Sistem Operasi (Pertemuan 03) Ekspansi Shell. Husni

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

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

Perintah Dasar Shell. Praktikum 1 A. T U J U A N B. DASAR TEORI. command), ataupun perintah eksekusi suatu file progam (eksternal command),

Pemrograman Bash Shell di Linux. agussalim

Titin Winarti Diterbitkan oleh : Semarang University Press Semarang 2009

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

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

Bab 6 Konfigurasi Bash Shell

Dasar Pemrograman Java

Praktikum 1 Berkenalan dengan awk

Praktikum Sistem Operasi (Pertemuan 06) Pemrograman Shell. Husni

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

MODUL 3 Tipe Data, Variabel Dan Konstanta Pada Php

BAB II PHP - SINTAKS. Menyimpan File PHP. Dasar-dasar Pemrograman PHP. Kode-kode PHP dituliskan di antara tanda berikut ini: <?php ... atau ...

Perancangan & Pemprograman WEB

Bab 3 Bash Shell. Program D3 PJJ PENS ITS. Sistem Operasi Linux PJJ PENS ITS. Arna Fariza

Pemakaian Variabel. Praktikum 4 A. T U J U A N B. DASAR TEORI

PHP Basic. Pemrograman Web. Rajif Agung Yunmar, S.Kom

Praktikum 3. Shell Pengenalan Bash Penggunaan Baris Perintah dengan Cepat Lebih Lanjut Tentang Baris Perintah

Pengenalan Pascal/DevPascal

Pemrograman Input/Output (I/O)

STRUKTUR DASAR PHP ASUMSI 02/10/2014

PRAKTIKUM IV. Shell Developer Lokasi Keterangan Brian Fox dan Free Software. TCSH Berkeley California

Zaid Romegar Mair Lisensi Dokumen: Gambaran umum : Break statement

Pengenalan Script. Definisi HTML

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

Mengkompilasi Source Code C++ dengan g++.

History, Pembangkitan Nama File dan Redireksi & Pipe

BAB 1 KONSEP DASAR BAHASA C

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

P1 : Perintah Dasar Sistem Operasi Linux

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

VARIABEL. Variabel dibagi menjadi 3 kategori : 1. Environment Variable 2. Positional Parameter 3. User Define Variable

PHP (HYPERTEXT PREPROCESSOR)

PEMROGRAMAN BAHASA C BAB II 2.1 STRUKTUR BAHASA C

PRAKTIK DASAR PENGELOLAAN FILE

Praktikum 1. Perintah Dasar Sistem Operasi Linux

dilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C dalam pemakainnya memerlukan

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

Praktikum VI Shell Programming PRAKTIKUM VI

ilmu bahasa pemrograman ilmu c++ Copyright izie ilmu c++

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

Algoritma Pemrograman 2B (Pemrograman C++)

Sekilas Tentang C. Dasar Pemrograman & Algoritma

Pemrograman Filter (awk)

Chapter 1 KONSEP DASAR C

Modul Praktikum Sistem Operasi PERTEMUAN KE-VII

Hak akses file didefinisikan secara terpisah untuk user, grup dan other.

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

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

DEPARTEMEN PENDIDIKAN NASIONAL BIRO PERENCANAAN DAN KERJASAMA LUAR NEGERI

Shell dan Pemrograman Shell

PEMROGRAMAN TERSTRUKTUR MENGGUNAKAN MATLAB

KURSUS ONLINE JASA WEBMASTERS

MODUL. Variabel. Workshop Programming

MODUL 3 DASAR-DASAR PHP

Praktikum 3 Perintah DasarSistem Operasi Linux

Praktikum 8. Pemrograman Shell 2

DEPARTEMEN PENDIDIKAN NASIONAL BIRO PERENCANAAN DAN KERJASAMA LUAR NEGERI

PENGENALAN PHP DASAR

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Pertemuan 07 Struktur Dasar PHP

MODUL 5 JAVA SCRIPT. Sub : PENGENALAN

Laporan Praktikum Modul 9 Sistem Operasi

Perintah Dasar UNIX. Dibuat Oleh: Anindito Yoga Pratama, S.T., MMSI

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi

SMA SANTO PAULUS PONTIANAK

`Piping` merupakan utility GNU/Linux yang dapat digunakan untuk mengarahkan sebuah output perintah menjadi masukan bagi perintah yang lain.

Bab 2 Struktur Dasar PHP

1 Pengenalan IDE Python

LAPORAN PRAKTIKUM SISTEM OPERASI

BAB 1 PENGENALAN LINUX

Otomasi Shell Script Lanjut

Mata Kuliah : Pemrograman Web II. Pokok Bahasan : Type Data & Operator. Okta Jaya Harmaja, M.Kom

Praktikum 3. Operasi Input Output

LAPORAN PRAKTIKUM SISTEM OPERASI PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

Pengenalan PHP Contoh penulisan file PHP :

MODUL 2 PHP INTRO PHP INTRO

BAB VIII SHELL (Pertemuan 10 dan 11)

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

Bab 2. Dasar-Dasar Pemrograman C

BAB II TEORI DASAR. Gambar 1 Kurva untuk interpolasi linier. Sehingga diperoleh persamaan dari interpolasi linier sebagai berikut :

BAB I SEKILAS TENTANG C

I. Dasar Teori. Shell Programming

A. Pemahaman Awal. Oleh : Fiftin Noviyanto

Java Application. Menampilkan Tulisan

Masuk / Keluar Sistem UNIX

PENGGUNAAN DATA DAN VARIABEL

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

Transkripsi:

BAB VI Variable, Escape & Pipe 1. Tugas dan Latihan 1.1 Tugas Pendahuluan Bagaimana mengubah semua file terakhir.html menjadi.php? (coba gunakan berbagai bentuk perintah mv)! Jelaskan dengan singkat shell lain yang tersedia di linux selain bash! 1.2 Tugas Praktik (di labolatorium) Tulis dan jalankan skrip berikut #!bin/bash # Nama file skrip: var2.sh a=5.66 b=8.67 c=`echo $a + $b bc` echo $a + $b = $c Tulis dan jalankan skrip berikut #!/bin/bash echo Hallo, $LOGNAME echo Tanggal sekarang `date` echo Pengguna : `who i am` echo Direktori aktif `pwd` Modifikasi program No.2 di atas sehingga juga dapat menampilkan daftar file dan direktori yang terdapat dalam direktori aktif! 1.3 Tugas Penutup Tulis dan jalankan skrip berikut #!bin/bash echo Daftar file anda: ; ls -l echo Thank U very Much - -

2. Variable Saat ini, setiap bahasa pemrograman mempunyai konsep tentang variabel suatu nama simbolik mewakili suatu alamat memory yang dapat diberikan suatu nilai, dibaca dan dimanipulasi. Demikian pula pada shell bash. Bagian ini menjelaskan tentang variabel yang dapat dibuat oleh pemrograman, dan menguraikan tentang variabel yang disediakan oleh sistem operasi. 2.1 Pembuatan variabel Perlu dicata bahwa harus tidak ada spasi (ruang) sebelum dan sesudah tanda sama dengan ('='): VAR=value benar sedangkan VAR = value tidak bekerja. Pada kasus pertama, shell melihat simbol = dan melakukan perintah sebagai pemberian atau pelewatan variabel. Pada kasus kedua shell menganggap bahwa VAR harus berupa nama perintah dan mencoba mengeksekusinya. Coba tulis kode berikut ke dalam file skrip var1.sh: #!/bin/bash # nama file skrip: var1.sh MY_MESSAGE= Hallo dunia echo $MY_MESSAGE ini melewatkan string Hallo dunia ke variabel MY_MESSAGE kemdia meng-echo-kan nilai dari variabel tersebut. Kita harus mengapit string Hallo dunia dengan tanda petik, tidak ada masalah dengan perintah echo Hallo dunia. Perintah echo menerima semua parameter yang diberikan. Variabel hanya dapat memegang satu nilai, sehingga satu string yang mengandung spasi harus di apit tanda petik agar shell mengetahui dan menganggap semuanya sebagai satu. Jika tidak, shell akan mencoba mengeksekusi perintah dunia setelah MY_MESSAGE=Hallo. Shell tidak mengenal type variabel, variabel boleh menyimpan string, integer dan bilangan rill dan apapun yang diinginkan. Seorang programmer yang telah terbiasa dengan PHP dan PERL menyukai ini. Jika kalian yang sering menggunakan C, Pascal ini akan terasa aneh. Semua nilai disimpan sebagai string, tetapi rutin yang mengharapkan numerik dapat melakukannya sebagai numerik. Jika anda melewatkan string ke suatu variabel kemudian mencoba untuk menambahkan 1 ke variabel tersebut, anda dilarang melakukannya. $ x= Hello $ y=`expr $x + 1` expr: non-numeric argument karena program eksternal bernama expr hanya mengharapkan numerik. Berikut ini adalah

contoh pembuatan variabel yang benar: MY_MESSAGE= Hallo Duniaku MY_SHORT_MESSAGE=hi MY_NUMBER=1; MY_PI=3.142 MY_OTHER_PI= 3.142 ; MY_MIXED=123abc karakter khusus harus dengan tepat di-escape untuk menghindari salah interpretasi oleh shell. Kita dapat secara interaktif meminta pengguna memasukkan nilai untuk suatu variabel menggunakan perintah read. Contoh kode berikut menanyakan si penggunak nilai untuk variabel MY_NAME, menggabungkan nilai variabel tersebut dengan string lain dan mencetaknya. #!/bin/sh # nama file skrip: var2.sh echo Who Are You? read MY_NAME echo Hello $MY_NAME hope you're well. apa yang terjadi jika baris terakhir tidak diakhiri tanda kutip ganda? Karakter petik tunggal di dalam you're tidak cocok sehingga memunculkan error. Hati-hati! Contoh di atas menggunakan perintah bawaan (built-in) shell read yang membaca baris dari input standard (biasanya keyboard) ke dalam variabel. Jika anda memasukkan nama lengkap (lebih dari satu kata) dan tidak menggunakan petik ganda di awal dan akhir perintah echo, maka luaran masih tetap benar. Bagaimana ini terjadi ya? Karena variabel MY_NAME telah dilingkupi dengan petik ganda. Perintah read secara otomatis menempatkan tanda petik, sehingga spasi tersebut di perlakukan dengan tepat. 2.2 Lingkup Variabel Variabel dalam shell bash tidak harus di declarasikan, sebagaimana dilakukan dalam bahasa lain seperti C. Tetapi jika anda membaca suatu variabel yang tidak di declarasikan, hasilnya adalah string kosong. Anda tidak mendapatkan pesan Erro. Ini dapat menyebabkan beberapa bug kecil, jika anda mempunyai variabel $MY_OBFUSCATED_VARIABEL=Hello dan kemudian memanggil echo $MY_OSFUCATED_VARIABEl. Anda tidak akan mendapatkan apapun (karena OBFUSCATED kedua salah ejaan). Ada perintah export yang mempunyai suatu efek penting terhadap lingkungan variabel. Anda harus memahami bagaimana perintah ini digunakan. Buat sebuah skrip shell kecil bernama myvar2.sh:

#!/bin/sh # nama file skrip: myvar2.sh echo MYVAR is : $MYVAR MYVAR= praktikumso echo MYVAR is : $MYVAR sekarang jalankan skrip tersebut: $./myvar2.sh MYVAR is : MYVAR is : praktikumso karena MYVAR belum diset kesuatu nilai, sehingga blank (kosong). Bagaimana jika kita berikan suatu nilai untuk variabel tersebut melalui shell interaktif? Apa hasilnya?lakukan apa yang diilustrasikan dibawah ini: $ MYVAR=hello $./myvar2.sh MYVAR is : MYVAR is : praktikumso Ternyata variabel MYVAR masih belum menyimpan suatu nilai, Mengapa ya? Saat anda memanggil myvar2.sh dari shell interaktif, suatu shell baru diciptakan untuk menjalankan skrip. Ini terjadi karena adanya baris #! /bin/sh pada awal skrip. Artinya, variabel MYVAR pada shell interaktif berbeda dengan MYVAR di dalam skrip yang dijalankan pada shell lain. Bagaimana agar nilai variabel pada shell interaktif dapat masuk kedalam skrip? Pingin tahu... perintah export jawabannya. Sekarang tulis baris baris berikut: $ export MYVAR $./myvar2.sh MYVAR is : hello MYVAR is : praktikumso Coba perhatikan baris ketiga dari skrip yang bertigas untuk mengubah nilai dari MYVAR. Tetapi tidak ada cara yang dapat digunakan untuk mengirim balik nilai variabel ke shell interaktif. Coba baca nilai dari MYVAR setelah eksekusi skrip shell: $ echo $MYVAR hello begitu skrip shell keluar, variabel lingkungannya dihancurkan. Tetapi MYVAR menjaga nilainya hello didalam shel interaktif. Apakah ada caranya agar supaya nilai variabel dari dalam skrip shell juga dapat diekspor ke shell interaktif? Gunakan operator titik. saat

memanggil skrip shell. Jika sebelumnya kita memanggil skrip dengan./nama_hile.sh maka sekarang kita memanggilnya dengan menuliskan../nama_file.sh. Perhatikan contoh berikut: $ MYVAR=hello $ echo $MYVAR hello $../myvar2.sh MYVAR is : hello MYVAR is : praktikumso $ echo $MYVAR praktikumso beginilah bagaimana sebuah file.profile atau.bash_profile bekerja, sebagai contoh. Dalam kasus ini kita tidak perlu meng-export MYVAR. Pastikan bukan echo MYVAR tetapi echo $MYVAR. Dan satu hal lain yang sering memunculkan kesalahan dalam pemanfaatan variabel adalah seperti pada contoh berikut: #!/bin/sh # Nama file skrip: user.sh echo siapa nama anda? read USER_NAME echo Halooo $USER_NAME echo Buat file bernama $USER_NAME_file touch $USER_NAME_file echo Test 1 2 3 >> ${USER_NAME}_file cat ${USER_NAME}_file setlah itu coba anda runningkan file user.sh tersebut. Apa yang dihasilkan dari file user.sh tersebut? Misalnya anda memasukkan andi sebagai USER_NAME apakah skrip akan membuat file bernama andi_file? TIDAK. Ini akan memunculkan error kecuali sebelumnya telah ada sebuah variabel dengan nama USER_NAME_file. Shell tidak mengetahui dimana ujung dari variabel. Bagaimana menyelesaikan permasalahan ini? Pingin tahu!!! oke ayo kita jawab, jawabannya adalah kita meletakkan variabel tersebut di dalam kurung kurawal. Sekarang coba kalian ubah skrip user.sh menjadi seperti berikut: #!/bin/sh # nama file : user.sh echo Siapa nama anda?

read USER_NAME echo Halooooo $USER_NAME echo Buat file bernama ${USER_NAME}_file touch ${USER_NAME}_file echo Test 1 2 3 >> ${USER_NAME}_file cat ${USER_NAME}_file shell telah mengetahui bahwa kita mengacu pada variabel USER_NAME dan ingin menambah akhiran _file kepada nilai dari variabel. Berhati-hatilah. Banyak pemrograman shell pemula melupakan hal sederhana ini. Perlu juga dicatat bahwa petik ganda yang melingkupi ${USER_NAME}_file jika pengguna memasukkan andi rahman (perhatikan spasi) maka tanpa tanda petik, argumen yang dilewatkan ke perintah touch menjadi andi dan rahman_file yaitu, dapat dikatakan berupa touch andi rahman_file yang akan men-touch dua file, bukan satu. Tanda petik menghindari masalah yang terjadi ini. 2.3 Willchard wilchard atau karakter asterisk (*) bukanlah hal baru jika kita telah biasa menggunakan console Linux. Bagian ini memaparkan bagaimana asterisk digunakan dalam skrip shell. Bagaimana kita menyalin semua file dari direktori /tmp/a ke dalam direktori /tmp/b. Bagaimana jika semua file yang disalin ber-ekstensi.txt? Semua file terakhiran.html? Tenang saja kita dapat menjawabnya dengan : $ cp /tmp/a/* /tmp/b/ $ cp /tmp/a/*.txt /tmp/b/ $cp /tmp/a/*.html /tmp/b/ sekarang bagaimana jika kita ingin mendapatkan daftar file di dalam /tmp/a/ tanpa menggunakan perintah ls /tmp/a? Bagaimana dengan echo /tmp/a/*? apa perbedaan utama luaran dari echo dan ls? Bergunakah ini? Bagaimana anda mengganti nama (rename) semua file terektensi.txt menjadi.bak? Perintah $ mv *.txt *.bak tidak akan memberikan hasil yang diharapkan. Coba gunakan echo bukan mv. 2.4 Karakter Escape Ada sejumlah karakter tertentu memiliki arti khusus bagi shell, misalnya karakter petik ganda ( ) yang menyebabkan shell memperhitungkan spasi dan Tab dalam pemrosesan teks,

contohnya sebagai berikut: $ echo Hallo Dunia Hallo Dunia $ echo Hallo Dunia Hallo Dunia bagaimana jika kita ingin menampilkan Hallo Dunia? $ echo Hallo \ Dunia\ Karakter pertama dan terakhir membungkus semuanya kedalam satu parameter yang dilewatkan ke perintah echo sehingga spasi yang ada antara dua kata tetap dijaga. Tetapi jika kode yang digunakan : $ echo Hallo Dunia akan diinterpretasikan sebagai tiga parameter: Hallo Dunia sehingga luarannya berupa Hello Dunia Perhatikan tanda petik ganda yang mengapit kata Dunia dinyatakan h]ilang. Ini karena tanda petik pertama dan kedua mematikan teks Hallo dan diikuti oleh spasi, sebagai argumen pertama, argumen kedua adalah teks Dunia tanpa tanda petik dan argumen ketiga merupakan string kosong. kita harus berhati-hati, perhatikan kode berikut: $ echo hello Dunia sebenarnya perintah tersebut memanggil perintah echo dengan satu parameter (tidak ada spasi antara parameter yang diapit tanda petik) dan kita dapat menguji ini dengan mangganti perintah echo, misalnya dengan perintah ls. Sebagian besar karakter (*, ', dll) tidak diterjemahkan jika diletakkan dalam petik ganda ( ). semua karakter diterima begitu saja dan dilewatkan ke perintah yang dipanggil. Contoh menggunakan asterisk (*) adalah sebagai berikut : $ echo * case s.html escape.shtml first.shtml functions.shtml hints.shtml index.shtml ip-primer.txt raid1+0.txt echo *.txt ip-primer.txt raid1+0.txt

echo * * echo *.txt *.txt Pada contoh pertama, * berarti menampilkan semua file di dalam direktori aktif kita. Pada contoh kedua, *.txt berarti memanggil semua file yang berakhiran.txt. Pada contoh ketiga, ditempatkan * di dalam petik ganda dan ini diinterpretasikan secara literal. Pada contoh ke- 4, sama dengan contoh ketiga. Hanya * disambung dengan string.txt. Namun,, $, `, dan \ masih diterjemahkanoleh shell bahkan pada saat diapit oleh petik ganda. Karakter backslash (\) dapat difunakan untuk menandakan karakter-karakter khusu ini sehingga tidak di terjemahkan oleh shell, tetapi dilewatkan lansung kepada perintah yang akan dijalankan (misalnya echo). Sehingga untuk menampilkan string (misal nilai $x adalah 5): Tanda petik ganda adalah, backslash adalah \, backtick adalah ` dan ini adalah variabel $, nilainya dari $x adalah 5 kita harus menuliskan kodenya seperti berikut : $ echo Tanda petik ganda adalah \, backslash \\, backtick adalah \` Tanda petik ganda adalah, backslash \, backtick adalah ` $echo dan ini adalah variabel \$, nilainya dari \$x adalah ${x} dan ini adalah variabel $, nilainya dari $x adalah 5 kita telah melihat kekhususan dari tanda untuk memastikan spasi dalam teks. Tanda dollar juga khusus karena menandai suatu variabel, sehingga $x digantikan oleh shell dengan isi dari variabel x. Backslash bersifat khusus karena menandakan karakter khusus lain.