Sabtu, 27 Juni 2009

TUGAS 6 : Kalender JAWA

pada tugas 6 yaitu membuat kalender dengan menampilkan hari dan pasaran jwa. pada tugas ini tidaak jauh berbeda dengan tugas lima untuk menampilkan hari. yang membedakan hanya julah array dari pasaran jawa yang hanya memiliki 5 hari pasaran. sehingga hanya berbeda dalam penentuannya. lebih lengkap seperti di bawah ini :
file input diketik dengan nama file nama.txt berisi :

adi 25 10 1988

budi 10 2 2009

ari 12 5 1990

jani 16 12 1987

arif 17 8 1986

ucil 8 9 1984

jane 20 11 1988

jupri 28 8 1987

zaenal 19 7 1989

uki 17 2 1978

mike 17 3 1984

putra 14 1 1987

cabi 5 5 1990

ica 13 6 1988

riza 4 10 1984

kemudian untuk script yang digunakan untuk memproses input, seperti dibawah ini.
script disimpan dalam file "kalender1" berisi :

{

#----nama hari------

hari[1] = "minggu"; hari[2] = "senin"; hari[3] = "selasa"; hari[4] = "rabu"; hari[5] = "kamis"; hari[6] = "jumat"; hari[0] = "sabtu";

#----jumlah hari-----

jumhar[0]=0; jumhar[1]=31; jumhar[2]=28; jumhar[3]=31; jumhar[4]=30; jumhar[5]=31; jumhar[6]=30; jumhar[7]=31; jumhar[8]=31; jumhar[9]=30; jumhar[10]=31; jumhar[11]=30; jumhar[12]=31;

#----pasaran-------

pasar[1] = "pahing" ; pasar[2] = "pon"; pasar [3]= "wage"; pasar[4] = "kliwon"; pasar[0] = "legi";

jum = 0

thn= $4-1

x = thn % 4

z = thn /4

if ( x==1 ){

a=z-0.25}

if ( x==2 ){

a=z-0.5}

if ( x==3 ){

a=z-0.75}

thnkab = a*366

thnb = (thn - a)*365

jumhari = thnkab + thnb

if ($4 % 4== 0){

for (i=1; i< $3; i++){

jum += jumhar[i] }

if ( $3 > 2){

tot = jumhari + jum + $2 +1}

else {

tot = jumhari + jum + $2 -1 }

}

else{

for (i = 1; i< $3; i++){

jum += jumhar[i] }

tot = jumhari + jum + $2 -1

}

tothar = tot % 7

totpas = tot % 5

printf ("%-10s %-5d %-5d %-5d %-10s %-10s\n", $1, $2, $3, $4, hari[tothar], pasar[totpas]);

}


program dijalankan dengan mengetikkan perintah dibawah ini pada terminal :

awk -f kalender1 nama.txt



hasilnya :

widiyanto@widiyanto-laptop:~$ awk -f kalender1 nama.txt

aan 25 10 1988 selasa legi

varid 10 2 2009 selasa pahing

aris 12 5 1990 jumat wage

jayen 16 12 1987 selasa legi

sunio 4 7 1989 minggu legi

ocol 8 9 1984 sabtu pon

akil 20 11 1988 minggu pahing

rizza 28 8 1987 kamis legi

luse 19 7 1989 senin legi

ukih 17 2 1978 kamis pahing

mika 17 3 1984 sabtu pon

virsa 14 1 1987 selasa kliwon

cabyby 5 5 1990 jumat pahing

ical 13 6 1988 senin pahing

vina 4 10 1984 kamis wage




Rabu, 24 Juni 2009

TUGAS 5 : kalender georgian

pada tugas 5 membuat kalender georgian dengan menggunakan script awk. untuk membuat scrip untuk kalender, pertama buat file sebagai input dengan menyimpan file dengan "nama.txt" dengan contains :

adi 25 10 1988
budi 10 2 2009
ari 12 5 1990
jani 16 12 1987
arif 4 7 1989
ucil 8 9 1984
jane 20 11 1988
jupri 28 8 1987
zaenal 19 7 1989
uki 17 2 1978
mike 17 3 1984
putra 14 1 1987
cabi 5 5 1990
ica 13 6 1988
riza 4 10 1984


kemudian untuk scriptnya sebagai pemrose input, menyimpan script dengan nama file "kalender1" dengan contains:

{
#----nama hari------
hari[1] = "minggu"; hari[2] = "senin"; hari[3] = "selasa"; hari[4] = "rabu"; hari[5] = "kamis"; hari[6] = "jumat"; hari[0] = "sabtu";
#----jumlah hari-----
jumhar[0]=0; jumhar[1]=31; jumhar[2]=28; jumhar[3]=31; jumhar[4]=30; jumhar[5]=31; jumhar[6]=30; jumhar[7]=31; jumhar[8]=31; jumhar[9]=30; jumhar[10]=31; jumhar[11]=30; jumhar[12]=31;

jum = 0
thn= $4-1
x = thn % 4
z = thn /4
if ( x==1 ){
a=z-0.25}
if ( x==2 ){
a=z-0.5}
if ( x==3 ){
a=z-0.75}
thnkab = a*366
thnb = (thn - a)*365
jumhari = thnkab + thnb

if ($4 % 4== 0){

for (i=1; i< $3; i++){
jum += jumhar[i] }
if ( $3 > 2){
tot = jumhari + jum + $2 +1}
else {
tot = jumhari + jum + $2 -1 }
}

else{
for (i = 1; i< $3; i++){
jum += jumhar[i] }
tot = jumhari + jum + $2 -1
}

tothar = tot % 7

printf ("%-10s %-5d %-5d %-5d %-10s\n", $1, $2, $3, $4, hari[tothar]);
}

untuk menjalankan scriptnya maka pada terminal diketikan :
awk -f kalender1 nama.txt

maka hasil dari eksekusi tersebut :


widiyanto@widiyanto-laptop:~$ awk -f kalender1 nama.txt
adi 25 10 1988 selasa
budi 10 2 2009 selasa
ari 12 5 1990 jumat
jani 16 12 1987 selasa
arif 4 7 1989 minggu
ucil 8 9 1984 sabtu
jane 20 11 1988 minggu
jupri 28 8 1987 kamis
zaenal 19 7 1989 senin
uki 17 2 1978 kamis
mike 17 3 1984 sabtu
putra 14 1 1987 selasa
cabi 5 5 1990 jumat
ica 13 6 1988 senin
riza 4 10 1984 kamis

semangat untuk mencobanya

Kamis, 18 Juni 2009

TUGAS 4

BUJUR SANGKAR AJAIB

pada tugas ini kita diminta untuk membuat suatu bujursangkar dengan ordo 7x7. Awalnya kita buat dulu sebuah file dengan nama bujursangkar.txt yang akan berisi perintah di bawah ini :

{ ordo[55,55];
n=$1;
K=1;
L=1;
M=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;
K-=L;
for(N=1; N<=n*n;)
{ if(ordo[a,b]==0)
{ K+=L;
ordo[a,b] = K;
if(a==n) ordo[0,b] = K;
if(b==1) ordo[a,n+1] = K;
if(a==n && b==1 ) ordo[0,n+1] = K;
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;
K=K-L+M;
}
}
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]);
}
}

yang kemudian program tersebut akan dipanggil dalam terminal dengan perintah berikut :

echo 7 | awk -f bujursangkar.txt

perintah echo 7 berarti bahwa ordo yang dibuat adaalah ordo 7x7 dan bila kita menginginkan ordo yang lainnya maka kita hanya tinggal mengganti angka dari echo tersebut.
hasil dari perintah di atas adalah sebagai berikut :

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

TUGAS 3

menampilkan perhitungan hasil diskon sutu barang seperti dibawah ini

Barang

Jumlah

Harga satuan

Total

Diskon

Bayar

CPU

7

5500000

38500000

3850000

34650000





dengan ketentuan perhitungan barang sebagai berikut :
-bila membeli barang 5 atau lebih, maka diskon 10% -bila membeli barang 10 atau lebih, maka diskon 20%

kemudian data yang dimiliki seperti dibawah ini :

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



perhitungan dengan menggunakan script AWK:
1. menyimpan data diatas pada direktori home,dengan langsung berupa list data (tanpa header tabel)
seperti dibawah ini :

CPU 7 5500000

printer 5 1500000

scanner 8 2700000

Monitor 10 3500000

Hardisk 6 1200000

Mouse 12 100000

Webcam 15 1000000


disimpan dengan nama barang
2. scrip awk :

awk 'BEGIN{printf "%-10s %-10s %-15s %-10s %-10s %s\n", "BARANG","JUMLAH","HARGA SATUAN","TOTAL","DISKON","BAYAR"}

{if($2>=5 && $2 <10){

$4 = ($2 * $3)

$5 = (0.1 * $4)

$6 = ($4 - $5)

{printf "%-10s %-10s %-15s %-10s %-10s %s\n", $1,$2,$3,$4,$5,$6 }}}

{if($2>=10){

$4 = ($2 * $3)

$5 = (0.2 * $4)

$6 = ($4 - $5)

{printf "%-10s %-10s %-15s %-10s %-10s %s\n", $1,$2,$3,$4,$5,$6 }}}' barang

3. hasil yang diperoleh :

Barang Jumlah HargaSatuan Total Diskon Bayar

CPU 7 5500000 38500000 3850000 34650000

printer 5 1500000 7500000 750000 6750000

scanner 8 2700000 21600000 2160000 19440000

Monitor 10 3500000 35000000 7000000 28000000

Hardisk 6 1200000 7200000 720000 6480000

Mouse 12 100000 1200000 240000 960000

Webcam 15 1000000 15000000 3000000 12000000