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 { } kurung kurawal, 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.
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",
pemain1:="A",
pemain3:=”C”,
x:=10
end if.
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",
pemain1:="A",
pemain3:=”C”,
x:=10
end if,
end if,
if pemain3="A" then %if kedua
pemain1:="C",
pemain1:="C",
pemain3:=”B”,
x:=10
end if.
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 kondisi pada 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
penjelasannya sebagai berikut.
if pemain2="B" then
pemain1:="A",
xx:=560,
pemain1:="A",
xx:=560,
temp:=player1
else
else
pemain2:="A",
xx:=565,
xx:=565,
temp:=player2
end if.
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,
pemain1:="A",
xx:=560,
temp:=player1
else if
else if
pemain2:="A",
xx:=565,
xx:=565,
temp:=player2
else
pemain3:="A",
xx:=570,
xx:=570,
temp:=player3
end if
end if.
end if.
Setiap ada penambahan else if, maka ditambahkan juga end
if di bagian akhir, penulisan end if tanpa diakhiri tanda koma. Seperti contoh
diatas.
Jika untuk statement if bersarang di tulis sebagai berikut.
if pemain2="B" then %if pertama
pemain1:="A",
xx:=560,
pemain1:="A",
xx:=560,
temp:=player1,
if %if bersarang didalam if pertama (if kedua)
if %if bersarang didalam if pertama (if kedua)
pemain2:="A",
xx:=565,
xx:=565,
temp:=player2
else
%else untuk (if kedua)
pemain3:="A",
xx:=570,
xx:=570,
temp:=player3
end if
end if.
end if.
Dimana bedanya..? sekilas memang tampak mirip, namun
dalam if bersarang penulisan statement sebelum if kedua, menggunakan tanda
koma, temp:=player1, jika tanpa tanda
koma akan memiliki arti yang berbeda dan
if kedua ditulis tanpa menggunakan else, karena jika menggunakan else akan
memiliki arti yang berbeda.
2 komentar:
makasih infonya ;)
contoh nested IFnya lengkap sekali om. makasih for sharing.
Posting Komentar
untuk menggunakan emotion di bawah, silakan masukkan kode di samping emoltion.