PRAKTIKUM 2 OPERASI INPUT OUTPUT

NAMA : FATIA YASMIN HENDRY

KELAS : BM-5A

NIM : 2023000032

M.K : SISTEM OPERASI



OPERASI INPUT OUTPUT

  • Pokok Bahasan

  1. Pipeline
  2. Redirection

  • Tujuan Belajar

  1. Memahami konsep proses I/O dan redirection
  2. Memahami standar input, output dan error
  3. Menggunakan notasi output, append dan here document
  4. Memahami konsep PIPE dan filter

  • Abstrak
          Abstrak dari materi operasi input-output (I/O) adalah konsep dasar yang digunakan dalam pemrograman komputer untuk mengelola aliran data yang masuk dan keluar dari sistem. I/O adalah salah satu aspek yang penting dalam pemrograman, karena memungkinkan komunikasi antara program dan dunia luar, termasuk pengguna dan perangkat keras. Abstraksi I/O memungkinkan pengembang untuk menggunakan operasi I/O tanpa harus terlalu peduli dengan detail teknis dari perangkat keras atau sistem operasi yang digunakan. Ini mencakup pemahaman tentang sumber input, tujuan output, buffering, error handling, dan abstraksi perangkat keras.

          Secara umum, abstrak I/O mengizinkan pengembang untuk:
  1. Membaca data dari berbagai sumber, seperti keyboard, berkas, sensor, atau perangkat jaringan, tanpa harus tahu bagaimana data tersebut diterima secara fisik.
  2. Menulis data ke berbagai tujuan, seperti berkas, layar, atau perangkat jaringan, tanpa perlu mengetahui detail implementasi perangkat keras.
  3. Menggunakan operasi I/O dengan cara yang efisien, termasuk buffering data untuk mengurangi overhead komunikasi.
  4. Mengatasi kesalahan yang mungkin terjadi selama operasi I/O dengan menangani exception atau error handling.
  5. Menyediakan abstraksi perangkat keras sehingga kode dapat lebih mudah diporting ke berbagai platform.
  6.           Pemahaman konsep abstrak I/O sangat penting dalam pengembangan perangkat lunak, karena memungkinkan pengembang untuk membuat program yang lebih fleksibel, portabel, dan dapat diandalkan. Dengan memisahkan logika bisnis dari detail teknis I/O, pengembang dapat lebih fokus pada pemrosesan data dan fungsi inti aplikasi mereka. 

  • Teori Singkat
      1. Proses I/O
          Instruksi (command) yang diberikan pada Linux melalui Shell disebut sebagai eksekusi program yang sela njutnya disebut proses. Setiap kali instruksi diberikan, maka Linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID (Process Identity). Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output. 
Dalam konteks Linux input/o utput adalah : Keyboard (input), Layar (output), Files, Struktur data kernel, dan Peralatan I/O lainnya (misalnya 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), dan 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 standard input, output dan error, yaitu untuk mengalihkan file descriptor dari 0, 1 dan 2. Simbol untuk pembelokan adalah :

0< atau < pengganti standard input 

1> atau > pengganti standard output

2>

      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 dinamakan pipa, yang menghubngkan Proses 1 dengan Proses2 dan dinyatakan dengan symbol “|”.
          Proses1 | Proses2
      5. Filter
          Filter adalah utilitas Linux yang dapat memproses standard input (dari keyboard) dan menampilkan hasilnya pada standard 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 masukannya da n 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 gunakan option –l, untuk mengetahui berapa kata, gunakan option –w dan untuk mengetahui berapa karakter, gunakan 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.

  • Tugas Pendahuluan
Soal :

1. Apa yang dimaksud redirection ?

Jawaban : Redirection adalah Pembelokan dilakukan untuk standard input, output dan error, yaitu untuk mengalihkan file descriptor dari 0, 1 dan 2. 

2. Apa yang dimaksud pipeline ?

Jawaban : Pipeline adalah suatu mekanisme pipa yang digunakan sebagai alat komunikasi antar proses. Dimana proses 1 menghasilkan output yang selanjutnya digunakan sebagai input oleh Proses 2. Hubungan output input ini dinamakan pipa

3. Apa yang dimaksud perintah di bawah ini :

echo, cat, more, sort, grep, wc, cut, uniq

Jawaban :

-Echo : Perintah yang digunakan untuk menampilkan output ke layar.

-Cat : Perintah untuk mencetak/menampilkan ke layar monitor isi dari sebuah file text.

-More : Perintah untuk melihat isi suatu file dengan fasilitas melihat isi file dari atas dan untuk kebawah menggunakan tombol enter untuk perbaris dan tombol spasi untuk perlayar.

-Sort : Perintah untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter.

-Grep : Perintah untuk menyaring masukannya da n menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression.

-Wc : Perintah untuk menghitung jumlah baris, kata dan karakter dari baris-baris masukan yang diberikan kepadanya.

-Cut : Perintah untuk mengambil kolom tertentu dari baris-baris masukannya, yang ditentukan pada option –c.

-Uniq : Perintah untuk mengambil kolom tertentu dari baris-baris masukannya, yang ditentukan pada option –c.

  • 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 (standard input)

$ cat
hallo, apa khabar
hallo, apa khabar
exit dengan ^d
exit dengan ^d
[Ctrl-d]


3. Input dari keyboard dan output ke alamat internet

fatiayasmin05@gmail.com
contoh surat yang langsung
dibuat pada standard input (keyboard)
[Ctrl-d]




4. Input nama direktori, output tidak ada (membuat direktori baru), bila terjadi error

maka tampilan error pada layar (standard error)

$ mkdir mydir
$ mkdir mydir (Terdapat pesan error)

          Percobaan 2 : Pembelokan (redirection)

1. Pembelokan standar output

$ cat 1> myfile.txt
Ini adalah teks yang saya simpan
Ke file myfile.txt

\

2. Pembelokan standar input, yaitu input dibelokkan dari keyboard menjadi dari 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.txt
$ cat myerror.txt

4. Notasi 2>&1 : pembelokan standar error (2>) adalah identik dengan file descriptor 1.

$ ls filebaru (Terdapat pesan 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 standar output adalah sama dengan file descriptor 2 yaitu standar error

$ echo “mencoba menulis file” 1> baru
$ cat filebaru 2> baru 1>&2
$ cat baru

6. Notasi >> (append)

$ echo “kata pertama” > surat
$ echo “kata kedua” >> surat
$ echo “kata ketiga” >> surat
$ cat surat
$ echo “kata keempat” > surat
$ cat surat

7. Notasi here document (<<++ …. ++) digunakan sebagai pembatas input dari keyboard. Perhatikan bahwa tanda pembatas dapat digantikan dengan tanda apasaja, namun harus sama dan tanda penutup harus diberikan pada awal baris

$ cat <<++
Hallo, apa kabar ?
Baik-baik saja ?
Ok!
++
$ 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 2. Perhatikan bahwa notasi “-“ berarti menyelipkan input dari keyboard

$ cat myfile.txt – surat

9. Untuk membelokkan standart output ke file, digunakan operator >

$ echo hello
$ echo hello > output
$ cat output

10. Untuk menambahkan output ke file digunakan operator >>

$ echo bye >> output
$ cat output

11. Untuk membelokkan standart input digunakan operator <

$ cat < output

12. Pembelokan standart input dan standart output dapat dikombinasikan tetapi tidak boleh menggunakan nama file yang sama sebagai standart 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


2. Pipa juga digunakan untuk mengkombinasikan utilitas sistem untuk membentuk fungsi yang lebih kompleks

$ w –h | grep <user>
$ grep <user> /etc/passwd
$ ls /etc | wc
$ ls /etc | wc –l
$ cat > kelas1.txt
Badu
Zulkifli
Yulizir
Yudi
Ade
[Ctrl-d]
$ cat > kelas2.txt
Budi
Gama
Asep
Muchlis
[Ctrl-d]
$ cat kelas1.txt kelas2.txt | sort
$ cat kelas1.txt kelas2.txt > kelas.txt
$ cat kelas.txt | sort | uniq




  • Latihan

1. Lihat daftar secara lengkap pada direktori aktif, belokkan tampilan standard output ke file baru.
Jawaban :
Untuk melihat daftar direktori aktif, gunakan perintah $ ls, sedangkan untuk membelokkan tampilan standard output ke file baru, gunakan ‘>’

2. Lihat daftar secara lengkap pada direktori /etc/passwd, belokkan tampilan standard output ke file baru tanpa menghapus file baru sebelumnya.
Jawaban :
Untuk melihat daftar lengkap dari direktori /etc/passwd, gunakan perntah $ ls, sedangkan untuk membelokkan tampilan standard output ke file baru tanpa menghapus file baru sebelumnya, gunakan ‘>>’

3. Urutkan file baru dengan cara membelokkan standard input.
Jawaban :
Untuk mengurutkan file, gunakan perintah $ sort, sedangkan untuk membelokkan standard input, gunakan ‘<’

4. Urutkan file baru dengan cara membelokkan standard input dan standard output ke file baru.urut.
Jawaban :
Untuk mengurutkan file, gunakan perintah $ sort, sedangkan untuk membelokkan standard input, gunakan ‘<’, sedangkan untuk membelokkan standard output ke file, gunakan ‘>’. Pembelokan standart input dan standart output dapat dikombinasikan asalkan tidak boleh menggunakan nama file yang sama sebagai standart input dan output

5. Buatlah direktori latihan2 sebanyak 2 kali dan belokkan standard error ke file rmdirerror.txt.
Jawaban :
Gunakan perintah $ mkdir untuk membuat direktori baru. Saat membuat direktori yang sama sebanyak dua kali, akan muncul pesan error. Pesan error itu kemudian dibelokkan ke file dengan menggunakan ‘2>’

6. Urutkan kalimat berikut :
    Jakarta
    Bandung
    Surabaya
    Padang
    Palembang
    Lampung

    Dengan menggunakan notasi here document (<@@@ …@@@)

Jawaban :

Pertama, buat notasi here document yang akan dibelokkan ke sebuah file kemudian isi document tersebut. Setelah diisi dan diakhiri, isi dokumen akan tersimpan ke file yang dibelokkan. File tersebut kemudian diurutkan menggunakan perintah $ sort.

7. Hitung jumlah baris, kata dan karakter dari file baru.urut dengan menggunakan filter dan                        tambahkan data tersebut ke file baru.

Jawaban :

Untuk mendapatkan jumlah baris, kata, dan karakter (secara berurutan) dari sebuah file, gunakan perintah wc yang dipipakan dengan perintah cat. Hasilnya kemudian bisa ditambahkan ke file menggunakan ‘>>'

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”

Jawaban :

Uniq digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, Grep digunakan untuk menyaring masukannya dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression. Salah satu regular expression dari grep adalah -v (invert0match), yang akan menampilkan baris yang TIDAK mengandung pola yang ditentukan.

  • Laporan Resmi

1. Analisa hasil percobaan 1 sampai dengan 3, untuk setiap perintah jelaskan tampilannya.
    Jawaban : 
    Percobaan 1 dengan file descriptor merupakan eksperimen yang melibatkan penggunaan file descriptor dalam pemrograman sistem atau bahasa pemrograman tertentu. File descriptor adalah nomor integer yang digunakan oleh sistem operasi untuk mengidentifikasi dan mengakses file atau aliran data yang terbuka. Analisis eksperimen ini harus disesuaikan dengan konteks dan tujuan eksperimen tertentu. Eksperimen ini dapat membantu pengembang dan peneliti untuk mendapatkan pemahaman yang lebih baik tentang bagaimana file descriptor digunakan dalam pemrograman sistem dan bagaimana mereka dapat digunakan dalam aplikasi yang lebih kompleks.
    Percobaan 2 Analisis percobaan tentang pembelokan (redirector) dalam Linux akan berkaitan dengan penggunaan alat dan konsep yang tersedia di sistem operasi Linux untuk mengalihkan aliran data atau lalu lintas dari satu sumber atau tujuan ke yang lain. Redirector adalah alat atau mekanisme yang sangat berguna dalam sistem Linux, terutama dalam hal mengelola aliran data dan lalu lintas.
    Percobaan 3 Analisis percobaan tentang penggunaan pipa (pipeline) dalam komputasi adalah penelitian mengenai konsep penggabungan aliran data dan pemrosesan sekuensial dalam sistem komputer. Pipa memungkinkan aliran data untuk mengalir melalui serangkaian proses atau perintah secara berurutan, di mana keluaran dari satu proses menjadi masukan untuk proses berikutnya. Eksperimen pipa adalah cara yang efisien untuk mengolah dan mengelola data dalam sistem komputer Linux. Kemampuan untuk menggabungkan berbagai perintah dan alat dengan cepat dan mudah menjadikannya salah satu alat yang kuat dalam pemrosesan data dan otomatisasi tugas di lingkungan Linux

2. Kerjakan latihan diatas dan analisa hasilnya
    Jawaban : 
    Analisa no. 1 Untuk melihat daftar direktori aktif, gunakan perintah $ ls, sedangkan untuk membelokkan tampilan standard output ke file baru, gunakan ‘>’
    Analisa no. 2 Untuk melihat daftar lengkap dari direktori /etc/passwd, gunakan perntah $ ls, sedangkan untuk membelokkan tampilan standard output ke file baru tanpa menghapus file baru sebelumnya, gunakan ‘>>’
    Analisa no. 3 Untuk mengurutkan file, gunakan perintah $ sort, sedangkan untuk membelokkan standard input, gunakan ‘<’
    Analisa no. 4 Untuk mengurutkan file, gunakan perintah $ sort, sedangkan untuk membelokkan standard input, gunakan ‘<’, sedangkan untuk membelokkan standard output ke file, gunakan ‘>’. Pembelokan standart input dan standart output dapat dikombinasikan asalkan tidak boleh menggunakan nama file yang sama sebagai standart input dan output
    Analisa no. 5 Gunakan perintah $ mkdir untuk membuat direktori baru. Saat membuat direktori yang sama sebanyak dua kali, akan muncul pesan error. Pesan error itu kemudian dibelokkan ke file dengan menggunakan ‘2>’
    Analisa no. 6 Pertama, buat notasi here document yang akan dibelokkan ke sebuah file kemudian isi document tersebut. Setelah diisi dan diakhiri, isi dokumen akan tersimpan ke file yang dibelokkan. File tersebut kemudian diurutkan menggunakan perintah $ sort.
    Analisa no. 7 Untuk mendapatkan jumlah baris, kata, dan karakter (secara berurutan) dari sebuah file, gunakan perintah wc yang dipipakan dengan perintah cat. Hasilnya kemudian bisa ditambahkan ke file menggunakan ‘>>'
    Analisa no. 8 Uniq digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, Grep digunakan untuk menyaring masukannya dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression. Salah satu regular expression dari grep adalah -v (invert0match), yang akan menampilkan baris yang TIDAK mengandung pola yang ditentukan.

3. Berikan kesimpulan dari praktikum ini.

    Jawaban : 
    Sebuah proses memerlukan Input dan Output. Instruksi (command) yang diberikan pada Linux melalui Shell disebut sebagai eksekusi program yang sela njutnya disebut proses. Setiap kali instruksi diberikan, maka Linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID (Process Identity). Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output. Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan.
    Pada Linux, terdapat metode File Descriptor, Redirection, Pipelining, dan filter. File descriptor merupakan cara Linux berkomunikasi dengan file. File descriptor direpresentasikan melalui angka yang dimulai dari 0, 1, 2 dan seterusnya. Redirection adalah pembelokan yang dilakukan untuk standar input, output, dan error dan untuk mengalihkan file descriptor dari 0, 1, dan 2. Pipeline adalah suatu mekanisme pipa yang digunakan sebagai alat komunikasi antar proses. Sedangkan filter adalah utilitas Linux yang dapat memproses standard input (dari keyboard) dan menampilkan hasilnya pada standard output (layar).
    Secara keseluruhan, memahami operasi input-output adalah keterampilan penting karena memungkinkan pengembang untuk membangun aplikasi yang interaktif, efisien, dan dapat diandalkan, serta meningkatkan portabilitas kode.
  • Kesimpulan
          Sebuah proses memerlukan Input dan Output. Instruksi (command) yang diberikan pada Linux melalui Shell disebut sebagai eksekusi program yang sela njutnya disebut proses. Setiap kali instruksi diberikan, maka Linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID (Process Identity). Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output. Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan.
          Pada Linux, terdapat metode File Descriptor, Redirection, Pipelining, dan filter. File descriptor merupakan cara Linux berkomunikasi dengan file. File descriptor direpresentasikan melalui angka yang dimulai dari 0, 1, 2 dan seterusnya. Redirection adalah pembelokan yang dilakukan untuk standar input, output, dan error dan untuk mengalihkan file descriptor dari 0, 1, dan 2. Pipeline adalah suatu mekanisme pipa yang digunakan sebagai alat komunikasi antar proses. Sedangkan filter adalah utilitas Linux yang dapat memproses standard input (dari keyboard) dan menampilkan hasilnya pada standard output (layar).
          Secara keseluruhan, memahami operasi input-output adalah keterampilan penting karena memungkinkan pengembang untuk membangun aplikasi yang interaktif, efisien, dan dapat diandalkan, serta meningkatkan portabilitas kode.
  • Daftar Pustaka/Referensi
https://www.academia.edu/29048902/Sistem_Operasi_Input_Output_praktikum_

Comments

Popular posts from this blog

PRAKTIKUM 7 UNIX SYSTEM CALL & MANAJEMEN MEMORI

PRAKTIKUM 8 SISTEM FILE

PRAKTIKUM MANAJEMEN APLIKASI