Sunday, December 12, 2010

Pengertian Prolog

Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.

Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl sebagai teknik pencariannya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebut heuristik (heutistic) dengan menggunakan pohon logika.


Contohnya adalah pembuatan menara hanoi, dimana memindahkan sebuah balok atau N disk pada ujung kiri ke ujung kanan menggunakan perantara tengah tersebut. Dimana akhirnya akan sama dengan posisi semula. Contoh pada gambar adalah N=3 disk (balok).


Source code :
  1. /****************************************************************/
  2. /* TOWERS OF HANOI */
  3. /* =============== */
  4. /* */
  5. /* Call the predicate hanoi with the number of discs, you want. */
  6. /****************************************************************/
  7. DOMAINS
  8. TIME, ROW, COL, NUMBER = INTEGER

  9. PREDICATES
  10. hanoi( NUMBER )
  11. move( NUMBER, NUMBER, ROW, ROW, ROW, COL, COL, COL )
  12. inform( NUMBER, NUMBER, ROW, ROW, COL, COL )
  13. makepole( NUMBER, NUMBER, COL)
  14. dd(TIME)
  15. move_vert(COL,NUMBER,ROW,ROW)
  16. move_horizon(ROW,NUMBER,COL,COL)
  17. keyact(CHAR)
  18. gendelay
  19. showdelay
  20. nondeterm for(INTEGER,INTEGER,INTEGER)
  21. fill

  22. DATABASE
  23. determ delay(INTEGER)

  24. CLAUSES
  25. for(X,X,_).
  26. for(I,A,B):-B>A,A1=A+1,for(I,A1,B).
  27. fill:- % fill current window.
  28. makewindow(_,_,_,_,_,_,ROWS,COLS),
  29. RR=ROWS-1, CC=COLS-1,
  30. for(COL,0,CC),for(ROW,0,RR),
  31. scr_char(ROW,COL,'°'),
  32. fail.
  33. fill.
  34. gendelay :- inkey(CH), keyact(CH),showdelay,!.
  35. gendelay :- delay(DELAY),!, dd(DELAY).
  36. gendelay.
  37. dd(0):-!.
  38. dd(N):-N1=N-1,dd(N1).
  39. keyact('+'):-
  40. retract(delay(VAL)),VAL1=VAL+1+VAL div 10,
  41. VAL1<=25000,!,assert(delay(VAL1)).
  42. keyact('+'):-!,assert(delay(25000)).
  43. keyact('-'):-
  44. retract(delay(VAL)),VAL1=VAL-1-VAL div 10,
  45. VAL1>=0,!,assert(delay(VAL1)).
  46. keyact('-'):-!,assert(delay(0)).
  47. keyact(_):-retractall(delay(_)),assert(delay(0)).
  48. showdelay:-
  49. delay(DELAY),gotowindow(2),
  50. clearwindow,
  51. write("Delay= ",DELAY),gotowindow(1).
  52. hanoi(N) :-
  53. N<=13,!,
  54. textmode(ROWS,COLS),
  55. makewindow(4,7,0,"",0,0,ROWS,COLS),
  56. fill,
  57. ROWS1=ROWS-1,
  58. makewindow(3,40,0,"",ROWS1,0,1,COLS),
  59. write(" + Improve delay, - Lower delay, Other keys removes delay"),
  60. VB=2+6*N,VH=3+N,CV=N, CM=3*N, CH=5*N,
  61. STCOL=(79-6*N) div 2, STROW=(25-VH) div 2 -1,
  62. STROW1=STROW+1+VH,
  63. makewindow(2,74,0,"DELAY",STROW1,34,1,13),
  64. makewindow(1,7,52,"Hanoi",STROW,STCOL,VH,VB),
  65. retractall(delay(_)),
  66. makepole(N,N,CV),
  67. assert(delay(100)),
  68. showdelay,
  69. move(N,N,0,0,0,CV,CM,CH),
  70. cursor(0,0), write("Press any key"),readchar(_).
  71. hanoi(_):- write("maximum 13 disc's\n").
  72. move(H,1,HA,_,HC,CA,_,CH):-!,inform(H,1,HA,HC,CA,CH).
  73. move(H,N,HA,HB,HC,CA,CB,CC):-
  74. N1=N-1,
  75. HA1=HA+1,
  76. move(H,N1,HA1,HC,HB,CA,CC,CB),
  77. inform(H,N,HA,HC,CA,CC),
  78. HC1=HC+1,
  79. move(H,N1,HB,HA,HC1,CB,CA,CC).
  80. inform( H, N, H1, H2, C1, C2 ) :-
  81. C11=C1-N, C22=C2-N, NN=2*N,
  82. H11=H-H1, H22=H-H2,
  83. move_vert(C11,NN,H11,1),
  84. move_horizon(1,NN,C11,C22),
  85. move_vert(C22,NN,1,H22).
  86. makepole(_,0,_):-!.
  87. makepole(H,N,C):-HH=H-N,inform(H,N,HH,HH,C,C), N1=N-1, makepole(H,N1,C).
  88. move_vert(_,_,H,H):-!.
  89. move_vert(COL,SIZE,H1,H2):-H1
  90. H11=H1+1,
  91. field_attr(H11,COL,SIZE,112),
  92. field_attr(H1,COL,SIZE,7),gendelay,gendelay,
  93. move_vert(COL,SIZE,H11,H2).
  94. move_vert(COL,SIZE,H1,H2):-H1>H2,!, /* move down */
  95. H11=H1-1,
  96. field_attr(H11,COL,SIZE,112),
  97. field_attr(H1,COL,SIZE,7),gendelay,gendelay,
  98. move_vert(COL,SIZE,H11,H2).
  99. move_horizon(_,_,H,H):-!.
  100. move_horizon(ROW,SIZE,C1,C2):-C1
  101. C11=C1+1, HH=C1+SIZE,
  102. field_attr(ROW,HH,1,112),
  103. field_attr(ROW,C1,1,7),gendelay,
  104. move_horizon(ROW,SIZE,C11,C2).
  105. move_horizon(ROW,SIZE,C1,C2):-C1>C2,!, /* move left */
  106. C11=C1-1, HH=C11+SIZE,
  107. field_attr(ROW,C11,1,112),
  108. field_attr(ROW,HH,1,7),gendelay,
  109. move_horizon(ROW,SIZE,C11,C2).

  110. GOAL hanoi(12).
Sumber : http://id.wikipedia.org/wiki/Prolog

Tuesday, December 7, 2010

Definisi html

HTML (Hyper Text Markup Languange) adalah bahasa pengkodeaan untuk menghasilkan dokumen-dokumen hypertext untuk digunakan di World Wide Web. HTML terlihat seperti bahasa pengkodean lama, yang di awali dan diakhiri dengan kode-kode html dimana menunjukkan bagaimana keluarannya pada saat di jalankan pada sebuah web browser.
6.2 Program Editor HTML

Untuk membuat aplikasi web, dalam hal ini menggunakan HTML , maka kita membutuhkan suatu editor guna mengetikkan,mengedit atau menyimpan dokumen-dokumen HTML. Editor untuk memdesain suatu web dibagi 2 yaitu yang bersifat text murni dan yang WYSIWYG (Graphic) Editor untuk text, anatara lain Notepad dan Ultra Edit. Sedang editor WYSIWYG adalah Netscape dan Front Page.
6.3 Struktur Dasar HTML
Seperti umumnya dokumen lain, dokumen HTML terdiri dari teks-teks dan bahkan lebih dari dari itu. Dokumen HTML juga dapat mengandung suatu gambar, suara, ataupun video. Satu hal yang membedakan dokumen HTML dengan dokumen-dokumen lainnya adalah adanya elemen-elemen HTML beserta tag-tagnya. Elemen dan tag HTML berfungsi untuk menformat atau menandai suatu bagian tertentu dari dokumen HTML dan juga untuk menentukan struktur bagian tersebut dalam dokumen HTML. Elemen dan Tag inilah yang merupakan ciri utama dari suatu dokumen HTML. Secara garis besar, untuk menulisakn sebuah dokumen HTML dibutuhkan kerangka penulisan dengan tag-tag dasar sebagai berikut HTML, HEAD,TITLE dan BODY.

1.1 Komponen Internet
Komponen-komponen yang ada dalam internet beranaeka ragam menurut sifat maupun manfaatnya. Komponen yang dimaksud bisa berupa layanan internet, piranti, utility atau suatu sistem tertentu di internet. Seiring perkembangannya maka komponen-komponen ini pun berubah-ubah jumlahnya setiap ssaat. Hanya saja terdapat 3 tiga komponen utama yang paling banyak dipakai yaitu, Telnet, FTP dan Mail. Telnet
Merupakan suatu utility untuk dapat mengendalikan komputer dari komputer lain dengan menggunakan perintah text command.
FTP (File Transfer Protocol)
Digunakan untuk mengirim file/data (upload) ke suatu server atau mengambil file/data (download) dari server
Mail
Digunakan untuk bekirim pesan/surat secara elekrtonik menggunakan komputer sehingga disebut Electronic Mail (E-mail)