OPERASI INPUT OUTPUT

POKOK BAHASAN :
• Pipeline
• Redirektion

TUJUAN BELAJAR :
Setelah mempelajari materi dalam bab ini, Mahasiswa diharapkan Mampu :
• Memahami konsep proses I/O dan redirection
• Memahami standar input, proses dan error
• Menggunakan notasi output, append dan here dokumen
• Memahami konsep PIPE dan Filter

DASAR TEORI :
1. Proses INPUT OUTPUT
Sebuah Proses memerlukan Input / Output



Instruksi / Command yang diberikan pada Linux melalui shell disebut sebagai eksekusi program yang selanjutnya disebut proses.
Setiap kali instruksi diberikan, maka linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID ( Process Identity )
Proses dalam linux membutuhkan input dan menghasilkan output.
Dalam konteks Linux input / output adalah :
- Keyboard
- Layar
- File
- Struktur data Kernel
- Peralatan input/output lainnya (network)


2. File DESCRIPTOR
Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan melalui angka yang dimulai dari 0,1,2 dan seterusnya.
Tiga buah file descriptor standar yang lalu diciptakan oleh proses adalah :
• 0 = keyboard ( standar input )
• 1 = layar ( standar output )
• 2 = layar ( standar error )


Linux tidak membedakan antara peralatan hardware dan file, Linux memanipulasi peralatan hardware sama dengan file.

3. PEMBELOKAN ( Redirection )
Pembelokan dilakukan untuk standar input, output dan error, yaitu mengalihkan file descriptor dari 0, 1 dan 2. simbo untuk pembelokan adalah :
0 < atau < Pengganti standar input
1 > atau > Pengganti standar output
2 > Pengganti error

4. PIPA ( PipeLine )
Mekanisme pipa digunakan sebagai alat komunikasi antar proses.

Input -> Proses1 -> Output = Input -> Proses2 -> Output

Proses 1 menghasilkan output yang selanjutnya digunakan sebagai input oleh proses 2. Hubungan output input ini dimanakan pipa, yang menghubungkan Proses 1 dengan proses2 dan dinyatakan dengan symbol “ | “.

Proses1 | Proses2

5. FILTER
Filter adalah utilitas yang dapat memproses standar input ( dari keyboard ) dan menampilkan hasilnya pada standar output ( layar ). Contoh filter adalah :
Cat, sort, grep, pr, head, tail, paste dan lainnya.
Pada sebuah rangkaian pipa :
P1 | P2 | P3 ……. | Pn-1 | Pn
Maka P2 sampai dengan Pn-1 mutlak harus utilitas Linux yang berfungsi sebagai filter. P1 (awal) dan Pn (terakhir) boleh tidak filter. Utilitas yang bukan filter misalnya who, ls, ps, lp, lpr, mail dan lainnya.
Beberapa perintah Linux yang digunakan untuk proses penyaringan antara lain :
• Perintah grep
Digunakan untuk menyaring masukan dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression.

• Perintah wc
Digunakan untuk menghitung jumlah baris, kata dan karakter dari baris-baris masukan yang diberikan kepadanya. Untuk mengetahui berapa baris yang digunkan option -1, untuk mengetahui berapa kata, gunakan option –w dan untuk mengetahui berapa karakter, gunkan option –c. jika salah satu option tidak digunakan, maka tampilannya adalah jumlah baris, jumlah kata dan jumlah karakter.


• Perintah sort
Digunakan untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter.

• Perintah cut
Digunakan untuk mengambil kolom tertentu dari baris-baris masukannya, yang ditentukan pada option -c

• Perintah uniq
Digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, biasanya digabungkan dalam pipeline dengan sort.

PERCOBAAN :
1. Login sebagai user.
2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini. Perhatikan hasil setiap percobaan.

Percobaan 1 : File Descriptor
1. Output ke layar (standar output), input dari system (kernel)
$ ps

2. Output ke layar (standar output), input dari keyboard (standar input)
$ cat
Hallo, Apa Kabar bro
Hallo, Apa Kabar bro
Exit dengan ^d
Exit dengan ^d
[ Ctrl+d ]

3. Input dari keyboard dan output ke alamat internet
$ mail irma14@gmail.com
Contoh surat yang langsung
Dibuat pada standar input (keyboard)
[ Ctrl+d]

4. Input nama direktori, output tidak ada (membuat direktori baru), bila terjadi error maka tampilan error pada layar (standar error)
$ mkdir mydir
$ mkdir mydir (terdapat pesan error)


Percobaan 2 : Pembelokan (redirection)
1. Pembelokan standar output
$ cat 1> myfile.txt
Ini adalah text yang saya simpan
Ke file myfile.txt

2. Pembelokan standar input, yaitu input dibelokkan dari keyboard menjadi file
$ cat 0< myfile.txt
$ cat myfile.txt

3. Pembelokan standar error untuk disimpan di file
$ mkdir mydir (terdapat pesan error)
$ mkdir mydir 2> myerror.text
$ cat myerror.txt

4. Notasi 2>& 1 : pembelokan standar error (2>) adalah identik dengan file descriptor1
$ ls filebaru (terdapat error)
$ ls filebaru 2> out.txt
$ cat out.txt
$ ls filebaru 2> out.txt 2>&1
$ cat out.txt

5. Notasi 1>&2 (atau >&2) : Pembelokan output adalah sama dengan file descriptor 2 yaitu standar error
$ echo “kata pertama” > surat
$ echo “kata kedua “ >> surat
$ echo “kata ketiga “ >> surat
$ cat surat
$ echo “kata keempat” > surat
$ cat surat

6. Notasi >> (append)
7. Notasi here document (<<++ ….. ++) digunakan sebagai pembatas input dari keyboard. Perhatikan bahwa tanda pembatas dapat digantikan dengan tanda apa saja, namun harus sama dan tanda penutup harus diberikan pada awal baris.
$ cat <<++
Hallo, apa kabar ?
Baik baik saja ?
Oche deh !
++
$ cat <<%%%
Hallo, apa kabar ?
Baik – baik saja ?
Ok !
%%%

8. Notasi – (input keyboard) adalah representan input dari keyboard. Artinya menampilkan file 1, kemudian menampilkan input dari keyboard dan menampilkan file ke 2. Perhatikan bahwa notasi “ – “ berarti menyelipkan input dari keyboard
$ cat myfile.txt – surat

9. Untuk membelokkan standar output ke file, digunakan operator >
$ echo hello
$ echo hello > output
$ cat output

10. Untuk menambah output ke file digunakan operator >>
$ echo bye >> output
$ cat output

11. Untuk membelokkan standar input digunakan operator <
$ cat < output

12. Pembelokan standar input dan standar output dapat dikombinasikan tetapi tidak boleh menggunakan nama file yang sama sebagai standar input dan output.
$ cat < output > out
$ cat out
$ cat < output >> out
$ cat out
$ cat < output > output
$ cat output
$ cat < out >> out (Proses tidak berhenti)
[ Ctrl+c ]
$ cat out

Percobaan 3 : Pipa (pipeline)
1. Operator pipa ( | ) digunakan untuk membuat eksekusi proses dengan melewati data langsung ke data lainnya
$ who
$ who | sort
$ who | sort –r
$ who > tmp
$ sort tmp
$ rm tmp
$ ls –l /etc | more
$ ls –l /etc | sort | more

Percobaan 4 : Filter
1. Pipa juga digunakan untuk mengkombinasikan utilitas sistem untuk membentuk fungsi yang lebih kompleks
$ w –h | grep
$ grep /etc/passwd
$ ls /etc | wc
$ ls /etc | wc –l
$ cat > kelas1.txt
Badu
Zulkifli
Yulizir
Sangkala
Tuo
[ Ctrl+d ]
$ cat > kelas2.txt
Buttu
Meong
Asep
Marapue
[ Ctrl+d]
$ cat kelas1.txt kelas2.txt | sort
$ cat kelas1.txt kelas2.txt > kelas.txt
$ cat kelas.txt | sort | uniq


SOAL LATIHAN < Hasilnya langsung dikumpulkan ke asisten >

1. Lihat daftar secara lengkap pada direktori aktif, belokkan tampilan standar output ke file baru.
2. Lihat daftar secara lengkap pada direktori /etc/passwd, belokkan tampilan standar output ke file baru tanpa menghapus file baru sebelumnya.
3. Urutkan file baru dengan cara membelokkan standar input
4. Urutkan file baru dengan cara membelokkan standar input dan standar output ke file baru.urut.
5. Buatlah direktori latihan2 sebanyak 2 kali dan belokkan standar error ke file rmdirerror.txt.
6. Urutkan kalimat berikut :
Jakarta
Bandung
Surabaya
Padang
Palembang
Lampung
Dengan menggunakan notasi here document (<@@@ ….. @@@)

7. Hitung jumlah baris, kata dan karekter dari file baru.urut dengan menggunakan filter dan tambahkan data tersebut ke file baru.
8. Gunakan perintah di bawah ini dan perhatikan hasilnya.
$ cat > hello.txt
Dog cat
Cat duck
Dog chicken
Chicken duck
Chicken cat
Dog duck
[ Ctrl+d ]
$ cat hello.txt | sort | uniq
$ cat hello.txt | grep “dog” | grep –v “cat”


Komentar

Posting Komentar

BlogList

Postingan populer dari blog ini

ACCUMULATOR, COUNTER, DAN SWITCHING

PENGERTIAN DASAR DAN SIMBOL FLOWCHART