Kamis, 25 Juni 2009

kalender jawa

Buat top.txt :

Angga 11 3 1990
Dimas 19 8 1989
Inyonk 3 11 1989
Chyntia 27 9 1989
Iam 19 7 1989
Putra 9 2 1989
Mobed 12 5 1988
Dauz 10 4 1990
Anez 11 2 1990
Adit 10 1 1987
Tyo 17 9 1989
Denny 11 8 1990
Sisi 16 6 1990
Boni 28 10 1990
Tino 18 6 1989

Buat best.txt :

{
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");

}
}
}

Di terminal, ketik :

$ awk -f best.txt top.txt

maka akan muncul :

Angga Hari = MINGGU
Pasaran = PON
Dimas Hari = SABTU
Pasaran = WAGE
Inyonk Hari = JUM'AT
Pasaran = KLIWON
Chyntia Hari = RABU
Pasaran = PON
Iam Hari = RABU
Pasaran = PON
Putra Hari = KAMIS
Pasaran = PON
Mobed Hari = KAMIS
Pasaran = KLIWON
Dauz Hari = SELASA
Pasaran = PON
Anez Hari = MINGGU
Pasaran = KLIWON
Adit Hari = SABTU
Pasaran = PAHING
Tyo Hari = MINGGU
Pasaran = PON
Denny Hari = SABTU
Pasaran = LEGI
Sisi Hari = SABTU
Pasaran = KLIWON
Boni Hari = MINGGU
Pasaran = WAGE
Tino Hari = MINGGU
Pasaran = PAHING

Rabu, 24 Juni 2009

TUGAS 5

Pada tugas ke 5, adalah menampilkan hari lahir dengan menggunakan program AWK
Program ini untuk menentukan nama hari pada tanggal dengan sistem kalender Georgian. Masukan berupa beberapa tanggal lahir, misalkan yang disimpan dengan file nama.txt. Contoh input data nama orang :
aan 25 10 1988
varid 10 2 2009
aris 12 5 1990
jayen 16 12 1987
sunio 4 7 1989
ocol 8 9 1984
akil 20 11 1988
rizza 28 8 1987
luse 19 7 1989
ukih 17 2 1978
mika 17 3 1984
virsa 14 1 1987
cabyby 5 5 1990
ical 13 6 1988
vina 4 10 1984

Kemudian untuk syntax-nya sebagai proses, dengan membuat file dengan nama kalender.txt. Syntax :

{
#-hari-
hari[1] = "minggu"; hari[2] = "senin"; hari[3] = "selasa"; hari[4] = "rabu"; hari[5] = "kamis"; hari[6] = "jumat"; hari[0] = "sabtu";
#--jumlah--
jmlhri[0]=0; jmlhri[1]=31; jmlhri[2]=28; jmlhri[3]=31; jmlhri[4]=30; jmlhri[5]=31; jmlhri[6]=30; jmlhri[7]=31; jmlhri[8]=31; jmlhri[9]=30; jmlhri[10]=31; jmlhri[11]=30; jmlhri[12]=31;

jum = 0
tahun= $4-1
x = tahun % 4
z = tahun /4
if ( x==1 ){
a=z-0.25}
if ( x==2 ){
a=z-0.5}
if ( x==3 ){
a=z-0.75}
thnkab = a*366
thnb = (thn - a)*365
jumhari = thnkab + thnb

if ($4 % 4== 0){

for (i=1; i< $3; i++){
jum += jmlhri[i] }
if ( $3 > 2){
tot = jumhari + jum + $2 +1}
else {
tot = jumhari + jum + $2 -1 }
}

else{
for (i = 1; i< $3; i++){
jum += jmlhri[i] }
tot = jumhari + jum + $2 -1
}

tothar = tot % 7


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

Kamis, 18 Juni 2009

Bujur Sangkar Ajaib

Pertama, kita membuat file dengan nama ajaib.txt

{ ordo[55,55]; #ordo bujur sangkar
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]);
}
}


Lalu masukkan rumus berikut pada terminal:

angga@angga-desktop:~$ echo 7 | awk -f ajaib.txt

"Echo 7 digunakan untuk membuat sebuat matiks dengan ordo 7x7".
Contoh lain misalnya bujur sangkar ajaib ordo 2x2, maka rumus menjadi:

angga@angga-desktop:~$ echo 2 | awk -f ajaib.txt

Hasil dari echo 7 tadi ialah :

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

Senin, 01 Juni 2009

Menghitung Diskon

BarangJumlahHarga satuan
CPU75500000
Printer51500000
Scaner82700000
Monitor103500000
Hardisk61200000
Mouse12100000
Webcam151000000

didapatkan dengan rumus sebagai berikut :

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

Rabu, 13 Mei 2009

Bilangan Prima dengan AWK

Pada Progam bawah ini adalah program untuk "Menampilkan Bilangan Prima dengan bahasa pemrogaman AWK", dan program yang kita gunakan dengan menggunakan fungsi assosiative array, seperti pada contoh program dibawah ini :

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

program di atas akan menampilkan bilangan prima antara 2 sampai dengan 100

Program Menghitung Nilai IPS

Pada program di bawah ini adalah contoh program AWK yang digunakan untuk menghitung nilai IP Sementara ( IPS ).
Contoh program menggunakan AWK :

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 " Total Nilai = ", NT}
BEGIN { IPS =0 }
{ IPK=NT/jumlah}
END {print " IPS = ", IPS}' nilai

Nilai yang dimaksud pada program di atas adalah file yang berisi data awal sebelum data tersebut diproses oleh program.

No-Nama-Mata Kuliah-Jumlah SKS-Nilai Tugas-Nilai UTS-Nilai UAS

1. Andik AWK 3 70 80 65

2. Anita Inggris 3 65 70 75

3. Rudi ARKOM 6 75 65 80

4. Sulistiowati OS 3 65 80 85

5. Anggi Matematika 2 70 70 80

6. Bunga Embedded 3 65 75 75

Tabel di atas, disimpan pada file dengan nama nilai. Nama file ini sesuai dengan user, sehingga dalam program tinggal memanggil file tersebut.

Rabu, 18 Maret 2009

APA SICH AWK ITU ???

POKOK BAHASAN
1. Apa AWK itu ?
2. Bagaimana sejarah AWK ?
3. Bagaimana cara menjalankan AWK ?
4. Struktur AWK
5. Instruksi-instruksi , variables , operator, Control Flow Statements dalam AWK

  1. Apa AWK itu ?
AWK adalah Suatu bahasa pemrograman untuk menangani tugas data manipulasi bersama dengan hanya menggunakan beberapa baris program, bahasa pola aksi (pattern action) dan sedikit mirip dengan bahasa C tetapi secara otomatis menangani masukan, pemisahan field, inisialisasi dan managemen memori.
AWK adalah bahasa pemrograman yang digunakan untuk memanipulasi teks.

2. Bagaimana sejarah AWK ?

AWK dikembangkan pada tahun 1977 di laboratorium AT&T sebagai bagian dari percobaan terhadap grep dan sed. Dengan kemampuan untuk menerima suatu pattern matching, kita dapat memanfaatkan AWK untuk mengembangkan sebuah aplikasi script yang dapat memanipulasi data dengan mudah. Awk dikembangkan oleh Aho, Peter Weinberger, and Brian Kernigan yang mana nama Awk itu sendiri berasal dari inisial nama mereka. Meskipun operasinya bisa sangat kompleks, namun sintaks untuk awk selalu :
awk ‘{pattern + action}''{filenames}‘
.
Pada tahun 1985 Awk mulai dikembangkan dengan merilis nawk(new awk) yang merupakan peningkatan dari awk itu sendiri . hal itu dilakukan untuk menambah peningkatan untuk facilitas pembuatan program yang lebih besar Adapun kelebihan dari nawk itu sendri dibanding awk yaitu:
• Ekspresi regular dinamis dalam menganti text dan pola pemakaian fungsi-fungsi
• Membangun variabel dan fungsi tambahan
• Operator baru dan statement
• Input bisa lebih dari satu file
• Mengakses argument/perintah setiap perbaris
• Lebih mudah menangani error karena ditunjuk langsung kesalahannya oleh compiler


3. Bagaimana cara menjalankan AWK ?

Pada Bahasa Pemograman awk ada beberapa cara menjalankan awk. Adapun cara-cara menjalankan awk yaitu:
• awk ‘program’ input_file(s) dalam cara ini program dan input file disajikan sebagai command line argument
• awk ‘program’ dalam cara ini program adalah command line argument yang mana input berasal dari standar input yang mana awk merupakan filter. Dalam hal ini kita dapat menggunakan “pipes” dan filter untuk output selanjutnya.
• awk -f program_file_name input_files dalam cara ini program dibaca dari sebuah file.

4. Struktur AWK


Pada tahap BEGIN: Proses Awal sebelum membaca data masukkan
Pada tahap pattern: Proses untuk input data dan pola atas action yang diberikan
Pada tahap END: Proses akhir dari program











5. Instruksi-instruksi , variables , operator, Control Flow Statements dalam AWK


Instruksi Seleksi:
-Selection by Comparison
contoh:$2 >=5 { print }
-Selection by Computation
contoh:$2 * $3 > 50 { printf(“%6.2f for %s\n”, $2 * $3, $1) }
-Selection by Text Content
contoh:$1 == “Susie”/Susie/
-Combinations of Patterns
contoh:$2 >= 4 || $3 >= 20

•Variabels
-$0, $1, $2, … ,$NF
-NR - Number of records read
-FNR - Number of records read from current file
-NF - Number of fields in current record
-FILENAME - name of current input file
-FS - Field separator, space or TAB by default
-OFS - Output field separator, space by default
-ARGC/ARGV - Argument Count, Argument Value array

•Operator
Dalam awk terdapat beberapa operator yang hampir memilki kemiripan dengan bahasa pemograman lainnya. Adapun operator dalam awk:
=, ==, !=, &&, ||, !|, <,>, <=, >=, +, -, / ,*, %, ^

•Control Flow Statements dalam awk
Beberapa jenis Control Flow Statements dalam awk yaitu:
1. If-Else
if (expression is true or non-zero){
statement1
}
else {
statement2
}
2. Loop Control
while (expression is true or non-zero) {
statement1
}
3. For
for(expression1; expression2; expression3) {
statement1
}
4. Do While
do {
statement1
}
while (expression)

GENERASI BAHASA PEMROGRAMAN

1. Pokok Bahasan
1.0. Apa itu bahasa pemrograman ?
1.1.
Bagaimana sejarah dari perkembangan bahasa pemrograman ?
1.2. Bagaimana generasi bahasa pemrograman ?
1.3. Apa saja jenis-jenis bahasa pemrograman ?
1.4. Bagaimana skema dari perkembangan bahasa pemrograman?

1.0. Apa itu bahasa pemrograman ?
Bahasa pemograman adalah suatu program khusus yang dibuat oleh suatu perusahaan atau software (perangkat lunak) yang digunakan untuk mengembangkan suatu aplikasi.

1.1. Bagaimana sejarah dari perkembangan bahasa pemrograman ?
  • Perkembangan bahasa pemograman dimulai tahun 1949 dengan hadirnya Short Code, bahasa pemograman dimulai komputer pertama yang digunakan dalam peralatan komputer elektronik. ini masih berupa bahasa pemograman 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 pemograman ini kemudian dirilis oleh Rand dengan nama Math-matic.
  • Kemudian Alick E.Glennie, diwaktu sengganya di Universitas Manchester, berhasil membuat programing system bernama AUTOCODE pada tahun 1952. sekitar lima tahun setelahnya dirilislah mathematical FORmula TRANslating(FORTRAN),dan menjadi salah satu bahasa pemograman yang mudah digunakan pada tahun itu. FORTRAN dibuat oleh tim yang diketuai oleh John Backus,yang kemudian juga memiliki kontribusi dalam pembuatan bahasa pemograman ALGOL.
  • Setahun kemudian, muncul FORTRAN II yang mampu menjalankan perintah dan koneksi ke bahasa assembly. dan pada tahun yang sama juga dirilis bahasa pemograman ALGOL. pada tahun 1960 muncul ALGOL 60. bahasa pemogramn ini sangat populer dieropa pada pertengahan 1960-an. pada tahun 1962, APL (A Programing language) dirilis oleh Kenneth Iverson.pada tahun yang sama dirilis juga FORTRAN IV.
  • Perkembangan bahasa pemograman terus berlanjut dengan munculnya berturut-turut APL/360 dan PL/1 pada tahun 1964,SNOBOL3 pada tahun1965,FORTRAN 66 dan LISP 2 pada tahun 1966,SNOBOL 4 pada tahun 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 Instrumetation Telemetry System). tahun-tahun selanjutnya, beberapa bahasa pemograman baru bermunculan. diantaranya AWK yang dirilis pada tahun 1977 yang berjalan pada sistem operasi Linux.
1.2. Bagaimana generasi bahasa pemrograman ?
  1. 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 angka0 dan 1.
  2. 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 kebahasa mesin.
  3. 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 menggunakanbahasapemrogramanini,dibutuhkan pengetahuan dan penguasaan terhadap bahasa pemrograman itu sendiri. Dalam bahasa pemrograman, sebuah compiler akan mengubah pernyataan yang dibuat oleh bahasa pemrograman kebahasamesin. Misal pada bahasa pemrograman Java, diperoleh output yang disebut bytecode. Output ini kemudian akan diubah kebahasa mesin oleh Java Virtual Machine.
  4. Fourth Generation Language (4GL) adalah bahasa pemrograman yang didesainl ebih “natural”, sehingga makin mudah digunakan. Pada generasi keempat ini, bahasa pemrograman sudah dapat digunakan untuk mengakses sebuah data base.
  5. Fifth Generation Language (5GL) adalah bahasa pemrograman yang menggunakan interface pengembangan visual atau grafik untuk membuatbahasasumbernya, 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.
1.3. Apa saja jenis-jenis bahasa pemrograman ?
  • Bahasa tingkat rendah (low level language) yaitu bahasa pemograman yang berorientasi pada mesin . contoh : Assembler.
  • Bahasa tingkat menengah (Middle level language) yaitu bahasa pemograman yang berorientasi pada aturan-aturan gramatikal. contoh : C.
  • Bahasa tingkat tinggi (High level language) yaitu bahasa pemograman yang berorientasi pada bahasa manusia. contoh : BASIC,PASCAL.
  • Bahasa yang berorientasi objek (object oriented language). contoh Delpho ,VB, SQL.
1.4. Bagaimana skema dari perkembangan bahasa pemrograman?