awk programming 4 - ahmad reza musthafa
TRANSCRIPT
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
1/13
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
2/13
2 D4 Teknik Komputer| 7609040007 2
Analisa
Percobaan diatas bertujuan untuk implementasi penggunaan ekspresi yang dapat digunakan pada
pernyataan print. Dari percobaan di atas user mengetikkan intruksi awk BEGIN {print line
one\nline two\nline three } Intruksi tersebut bertujuan untuk mencetak karakter berkutnyapada baris selanjutnya. Dalam istilah IT hal tersebut sama dengan return.
Apabila user ingin menggunakan teks editor sebagai media programming, maka source code untuk
menghasilkan output tersebut yaitu :
Apabila user menggunakan intruksi printf :
BEGIN{
printf(line one\n)
printf(line two\n")
printf(line three)
}
Atau apabila user menggunakan intruksi print :
BEGIN{
print line one
print line two
print line three
}
Untuk memanggil source tersebut, user dapat mengeksekusi intruksi awk f pada
terminal.
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
3/13
2 D4 Teknik Komputer| 7609040007 3
Analisa
Dalam percobaan diatas, terdapat pemanfaatan kondisi field (index) yang hendak dicetak. User
mengeksekusi baris intruksi awk {print $1, $2 } tabel2 Merupakan baris program yang bertujuan
untuk mencetak record dari file tabel2 dimana setiap record hanya dicetak field 1 dan field 2 saja,
hal tersebut dalam dimanfaakan penggunaan $1 yang menyatakan field pertama dan $2 yang
menyatakan field kedua. Penggunaan ekspresi , didalam source tersebut bertujan untuk
memisahkan data dari field pertama dan field kedua. Dengan memenfaatkan intruksi print, maka
record tersebut dapat dicetak pada layar terminal
Analisa
Dalam percobaan diatas, terdapat pemanfaatan kondisi field (index) yang hendak dicetak. User
mengeksekusi baris intruksi awk {print $1, $2 } tabel2 Merupakan baris program yang bertujuan
untuk mencetak record dari file tabel2 dimana setiap record hanya dicetak field 1 dan field 2 saja,
hal tersebut dalam dimanfaakan penggunaan $1 yang menyatakan field pertama dan $2 yang
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
4/13
2 D4 Teknik Komputer| 7609040007 4
menyatakan field kedua. Dari source tersebut tidak terdapat ekspresi untuk memisahkan field
pertama dan kedua, sehingga ketika user mengeksekusi intruksi tersebut, maka data pada field
pertama dan kedua akan menyatu (combined)
Analisa
Dalam percobaan diatas, merupakan contoh dari implementasi penggunaan intruksi print, dimana
sebelum mencetak data dari suatu file, dilakukan pencetakkan suatu string terlebih dahulu. Yaitu
Month Crates dan pada beris selanjutnya berupa string ----- ------
User mengeksekusi baris intruksi awk {print $1, $2 } tabel2 Merupakan baris program yang
bertujuan untuk mencetak record dari file tabel2 dimana setiap record hanya dicetak field 1 dan
field 2 saja, hal tersebut dalam dimanfaakan penggunaan $1 yang menyatakan field pertama dan $2
yang menyatakan field kedua.
Dari intruksi print $1, $2, terdapat penggunaan ekspresi , didalam source tersebut bertujan untuk
memisahkan data dari field pertama dan field kedua. Dengan memenfaatkan intruksi print, maka
record tersebut dapat dicetak pada layar terminal
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
5/13
2 D4 Teknik Komputer| 7609040007 5
AnalisaDari percobaan diatas, user mengeksekusi intruksi awk BEGIN { OFS=";"; ORS="\n\n"} {print$1, $2}
BBS-listmerupakan intruksi dimana terdapat pendeklarasian nilai dari OFS yang berupa character
;, tujuan dari pendelarasian tesebut yaitu untuk pemisah data antara field pertama dan field
kedua, dimana digunakan tanda atau character ; sebagai pemisah. Setelah itu dilakukan
pendeklarasian ORS, dimana berupa ekspresi \n\n, ekspresi tersebut berfungsi untuk new line.
ORS akan dieksekusi ketika akhir dari intruksi print.
Seperti output yang dihasilkan diatas, langkah dari program ketika dieksekusi, sebagai berikut :
field1OFSfield2ORS
dimana
OFS= ;
ORS=\n\n
sehingga akan menjadi
>field1;field2 (record1)
>
>field1;field2 (record2)
Dan seterusnya sampai suatu data bernilai null
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
6/13
2 D4 Teknik Komputer| 7609040007 6
Analisa
Percobaan diatas bertujuan untuk controlling numeric output dengan menggunakan intruksi print.
Ketika intruksi print digunakan untuk mencetak nilai numeric, maka akan secara tidak langsung awk
akan mengkonversikan kedalam format karakter string dan mencetak sebagai string. Awk
menggunakan intruksi sprint untuk melakukan conversi tersebut.
Pengguaan variable OFMT secara spesifik akan menambah fasilitas untuk mengkonversi number
menjadi string untuk kemudian dapat dicetak, dimana intruksi print akan berfungsi seperti intruksi
sprint.
Dari baris program diatas didelkarasikan nilai dari variable OFMT=%.0f , deklarasi tersebut
berfungsi untuk mengkonversi suatu number(bilangan) float ke dalam format integer dikarenakan
dibelakang tanda titik . Berupa angka 0, hal tersebut menandakan tidak terdapatnya penjabaran
suatu bilangan ke dalam format float. Sehingga nilai dari number(bilangan) tersebut akan
dikonversikan ke bilangan integer yang mendekati dari bilangan float asal. Seperti 17.54 akan
dibulatkab menjadi 18, dan 17.23 akan dibulatkan menjadi 17.
Sehingga ketika user mengeksekusi intruksi yang berisi number(bilangan) float, maka bilangan
tersebut akan dikonversi kedalam format integer (bilangan bulat)
Analisa
$ awk BEGIN{
ORS="\nOUCH!\n"; OFS="+"
msg ="DontPanic!"
printf "%s\n",msg
}
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
7/13
2 D4 Teknik Komputer| 7609040007 7
Percobaan diatas bertujuan untuk mengimplementasikan penggunaan statemen printf. User
mendeklarasikan nilai dari variable ORS dengan nilai \nOUCH\n dan nilai dari variable OFS yaitu
+.
Kemudian dideklarasikan variable bernama msg, dimana variable tersebut memiliki nilai
DontPanic!
Dengan menggunakan intruksi printf untuk melakukan pencetakkan nilai dari variable msg, maka
akan dihasilkan output berupa nilai dari variable msg.
Apabila user mengeksekusi intruksi tersebut melalui terminal dengan menggunakan intuksi
pemanggilan awk maka akan menghilangkan baris data yang berupa
string OUCH
w=5
p=3
s="abcdefg"
printf"%*.*s\n",w,p,s
Analisa
Dari percobaan diatas, user menggunakan intruksi printf untuk melakukan printing output dengan
memanfaatkan nilai dari suatu variable, yaitu w,p,dan s. dimana variable tersebut memiliki nilai
masing-masing.
w bernilai 5 dan p bernilai 3, sedangkan s berupa string abcdefg.
Setelah itu terdapat penggunaan intruksi printf %*.*s\n,w,p,s intruksi ini pada umumnya sama
dengan printf %5.3s\n,s, dikarenakan terdapat redirecting karakter * dengan variable yang
memiliki data integer
Program tersebut akan menghasilkan output berupa ..abc dimana terdapat 5(lima) karakter pada
string yang dicetak, dan terdapat 3 karakter dari variable s, dikarenakan 5.3s
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
8/13
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
9/13
2 D4 Teknik Komputer| 7609040007 9
yaitu nama dari masing-masing tabs. Dimana tabs 1 memiliki caption Name sedangkan tabs 2
memiliki caption Number.
Dari source tersebut tidak dideklarasikan panjang string dari tabs, sehingga tabs tidak bersesuaian
dengan data apabila di run.
Percobaan diatas bertujuan untuk mengimplementasikan penggunaan intruksi printf, dimana
dilakukan untuk mendapatkan aligned table
awk{printf"%-10s%s\n",$1,$2}BBS-list baris program tersebut, akan mencetak nama dari bulletin
boards ($1) dari file BBS-list, dimana berupa string yang terdiri dari 10 character dengan style left-
justified. Baris tersebut juga akan mencetak phone number ($2) pada baris output yang sama.
Phone number akan dicetak sebagai string, dikarenakan number tersebut sipisahkan dengan
character - dash.
Tidak terlalu penting apabila mendeklarasikan lebar data dari phone number dikarenakan phone
number akan dicetak diakhir dari setiap baris.
Analisa
Percobaan diatas merupakan penambahan suatu string yang akan dicetak pada terminal output,
yaitu nama dari masing-masing tabs. Dimana tabs 1 memiliki caption Name sedangkan tabs 2
memiliki caption Number.
Dalam pencetakan tersebut juga dideklarasikan panjang dari masing-masing tabs, yaitu sepanjang
10 character. Jadi tabs akan bersesuaian dengan data.
Percobaan diatas bertujuan untuk mengimplementasikan penggunaan intruksi printf, dimana
dilakukan untuk mendapatkan aligned table
awk{printf"%-10s%s\n",$1,$2}BBS-list baris program tersebut, akan mencetak nama dari bulletin
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
10/13
2 D4 Teknik Komputer| 7609040007 10
boards ($1) dari file BBS-list, dimana berupa string yang terdiri dari 10 character dengan style left-
justified. Baris tersebut juga akan mencetak phone number ($2) pada baris output yang sama.
Phone number akan dicetak sebagai string, dikarenakan number tersebut sipisahkan dengan
character - dash.
Tidak terlalu penting apabila mendeklarasikan lebar data dari phone number dikarenakan phone
number akan dicetak diakhir dari setiap baris.
Analisa
Percobaan diatas merupakan penambahan suatu string yang akan dicetak pada terminal output,
yaitu nama dari masing-masing tabs. Dimana tabs 1 memiliki caption Name sedangkan tabs 2
memiliki caption Number.
Dalam pencetakan tersebut juga dideklarasikan panjang dari masing-masing tabs, yaitu sepanjang
10 character. Jadi tabs akan bersesuaian dengan data.
Dimana deklarasi untuk kondisi pencetakkan terhadap 10 character disimpan kedalam suatu
variable yang bernama format terlebihdahulu. Hal tersebut merupakan trik pemrograman untuk
penyederhanaan dari baris program.
Percobaan diatas bertujuan untuk mengimplementasikan penggunaan intruksi printf, dimana
dilakukan untuk mendapatkan aligned table
awk{printf"%-10s%s\n",$1,$2}BBS-list baris program tersebut, akan mencetak nama dari bulletin
boards ($1) dari file BBS-list, dimana berupa string yang terdiri dari 10 character dengan style left-
justified. Baris tersebut juga akan mencetak phone number ($2) pada baris output yang sama.
Phone number akan dicetak sebagai string, dikarenakan number tersebut sipisahkan dengan
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
11/13
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
12/13
2 D4 Teknik Komputer| 7609040007 12
Analisa
Percobaan diatas bertujuan untuk mengimplementasikan penggunaan pipelining terhadap program
awk, dimana pipelining bertujuan untuk mengirim output kedalam program yang lain,
Tipe ini melakukan pembelokan terhadap eksekusi dari intruksi command. Nilai dari redirection
tersebut, diconvert kedalam format string.
Dari baris program diatas bertujuan untuk melakukan pembandingan suatu data, antara data yang
tersortir dan data yang tidak tersortir. Untuk melakukan pengurutan suatu data, dapat meanfaatkan
command sort. Yang kemudian untuk melakukan hubungan antara awk program dengan command
system dapat dilakukan dengan memanfaatkan kondisi pipe, seperti source diatas
Kesimpulan
1. Penggunaan intruksi printing output bertujuan untuk menghasilkan output pada layar terminal2. Intruksi tersebut dapat digunakan bersamaan dengan pembacaan input dari suatu file3. Apabila user hendak menggunakan intruksi ini dalam teks editor, maka untuk membaca input
dari suatu file dapat menggunakan intruksi getline yang kemudian untuk menghasilkan output
pada layar dapat menggunakan inttuksi print atau printf
-
7/31/2019 AWK Programming 4 - Ahmad Reza Musthafa
13/13
2 D4 Teknik Komputer| 7609040007 13
4. Intruksi print dan printf memiliki karakteristik yang berbeda, dimana intruksi print tidak dapatmencetak nilai dari suatu variable, sedangkan intruksi printf dapat mencetak nilai dari suatu
variabel