AWK Programming 3 - Ahmad Reza Musthafa

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

Transcript of AWK Programming 3 - Ahmad Reza Musthafa

Page 1: AWK Programming 3 - Ahmad Reza Musthafa

LAPORAN RESMI

READING INPUT FILE

Oleh :

Ahmad Reza Musthafa (7609040007)

2 – D4 TEKNIK KOMPUTER

PROGRAM STUDI D4 TEKNIK KOMPUTER

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - ITS

Page 2: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 2

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

Page 3: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 3

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

Page 4: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 4

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

Page 5: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 5

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 BBS-

list yang mengandung string berupa “foo”

Page 6: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 6

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

Page 7: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 7

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.

Page 8: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 8

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

Page 9: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 9

Analisa

BEGIN{

If ($(NF+1)!="") #penggunaan state yang sebenarnya sangat kecil kemungkinan untuk bernilai true

print "can’t 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

Page 10: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 10

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

Page 11: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 11

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.

Page 12: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 12

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

Page 13: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 13

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){ #nilai NF=2

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

Analisa

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

Page 14: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 14

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

Page 15: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 15

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>

Page 16: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 16

Page 17: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 17

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.

Page 18: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 18

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

Page 19: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 19

Page 20: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 20

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

Page 21: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 21

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

}

Page 22: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 22

Analisa

{

if(NF==2&&$1=="@include"){

while((getline line<$2)>0)

print line

close($2)

}else

print

}

Page 23: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 23

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

Page 24: AWK Programming 3 - Ahmad Reza Musthafa

2 – D4 Teknik Komputer| 7609040007 24

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