Anda di halaman 1dari 24

LAPORAN RESMI READING INPUT FILE

Oleh :

Ahmad Reza Musthafa (7609040007) 2 D4 TEKNIK KOMPUTER

PROGRAM STUDI D4 TEKNIK KOMPUTER POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - ITS

Analisa Perrcobaan diatas dilakukan user dengan mengeksekusi baris kode program awk BEGIN , RS =/ ,print $0 - BBS-list. Seperti variable lainnya, nilai dari RS dapat diganti didalam program awk dengan operator assignment, dalam source code diatas dideklarasikan nilai dari RS yaitu berupa string / slash. Tujuan dari percobaan diatas yaitu untuk menghilangkan string yang berupa / dari file BBS-list yang kemudian mencetak hasilnya pada terminal. Baris data pada field pertama dan baris kelima yaitu camelot menghasilkan posisi output yang berbeda dari data yang lain, hal tersebut dikarenakan data Camelot pada field ketiga hanya memiliki satu data dan tidak terdapat string yang berupa /, sehingga terminal akan menghasilkan list baris data tersebut layaknya data asli. Data lain pada field ketiga yang memiliki string berupa / akan mengalami pemisahan berupa spasi

2 D4 Teknik Komputer| 7609040007

Analisa Perrcobaan diatas dilakukan user dengan mengeksekusi baris kode program awk , print $0 - RS =/ BBS-list Seperti variable lainnya, nilai dari RS dapat diganti didalam program awk dengan operator assignment, dalam source code diatas dideklarasikan nilai dari RS yaitu berupa string / slash. Seperti pada percobaan sebelumnya, tujuan dari percobaan diatas yaitu untuk menghilangkan string yang berupa / dari file BBS-list yang kemudian mencetak hasilnya pada terminal. Baris data pada field pertama dan baris kelima yaitu camelot menghasilkan posisi output yang berbeda dari data yang lain, hal tersebut dikarenakan data Camelot pada field ketiga hanya memiliki satu data dan tidak terdapat string yang berupa /, sehingga terminal akan menghasilkan list baris data tersebut layaknya data asli. Data lain pada field ketiga yang memiliki string berupa / akan mengalami pemisahan berupa spasi

2 D4 Teknik Komputer| 7609040007

Analisa Percobaan diatas bertujuan untuk memanfaatkan penggunaan pipe antara penggunaan intruksi system yaitu echo dengan awk program. Output dari percobaan diatas yaitu 0, dikarenakan intruksi echo hanya berdiri sendiri atau tidak memiliki record, sehingga tidak diketahui nilai dari variable, maka terminal akan menghasilkan nilai default dari integer yaitu 0

Analisa Percobaan diatas bertujuan untuk implementas penggunaan record dengan menggunakan intruksi echo. Proses awal dari pembuatan source yaitu pendeklarasian nilai dari masing-masing record. Untuk mendeklarasikan nilai dari record-record, dapat digunakan intruksi echo dengan format echo <nama_record1> <nilai> <nama_record2> <nilai> Intruksi tersebut dalam pemisahan data record memanfaatkan pemisahan data berupa kolom atau menempati masing-masing field, yang kemudian data dapat dipanggil dengan pemanfaatan field tersebut. Intruksi selanjutnya yaitu pengkondisian berupa pipe terhadap baris program selanjutnya, penjelasan dari baris program awk diatas yaitu apabila string pada field dari terkecil menuju kea rah field dengan index besar dan memperoleh nilai dari suatu string yang berupa huruf besar, maka akan menggunakan huruf tersebut sebagai batas untuk record selanjutnya, akan tetapi jika tidak terdapat string yang berupa huruf besar, maka record bernilai null

2 D4 Teknik Komputer| 7609040007

Analisa Praktikum di atas bertujuan untuk mencetak suatu record dari baris data yang memiliki atau mengandung suatu data berupa string yang dieksekusi melalui awk pada terminal. Dimana user melakukan pencarian data yang menempati record yang memiliki data yang terdiri dari string foo, setelah itu maka user melakukan pencetakkan record tersebut pada terminal dimana record yang dicetak merupakan pada field ke 2. User dapat memanfaatkan beberapa intruksi untuk melakukan pencetakan output pada terminal. File BBS-list diatas terdiri dari lebih dari satu field, sehingga ketika user menginginkan untuk mengakses suatu field tertentu, dapat memanfaatkan tanda $ disusul dengan field yang dituju. Sehingga output ketika melakukan pencetakan suatu data yang memiliki banyak field, tergantung dari field keberapa yang hendak dicetak. Apabila user menginginkan semua field dari suatu record dicetak, maka dapat menggunakan $0 setelah intruksi print. Operator ~ yaitu Jadi record yang mengandung string berupa foo maka akan dicetak record tersebut secara keseluruhan field, hal tersebut dikarenakan penggunaan source print $0

Analisa Dari source diatas yaitu bertujuan untuk mencetak record dari first field dan last field dari file BBSlist yang mengandung string berupa foo

2 D4 Teknik Komputer| 7609040007

Praktikum di atas bertujuan untuk mencetak suatu record dari baris data yang memiliki atau mengandung suatu data berupa string yang dieksekusi melalui awk pada terminal. Dimana user melakukan pencarian data yang menempati record yang memiliki data yang terdiri dari string foo, setelah itu maka user melakukan pencetakkan record tersebut pada terminal dimana record yang dicetak merupakan pada field ke 2. User dapat memanfaatkan beberapa intruksi untuk melakukan pencetakan output pada terminal. File BBS-list diatas terdiri dari lebih dari satu field, sehingga ketika user menginginkan untuk mengakses suatu field tertentu, dapat memanfaatkan tanda $ disusul dengan field yang dituju. Sehingga output ketika melakukan pencetakan suatu data yang memiliki banyak field, tergantung dari field keberapa yang hendak dicetak.

Analisa Percobaan diatas dilakukan user dengan mengeksekusi baris program awk ,nboxes =$3 ;$3 =$3-10 print nboxes, $3 - tabel2, dimana file tabel2 berupa record yang memiliki field lebih dari tiga. nboxes=$3 Merupakan intruksi untuk untuk mendeklarasikan variable nboxes dimana variable tersbut diisi dengan record pada field ketiga dari file tabel2, keseluruhan dari record (dari baris pertama sampai diperoleh suatu nilai null) akan disimpan pada variable tersebut, dimana variable tersebut memiliki nilai yang memiliki tempat masing-masing intruksi selanjunya yaitu $3=$3-10 Merupakan baris perhitungan yang bertujuan untuk mengurangi nilai dari record pada field ketiga dengan 10 dari masing-masing baris data. Ketika user mengeksekusinya, maka akan dihasilkan output seperti diatas dimana pada setiap

2 D4 Teknik Komputer| 7609040007

record perbaris memiliki perbedaan data sebesar 10 pada masing-masing field

Analisa Percobaan diatas dilakukan user dengan mengeksekusi baris program awk ,$2=$2-10;print $0- tabel2, dimana file tabel2 berupa record yang memiliki field lebih dari tiga. intruksi selanjutnya yaitu $2=$2-10 Merupakan baris perhitungan yang bertujuan untuk mengurangi nilai dari record pada field kedua dengan 10 dari masing-masing baris data. Ketika user mengeksekusinya, maka akan dihasilkan output seperti diatas dimana pada setiap record perbaris memiliki perbedaan data sebesar 10 pada masing-masing field Setelah itu dengan menggunakan intruksi print $0, maka akan ditampilkan keseluruhan record dan field, dimana pada field kedua telah mengalami pengurangan nilai sebesar 10.

2 D4 Teknik Komputer| 7609040007

Analisa Percobaan diatas dilakukan user dengan mengetikkan baris program awk , $6=($5+$4+$3+$2) >print $6 - tabel2, dimana file tabel2 terdiri dari beberapa record dan lima field. Intruksi $6=$5+$4+$3+$2 Merupakan intruksi yang bertujuan untuk menjumlahkan data pada record lima, empat, tiga dan dua dari masing-masing baris, yang kemudian hasil dari penjumlahan tersebut disimpan didalam field keenam, sebelumnya field tersebut tidak terdapat didalam file tabel2, dengan memanfaatkan operator > yang berfungsi untuk membelokkan standar output pada suatu field secara temporary atau sementara, sehingga ketika intruksi print memanggil field keenam maka akan dihasilkan nilai tersebut berupa nilai integer hasil dari penjumlahan data integer

2 D4 Teknik Komputer| 7609040007

Analisa BEGIN{ If ($(NF+1)!="") #penggunaan state yang sebenarnya sangat kecil kemungkinan untuk bernilai true print "cant happen" #event ketika bernilai true else print "everything is normal" #event jika bernilai false } Intruksi tersbut bertujuan untuk melakukan pengkondisian terhadap suatu file yang dipanggil bersamaan dengan program awk, kondisi tersebut berlaku untuk semua file yang bertipe ASCII text. Dimana file yang diinputkan akan mengalami penyeleksian terhadap tiap field, dikarenakan state dari pengkondisian diats yaitu memanfaatkan nilai dari field setelah field terakhir yaitu NF, jika setelah field terakhir masing terdapat data, hal tersebut tidak akan terjadi, maka akan kecil kemungkinan suatu file mengalami kondisi tersebut, oleh karena itu banyak file text yang melompat menuju state else dari state awal, sehingga ditampilkan teks berupa everything is normal

Analisa Percobaan diatas menggunakan intruksi echo yang memanfaatkan library dari system operasi linux. Dimana echo tersebut berfungsi untuk mendeklarasi nilai dari record-record, dalam source diatas dibentuk 4 record, diantaranya yaitu a, b, c, d. Setelah itu terdapat pemanfaatkan kondisi pipelining dengan tanda | yang berfungsi untuk sent

2 D4 Teknik Komputer| 7609040007

record variable pada baris awk program selanjutnya. Dalam baris program awk tersebut diset nilai variable OFS=: dan $2= Setelah itu terdapat penggunaan intruksi print untuk mencetak record secara keseluruhan, dimana pada record field kedua dihapus dan direplace dengan null, setelah dicetak maka akan dihasilkan output $0=a::c:d Dan nilai dari NF=4, dikarenakan hanya terdapat 4 field dalam record tersebut

Analisa Percobaan diatas menggunakan intruksi echo yang memanfaatkan library dari system operasi linux. Dimana echo tersebut berfungsi untuk mendeklarasi nilai dari record-record, dalam source diatas dibentuk 4 record awal, diantaranya yaitu a, b, c, d. Setelah itu terdapat pemanfaatkan kondisi pipelining dengan tanda | yang berfungsi untuk sent record variable pada baris awk program selanjutnya. Dalam baris program awk tersebut diset nilai variable OFS=: dan $2= dan juga nilai dari field $6=new. Sebelumnya field keenam tidak memiliki data. Setelah itu terdapat penggunaan intruksi print untuk mencetak record secara keseluruhan, dimana pada record field kedua dihapus dan direplace dengan null, setelah dicetak maka akan dihasilkan output $0=a::c:d::new. Secara otomatis nilai dari field kelima =null selama tidak dideklarasikan nilainya sebelumnya. Dan nilai dari NF=6, dikarenakan hanya terdapat 6 field dalam record tersebut setelah dideklarasikan nilai dari field keenam

2 D4 Teknik Komputer| 7609040007

10

Analisa Percobaan diatas menggunakan intruksi echo yang memanfaatkan library dari system operasi linux. Dimana echo tersebut berfungsi untuk mendeklarasi nilai dari record-record, dalam source diatas dibentuk 6 record awal, diantaranya yaitu a, b, c, d, e, f Setelah itu terdapat pemanfaatkan kondisi pipelining dengan tanda | yang berfungsi untuk sent record variable pada baris awk program selanjutnya. Dalam baris program awk tersebut digunakan baris program untuk melakukan pencetakkan data NF, dengan menggunakan intruksi print. Setelah itu nilai dari NF diset menjadi 3, jadi record yang dipakai hanya dari field kesatu sampai ketiga. Jadi record hanya berupa a b c

Analisa Percobaan diatas memanfaatkan intruksi echo dari library system operasi linux. Dimana dalam penggunaannya bertujuan untuk mendeklarasikan record berupa a b c d yang kemudian memanfaatkan kondisi pipelining dari program awk dengan intruksi print $2, jadi akan menghasilkan output berupa b, dimana record tersebut terletak pada field kedua Pada baris program selanjutnya, yaitu penggunaan record yang sama dan kemudian memanfaatkan pipelining terhadap program awk berikutnya, dalam baris program tersebut dideklarasikan nilai dari FS=[\t\n]+ Sehingga akan melakukan tabulasi dan enter terhadap masing-masing record.

2 D4 Teknik Komputer| 7609040007

11

Sehingga field kedua ditempati oleh record pertama dan seterusnya. Percobaan selanjutnya memanfaatkan intruksi echo dari library system operasi linux. Dimana dalam penggunaannya bertujuan untuk mendeklarasikan record berupa \t a b c d yang kemudian memanfaatkan kondisi pipelining dari program awk dengan intruksi print;$2=$2;print. Maka akan secara otomatis akan dihasilkan output untuk intruksi print pertama yaitu record awal dengan menampilkan space sebelum record. Untuk menghilangkan space tersebut dapat dilakukan dengan mendeklarasikan nilai dari field yang dituju bernilai dengan field tersebut, maka ketika program dieksekusi, tidak dijumpai adanya space

Analisa Percobaan diatas memanfaatkan intruksi echo dari library system operasi linux. Dimana dalam penggunaannya bertujuan untuk mendeklarasikan record berupa xxAA xxBBxx C yang kemudian memanfaatkan kondisi pipelining dari program awk dengan intruksi nawk F (^x+)|( +) ,for (i=1;i<=NF;i++) printf -->%s<-- \n,$i -

Analisa 2 D4 Teknik Komputer| 7609040007 12

Percobaan diatas memanfaatkan intruksi echo dari library system operasi linux. Dimana dalam penggunaannya bertujuan untuk mendeklarasikan record berupa a b yang kemudian memanfaatkan kondisi pipelining dari program awk dengan intruksi gawk BEGIN ,FS=Dalam source diatas dideklarasikan nilai dari FS adalah null atau Kemudian dengan memanfaatkan kondisi perulangan for dimana dalam perulangan tersebut memanfaatkan index dari field maksimum yaitu NF for(i=1;i<=NF;i+i+1){ print (Field %s is %s,i,$i) } Fungsi dari FS yaitu untuk separated, pemisah record, sehinnga record antara a dan b dikarenakan memiliki space, maka space tersebut digunakan sebagai separated, sehingga field menjadi 3 dan field kedua ditempati dengan nilai null. Dan $1=a Sehingga kondisi perulangan ketika i=3, maka $3=b #nilai NF=2

Analisa Intruksi program awk pada terminal diatas bertujuan untuk memanggil awk program yang bernama

2 D4 Teknik Komputer| 7609040007

13

baud.awk. dari baris perintah diatas nilai FS diset dengan karakter -. Program ini akan mencetak list dari file BBS-list yang contain string 300. Catatan untuk baris keempat dari output diatas, nilai original dari data tersebut : alpo-net 555-3412 2400/1200/300 A karakter - dalam system digunakan sebagai separator (pemisah) field. Jadi setelaah karakter tersebut, maka data selanjutnya pada field berikutnya tidak akan ditampilkan. Apabila karakter - digunakan untuk memisahkan data pada field yang sama, maka data setelah karakter tersebut akn diremove, dan field selanjutnya tidak akan ditampilkan.

Analisa 2 D4 Teknik Komputer| 7609040007 14

Program diatas bertujuan untuk memberikan pemisan (spacer) pada field kedua dan mengganti nilai dari field ketiga yang memiliki maksimal satu string berupa / ^ * dengan nilai 0, setelah itu tidak akan mengganti nilai dari data yang dimana record tersebut memiliki string / ^ * lagi. sub(/^ */,,idle) Merupakan intruksi untuk kondisi jika terdapat strin berupa / ^ * maka akan memasukkan nilai kedalam variable idle, setelah itu nilai dari variable idle digunakan dalam pengkondisian dengan state bahwa jika idle=, maka akan menghasilkan nilai balik = 0, namun jika terdapat data yang mengandung string berupa :, maka akan mengalami split dan akan memberikan nilai balik idle sesuai dengan perhitungan t[i]*60+t[2] namun juga jika data mengandung string day, maka nilai idle menjadi nilai idle dikalikan dengan 24 *60*60. Kemudian nilai dari field 1, 2 dan variable idle dicetak menggunakan intruksi print $1,$2,idle Untuk menjalankan awk program tersebut, maka dapat mengeksekusi intruksi berikut pada terminal: $ awk f <nama_awk_program> <namafile>

2 D4 Teknik Komputer| 7609040007

15

2 D4 Teknik Komputer| 7609040007

16

Analisa Percobaan diatas bertujuan untuk membaca suatu record dari file dengan menggunakan intruksi getline dari awk programming. Awalnya user hendak membaca record dan semua field dari suatu data, hal tersebut dapat dilakukan dengan menggunakan perulangan menggunakan for, dimana setiap perulangan mengalami pengambilan baris data menggunakan intruksi getline dengan file sebagai input, hal ini memanfaatkan pembelokan standar input dari suatu file. Didalam perulangan tersebut juga mengalami pengkondisikan bahwa jika file dari tabel2 sudah tidak terdapat record atau data lahi, maka proses perulangan akan tidak melakukan pekerjaan.

2 D4 Teknik Komputer| 7609040007

17

Dikarenakan sudah tidak memenuhi syarat pengkondisian untuk penyimpanan dan pencetakan string dari suatu record. Untuk penyimpanan tiap baris data, dapat memanfaatkan penggunakan variable yang berupa array, sehingga user dapat menyimpan dan memanggil sesuai dengan index dari array tersebut. Setelah itu pada intruksi selanjutnya, yaitu user hendak mengambil record yang terdiri dari satu field akan tetapi record tersebut terdiri dari baris dimana baris-baris tersebut mewakili beberapa record. Hal ini dapat dilakukan user dengan menggunakan perulangan untuk mendapatkan record dalam bentuk array, for(c=0;c<=10;c++){ getline bidata*c+ <biodata } File yang diambil datanya, yaitu file biodata yang kemudian disimpan pada variable yang berupa array sesuai dengan index masing-masing dan akan mengalami penambahan nilai index setiap perulangan sampai kondisi akhir perulangan terpenuhi Untuk mencetak data sesuai dengan record dan field secara vertical, maka programmer memanfaatkan manipulasi terhadap index dari array User dapat melihat source code diatas yaitu pada pengkondisian dengan state biodata[c]!=null, Hal tersebut akan mencetak record dan menempati tab yang disediakan

2 D4 Teknik Komputer| 7609040007

18

2 D4 Teknik Komputer| 7609040007

19

Analisa Percobaan diatas bertujuan untuk menghilangkan baris komentar dari file yang menggunakan bahasa pemrograman cpp dan sejenisnya, program diatas akan menghapus string yang berada diantara string/* dengan */, dalam hal tersebut bahasa pemrograman yang memanfaatkan tanda tersebut sebagai penanda komentar yaitu bahasa c, cpp, java, c#, j# dll. Algoritma dari program diatas yaitu men-scan baris program yan memiliki %* dengan memanfaatkan source t=index($0,/*). Jadi membentuk suatu variable yang menyimpan keseluruhan data. Dari penkondisian dengan state bahwa jika nilai t!=0 (atau terdapat string /*), maka akan pemngeksekusi baris program selanjutnya. Setelah itu akan menghapus komentar dalam bentuk bahasa c dan sejenisnya dari input. Dengan cara mereplace pernyataan print $0 dengan pernyataan lainnya, user dapat melakukan pencarian

2 D4 Teknik Komputer| 7609040007

20

selain mencari string komentar, yaitu seperti mencari matching dalam regular expression. Nilai $0 yang telah diupdate digunakan untuk melakukan tes pattern dari bermacam-macam keinginan dari programmer.

Analisa { if((getline tmp)>0){ print tmp print $0 }else print $0 }

2 D4 Teknik Komputer| 7609040007

21

Analisa { if(NF==2&&$1=="@include"){ while((getline line<$2)>0) print line close($2) }else print }

2 D4 Teknik Komputer| 7609040007

22

Analisa BEGIN{ "date" |getline current_time close("date") print "Report printed on"current_time } Source code diatas bertujuan untuk melakukan pengambilan suatu data menggunakan intruksi getline, dimana hasil dari pengambilan data tersebut dimasukkan kedalam suatu variable yang bernama current_time. Data yang hendak diambil menggunakan intruksi tersebut yaitu hasil dari eksekusi command date yang kemudian data tersebut dikirim pada eksekusi baris program selanjutnya menggunakan pipelining. Proses dari command date hendaknya dihentikan untuk mengurangi proses dari system. Untuk menampilkan nilai dari suatu variable, dimana variable tersebut bernilai suatu string dari hasil getline command date, maka dapat digunakan intruksi print variable tersebut

2 D4 Teknik Komputer| 7609040007

23

Kesimpulan 1. Untuk melakukan pembacaan terhadap suatu file, awk menyediakan beberapa intruksi, baik yang bersifat text programming maupun terminal programming 2. Untuk mencetak data sesuai dengan record dan field secara vertical, maka programmer memanfaatkan manipulasi terhadap index dari array 3. Untuk mendapatkan nilai dari suatu variable dan kemudian mencetaknya pada terminal, maka dapat menggunakan intruksi getline dan printf 4. Apabila user hendak membaca suatu file berbasis text dengan menggunakan awk text programming, maka yang paling mudah yaitu melakukan perulangan terhadap pembacaan data setiap baris, dimana apabila tidak ditemui data, maka proses akan berhenti. Nilai dari file tersebut setiap baris disimpan dalam suatu array, yang sewaktu-waktu dapat dipanggil oleh user dengan memanggil nama dari array dan sesuai dengan index array tersebut

2 D4 Teknik Komputer| 7609040007

24

Anda mungkin juga menyukai