Rabu, 24 Juni 2009

Membuat Kalender Jawa dengan Menggunakan AWK

Buatlah file lahir.txt dan isi sebagai berikut :

Amrozy 19 1 1976
Muklas 12 8 1977
Ghufron 17 2 1967
Aziz 27 6 1965
Samudra 15 4 1971
Abu 2 11 1970
Dujana 18 2 1970
Imron 17 11 1978
Azhari 13 12 1980
Abdul 14 7 1977


b). Kemudian buat rumus dengan nama kalender.txt seperti 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");

}
}
}
c). Setelah selesai compile program tersebut pada terminal dengan cara:

daus@daus-desktop:~$ awk -f kalender.txt lahir.txt

d). Maka output program di terminal tersebut adalah sebagai berikut:

daus@daus-desktop:~$ awk -f kalender.txt lahir.txt

Amrozy Hari = SENIN
Pasaran = PON
Muklas Hari = JUM'AT
Pasaran = WAGE
Ghufron Hari = JUM'AT
Pasaran = KLIWON
Aziz Hari = MINGGU
Pasaran = KLIWON
Samudra Hari = KAMIS
Pasaran = PON
Abu Hari = SENIN
Pasaran = WAGE
Dujan Hari = RABU
Pasaran = PAHING
Imron Hari = JUM'AT
Pasaran = LEGI
Azhari Hari = SABTU
Pasaran = PON
Abdul Hari = KAMIS
Pasaran = KLIWON

Kamis, 18 Juni 2009

Magic Square Ordo 7 x 7

Untuk Membuat Bujur Sangkar Ajaib ordo 7 x 7 dengan menggunakan bahasa AWK 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 itu, pertama kita membuat file dengan nama sangkar.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 :
~$ echo 7 | awk -f sangkar.txt

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

Kita dapat membuat bujur sangkar ajaib dengan ordo yang lain. Misalnya ordo 5 x 5. Instruksinya sama dengan di atas tapi yang membedakan adalah mengganti angka 7 dengan angka yang kita kehendaki, dalam hal ini ialah 5.

Sehingga instruksinya menjadi seperti di bawah ini ;
:~$ echo 5 | awk -f sangkar.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

Selasa, 02 Juni 2009

Menghitung Diskon dalam Pembelian Barang

Buatlah file "diskon" yang berisi tabel seperti di bawah :

BarangJumlahHarga satuan
CPU75500000
Printer51500000
Scaner82700000
Monitor103500000
Hardisk61200000
Mouse12100000
Webcam151000000

Gunakan 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 4="$2*$3,$5=" 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 }}' diskon

Rabu, 13 Mei 2009

Menghitung Nilai IPS dengan Menggunakan Pemrograman AWK

Untuk menentukan IPS atau IP Sementara beberapa mahasiswa dapat digunakan program di bawah :

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, "A", $8= 3*$2}}
{{if(61<=NA && NA<=70){print $1,$2, $3,$4,$5,$6,$7,NA, "A", $8= 2*$2}}
{{if(51<=NA && NA<=60){print $1,$2, $3,$4,$5,$6,$7,NA, "A", $8= 1*$2}}
{{if(0<=NA && NA<=50){print $1,$2, $3,$4,$5,$6,$7,NA, "A", $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

Program di atas akan menghasilkan tampilan seperti di bawah:
No-Nama-Mata Kuliah-Jumlah SKS-Nilai Tugas-Nilai UTS-Nilai UAS
1. Amrozi AWK 3 75 85 60
2. Samudra Embeded 3 65 80 75
3. Gufron Pemrograman 6 70 65 90
4. Imron OS 3 60 85 85
5. Muklas Matematika 2 70 70 80

Menampilkan Bilangan Prima dengan Pemrograman AWK

Untuk mendapatkan bilangan prima dari 2 sampai 100 maka bisa digunakan program seperti dibawah ini:

$ awk 'BEGIN {
Number[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 Number[i],i;}
}}'

Program di atas akan menampilkan bilangan prima dari 2 sampai 100 dengan format :
2,3,5,7,11,......97

Rabu, 18 Maret 2009

Sekilas Tentang AWK

AWK adalah sebuah bahasa pemrograman untuk menangani manipulasi data dengan hanya beberapa baris program. AWK bisa dibilang kelihatan sedikit dalam bahasanya seperti bahasa C. Tapi AWK tidak secara otomatis menangani input, inisialisasi dan pengaturan memori. AWK dapat dikatakan sebagai prototype bahasa yang bagus karena dimulai dengan beberapa baris dan menyimpan apa yang kita tambah sampai waktu yang kita inginkan.
AWK didesain dan diimplementasikan pada tahun 1977 oleh Al Aho, Peter Weinberger dan Brian Kernigan. Nama AWK dibentuk dari nama-nama penemu ini. Pada awalnya AWK dipakai oleh sebagian kecil orang dan instruksi programnya pendek dan sederhana. Tapi lama kelamaan AWK mulai dikenal dan digunakan banyak orang dan instruksi programnya berkembang menjadi lebih besar. Pada tahun 1985, new AWK atau NAWK ditulis dan dikembangkan untuk menambah dan memfasilitasi penyedia program besar. Dalam NAWK terdapat beberapa featur tambahan serta menyertakan dynamic regular expresion. Selain itu juga ditambah dengan fungsi dan variabel, operator baru dan statements serta input dari lebih dari satu file. NAWK juga meningkatkan penanganan error message dengan membuat debugging lebih muda dibandingkan AWK. Dalam kebanyakan sistem sekarang, NAWK sudah diganti dengan AWK.

Disusun dan disunting dari beberapa sumber

Senin, 16 Maret 2009

Sejarah Perkembangan Bahasa Pemrograman

Generasi Bahasa Pemrograman

•Pada industri komputer dikenal pembagian generasi yang menandai sebuah evolusi dalam bahasa pemrograman. Ada lima generasi dalam bahasa pemrograman.

Second-Generation Language

•Second-Generation Language (2GL) adalah bahasa pemrograman assembler (orang juga mengenalnya sebagai bahasa assembly)
•Pada bahasa perograman generasi kedua ini assembler mengubah pernyataan bahasa pemrograman ke bahasa mesin.

First Generation Language

•First Generation Language bahasa mesin atau level instruksi dan data, yang diberikan kepada prosesor agar dapat bekerja. Pada komputer konvensional terdiri dari deretan angka0 dan 1.

Fourth-Generation Language

•Fourth-Generation Language adalah bahasa pemrograman yang didesain lebih “natural”, sehingga makin mudah digunakan
•Pada generasi keempat ini, bahasa pemrograman sudah dapat digunakan untuk mengakses sebuah data base.

Fifth-Generation Language

•Fifth-Generation Language (5GL) adalah bahasa pemrograman yang menggunakan interface pengembangan visual atau grafik untuk membuat bahasa sumbernya, yang biasanya di-compile dengan compiler 3GL atau 4GL
•Microsoft, Borland, IBM dan perusahaan lain memroduksi pemrograman visual 5GL, contohnya untuk pengembangan aplikasi Java
•Pemrograman visual memungkinkan Anda untuk membayangkan dengan mudah hirarki dari kelas pemrograman yang berorientasi obyek, dan men-drag ikon-ikon untuk menyusun komponen program.

Perkembangan Bahasa Pemrograman

•Perkembangan bahasa pemrograman dimulai pada tahun 1949 dengan hadirnya Short Code, bahasa pemrograman komputer pertama yang digunakan dalam peralatan komputer elektronik. Ini masih berupa bahasa pemrograman manual (hand-compiled).
•Pada tahun 1951, Grace Hopper yang bekerja pada Remington Rand mulai bekerja untuk mendesain sebuah compiler yang diberi nama A-0. Pada tahun 1957, bahasa pemrograman ini kemudian dirilis oleh Rand dengan nama Math-matic.
•Alick E. Glennie, di waktu senggangnya di Universitas Manchester, berhasil membuat programming system bernama AUTOCODE pada tahun 1952. Sekitar lima tahun setelahnya dirilislah mathematical FORmula TRANslating (FORTRAN), dan menjadi salah satu bahasa pemrograman yang mudah digunakan pada tahun itu. FORTRAN dibuat oleh tim yang diketuai oleh John Backus, yang kemudian juga memiliki konstribusi dalam pembuatan bahasa pemrograman ALGOL

•Setahun kemudian, muncul FORTRAN II yang mampu menjalankan perintah subroutines dan koneksi ke bahasa assembly. Dan, pada tahun yang sama juga dirilis bahasa pemrograman ALGOL. Pada tahun 1960 muncul ALGOL 60. Bahasa pemrogramana ini sangat popular di Eropa pada pertengahan 1960-an. Pada tahun 1962, APL (A Programming Language) dirilis oleh Kenneth Iverson. Pada tahun yang sama juga dirilis FORTRAN IV.

•Perkembangan bahasa pemrograman terus berlanjut dengan munculnya berturutturut APL/360 dan PL/1 pada tahun 1964, SNOBOL3 pada 1965, FORTRAN 66 dan LISP 2 pada 1966, SNOBOL 4 pada 1967, ALGOL 68, ALTRAN, dan COBOL.

•Pada tahun 1975, Bob Albrecht dan Dennis Allison merilis Tiny BASIC.
•Pada tahun yang sama, Bill Gates dan Paul Allen merilis BASIC yang mereka jual ke MITS (Micro Instrumentation and Telemetry Systems). Tahun-tahun selanjutnya, beberapa bahasa pemrograman baru bermunculan. Di antaranya AWK yang dirilis tahun 1978; Smalltalk-80, Modula-2, Franz LISP pada tahun 1980; dan ISO Pascal serta PostScript yang dirilis pada tahun 1982. Pada tahun 1983 dirilis bahasa pemrograman Ada.
•Nama tersebut diambil dari Lady Augusta Ada Byron, yang menyandang gelar programer komputer pertama karena hasil kerjanya pada Charles Babbage’s analytical engine di tahun 1842.

•Tahun 1986, selain Apple telah merilis Object Pascal dan Borland merilis Turbo Prolog.
•Pada tahun yang sama juga dirilis bahasa pemrogramanC++ dan Eiffel.
•Setahun sesudahnya dirilis Turbo Pascal version 4.0.
•Bahasa pemrograman C++ berkembang pesat dengan dirilisnya C++ 2.0 pada tahun 1989, dan C++ 2.1 pada tahun 1990. Ini berbarengan dengan dirilisnya FORTRAN 90.
•Setahun kemudian, Microsoft kembali merilis Visual Basic, yang kemudian memenangkan penghargaan BYTE’s Best of Showsaat COMDEX.

•Pada tahun 1992, Sun Microsystems membuat Java, sebuah bahasa pemrograman ‎berorientasi objek yang dibuat berbasiskan bahasa C, dengan perbedaan yang signifikan dari ‎bahasa pemrograman C++. Bahasa Java telah membersihkan beberapa sintaksis yang dianggap kurang bagus yang terdapat di dalam bahasa C++ dan membuang beberapa hal yang “berbahaya” dari bahasa C, ‎tetapi tetap mempertahankan “kerumitan” yang ditawarkan oleh bahasa C.
•Bahasa pemrograman terus berkembang hingga tahun ini, dengan diilisnya Java 2 (versi 1.4), Python 2.2, J#, dan F#.


Referensi

•Ebook, Rizal-Pemrograman.pdf
•Blog.RosihanAri.Net
blackpirates.co.cc