AWK Programming 5 - Ahmad Reza Musthafa

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

Transcript of AWK Programming 5 - Ahmad Reza Musthafa

Page 1: AWK Programming 5 - Ahmad Reza Musthafa

LAPORAN RESMI

EXPRESSION

Oleh :

Ahmad Reza Musthafa (7609040007)

2 – D4 TEKNIK KOMPUTER

PROGRAM STUDI D4 TEKNIK KOMPUTER

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - ITS

Page 2: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 2

Analisa

Percobaan diatas bertujuan untuk implementasi penggunaan intruksi printf untuk mencetak suatu

nilai dari suatu variable atau dari suatu bilangan,

gawkBEGIN{printf"%d,%d,%d\n",011,11,0x11} Intruksi tersebut bertujuan untuk mencetak suatu

bilangan dalam format oktal, decimal, dan heksadesimal

intruksi printf akan membaca suatu bilangan dengan format oktal apabila bilangan diawali dengan

0. Sedangkan pada format decimal hanya berupa bilangan decimal tersebut tanpa diawali 0 ataupu

0x. untuk bilangan yang diawali 0x akan dieksekusi sebagai bilangan heksadesimal

011 apabila dikonversi kedalam decimal =9

0x11 apabila dikonversi kedalam decimal = 17

Analisa

Percobaan diatas bertujuan untuk implementasi penggunaan intruksi printf untuk mencetak suatu

nilai dari suatu variable atau dari suatu bilangan,

gawkBEGIN{print"021is",021;print018} Intruksi tersebut bertujuan untuk mencetak suatu

bilangan dalam format oktal, decimal, dan heksadesimal

intruksi printf akan membaca suatu bilangan dengan format oktal apabila bilangan diawali dengan

0. Sedangkan pada format decimal hanya berupa bilangan decimal tersebut tanpa diawali 0 ataupu

0x. untuk bilangan yang diawali 0x akan dieksekusi sebagai bilangan heksadesimal. Program

tersebut akan menghasilkan output seperti diatas

012 apabila dikonversi kedalam decimal = 17

018 apabila dionversi kedalam decimal = 18

Analisa

Page 3: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 3

Percobaan diatas bertujuan untuk implementasi penggunaan intruksi printf untuk mencetak suatu

nilai dari suatu variable atau dari suatu bilangan,

gawkBEGIN{print"021is",021;print018} Intruksi tersebut bertujuan untuk mencetak suatu

bilangan dalam format oktal, decimal, dan heksadesimal

intruksi printf akan membaca suatu bilangan dengan format oktal apabila bilangan diawali dengan

0. Sedangkan pada format decimal hanya berupa bilangan decimal tersebut tanpa diawali 0 ataupu

0x. untuk bilangan yang diawali 0x akan dieksekusi sebagai bilangan heksadesimal. Program

tersebut akan menghasilkan output seperti diatas

0x11 apabila dikonversi kedalam decimal = 17

function mysub(pat,repl,str,global)

{

if(global)

gsub(pat,repl,str)

else

sub(pat,repl,str)

returnstr

}

{

...

text="hi!hiyourself!"

mysub(/hi/,"howdy",text,1)

...

}

Analisa

Source code diatas merupakan impementasi dari penggunaan fungi dalam bahasa pemrograman

awk. Dimana untuk membuat suatu fungsi maka dapat diawali dengan penggunaan syntax function.

Yang kemudian disusul dengan nama fungsi yang hendak diberikan. Seperti bahasa pemrograman c,

dalam suatu fungsi dapat memiliki suatu atribut yang dapat dimanfaatkan untuk proses program

selanjutnya.

Dalam source diatas juga dimanfaatkan penggunaan conditional if, else if, dan else. Awk

menyediakan beberapa fungsi yang dapat dipanggil program untuk mengurangi pembuatan suatu

program

Page 4: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 4

Analisa

Percobaan diatas bertujuan untuk implementasi penggunaan suatu nilai dari variable sebagai input

index dari suatu data(record).

awk{print$n}n=4 tabel2 n=2 BBS-list Intruksi tersebut berarti bertujuan untuk mencetak field ke-

4 dari file tabel2 dan field ke-2 dari file BBS-list

dimana nilai dari variable tersebut merupakan nilai yang berformat integer, sehingga compiler akan

mudah menyaring data dan menhasilkan output pada terminal

Analisa

Pat 100 97 58

Sandy 84 72 93

Chris 72 92 89

Percobaan diatas bertujuan untuk mencari nilai rata-rata(average) dari data diatas, data tersebut

disimpan kedalam file yang bernama grades,

awk{sum=$2+$3+$4;avg=sum/3 print$1,avg}grades Intruksi tersebut bertujuan untuk mengambil

Page 5: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 5

data pada field kedua,ketiga dan keempat, yang kemudian semua data pada field dua sampai empat

dijumlah, untuk mendapatkan nilai total dari data pada tiap baris record

kemudian terdapat source code yang bertujuan untuk menghitung rata-rata dari data pada baris

tersebut, yang kemudian disimpan kedalam suatu variable yang bernama avg.

setelah itu terdapat pemanfaatan penggunaan intruksi print yang bertujuan untuk mencetak data

pada field pertam dan disusul dengan nilai dari variable avg, sehingga ketika program dieksekusi akn

dihasilkan output seperti output diatas

Analisa

awk{print"Field number one: "$1}BBS-list Intruksi tersebut bertujuan untuk mencetak data dari

field pertama file BBS-list, data dicetak dari baris pertama sampai tidak ditemukan baris berikutnya

atau bernilai null. Pencetakkan data dari field pada masing-masing baris diawali dengan adanya

pencetakan string yang berupa “Field number one :”, yang kemudian disusul dengan dicetaknya

nilau dari data pada field pertama masing-masing baris. Penggunaan spasi setelah string tersebut

bertujuan sebagai spacer terhadap data dari field pertama ketika dicetak pada layar terminal

Analisa

awk{print"Field number one:"$1}BBS-list Intruksi tersebut bertujuan untuk mencetak data dari

field pertama file BBS-list, data dicetak dari baris pertama sampai tidak ditemukan baris berikutnya

Page 6: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 6

atau bernilai null. Pencetakkan data dari field pada masing-masing baris diawali dengan adanya

pencetakan string yang berupa “Field number one :”, yang kemudian disusul dengan dicetaknya

nilau dari data pada field pertama masing-masing baris. Dari source tersebut tidak digunakanya

spasi setelah string, maka akan mengakibatkan string dan data menempel (tidak terdapat pemisah)

BEGIN{

a="don’t"

print(a""(a="panic"))

}

Percobaan diatas merupakan implementasi dari penggunaan suatu variable yang memiliki nilai yang

dinamis, pertama user mendeklarasikan nilai dari variable a = “don’t”, setelah itu dengan

memanfaatkan nilai tersebut, digunakan intruksi print untuk mencetak dari nilai variable tersebut,

dengan memanfaatan modifikasi dalam penggunaan intruksi print, dapat menjadikan variable a

menjadi dynamic variable. Hal tersebut dapat dilakukan dengan cara setelah mencetak nilai dari

variable a, kemusian mendeklarasikan nilai baru dari variable tersebut menjadi “panic” sehingga

ketika dieksekusi bersamaan dalam satu intruksi print, akan dihasilkan string don’t panic, dimana

spasi dapat degenerate didalam blok intruksi print antara variable a lama dengan variable a baru

Analisa

awkBEGIN{print-12" "-24} Intruksi tersebut bertujuan untuk mencetak nikai decimal dari -12 dan

-24, dimana didalam blok intruksi print yterdapat penggunaan spasi, namun ketika program

dijalankan, maka tidak terdapatnya spasi atau pemisah antara nilai -12 dan -24, hal tersebut

dikarenakan awk akan secara otomatis mengkombinasikan suatu operator sesuai dengan aturan

aritmatika

Page 7: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 7

Analisa

BEGIN{

if(3.1415927)

print"A strange truth value"

if("Four Score And Seven Years Ago")

print"A strange truth value"

if(j=57)

print"A strange truth value"

}

Dalam source code tersebut bertujuan untuk implementasi penggunaan pengkondisian dengan if.

Dimana terdapat tiga kondisi yang tersedia, user dapat mendeklarasikan suatu variable atau suatu

nilai yang dipanggil melalui terminal secara langsung, namun lebih efisien penggunaan media teks

editor sebagai media programming. Didalam blok BEGIN user dapat mendeklarasikan nilai dari

variable j dengan nilai 57, sehingga dapat menghasilkan kondisi yang benar dan kemusian akan

mengeksekusi baris program dalam blok kondisi if(j==57)

Analisa

BEGIN{

a=12.345

b=a"is a cute number"

print b

}

Source code diatas merupakan implementasi dari penyisipan atau penambahan suatu nilai dari

Page 8: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 8

variable kedalam suatu variable yang lainnya. Dalam source diatas diimplementasikan dengan

pendeklarasian nilai dari variable a terlebih dahulu, yaitu bernilai 12.345.

Setelah itu dibentuk variable b, dimana variable tersebut bernilai nilai dari variable a ditambah

dengan string “is a cute number”, sehingga nilai b=12.345is a cute number.

Ketika user mengeksekusi intruksi tersebut, maka akan dicetak nilai dari variable b tersebut

Source Code (tambahan)

BEGIN{

printf("\n")

printf (" > Masukkan Nama : ")

getline nama

print (" > User :",nama)

tipe_user()

hak_akses()

print(" > Hak :",hak)

printf("\n")

print("")

print (" ----------------------------------------------")

print (" .:. Terima Kasih .:.")

print("")

}

function tipe_user(){

if ((nama=="reza")||(nama=="Reza")||(nama=="REZA"))

{

tipe=1

}

else

{

tipe=2

Page 9: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 9

}

}

function hak_akses(){

if(tipe==1)

{

hak="Anda sebagai Administrator"

}

else if(tipe==2)

{

hak="Anda sebagai Pengunjung"

}

}

Analisa

Source code diatas merupakan beberapa implementasi dari penggunaan ekspresion dalam

pemrograman awk, source code tersebut juga memanfaatkan penggunaan fungsi untuk lebih

menyederhanakan pembuatan program, fungsi diatas diantaranya yaitu fungsi tipe_user dan

Page 10: AWK Programming 5 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 10

hak_akses, dimana tidak memiliki argument.

Masing-masing fungsi tersbut terdapat penggunaan kondisional dengan if, else if dan else, dan juga

terdapat penggunaan logika Boolean OR (||)

Penggunaan logika OR tersebut bertujuan untuk pengecekan terhadap string yang telah diinputkan

oleh user ketika program dijalankan, dimana ketika bernilai true akan menghasilkan return 1

terhadap variable tipe, dan return 2 jika bernilai false

Nilai dari variable tersebut kemudian diproses kedalam pengkondisian berikutnya, yaitu untuk

mendapatkan suatu nilai berupa string, yang berhubungan dengan hak akses dari potongan

program tersebut

Kesimpulan

1. Penggunaan ekspresi bertujuan untuk mendapatkan suatu nilai yang dapat bernilai true atau

false

2. Ekspresi terdiri dari bermacam-macam, diantaranya ekspresi aritmatika, ekspresi Boolean, dll.

3. Dalam pemrogramman awk, ekspresi dapat berlaku pada berbagai macam tipe dari suatu

variable, string, integer, float, dll