Program Membuat Lampu Lalu Lintas dengan Delphi

Kali ini saya akan membuat suatu pogram menggunakan delphi yaitu membuat suatu lampu lalu lintas yang dikendalikan oleh timer serta membuat beberapa subform di dalam satu form utama.Berikut Listing program,logika dan outputnya.

LISTING PROGRAM

FORM 1 (My Project)

procedure TForm1.Timer1Timer(Sender: TObject);

begin

label1.Font.color:=rgb(random(255),random(255),random(255));

label4.Font.color:=rgb(random(255),random(255),random(255));

begin

if kiri=true then

posisikiri:=posisikiri+10

else

posisikiri:=posisikiri-10;

if posisikiri>155then

kiri:=false;

if posisikiri<0 atas=”true”>330 then

kiri:=false;

if posisikiri<0then>20then

atas:=false;

if posisiatas<60 visible=”true” style=”font-weight: bold;”>

FORM 2(TRAFFIC LIGHT)

procedure TForm2.FormCreate(Sender: TObject);

begin

shape2.Brush.Color:=clred;

label1.Font.Color:=clred;

label1.Caption :=’10’;

label2.Caption:=’Stop!!!’;

label2.font.color:= clred;

end;

procedure TForm2.Timer1Timer(Sender: TObject);

var bil1,bil2 :integer;

begin

bil1:=strtoint(label1.caption);

bil2:=bil1-1;

label1.Caption:=inttostr(bil2);

if label1.caption=’-1′ then

if label1.Font.color=clred then

begin

label1.caption:=’7′;

shape2.Brush.Color:=clGrayText;

shape3.Brush.Color:=clGrayText;

shape4.Brush.Color:=cllime;

label1.Font.Color:=cllime;

label2.Caption:=’Go!!!!!!!!!!’;

label2.font.color:= cllime;

end

else

if label1.caption =’-1′ then

if label1.Font.Color=cllime then

begin

label1.caption :=’3′;

shape2.Brush.Color:=clGrayText;

shape3.Brush.Color:=clYellow;

shape4.Brush.Color:=clGrayText;

label1.Font.Color:=clblack;

label2.Caption:=’Slow!!!’;

label2.font.color:= clyellow;

end

else

if label1.caption =’-1′ then

if label1.Font.Color=clBlack then

begin

shape2.Brush.Color:=clRed;

shape3.Brush.Color:=clGrayText;

shape4.Brush.Color:=clGrayText;

label1.Font.Color:=clRed;

label1.Caption :=’10’;

label2.Caption:=’Stop!!!’;

label2.font.color:= clred;

end

end;

procedure TForm2.Timer2Timer(Sender: TObject);

begin

if label2.Font.color=clred then

begin

Timer2.Interval := 1000;

if label3.Visible=true then label3.Visible:=false

else

label3.Visible:=true;

label3.Left:=label3.Left -1;

if (label3.Left+panel1.Width) <=0 then label3.Left:=panel1.Width; end else if label2.Font.Color=cllime then begin Timer2.Interval := 10; if label3.Visible=true then label3.Visible:=false else label3.Visible:=true; label3.Left:=label3.Left -1; if (label3.Left+panel1.Width) <=0 then label3.Left:=panel1.Width; end else if label2.Font.Color=clYellow then begin Timer2.Interval := 60; if label3.Visible=true then label3.Visible:=false else label3.Visible:=true; label3.Left:=label3.Left -1; if (label3.Left+panel1.Width) <=0 then label3.Left:=panel1.Width; end; end; procedure TForm2.Button1Click(Sender: TObject); begin form1.show; end; end.

FORM 3(THIS IS ME)

procedure TForm3.Button1Click(Sender: TObject);

begin

form1.show;

end;

procedure TForm3.Timer1Timer(Sender: TObject);

begin

if label1.Visible then label1.Visible:=false

else label1.Visible:=true;

if label2.Visible then label2.Visible:=false

else label2.Visible:=true;

if label3.Visible then label3.Visible:=false

else label3.Visible:=true;

end;

end.

LOGIKA PROGRAM


FORM 1 (My Project)
Sebelum saya memulai membuat form 1.Pertama – tama saya buka Delphi dengan pilih all program lalu pilih Delphi lalu klk file lalu pilih form.
Di laporan akhir ini saya akan membuat 3 form yaitu form My project,about me dan traffic light.
Pertama, saya akan membuat form My project.
Pertama saya memilih form1.Lalu caption form saya ganti dengan My Project sebagai judul form.Setelah itu saya memilih main menu untuk membuat menu seperti file,timer,exit dan about me.Untuk itu,pada caption main menu,saya tulis file lalu enter lalu tulis timer,exit dan about me.
Setelah itu untuk tulisan lampu lalu lintas dan ujian asisten Lab,saya membuat dua label yaitu label1 dan label4, lalu saya isi captionnya dengan lampu lalu lintas dan ujian asisten lab. Lalu untuk membuat gambar foto saya itu,saya memilih image pada menu bar additional.Lalu saya load gambarnya dengan foto saya,lalu saya pilih ok.Setelah itu saya buat dua label lagi untuk jam digital dan tanggal.Lalu captionnya saya kosongkan.
Untuk membuat tulisan lampu lalu lintas berkedap kedip ke kiri dan ke kanan dan ujian asisten lab berkedap kedip dari atas ke bawah.saya membuat suatu timer dengan intervalnya 200.Lalu saya klik 2x timer itu lalu saya masukkan koding berikut ini :
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Font.color:=rgb(random(255),random(255),random(255));
label4.Font.color:=rgb(random(255),random(255),random(255));
begin
if kiri=true then
posisikiri:=posisikiri+10
else
posisikiri:=posisikiri-10;
if posisikiri>155then
kiri:=false;
if posisikiri<0>
kiri:=true;
label1.Left:=posisikiri;
end;
begin
if atas=true then
posisiatas:=posisiatas+10
else
posisiatas:=posisiatas-10;
if posisikiri>330 then
kiri:=false;
if posisikiri<0then
kiri:=true;
if posisiatas>20then
atas:=false;
if posisiatas<60>
atas:=true;
label1.Left:=posisikiri;
label4.Top:=posisiatas;
end;
end;
Untuk membuat tulisannya kedap kedip berwarna saya tuliskan koding ini
label1.Font.color:=rgb(random(255),random(255),random(255));
label4.Font.color:=rgb(random(255),random(255),random(255));
Lalu untuk membuatnya bergerak ke kiri,ke kanan,ke atas dan ke bawah sayatuliskan koding berikut ini
begin
if kiri=true then
posisikiri:=posisikiri+10
else
posisikiri:=posisikiri-10;
Ini adalah perintah untuk timer dimana untuk label1 berpindah tempat dari kiri dengan kecepatan +10 dan akan balik lagi dengan posisikiri:=posisikiri-10;dengan arah yang berlawanan.
if posisikiri>155then
kiri:=false;
if posisikiri<0>
kiri:=true;
label1.Left:=posisikiri;
end;
Jadi jika jarak nya lebih dari 155 maka label itu akan balik lagi ke posisi semula menggunakan if posisikiri<0>
kiri:=true;
.
begin
if atas=true then
posisiatas:=posisiatas+10
else
posisiatas:=posisiatas-10;
ini adalah kecepatan untuk label4 bergerak ke atas dengan kecepatan +10 dan akan balik lagi keatas -10 dengan menggunakan posisiatas:=posisiatas-10;dengan arah yang berlawanan.
if posisikiri>330 then
kiri:=false;
if posisikiri<0then
kiri:=true;
if posisiatas>20then
atas:=false;
if posisiatas<60>
atas:=true;
jika label1 berpindah dengan posisi 330 maka dia akan berpindah ke arah kiri maka dari itu false tetapi jika dia kurang dari 0 maka label akan berpndah dari kanan ke kiri makanya label itu bernialai Boolean.
label1.Left:=posisikiri;
label4.Top:=posisiatas;
end;
end;
Untuk menjelaskan bahwa label1 menggunakan variable posisikiri dan label4. Menggunakan variable posisi atas dan label1 akan dieksekusi sesuai perintah yang diberikan di posisi kiri begitupun pada label4.
Tetapi sebelum memasukkan koding ini pada var harus saya jelaskan dahulu apa yang dimaksud dari posisi kiri,posisiatas,kiri, dan atas.maka pada var saya ketikkan
var
Form1: TForm1;
posisikiri:Integer;
posisiatas:Integer;
kiri:Boolean;
atas:Boolean;
Disini saya menuliskan varnya untuk tempat pemanggilan dari posisi kiri,posisi atas,kiri dan atas,maka saya tuliskan tipe dari masing – masing variabel yaitu posisi kiri dan atas yaitu integer serta kiri dan atas adalah Boolean.
Lalu saya akan memuat suatu jam digital yang berisi tanggal dan waktu yang sesuai dengan waktu sekarang.
Oleh karena itu,saya pilih dua label.Lalu pada caption kedua label yaitu label2 dan label3 itu saya kosongkan.Lalu saya menggunakan timer.Oleh karena itu saya pilih timer lalu saya atur intervalnya yaitu 1000.Setelah itu,saya klik timer 2x,lalu saya masukkan koding berikut ini :
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Label2.Caption:=FormatDateTime(‘dd MMMM yyyy’,Now);
Label3.Caption:=FormatDateTime(‘hh:mm:ss’,Now);
label2.Font.color:=rgb(random(255),random(255),random(255));
label3.Font.color:=rgb(random(255),random(255),random(255));
end;
koding ini berarti format label2 yaitu tanggal,bulan,tahun sekarang danformat label3 yaitu jam,menit,detik saat ini.serta label2 dan label3 berkedap kedip secara random warnanya dengan menuliskan label2.Font.color:=rgb(random(255),random(255),random(255));
label3.Font.color:=rgb(random(255),random(255),random(255));
Selanjutnya saya akan membuat gambar foto saya itu berkedip – kedip.Oleh karena itu,saya gunakan timer 2 dan saya atur interval timernya yaitu 1500.Lalu saya pilih timer pada menubar system.Lalu saya klik 2x timernya lalu saya masukkan koding berikut ini:
procedure TForm1.Timer3Timer(Sender: TObject);
begin
if image1.Visible=true then image1.Visible:=false
else
image1.Visible:=true;
end;
end.


Jika langkah – langkah tadi di lakukan maka form akan terlihat seperti ini :


Lalu setelah saya membuat form 1 ,maka saya akan melanjutkan membuat form2 yaitu TRAFFIC LIGHT.
Untuk memanggil form2 ini dari form1,saya buat timer pada mainmenu lalu saya klik 2x timer.Setelah itu saya masukkan koding berikut ini :
procedure TForm1.imer1Click(Sender: TObject);
begin
form1.Hide;
form2.show
end;
Disini saya akan membuat form saya yang kedua yaitu form tentang traffic light.Disini pertama – tama saya akan membuat 6 shape yaitu masing – masing untuk 3 shape yang berbentuk lingkaran untuk lampu pada lalu lintasnya.Sedangkan 3 shape yang lain sebagai tiang pada lampu lalu lintasnya.Lalu setelah itu saya susun shape – shape tersebut membentuk suatu lampu lalu lintas.shape 1,2,3 saya ubah bentuknya dengan saya pilih shape pada object inspector,saya ganti stcircle untuk lampu lalu lintasnya.Lalu shape yang lain saya ganti captionnya yaitu stRectangle.Setelah itu,saya buat 2 label dimana label pertama untuk waktu timernya sdangkan label yang lain untuk tempat kata stop,go dan slow.Oleh karena itu saya kosongkan caption kedua label tersebut.
Lalu untuk benda bergerak,saya buat panel untuk tempat benda itu.Lalu saya ubah bvelouter pada panel itu menjadi bvLowered.Lalu saya kosongkan caption pada panel itu dan untuk menghias panel tersebut saya ubah colornya menjadi claqua.Setelah itu,di dalam panel itu saya buat label untuk benda bergerak itu.Untuk memberi nama pada benda tersebut,saya ubah captionnya dengan tronton.Lalu untuk lebih menarik saya ubah warna tulisannya menjadi merah dengan memilih font.Lalu setelah itu saya buat tombol untuk kembali pada form1(My project).
Lalu captionnya saya ubah dengan Back To My Project.Lalu saya klik 2x button itu,lalu saya tuliskan koding berikut ini:
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
end;
end.
Koding ini berarti jika saya mengklik button itu 2x maka akan muncul form 1.Untuk menampilkan form1 itu maka saya menuliskan form1.show.
Lalu untuk menjalankan lampu – lampu lalu lintas tersebut,saya buat timer.Lalu saya klik 2x timer itu,lalu saya tuliskan koding berikut ini:
procedure TForm2.Timer1Timer(Sender: TObject);
var bil1,bil2 :integer;
begin
bil1:=strtoint(label1.caption);
bil2:=bil1-1;
label1.Caption:=inttostr(bil2);
if label1.caption=’-1′ then
if label1.Font.color=clred then
begin
label1.caption:=’7′;
shape2.Brush.Color:=clGrayText;
shape3.Brush.Color:=clGrayText;
shape4.Brush.Color:=cllime;
label1.Font.Color:=cllime;
label2.Caption:=’Go!!!!!!!!!!’;
label2.font.color:= cllime;
end
Disini berarti jika font pada label1 berwarna merah sudah dieksekusi dan angka pada label1 adalah 7,maka shape 2 dan 3 akan berwarna abu –abu,shape 4 akan berwarna hijau(lime) dan itu berarti lampu hijau dan label 2 akan menghasilkan kata GO!!!!!! Dan warnanya hijau.
else
if label1.caption =’-1′ then
if label1.Font.Color=cllime then
begin
label1.caption :=’3′;
shape2.Brush.Color:=clGrayText;
shape3.Brush.Color:=clYellow;
shape4.Brush.Color:=clGrayText;
label1.Font.Color:=clblack;
label2.Caption:=’Slow!!!’;
label2.font.color:= clyellow;
end
Jika lampu hijau sudah dieksekusi,maka caption pada label1 adalah angka 3 maka shape2 dan 4 berwarna abu – abu dan shape3 akan berwarna kuning dimana berarti hanya lampu kuning saja yang menyala.Lalu warna font pada label1 adalah hitam dan label2 akan menghasilkan kata slow jika lampu kuning yang menyala dan berwarna kuning juga.
else
if label1.caption =’-1′ then
if label1.Font.Color=clBlack then
begin
shape2.Brush.Color:=clRed;
shape3.Brush.Color:=clGrayText;
shape4.Brush.Color:=clGrayText;
label1.Font.Color:=clRed;
label1.Caption :=’10’;
label2.Caption:=’Stop!!!’;
label2.font.color:= clred;
end
end;
Selanjutnya,jika lampu kuning sudah dieksekusi maka warna font berubah menjadi hitam maka shape3 dan 4 berwarna abu – abu dan hanya shape2 yang menyala dan berwarna merah,maka ini berarti lampu merah yang sedang dilasanakan dengan caption pada label1nya adalah 10 dan label2nya menghasilkan kata stop pada lampu merah dan warnanya juga merah.
Lalu setelah itu untuk membuat tulisannya berjalan,saya akan membuat satu timer lagi yaitu timer untuk tulisan tronton berjalan.Lalu saya mengklik timer itu 2x,lalu saya masukan koding berikut ini :
procedure TForm2.Timer2Timer(Sender: TObject);
begin
if label2.Font.color=clred then
begin
Timer2.Interval := 1000;
if label3.Visible=true then label3.Visible:=false
else
label3.Visible:=true;
label3.Left:=label3.Left -1;
if (label3.Left+panel1.Width) <=0
then
label3.Left:=panel1.Width;
end
Jika font pada label2 yaitu pada lampu lalu lintas berwarna merah maka dengan interval timer yaitu 1000 maka label 3 akan kedap kedip dan tidak bergerak.
else
if label2.Font.Color=cllime then
begin
Timer2.Interval := 10;
if label3.Visible=true then label3.Visible:=false
else
label3.Visible:=true;
label3.Left:=label3.Left -1;
if (label3.Left+panel1.Width) <=0
then
label3.Left:=panel1.Width;
end
Setelah lampu merah dieksekusi maka berikutnya akan lampu hijau yang dieksekusi.Disini jika warna font label2 yaitu tulisan go maka label3 akan berjalan ke kiri sesuai lebar panel dengan interval 10.
else
if label2.Font.Color=clYellow then
begin
Timer2.Interval := 60;
if label3.Visible=true then label3.Visible:=false
else
label3.Visible:=true;
label3.Left:=label3.Left -1;
if (label3.Left+panel1.Width) <=0
then
label3.Left:=panel1.Width;
end;
end;
Lalu jika label2 yaitu warnanya pada tulisan slow berwarna kuning,maka label3 atau tronton akan bergrak ke kiri sesuai lebar panel tetapi dengan kecepatan lebi lambat dibandingkan lampu hijau yaitu dengan interval 60.
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.show;
end;
end.
Disini jika saya mengklik button1 yaitu back to my project maka akan tampil form1 atau myproject dan diakhiri dengan end.
Jika semua hal diatas dilaksanakan dengan tepat maka akn menghasilkan tampilan berikut


Setelah saya membuat form2,selanjutnya saya akan membuat form terakhir yaitu form3 yaitu About Me.
Untuk memanggil form3 ini,saya buat about me pada mainmenu lalu saya klik about me 2x lalu say masukkan koding berikut ini :
procedure TForm1.AboutMe1Click(Sender: TObject);
begin
form3.show;
end;
Disini saya membuat 3 label,1 image,I timer dan 2 button.Label1 saya isi captionnya dengan I PUTU ANANTA,label2 saya isi captionnya dengan 1IA13,dan yang label ketiga saya isi captionya yaitu Ini adalah foto saya,yaa kata orang sih saya tampan,,hehe,,ya saya sih bersyukur aja ,,hahahaha.Setelah itu saya pilih image,lalu saya pilih load untuk memasukkan gambarnya.Lalu saya buat button untuk kembali ke form1,lalu saya isi captionnya yaitu Back To My Project.Lalu saya klik 2x button itu dan masukkan koding seperti ini :
procedure TForm3.Button1Click(Sender: TObject);
begin
form1.show;
end;
Disini saya tuliskan form1.show,berarti dimana saat saya mengklik button1 maka akan tampil form1.
Setelah itu untuk membuat label1,2 kedap kedip dan berwarna random,saya buat suatu timer,lalu saya klik 2x timer itu serta saya atur intervalnya yaitu 100 dan sayamasukkan koding berikut ini :
procedure TForm3.Timer1Timer(Sender: TObject);
begin
label1.Font.color:=rgb(random(255),random(255),random(255));
label2.Font.color:=rgb(random(255),random(255),random(255));
label3.Font.color:=rgb(random(255),random(255),random(255));
if label1.Visible=true then label1.Visible:=false
else
label1.Visible:=true;
if label2.Visible=true then label2.Visible:=false
else
label2.Visible:=true;
end;
end.
label1.Font.color:=rgb(random(255),random(255),random(255));
label2.Font.color:=rgb(random(255),random(255),random(255));
label3.Font.color:=rgb(random(255),random(255),random(255));
Koding ini merupakan koding untuk membuat label1,2,3 berwarna secara random.
if label1.Visible=true then label1.Visible:=false
else
label1.Visible:=true;
if label2.Visible=true then label2.Visible:=false
else
label2.Visible:=true;
end;
end.
Lalu koding ini untuk membuat label1 dan 2 berkedap kedip.dan diakhiri dengan end.
Jika semua hal diatas dilakukan dengan tepat aka akan menghasilkan tampilan seperti ini :
Setelah form dan scriptnya dibuat.,,maka klik run untuk menjalankannya.

Untuk melihat hasil jadi programnya ,bisa di lihat di

http://www.ziddu.com/download/10053413/Project2.rar.html



Without clear target, you wont hit anything. Without feeling grateful, you wont be able to enjoy your achievements



SALAM GANS!



About drputuananta

Success=useful for many people

Posted on May 29, 2010, in PROGRAMMING. Bookmark the permalink. 2 Comments.

  1. label di image nya mas transparantnya di true jadi enak lihatnya..:D

  2. ouw,ahahhaa,,oke2,,nice info and nice comment,,trima kasih ya,,oya,,do you have a blog so i can invite to your blog?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: