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
Kamis, 25 Juni 2009
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...
{
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
{ 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 :
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
Buat File bernama "daftar harga" dan isi 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 |
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
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
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
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 ekspresipenambahan 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 s egment 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
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
Pada nawk terdapat fitur tambahan, yaitu:
Dinamik ekspresipenambahan 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 :

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
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
Dapat menampilkan number of field ( NF )
AWK dapat berguna sebagai:
AWK sebagi seleksi :
Berdasarkan perbandingan
AWK sebagai data validation
Langganan:
Postingan (Atom)