awk programming 1 - ahmad reza musthafa
TRANSCRIPT
LAPORAN RESMI
AWK PROGRAMMING
Oleh :
Ahmad Reza Musthafa (7609040007)
2 – D4 TEKNIK KOMPUTER
PROGRAM STUDI D4 TEKNIK KOMPUTER
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - ITS
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
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
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
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{
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=”’”
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
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
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
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.
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
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
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.