Monthly Archives: October 2010

Data Structure practice 2nd Meeting

This 2nd meeting is really confused for me, because i can’t finish one of my task no 4. Here is the list of the task :

1.  Stack by certain input


program stack;
uses wincrt;
var
a,b,c,top:byte;
data:array[1..20] of integer;
x:integer;
lagi:char;
procedure push;
begin
 if top>=20 then
 writeln('Stack Penyh')
 else if top<20 then
 begin
 write('data = ');read(x);

 if x=999 then
 begin
 exit;
 end;

 if x>=60 then
 begin
 if top>=20 then
 begin
 writeln('penuh');
 end
 else if top<=20 then
 begin
 top:=top+1;
 data[top]:=x;
 end;
 end;

 if x<60 then
 begin
 if top>=0 then
 begin
 x:=data[top];
 top:=top-1;
 end
 else if top<=0 then
 writeln('stack kosong');

 end;
 end
 else
 writeln('error');

end;

procedure pop;
begin
 if top<=0 then
 writeln('stack kosong')
 else if top >=0 then
 begin
 x:=data[top];
 top:=top-1;
 end;

end;

procedure show;
begin
 for b:=1 to top do
 writeln('INDEX[',b,']=',data[b]);
end;

begin
top:=0;
repeat

writeln('LIST');
writeln('1.  PUSH');
writeln('2.  POP');
writeln('3.  SHOW');
write('pilih = ');read(a);
case a of
1:push;
2:pop;
3:show;
else
writeln('salah ');
end;

write('lagi = ');read(lagi);read(lagi);read(lagi);
until (lagi='y') or (lagi='Y')

end.

2.  Checking arithmatic expression

1st Version


program matching_parenthesis;
uses wincrt;
var
data,stack:array[1..20]of char;
a,b,top:byte;
lagi,c:char;
eks:string;
buka,tutup:byte;
begin
top:=0;
buka:=0;
tutup:=0;
write('masukkan ekspresi = ');read(eks);
 a:=length(eks);
 for b:=1 to a do
 begin
 data[b]:=eks[b];
 end;

 for b:=1 to a do
 begin
 if data[b]='(' then
 begin
 buka:=buka+1;
 top:=top+1;
 stack[top]:=data[b];
 end
 else if data[b]=')' then
 begin
 tutup:=tutup+1;
 if top=0 then
 begin
 writeln('terjadi kesalahan');
 writeln('berarti ada simbol ) tetapi tidak ada simbol ( yang seharusnya mendahului');
 end
 else if top<>0 then
 begin
 if buka=tutup then
 begin
 writeln('benar');
 writeln('ada pasangannya');
 c:=data[b];
 top:=top-1;
 end
 else if buka>tutup then
 writeln('salah');
 end;
 end
 end;

end.

or 2nd version


program parenthesis;
uses wincrt;
var
data:array[1..20]of char;
a,b,c,buk,tup:byte;
e:string;
begin
buk:=0;
tup:=0;
write('data = ');read(e);
a:=length(e);
for b:=1 to a do
begin
 data[b]:=e[b];
end;

for b:=1 to a do
begin
 if data[b]='(' then
 buk:=buk+1
 else if data[b]=')' then
 tup:=tup+1;
end;

 if buk=tup then
 write('benar')
 else
 write('salah');

end.

3.  infix to postfix

4.  Box as stack function


program gudang;
uses wincrt;
var
data:array[1..10]of byte;
bantu,i,top,pil,nilai:byte;
nama:string;
utama:char;

procedure ambil;
var
lagi:byte;
begin
repeat
 if top=0 then
 begin
 writeln('kosong');
 exit;
 end
 else
 writeln('                        =====================');
 for i:=top downto 1 do
 begin
 case data[i] of
 1:nama:='permen';
 2:nama:='kue';
 3:nama:='biskuit';
 4:nama:='mie';
 5:nama:='beras';
 end;
 writeln('|':24,i,'=',nama:10,'|':10);
 end;
 writeln('                        =====================');
 write('data yang ke berapat yang akan diambil = ');read(nilai);
 for i:=nilai to top-1 do
 begin
 data[i]:=data[i+1];
 end;
 top:=top-1;
 writeln('                        =====================');
 for i:=top downto 1 do
 begin
 case data[i] of
 1:nama:='permen';
 2:nama:='kue';
 3:nama:='biskuit';
 4:nama:='mie';
 5:nama:='beras';
 end;
 writeln('|':25,nama:10,'|':10);
 end;
 writeln('                        =====================');
writeln('1 untuk berhenti');
writeln('2 untuk ulang');
write('ulang (1 / 2)= ');readln(lagi);
until lagi=1;

end;

procedure isi;
var
ulang:byte;
begin
repeat
writeln(' pilih barang ');
writeln('1.  permen');
writeln('2.  kue');
writeln('3.  biskuit');
writeln('4.  mie');
writeln('5.  beras');
write('pilih = ');read(pil);

 case pil of
 1:nilai:=1;
 2:nilai:=2;
 3:nilai:=3;
 4:nilai:=4;
 5:nilai:=5;
 else
 writeln('salah pilihan');
 end;

 if top=0 then
 begin
 top:=top+1;
 data[top]:=nilai;
 end
 else if top=10 then
 writeln('penuh')
 else
 begin
 top:=top+1;
 for i:=(top-1) downto 1 do
 begin
 if nilai>=data[i] then
 begin
 bantu:=data[i];
 data[i]:=nilai;
 data[i+1]:=bantu;
 end;
 end;
 end;
 writeln('                        =====================');
 for i:=top downto 1 do
 begin
 case data[i] of
 1:nama:='permen';
 2:nama:='kue';
 3:nama:='biskuit';
 4:nama:='mie';
 5:nama:='beras';
 end;
 writeln('|':25,nama:10,'|':10);
 end;
 writeln('                        =====================');
writeln('1 untuk berhenti');
writeln('2 untuk ulang');
write('ulang (1 / 2)= ');readln(ulang);
until (ulang=1);

end;

begin

top:=0;

repeat
writeln('pilih operasi');
writeln('1.  isi');
writeln('2.  ambil');
write('pilih = ');read(pil);
case pil of
1:isi ;
2 :ambil;
else
writeln('salah');
end;
write('menu utama (y / t)= ');readln(utama);
until (utama='t') or (utama='T');

end.

For the other source code i’m gonna finish it later

Octave = alternatif Mathlab for math and digital image processing

Pengolahan citra digital (Digital Image Processing) memang salah satu mata kuliah utama di jurusan teknik informatika. matakuliah ini membahas tentang rekayasa citra agar bisa bermanfaat bagi orang lain. Salah satu tool yang sangat mendukung mata kuliah ini yaitu MATHLAB (matrix laboratory) yaitu software propietary yang memang sangat powerfull untuk pengolahan data yang bersifat matrix, karena citra merupakan suatu matrix jadi tool ini sangat dianjurkan oleh dosen mata kuliah terkait. Terus , bagaimana dengan open source apakah ada penggantinya ? Tentu saja ya ! penggantinya adalah octave. Octave tersedia dalam versi CLI juga GUI. Yang bikin saya tambah antusias, yaitu hampir semua source code yang ada di Octave hampir mirip dengan MATLAB. So, bisa berpindah tool , tanpa berpindah syntax.

Dia = alternatif Ms.VISIO for flowchart & ER-Diagram

Untuk membuat flowchar dan ER-diagram, tentunya kita membutuhkan suatu tool yang bisa membantu kita untuk menggambar suatu bentuk yang dibutuhkan misalnya square sebagai simbol proses dalam flowchar dan sebagai simbol entity dalam ER – diagram. Tool yang sangat powerfull tentu saja kita akan langsung menuju pada Ms. Visio yang memang sangat terkenal. Pada saat saya mulai bermain dengan open source saya agak kebingungan , bagaimana caranya membuat flowchar secepat saya membuatnya di visio tapi dengan open source ?. lalu ada referensi menyarankan agar saya mencoba DIA. memang namanya cukup aneh , namun setelah saya coba, dia memang benar- benar sangat powerfull bahkan melebihi visio untuk pembuatan flowchart dan ER diagram. Namun untuk pembuatan yang lain, saya belum yakin. Karena DIA masih dalam proses pengembangan oleh para developernya. DIA juga tersedia untuk penggunaan di Windows.

Update Repository Ubuntu

Repository merupakan paket software berbasis open source yang disediakan oleh server- server repository yang tersedia di berbagai belahan dunia. Pada beberapa distro Linux, software- software yang ter- include di dalam fresh install sebenarnya sudah cukup. Namun, apabila anad menginginkan software lainnya, maka anda harus meng- update repository anda . Untuk Update repository, berdasarkan medianya dibagai menjadi 2 yaitu : Via mirrror terdekat (internet) dan via mirror lokal. Bardasarkan caranya dibagi menjadi 2 yaitu : Via command line dan via visual. Yang terpenting adalah PC anda terkoneksi dengan internet.

Pada postingan kali ini, saya akan menjelaskan tentang update repository berdasarkan media dan command line.

  1. Via Command Line
      1. Buka terminal
      2. buka source list dengan cara :ubuntu@ubuntu;
      3. sudo bashubuntu@ubuntu;gedit /etc/apt/sources.list &
      4. Hapus atau berilah tanda # bagi server mirror yang tidak akan anda gunakan dan tambahkan server mirror yang akan anda gunakan
      5. Simpan dan tutup gedit
      6. pada terminal ketikkan :ubuntu@ubuntu;sudo apt-get update
      7. Tunggu sampai proses selesai

Membuat USB Flash Drive menjadi Write Protected

USB Flash Drive merupakan suatu device storage yang sangat flexible karena mudah dibawa dan dipindahkan. Namun, Kadangkala Kita butuh proteksi untuk melindungi USB Flash Drive agar write protected, yakni tidak dapat ditulis/ diisi file lain, selain kita sendiri yang mengisikannya. Hal ini sangat dibutuhkan agar flah drive kita terhindar dari gangguan virus. Berikut caranya :

  1. Buka Registry windows : run ->regedit
  2. Masuk ke HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\control
  3. Buatlah satu key baru : klik kanan pada contol ->new -> key
  4. Beri nama key tersebut  StorageDevicePolicies
  5. Buka key StorageDevicePolicies lalu buat key baru (DWORD (32-bte)value)
  6. Klik 2x pada NewValue #1  -> beri value 1 -> ok
  7. Refresh
  8. Jika ada USB Flash Drive tertancap -> ambil -> pasang kembali

Penggunaan key ini sangat berguna bagi flash drive anda, namun saya harap digunakan sebaik- baiknya. Pada postingan selanjutnya saya akan men-share tentang USB Flash Drive yang Write Protected menjadi normal kembali.

Data Structure Practice

A week ago i’ve started data structure practice in trunojoyo laboratory. Exactly, it is in programming laboratory. When the lecture assistant started it, i asked him about what kind of programming language that will be used by us. He said to me that in this data structure practice, we’ll use PASCAL programming language. Actually, I’ m so dissapointed for this. But, He explain to me that it is the decision of the main Coordinator of Data structure practice, so that we can’t change it. I’ve learned about C programming language for a long time. but now it is not used again. Huch….But, i’m not gonna be breaking down only because of this. i’ll try to do the as best as i can do.
Any way, The 1st modul is about ARRAY .so , i don’t worry about that. Here is the program that must be submitted
1. Average of array


program rata_rata;
uses wincrt;
var
a,b,c:integer;
d:real;
data:array[1..100]of integer;
begin
write('Masukkan jumlah data total = ');read(a);

for b:=1 to a do
begin
write('INDEX[',b,']=');read(data[b]);
c:=c+data[b];
end;

d:=c/b;
writeln('hasil total = ',c);
writeln('hasil rata- rata =',d:2:2);
end.

2. Palindrom
3. Statistic


PROGRAM SERIBU;
USES WINCRT;
TYPE DATA=ARRAY[1..100,1..100] OF INTEGER;
VAR
PRIA,WANITA:DATA;
A,B,C,D,E,F,h,maxa,maxb,i,j,k,l:integer;
hari:array[1..7]of string;
bulan:array[1..12]of string;

PROCEDURE INPUT(A,B:BYTE);
BEGIN
d:=0;
h:=0;
hari[1]:='Sen';
hari[2]:='Sel';
hari[3]:='Rab';
hari[4]:='Kam';
hari[5]:='Jum';
hari[6]:='Sab';
hari[7]:='Min';
bulan[1]:='jan';
bulan[2]:='feb';
bulan[3]:='mar';
bulan[4]:='apr';
bulan[5]:='mei';
bulan[6]:='jun';
bulan[7]:='jul';
bulan[8]:='agu';
bulan[9]:='sep';
bulan[10]:='okt';
bulan[11]:='nov';
bulan[12]:='des';
write('     ');
for e:=1 to 12 do
begin
write(bulan[e]:6);
end;
writeln;
FOR E:=1 TO b DO
BEGIN
write(hari[e]);
FOR F:=1 TO a DO
BEGIN
c:=random(15);
write(c:6);
pria[e,f]:=c;
d:=d+pria[e,f];
END;
writeln;
END;
write('Jumlah Laki - Laki = ',d);

writeln;
writeln;
write('     ');
for e:=1 to 12 do
begin
write(bulan[e]:6);
end;
writeln;
FOR E:=1 TO b DO
BEGIN
write(hari[e]);
FOR F:=1 TO a DO
BEGIN
c:=random(14);
write(c:6);
wanita[e,f]:=c;
h:=h+wanita[e,f];
END;
writeln;
END;
writeln;
writeln('Jumlah perempuan = ',h);

{proses}

maxa:=pria[1,1];
FOR E:=1 TO b DO
BEGIN
FOR F:=1 TO a DO
BEGIN
if pria[e,f]>maxa then
begin
maxa:=pria[e,f];
i:=e;
j:=f;
end;
END;
END;

maxb:=wanita[1,1];
FOR E:=1 TO b DO
BEGIN
FOR F:=1 TO a DO
BEGIN
if wanita[e,f]>maxb then
begin
maxb:=wanita[e,f];
k:=e;
l:=f;
end;
END;
END;

writeln;
if maxa>maxb then
writeln('Terbanyak adalah Laki- Laki di bulan ',bulan[j],' hari ',hari[i],' ',maxa,' orang')
else if maxb>maxa then
writeln('Terbanyak adalah Laki- Laki di bulan ',bulan[l],' hari ',hari[k],' ',maxb,' orang')
else
writeln('SAMA');

END;

BEGIN
a:=12;
b:=7;
randomize;
input(a,b);
END.

4. set

Fortunately i got task number 1 and 3. So, i did’n need to work harder to finish it all.
I really hope in the next practice which is related to programming can use C. Amin…

Beasiswa BCA FINANCE 2010 Telah Diumumkan

BCA FInance, yang pada awalnya hanya akan memberikan beasiswa kepada 35  mahasiswa/ mahasiswi se- Indonesia, sekarang telah di-upgrade menjadi 38 . Hal ini dikarenakan meningkatnya jumlah pelamar sebesar 146%.

Selamat bagi para pelamar yang telah diterima. Untuk melihat daftar penerima klik disini.