pertama kita buat file input.txt yang berisi nama dan tanggal lahir:
Finna 1 10 1989
Widi 12 11 1990
Bagus 2 12 1989
Hendra 22 1 1989
Heri 16 2 1989
Anjar 7 4 1987
Dimas 14 5 1988
Sandra 19 6 1989
Nana 21 7 1989
Diana 24 8 1988
Mike 24 9 1989
Budi 7 3 1988
Crash 24 1 1989
Reza 12 2 1988
Randi 29 3 1989
kemudian kita membuat rumus dengan file rumus.txt, adapun rumusnya 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");
} } }
Jika semua sudah selesai kita lakukan barulah kita jalankan ke 2 file tersebut dengan perintah
$ awk -f rumus.txt input.txt
Rabu, 24 Juni 2009
Menampilkan hari dan pasaran dengan inputan tanggal lahir
Diposting oleh Diana Juni di 19.26 0 komentar
Rabu, 17 Juni 2009
TUGAS 4 : Bujur Sangkar Ajaib
echo 7 | awk -f
disini echo 7 berfungsi sebagai penanda bahwa ordo dari bujursangkar ajaib tersebut adalah 7x7. Apabila kita menginginkan ordo selain itu maka kita hanya tinggal mengganti angkanya saja. Misalnya kita menginginkan ordonya adalah 4x4 maka cara memanggilnya adalah seperti di bawah ini :
echo 4 | awk -f
Misalnya saja kita beri nama file tersebut bujur_ajaib.txt maka perintah di atas akan menjadi seperti ini :
echo 7 | awk -f bujur_ajaib.txt
yang mana file tersebut akan berisi instruksi sebagai berikut :
{ ordo[55,55]; #array yang menunjukkan ordo dari bujur sangkar
n=$1; #merupakan input dari matriks
X=1; #adalah nilai awal yang diberikan
Y=1; #merupakan interval
Z=1; #merupakan interval yang digunakan untuk pindah
for(a=0; a<=n+2; a++) #digunakan untuk 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 setelah membuat file tersebut kita akan menjalankannya dengan perintah seperti di atas tadi yang kemudian akan menghasilkan tampilan seperti di bawah ini di dalam terminal :
175
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
Diposting oleh Diana Juni di 23.47 0 komentar
Senin, 01 Juni 2009
Menghitung Harga beserta Diskonnya
dari soal sebagai berikut :
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 |
maka didapatkan harga barang beserta diskon dengan 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 "%-10s %-10s %-10s %-10s %-10s %s\n", $1,$2,$3,$4=$2*$3,$5=0.1*$4,$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 }}' barang
Diposting oleh Diana Juni di 20.52 0 komentar
Rabu, 13 Mei 2009
Menampilkan Bilangan Prima dari 0 - 100
untuk menampilkan bilangan prima dari 0 - 100 dengan menggunakan AWK maka list program yang digunakan adalah sebagai berikut :
$ ls -l awk 'BEGIN {bil_prima[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){print bil_prima[i],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)
akan ditampilkan pada hasil.
Diposting oleh Diana Juni di 11.43 0 komentar
Menampilkan Nilai IPS dari mahasiswa
Awalnya kita buat dulu sebuah file dengan nama nilai_saya yang berisi :
No Nama MatKul SKS Tugas UTS UAS
1. Diana AWK 6 88 90 95
2. Diana RTOS 3 90 90 90
3. Diana MAT 2 98 98 98
4. Diana Embedded 3 90 90 90
dan ini program yang dijalankan pada terminal untuk menampilkan IPS mahasiswa tersebut :
awk' { Rata=0; Rata=($5+$6+$7)/3}
{{if(81<=Rata && Rata<=100){print $1,$2, $3,$4,$5,$6,$7,Rata, "A", $8= 4*$2}}
{{if(71<=Rata && Rata<=80){print $1,$2, $3,$4,$5,$6,$7,Rata, "B", $8= 3*$2}}
{{if(61<=Rata && Rata<=70){print $1,$2, $3,$4,$5,$6,$7,Rata, "C", $8= 2*$2}}
{{if(51<=Rata && Rata<=60){print $1,$2, $3,$4,$5,$6,$7,Rata, "D", $8= 1*$2}}
{{if(0<=Rata && Rata<=50){print $1,$2, $3,$4,$5,$6,$7,Rata, "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_saya
Diposting oleh Diana Juni di 08.26 0 komentar
Rabu, 18 Maret 2009
sejarah perkembangan bahasa pemrograman
Definisi :
Bahasa pemrograman adalah suatu program khusus yang dibuat oleh suatu perusahaan atau software (perangkat lunak) yang digunakan untuk mengembangkan suatu aplikasi.
Generasi Bahasa Pemrograman :
- First-Generation Language (1GL) adalah bahasa mesin atau level instruksi dan data, yang diberikan kepada prosesor agar dapat bekerja. Pada komputer konvensional terdiri dari deretan angka 0 dan 1.
- Second-Generation Language (2GL) adalah bahasa pemrograman assembler (orang juga mengenalnya sebagai bahasa assembly). Pada bahasa pemrograman generasi kedua ini assembler mengubah pernyataan bahasa pemrograman ke bahasa mesin.
- Third-Generation Language (3GL) merupakan bahasa pemrograman yang masuk dalam generasi ketiga. Ini adalah bahasa pemrograman tingkat tinggi, seperti PL/1, C, atau Java. Untuk dapat menggunakan bahasa pemrograman ini, dibutuhkan pengetahuan dan penguasaan terhadap bahasa pemrograman itu sendiri. Dalam bahasa pemrograman, sebuah compiler akan mengubah pernyataan yang dibuat oleh bahasa pemrograman ke bahasa mesin. Misal pada bahasa pemrograman Java, diperoleh output yang disebut bytecode. Output ini kemudian akan diubah ke bahasa mesin oleh Java Virtual Machine.
- Fourth-Generation Language (4GL) 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 (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.
- Bahasa mesin merupakan bahasa yang terdiri dari kode-kode mesin dan hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa ini merupakan level terendah dari bahasa pemrograman komputer dan hanya berupa 0 dan 1. Sekumpulan instruksi dalam bahasa ini dapat membentuk microcode.
Kelebihan : bahasa ini memiliki kecepatan eksekusi yang paling tinggi diantara bahasa pemrograman level yang lain.
Kerugian : agak sulit mempelajari bahasa tingkat ini, karena sangat tidak user friendly - Bahasa assembly merupakan pengembangan lebih lanjut dari bahasa mesin. Pada bahasa assembly ini sudah tidak mengenal hanya 0 dan 1 lagi, namun ada beberapa symbol yang digunakan antara lain :MOV, ADD ( untuk penjumlahan ),SUB ( untuk pengurangan ),MUL ( untuk perkalian),dan lain-lain.
Pada bahasa assembly mempunyai program untuk debugging yaitu untuk mencari kesalahan pada sebuah program yang dibuat. Pada bahasa mesin tidak mempunya debugger. Contohnya adalah Turbo Assembler yang akan mencocokkan token dari awal sampai akhir dan dikodekan menjadi bahasa mesin.
Kelebihan : Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil
Kekurangan : Tetap sulit dipelajari, program sangat panjang - Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih tinggi daripada bahasa assembly. Bahasa ini lebih dekat dengan bahasa manusia. Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh: Pascal, Basic, C++, dan Java
Keuntungan :Mudah dipelajari,Mendekati permasalahan yang akan dipecahkan,Kode program pendek
Kerugian : Eksekusi lambat - Bahasa untuk masalah tertentu (SPO) adalah Bahasa yang berkenaan dengan penyelesaian masalah tertentu. Misalnya SQL untuk masalah database, Regex untuk hal-hal yang berhubungan dengan pencocokan pola string tertentu, biasanya pada checking error pada penulisan email dan lainnya. Bahasa ini disebut sebagai bahasa generasi ke-4
Kemudian, Alick E. Glenie, di waktu di waktu senggangnya di Unversitas Manchester, berhasil membuat programming system bernama AUTOCODE pada tahun 1952.
Sekitar lima tahun setelahnya dirilislah mathematical FORmula TRANslating (FORTRAN), dan digunakan pada tahun itu. FORTRAN dibuat dibuat oleh tim yang diketuai oleh John Backus, yang kemudian juga memeliki kontribusi 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 pemrograman ini sangat populer di Eropa pada pertengahan 1990-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 berurut-urut APL/360 dan PL/1 pada tahun 1964, SNOBOL 3 pada tahun 1965, FORTRAN 66 dan LISP 2 pada tahun 1966, SNOBOL 4 pada tahun 1967, ALGOL 68, ALTRAN, dan COBOL.
Pada tahun 1975, Bob Albrecth 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. Diantaranya AWK yang dirilis pada 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 analystical engine di tahun 1842.
Tahun 1986, selain Apple telah merilis Object Pascal dan Borland merilis Turbo Prolog, pada tahun yang sama juga dirilis bahasa pemrograman C++ dan Eiffel. Setahun sesudahnya dirilis Turbo Pascal versi 4.0.
Bahas 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 Show saat COMDEX.
Bahasa pemrograman terus berkembang hingga saat ini, dengan adanya Java 2, Python, dan lain sebagainya.
• Dynamic regular expression
• Additional built-in functions and variable.
• New operator and statement
• Input more than 1 files
• Access to command line arguments
• Improve error message
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.
Structure dari program AWK adalah :
• BEGIN segment ( optional )
• Pattern-action pairs ( inputing data )
• END segment ( optional )
Pattern-action structure :
• Pattern terdaftar secara singkat, sedangkan actions diawali dan diakhiri oleh {}.
Penyimpan Output dari AWK :
• Lining Up Fields ( printf=untuk menghasilkan output terformat )
Simple output dari 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.
Diposting oleh Diana Juni di 01.24 0 komentar