awk programming 1 - ahmad reza musthafa

13
LAPORAN RESMI AWK PROGRAMMING Oleh : Ahmad Reza Musthafa (7609040007) 2 – D4 TEKNIK KOMPUTER PROGRAM STUDI D4 TEKNIK KOMPUTER POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - ITS

Upload: ahmad-reza-musthafa

Post on 04-Aug-2015

132 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: AWK Programming 1 - Ahmad Reza Musthafa

LAPORAN RESMI

AWK PROGRAMMING

Oleh :

Ahmad Reza Musthafa (7609040007)

2 – D4 TEKNIK KOMPUTER

PROGRAM STUDI D4 TEKNIK KOMPUTER

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - ITS

Page 2: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 2

Analisa :

Intruksi di atas menginstruksikan shell atau interpreter intruksi, untuk menjalankan awk dan

memanfaatkannya untuk memproses data atau record didalam file yang telah diinputkan. Dari

intruksi diatas terdapat tanda petik satu, dimana shell tidak akan merepresentasikan karakter

dari awk seperti karakter dari shell system operasi linux. awk menerapkan program untuk

standard input, yang biasanya berarti apapun yang Anda ketik pada terminal. Hal ini terus

berlanjut sampai Anda menunjukkan end-of-file dengan mengetikkan Ctrl-d. (Di lain sistem

operasi, karakter end-of-file yang mungkin berbeda. Sebagai contoh, pada OS / 2 dan MS-DOS,

itu adalah Ctrl-z.)

Analisa :

Intruksi diatas merupakan suatu intruksi yang bertujuan untuk menampilkan output pada

terminal system operasi linux berupa suatu teks “Don’t Panic!”. Sebagai format penulisan

intruksi tersebut, penuilisan intruksi print didalam BEGIN dapat menggunakan \” <string> \”.

Jadi batas teks atau string berupa \”. Apaliba user meakukan programming melalui teks editor

maka penggunaan format penulisan print memiliki batas string berupa tanda petik dua saja

Analisa :

Dengan percobaan diatas user dapat melakukan pemberian data input berupa suatu teks atau

Page 3: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 3

string setelah mengeksekusi suatu intruksi awk ‘{print}’. Secara umum intruksi tersebut sama

dengan intruksi :

BEGIN{

getline kata

print(kata)

}

Hal tersebut dapat dilakukan melalui teks editor dari system operasi linux. System opeerasi

linux akan melakukan scan dari input keyboard dan kemudian menyimpan data input tersebut

pada suatu variable. Yang kemudian dapat dicetak melalui intruksi print(kata) sehingga input

yang diberikan oleh user akan menghasilkan output yang serupa denga input tersebut

Analisa :

Perhatikan bahwa Anda tidak biasanya perlu tanda kutip tunggal di nama file yang Anda

tentukan dengan '-F', karena nama file yang paling tidak mengandung karakter khusus

shell's. Perhatikan bahwa advice, program awk tidak memiliki tanda kutip tunggal di

sekitarnya. Tanda kutip hanya diperlukan untuk program-program yang disediakan pada baris

perintah awk. Jika Anda ingin mengidentifikasi file awk program jelas seperti itu, Anda dapat

menambahkan ekstensi '. Awk' untuk nama file. Ini tidak mempengaruhi pelaksanaan program

awk tetapi membuat " housekeeping" lebih mudah

Analisa :

Intruksi diatas merupakan suatu intruksi yang bertujuan untuk menampilkan output pada

terminal system operasi linux berupa suatu teks “Don’t Panic!”. Sebagai format penulisan

intruksi tersebut, penuilisan intruksi print didalam BEGIN dapat menggunakan \” <string> \”.

Jadi batas teks atau string berupa \”. Apaliba user meakukan programming melalui teks editor

maka penggunaan format penulisan print memiliki batas string berupa tanda petik dua saja

Page 4: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 4

Analisa :

Dalam percobaan diatas bertujuan untuk membentuk suatu file executable yang dapat

dijalankan langsung tanpa mengetikkan perintah awk –f lagi did ala terminal. Oleh karena itu

suatu file yang hendak di konversi menjadi executable file, harus memiliki suatu source

executable dari perantara pemrograman, disini yaitu awk. Ditemukan lokasi dari awk yaitu

/usr/bin/gawk. Maka user dapat melakukan penambahan #! /usr/bin/gawk –f pada baris

pertama program melalui teks editor. Untuk menjadikan suatu file menjadi executable AWK,

maka dapat menggunakan intruksi chmod +x <lokasi file>. Perhatikan bahwa Anda tidak

biasanya perlu tanda kutip tunggal di nama file yang Anda tentukan dengan '-F', karena nama

file yang paling tidak mengandung karakter khusus shell's. Perhatikan bahwa advice, program

awk tidak memiliki tanda kutip tunggal di sekitarnya. Tanda kutip hanya diperlukan untuk

program-program yang disediakan pada baris perintah awk. Jika Anda ingin mengidentifikasi file

awk program jelas seperti itu, Anda dapat menambahkan ekstensi '. Awk' untuk nama file. Ini

tidak mempengaruhi pelaksanaan program awk tetapi membuat " housekeeping" lebih mudah

Analisa :

Dari percobaan diatas merupakan implementasi dari penggunaan komentar dalam awk

programming, untuk penulisan komentar dapat dilakukan dengan mengetikkan tanda sharp “#”

pada awal penulisan atau lokasi dimulainya penulisan

Page 5: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 5

Analisa :

Dari percobaan diats bertujuan untuk mencetak suatu teks pada terminal berupa Here is a

single quote. Dimana didalam penulisan source code dari awk pada terminal, penggunaan

intruksi print pada batang BEGIN terdapat penulisan <’ \’’>. Hal tersebut mengakibatkan

program awk mengabaikan suatu tanda setelah tanda \ dan hanya menggunakan tanda petik

sebelum tanda \. Oleh karena itu ketika user mengeksekusi intruksi tersebut, maka akan

dihasilkan string seperti output diatas

Analisa :

Dari percobaan diatas merupakan suatu penulisan intruksi yang menggunakan perintah print,

yang kemudian melakukan pencetakkan suatu teks yang berasal dari eksekusi intruksi tersebut

Apabila user hendak mengetikkan source tersebut pada teks editor, maka sourcenya :

BEGIN{

print(“Here is a single quote <’>”)

}

Analisa :

Dari percobaan diatas merupakan suatu penulisan intruksi yang menggunakan perintah print,

yang kemudian melakukan pencetakkan suatu teks yang berasal dari eksekusi intruksi tersebut.

Hal yang membedakan dari percobaan sebalumnya yaitu penggunakan ASCII sebagai generator

untuk membuat tanda petik, kode tersebut memiliki nilai decimal 47.

Apabila user ingin membuat source code melalui teks editor maka source tersebut dapat

berupa :

BEGIN{

Page 6: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 6

Printf(“Here is a single quote %c,47)

}

Seperti layaknya menggunakan bahasa c, java ataupun c#

Analisa :

Dari percobaan diatas merupakan suatu penulisan intruksi yang menggunakan perintah print,

yang kemudian melakukan pencetakkan suatu teks yang berasal dari eksekusi intruksi tersebut.

Hal yang membedakan dari percobaan sebalumnya yaitu penggunakan ASCII sebagai generator

untuk membuat tanda double petik, kode tersebut memiliki nilai decimal 42.

Apabila user ingin membuat source code melalui teks editor maka source tersebut dapat

berupa :

BEGIN{

Printf(“Here is a double quote %c,42)

}

Seperti layaknya menggunakan bahasa c, java ataupun c#

Analisa :

Dari percobaan diatas merupakan suatu penulisan intruksi yang menggunakan perintah print,

yang kemudian melakukan pencetakkan suatu teks yang berasal dari eksekusi intruksi tersebut.

Hal yang membedakan dari percobaan sebalumnya yaitu penggunaan variable sq dimana

variable tersebut memiliki nilai atau isi berupa tanda petik “ ’ ”. ketika user hendak

mengeksekusi perintah tersebut melalui suatu terminal, maka user dapat mengetikkan awk –v

dimana –v digunakan apabila membutuhkan penggunaan suatu variable yang kemudian

variable tersebut dicetak bersamaan dengan suatu teks

Apabila user ingin membuat source code melalui teks editor maka source tersebut dapat

berupa :

BEGIN{

sq=”’”

Page 7: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 7

Printf(“Here is a single quote %s,sq)

}

Seperti layaknya menggunakan bahasa c, java ataupun c#

Analisa :

Dalam ' BBS-list' file data, setiap record berisi nama papan buletin komputer, nya nomor

telepon, baud rate dewan (s), dan kode untuk jumlah jam itu operasional. An 'A' dalam kolom

terakhir berarti papan beroperasi 24 jam sehari. A 'B' di kolom terakhir berarti papan hanya

beroperasi pada malam hari dan akhir pekan. A 'C' berarti papan beroperasi hanya pada akhir

pekan

Analisa :

Dari percobaan diatas merupakan penggunaan intruksi dari awk, dimana terdapat

pengembangan berupa penggunaan pengkondisian dengan if. Dari source diatas yang dipakai

sebagai object untuk pengkondisian tersebut yaitu file tabel2. Dimana jika panjang (legth) dari

kolom tabel2 lebih besar dari nilai variable max, maka max sama dengan banyaknya baris

maksimal dari file tersebut. Setelah itu untuk melakukan pencetakkan terhadap banyaknya baris

maksimal pada terminal maka digunakan intruksi {print max}

Analisa :

Dari perrcobaan diatas bertujuan untuk mencetak benyaknya baris dari file yang bernama

tabel2. Source code diatas menggunakan intruksi expand tabel2 untuk memasukkan file table2

dalam pengkodingan selanjutnya setelah itu terdapat tanda | yang berfungsi untuk pipelining

Page 8: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 8

dengan intruksi awk, sehingga intruksi setelah tanda | telah mendapat import data dari tabel2.

Dengan menggunakan pengkondisian bahwa jika x lebih besar dari panjang baris, maka x sama

dengan panjang baris tersebut. Dimana x telah mewakili file tabel2. Kemudian untuk mencetak

output dari variable x tersebut maka digunakan intruksi print “maximum line length is “ x

Analisa :

Intruksi diatas bertujuan untuk mencetak setiap baris yang setidaknya memiliki sebuah field.

Sebagai object dari intruksi diatas digunakan file tabel2, setelah user melakukan eksekusi

intruksi diatas maka akan ditampilkan output pada layar terminal berupa isi dari file tabel2 dari

atas sampai baris terbawah

Analisa

Percobaan diatas bertujuan untuk pembangkit bilangan random sebanyak 7 menggunakan funsi

dari rand(). Dimana fungsi ini sudah terdapat didalam library awk programming. Seperti proses

sebelumnya apabila hendak mengetikkan code pada terminal, dimulai dengan menggunakan

intruksi awk ‘BEGIN{}’

Didalam tubuh BEGIN terdapat perulangan menggunakan for, dimana perulangan tersebu

dimulai dari nilai variable i = 0 sampai variable tersebut bernilai 7, dimana setiap perulangan

nilai variable tersebut ditambahkan dengan 1. Dari setiap perulangan tersebut terminal akan

menghasilkan output berupa satu nilai random dari rumus 101*rand() yang akan dicetak setiap

Page 9: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 9

proses perulangan.

Apabila user hendak membuat source code tersebut pada teks editor, maka sourcenya :

BEGIN {

for(i=1;i<=7;i++){

a=101*rand()

print(a)

}

}

Analisa :

Percobaan diatas bertujuan untuk mengetahui besarnya byte dari file tabel2

Analisa :

Percobaan diats bertujuan untuk mengetahui besarnya file reza_awk dalam format K-bytes

Page 10: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 10

Analisa :

Percobaan diatas bertujuan untuk mencetak isi dari direktori pada /etc/passwd dimana

sebelum output dicetak pada layar terminal, isi direktori dari /etc/passwd terdiri atau memiliki

layout berupa table, dalam table tersebut terdapat beberapa field dan baris.

Dalam source diatas hendak ditampilkan field 1 dari table tersebut, maka dapat dilakukan

dengan mengetikkan source print $1 setelah itu terdapat tanda | yang berfungsi untuk

pipelining. Sehingga intruksi sort diterapkan pada program yang dieksekusi sehingga table

dalam keadaan terurut

Analisa :

Percobaan diatas bertujuan untuk mengetahui banyaknya baris program dari file reza_awk. NR:

Keeps a current count of the number of input records.

Page 11: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 11

Sehingga ketika source code dijalankan,maka akan mencetak besarnya atau banyaknya baris

dari program reza_awk

Analisa :

Dari hasil percobaan diatas, isi dari file reza_awk tidak sesuai dengan isi dari output diatas,

terdapat penghapusan beberapa source code. Hal tersebut dikarenakan terdapt intruksi NR%2

==0 terhadap file reza_awk. Arti dari intruksi tersebut yaitu hanya baris program yang berada

pada baris genap saja yang dicetak didalam terminal, hal tersebut karena NR%2 akan memiliki

sisa=0, dan sisa =0 tersebut dijadikan syarat untuk dicetak pada terminal, sehingga source code

pada baris ganjil, tidak ditampilkan

Page 12: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 12

Analisa :

Percobaan diatas bertujuan untuk mencari nilai 12 dan 21 pada file BBS-list dan file tabel2, hal

tersebut dapat dilakukan dengan awk ‘/12/ atau awk ‘/21/ dimana dari hasil data yang

ditemukan dari table, akan dicetak satu baris secara keseluruhan field. Hal tersebut terdapat

pada code {print $0} yang menginginkan seluruh field dari suatu baris dicetak

Analisa :

Percobaan diatas merupakan penerapan dari pemrograman bahasa awk dimana dalam proses

pengetikan baris program tidak hanya satu baris saja, melainkan beberapa baris setelah ditekan

tombol enter, hal itu memungkinkan karena selama belum terdapat tanda petik satu untuk

penutup source, maka terminal akan terus meminta beberapa input, input tersebut berupa

source code, permintaan input tersebut akan berhenti ketika terdapat tanda perik satu.

Setelah itu terminal akan menghasilkan output dari source code yang terdiri dari beberapa baris

tersebut

Apabila user hendak mengetikkan source code pada teks editor, maka sourcenya :

BEGIN{

print(“hello, world”)

}

Setelah itu user dapat memanggilnya malalui awk –f pada terminal

Page 13: AWK Programming 1 - Ahmad Reza Musthafa

Politeknik Elektronika Negeri Surabaya - ITS Praktikum Bahasa Pemrograman dan Perangkat Pengolahan Langsung

2 – D4 Teknik Komputer| 7609040007 13

KESIMPULAN

1. Perintah AWK adalah pernyataan yang menggantikan tindakan pada contoh di atas.perintah

AWK dapat termasuk panggilan fungsi, tugas variabel, perhitungan, atau berbagai

kombinasinya. AWK berisi built-in mendukung untuk banyak fungsi; banyak lagi yang

disediakan oleh berbagai rasa AWK. Juga, beberapa rasa mendukung dimasukkannya

perpustakaan terkait secara dinamis, yang juga dapat memberikan fungsi yang lebih.

2. AWK adalah bahasa untuk file pengolahan file teks adalah diperlakukan sebagai urutan

catatan,. Dan secara default setiap baris adalah record. Setiap baris ini dipecah menjadi

urutan bidang, sehingga kita bisa berpikir dari kata pertama dalam garis sebagai kolom

pertama, kata kedua sebagai kolom kedua, dan seterusnya Sebuah program AWK adalah

urutan laporan pola-tindakan. AWK membaca masukan baris pada satu waktu.. jalur A di

scan masing-masing pola dalam program, dan untuk setiap pola yang cocok, tindakan yang

terkait dijalankan.

3. Dalam mengetikkan baris program yang lebih banyak hendaknya menggunakan teks editor

agar pekerjaan menjadi lebih mudah

4. Nama-nama variabel dapat menggunakan salah satu karakter [A-Za-Z0-9_], dengan

pengecualian kata kunci bahasa. Operator + - * / merupakan penambahan, pengurangan,

perkalian, dan pembagian, masing-masing. Untuk penggabungan string, cukup tempatkan

dua variabel (atau string konstanta) di samping satu sama lain. Hal ini opsional untuk

menggunakan ruang di antara jika konstanta string yang terlibat, tetapi Anda tidak dapat

menempatkan nama variabel dua berdekatan satu sama lain tanpa spasi di antara

keduanya. konstanta String yang dipisahkan oleh tanda kutip ganda.Laporan tidak perlu

diakhiri dengan titik koma. Akhirnya, komentar dapat ditambahkan ke program dengan

menggunakan # sebagai karakter pertama pada baris.