1). Membuat kalender jawa
a). Buatlah sebuah file data nama yang ingin anda ketahui tanggal lahirnya, simpan dengan file nama.txt, seperti berikut:
mobed 17 2 1988
fauzy 12 8 1988
yanuar 27 6 1988
angga 15 4 1987
adit 2 11 1988
dicky 18 2 1988
putra 17 11 1988
bayu 13 12 1988
fina 14 7 1988
widi 25 3 1988
boby 3 4 1990
tyo 16 5 1988
andrey 30 4 1988
sintiya 27 7 1990
diana 19 3 1990
b). Kemuadian buatlah file rumusnya kemudian simpan dengan nama tanggal.txt
{
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("%s %d %d %d Lahir Minggu %s\n",$1,$2,$3,$4,f)}
if(jum%7==2){printf("%s %d %d %d Lahir Senin %s\n",$1,$2,$3,$4,f)}
if(jum%7==3){printf("%s %d %d %d Lahir Selasa %s\n",$1,$2,$3,$4,f)}
if(jum%7==4){printf("%s %d %d %d Lahir Rabu %s\n",$1,$2,$3,$4,f)}
if(jum%7==5){printf("%s %d %d %d Lahir Kamis %s\n",$1,$2,$3,$4,f)}
if(jum%7==6){printf("%s %d %d %d Lahir Jumat %s\n",$1,$2,$3,$4,f)}
if(jum%7==0){printf("%s %d %d %d Lahir Sabtu %s\n",$1,$2,$3,$4,f)}
}
c). Setelah selesai, buka terminal anda dan ketikkan program awk anda, seperti berikut:
$ awk -f tanggal.txt nama.txt
d). Kemudian output tersebut akan menampilkan kalendernya sebagai berikut :
$ awk -f tanggal.txt nama.txt
mobed 17 2 1988 lahir rabu Kliwon
fauzy 12 8 1988 Lahir Jumat pahing
yanuar 27 6 1988 Lahir Senen Legi
angga 15 4 1987 Lahir Rabu pahing
adit 2 11 1988 Lahir Rabu wage
dicky 18 2 1988 Lahir kamis legi
putra 17 11 1988 Lahir Kamis wage
bayu 13 12 1988 Lahir selasa Kliwon
fina 14 7 1988 Lahir Kamis Pon
widi 25 3 1988 Lahir Jumat Pahing
boby 3 4 1990 Lahir Selasa Legi
tyo 16 5 1988 Lahir senin wage
andrey 30 4 1988 Lahir sabtu Pon
sintiya 27 7 1990 Lahir jumat legi
diana 19 3 1990 senin legi
e). selesai
Minggu, 28 Juni 2009
Kamis, 18 Juni 2009
BUJURSANGKAR AJAIB
Pada tugas kali ini kita mendapatkan soal sebagai berikut :
BUATLAH SEBUAH BUJURSANGKAR AJAIB dengan ORDO 7x7
maka langkah yang dilakukan adalah
Pertama kita buat file dengan nama ajaib.txt yang berisi instruksi sebagai berikut :
{ ordo[55,55];
n=$1;
X=1;
Y=1;
Z=1;
for(a=0; a<=n+2; a++)
{ for(b=0; b<=n+2; b++)
ordo[a,b] = 0;
}
a=1; b=(n+1) / 2;
X-=Y;
for(N=1; N<=n*n;)
{ if(ordo[a,b]==0)
{ X+=Y;
ordo[a,b] = X;
if(a==n) ordo[0,b] = X;
if(b==1) ordo[a,n+1] = X;
if(a==n && b==1 ) ordo[0,n+1] = X;
a--; b++; N++;
if(a==0&&b==n+1) continue;
else
{
if (a==0) a=n;
if(b==n+1) b=1;
}
}
else
{
a+=2;
b-=1;
X=X-Y+Z;
}
}
for(a=1; a<=n; a++)
T1+=ordo[a,n+1-a];
for(a=1; a<=n*5;a++)
printf(" ");
printf("%5d\n\n",T1);
for(a=1;a<=n+1;a++)
{
for(b=1; b<=n; b++)
{
printf("%5d", ordo[a,b]);
ordo[a,n+2] += ordo[a,b];
ordo[n+1,b] += ordo[a,b];
}
T2 += ordo[a,b];
if(a==n+1) ordo[a,n+2] = T2;
printf("%5d\n\n",ordo[a,n+2]);
}
}
setelah itu kita harus memanggil file tersebut ke dalam terminal dengan cara
echo 7 | awk -f ajaib.txt
maka akan muncul tampilan sebagai berikut di terminal :
30 39 48 1 10 19 28 175
38 47 7 9 18 27 29 175
46 6 8 17 26 35 37 175
5 14 16 25 34 36 45 175
13 15 24 33 42 44 4 175
21 23 32 41 43 3 12 175
22 31 40 49 2 11 20 175
175 175 175 175 175 175 175 175
BUATLAH SEBUAH BUJURSANGKAR AJAIB dengan ORDO 7x7
maka langkah yang dilakukan adalah
Pertama kita buat file dengan nama ajaib.txt yang berisi instruksi sebagai berikut :
{ ordo[55,55];
n=$1;
X=1;
Y=1;
Z=1;
for(a=0; a<=n+2; a++)
{ for(b=0; b<=n+2; b++)
ordo[a,b] = 0;
}
a=1; b=(n+1) / 2;
X-=Y;
for(N=1; N<=n*n;)
{ if(ordo[a,b]==0)
{ X+=Y;
ordo[a,b] = X;
if(a==n) ordo[0,b] = X;
if(b==1) ordo[a,n+1] = X;
if(a==n && b==1 ) ordo[0,n+1] = X;
a--; b++; N++;
if(a==0&&b==n+1) continue;
else
{
if (a==0) a=n;
if(b==n+1) b=1;
}
}
else
{
a+=2;
b-=1;
X=X-Y+Z;
}
}
for(a=1; a<=n; a++)
T1+=ordo[a,n+1-a];
for(a=1; a<=n*5;a++)
printf(" ");
printf("%5d\n\n",T1);
for(a=1;a<=n+1;a++)
{
for(b=1; b<=n; b++)
{
printf("%5d", ordo[a,b]);
ordo[a,n+2] += ordo[a,b];
ordo[n+1,b] += ordo[a,b];
}
T2 += ordo[a,b];
if(a==n+1) ordo[a,n+2] = T2;
printf("%5d\n\n",ordo[a,n+2]);
}
}
setelah itu kita harus memanggil file tersebut ke dalam terminal dengan cara
echo 7 | awk -f ajaib.txt
maka akan muncul tampilan sebagai berikut di terminal :
30 39 48 1 10 19 28 175
38 47 7 9 18 27 29 175
46 6 8 17 26 35 37 175
5 14 16 25 34 36 45 175
13 15 24 33 42 44 4 175
21 23 32 41 43 3 12 175
22 31 40 49 2 11 20 175
175 175 175 175 175 175 175 175
Rabu, 03 Juni 2009
Menghitung Diskon
Barang | Jumlah | Harga satuan |
---|---|---|
CPU | 7 | 5500000 |
Printer | 5 | 1500000 |
Scaner | 8 | 2700000 |
Monitor | 10 | 3500000 |
Hardisk | 6 | 1200000 |
Mouse | 12 | 100000 |
Webcam | 15 | 1000000 |
didapatkan dengan rumus sebagai berikut :
awk 'BEGIN{printf "%-10s %-10s %-10s %-10s %-10s %s\n",
"BARANG","JUMLAH","HARGA SATUAN","TOTAL","DISCOUNT",
"BAYAR"}
{if($2>=5 && $2 <10){printf "%-10s %-10s %-10s %-10s %-10s %s\n", $1,$2,$3,$4=$2*$3,$5=0.1*$4,$6=$4-$5 }}
{if($2>=10){printf "%-10s %-10s %-10s %-10s %-10s %s\n", $1,$2,$3,$4=$2*$3,$5=0.2*$4,$6=$4-$5 }}' barang
Langganan:
Postingan (Atom)