Minggu, 28 Juni 2009

tugas 5 & 6

1). Membuat kalender jawa

a). Buatlah sebuah file data nama yang ingin anda ketahui tanggal lahirnya, simpan dengan file nama.txt, seperti berikut:

mobed 17 2 1988
fauzy 12 8 1988
yanuar 27 6 1988
angga 15 4 1987
adit 2 11 1988
dicky 18 2 1988
putra 17 11 1988
bayu 13 12 1988
fina 14 7 1988
widi 25 3 1988
boby 3 4 1990
tyo 16 5 1988
andrey 30 4 1988
sintiya 27 7 1990
diana 19 3 1990

b). Kemuadian buatlah file rumusnya kemudian simpan dengan nama tanggal.txt

{
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%5==1){f="Pahing"}
if(jum%5==2){f="Pon"}
if(jum%5==3){f="Wage"}
if(jum%5==4){f="Kliwon"}
if(jum%5==0){f="Legi"}

if(jum%7==1){printf("%s %d %d %d Lahir Minggu %s\n",$1,$2,$3,$4,f)}
if(jum%7==2){printf("%s %d %d %d Lahir Senin %s\n",$1,$2,$3,$4,f)}
if(jum%7==3){printf("%s %d %d %d Lahir Selasa %s\n",$1,$2,$3,$4,f)}
if(jum%7==4){printf("%s %d %d %d Lahir Rabu %s\n",$1,$2,$3,$4,f)}
if(jum%7==5){printf("%s %d %d %d Lahir Kamis %s\n",$1,$2,$3,$4,f)}
if(jum%7==6){printf("%s %d %d %d Lahir Jumat %s\n",$1,$2,$3,$4,f)}
if(jum%7==0){printf("%s %d %d %d Lahir Sabtu %s\n",$1,$2,$3,$4,f)}
}

c). Setelah selesai, buka terminal anda dan ketikkan program awk anda, seperti berikut:

$ awk -f tanggal.txt nama.txt

d). Kemudian output tersebut akan menampilkan kalendernya sebagai berikut :

$ awk -f tanggal.txt nama.txt

mobed 17 2 1988 lahir rabu Kliwon
fauzy 12 8 1988 Lahir Jumat pahing
yanuar 27 6 1988 Lahir Senen Legi
angga 15 4 1987 Lahir Rabu pahing
adit 2 11 1988 Lahir Rabu wage
dicky 18 2 1988 Lahir kamis legi
putra 17 11 1988 Lahir Kamis wage
bayu 13 12 1988 Lahir selasa Kliwon
fina 14 7 1988 Lahir Kamis Pon
widi 25 3 1988 Lahir Jumat Pahing
boby 3 4 1990 Lahir Selasa Legi
tyo 16 5 1988 Lahir senin wage
andrey 30 4 1988 Lahir sabtu Pon
sintiya 27 7 1990 Lahir jumat legi
diana 19 3 1990 senin legi

e). selesai

Kamis, 18 Juni 2009

BUJURSANGKAR AJAIB

Pada tugas kali ini kita mendapatkan soal sebagai berikut :

BUATLAH SEBUAH BUJURSANGKAR AJAIB dengan ORDO 7x7

maka langkah yang dilakukan adalah
Pertama kita buat file dengan nama ajaib.txt yang berisi instruksi sebagai berikut :
{ ordo[55,55];
n=$1;
X=1;
Y=1;
Z=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;
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]);
}
}

setelah itu kita harus memanggil file tersebut ke dalam terminal dengan cara

echo 7 | awk -f ajaib.txt

maka akan muncul tampilan sebagai berikut di terminal :

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

Rabu, 03 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

MENCARI BILANGAN PRIMA

Mencari bilangan prima antara 2 sampai 100, programnya ialah 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;} } }'

MENCARI NILAI IPS

Untuk mencari Indeks Prestasi Sementara, kita dapat mencarinya dengan program:

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

data misalya :
No. Nama Mata Kuliah Jumlah SKS Nilai Tugas Nilai UTS Nilai UAS
1. Desi AWK 3 61 81 73
2. Desi Rangkaian 6 82 82 86
3. Desi OS 3 56 98 63
4. Desi B.Inggris 2 87 81 80
5. Desi Matematika 3 3 79 82 81

Rabu, 18 Maret 2009

Sekilas tentang AWK

AWK adalah bahasa pemrograman berguna manipulasi data hanya dengan program yang singkat pendek karena bahasa pemrogramanan ini  tidak memerlukan suatu deklarasi untuk variabel. AWK akan menangani input, pemisahan field, initialisasi, dan manajemen memori secara otomatis.

Dengan berkembangnya pemikran manusia, bahasa AWK diperbaharui dan dan diberikan beberapa fitur tambahan sehingga munculllah  GAWK(GnomeAWK) dan NAWK(NewAWK).

Beberapa fitur tambahan pada NAWK adalah sebagai berikut :

a)Ekspresi reguler dinamik
b) Fungsi additional built-in dan variabel
c) Operator baru and statement
d) Input lebih dari 1 files
e) Akses ke argumen baris perintah
f) 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 :

• Menampilkan  ( NF ) jumlah field (NF)
• Melakukan operasi perhitungan pada nilai field dan menampilkannya sebagai output.
• Menampilkan line numbers yang kita inginkan ( NR )
• Menambahkan text pada output.
• Menampilkan output seluruh line apabila tidak terdapat pattern.
• Menampilkan multiple items dengan 1 print statement.



Selasa, 17 Maret 2009

Perkembangan Bahasa Pemrograman


Perkembangan bahasa pemrograman dimulai pada tahun 1994 dengan hadirnya short code, bahasa pemrograman komputer pertama yang digunakan dalam peralatan komputer elektronika. Ini masih berupa bahasa pemrgraman 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.
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