Kamis, 25 Juni 2009

Kalender Pasaran Hari

buat file berisi nama tangal bulan tahun lahir seperti dibawah ini

Bayu 20 9 1989
Finna 10 12 2009
Samudra 8 5 1990
Bedu 23 12 1980
Cruz 1 1 1989
Julio 2 8 1974
Ricardo 29 1 1968
Kaka' 28 8 1957
Udin 19 7 1986
ukie 21 8 1999
Dimas 22 3 1984
Sandra 14 1 1997
Gogon 21 5 2000
Bical 19 6 2010
Bocel 1 6 1980

lalu buat rumusan program seperti dibawah ini:
{
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");

}
}
}
lalu jalankan program seperti dibawah ini
$ awk -f kalender1 nama.txt

Rabu, 24 Juni 2009

Kalender Georgian

Buatlah File yang berisi seperti dibawah ini untuk memasukkan rumus dan dapat mengakses programnya:

{
hari[1] = "minggu"; hari[2] = "senin"; hari[3] = "selasa"; hari[4] = "rabu"; hari[5] = "kamis"; hari[6] = "jumat"; hari[0] = "sabtu";
#----jumlah hari perbulan-----
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}
thnkabst = a*366
thnb = (thn - a)*365
jumhari = thnkabst + 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
}

totalhar = tot % 7

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


lalu buatlah file berisi nama dan tanggal lahirnya seperti dibawah ini ok:
Bayu 20 9 1989
Finna 10 12 2009
Samudra 8 5 1990
Bedu 23 12 1980
Cruz 1 1 1989
Julio 2 8 1974
Ricardo 29 1 1968
Kaka' 28 8 1957
Udin 19 7 1986
ukie 21 8 1999
Dimas 22 3 1984
Sandra 14 1 1997
Gogon 21 5 2000
Bical 19 6 2010
Bocel 1 6 1980

lalu eksekusi program dengan seperti dibawah ini ok:
bayu@bayu-laptop:~$ awk -f kalender1 nama.txt

semoga program ini bermanfaat Amin...

Minggu, 21 Juni 2009

TUGAS 4

buat file berisi:

{ 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]); } }


kemudian panggil:

echo 7 | awk -f bujursangkar.txt

Sehingga hasil yang ditampilkan adalah :

30 39 48 1 10 19 28

38 47 7 9 18 27 29

46 6 8 17 26 35 37

5 14 16 25 34 36 45

13 15 24 33 42 44 4

21 23 32 41 43 3 12

22 31 40 49 2 11 20

jumlah semuanya adalah 175

Senin, 01 Juni 2009

TUGAS 3

MENGHITUNG HARGA BARANG SERTA DISKONNYA

Buat File bernama "daftar harga" dan isi seperti dibawah ini :

BarangJumlahHarga satuan
CPU75500000
Printer51500000
Scaner82700000
Monitor103500000
Hardisk61200000
Mouse12100000
Webcam151000000


setelah itu masukkan scrip awk dibawah ini :

awk 'BEGIN{printf "%-10s %-10s %-10s %-10s %-10s %s\n",
"BARANG","JUMLAH","HARGA SATUAN","TOTAL","DISKON",
"BAYAR"}
{if($2>=5 && $2 <10){printf 4="$2*$3,$5="0.1*$4,$6="$4-$5">=10){printf "%-10s %-10s %-10s %-10s %-10s %s\n", $1,$2,$3,$4=$2*$3,$5=0.2*$4,$6=$4-$5 }}' daftar harga

Rabu, 13 Mei 2009

Menampilkan Bilangan Prima Dengan Array (2-100)

$ ls -l | awk 'BEGIN {bil[100];}
END {for (i=2;i<=97;i++ ){
if(i%i==0 && i%2!=0 && i%3!=0 && i%4=0 && i%5!=0 && i%6!=0 && i%7!=0 && i%8!=0 &&
i%9!=0 || i==2 || i==3 || i==5 || i==7) {print bil[i],i;}}}'

Hasilnya adalah
2
3
5
7
11
-
-
-
97

Menampilkan Kriteria Nilai dan Nilai IPS

buat file contoh seperti dibawah ini dan beri nama filenya nilai

No Nama MalKul SKS Tugas UTS UAS
1. a RTOS 3 80 84 90
2. a AWK 6 70 95 80
3. a Matem 2 90 92 76
4. a bing 2 92 75 100

program menampilkan nilai IPS

awk' { nilairata=0; nilairata=($5+$6+$7)/3}
{{if(81<=nilairata && nilairata<=100){print $1,$2, $3,$4,$5,$6,$7,nilairata, "A", $8= 4*$2}}
{{if(71<=nilairata && nilairata<=80){print $1,$2, $3,$4,$5,$6,$7,nilairata, "B", $8= 3*$2}}
{{if(61<=nilairata && nilairata<=70){print $1,$2, $3,$4,$5,$6,$7,nilairata, "C", $8= 2*$2}}
{{if(51<=nilairata&& nilairata<=60){print $1,$2, $3,$4,$5,$6,$7,nilairata, "D", $8= 1*$2}}
{{if(0<=nilairata && nilairata<=50){print $1,$2, $3,$4,$5,$6,$7,nilairata, "E", $8= 0*$2}}
BEGIN {SKS=0}
{SKS=SKS+$4}
END { print "Total SKS= ", SKS}
BEGIN { Total=0 }
{Total=Total+$8}
END{print " Nilai total = ", Total}
BEGIN { IPS =0 }
{ IPS=Total/SKS}
END {print " IPS=", IPS}' nilai

Selasa, 24 Maret 2009

Mengelompokkan nilai

awk '{if(81<=$2&&$2<=100) { print $1,$2,"A"}} {if(71<=$2&&$2<=80) { print $1,$2,"B"}} {if(61<=$2&&$2<=70) { print $1,$2,"C" }} {if(41<=$2&&$2<=60) { print $1,$2,"D"}} {if(0<=$2&&$2<=40) { print $1,$2,"E"}}' nilai.txt

Membuat file

cat 1> nilai.txt #membuat file
aa 45
ab 50
ac 70
ad 79
ae 81
af 90
ag 72
ah 71
ai 81
aj 88
ak 80
al 55
am 59
an 92
ao 87
ap 61
aq 63
ar 71
as 44
at 59

Selasa, 17 Maret 2009

Review AWK 1

Bahasa AWK pertama kali dibuat pada tahun 1977 oleh Al Aho, Peter Weinberger, dan Brien Kernigan. Kemudian pada tahun 1985, diterbitkan new AWK atau nawk. nawk merupakan pelengkap dai awk.

Pada nawk terdapat fitur tambahan, yaitu:
Dinamik ekspresi
penambahan fungsi - fungsi dan variabel
operator dan statement baru
inputan lebih dari 1
akses bebas command line arguments
meningkatkan kedetailan pesan error

Structure dariprogram AWK adalah :
BEGIN segment untuk membaca input
Pattern untuk memproses input,jika pattern lebih dari 1 maka dapat berguna untuk menghubungkan perintah yang diberikan
END segment untuk proses akhir
Tebal
Cara menjalankan program AWK :
AWK ‘program’ input_file(s) : program dan input merupakan perintah.
AWK ‘program’ : program bertindak sebagai perintah, input berasal dari standart input.
AWK –f program_file_name input_files : program dibaca dari suatu file.

pembeda error antara awk dan nawk:
untuk awk

awk '$3==0 [ print $1}' emp.data
pesan error
awk: syntax error near line 1
awk: bailling out near line 1

untuk nawk
awk '$3==0 [ print $1}' emp.data
pesan error

nawk: syntax error at source line 1

context is

$3 == 0 >>> [ <<<

1 extra }

1 extra [

nawk: bailing out at source line 1

1 extra }

1 extra [


Variabel baru di nawk :

NF - Number of fields in current record

NR - Number of records read so far

0 - Entire line

n - Field n

NF - Last field of current record



Simple output dari AWK :
Dapat menampilkan output seluruh line apabila tidak terdapat pattern.
Dapat menampilkan multiple items dengan 1 print statement.
Dapat menampilkan number of field ( NF )

Dapat melakukan perhitungan pada nilai field dan menampilkannya sebagai output.
Dapat menampilkan line numbers yang kita inginkan ( NR )
Dapat menambahkan text pada output.

AWK dapat berguna sebagai:

AWK sebagi seleksi :

Berdasarkan perbandingan

Berdasarkan perhitungan
Berdasarkan isi text
Berdasarkan kombinasi patterns.

AWK sebagai data validation
AWK sebagai program penghitungan.
AWK sebagai Handling Text
AWK berisikan number of built-in functions.
AWK sebagai Flow Control statements
AWK sebagai Loop Control
AWK dilengkapi dengan arrays