Jumat, 22 Januari 2010

Chrome Experiment

Java script menjadi bahasa scripting yang paling populer saat ini, khususnya aplikasinya di halaman web. Sedikit website didunia ini yang tidak menggunakan javascript.  Fungsinya sangat luas, dari yang sekedar untuk sesuatu yang tidak penting sampai untuk urusan hacking. Apabila berpikir javascript hanya di peruntukan untuk manipulasi halaman web saja, itu salah.
Di website Chrome Experiment , ada lebih dari 70 aplikasi web yang mengaggumkan yang di buat dengan salah satu komponennya adalah java script, mulai dari  game, animasi,   sampai editor gambar. Aplikasi web merupakan karya desainer dan programmer  dari seluruh dunia dengan  menggunakan java script yang dipadukan dengan element html5 yang disebut canvas, SVG dan beberapa tool javascript seperti  JQuery.
Beberapa aplikasi yang ada di situ di buat dengan sangat mengaggumkan, tidak hanya halaman web yang dapat dimanupulasi oleh javascript, tapi juga jendela  browser dan komponen-komponennya, seperti pada aplikasi Pong.  Mirip seperti game Pong yang dikenal pada jaman dahulu, namun pong disini menggunakan jendela browser sebagai bola dan pemukulnya.  Aplikasi mengaggumkan lainnya  masih banyak, seperti Google Gravity, Depth Of fieldCanvas 3D engine, Canopy dll.

 
Pong dengan jendela browser

 

Google Gravity

Depth Of field dan Canvas 3D Engine  merupakan beberapa contoh bagaimana javascript dan canvas merender bentuk 3 Dimensi di jendela  browser. Jadi bukan hanya aplikasi desktop saja yang dapat menampilkan bentuk 3 dimensi.  Ini menunjukan bahwa bukan tidak mungkin nantinya akan ada website yang kontennya di tampilkan dalam bentuk 3 dimensi. 


Depth Of Field






 Canvas 3d Engine, render bentuk 3 dimensi

Jika dilihat dari nama websitenya, tentunya chrome experiments ada hubungannya dengan Google Chrome. Tapi bukan berarti Aplikasi disana hanya bisa di gunakan di Google Chrome. Firefox, Safari, dan Opera versi baru yang sudah mendukung standar HTML yang baru juga bisa menjalankannya. Kecuali IE yang tidak disarankan untuk dipakai. Hanya saja, Google Chrome merupakan browser  yang  menjalankan javascript paling cepat. Jadi untuk tampilan terbaik, gunakan Google Chrome. Selain itu, Chrome Experiment dibuat agar web lebih cepat, menyenangkan dan  terbuka. Itu juga merupakan tujuan dibuatnya Google Chrome.
Dan siapa tahu, salah satu aplikasi di Chrome Experiment  merupakan embrio dari tampilan website di masa mendatang. (AHP 21 Januari 2009 11:34)

Senin, 11 Januari 2010

Hal Yang Istimewa di Google Wave


Pada postingan sebelumya saya sudah menjelaskan tentang fungsi di buatnya Google Wave. Seperti janji saya di postingan itu, kali ini saya membahas lebih lanjut mengenai Google Wave. Google Wave bisa dikatakan sebagai generasi email selanjutnya, yang menggabungkan antara fungsi email, instant massaging, social networking dan file sharing.
Secara umum, apa yang istimewa di Google Wave adalah konsep cara berkomunikasinya. Paradigma yang ditawarkan Google Wave mengubah cara kita berkomunikasi dengan orang lain dalam internet. Saat ini kita masih nyaman dengan chatting, email, attachment file. Di Google Wave semua itu dapat dilakukan dengan lebih mudah dan terstruktur.
Kita juga dapat menggabungkan antara komunikasi dengan sharing dokumen. Bila sekarang, saat sedang bekomunikasi dengan orang lain, apabila ingin membagi file dengan mereka, maka harus menggunakan tempat yang terpisah dan mungkin kita harus menyediakan link. Di Google Wave antara tempat untuk berkomunikasi dan untuk berbagi file menjadi satu, komunikasi sekaligus sharing file tanpa harus berpindah-pindah tempat, tidak ada layanan lain yang seperti ini
Berikut ini adalah kemampuan dan fitur-fitur dalam google wave yang mampu membuat dia dapat melakukan itu :


Realtime
Maksudnya realtime disini adalah, ketika kita mengetikan sesuatu di Wave, maka pada saat itu juga proses kita mengetik dapat dilihat oleh teman kita yang ada dalam Wave tersebut karakter demi karakter. Berbeda dengan kebanyakan alat input yang ada di website sekarang ini, yang harus mengklik tombol submit atau semacamnya agar orang lain dapat membacanya. DI Google Wave, tidak butuh klik tombol seperti itu, tinggal tulis di Wave, maka orang lain dapat langsung membacanya. Ini memberikan kesan tersendiri pada percakapan yang kita lakukan. Seperti berada dalam satu ruangan. Selain teks, file-file lain yang di upload di Wave juga dapat langsung di akses oleh orang lain dalam wave.

Wiki
Dengan fungsi wiki ini, tulisan yang di ketik oleh siapapun di Wave dapat di edit oleh orang lain. Berbeda dengan media komunikasi lainnya yang tidak mengijinkan kita untuk mengedit tulisan yang dipost oleh orang lain. Di Google Wave itu dapat dilakukan, ini berguna untuk kolaborasi dalam mengerjakan sesuatu. Misalnya ketika membuat proposal atau tugas, tiap orang yang ada dalam wave dapat ikut berkontribusi dengan mudah. Masing-masing orang dapat mengerjakan bagian yang berbeda dalam waktu yang sama. Pekerjaan yang memerlukan kolaborasi seperti itu akan jauh lebih cepat dengan Google Wave, bahkan bisa lebih cepat dibandingkan berkumpul secara fisik.
Bagaimana kalau tulisan kita di edit dengan tidak bertanggung jawab oleh orang lain? Jangan kuatir, apabila ada orang lain yang mengedit, maka dia akan tercatat sebagai kontributor. Siapapun yang ada dalam wave akan tahu siapa saja yang mengedit. Lagipula dengan fitur wiki, kita dapat dengan mudah mengoreksi kata-kata yang salah dari orang lain ataupun dari kita sendiri.

Upload Dengan Drag & Drop
Rutinitas yang kita lakukan ketika akan upload file adalah mengklik tombol browser atau sejenisnya, mencari file yang akan di upload, kemudian klik upload dan tunggu hingga selesai. Dengan Google Wave kita tidak perlu mengupload file dengan menggunakan ritual tersebut. Cukup drag&drop file dari windows explorer ke jendela wave di Google Wave, dan file akan di upload dan dapat dilihat oleh orang dalam Wave seketika itu juga. Fungsi ini sangat memudahkan kita untuk membagi file, mau download berapapun file, cukup hanya dengan satu tarikan saja.
Namun fungsi drag & drop ini hanya berlaku bila menggunakan Google Chrome atau Browser yang menggunakan plugin google gears. Teman saya menggunakan Firefox dan Safari, disana drag & drop tidak berfungsi, Di Opera, Google Wave tidak bisa berjalan sama-sekali.


Extensions
Ekstension merupakan aplikasi tambahan yang menjadi daya tarik di Google Wave. Ada dua jenis extension Google Wave, yaitu Robots dan Gadgets.
Robots adalah extension yang dapat berinteraksi langsung dengan kita melalui wave. Robots berwujud seperti alamat wave yang dapat di tambahkan di daftar kontak kita. Cara menggunakannya seperti ketika menambahkan partisipan lain dalam wave. Begitu di tambahkan, robots akan bekerja secara otomatis sesuai dengan fungsi yang dilakukannya.


Robots dapat berlaku seperti pengguna manusia, dia dapat memodifikasi informasi dalam wave, berinteraksi dengan pengguna, berkomunikasi dengan Wave lainnya dan mengambil informasi dari website luar.
Contoh robots yang menurut saya menarik adalah Eliza robot (elizarobot@appspot.com). Robots ini berfungsi seperti ECCEliza yang pernah saya jelaskan disini. Eliza robot adalah aplikasi kecerdasan buatan yang mencoba mengerti dan memberi respon apa yang kita katakan.

Robots Eliza dalam Wave

Sedangkan Gadget merupakan aplikasi tambahan yang dapat ditambahkan di Wave untuk menambah fungsionalitas atau hanya untuk sekedar hiburan. Gadget dengan fungsi-fungsi penting hingga hanya sekedar game bisa ditambahkan di Google Wave. Oya, di Google Wave, game dapat dimainkan multiplayer secara realtime sehingga bisa memberikan kesan tersendiri apabila dimainkan secara beramai-ramai.


Contoh Gadget :Sudoku, Permainan sederhana yang mengasikan di Google Wave

Image Slideshow
Sebenarnya bukan fungsi yang istimewa, tapi lumayan menarik. Dengan Image Slide show kita bisa melihat slideshow gambar yang di upload dalam Wave. Tampilan slideshownya bagus dan tidak terlalu memberatkan.


Image Slideshow

Playback
Playback adalah salah satu fitur unggulan di Google wave. Dengan Playback, kita bisa melihat kembali rekaman aktifitas di Wave yang telah berlalu. Detail yang di tampilkan lengkap dan kronologis. Playback sangat berguna ketika kita ingin tahu bagaimana kronologis aktifitas di Wave.

Playback

Itu Saja fitur-fitur Google Wave? Tentu saja tidak….itu hanya sebagian kecil saja, masih banyak fitur-fitur lain yang terdapat dalam Apalagi saat ini Google Wave masih dalam masa pengembangan, Mungkin saja nantinya fitur-fitur baru akan ditambahkan untuk fungsionalitas Google Wave. Kita tunggu saja apa yang akan ditambahkan pengembang Google Wave kedepannya…(AHP 11 Januari 2010 20:57)

Jumat, 08 Januari 2010

Berkomunikasi Dan Kolaborasi Dengan Google Wave


Google Wave merupakan layanan baru dari google yang inovatif. Pertama diluncurkan pada 27 Mei 2009, Google wave di buat sebagai layanan web yang menawarkan komunikasi dan kolaborasi. Cara komunikasi yang ditawarkan google Wave adalah penggabungan antara email, instant massaging, wiki, file sharing dan social networking. Secara singkat, Google Wave adalah platform untuk berkomunikasi secara real time.

Saat artikel ini ditulis Google Wave masih dalam tahap Preview, untuk menggunakannya, kita tidak bisa asal mendaftar, tapi harus di undang dulu oleh teman lain, atau mengajukan diri langsung ke Google. Saat saya menggunakan Google Wave, kadang masih ada error dan harus di refresh, namun itu jarang. Saya tidak tahu kapan Google Wave akan dirilis secara resmi.


Komunikasi Dengan Wave

Bentuk komunikasi yang dilakukan google wave berbeda dengan layanan yang ada saat ini, jika dibilang mirip email, memang mirip, namun yang dilakukannya lebih dari itu, Seperti yang sudah dikatakan tadi Google Wave merupakan penggabungan antara email, instant massaging, wiki, file sharing dan social networking. Sulit terbayang? Memang apabila belum menggunakan langsung, memang sulit dibayangkan.

Wave adalah sebuah ruang yang dapat diisi oleh orang-orang yang bisa saling berkolaborasi mengerjakan atau diskusi tentang sesuatu. Disana tiap pengguna dapat membagi filenya kepada pengguna yang lain yang ada di ruang itu, dapat saling mengomentari, mengoreksi bahkan mengedit tulisan pengguna lain.

Baik, untuk membayangkan bagaimana antar pengguna berkomunikasi, kita pakai contoh. Misalnya seseorang bernama Paidu bersama anggota kelompoknya ingin mengerjakan tugas kelompok dari dosen. Sayangnya hari itu hujan lebat, sehingga mereka tidak bisa berkumpul. Karena itu, Paidu memutuskan menggunakan Google Wave. Pertama, dia membuat wave baru, dan mengundang semua anggota kelompoknya. Di Wave itu paidu memberikan draft tugas yang masih mentah, disitu teman-temannya dapat mengedit dan menambahkan sesuatu ke draft tugas secara realtime, mereka juga dapat berdiskusi mengenai tugas secara realtime, memberikan gambar, bahkan bermain game bersama-sama ketika tugasnya sudah kelar.


User Interface Google Wave

Kegiatan paidu diatas adalah salah satu contoh penggunaan google wave dalam kegiatan sehari-hari. Masih banyak lagi hal yang dapat dilakukan dengan Google Wave, mulai dari Rapat penting, brainstorming hingga sekedar bermain game bersama-sama.

Cara komunikasi yang dilakukan Google Wave merupakan revolusi dengan sistem yang ada saat ini. Mungkin saat ini kita masih terbiasa komunikasi dengan e-mail, instant massaging dan alat komunikasi tradisional lainnya, namun Google wave memberikan pengalaman yang berbeda saat berkomunikasi dengan orang lain.

Google Wave tidak di buat untuk menyamai Facebook, Twitter atupun layanan sejenis lainnya, Google Wave dibuat dengan fungsi yang berbeda. Tidak ada layanan seperti pamer foto atau saling komentar status di Google Wave, karena memang dibuat bukan untuk itu. Google Wave di buat sebagai platform komunikasi dan kolaborasi untuk semua orang. Meskipun begitu, kita kan masih menemukan fitur-fitur facebook atau twitter, bahkan Google Wave bisa di kolaborasikan dengan 2 layanan itu.


Masih Kurang?

Baiklah, saya tahu. Di postingan selanjutnya, saya akan fokus ke Google Wave menjelaskan apa yang menjadi istimewa di google Wave, apa itu ekstension, gadget dan robot. Postingan ini fokus ke apa fungsi dasar dari google wave terlebih dahulu. So tunggu saja dan tetap perhatikan blog ini, atau akan ketinggalan.

(AHP, 09 Januari 2009 11:30)

Kamis, 07 Januari 2010

Kumpulan Source code Sederhana Dalam Bahasa Pascal

Hampir senada dengan postingan yang linked list, Kali ini saya juga akan menshare kumpulan source code program-program kecil dalam bahasa pascal. Meskipun masih sederhana dan mungkin tidak cocok untuk programmer yang sudah mapan, tulisan ini saya harap bisa berguna untuk mereka yang masih atau mau belajar memprogram. Karena sebelum memahami hal yang rumit, harus paham yang sederhana dulu kan?  Dengan membaca kode-kode pascal yang ada disini, semoga bisa menambah pemahaman tentang pemprograman.
Bila dasar source code yang Linked List bukan saya yang membuat,  semua yang ada disini adalah kode yang saya tulis sendiri. Sebagian di kerjakan sebagai jurnal praktikum di kampus, sebagian tugas dari dosen, dan sisanya adalah hasil iseng-iseng. Jadi, saya jamin code disini tidak akan di temui di website atau blog lain, kecuali mereka memplagiat artikel ini. Jadi merasa beruntunglah sudah kesini, hwahwahwahah (tertawa setan)
Silahkan cermati, hayati, lalu komentari. Kalau ada yang kurang jelas, Tanyakanlah…..

Prosedur dan Fungsi
Di sub judul ini, ada 4 source code yang mengandung fungsi dan prosedur. Fokus yang ada disini adalah bukan mengenai bagaimana isi prosedur itu, tapi lebih ke bagaimana penggunaan fungsi dan prosedur itu. Tentang bagaimana deklarasinya, penerapan parameter, pemanggilannya dan sebagainya… Contoh disini dimulai dari yang paling sederhana hingga yang lebih ribet sedikit…..

Dilatasi
Fungsi : Mengalikan dua buah angka yang dimasukan dengan angka tertentu.
Hint : -
Screenshot Output:



uses crt;
var absis,ordinat,pengali:integer;
procedure dilat(a,b,peng:integer);
   var c,d:integer;
   begin
    c:=a*peng;
    d:=b*peng;
    writeln('(',c,',',d,')');
   end;
begin
  writeln('Kordinat Awal');
  write('Absis : ');readln(absis);
  write('Ordinat : ');readln(ordinat);
  writeln;
  write('masukan faktor pengali ');readln(pengali);
  write('Kordinat (',absis,',',ordinat,') setelah didilatasikan terhadap faktor ',pengali,' menjadi ');
  dilat(absis,ordinat,pengali);
  readln;
end.



Mencari Penyelesaian Fungsi Kuadrat

Fungsi : Mengitung nilai persamaan kuadrat bila nilai x diketahui
Hint: Masukan  nilai a,b,c  dan nilai x.
Screen Shot :


uses crt;
var x,y,z,s:integer;
function fungsi(a,b,c,x:integer):integer;
    begin
       fungsi:=a*(x*x)-b*x+c;
    end;
begin
   write('masukan a : ');readln(x);
   write('masukan b : ');readln(y);
   write('masukan c : ');readln(z);
   write('masukan x : ');readln(s);
   writeln('f(x)=',x,'(x^',x,'2)-',y,'x+',z);
   writeln('f(',s,') =',fungsi(x,y,z,s));
   readln;
end.


Menghitung Waktu Gerhana

Fungsi : Menghitung tanggal gerhana pada bulan tertentu dengan rumus yang sudah ada.
Hint: Sebenarnya intinya hanya membuat prosedur yang menampilkan jumlah hari dalam bulan tertentu..waktu gerhana ini sebagai tambahan saja.
Screen Shot :




uses crt;
var b,ha,ger:integer;
      bul:string;
procedure maks(s:integer);
    var y,k:integer;
    begin
      case s of
        1,3,5,7,8,10,12:ha:=31;
        4,6,9,11:ha:=30;
        2:begin
            write('masukan tahun ');readln(y);
            k:=y mod 4;
            if k=0 then
              ha:=28
           else ha:=29;
           end;
      else writeln('Bulan salah!!!');readln;exit;
    end;
end;
procedure hitung(bee:integer);
   begin
     ger:=bee-(2*b);
   end;
begin
   write('masukan bulan ke- :');readln(b);
   maks(b);
   hitung(ha);
   write('Gerhana bulan ');
   case b of
       1 : WRITE('Januari');
       2:WRITE('Februari');
       3:WRITE('Maret');
       4:WRITE('April');
       5:WRITE('Mei');
       6:WRITE('Juni');
       7:write('Juli');
       8:WRITE('Agustus');
       9:write('September');
       10:write('Oktober');
       11:WRITE('November');
       12:WRITE('desemberrrr');
   end;
   writeln(' terjadi pada hari ke-',ger);
readln;
end.


Penjumlah Pecahan

Fungsi : Menjumlahkan 2 buah pecahan.
Hint:  Tinggal masukan saja penyebut dan pembilang.
Screenshot :




uses crt;
var pemi,pemII,penyi,penyII:integer;
      j,k:integer;
function pemb(a,c:integer):integer;
    begin
       j:=penyii;
       k:=penyi;
       pemb:=a*j+k*c;
    end;
function peny(b,d:integer):integer;
   begin
     peny:=b*d;
   end;
begin
    writeln('Pecahan 1 ');
    write('Pembilang i :');readln(pemi);
    write('Penyebut i :');readln(penyI);
    writeln;
    write('Pecahan 2 ');
    write('Pembilang ii :');readln(pemII);
    write('Penyebut II: ');readln(penyII);
    writeln;
    writeln('maka hasil dari pertambahan ',pemi,'/',penyI,'+',pemii,'/',penyII,' adalah ',pemb(pemi,pemii),'/',peny(penyi,penyii));
readln;
end.


ARRAY
Setelah prosedur dan fungsi, beralih ke Array. Karena sudah masuk ke array, kode-kode yang sini mungkin terlihat lebih rumit dari sebelumnya…

Mencari angka kelipatan 3

Fungsi :Mencari angka kelipatan 3 dari sekumpulan angka yang diinputkan.
Hint: Masukan angka dan masukan -1 untuk berhenti, otomatis hasil akan ditampilkan.
Screen Shot :





uses crt;
 var a,b:array[1..10] of integer;
        i,j,k,l:integer;
begin
       {memasukan angka}
   j:=1;
   repeat
     write('angka ke-',j,': ');readln(a[j]);
      j:=j+1;
   until a[j-1]=-1;
   {menentukan mana yang kelipatan 3}
   for k:=1 to j do
     begin
        if a[k] mod 3=0 then
           b[k]:=a[k];
      end;
{Menampilkan mana yang kelipatan tiga}
  write('angka kelipatan 3 adalah : ');
  for i:=1 to (j-1) do
    begin
       if b[i]<>0 then
         write(b[i],', ');
     end;
  readln;
end.



Penjumlah Matrix

Fungsi : Menjumlahkan dua matriks 3x3 yang diinputkan
Hint: Masukan nilai matriks di tiap-tiap baris dan kolom.
Screen Shot :




uses crt;
 var m1,m2,mp:array[1..10,1..10] of integer;
       i,j,k,l:integer;
begin
{Menginput nilai matriks}
  writeln('Matriks ke 1');
  for i:=1 to 3 do
    for j:=1 to 3 do
       begin
          write('m1[',i,',',j,'] : ');readln(m1[i,j]);
       end;
  writeln;
  writeln('Matriks ke 2');
  for i:=1 to 3 do
       for j:=1 to 3 do
         begin
           write('m2[',i,',',j,'] : ');readln(m2[i,j]);
         end;
  writeln;
{jumlahkan}
 begin
  for i:=1 to 3 do
    for j:=1 to 3 do
       begin
          mp[i,j]:=m1[i,j]+m2[i,j];
       end;
 {lukis hasil penjumlahan}
 writeln('Hasil Penambahan = ');
 writeln;
    for i:=1 to 3 do
      begin
       writeln;
       for j:=1 to 3 do
         write(mp[i,j],' ');
      end;
readln;
end;
end.



Pendata Mahasiswa

Fungsi: Mendata data mahasiswa, atau apalah dengan array dan menampilkannya.
Hint: Intinya adalah membuat array di record.
Screen shot :




program mhsw;
uses crt;
type mahasiswa=record
               nama,nim,kelas:string;
               end;
var m:array[1..41] of mahasiswa;
       j,i:integer;

begin
write('Jumlah mahasiswa yang mendaftar : ');readln(j);
clrscr;
for i:=1 to j do
begin
writeln('Mahasiswa ',i,':');
write('Nama       : ');readln(m[i].nama);
write('Nim        : ');readln(m[i].nim);
write('Kelas      : ');readln(m[i].kelas);
  writeln;
  writeln;
  end;
clrscr;
writeln('==================================');
writeln;
writeln('DATA MAHASISWA KOMPUTOK');
writeln;
writeln('==================================');
for i:=1 to j do
begin
writeln('Mahasiswa ',i,':');
writeln('Nama       : ',m[i].nama);
writeln('Nim        : ',m[i].nim);
writeln('Kelas      : ',m[i].kelas);
writeln;
writeln;
end;
readln;
end.



Tabel Ajaib

Fungsi : Membuat tabel angka yang apabila nilai tabel dalam satu baris, kolom, dan diagonal di jumlahkan hasilnya akan sama.
Hint: jangan terlalu heran, semua sudah ada rumusnya. Tinggal masukan angka-angka saja.
Screen Shot :




uses crt;
var a,b,c,d,w,x,y,z,i,j:integer;
tab:array[1..4,1..4] of integer;
procedure lukistabel;
{Prosedur untuk menampilkan tabel}
var c:string;
begin
for i:=1 to 4 do
begin
writeln;
writeln;
for j:=1 to 4 do
begin
begin
  if (tab[i,j]>9) or ((tab[i,j]<0) and (tab[i,j]>-10))  then
 c:='    '
else if (tab[i,j]<10) and (tab[i,j]>-1) then
 c:='      '
  else c:='  ';
  end;
if j=1 then
write(tab[i,j],c)
  else if j=2 then write(tab[i,j])
else write(c,tab[i,j]);
end;
end;
end;
{program utama}
Begin
{memasukan nilai}
write('a = ');readln(a);
write('b = ');readln(b);
write('c = ');readln(c);
write('d = ');readln(d);
write('w = ');readln(w);
write('x = ');readln(x);
write('y = ');readln(y);
write('z = ');readln(z);
writeln('memproses.......');
delay(500);
{rumusnya ini}
tab[1,1]:=a-w;
tab[1,2]:=c+w+y;
tab[1,3]:=b+x-y;
tab[1,4]:=d-x;
tab[2,1]:=d+w-z;
tab[2,2]:=b;
tab[2,3]:=c;
tab[2,4]:=a-w+z;
tab[3,1]:=c-x+z;
tab[3,2]:=a;
tab[3,3]:=d;
tab[3,4]:=b+x-z;
tab[4,1]:=b+x;
tab[4,2]:=d-w-y;
tab[4,3]:=a-x+y;
tab[4,4]:=c+w;
{pemanggilan prosedur lukis tabel}
lukistabel;
readln;
end.


Fibbonaci Generator


Fungsi: Kode untuk Menghasilkan deret fibbonaci
Hint : Fibbonaci adalah deret yang angka selanjutnya adalah penjumlahan 2 angka sebelumnya.
Misal : 1 1 2 3 5 8 13 21 ….dst
Screen Shot




uses crt;
var a:array[1..1000] of longint;
i,k:integer;
begin
clrscr;
write('Input banyaknya fibbonaci: ');readln(i);

{fibbonacigenerator}
a[1]:=1;
a[2]:=1;
for k:=2 to i do
begin
a[k+1]:=a[k]+a[k-1];
end;
writeln;
writeln;

{menulis fibbonaci}
for k:=1 to i do
begin
write(a[k],' ');
end;
writeln;
readln;
end.



Iterasi
Nah, ini bagian perulangan. Tidak lebih rumit dari array, namun tidak sesederhana di sub bab fungsi dan prosedur.

Angka
Fungsi: Tak ada fungsi khusus, hanya menampilkan pola-pola angka saja…
Hint : Begitu jalan, langsung masukan angka saja, Jangan masukan angka terlalu kecil atau besar.
Screen Shot




uses crt;
var inp,i,a,t,r:integer;
begin
readln(inp);
t:=inp;
for i:=1 to inp do
  begin
for a:=1 to inp do
  write(a-t);
  writeln;
t:=t-1;
end;
readln;
end.



Jumlah Pangkat

Fungsi:  untuk menghasilkan deret pangkat, misal : 1, 4, 9, 16, 25 dst dan menjumlahkannya
Hint : Masukan jumlah deret pangkat yang akan ditampilkan untuk di jumlah…
Screen Shot




uses crt;
var k,jum:double;
i,n:longint;
begin
clrscr;
readln(n);
jum:=0;
for i:=1 to n do
begin
k:=sqr(i);
write(k:0:0);
  if i<>n then
write('+');
jum:=jum+k;
end;
write('=',jum:0:0);
readln;
end.


Tebak Angka

Fungsi:  Permainan Tebak angka, masukan angka rahasia dan suruh teman untuk menebaknya
Hint :  Permainan ini tidak akan asik bila dilakukan sendirian.
Screen Shot




uses crt;
var a,teb,c,d,rhs:integer;
begin
Write('Bilangan Rahasia : ');readln(rhs);
clrscr;
repeat
write('masukan Tebakan anda : ');readln(teb);
if (teb<>rhs) and (teb>rhs) then
writeln('Bilangan terlalu besar!')
else if (teb<>rhs) and (teb
writeln('bilangan terlalu kecil');
until (teb=rhs);
writeln('Tebakan Anda Benar!!!!, selamat!!!!');
readln;
end.

Z
Fungsi:  Melukis huruf Z dengan karakter ‘*’ sebesar jumlah perulangan yang di inputkan
Hint : Masukan angka untuk menentukan besar huruf Z
Screen Shot




uses crt;
var n,i,a:integer;
begin
readln(n);
for i:=1 to n do
begin
for a:=1 to n do
begin
  if (i=1) or (i=n) then
   write('#')
  else if (i<>1) and (i<>n) then
   begin
   if a+i=n then
     write('#')
     else
   write(' ');
   end;
     end;
     writeln;
     end;
readln;
end.





Program Pencari Pembagi

Program yang mungkin terlihat paling ribet, tapi sebenarnya alurnya sederhana. Berungsi untuk menampilkan pembagi dan hasil bagi bilangan bulat yang di masukan. Selain itu, disini juga bisa digunakan untuk menentukan bilangan mana yang prima atau bukan. Sebelumnya program ini sudah pernah di publish di artikel ini, namun saya tidak tampilkan source kodenya. Silahkan bila ingin langsung mencoba bisa langsung kesana.
Sebenarnya ada cacat di program ini, yaitu ada 2 perulangan disini. Yang satu untuk menentukan bilangan prima,  satunya lagi untuk menentukan pembagi. Sebenarnya 2 perulangan itu dapat dipangkas menjadi satu saja. Sehingga 2 perulangan menjadi tidak efisien. Kenapa harus 2?
Sejarahnya begini, awalnya saya menulis program ini iseng-iseng hanya untuk mencari yang mana bilangan prima. Lalu saya kembangkan lagi menjadi bisa menuliskan daftar bilangan pembagi, waktu itu, daripada repot mengedit perulangan untuk menentukan bilangan prima yang sudah mapan, saya membuat perulangan baru. Dan akhirnya program ini punya 2 perulangan yang strukturnya hampir mirip.
Tapi nampaknya tidak masalah, toh selisih waktu kalkulasinya hanya beberapa milidetik, bahkan untuk bilangan yang mencapai ratusan juta sekalipun. Mau edit lagi, rasanya malas……Berikut kodenya…….:
Hint: Sebelum di compile, buat dulu file bernama output.txt di folder yang sama dengan source code pembagi.




program pembagi;
uses crt;
var x,y,q,w,z,e,f,g:longint;
    l,a:string;
    out:text;
label k;

{prosedur untuk sekedar  merapikan hasil output}

procedure rapikan(s:longint;var t:string);
begin
if s<10 then
 t:='          '
 else if (s>9) and (s<100) then
 t:='         '
 else if (s>99) and (s<1000) then
 t:='        '
 else if (s>999) and (s<10000) then
 t:='       '
 else if (s>9999) and (s<100000) then
 t:='      '
 else if (s>99999) and (s<1000000) then
 t:='     '
 else if (s>999999) and (s<10000000) then
 t:='    '
 else if (s>9999999) and (s<100000000) then
 t:='   '
 else if (s>99999999) and (s<1000000000) then
 t:='  '
 else if (s>999999999) and (s<1000000000) then
 t:=' '
 else t:=' ';
end;

{program utama}
begin
textbackground(blue);
textcolor(Yellow);
clrscr;
assign(out,'output.txt');
append(out);
 gotoxy(3,1);writeln('+______________________________________________________+');
 gotoxy(3,2);writeln('|Copyright@2009, Xenovon, http://komputok.blogspot.com |');
 gotoxy(3,3);Writeln('+------------------------------------------------------+');
 writeln;
 writeln;
 gotoxy(3,5);writeln('Hint: Masukan angka 2 untuk keluar');
 gotoxy(3,6);writeln('      hasil juga dioutputkan ke output.txt');
 writeln;
 writeln;
 gotoxy(15,9);writeln('----[MENENTUKAN PEMBAGI SUATU BILANGAN BULAT]------');
 writeln;
 writeln;


{menuliskan ke output.txt}
 writeln(out);
 writeln(out);
 writeln(out);
 writeln(out,'+______________________________________________________+');
 writeln(out,'|Copyright@2009, Xenovon, http://komputok.blogspot.com |');
 Writeln(out,'+------------------------------------------------------+');
 writeln(out);
 writeln(out);
 writeln(out);
 writeln(out,'----[MENENTUKAN PEMBAGI SUATU BILANGAN BULAT]------');
 writeln(out);
 begin
{input bilangan yang akan di cari}
 k:
 write('masukan bilangan yang akan di cek : ');readln(x);writeln;

{error handling}
 if x<2 then goto k else

{pemeriksaan kondisi untuk keluar program, yaitu dengan menginput angka 2}
 if x=2 then
   begin
    writeln('2 adalah bilangan prima');
    writeln;
    write('Mau keluar?(y/x)');readln(l);
    writeln;
      if l='y' then exit else goto k;
   end;

{Menentukan apakah bilangan prima atau bukan}
 begin
  y:=1;
  repeat
   y:=y+1;
   q:=x mod y;
  until  (q=0);
 end;
if y=x then
 begin
  writeln(x,' adalah bilangan prima');writeln;
 writeln(out,x,' adalah bilangan prima');writeln(out);
 end
else
begin
     {apabila bukan prima, maka program menentukan pembagi yang mungkin}
 writeln('Pembagi dari ',x,': ');
 writeln('--------------------');
 writeln(out,'Pembagi dari ',x,': ');
 writeln(out,'--------------------');
 writeln(out);
 w:=1;
 repeat
  w:=w+1;
  e:=x mod w;
  if e=0 then
   begin
           {menuliskan pembagi & hasil bagi ke konsole dan ke output.txt}
   g:=x div w;
   rapikan(w,a);
   writeln(w,a,'--> ',x,'/',w,'= ',g);
   writeln(out,w,a,'--> ',x,'/',w,'= ',g);
   end;
 until  (w=x);
 writeln;
 writeln(out);
end;
goto k;
end;
close(out);
end.


Nah, sekian dulu….semoga bisa berguna.(AHP  07 Januari 2010, 16:10)

Selasa, 05 Januari 2010

Download Gratis Microsoft Office 2010 Legal

Microsoft menyediakan Office 2010 beta2 untuk publik secara Cuma-Cuma.  Memang tujuan microsoft adalah memperkenalkan versi betanya untuk di test oleh publik. Apabila sekedar ingin mencoba, dapat mengakses ke Ke sini . Oya, sebelumnya, kita harus mempunyai akun Windows Live dulu agar dapat mendownloadnya, Jika belum punya, pendaftaran dapat dilakukan di Sini  
Apabila sudah login akses ke Sini, Di halaman itu, pilih get it now yang ada di kanan atas, lalu pilih paket yang diinginkan. Dihalaman selanjutnya pilih download now. Di halaman yang muncul, pilih download now lagi. Dihalaman  selanjutnya, pilih paket yang diinginkan, lalu sekali lagi, pilih download now. Lalu tunggu hingga proses download selesai. File installernya berukuran sekitar 600 Mb. 
Jika sudah selesai di download, instal seperti biasa. Product key dapat di dapatkan di email yang dikirimkan oleh microsoft ke alamat email yang dipakai sebagai user name akun windows live, silahkan buka saja emailnya. Setelah instalasi, aktivasi via internet. Dan Office siap digunakan hingga oktober 2010.
Syarat minimun untuk menjalankan Office 2010 tidak tinggi-tinggi amat yaitu...


Processor  :500 megahertz (MHz)atau lebih tinggi.
Memory    : 256 MB Ram atau lebih tinggi
Hard Disk : 1.5 GB
Display      :1024x768 atau lebih tinggi

Intinya, kalau sebelumnya sudah lancar menjalankan Office 2007, Office 2010 pun harusnya bisa.

Kalau ingin Lihat Review Office 2010 bisa mengakses 



Senin, 04 Januari 2010

Linked List Dengan Pascal

Saat pertama kali membaca judul itu mungkin ada anggapan kalau postingan ini akan berisi penjelasan mendetail tentang bahasa planet tersebut, seperti postingan-postingan lainnya. Oke, mungkin disini saya akan menjelaskan sedikit tentang Linked List, tapi tidak terlalu mendetail. Karena saya juga belum begitu mengerti. Sederhananya, Linked list adalah daftar record sejenis yang satu sama lain dihubungkan dengan ponter sehingga membentuk data yang berantai, seperti array, cuman Linked List lebih dinamis, pengertian lengkapnya bisa dilihat di Wikipedia.
Oke…yang jadi fokus di postingan ini sebenarnya saya hanya ingin share contoh Linked List dalam bahasa pascal. Kodenya seperti ini :


PROGRAM LinkedList1;
CONST
  Header    ='------------ Menu Utama ------------';
  Separator ='------------------------------------';
TYPE
  DataString  = STRING[30];
  ListPointer = ^ListRecord;
  ListRecord  = RECORD
                  DataField : DataString;
                  NextField : ListPointer
                END;
VAR
  FirstPointer : ListPointer;
PROCEDURE BuildList(VAR FirstPointer : ListPointer;
                        DataItem     : DataString);
VAR
  ToolPointer : ListPointer;
BEGIN
  NEW(ToolPointer);
  ToolPointer^.DataField := DataItem;
  ToolPointer^.NextField := FirstPointer;
  FirstPointer:=ToolPointer
END;
PROCEDURE ReadList(FirstPointer : ListPointer);
VAR  CurrentPointer : ListPointer;
BEGIN
  CurrentPointer := FirstPointer;
  WHILE CurrentPointer <> NIL DO
     BEGIN
       WRITELN(CurrentPointer^.DataField);
       CurrentPointer := CurrentPointer^.NextField
     END;
  WRITELN
END;
PROCEDURE GetData(VARFirstPointer:ListPointer);
VAR  Name:DataString;
BEGIN
  WRITELN('Masukkan nama yang akan ditambahkan lalu tekan ENTER jika selesai.');
  READLN(Name);
  WHILE LENGTH(Name) <> 0 DO
  BEGIN
     BuildList(FirstPointer,Name); READLN(Name)
  END
END;
PROCEDURE DisplayInfo(FirstPointer:ListPointer);
BEGIN
   WRITELN(Separator);
   WRITELN('Isi dari daftar:');
   ReadList(FirstPointer);
   WRITE('Tekan sembarang tombol untuk lanjut...');
   READLN
END;
procedure cetak(firstpointer:listPointer);
var jejek:text;
    CurrentPointer : ListPointer;
begin
assign(jejek,'gundulmu.txt');
rewrite(jejek);
writeln(jejek,'Tertulis dengan Indah sebagai berikut :');
writeln(jejek);
Writeln(jejek,separator);
Writeln(jejek,'ISi dari daftar');
writeln(jejek);
CurrentPointer := FirstPointer;
  WHILE CurrentPointer <> NIL DO
     BEGIN
       WRITELN(jejek,CurrentPointer^.DataField);
       CurrentPointer := CurrentPointer^.NextField
     END;
writeln;
writeln('Data telah di tulis ke gundulmu.txt, tinggal di lihat saja...');
readln;
close(jejek);
end;
PROCEDURE Menu;
VAR  Option : INTEGER;
BEGIN
  WRITELN(Header);
  WRITELN('1. Simpan data pada daftar.');
  WRITELN('2. Tampilan daftar.');
  Writeln('3. Tulis data ke teks ');
  WRITELN('4. Keluar.');
  WRITELN(Separator);
  WRITE('Pilihan --> ');
  READLN(Option);
  CASE Option OF
     1 : GetData(FirstPointer);
     2 : DisplayInfo(FirstPointer);
     3 : cetak(firstpointer);
     4 : exit;
  END;
  Menu
END;
BEGIN
  FirstPointer := NIL;
  menu
END.


Nah, Pusing? Saya juga….



Tapi jangan salah paham dulu, kode ini bukan saya yang buat. Saya hanya memodifikasi sedikit agar dia bisa menulis ke file teks. Mengenai alur program, masih saya pahami (dan sejak kemarin ngga paham-paham). Kode ini saya posting, siapa tahu ada yang membutuhkan listing program Linked List, entah untuk di pelajari, di utak-atik, memperbaiki nilai mata kuliah, atau hanya sekedar melampiaskan dendam masa lalu, saat masih menjadi mahasiswa dengan membanting kode ini.

Mungkin ada yang paham code ini? Silahkan dengan iklas di jelaskan, saya sedang butuh itu justru…..

Kalo yang ingin file *.pas, klik

Ok, sekian dulu semoga berguna………(AHP, 4 Januari 2010, 3:15)

Sabtu, 02 Januari 2010

Teracopy: Kopi data dengan mudah

Tiap hari, berapa sering anda menyalin file? Sering bukan. Entah itu menyalin file-file kecil, besar, sedikit ataupun banyak. Ketika menyalin file dalam ukuran kecil dalam jumlah sedikit mungkin tidak ada masalah yang timbul, semuanya berjalan lancar. Tapi bagaimana apabila yang di salin adalah file dengan ukuran jumbo atau jumlahnya banyak. Dengan fasilitas standar windows, kadang banyak masalah yang timbul, seperti lamanya waktu penyalinan, kegagalan proses, ketidakkonsistenan perkiraan waktu selesai dan sebagainya.


Jendela Teracopy saat sedang menyalin
Lupakan semua itu dengan Teracopy. Teracopy akan menggantikan fasilitas salin file standar milik windows. Dengan Teracopy, apabila pengguna menyalin file, jendela yang muncul bukan jendela milik windows, melainkan jendela Teracopy. Tentunya apa yang ditampilkan Teracopy lebih komplit daripada milik windows. Proses penyalinan file ditampilkan lebih detail, sangat berguna ketika sedang menyalin file besar atau dalam jumlah banyak.

Banyak hal yang membedakan tampilan jendela status penyalinan milik Teracopy dengan milik windows. Seperti dua buah progress bar yang menunjukan sejauh mana proses penyalinan sudah dilakukan. Disekitar progress bar dilengkapi dengan kecepatan transfer data, total ukuran file, dan jumlah file yang dicopy. Selain itu, Teracopy juga menampilkan list file-file yang akan di salin, lengkap dengan status dan detailnya. Apakah file tersebut sudah di copy atau belum, bisa di ketahui lewat list tersebut.

Apabila ada kegagalan pada proses penyalinan satu file, proses tidak akan di hentikan, tapi file tersebut bisa di skip, dan dilanjutkan menyalin file lainnya. Bagaimana apabila di lokasi folder tujuan ada nama file yang sama? Di Teracopy, ada empat pilihan apa bila itu terjadi, meliputi overwrite, rename, skip dan cancel. Ingin mengerjakan tugas lain di tengah-tengah proses penyalinan file? Gampang, tekan saja tombol pause, proses penyalinan akan dihentikan sementara. Selain penyalinan file, Teracopy juga mendukung proses penghapusan dan pemindahan file.