Rabu, 24 Juni 2009

Kalender Jawa

Tugas 5
1. membuat kalender
Pada tugas 5 kali ini kita akan membuat kalender dengan menggunakan bahasa pemrograman awk, dimana input berasal dari file yang berisi nama, tanggal, bulan dan tahun. output dari program adalah mengeluarkan kembali input dan ditambah nama bulan, nama hari dan nama pasaran. pada program saya kali ini input berasal dai file input.txt yang berisi:
putra 2 3 1989
hadi 11 7 1988
irawan 19 1 1989
jenggo 6 2009
ana 4 8 1987
lia 3 2 1992
ani 19 6 1989
ina 31 3 1989
rama 2 7 1988
sihnta 6 9 1993
shanti 31 3 2000
sisi 14 7 1990
joe 19 3 1980
bambang 26 3 1980
telwe 10 11 1062

selanjutnya kita buat program seperti berikut :

{
tgl=$2;
bln=$3;
thn=$4;
jm_hr=0;jum_kab=0;jum_biasa=0;

bulan[0] = 0;bulan[1] = 31;bulan[2] = 28;bulan[3] = 31;bulan[4] = 30;bulan[5] = 31;bulan[6] = 30;bulan[7] = 31;bulan[8] = 31;bulan[9] = 30;bulan[10] = 31;bulan[1] = 30;
#-----------------------------------------------------------------------
bulan_kab[0] = 0;bulan_kab[1] = 31;bulan_kab[2] = 29;bulan_kab[3] = 31;bulan_kab[4] = 30;bulan_kab[5] = 31;bulan_kab[6] = 30;bulan_kab[7] = 31;bulan_kab[8] = 31;bulan_kab[9] = 30;bulan_kab[10] = 31;bulan_kab[1] = 30;
#-----------------------------------------------------------------------
nama[1] = "januari";nama[2] = "pebruari";nama[3] = "maret";nama[4] = "april"; nama[5] = "mei";nama[6] = "juni";nama[7] = "juli";nama[8] = "agustus";nama[9] = "september";nama[10] = "oktober";nama[11] = "nopember";nama[12] = "desember";
#------------------------------------------------------------------------
pasaran[1] = "pahing" ; pasaran[2] = "pon"; pasaran [3]= "wage"; pasaran[4] = "kliwon"; pasaran[0] = "legi";
#-------------------------------------------------------------------------
hari[1] = "minggu"; hari[2] = "senin"; hari[3] = "selasa"; hari[4] = "rabu"; hari[5] = "kamis"; hari[6] = "jumat"; hari[0] = "sabtu";

if(thn%4==0){
for(i=0;i
jm_hr = jm_hr + bulan_kab[i];
}
}
else
for(i=0;i
jm_hr = jm_hr + bulan[i];
}

thn_b = thn-1;
kabisat = thn_b/4;
if(thn%2==0){
thn_biasa = thn - kabisat;
}
else
thn_biasa = thn - kabisat - 1;

for(j=1;j<=kabisat;j++){
jum_kab = jum_kab+366;
}
for(k=1;k<=thn_biasa;k++){
jum_biasa = jum_biasa+365;
}

if(bln>1){
tot_hari = jum_kab + jum_biasa + jm_hr+ tgl+1;
}
else
tot_hari = jum_kab + jum_biasa + jm_hr+ tgl;

sisa_pasaran = tot_hari%5;

sisa = tot_hari%7;
printf("%-10s %-5d %-5d %-5d %-10s %-10s %-10s\n",$1,$2,$3,$4, nama[bln], hari[sisa], pasaran[sisa_pasaran]);
}

Output yang ada adalah sebagai berikut :

putra 2 3 1989 kamis wage
hadi 11 7 1988 selasa kliwon
irawan 19 1 1989 kamis pahing
jenggo 6 2009 selasa pahing
ana 4 8 1987 senin pon
lia 3 2 1992 senin pahing
ani 19 6 1989 senin pon
ina 31 3 1989 jumat pon
rama 2 7 1988 sabtu legi
shinta 6 9 1993 senin pon
shanti 31 3 2000 jumat legi
sisi 14 7 1990 sabtu pon
joe 19 3 1980 rabu wage
bambang 26 3 1980 rabu legi
telwe 10 11 1062 senin kliwon

Tidak ada komentar:

Posting Komentar