pertama kita buat file input.txt yang berisi nama dan tanggal lahir:
Finna 1 10 1989
Widi 12 11 1990
Bagus 2 12 1989
Hendra 22 1 1989
Heri 16 2 1989
Anjar 7 4 1987
Dimas 14 5 1988
Sandra 19 6 1989
Nana 21 7 1989
Diana 24 8 1988
Mike 24 9 1989
Budi 7 3 1988
Crash 24 1 1989
Reza 12 2 1988
Randi 29 3 1989
kemudian kita membuat rumus dengan file rumus.txt, adapun rumusnya sebagai berikut:
{ nm=$1;
tgl=$2;
bln=$3;bln1=int(bln)
tahun=$4;
if (bln1<=12&&bln1!=0) {
thn=tahun-1;
thk=thn/4;
thb=thn-int(thk);
jumth=tahun%4;
bulan=bln-1;
if (jumth==0){
if(bulan==0)
i=31;
if(bulan==1)
i=62;
if(bulan==2)
i=91;
if(bulan==3)
i=122;
if(bulan==4)
i=152;
if(bulan==5)
i=183;
if(bulan==6)
i=213;
if(bulan==7)
i=244;
if(bulan==8)
i=275;
if(bulan==9)
i=305;
if(bulan==10)
i=336;
if(bulan==11)
i=366; }
else {
if(bulan==0)
i=31;
if(bulan==1)
i=62;
if(bulan==2)
i=90;
if(bulan==3)
i=121;
if(bulan==4)
i=151;
if(bulan==5)
i=182;
if(bulan==6)
i=212;
if(bulan==7)
i=243;
if(bulan==8)
i=274;
if(bulan==9)
i=304;
if(bulan==10)
i=335;
if(bulan==11)
i=365; }
kab=366*int(thk);
br=365*thb;
tothar=(kab)+(br)+i+tgl;
hr=tothar%7;
printf(nm); {
if(hr==0)
printf("\t\tHari = RABU\n");
else if(hr==1)
printf("\t\tHari = KAMIS\n");
else if(hr==2)
printf("\t\tHari = JUM'AT\n");
else if(hr==3)
printf("\t\tHari = SABTU\n");
else if(hr==4)
printf("\t\tHari = MINGGU\n");
else if(hr==5)
printf("\t\tHari = SENIN\n");
else
printf("\t\tHari = SELASA\n"); }
psr=tothar%5;{
if(psr==0)
printf("\t\tPasaran = KLIWON\n");
else if(psr==1)
printf("\t\tPasaran = LEGI\n");
else if(psr==2)
printf("\t\tPasaran = PAHING\n");
else if(psr==3)
printf("\t\tPasaran = PON\n");
else
printf("\t\tPasaran = WAGE\n");
} } }
Jika semua sudah selesai kita lakukan barulah kita jalankan ke 2 file tersebut dengan perintah
$ awk -f rumus.txt input.txt
Rabu, 24 Juni 2009
Menampilkan hari dan pasaran dengan inputan tanggal lahir
Diposting oleh Diana Juni di 19.26 0 komentar
Rabu, 17 Juni 2009
TUGAS 4 : Bujur Sangkar Ajaib
Pada awalnya kita akan membuat file yang kemudian akan dijalankan pada terminal. Cara memanggilnya di terminal adalah sebagai berikut
echo 7 | awk -f
disini echo 7 berfungsi sebagai penanda bahwa ordo dari bujursangkar ajaib tersebut adalah 7x7. Apabila kita menginginkan ordo selain itu maka kita hanya tinggal mengganti angkanya saja. Misalnya kita menginginkan ordonya adalah 4x4 maka cara memanggilnya adalah seperti di bawah ini :
echo 4 | awk -f
Misalnya saja kita beri nama file tersebut bujur_ajaib.txt maka perintah di atas akan menjadi seperti ini :
echo 7 | awk -f bujur_ajaib.txt
yang mana file tersebut akan berisi instruksi sebagai berikut :
{ ordo[55,55]; #array yang menunjukkan ordo dari bujur sangkar
n=$1; #merupakan input dari matriks
X=1; #adalah nilai awal yang diberikan
Y=1; #merupakan interval
Z=1; #merupakan interval yang digunakan untuk pindah
for(a=0; a<=n+2; a++) #digunakan untuk menghitung letak kolom dan baris
{ 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]);
}
}
kemudian setelah membuat file tersebut kita akan menjalankannya dengan perintah seperti di atas tadi yang kemudian akan menghasilkan tampilan seperti di bawah ini di dalam terminal :
175
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
echo 7 | awk -f
disini echo 7 berfungsi sebagai penanda bahwa ordo dari bujursangkar ajaib tersebut adalah 7x7. Apabila kita menginginkan ordo selain itu maka kita hanya tinggal mengganti angkanya saja. Misalnya kita menginginkan ordonya adalah 4x4 maka cara memanggilnya adalah seperti di bawah ini :
echo 4 | awk -f
Misalnya saja kita beri nama file tersebut bujur_ajaib.txt maka perintah di atas akan menjadi seperti ini :
echo 7 | awk -f bujur_ajaib.txt
yang mana file tersebut akan berisi instruksi sebagai berikut :
{ ordo[55,55]; #array yang menunjukkan ordo dari bujur sangkar
n=$1; #merupakan input dari matriks
X=1; #adalah nilai awal yang diberikan
Y=1; #merupakan interval
Z=1; #merupakan interval yang digunakan untuk pindah
for(a=0; a<=n+2; a++) #digunakan untuk menghitung letak kolom dan baris
{ 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]);
}
}
kemudian setelah membuat file tersebut kita akan menjalankannya dengan perintah seperti di atas tadi yang kemudian akan menghasilkan tampilan seperti di bawah ini di dalam terminal :
175
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
Diposting oleh Diana Juni di 23.47 0 komentar
Senin, 01 Juni 2009
Menghitung Harga beserta Diskonnya
dari soal sebagai berikut :
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 |
maka didapatkan harga barang beserta diskon dengan rumus di bawah ini :
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
Diposting oleh Diana Juni di 20.52 0 komentar
Langganan:
Postingan (Atom)