Sabtu, 27 Juni 2009

Melihat Hari Jawa pada Tanggal Lahir Seseorang dengan AWK

Tugas 6

Sebelumnya kita bisa memakai daftar nama yang berisi tanggal lahir yang sudah kita buat pada posting sebelumnya.

jaka 1 4 1989
candra 19 6 1990
yusi 3 2 1988
yayuk 2 9 1987
irna 23 7 1990
tantri 8 9 1990
budi 20 11 1988
fita 28 12 1987
adit 17 10 1984
ahsan 9 3 1988
sugeng 7 8 1990
eko 3 5 1988
ferdian 11 7 1988
karina 7 9 1990
adi 15 2 1988
adya 27 12 1990

Simpan sebagai input.awk

Berikut program menggunaka awk, kita simpan dengan nama pasaran.awk.


{ 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%5==1)
{ f="Pahing" }
if(jum%5==2)
{ f="Pon" }
if(jum%5==3)
{ f="Wage" }
if(jum%5==4)
{ f="Kliwon" }
if(jum%5==0)
{ f="Legi" } }

{ if(jum%7==1)
{ printf("%-12s %2d %2d %d Minggu %s\n",$1,$2,$3,$4,f) }
if(jum%7==2)
{ printf("%-12s %2d %2d %d Senin %s\n",$1,$2,$3,$4,f) }
if(jum%7==3)
{ printf("%-12s %2d %2d %d Selasa %s\n",$1,$2,$3,$4,f) }
if(jum%7==4)
{ printf("%-12s %2d %2d %d Rabu %s\n",$1,$2,$3,$4,f) }
if(jum%7==5)
{ printf("%-12s %2d %2d %d Kamis %s\n",$1,$2,$3,$4,f) }
if(jum%7==6)
{ printf("%-12s %2d %2d %d Jumat %s\n",$1,$2,$3,$4,f) }
if(jum%7==0)
{ printf("%-12s %2d %2d %d Sabtu %s\n",$1,$2,$3,$4,f) } }
}

Kemudian kita eksekusi:
# awk -f pasaran.awk input.dat

Hasilnya
jaka 1 4 1989 Sabtu Wage
candra 19 6 1990 Selasa Pon
yusi 3 2 1988 Rabu Legi
yayuk 2 9 1987 Rabu Pahing
irna 23 7 1990 Senin Pahing
tantri 8 9 1990 Sabtu Wage
budi 20 11 1988 Minggu Pahing
fita 28 12 1987 Senin Wage
adit 17 10 1984 Rabu Pahing
ahsan 9 3 1988 Rabu Legi
sugeng 7 8 1990 Selasa Pahing
eko 3 5 1988 Selasa Legi
ferdian 11 7 1988 Senin Kliwon
karina 7 9 1990 Jumat Pon
adi 15 2 1988 Senin Pon
adya 27 12 1990 Kamis Wage

Fin!

Tidak ada komentar:

Posting Komentar