HavE yOu aLreAdY KnoW ??

Kamis, 25 Juni 2009
KALENDER GREGORIAN
Pertama, buatlah file dengan nama lahir.txt seperti berikut :

chyntia 15 1 1990
dauz 19 1 1990
mobed 7 12 1988
fina 23 5 1988
ilham 11 1 1990
angga 24 7 1988
yanuar 29 9 1990
sandra 25 4 1988
tyo 17 12 1990
andre 24 12 1988
widi 12 7 1986
ojik 14 1 1988
dicky 28 12 1990
anez 29 2 1988
putra 16 1 1990

Lalu, buat lagi file dengan nama cara.txt yang berisi :

{
thn=$4-1;
bln=$3-1;
thk=thn/4;
if(thn%4==1){b=0.25}
if(thn%4==2){b=0.50}
if(thn%4==3){b=0.75}
d=thk-b;
thb=thn-d;

if(bln==0 && $4%4!=0){a=0}
if(bln==1 && $4%4!=0){a=31}
if(bln==2 && $4%4!=0){a=59}
if(bln==3 && $4%4!=0){a=90}
if(bln==4 && $4%4!=0){a=120}
if(bln==5 && $4%4!=0){a=151}
if(bln==6 && $4%4!=0){a=181}
if(bln==7 && $4%4!=0){a=212}
if(bln==8 && $4%4!=0){a=243}
if(bln==9 && $4%4!=0){a=273}
if(bln==10 && $4%4!=0){a=304}
if(bln==11 && $4%4!=0){a=334}

if(bln==0 && $4%4==0){a=0}
if(bln==1 && $4%4==0){a=31}
if(bln==2 && $4%4==0){a=60}
if(bln==3 && $4%4==0){a=91}
if(bln==4 && $4%4==0){a=121}
if(bln==5 && $4%4==0){a=152}
if(bln==6 && $4%4==0){a=182}
if(bln==7 && $4%4==0){a=213}
if(bln==8 && $4%4==0){a=244}
if(bln==9 && $4%4==0){a=274}
if(bln==10 && $4%4==0){a=305}
if(bln==11 && $4%4==0){a=335}

jum=(thb*365)+(d*366)+a+$2;

if(jum%7==1){print $0," ","Lahir pada hari Minggu"}
if(jum%7==2){print $0," ","Lahir pada hari Senin"}
if(jum%7==3){print $0," ","Lahir pada hari Selasa"}
if(jum%7==4){print $0," ","Lahir pada hari Rabu"}
if(jum%7==5){print $0," ","Lahir pada hari Kamis"}
if(jum%7==6){print $0," ","Lahir pada hari Jumat"}
if(jum%7==0){print $0," ","Lahir pada hari Sabtu"}
}

Selanjutnya, masuklah ke terminal dan ketikkan instruksi berikut :

kingdom@kingdom-desktop:~$ awk -f cara.txt lahir.txt

Hasil dari instruksi di atas ialah :

chyntia 15 1 1990 Lahir pada hari Senin
dauz 19 1 1990 Lahir pada hari Jumat
mobed 7 12 1988 Lahir pada hari Rabu
fina 23 5 1988 Lahir pada hari Senin
ilham 11 1 1990 Lahir pada hari Kamis
angga 24 7 1988 Lahir pada hari Minggu
yanuar 29 9 1990 Lahir pada hari Sabtu
sandra 25 4 1988 Lahir pada hari Senin
tyo 17 12 1990 Lahir pada hari Senin
andre 24 12 1988 Lahir pada hari Sabtu
widi 12 7 1986 Lahir pada hari Sabtu
ojik 14 1 1988 Lahir pada hari Kamis
dicky 28 12 1990 Lahir pada hari Jumat
anez 29 2 1988 Lahir pada hari Senin
putra 16 1 1990 Lahir pada hari Selasa
posted by Innocentia @ 01.59   0 comments
Rabu, 24 Juni 2009
KALENDER JAWA
Untuk membuat kalender jawa, pertama kita membuat file bernama a.txt, dengan input sebagai berikut :

Chyntia 15 1 1990
Dauz 19 1 1989
Januar 19 10 1989
Donee 20 9 1988
Lena 13 7 1989
Jeanette 12 2 1981
Denny 17 9 1987
Jono 19 5 1990
Parto 21 2 1991
Ardi 17 6 1987
Tri 12 5 1989
Mitha 17 10 1989
Susan 18 1990
Dino 22 8 1990
Hadi 14 1 1989

Kemudian buatlah satu file baru lagi, misalnya bernama b.txt, dengan isi 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");

}
}
}

Kemudian jalankan di terminal, instruksi di bawah ini :
$ awk -f b.txt a.txt

dengan instruksi di atas, maka akan muncul tampilan berikut :

Chyntia Hari = SENIN
Pasaran = PON
Dauz Hari = KAMIS
Pasaran = PAHING
Januar Hari = KAMIS
Pasaran = KLIWON
Donee Hari = SELASA
Pasaran = LEGI
Lena Hari = KAMIS
Pasaran = PAHING
Jeanette Hari = KAMIS
Pasaran = WAGE
Denny Hari = KAMIS
Pasaran = PAHING
Jono Hari = SABTU
Pasaran = PAHING
Parto Hari = KAMIS
Pasaran = KLIWON
Ardi Hari = RABU
Pasaran = KLIWON
Tri Hari = JUM'AT
Pasaran = KLIWON
Mitha Hari = SELASA
Pasaran = PON
Dino Hari = RABU
Pasaran = PAHING
Hadi Hari = SABTU
Pasaran = PAHING
posted by Innocentia @ 19.57   0 comments
Rabu, 17 Juni 2009
Magic Square

Bujur Sangkar Ajaib ordo 7 x 7 ialah sebagai berikut :

30 39 48 01 10 19 28
38 47 07 09 18 27 29
46 06 08 17 26 36 37
05 14 16 25 34 36 45
13 15 24 33 42 44 04
21 23 32 41 43 03 12
22 31 40 49 02 11 20

Untuk membuat bujur sangkar sedemikian rupa, pertama kita membuat file dengan nama persegi.txt

{ ordo[55,55]; #ordo persegi
n=$1; #input matriks
X=1; #nilai awal
Y=1; #interval
Z=1; #interval pindah

for(a=0; a<=n+2; a++) #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 tulis di terminal, instruksi berikut :
kingdom@kingdom-desktop:~$ echo 7 | awk -f persegi.txt

Maka akan muncul bujur sangkar ajaib seperti di atas...

Selain itu, kita juga dapat menampilkan bujur sangkar ajaib dengan ordo yang berbeda, misalnya bujur sangkar ajaib dengan ordo 5 x 5. Cara yang digunakan sama dengan instruksi di atas..
Bedanya hanya kita tinggal mengganti angka 7 dengan angka yang kita kehendaki, dalam hal ini ialah 5.

Sehingga instruksinya menjadi seperti di bawah ini ;
kingdom@kingdom-desktop:~$ echo 5 | awk -f persegi.txt

Hasil dari instruksi di atas ialah :

17 24 01 08 15
23 05 07 14 16
04 06 13 20 22
10 12 19 21 03
11 18 25 02 09

posted by Innocentia @ 21.05   0 comments
Senin, 01 Juni 2009
MENGHITUNG HARGA BARANG dan DISCOUNTnya
Buatlah sebuah file dengan nama 'harga barang', kemudian isilah dengan data berikut ini :

BarangJumlahHarga satuan
CPU75500000
Printer51500000
Scaner82700000
Monitor103500000
Hardisk61200000
Mouse12100000
Webcam151000000

kemudian masukkan instruksi awk 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=" 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 }}' harga barang
posted by Innocentia @ 21.12   0 comments
Kamis, 14 Mei 2009
PROGRAM MENENTUKAN NILAI IP SEMENTARA
Kita misalkan terdapat data, yakni sebagai berikut :

No. Nama Mata Kuliah Jumlah SKS Nilai Tugas Nilai UTS Nilai UAS
1. Mary AWK 3 65 82 76
2. Mary Rangkaian 6 86 83 82
3. Mary OS 3 50 93 67
4. Mary Arkom 3 86 83 85
5. Mary B.Inggris 2 86 83 85

Untuk mencari Indeks Prestasi Sementaranya, kita dapat mencarinya dengan program berikut :

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

Keterangan :
Tanda $ menyatakan isi suatu kolom.
posted by Innocentia @ 03.18   0 comments
Rabu, 13 Mei 2009
PROGRAM MENCARI BILANGAN PRIMA
Untuk mencari bilangan prima antara 2 sampai 100, maka kita dapat menggunakan program sebagai berikut :

$ 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==3 || i==5 || i==7|| i==2) {print Bil[i],i;} } }'
posted by Innocentia @ 18.53   0 comments
Rabu, 18 Maret 2009
AWK


DEFINISI


AWK adalah bahasa pemrograman untuk memanipulasi data secara bersama hanya dengan program yang singkat karena bahasa AWK tidak memerlukan suatu deklarasi untuk variabel. AWK akan menangani input, pemisahan field, initialisasi, dan manajemen memori secara otomatis.
Seiring berjalannya waktu, bahasa AWK semakin kuat dengan munculnya GAWK dan NAWK.

Beberapa fitur tambahan pada NAWK adalah sebagai berikut :
• Ekspresi reguler dinamik
• Fungsi additional built-in dan variabel
• Operator baru and statement
• Input lebih dari 1 files
• Akses ke argumen baris perintah
• Mengubah pesan error


STRUKTUR AWK

• BEGIN segment ( optional )
• Pattern-action pairs ( inputing data )
• END segment ( optional )


STRUKTUR PATTERN - ACTIONS

• Pattern terdaftar secara singkat, sedangkan actions diawali dan diakhiri oleh {}.


CARA MENJALANKAN 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.


PENYIMPAN OUTPUT AWK

• Lining Up Fields ( printf=untuk menghasilkan output terformat )


OUTPUT SEDERHANA AWK

• 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.
• Dapat menampilkan output seluruh line apabila tidak terdapat pattern.
• Dapat menampilkan multiple items dengan 1 print statement.
posted by Innocentia @ 03.08   0 comments
About Me

Name: Innocentia
Home: surabaya, jawa timur, Indonesia
About Me: aq tuh anagh na cute, baek hati, jujur, tidak sombong, dan rajin menabung.... opo tho yo??! www.eepis-its.edu
See my complete profile
Previous Post
Archives
Shoutbox

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus.

Links
  • link 1
  • link 2
  • link 3
  • link 4
Powered by

Free Blogger Templates

BLOGGER