Rabu, 24 Juni 2009

Menampilkan hari dan pasaran dengan inputan tanggal lahir

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, 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

Senin, 01 Juni 2009

Menghitung Harga beserta Diskonnya

dari soal sebagai berikut :

BarangJumlahHarga satuan
CPU75500000
Printer51500000
Scaner82700000
Monitor103500000
Hardisk61200000
Mouse12100000
Webcam151000000

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


Free Blogspot Templates by Isnaini Dot Com and Bridal Dresses. Powered by Blogger