Kamis, 25 Juni 2009

Tugas 5

1. Mengetahui Hari Kelahiran dengan Kalender menggunakan program awk .
Program ini untuk menentukan nama hari pada tanggal dengan sistem kalender Georgian. Masukan berupa beberapa tanggal lahir teman-teman yang disimpan pada file input.txt. Kemudian output akan menampilkan nama, tanggal dan harinya.

a). Langkah pertama:
Buatlah file dengan nama input.txt seperti berikut :

mobed 17 2 1988
fauzy 12 8 1989
yanuar 27 6 1989
angga 15 4 1987
adit 2 11 1988
dicky 18 2 1989
putra 17 11 1988
bayu 13 12 1988
fina 14 7 1989
widi 25 3 1988
boby 3 4 1989
tyo 16 5 1988
andrey 30 4 1988
sintiya 27 7 1990
diana 19 3 1990

b). Kemudian buat rumus dengan nama kalender.txt seperti berikut :
{
thn=$4-1;
bln=$3-1;
thk=thn/4;
if(thn%4==1){b=0.25}
if(thn%4==2){b=0.50}
if(thn%4==3){b=0.75}
d=thk-b;
thb=thn-d;

if(bln==0 && $4%4!=0){a=0}
if(bln==1 && $4%4!=0){a=31}
if(bln==2 && $4%4!=0){a=59}
if(bln==3 && $4%4!=0){a=90}
if(bln==4 && $4%4!=0){a=120}
if(bln==5 && $4%4!=0){a=151}
if(bln==6 && $4%4!=0){a=181}
if(bln==7 && $4%4!=0){a=212}
if(bln==8 && $4%4!=0){a=243}
if(bln==9 && $4%4!=0){a=273}
if(bln==10 && $4%4!=0){a=304}
if(bln==11 && $4%4!=0){a=334}

if(bln==0 && $4%4==0){a=0}
if(bln==1 && $4%4==0){a=31}
if(bln==2 && $4%4==0){a=60}
if(bln==3 && $4%4==0){a=91}
if(bln==4 && $4%4==0){a=121}
if(bln==5 && $4%4==0){a=152}
if(bln==6 && $4%4==0){a=182}
if(bln==7 && $4%4==0){a=213}
if(bln==8 && $4%4==0){a=244}
if(bln==9 && $4%4==0){a=274}
if(bln==10 && $4%4==0){a=305}
if(bln==11 && $4%4==0){a=335}

jum=(thb*365)+(d*366)+a+$2;

if(jum%7==1){print $0," ","Lahir Minggu"}
if(jum%7==2){print $0," ","Lahir Senen"}
if(jum%7==3){print $0," ","Lahir Selasa"}
if(jum%7==4){print $0," ","Lahir Rabu"}
if(jum%7==5){print $0," ","Lahir Kamis"}
if(jum%7==6){print $0," ","Lahir Jumat"}
if(jum%7==0){print $0," ","Lahir Sabtu"}
}
c). Setelah selesai compile program tersebut pada terminal dengan cara:

mobidea@mobidea-desktop:~$ awk -f kalender.txt input.txt

d). Maka output program di terminal tersebut adalah sebagai berikut:

mobidea@mobidea-desktop:~$ awk -f kalender.txt input.txt
mobed 17 2 1988 Lahir Rabu
angga 15 4 1987 Lahir Rabu
adit 2 11 1988 Lahir Rabu
putra 17 11 1988 Lahir Kamis
bayu 13 12 1988 Lahir Selasa
widi 25 3 1988 Lahir Jumat
tyo 16 5 1988 Lahir Senen
andrey 30 4 1988 Lahir Sabtu
sintiya 27 7 1990 Lahir Jumat
diana 19 3 1990 Lahir Senen

Tidak ada komentar: