Membuat Rumah dan Gedung menggunakan Strawberry Prolog

Seperti yang sudah dijelaskan pada pertemuan sebelumnya, kali ini saya akan membuat sebuah rumah dan sebuah gedung rumah sakit menggunakan Strawberry Project.
Kalian dapat mengetikkan sintaks seperti dibawah ini :

?-
window(_,_,bangunan(),"Bentuk Bangunan",0,0,1353,595).
bangunan(paint):-

%%%%%%%%%%%%%%%%%%%%
%                  %
%  Program Rumah   %
%                  %
%%%%%%%%%%%%%%%%%%%%

%dinding 1
pen(3,rgb(0,0,0)),
brush(rgb(255,149,149)),
rect(166,194,367,440),

%dinding 2
brush(rgb(255,149,149)),
rect(365,194,660,415),

%atap trapesium
brush(rgb(98,0,0)),
fill_polygon(184,92,144,218,670,218,639,92),

%cerobong asap
brush(rgb(111,55,0)),
ellipse(540,58,594,70),
rect(544,67,591,155),

%atap segitiga
pen(15,rgb(0,0,0)),
line(265,65,144,218),
line(265,65,387,219),
pen(3,rgb(255,149,149)),
brush(rgb(255,149,149)),
fill_polygon(145,219,266,66,386,219),

%jendela lingkaran
brush(rgb(213,255,255)),
pen(3,rgb(0,0,0)),
ellipse(217,120,316,219),
pen(3,rgb(0,0,0)),
line(266,120,266,215),
line(217,170,316,170),

%pintu
pen(3,rgb(0,0,0)),
brush(rgb(120,100,0)),
rect(432,264,517,415),
brush(rgb(213,255,255)),
rect(444,277,506,339),
ellipse(510,360,490,375),

%tangga
brush(rgb(98,0,0)),
rect(424,412,526,432),
rect(415,427,536,448),

%jendela 1
brush(rgb(213,255,255)),
rect(192,244,343,330),
line(200,252,239,252),
line(200,252,200,322),
line(200,322,239,322),
line(239,252,239,322),

line(245,252,291,252),
line(246,322,292,322),
line(292,252,292,321),
line(245,251,245,322),

line(298,252,337,252),
line(298,252,298,322),
line(298,323,337,323),
line(336,322,336,251),
brush(rgb(117,58,0)),
rect(192,330,343,347),

%jendela 2
brush(rgb(213,255,255)),
rect(571,248,633,349),
rect(578,256,626,340),
brush(rgb(117,58,0)),
rect(571,348,633,362),

%%%%%%%%%%%%%%%%%%%%%%
%                    %
% Gedung Rumah Sakit %
%                    %
%%%%%%%%%%%%%%%%%%%%%%

%gedung utama
brush(rgb(192,192,192)),
rect(985,18,1071,82),
brush(rgb(145,255,145)),
rect(911,68,1143,499),

%jendela gedung utama
brush(rgb(255,255,135)),
rect(926,108,977,162),
line(950,110,950,160),
line(928,135,975,135),
rect(1003,107,1053,161),
line(1027,110,1027,159),
line(1006,135,1050,135),
rect(1076,107,1126,162),
line(1079,135,1124,135),
line(1101,110,1101,160),
rect(925,205,975,260),
line(950,206,950,258),
line(926,233,971,233),
rect(1000,205,1050,260),
line(1001,232,1048,232),
line(1025,206,1025,258),
rect(1075,205,1125,260),
line(1075,232,1125,232),
line(1100,205,1100,260),
rect(925,308,976,365),
line(925,335,976,335),
line(950,308,950,365),
rect(998,308,1050,365),
line(998,335,1050,335),
line(1023,308,1023,365),
rect(1075,308,1125,365),
line(1075,335,1125,335),
line(1100,308,1100,365),

pen(7,rgb(255,255,255)),
line(910,175,1139,175),
line(910,276,1141,276),
line(910,381,1141,381),

%pintu
brush(rgb(213,213,0)),
rect(987,401,1062,495),
line(1025,406,1025,489),
line(1017,439,1017,456),
line(1033,439,1033,456),
pen(0,rgb(192,192,192)),
brush(rgb(192,192,192)),
rect(805,499,1255,515),
brush(rgb(255,255,255)),
rect(978,495,1072,510),

%lambang rumah sakit
pen(3,rgb(255,255,255)),
brush(rgb(255,255,255)),
rect(1022,26,1035,63),
rect(1000,39,1057,52),

%gedung 1
pen(3,rgb(0,0,0)),
brush(rgb(13,208,77)),
rect(816,172,914,499),

%jendela gedung 1
brush(rgb(255,255,135)),
rect(835,191,893,250),
line(863,248,863,192),
line(838,221,890,221),
rect(835,284,893,342),
line(863,285,863,338),
line(838,310,890,310),
rect(835,373,893,435),
line(863,375,863,432),
line(838,405,890,405),

%gedung 2
brush(rgb(13,208,77)),
rect(1140,172,1242,499),

%jendela gedung 2
brush(rgb(255,255,135)),
rect(1158,191,1220,250),
line(1187,192,1187,248),
line(1160,220,1218,220),
rect(1158,284,1220,342),
line(1187,285,1187,340),
line(1160,310,1216,310),
rect(1158,373,1220,435),
line(1187,373,1187,433),

line(1160,400,1216,400).


Pertama, terlebih dahulu kita membuka aplikasi Strawberry Prolog dengan klik dua kali icon Strawberry Prolog atau dengan klik Start lalu pilih Strawberry Prolog.

Apabila tampilan sudah seperti gambar di atas, maka kita klik file lalu new dan pilih Strawberry Project.

Logika Programnya adalah seperti berikut :
?-
Statement ini untuk membuat awalan pada strawberry prolog, wajib di isi, untuk mengisi program inti pada window.

window(_,_,bangunan(),"Bentuk Bangunan",0,0,1353,595).
Statement window dibuat untuk menampilkan jendela (window) yang dapat diisikan program yang ingin dibuat. “Bentuk Bangunan” untuk memberi nama pada kotak window. 0,0,1353,595 adalah koordinat untuk menentukan panjang dan lebar kotak window(1353x595), juga menentukan dimana pertama kali window muncul dalam layar disana akan muncul window di pojok kiri atas karena saya masukan koordinat (0,0).

bangunan(paint):-
Untuk memanggil method bangunan.

%%%%%%%%%%%%%%%
%                                             %
%         Program Rumah          %
%                                             %
%%%%%%%%%%%%%%%
%dinding 1
% adalah komentar atau menunjukkan dokumentasi bahwa ini adalah program rumah yang akan dibuat. Dan program rumah pertama yang akan kita buat adalah bentuk dinding.

pen(3,rgb(0,0,0))
Perintah tersebut adalah kita akan membuat atau menulis menggunakan tinta dengan ketebalan 3 dan berwarna hitam. Rgb(0,0,0) adalah warna hitam karena semakin kecil skalanya, maka semakin gelap pula warna yang kita peroleh.

brush(rgb(255,149,149))
Perintah brush berguna untuk mewarnai suatu objek yang telah kita buat. Rgb(255,149,149) adalah warna merah muda. Kode rgb tersebut kita dapatkan dari paint yang sudah ada di windows.

rect(166,194,367,440)
Perintah rect adalah kita akan membuat sebuah persegi dengan koordinat yang telah kita tentukan. Cara menentukan koordinat (x,y) adalah (x1,y1,x2,y2) atau yang berarti titik awal (x1,y1)=166,194 dan titik akhir (x2,y2)=367,440.

fill_polygon(145,219,266,66,386,219)
Apabila kita ingin membuat objek segitiga, maka kita dapat menggunakan perintah fill_polygon. Cara menentukan koordinat segitiga adalah (x1,y1,x2,y2,x3,y3). Pada setiap ujung segitiga, kita dapat mengambil titik koordinatnya.

fill_polygon(184,92,144,218,670,218,639,92)
Sama halnya dengan membuat segitia, fill_polygon juga dapat membuat bentuk trapesium. Bedanya pada bentuk segitiga, kita hanya memerlukan 3 titik koordinat, sedangkan untuk membuat bentuk trapesium maka kita memerlukan 4 titik koordinat. Cara menentukan titik koordinat tersebut adalah (x1,y1,x2,y2,x3,y3,x4,y4).

ellipse(540,58,594,70),
Ellipse merupakan perintah yang digunakan untuk membuat bentuk lingkaran.

line(265,65,144,218),
Line adalah kita akan membuat sebuah garis dengan koordinat yang telah kita tentukan, yaitu titik awal (x1,y1)=150,25 dan titik akhir (x2,y2)=25,150 maka akan ditarik garis dari titik awal hingga titik akhirnya.

Dalam membuat rumah dan gedung lebih baik kita pisahkan bagian-bagiannya seperti atap, dinding, pintu, dan jendela dengan menggunakan perintah % yang artinya komentar, agar tidak bingung jika terjadi kesalahan. Juga kita tidak bingung jika ingin memberi warna berbeda pada setiap bagian-bagiannya seperti ingin memberi warna coklat pada pintu dan warna ungu pada jendela.

Dan inilah hasilnya


Sekian dari saya,
Semoga Bermanfaat :)

Comments