Rabu, 28 November 2012

Simulasi Lampu Lalu Lintas Di Delphi



Assalamualaikum Temen Temen Semua, Salam Senyum Di Pagi hari ini /(^o^”)udah lama banget gak update di catatanku yang satu ini #ya ampunnnnn.
Nah Kesempatan Di Pagi Hari ini saya kembali berbagi Materi Delphi nich, ada temen Delphier yang request untuk membuat satu aplikasi Simulasi Lampu Lalu lintas nich *hehehehe namanya juga saya masih belajar jadi sekalian memperlancar materi yang saya buatkan. Judul Hari ini ialah kita akan membuat Simulasi Lampu Lalu Lintas pada program Delphi yang berguna sebagai Simulaasi Cara Kerja Lampu Lalu lintas r. Hmmm Sulit Dijelaskan dalam bentuk kata kata, Lah Monggo Langsung Simak saja Ya Temen Temen.
Untuk Materi kali ini sungguh simple temen temen dimana kita hanya akan membuat Shape Warna yang akan hilang dan timbul di kondisi kondisi tertentu dan diulang terus sesuai dengan urutan urutannya yang sudah ditentukan. Hanya dengan menggunakan beberapa Code kita sudah bisa membuat Simulasi Lampu Lalu lintas menggunakan Delphi ini, Langsung aja kita bahas nich.

  • Pertama Tama Temen Temen bisa buat design Form Sebagai Berikut : cukup gunakan 3 button.
  • Atur Properties Namenya Seperti Gambar di bawah ini.
Nah berikut ini adalah alur Programnya :
  • Form Setting Di Sebelah kanan atas untuk mensetting detik berjalannya lampu untuk jalanan Atas, Kanan, Bawah dan Kiri.
  • Jika Button Aktifkan di Klik namun belum ada isi detik berjalan makan akan ada peringatan Data Setting Belum Terisi.
  • Jika Semua sudah di Masukkan dan Button Aktifkan Di Klik maka akan berjalan sesuai dengan urutan arah jam dari Atas dulu yang boleh jalan, kemudian ke kanan, bawah dan kiri.
  • Lampu Hijau dan merah diarahkan berseberangan karena nanti yang mereka lihat adalah yang ada di seberang mereka sesuai dengan setting waktu untuk tiap ruas jalan.
  • Jika button Stop Di klik makan akan berhenti, dan jika button keluar di klik akan keluar dari program
_______________________________________________________________________________
Berikut ini adalah Source Codenya :
1procedure Tform_materi16.button_informasiClick(Sender: TObject);
2var
3  Form1: TForm1;
4  kiri,bawah,atas,kanan,jatas,jkanan,jkiri,jbawah:integer;
Pertama-tama Buat Variable Integer dulu untuk Inisialisasi Waktu perdetik.
01procedure TForm1.btnaktifClick(Sender: TObject);
02begin
03  if(editsetatas.Text='') then
04    begin
05      application.Messagebox ('Maaf Setting Time Atas Masih ada yang kosong','Konfirmasi');
06      editsetatas.SetFocus;
07    end
08  else if(editsetbawah.Text='')then
09    begin
10      application.Messagebox ('Maaf Setting Time Bawah Masih ada yang kosong','Konfirmasi');
11      editsetbawah.SetFocus;
12    end
13  else if(editsetkanan.Text='')then
14    begin
15      application.Messagebox ('Maaf Setting Time Kanan Masih ada yang kosong','Konfirmasi');
16      editsetkanan.SetFocus;
17    end
18  else if(editsetkiri.Text='')then
19    begin
20      application.Messagebox ('Maaf Setting Time Kiri Masih ada yang kosong','Konfirmasi');
21      editsetkiri.SetFocus;
22    end
23  else
24    begin
25      kiri:=strtoint(editsetkiri.Text);
26      kanan:=strtoint(editsetkanan.Text);
27      atas:=strtoint(editsetatas.Text);
28      bawah:=strtoint(editsetbawah.Text);
29 
30      editatas.Text:=inttostr(atas);
31      lamp.Enabled:=true;
32      editstatus.Text:='atas';
33      hijaubawah.Visible:=true;
34      hijauatas.Visible:=false;
35      hijaukiri.Visible:=false;
36      hijaukanan.Visible:=false;
37      merahbawah.Visible:=false;
38      merahatas.Visible:=true;
39      merahkiri.Visible:=true;
40      merahkanan.Visible:=true;
41    end;
42end;
Prosedur Button Aktif di klik masukkan code seperti diatas dmana setting pertama akan kita lakukan di jalanan atas dan menjalankan fungsi timer yang akan berfungsi sebagai detik yang menggerakkan settingan lampu lalu lintas yang sudah kita buat.
01procedure TForm1.lampTimer(Sender: TObject);
02begin
03if(editstatus.Text='atas')then
04  begin
05    jatas:=strtoint(editatas.Text);
06    if(jatas<>0)then
07      begin
08        jatas:=jatas-1;
09        editatas.Text:=inttostr(jatas);
10      end
11    else
12      begin
13        editstatus.Text:='kanan';
14        editkanan.Text:=editsetkanan.Text;
15        jkanan:=strtoint(editkanan.Text);
16        hijaubawah.Visible:=false;
17        hijauatas.Visible:=false;
18        hijaukiri.Visible:=true;
19        hijaukanan.Visible:=false;
20        merahbawah.Visible:=true;
21        merahatas.Visible:=true;
22        merahkiri.Visible:=false;
23        merahkanan.Visible:=true;
24      end;
25  end
26else if(editstatus.Text='kanan')then
27  begin
28   jkanan:=strtoint(editkanan.Text);
29    if(jkanan<>0)then
30      begin
31        jkanan:=jkanan-1;
32        editkanan.Text:=inttostr(jkanan);
33      end
34    else
35      begin
36        editstatus.Text:='bawah';
37        editbawah.Text:=editsetbawah.Text;
38        jkanan:=strtoint(editkanan.Text);
39        hijaubawah.Visible:=false;
40        hijauatas.Visible:=true;
41        hijaukiri.Visible:=false;
42        hijaukanan.Visible:=false;
43        merahbawah.Visible:=true;
44        merahatas.Visible:=false;
45        merahkiri.Visible:=true;
46        merahkanan.Visible:=true;
47      end;
48  end
49else if(editstatus.Text='bawah')then
50  begin
51  jbawah:=strtoint(editbawah.Text);
52    if(jbawah<>0)then
53      begin
54        jbawah:=jbawah-1;
55        editbawah.Text:=inttostr(jbawah);
56      end
57    else
58      begin
59        editstatus.Text:='kiri';
60        editkiri.Text:=editsetkiri.Text;
61        jkiri:=strtoint(editkiri.Text);
62        hijaubawah.Visible:=false;
63        hijauatas.Visible:=false;
64        hijaukiri.Visible:=false;
65        hijaukanan.Visible:=true;
66        merahbawah.Visible:=true;
67        merahatas.Visible:=true;
68        merahkiri.Visible:=true;
69        merahkanan.Visible:=false;
70      end;
71  end
72else
73  begin
74     if(jkiri<>0)then
75      begin
76        jkiri:=jkiri-1;
77        editkiri.Text:=inttostr(jkiri);
78      end
79    else
80      begin
81        editstatus.Text:='atas';
82        editatas.Text:=editsetatas.Text;
83        jatas:=strtoint(editatas.Text);
84        hijaubawah.Visible:=true;
85        hijauatas.Visible:=false;
86        hijaukiri.Visible:=false;
87        hijaukanan.Visible:=false;
88        merahbawah.Visible:=false;
89        merahatas.Visible:=true;
90        merahkiri.Visible:=true;
91        merahkanan.Visible:=true;
92      end;
93  end;
94end;
Jika Timer diaktifkan maka fungsi inilah yang akan berjalan perdetiknya. dimana jika edit setatus bertuliskan atas maka fungsi atas yang akan berjalan sesuai dengan detik yang sudah di setting. jika detik atas sudah habis maka otomatis memindahkan ke status kanan, dan code kanan akan berjalan hingga detik terakhir dan begitu seterusnya sampai kembali lagi keatas.
01procedure TForm1.Button1Click(Sender: TObject);
02begin
03  lamp.Enabled:=false;
04 
05  editatas.Text:='';
06  editbawah.Text:='';
07  editkiri.Text:='';
08  editkanan.Text:='';
09 
10  editsetatas.Text:='';
11  editsetbawah.Text:='';
12  editsetkiri.Text:='';
13  editsetkanan.Text:='';
14 
15  editstatus.Text:='';
16 
17  hijaubawah.Visible:=false;
18  hijauatas.Visible:=false;
19  hijaukiri.Visible:=false;
20  hijaukanan.Visible:=false;
21  merahbawah.Visible:=false;
22  merahatas.Visible:=false;
23  merahkiri.Visible:=false;
24  merahkanan.Visible:=false;
25 
26end;
 Jika Button Stop Di klik maka kita akan mematikan fungsi timer dan mebersihkan semua fielt teks dan menghilangkan lampu yang menyala.
1procedure TForm1.Button2Click(Sender: TObject);
2begin
3   close;
4end;
 JIka button keluar di klik maka akan keluar dari program.
_______________________________________________________________________________
Nah Berikut ini adalah Hasil Program Saat Dijalankan \(^o^”)/ :
Tampilan Awal Program Dijalankan
Isikan Setting Detik untuk Tiap Ruas Jalan, jika masih kosong ada konfirmasi saat button aktif di klik
Saat Diaktifkan, Awal berjalan dari Jalan Atas dimana ia akan melihat lampu di seberang jalannya yang saling berserbrangan, jalan arus searah jarum jam saat detik sudah mencapat nilai 0 akan berpindah.
Semua berhenti setelah button stop di klik
  
Nah Selesailah Materi Delphi kita di hari ini untuk membuat Simulasi Lampu Lalu Lintas dengan Delphi, Gampang Banget kan – Tentunya Dunk. Untuk Temen Temen yang mau download source aplikasinya langsung monggo di cek di link dibawah ini ya :

Tidak ada komentar:

Posting Komentar