Jumat, 26 Juni 2009

Tugas 6 : Kalender Java

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:

mobidea@mobidea-laptop ~:$ awk -f tanggal.txt nama.txt

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

mobidea@mobidea-laptop ~:$ 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, 25 Juni 2009

Tugas 5

1. Mengetahui Hari Kelahiran dengan Kalender menggunakan program awk .
Program ini untuk menentukan nama hari pada tanggal dengan sistem kalender Georgian. Masukan berupa beberapa tanggal lahir teman-teman yang disimpan pada file input.txt. Kemudian output akan menampilkan nama, tanggal dan harinya.

a). Langkah pertama:
Buatlah file dengan nama input.txt seperti berikut :

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

b). Kemudian buat rumus dengan nama kalender.txt seperti berikut :
{
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 Minggu"}
if(jum%7==2){print $0," ","Lahir Senen"}
if(jum%7==3){print $0," ","Lahir Selasa"}
if(jum%7==4){print $0," ","Lahir Rabu"}
if(jum%7==5){print $0," ","Lahir Kamis"}
if(jum%7==6){print $0," ","Lahir Jumat"}
if(jum%7==0){print $0," ","Lahir Sabtu"}
}
c). Setelah selesai compile program tersebut pada terminal dengan cara:

mobidea@mobidea-desktop:~$ awk -f kalender.txt input.txt

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

mobidea@mobidea-desktop:~$ awk -f kalender.txt input.txt
mobed 17 2 1988 Lahir Rabu
angga 15 4 1987 Lahir Rabu
adit 2 11 1988 Lahir Rabu
putra 17 11 1988 Lahir Kamis
bayu 13 12 1988 Lahir Selasa
widi 25 3 1988 Lahir Jumat
tyo 16 5 1988 Lahir Senen
andrey 30 4 1988 Lahir Sabtu
sintiya 27 7 1990 Lahir Jumat
diana 19 3 1990 Lahir Senen

Kamis, 18 Juni 2009

Tugas 4

1). Buatlah sebuah bujur sangkar ajaib dengan ordo misalnya 3x3!

Untuk mengerjakan soal tersebut, maka buatlah sebuah file dengan rumus seperti berikut dan simpan dengan nama bujur.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]);
}
}

Setelah selesai, lakukan rumus awk pada terminal seperti berikut:

mobidea@mobidea-desktop:~$ echo 7 | awk -f bujur2.txt

Penjelasan : echo 7 adalah digunakan untuk membuat sebuat matiks dengan ordo 7x7, misalkan anda ingin mengubah menjadi ordo 3x3 maka anda tinggal mengubah rumus menjadi:

mobidea@mobidea-desktop:~$ echo 3 | awk -f bujur2.txt

Setelah selesai maka akan keluar hasilnya seperti berikut:

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

Selesai..... Mudahkan!!!!

Kamis, 04 Juni 2009

Tugas 3

1). Soal => Dibeli suatu barang 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

kemudian kita ingin menampilkan seperti berikut:
Barang Jumlah Harga_Satuan Total Diskon Bayar
-------------------------------------------------------------------
CPU 7 5500000 38500000 3850000 34650000

Ketentuannya adalah:
Total = jumlah barang x harga barang
Diskon = jika: Jumlah barang >=5 dan Jumlah barang <10 maka diskon 10%
jika: Jumlah barang >=10 maka diskon 20%
Bayar = Total-Diskon.

Maka rumus untuk mendapatkan hasil tersebut adalah sebagai berikut:

mobidea@mobidea-desktop:~$ awk 'BEGIN { print "Barang Jumlah Harga_Satuan Total Diskon Bayar"
print"-------------------------------------------------------------------"}
{if(NR>1){if($2>=5 &&$2<10){a=10/100}if($2>=10){a=20/100};printf"%-10s%-5d%-10d%-7d%9d%9d\n",$1,$2,$3,$3*$2,($3*$2)*a,($3*$2)-(($3*$2)*a)}}' harga.txt
Barang Jumlah Harga_Satuan Total Diskon Bayar
-------------------------------------------------------------------
CPU 7 5500000 38500000 3850000 34650000
Printer 5 1500000 7500000 750000 6750000
Scaner 8 2700000 21600000 2160000 19440000
Monitor 10 3500000 35000000 7000000 28000000
Hardisk 6 1200000 7200000 720000 6480000
Mouse 12 100000 1200000 240000 960000
Webcam 15 1000000 15000000 3000000 12000000
mobidea@mobidea-desktop:~$

Kamis, 14 Mei 2009

Tugas : Membuat program prosentasi kehadiran Mahasiswa

1). Bagaimana cara membuat daftar hadir siswa? caranya sebagai berikut:
a). Buatlah sebuah file Abesnsi.txt, seperti berikut:

mobed@mobed-laptop:~$ cat Absensi.txt
No. Nama Ming1 Ming2 Ming3 Ming4 Ming5 Ming6 Ming7 Ming8
1 Andi 1 1 1 1 1 1 1 1
2 Rahmat 1 0 1 1 0 0 1 0
3 Adit 0 0 1 1 0 1 1 0
4 Dicky 1 1 1 0 0 0 0 0
5 Yanuar 1 0 0 0 0 1 1 1
6 Fina 1 1 0 1 0 0 1 0
7 Diana 0 0 1 1 1 1 1 1

b). Buatlah program awk seperti berikut:

mobed@mobed-laptop:~$ awk '{if(NR<2) print $0,"Prosentasi";a=(($3+$4+$5+$6+$7+$8+$9+$10)/8)*100;if(NR>1) print $0," ",a,"%" }' Absensi.txt
No. Nama Ming1 Ming2 Ming3 Ming4 Ming5 Ming6 Ming7 Ming8 Prosentasi
1 Andi 1 1 1 1 1 1 1 1 100 %
2 Rahmat 1 0 1 1 0 0 1 0 50 %
3 Adit 0 0 1 1 0 1 1 0 50 %
4 Dicky 1 1 1 0 0 0 0 0 37.5 %
5 Yanuar 1 0 0 0 0 1 1 1 50 %
6 Fina 1 1 0 1 0 0 1 0 50 %
7 Diana 0 0 1 1 1 1 1 1 75 %

c). Selesai, mudahkan!!!!!

Tugas: # Mencari bilangan prima dari 0-100

1). Ketikkan program berikut:
mobed@mobed-laptop:~$ awk 'BEGIN{prima[100];}{for(a=2;a<=100;a++)if(a%2!=0 && a%3!=0 && a%5!=0 && a%7!=0 && a%9!=0 || a==2 || a==3 || a==7 ) {print prima[a],a}}'

2
3
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

2). Selesai, Selamat mencoba!!!

Tugas : -> Cara Mengurutkan Data Pada AWK

1: Bagaimana cara mengurutkan data? Untuk percobaan berikut, kita akan mencoba mengurutkan data berdasarkan jumlah kapasitas file dari yang terkecil ke yang terbesar.
Caranya adalah:
a). Misalkan kita punya data sebagai berikut:

mobed@mobed-laptop:~$ cat home.txt
total 68
-rw-r--r-- 1 mobed mobed 0 2009-04-23 10:10 aku.txt~
-rw-r--r-- 1 mobed mobed 93 2009-03-18 10:25 b~
drwxr-xr-x 2 mobed mobed 4096 2009-03-16 07:38 baackup
-rw-r--r-- 1 mobed mobed 113 2009-05-07 12:29 b.awk~
-rw-r--r-- 1 mobed mobed 0 2009-05-07 12:11 b.txt~
-rw-r--r-- 1 mobed mobed 105 2009-04-23 10:23 daftar.txt~
-rw-r--r-- 1 mobed mobed 0 2009-05-07 12:22 data.txt~
drwxr-xr-x 3 mobed mobed 4096 2009-04-07 13:01 Desktop
drwxr-xr-x 10 mobed mobed 4096 2009-03-05 22:54 Documents
lrwxrwxrwx 1 mobed mobed 26 2009-03-05 22:52 Examples -> /usr/share/example-content
-rw-r--r-- 1 mobed mobed 0 2009-05-14 00:58 home.txt
-rw-r--r-- 1 mobed mobed 0 2009-03-18 10:06 mobed~
drwxr-xr-x 2 mobed mobed 4096 2009-05-14 00:39 IPK
-rw-r--r-- 1 mobed mobed 43 2009-04-23 10:21 kamu.txt~
-rw-r--r-- 1 mobed mobed 0 2009-04-23 10:31 lain.txt~
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:54 Music
drwxr-xr-x 2 mobed mobed 4096 2009-03-16 07:40 mydir
-rw-r--r-- 1 mobed mobed 204 2009-05-13 22:29 nilai.txt~
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:54 Pictures
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Public
-rw-r--r-- 1 mobed mobed 567 2009-05-13 23:47 rumus2.txt~
-rw-r--r-- 1 mobed mobed 739 2009-05-14 00:18 rumus.txt~
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Templates
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Videos

b). Kemudian kita akan mengurutkan kapasitasnya(pada field tersebut kapasitas=$5), Caranya :

mobed@mobed-laptop:~$ awk '{a=$5;print a,$1,$2,$3,$4,$5,$6,$7,$8}' home.txt | sort -n
0 -rw-r--r-- 1 mobed mobed 0 2009-03-18 10:06 mobed~
0 -rw-r--r-- 1 mobed mobed 0 2009-04-23 10:10 aku.txt~
0 -rw-r--r-- 1 mobed mobed 0 2009-04-23 10:31 lain.txt~
0 -rw-r--r-- 1 mobed mobed 0 2009-05-07 12:11 b.txt~
0 -rw-r--r-- 1 mobed mobed 0 2009-05-07 12:22 data.txt~
0 -rw-r--r-- 1 mobed mobed 0 2009-05-14 00:58 home.txt
total 68
26 lrwxrwxrwx 1 mobed mobed 26 2009-03-05 22:52 Examples
43 -rw-r--r-- 1 mobed mobed 43 2009-04-23 10:21 kamu.txt~
93 -rw-r--r-- 1 mobed mobed 93 2009-03-18 10:25 b~
105 -rw-r--r-- 1 mobed mobed 105 2009-04-23 10:23 daftar.txt~
113 -rw-r--r-- 1 mobed mobed 113 2009-05-07 12:29 b.awk~
204 -rw-r--r-- 1 mobed mobed 204 2009-05-13 22:29 nilai.txt~
567 -rw-r--r-- 1 mobed mobed 567 2009-05-13 23:47 rumus2.txt~
739 -rw-r--r-- 1 mobed mobed 739 2009-05-14 00:18 rumus.txt~
4096 drwxr-xr-x 10 mobed mobed 4096 2009-03-05 22:54 Documents
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:54 Music
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:54 Pictures
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Public
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Templates
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Videos
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-16 07:38 baackup
4096 drwxr-xr-x 2 mobed mobed 4096 2009-03-16 07:40 mydir
4096 drwxr-xr-x 2 mobed mobed 4096 2009-05-14 00:39 IPK
4096 drwxr-xr-x 3 mobed mobed 4096 2009-04-07 13:01 Desktop

c).Dari hasil tersebut, sudah tampil file/folder yang urut berdasarkan kapasitas.

Tugas :->MENCARI IPK

Misalkan ada sebuah daftar nilai seperti berikut:

No Nama MatKul SKS Tugas UTS UAS
1 Ari ArKom 2 78 78 86
2 Ari Embeded 3 81 81 87
3 Ari SSC 3 72 78 75
4 Ari PPL 3 80 77 81
5 Ari RTOS 3 76 76 81
6 Ari Mtk4 2 70 70 73
7 Ari Bing4 2 71 70 83
8 Ari PEmb1 3 80 71 87
9 Ari PSSC 3 60 67 65
10 Ari PPPL 6 77 80 86
11 Ari PRTOS 3 67 51 69

Dari data diatas apabila kita menginginkan berapa jumlah IPK nilai tersebut, maka kita bisa menggunakan cara seperti berikut:
1). Buat File data tersebut,caranya:
mobed@mobed-laptop:~$ cat 1> nilai.txt
[kemudian tulis data berikut]
No Nama MatKul SKS Tugas UTS UAS
1 Ari ArKom 2 78 78 86
2 Ari Embeded 3 81 81 87
3 Ari SSC 3 72 78 75
4 Ari PPL 3 80 77 81
5 Ari RTOS 3 76 76 81
6 Ari Mtk4 2 70 70 73
7 Ari Bing4 2 71 70 83
8 Ari PEmb1 3 80 71 87
9 Ari PSSC 3 60 67 65
10 Ari PPPL 6 77 80 86
11 Ari PRTOS 3 67 51 69
[tekan Ctrl+D untuk keluar]

Kemudian, kita coba memprogram buat rumus supaya kita tahu berapa nilai rata-ratanya, nilai angkanya, nilai hurufnya, jumlah SKSnya, jumlah IPSnya, dan jumlah IPKnya. Caranya, buat sebuah file yang berisi rumus seperti berikut:

mobed@mobed-laptop:~$ cat 1> rumus.txt
[Ketikkan program berikut]
BEGIN{
print "\n IPK MAHASISWA"
print "No Nama MatKul SKS Tugas UTS UAS Rata2 Huruf Angka"
print "------------------------------------------------------------------------------" }
{if(NR>1)
{a=($5+$6+$7)/3}
{if(a>=91&&a<=100){b="A";c=4}
if(a>=81&&a<91){b="AB";c=3.5}
if(a>=71&&a<81){b="B";c=3}
if(a>=61&&a<71){b="BC";c=2.5}
if(a>=51&&a<61){b="C";c=2}
if(a>=41&&a<51){b="D";c=1.5}
if(a>=0 &&a<41){b="E";c=1};
if(NR>1)
printf $0 "%10d %6s %8.1f\n",a,b,$4*c}
}
BEGIN{sks=0}
{sks=sks+$4}
END{print "\njumlah sks= ",sks}

BEGIN{tot=0}
{tot=tot+($4*c)}
END{print "IPS mahasiswa= ",tot}

BEGIN{IPK=0}
{IPK=tot/sks}
END{printf "IPK mahasiswa = %0.2f\n\n",IPK}
[Tekan Ctrl+D untuk keluar]

Setelah selesai lakukan pemipaan berikut.
mobed@mobed-laptop:~$ awk -f rumus.txt nilai.txt
[maka hasilnya di terminal akan seperti di bawah]

IPK MAHASISWA
No Nama MatKul SKS Tugas UTS UAS Rata2 Huruf Angka
------------------------------------------------------------------------------
1 Ari ArKom 2 78 78 86 80 B 6.0
2 Ari Embeded 3 81 81 87 83 AB 10.5
3 Ari SSC 3 72 78 75 75 B 9.0
4 Ari PPL 3 80 77 81 79 B 9.0
5 Ari RTOS 3 76 76 81 77 B 9.0
6 Ari Mtk4 2 70 70 73 71 B 6.0
7 Ari Bing4 2 71 70 83 74 B 6.0
8 Ari PEmb1 3 80 71 87 79 B 9.0
9 Ari PSSC 3 60 67 65 64 BC 7.5
10 Ari PPPL 6 77 80 86 81 AB 21.0
11 Ari PRTOS 3 67 51 69 62 BC 7.5

jumlah sks= 33
IPS mahasiswa= 100.5
IPK mahasiswa = 3.05

Selesai, akhirnya programnya sudah jadi. Selamat mencoba!!!

Tugas : -> Mencetak 10 baris terakhir dari pesan yang ada pada folder var/log

a). Untuk melakukan tugas diatas , ikutilah langkah berikut;
mobed@mobed-laptop:~$ ls -l /var/log
[program diatas akan menampilkan isi dari direktory /var/log]

b). Kemudian pipakan isi tersebut ke suatu file lagi, caranya :
mobed@mobed-laptop:~$ ls -l /var/log >> home2.txt #nama_file_terserah

c). Selanjutnya, lakukan penghitungan jumlah baris, caranya :
mobed@mobed-laptop:~$ awk '{print NR,$8 }' home2.txt
[program ini akan menghasilkan baris di setiap file. Ctt: Di laptop saya terdapat 82 baris]

d). Setelah selesai, cetak 10 baris file terakhir, caranya:

mobed@mobed-laptop:~$ awk '{a=82-10;if(NR>a)print NR,$0 }' home2.txt
73 -rw-r--r-- 1 root root 0 2009-05-13 22:16 wpa_supplicant.log
74 -rw-r--r-- 1 root root 20 2009-04-23 10:15 wpa_supplicant.log.1.gz
75 -rw-r--r-- 1 root root 20 2009-04-07 12:53 wpa_supplicant.log.2.gz
76 -rw-r--r-- 1 root root 20 2009-03-16 07:43 wpa_supplicant.log.3.gz
77 -rw-r--r-- 1 root root 20 2009-03-05 22:58 wpa_supplicant.log.4.gz
78 -rw-rw-r-- 1 root utmp 5376 2009-05-14 01:13 wtmp
79 -rw-rw-r-- 1 root utmp 58368 2009-05-13 21:59 wtmp.1
80 -rw-r--r-- 1 root root 308 2008-10-30 06:10 wvdialconf.log
81 -rw-r--r-- 1 root root 38693 2009-05-13 23:34 Xorg.0.log
82 -rw-r--r-- 1 root root 38457 2009-05-07 12:55 Xorg.0.log.old

#Selesai, mudahkan!!!!

Tugas :-> Mencetak record yang tidak mempunyai password

Caranya :

mobed@mobed-laptop:~$ awk -F: '{if (FS==":") print $1 " ",tanpa password"}' /etc/passwd
[maka terminal akan menampilkan seperti berikut]

root tanpa password
daemon tanpa password
bin tanpa password
sys tanpa password
sync tanpa password
games tanpa password
man tanpa password
lp tanpa password
mail tanpa password
news tanpa password
uucp tanpa password
proxy tanpa password
www-data tanpa password
backup tanpa password
list tanpa password
irc tanpa password
gnats tanpa password
nobody tanpa password
libuuid tanpa password
syslog tanpa password
klog tanpa password
hplip tanpa password
avahi-autoipd tanpa password
gdm tanpa password
pulse tanpa password
saned tanpa password
messagebus tanpa password
polkituser tanpa password
avahi tanpa password
haldaemon tanpa password
ilham tanpa password
clamav tanpa password

Analisa program :
FS(Field Separator) adalah sebuah pemisah antar field, disini yang kita pakai adalah ":", sehingga apabila "FS==:" maka secara otomatis program akan mencetak tanpa password setelah $1. Kemudian setelah selesai maka program akan mencari di baris berikutnya.

Mencetak hasil dari ls –l, kemudian di cari total, rata-rata ukuran file, lebih besar dan lebih kecil dari rata-rata.

Untuk bisa melakukan pekerjaan pencetakan ls -l, lakukanlah langkah berikut:
a). lihat hasil ls -l :mobed@mobed-laptop:~$ ls -l
total 72
-rw-r--r-- 1 mobed mobed 0 2009-04-23 10:10 aku.txt~
-rw-r--r-- 1 mobed mobed 93 2009-03-18 10:25 b~
drwxr-xr-x 2 mobed mobed 4096 2009-03-16 07:38 baackup
-rw-r--r-- 1 mobed mobed 113 2009-05-07 12:29 b.awk~
-rw-r--r-- 1 mobed mobed 0 2009-05-07 12:11 b.txt~
-rw-r--r-- 1 mobed mobed 105 2009-04-23 10:23 daftar.txt~
-rw-r--r-- 1 mobed mobed 0 2009-05-07 12:22 data.txt~
drwxr-xr-x 3 mobed mobed 4096 2009-04-07 13:01 Desktop
drwxr-xr-x 10 mobed mobed 4096 2009-03-05 22:54 Documents
lrwxrwxrwx 1 mobed mobed 26 2009-03-05 22:52 Examples -> /usr/share/example-content
-rw-r--r-- 1 mobed mobed 1393 2009-05-14 00:58 home.txt
-rw-r--r-- 1 mobed mobed 0 2009-03-18 10:06 mobed~
drwxr-xr-x 2 mobed mobed 4096 2009-05-14 00:39 IPK
-rw-r--r-- 1 mobed mobed 43 2009-04-23 10:21 kamu.txt~
-rw-r--r-- 1 mobed mobed 0 2009-04-23 10:31 lain.txt~
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:54 Music
drwxr-xr-x 2 mobed mobed 4096 2009-03-16 07:40 mydir
-rw-r--r-- 1 mobed mobed 204 2009-05-13 22:29 nilai.txt~
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:54 Pictures
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Public
-rw-r--r-- 1 mobed mobed 567 2009-05-13 23:47 rumus2.txt~
-rw-r--r-- 1 mobed mobed 739 2009-05-14 00:18 rumus.txt~
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Templates
drwxr-xr-x 2 mobed mobed 4096 2009-03-05 22:59 Videos

b). Kemudian pipakan hasil tersebut menjadi suatu file, caranya:
mobed@mobed-laptop:~$ ls -l >> home.txt #nama_file terserah

c). Pada isi ls -l tersebut jumlah kapasitas file/folder terletak pada kolom 5 yang berarti bahwa $5 adalah kapasitasnya.
Sehingga untuk mencari total kapasitas tersebut caranya adalah sebagai berikut:

mobed@mobed-laptop:~$ awk 'BEGIN{tot=0}{tot=tot+$5}END{ print tot}' home.txt 42850 #42850=jumlah total kapasitas pada ls -l

d). Selanjutnya adalah mencari rata-rata, sebelumnya kita harus mencari jumlah file/folder dalam ls -l, caranya seperti berikut :

mobed@mobed-laptop:~$ awk '{print NR }' home.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Pada hasil diatas diketahui bahwa jumlah file adalah 25, sehingga rata-ratanya adalah :
mobed@mobed-laptop:~$ awk 'BEGIN{tot=0}{tot=tot+$5}END{ print tot/25}' home.txt 1714 #totalnya= 1714

e). Untuk mencari nilai kapasitas file yang lebih kecil dari rata-rata adalah sebagai berikut :
mobed@mobed-laptop:~$ awk '{if($5<1714) print $8}' home.txt
aku.txt~
b~
b.awk~
b.txt~
daftar.txt~
data.txt~
Examples
home.txt
mobed~
kamu.txt~
lain.txt~
nilai.txt~
rumus2.txt~
rumus.txt~

Pada program diatas akan menampilkan semua file yang kapasitasnya kurang dari 1714

f). Untuk mencari kapasitas file yang lebih besar dari rata-rata adalah sebagai berikut :
mobed@mobed-laptop:~$ awk '{if($5>1714) print $8}' home.txt
baackup
Desktop
Documents
IPK
Music
mydir
Pictures
Public
Templates
Videos

#Selesai, selamat mencoba!!!

Selasa, 24 Maret 2009

AWK : Operasi Pengkondisian

Operasi If

Jika ada sebuah file dengan data sebagai berikut (daftar.txt):

Nama Nilai

fadly 89
andi 78
rahmat 67
yudha 53
nindi 92
rani 45


Terus kemudian kita ingin mencari nilai dengan range tertentu, dan diberikan predikat A,B,atau C. Maka kita harus menggunakan fungsi awk pengkondisian untuk mengetahui range nilai tersebut. Untuk melaksanakan tugas tersebut, dapat dilakukan dengan intruksi berikut:

# Cara buat file

:~$ cat 1> daftar.txt
Nama Nilai

fadly 89
andi 78
rahmat 67
yudha 53
nindi 92
rani 45
(Ctrl-d untuk keluar)

# Cara seleksi untuk nilai A saja

:~$ awk '{if($2>=80 && $2<=100) {print $1,$2,"A"}} ' daftar.txt # tekan enter

maka secara otomatis program tersebut akan mengeluarkan data seperti berikut:
fadly 89 A
nindi 92 A

# Cara seleksi untuk nilai A dan B

:~$ awk '{if($2>=80 && $2<=100) {print $1,$2,"A"}} {if($2>=60 && $2<=80) {print $1,$2,"B"}} ' daftar.txt
# tekan enter

maka hasilnya adalah sebagai berikut:

fadly 89 A
andi 78 B
rahmat 67 B
nindi 92 A


Fungsi pengkondisian diatas akan dijelaskan sebagai berikut:

if($2>=80 && $2<=100) --> berarti daerah kolom 2 dengan nilai antara 80 sampai 100.
{print $1,$2,"A"} --> berarti cetak kolom 1,2 dan beri karakter A dengan jeda tab/spasi
' daftar.txt --> nama file yang akan di seleksi


Cukup sekian artikel saya. So, jika anda mau jadi programmer hebat tunggu aja artikel yang lain.

thank's to : Pak Wasista & Pak One

Rabu, 18 Maret 2009

Pengenalan AWK

Utilitas AWK

Utilitas ini memanipulasi dengan menyaring baris-baris dalam file teks untuk digunakan membuat laporan atau mencari string tertentu. Defaultnya, sebuah baris dalam file teks yang menjadi masukan utilitas AWK menjadi sebuah record.

Pemanggilan utilitas dengan format

awk 'script_awk' nama_file_masukan

Script_awk adalah script yang terdiri atas

pola jika pola tidak dibuat maka semua record diproses
tindakan jika tindakan tidak ada, maka record ditampilkan

nama_file_masukan adalah nama file yang diproses.

Contoh: Proses dengan perintah berikut

awk '{ print }' data.dat ditampilkan seluruhnya
awk '{ print $1 $3 }' data.dat ditampilkan field-1 dan field-3 saja
awk '/mu/ { print }' data.dat ditampilkan record yang mengandung 'mu'
awk '/89/ { print }' data.dat ditampilkan record yang mengandung '89'
awk '/89/' data.dat sama dengan di atas

Script awk dapat ditulis dalam sebuah file dan dikerjakan dengan format perintah

awk -f nama_file_skrip nama_file_masukan



Pembuka dan penutup awk


Pada script awk dapat ditambahkan pola

* BEGIN untuk tindakan yang dikerjakan sekali di awal script (sebelum record pertama diproses). Dapat digunakan untuk membuat judul dan memberi nilai awal.
* END untuk tindakan yang dikerjakan sekali di akhir script (setelah seluruh record diproses). Digunakan untuk ringkasan dan keterangan akhir.

Contoh: Buat script2.awk

BEGIN {
print "DAFTAR Mahasiswa"
print "NRP NAMA"
print ""
}

{ print }

END {
print "selesai"
}


Variabel

Dua macam variabel

1. Bawaan (built-in) mencakup
* ARGC jumlah argumen dari baris perintah
* ARGV array dari argumen baris
* FILENAME nama file yang diproses
* NR Jumlah record dari awal hingga record yang sedang diproses
* FNR Jumlah record dari awal sebuah file hingga record yang sedang diproses pada file tersebut (masukan terdiri dari beberapa file).
* NF Jumlah field dari record yang sedang diproses
* FS karakter pemisah field dari file masukan, default spasi.
* OFS karakter pemisah field untuk keluaran
* RS pemisah record masukan, default newline.
* ORS pemisah record keluaran, default newline.
2. buatan, didefinisikan dengan cara mengisi dengan harga awal.

Pustaka : blajar_awk.html

Sejarah Perkembangan Bahasa Pemrograman

Generasi Bahasa
Perkembangan bahasa pemrograman mungkin tidak semudah yang kita kira, namun perkembangan tersebut sangatlah sulit dan memakan waktu yang lama hingga bisa menjadi bahasa pemrograman yang bisa kita nikmati sekarang ini. Pembagian generasi bahasa adalah seperti berikut:
• First-Generation Language (1GL) adalah bahasa mesin atau level instruksi dan data, yang diberikan kepada prosesor agar dapat bekerja. Pada komputer konvensiona terdiri dari deretan angka 0 dan 1.
• 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.
• Third-Generation Language (3GL) merupakan bahasa pemrograman yang masuk dalam generasi ketiga. Ini adalah bahasa pemrograman tingkat tinggi, seperti PL/1, C, atau Java.
• Fourth-Generation Language (4GL) adalah bahasa pemrograman yang didesain lebih “natural”, sehingga makin mudah digunakan.
• Fifth-Generation Language (5GL) adalah bahasa pemrograman yang menggunakan interface pengembangan visual atau grafik untuk membuat bahasasumbernya, yang biasanya di-compile dengan compiler 3GL atau 4GL.

Perkembangan Bahasa

• 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.
• Kemudian 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 berturut turut 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 bersamaan 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 tahun ini, dengan diilisnya Java 2 (versi 1.4), Python 2.2, J#, dan F#.

Bahasa Modern (Java)
• Kelahiran Java dimulai tahun 1991. Bahasa Java merupakan proyek penelitian Sun Microsystems yang diberi nama kode Green. Proyek ini bertujuan membangun sistem yang memungkinkan komputer berperan dalam rumah tangga. Fokus pertama proyek adalah pada TV kabel yang disebut set-top box.
• Untuk menjalankan proyek tersebut Sun merencanakan untuk membangun sebuah OS yang dibangun dengan bahasa C++. Akan tetapi James Gosling (salah seorang anggota tim proyek) merasa tidak puas dengan C++. Akhirnya Ia membuat sendiri bahasa pemrograman baru yang diberi nama Oak. Nama tersebut diambil dari nama pohon yang terlihat dari jendela kantornya. Oak dibuat berdasarkan syntak C++. Namun Oak lebih sederhana dari C++, lebih stabil dan lebih mendukung network-programming. Selain itu Oak dibuat murni object-oriented. Bahasa Oak dibuat sebagai bahasa yang tidak terikat pada satu platform (cross-platform atau multi-platform). Tahun 1994, proyek Green diperbesar oleh Sun menjadi proyek FirstPerson. Tapi proyek tersebut gagal akibat penolakan pasar terhadap ide TV interaktif.
• Pada saat itu Internet memulai sejarah baru dengan WWW (World Wide Web). Browser GUI pertama adalah Mosaic. Sun melihat celah lain dalam dunia Web. Sun merasa bahasa Oak yang multi-platform serta ditujukan untuk pemrograman interaktif dan distributed sangat cocok untuk dunia Web.
• Tahun 1995, nama Oak diganti dengan nama Java karena ada produk lain yang telah mematenkan nama tersebut. Pemilihan nama ini (yang dikenal oleh para pekerja Sun sebagai nama jenis kopi) sama sekali tidak didasarkan atas kedekatan mereka dengan Indonesia atau pulau (atau orang) Jawa. Nama Java dipilih mengalahkan nama-nama lainnya, sekedar karena mereka merasa bahwa nama ini sangat bagus (“cool” menurut bahasa anak muda sekarang). Bersamaan dengan lahirnya nama Java ini, Sun juga mengganti nama web-browser mereka menjadi HotJava (semula bernama WebRunner). Sun kemudian mengumumkan bahasa Java sebagai bahasa yang mampu menjalankan Web secara interaktif dan aman.
• Pada pertengahan tahun 1995, Netscape mengumumkan akan mengadopsi Java di dalam browser mereka. Kemudian, Java (pada tahun-tahun itu) secara de-facto menjadi bahasa standar di dunia maya Internet. Perkembangan Java dipermudah lagi dengan tersedianya JDK (Java Development Kit) di situs milik Sun yang dapat di-download gratis. Akhir tahun 1995, IBM dan Microsoft memutuskan untuk membeli lisensi Java untuk dipakai dalam teknologi mereka.
Pustaka :
• Rizal Aditiya SMK-PGRI Pandaan
• Sejarah Pemrograman JAVA « A C E.htm