PENDEKLARASIAN VARIABEL PADA VISUAL PROLOG

19
PENDEKLARASIAN VARIABEL PADA VISUAL PROLOG Variabel pada visual prolog dideklarasikan pada bagian facts, cara pendeklarasikan sebagai berikut Untuk integer x:integer:=0. Y:integer:=0. Untuk string s: string:=””. dan untuk pemanggilannya sendiri, sebuah variabel pada visual prolog dipanggil dengan cara sebagai berikut.. misal, kita ingin menambahkan variabel x dengan nilai 50.. x:=x+50, dan jika ingin ditambahkan dengan variabel lain x:=x+y,

Transcript of PENDEKLARASIAN VARIABEL PADA VISUAL PROLOG

PENDEKLARASIAN VARIABEL PADA VISUAL PROLOG

Variabel pada visual prolog dideklarasikan pada bagian facts, cara pendeklarasikan sebagai berikut

Untuk integer

x:integer:=0.Y:integer:=0.

Untuk strings: string:=””.dan untuk pemanggilannya sendiri, sebuah variabel pada visual prolog dipanggil dengan cara sebagai berikut.. misal, kita ingin menambahkan variabel x dengan nilai 50..x:=x+50,

dan jika ingin ditambahkan dengan variabel lainx:=x+y,

Perlu diingat, harus menggunakan := (titik dua sama dengan). Dan jika string sama dengan bahasa pemrograman pada umumnya, nilai diikuti dengan tanda kutipDan perlu di ingat juga statement pada visual prolog selalu diakhiri dengan tanda (,) (koma)..kecuali pada akhir method, menggunakan tanda (.) titik, seperti contoh berikut.. 

 onTimer(_Source, _TimerId):-if (d>6) thend:=1end if,

                     dadu_ctl:setText(tostring(d)),                     d:=d+1.

d:=d+1. Merupakan akhir method, sehingga menggunakan titik

dadu_ctl:setText(tostring(d)), merupakan statement dalam blok sehingga diakhiri dengan koma

d:=1 merupakan statement didalam if, dan di akhir bagian if, sehingga dideklarasikan tampa , koma ataupun . titik lebih jelasnya di bahas pada bagian if (pengkondisian visual prolog)

PERULANGAN FOR PADA VISUAL PROLOG

pada program diatas, pengocokan dadu menggunakan foreach untuk perulangannya, dan menggunakan timer untuk menggerakan perputaran

foreach, dan dibawah ini yang dibahas hanya untuk pembuatan foreach.

Perulangan pada visual prolog sama seperti perulangan pada bahasa pemrograman pada umumnya, terdapat beberapa jenis seperti for, while dan until. Namun untuk for pada visual prolog, memiki nama yang berbeda yaitu foreach, berikut stetement foreach pada visual prolog.

foreach I=std::fromTo(1,6) do edit_ctl:setText(tostring(I))end foreach.

Penjelasan : foreach I=std::fromTo(1,6) do %artinya dilakukan perulangan dari 1 sampai 6, dan nilainya ditampung kedalam variabel (I) dan akan digunakan pada statement edit_ctl:setText(tostring(I)) nilai 1-6 akan tercetak pada edit_ctl, namun yang akan terlihat dicetak hanya angka 6, saja karena angka1-5 telah tertiban oleh 6, intinya dengan coding diatas kita telah melakukan perulangan sebanyak 6 kali, jika ingin melihat secara jelas, bisa dilihat di program selanjutnya 

foreach I=std::fromTo(1,6) dostdIO::write (“coba”), 

          stdIO::write (I)        end foreach.

Pada bagian ini akan terlihat lebih jelas perulangannya karena nilai I akan tercetak pada message.End foreach. sendiri merupakan akhir dari perulangan foreach padavisual prolog, 

Dan perlu diingat jika didalam blok foreach ada beberapa statement, jika masih ada statement selanjunya seperti stdIO::write (“coba”), maka kita harus menggunakan (,) koma dibagian akhir. Dan untuk statement terakhir sebelum end foreach, ditulis tanpa tandakoma atau titik.

Sedangkan untuk perulangan while pada visual prolog, menggunakan statement sebagai berikut, saya mendapatkan coding berikut dari forum, dan seya sendiri belum mencobanya, dan kurang lebih seperti ini

predicates      do_while:(integer Loop_Condition)procedure(i).clauses     do_while(10):-!.        % Put condition that should end the loop first .         do_while(N):-          stdIO::write (N),    % Do your job here           NewN=N+1 ,          % change Loop conditional Value           do_while(NewN).    % Loop Return

KONDISI IF dan IF BERSARANG PADA VISUAL PROLOG

 If pada visual prolog memiliki struktur yang sama pada bahasa permorgraman pada umumnya, namun penulisannya sedikit membingungkan karena tidak seperti bahasa pemrograman lainnya,

seperti java yang akhir dan awal statement menggunakan { } kurungkurawal, atau visual basic menggunakan then dan end if. 

If pada visual prolog lebih mirip dengan if pada visual basic, namun ada ketentuan khusus seperti penmpatan koma dan tanpa koma di bagian tertentu. Langsung saja kita lihat contoh sederhananya.

Cobaif():-    if pemain2="B" then        pemain1:="A"    end if.

Pada contoh di atas, contoh untuk if yang terdapat dalam sebuaah method, kondisinya adalah jika pemain 2 memiliki nilai B, maka pemain1 akan diberi nilai A, pada statement pemain1:="A" tidak di akhiri dengan tanda (,) koma melainkan tanpa tanda, karena posisinya di bagian akhir sebelum end if.Berbeda jika ada beberapa statement didalamnya..seperti contoh berikut..

Cobaif():-    if pemain2="B" then        pemain1:="A",

pemain3:=”C”,x:=10

    end if.

Jika ada beberapa statement, maka penulisan statement sebelumnya diakhiri dengan tanda (,) koma. Dan statement terakhir tepat sebelum end if, diakhiri tanpa tanda koma.Akhir penulisan end if, jika dalam satu method cobaif():- terdapat beberapa kondisi if, seperti contoh berikut..

Cobaif():-    if pemain2="B" then         %if pertama        pemain1:="A",

pemain3:=”C”,

x:=10    end if,

    if pemain3="A" then         %if kedua        pemain1:="C",

pemain3:=”B”,x:=10

    end if.

maka penulisan akhir if pertama menggunakan (,) koma dan if terakhir di akhiri dengan tanda (.) titik, if diatas bukan merupakan if else ataupun if bersarang, melainkan ada dua kondisipada satu method.

Karena jika if else if else -> jika salah satu kondisi (konsisi teratas) terpenuhi, maka kondisi teratas di eksekusi, kondisi dibawahnya tidak akan tereksekusi.

sedangkan jika terdapat 2 atau lebih if -> jika kondisi teratas terpenuhi akan di eksekusi, jika kondisi dibawah juga terpenuhi, maka kondisi kedua juga akan di eksekusi tidak berdasarkan kondisi diatasnya memenuhi kondisi atau tidak.

Sedangkan jika if bersarang -> jika kondisi (1) teratas terpenuhi, maka akan mengeksekusi kondisi (2) didalamnya lagi, dan jika kondisi didalamnya ke (3) terpenuhi juga, maka akan lanjut mengeksekusi, dan jika kodisi (1) sudah tidak terpenuhi, maka kondisi (2) dan (3) tidak akan dicocokkan kondisinya.

Untulk lebih jelasnya, saya lampirkan statement dan penjelasannyasebagai berikut.    if pemain2="B" then        pemain1:="A",        xx:=560,        temp:=player1

    else        pemain2:="A",        xx:=565,

        temp:=player2    end if.

Pada statement di atas merupakan if –else, dimana statement sebelum else dan sebelum end if ditulis tanpa diakhiri dengan tanda koma,

Jika untuk statement if – elseif – else- end if di tulis sebagai berikut.

    if pemain2="B" then         pemain1:="A",        xx:=560,        temp:=player1

    else if         pemain2:="A",        xx:=565,        temp:=player2else pemain3:="A",        xx:=570,        temp:=player3end if end if.

Setiap ada penambahan else if, maka ditambahkan juga end if di bagian akhir, penulisan end if tanpa diakhiri tanda koma. Seperticontoh diatas.

Jika untuk statement if bersarang di tulis sebagai berikut.    if pemain2="B" then %if pertama        pemain1:="A",        xx:=560,        temp:=player1,     if %if bersarang didalam if pertama (if kedua)         pemain2:="A",         xx:=565,

         temp:=player2else %else untuk (if kedua) pemain3:="A",

         xx:=570,         temp:=player3end if end if.

Dimana bedanya..? sekilas memang tampak mirip, namun dalam if bersarang penulisan statement sebelum if kedua, menggunakan tandakoma, temp:=player1, jika tanpa tanda koma akan memiliki arti yang berbedadan if kedua ditulis tanpa menggunakan else, karena jika menggunakan else akan memiliki arti yang berbeda.

MEMBUAT BUTTON dan TEXT CONTROL, PADA VISUAL PROLOG

Membuat button pada visual prolog cukup sederhana, tinggalklik button pada bagian control, dan tarik ke frame, dan untuk mengaktifkannya tinggal klik 2 kali button yang ingin di aktifkan, maka akan muncul lembar kerja penulisan codingnya namafile.pro, dan tampil coding sebagai berikut..

predicates    onPushButton1Click : button::clickResponder.clauses    onPushButton1Click(_Source) = button::defaultAction.

Jika ingin mengaktifkannya, maka rubah tanda akhir button::defaultAction. Menjadi button::defaultAction:- titik diganti dengan titik dua dan strip, selanjutnya masukkan method dan fungsi dari button tersebut, seperti contoh di bawah.

predicates    onMainkanClick : button::clickResponder.clauses    onMainkanClick(_Source) = button::defaultAction:-  k:=1, % pendeklarasian variabel    player(). % pemanggilan method player (jangan lupa diakhir bagian di tulis tanda titi.

Demikian juga dengan textxontrol, radiobutton yang lainnya, untukradio button agak sedikit berbeda, akan dibahas pada judul yang lain

MEMBUAT dan MENGAKTIFKAN RADIO BUTTON PADA VISUAL PROLOG

Membuat radio button pada visual prolog cukup sederhana, tinggal klik radio button pada bagian control, dan tarik ke form, dan untuk mengaktifkannya masuk codingnya namafile.pro dan cari nama radio button yang telah kita buat, kita bisa mencarinya pada bagian facts,

facts    p4 : radioButton.

Ingat2 denga jelas namanya, karena akan kita gunakan untuk melakukan berbagai optimasi, dari mulai mengaktifkan, menonaktifkan, mengkondisikan, sampai melakukan perpindahan posisi.

Yang pertama adalah mengaktifkan radio button ketika suatu kondisi terpenuhi, sebagai contoh dibawh ini..

if player1=”A” thenp4:setRadioState(radioButton::checked())

elsep4:setRadioState(radioButton::unchecked())

end if

ketika kondisi if terpenuhi, maka radio button p4 akan di aktifkan (menggunakan checked, dan jika ridak maka akan dinonaktifkan (menggunakan unchecked)

pada bagian diatas, jika memenuhi kondisi, maka di aktifkan, padabagian ini sebaliknya yaitu Jika radio button di klik atau di aktifkan, maka akan mengeksekusi suatu kondisi.Berikut statementnya..

RadioState= radioButton1_ctl:getRadioState(),ifRadioState= radioButton::checked()then    stdio::write("YA")else    stdio::write("TIDAK")end if.

MEMBUAT TIMER VISUAL PROLOG

Membuat timer pada visual prolog cukup sederhana, cukup mengaktifkan fungsing onTimerListener dan memasukkan sedikit coding, fungsi dari timer sendiri bisa dimanfaatkan untuk berbagai keperluan, seperti animasi, perputaran nilai, pergerakankoordinat, dll..tergantung kemampuan kita dalam membuat kondisi untuk timer.

Pertama-tama, buka propertis project, kemudian pilih tab event, seperti gambar diatas.Kemudian cari TimerListener, dan aktifkan timerListener menjadi OnTimer seperti gambar diatas.Maka secara otomatis, akan tampil source code predicates dan clauses pada project kita..source code yang tampil adalah sebagaiberikut

predicates    onTimer : window::timerListener.clauses    onTimer(_Source, _TimerId).

Selanjutnya modifikasi source code menajadi

predicates    onTimer : window::timerListener.clauses    onTimer(_Source, _TimerId):-       not(isErroneous(timerNum)), !,                           onTimer(_Source, _TimerId). 

Selanjutnya kita deklarasikan variabel baru yang nantinya akan digunakan untuk mengaktifkan timer,

facts    timerNum : timerID := erroneous.    delay : integer := 25.

Kita buat pada bagian facts, timerNum : timerID := erroneous. Untuk pendeklarasian fungsi timer, dan nilai delay : integer := 25. Sebagai delay waktu untuk timer, semakin besar nilainya semakin lambat delay timer, dan semakin kecil, maka akan semakin cepat delay timer.

Selanjutnya untuk mengaktifkan timer, digunakan statement berikut, Bisa kita tempatkan didalam blok button, untuk mengaktifkan timer.

            timerNum := timerSet(delay).   

Dan untuk menghentikan timer, menggunakan statement berikut            timerKill(timerNum),            timerNum := erroneous.  

Dan untuk source code membuat dadu berputar 1 sampai 6, source codenya sebagai berikut

    onTimer(_Source, _TimerId):-       not(isErroneous(timerNum)), !,

if (d>6) thend:=1end if,                     dadu_ctl:setText(tostring(d)),                     d:=d+1.                           onTimer(_Source, _TimerId). 

Kondisi diatas jika dadu lebih dari 6, maka akan megembalikan nilainya menjadi 1. 

LALU GIMANA MEMBUAT TIMER LEBIH DARI 1 DALAM 1 FORM...???

caranya sederhana, tapi agak ribet.. berikut langkah2nya..

pertama, buat blok timer dengan nama yang berbeda dari timer yangsebelumnya kita buat..

    onTimer2(_Source, _TimerId):-       not(isErroneous(timerNum2)), !,if (d>6) thend:=1end if,                     dadu_ctl:setText(tostring(d)),                     d:=d+1.                           onTimer2(_Source, _TimerId). 

selanjutnya ditambahkan pendeklarasian variabel baru untuk timer2..

facts    timerNum2 : timerID := erroneous.          % timer 1    delay : integer := 25.                            % timer 1

    timerNum2 : timerID := erroneous.          % timer2

    delay2 : integer := 25.                           % timer2 jika delaynya berbeda

Selanjutnya untuk mengaktifkan timer, sama seperti sebelumnya, namun kali ini ditambahkan statement addTimerListener

            addTimerListener(onTimer2),           % penambahan statement            timerNum2 := timerSet(delay).   

Dan untuk menghentikan timer yang ke-dua, menggunakan statement berikut            timerKill(timerNum2),            timerNum2 := erroneous.  

LALU GIMANA KALAU MENGGUNAKAN 2 FORM DENGAN TIMER YG BERBEDA..?

tinggal lakukan langkah diatas, namun di tempatkan di source codeform yang kedua.

MEMASUKKAN BACKGORUND ATAU GAMBAR PADA VISUAL PROLOG

Untuk memasukkan gambar kedalam form visual prolog, pertama-tama buka propertis, kemudian pilih tab event, dan cari paintResponder, lalu aktifkan menjadi OnPaint, maka secara otomatis akan tampil source code sebagai berikut

predicates    onPaint : drawWindow::paintResponder.clauses    onPaint(_Source,_Rectangle, GDI).

Selanjutnya lakukan modifikasi menjadi coding berikut..

predicates    onPaint : drawWindow::paintResponder.clauses

    onPaint(_Source,_Rectangle, GDI):-    GDI:clear(color_white),    if isErroneous(mem_pic),        Dir= directory::getCurrentDirectory(),        FileName=string::concat(Dir,"\\ular.bmp"),        file::existFile(FileName) then            try                mem_pic:=vpi::pictLoad(fileName(FileName),1024,550,0x0020)            catch _ do                succeed()            end try    end if,    if not(isErroneous(mem_pic)) then        GDI:pictdraw(mem_pic,pnt(0,0),rop_SrcCopy)    end if.  

Selanjutnya aktifkan variabel mem_pic pada bagian facts

factsmem_pic:picture:=erroneous.

Untuk memasukkan gambar, buat gambar dengan format bmp dan disimpan ke folder EXE pada project kita..ingat.. folder EXE, kemudian ganti ular.bmp menjadi nama gambar yang kita buat.

        FileName=string::concat(Dir,"\\ular.bmp"),  %ganti ular bmp

Pada contoh diatas menggunakan bmp, agar gambar background lebih bagus, karena jika menggunakan jpg resolusinya kurang baik.

Selanjutnya untuk menentukan ukuran, edit statement berikut

                mem_pic:=vpi::pictLoad(fileName(FileName),1024,550,0x0020)

1024 merupakan panjang, dan 550 lebarnya, jadi sesuaikan dengan gambar yang kita miliki. 0x0020 sepertinya skla pixel, tidak perlu dirubah

Tips selanjutnya..jika kita ingin membuat background yang sesuai dan sangat pas dengan program yang kita buat.. caranya ialah.. jalankan program yang kita buat, kemudian printscreen, dan dicopyke aplikasi desain grafis layout seperti adobe illustrator, atau coreldraw..

Pada contoh diatas saya menggunakan coreldraw, dan printscreen sudah dicopy ke lembar kerja coreldraw, kemudian dibuat gambar yang sesuai dengan ukuran printscreen aplikasi, gambar sesuai dengan keinginan kita, untuk project yang saya buat, hingga hasilnya seperti ini.

Hasil di atas sudah sesuai dengan ukuran layar, untuk merubahnya menjadi file bmp, di corel draw

tekan ctrl+E pada keyboard, kemudian ada pilihan file save type, kita pilih bmp.

SELESAI.. maka gambar bisa kita masukkan ke visual prolog, untuk menyesuaikan tampilannya, edit pada codingmem_pic:=vpi::pictLoad(fileName(FileName),1024,550,0x0020)

Panjang dan lebarnya sesuaikan dengan kebutuhan.

TEXTFIELD ATAU EDIT CONTROL PADA VISUAL PROLOG

Penulisan textfield atau edit control sangan sederhana, namun jika tidak tahu cara penulisannya, kita nggak bisa buat apa-apa..

                     edit_ctl:setText(y),

statement diatas untuk menaruh variabel y bertipe data string kedalam edit_ctl,

                     edit_ctl:setText(tostring(x)),

statement diatas untuk menaruh variabel x bertipe data integer kedalam edit_ctl,

    yy :=  edit_ctl:getText(),

statement diatas untuk mengambil nilai edit_ctl, dengan type datastring kedalam variabel yy

    xx := toTerm(edit_ctl:getText()),

statement diatas untuk mengambil nilai edit_ctl, dengan type datainteger kedalam variabel xx

edit_ctl:setEnabled(true),   edit_ctl:setEnabled(false),

statement diatas digunakan untuk mengaktifkan atau menonaktifkan textfield

PEMBUATAN KOORDINAT PADA VISUAL PROLOG

Koordinat pada visual prolog, biasanya lebih digunakan untuk game, terutama untuk pergerakan dari obejek yang ingin kita gerakkan, entah ketika button di klik, radio button di klik, atauketika timer diaktifkan. Berikut cara pendeklarasiannya..

p1_ctl:setPosition(10, 20),

statement diatas digunakan untuk menggerakkan posisi dari radio button atau textfield. nilai 10 dan 20 bisa dimodifikasi dengan variabel yang kita buat,

p1_ctl:setPosition(x, y),

nilai x dan y sifatnya dinamis, sehingga posisi akan berubah sesuai dengan perubahan nilai variabel yang kita lakukan.

X digunakan sebagai pergerakan posisi objek ke kanan dan ke kiri.y digunakan sebagai pergerakan posisi objek ke atas dan ke bawah.

MEMBUAT COMMOND DIALOG/KOTAK PEMBERITAHUAN PADA VISUAL PROLOG

Untuk membuat commond dialog seperti diatas, dapat menggunakan statement dibawah..

vpiCommondialogs::note("Banyaknya pemain maksimal 4"),

singkat, karena yang saya tahu baru ini..