Anda di halaman 1dari 42

ALGORITMA

DAN
PEMROGRAMAN KOMPUTER

PERCOBAAN 11
PENGONTROLAN TRAFFIC LIGHT

Nama : ZEN RESTI MAULANA


No. BP : 1901031005
Kelas : 1B
Instruktur : 1. JULSAM,M.Kom
2. FIBRIYANTI,SST.MT
3. ZULKA HENDRI,ST.MT

PROGRAM STUDI TEKNIK LISTRIK


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI PADANG

BAB I
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

TUJUAN
1. Mampu membuat program untuk menampilkan objek lingkaran merah, hijau dan
kuning secara bergantian
2. Mampu mengatur waktu aktif yang berbeda pada ketiga objek tersebut
3. Mampu membuat program untuk menampilkan angka hitungan waktu mundur

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB II
TEORI DASAR

TIMER

Time merupakan komponen pengatur waktu yang ada pada tab system dengan tab icon
. Gunakan Komponen Pengatur waktu ini untuk mencetuskan (mentrigger) suatu peristiwa
(event), untuk satu waktu ataupun berulang-ulang, setelah melalui suatu interval
yang
ditentukan. Hal ini dilakukan dengan menetapkan jumlah hitungan waktu (interval)
pada komponen waktu tersebut.

Tugas dari timer adalah untuk menetapkan suatu hitungan waktu yang mesti
dilakukan sebelum event timer di trigger menggunakan properti interval. Untuk
menghentikan event yang di kerjakan oleh timer adalah dengan memberikan nilai false pada
properti enabled dari komponen timer. Pengaturan interval waktu melalui program dilakukan
dengan instruksi : Timer1.Interval := 1000 untuk interval 1 detik.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB III
LANGKAH KERJA

A. Membangun aplikasi simulasi Traffic Light


1. Buatlah sebuah form yang berisi :
i. 2 komponen button (start dan stop)
ii. 3 komponen shape lingkaran dengan warna merah, kuning dan hijau
iii. 2 komponen timer
2. Set property interval pada timer dengan nilai 1000 (1 detik) dan property enabled
false
3. Double click pada button start (button1) dan lengkapi program berikut:
procedure TForm1.ButtonStartClick(Sender: TObject);
begin
timer1.enabled:= true; // meng-aktifkan timer
shape1.visible := true; // merah nyala
shape2.visible := false; // kuning padam
shape3.visible := false; // hijau padam
end;
4. Double click pada button stop (button2 dan lengkapi program berikut:
procedure TForm1.ButtonStartClick(Sender: TObject);
begin
timer1.enabled:=false; // me-nonaktifkan timer
end;

5. Double click pada icon Timer dan lengkapi program menjadi sbb:
implementation
{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);


begin
if shape1.visible = true then
begin
shape1.visible := false; // merah padam

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

shape2.visible := false; // kuning padam


shape3.visible := true; // hijau nyala
end
else
if shape3.visible = true then
begin
shape1.visible := false; // merah padam
shape2.visible := true; // kuning nyala
shape3.visible := false; // hijau padam
end
else
begin
shape1.visible := true; // merah padam
shape2.visible := false; // kuning nyala
shape3.visible := false; // hijau padam
end;
end.
6. Jalankan program dan lakukan pengamatan, catat bagaimana jalannya program. B.
Melengkapi aplikasi dengan pengaturan interval waktu nyala yang berbeda
1. Lengkapi instruksi pada aplikasi A dengan instruksi berikut pada tempat yang
diperlukan.
Timer1.interval := 30000; // untuk inteval 30 detik
2. Gunakan interval waktu dengan nilai yang lain pada penyalaan yang lainnya.

C. Melengkapi aplikasi dengan tampilan waktu hitung mundur


1. Tambahkan sebuah timer lagi dan sebuah label pada aplikasi untuk
menampilkan angka waktu hitung mundur dengan set interval = 1000 dan enabled =
false
2. Lengkapi instruksi pada aplikasi B dengan instruksi berikut:
implementation
{$R *.DFM} Var
Waktu : integer;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Procedure TForm1.Timer2Timer(sender:tobject);

Begin
Label1.Caption := waktu;
Waktu := waktu – 1;
End;

procedure TForm1.ButtonStartClick(Sender: TObject);


begin
timer1.enabled:=true; // meng-aktifkan timer1
timer2.enabled:=true; // meng-aktifkan timer2
shape1.visible := true; // merah nyala
shape2.visible := false; // kuning padam
shape3.visible := false; // hijau padam
end;

procedure TForm1.Timer1Timer(Sender: TObject);


begin
if shape1.visible = true then
begin
shape1.visible := false; // merah padam
shape2.visible := false; // kuning padam
shape3.visible := true; // hijau nyala
waktu := 40; // hitung mundur mulai 40
timer1.interval := 20000;
end else
if shape3.visible = true then begin
shape1.visible := false; // merah padam
shape2.visible := true; // kuning nyala
shape3.visible := false; // hijau padam
waktu := 5; // hitung mundur mulai 5
timer1.interval := 5000;
end else

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

begin
shape1.visible := true; // merah nyala
shape2.visible := false; // kuning nyala
shape3.visible := false; // hijau padam
waktu := 20; // hitung mundur mulai 20
timer1.interval := 40000;
end;
end.

3. Ganti masing-masing interval waktu dengan set nilai yang lain. Jalankan progam,
buatkan tabel pengamatan dan catat hasilnya

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB IV
TABEL PENGAMATAN

A. Simulasi Traffic Light Satu Jalur Tanpa Hitung Mundur


lampu
Detik ke-
Merah Hijau Kuning
1 On Off Off
10 On Off Off
20 On Off Off
30 On Off Off
40 On Off Off
50 Off On Off
60 Off On Off
70 Off On Off
75 Off On Off
76 Off Off On
81 Off Off Off
82 On Off Off

B. Simulasi Traffic Light Satu Jalur Dengan Hitung Mundur


lampu
Detik ke- Labe caption
Merah Hijau Kuning
1 40 On Off Off
10 30 On Off Off
20 30 On Off Off
30 10 On Off Off
40 0 On Off Off
41 35 Off On Off
50 25 Off On Off
60 15 Off On Off
70 5 Off On Off
75 0 Off On Off
76 5 Off Off On
81 0 Off Off Off
82 40 On Off Off

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

C. Simulasi Traffic Light Satu Jalur Dengan Hitung Mundur


Jalur 1 Jalur 2 Jalur 3 Jalur 4
Deti
Label

Label

Label captio
Kuning
Kuning
kuning

kuning
Merah

Merah

Merah

Merah

Hijau
Hijau

Hijau

Hijau
k

Label
ke-
caption

caption
1 40 On Off Off caption
35 Off On Off 40 On Off Off 35 Off On Off
10 30 On Off Off 25 Off On Off 30 On Off Off 25 Off On Off
20 20 On Off Off 15 Off On Off 20 On Off Off 15 Off On Off
30 10 On Off Off 5 Off On Off 10 On Off Off 5 Off On Off
35 5 On Off Off 0 Off On Off 5 On Off Off 0 Off On Off
36 4 On Off Off 5 Off Off On 4 On Off Off 5 Off Off On
40 0 On Off Off 0 Off Off On 0 On Off Off 0 Off Off On
41 35 Off On Off 40 On Off Off 35 Off On Off 40 On Off Off
50 25 Off On Off 31 On Off Off 25 Off On Off 31 On Off Off
60 15 Off On Off 21 On Off Off 15 Off On Off 21 On Off Off
70 5 Off On Off 11 On Off Off 5 Off On Off 11 On Off Off
75 0 Off On Off 6 On Off Off 0 Off On Off 6 On Off Off
76 5 Off Off On 5 On Off Off 5 Off Off On 5 On Off Off
81 0 Off Off On 0 on off Off 0 Off Off On 0 On Off Off
82 40 On Off Off 35 Off On Off 40 On Off Off 35 Off On Off

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB IV
ANALISA DAN DISPLAY PROGRAM

A. Simulasi Traffic Light Satu Jalur Tanpa Hitung Mundur


Bentuk Form:

Untuk design form dalam program ini diperlukan beberapa komponen yaitu panel,
shape, button, timer, bitbtn, serta label.
 Panel pertama digunakan untuk membentuk tampilan jalan raya dengan dua
arah
 Panel kedua dimasukkan kedalam panel pertama untuk membentuk symbol
traffinc light
 Tiga buah shape dimasukkan pada panel kedua sebagai inisiasi dari lampu
 Beberapa panel tambahan lainnya ditambahkan ke dalam panel pertama untuk
membentuk garis-garis zebra cross serta pembatas jalan raya dua arah.
 Sebuah tombol start untuk menghidupkan traffic light
 Dan sebuah stop tombol untuk mematikan traffic light
 Sebuah bitbtn dengan bkclose untuk keluar dari program

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Display:

kondisi awal form ketika di run

Pada listing program, hanya memperlihatkan beberapa procedure untuk penangan


click tombol start, stop, timer dan beberapa procedure yang diimplementasikan secara
manual.
Karena tidak ada perintah untuk mengubah apapun di dalam form, maka tampilan
running program juga tidak berubah. Hanya komponen timer saja tidak ditampilkan
pada program karena disini timer hanya berfungsi sebagai control.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

TAMPILAN UNTUK 40 DETIK PERTAMA SETELAH DITEKAN TOMBOL KLIK

TAMPILAN UNTUK 35 DETIK BERIKUTNYA

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

TAMPILAN UNTUK 5 DETIK BERIKUTNYA

Untuk kondisi pertama yang ditampilkan adalah:


1. lampu merah menyala dalam 40 detik..
2. lampu hijau menyala dalam 35 detik berikutnya setelah lampu merah
3. lampu kuning menyala dalam 5 detik berikutnya setelah lampu hijau
Kondisi ini diproses seiring aktifnya tombol start dan timer
Ada beberapa modifikasi terhadap program pada langkah kerja sebagaimana terdapat
pada jobsheet.
Pada tombol start diprogram sebagai berikut:
procedure TForm1.startClick(Sender: TObject);
begin
timer1.enabled:=true; // meng-aktifkan timer1
shape1.visible := true; // merah nyala
shape2.visible := false; // kuning padam
shape3.visible := false; // hijau padam
start1;
end;
Kemudian ada dua instruksi yang terdapat dalam procedure ini.
 Yang pertama adalah instruksi untuk mengubah enabled timer menjadi true,
yang artinya adalah perintah untuk mengaktifkan timer.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

 Yang kedua adalah pengaturan visibilitas ketiga lampu untuk syarat yang
dibutuhkan dalam program if dalam procedure star1.
 yang ketiga adalah pemanggilan procedure start1. Procedure ini
diimplementasikan untuk mendukung program stop serta untuk
mengoptimalkan proses pada tombol start jika diklik untuk kedua kali atau
seterusnya setelah tombol stop di klik.
Pada jobsheet procedure ini seharusnya tidak ada. Namun tanpa procedure ini,
waktu menyalanya sebuah lampu hanya akan sesuai pada saat klik start
pertama kali. Kemudian setelah diklik stop, lalu start lagi, interval pada pada
timer akan dirubah sesuai kondisi if yang terpenuhi. Hanya saja beberapa
instruksi lainnya tidak akan dieksekusi. Contoh ‘jika lampu merah menyala
ketika start di klik maka lampu yang menyala berganti menjadi hijau dan
interval waktu menjadi 35 detik’ dalam hal ini untuk eksekusi start setelah stop
yang akan dijalankan hanya merubah interval waktu menjadi 35 detik,
sedangkan lampu yang menyala tetap merah dan akan menyala selama 35
detik.
Ini akan menimbulkan kerancuan karena program harusnya menyalakan lampu
merah selama 40 detik.
Kegunaan procedure ini akan lebih terlihat pada program kedua
Listing programnya dalam procedure start1 adalah sebagai berikut:
procedure TForm1.start1; //program dituliskan pada privet kemudian
diimplementasikan dengan shortcut CTRL+SHIFT+C
begin
shape1.visible := true; // merah nyala
shape2.visible := false; // kuning padam
shape3.visible := false; // hijau padam
if shape1.Visible=true then
begin
timer1.Interval:=40000;
end
else
begin

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

if shape2.Visible=true then
begin
timer1.Interval:=5000;
end
else
begin
timer1.Interval:=35000;
end;
end;
end;

Pada timer diprogram sebagai berikut:


procedure TForm1.Timer1Timer(Sender: TObject);
begin
if shape1.visible = true then
begin
shape1.visible := false; // merah padam
shape2.visible := false; // kuning padam
shape3.visible := true; // hijau nyala
timer1.interval := 35000;
ini digunakan untuk menghidupkan lampu hijau, dengan syarat bahwa kondisi
lampu ketika tombol start di klik lampu merah menyala. Ini adalah kondisi
pertama mungkin untuk dipenuhi. Ketika kondisi ini terpenuhi maka interval
timer dibuat sebesar 35 detik. Maka lampu hijau akan menyala selama 35
detik
Yang perlu digaris bawahi adalah perubahan lampu yang menyala. Dengan
kondisi lampu merah menyala ketika klik, secara bersamaan harus langsung
dibuatkan agar berubah menjadi lampu hijau menyala. Ini diperlukan agar
kondisi selanjutnya satu per satu bisa dipenuhi sehingga semua lampu dapat
hidup secara bergantian. Namun dengan pemberian timer, proses pergantian
tidak akan berlangsung begitu saja, melainkan memilik jarak waktu
sebagaimana intervalnya di atur.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Pada procedure start, karena juga terdapat pemanggilan procedure start1 maka
konsep penyalaan lampu menjadi sedikit berbeda namun tidak menggangu
program. Tanpa start1, ketika lampu merah menyala saat diklik start, saat itu
juga akan berganti menjadi lampu hijau yang menyala selama 35 detik untuk
memenuhi if pertama dalam procedure timer. Namun karena di sini terdapat
pemanggilan procedure start1 maka start1 akan dipenuhi terlebih dahulu
dengan lampu merah hidup selama 40 detik. Ketika start1 sudah terpenuhi
maka eksekusi beralih pada if pertama timer, yaitu untuk menyalakan lampu
hijau 35 detik. Selang waktu 35 detik setelah lampu hijau menyal maka akan
diteruskan dengan if kedua, sebagaimana if kedua memberikan syarat lampu
hijau menyala.
end
else
if shape3.visible = true then
begin
shape1.visible := false; // merah padam
shape2.visible := true; // kuning nyala
shape3.visible := false; // hijau padam
timer1.interval := 5000;
ini adalah if kedua, dengan syarat yang harus dipenuhi adalah lampu hijau
menyala. Dengan program pada if pertama akan otomatis membuat lampu
hijau menyala, secara otomatis if kedua sudah terpenuhi. Sebelum lampu
kuning menyala, program terlebih dahulu mengeksekusi if kedua start1 dengan
menyalakan lampu hijau selama 35 detik. Barulah setelah itu perintah pada if
kedua dilakukan yaitu untuk menghidupkan lampu kuning selama 5 detik.
Setelah itu akan dilanjutkan dengan percabangan terakhir yaitu else.
end
else
begin
shape1.visible := true; // merah nyala
shape2.visible := false; // kuning nyala
shape3.visible := false; // hijau padam

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

timer1.interval := 40000;
ini adalah kondisi terakhir yang mungkin dipenuhi, yaitu lampu selain syarat if
pertama dan kedua menyala. Dengan program pada if kedua akan otomatis
membuat lampu kuning menyala setelah 35 detik lampu hijau, dan lampu
kuning bukan syarat if pertama maupun kedua. Maka secara otomatis if ketiga
sudah terpenuhi. Sama seperti sebelumnya, di sini lampu kuning akan menyala
dulu sesuai procedure start1 yaitu selama 5 detik, setelah itu baru akan
dilakukan perubahan nyala lampu yaitu lampu merah selama 40 detik. Dengan
kata lain program kembali melanjutkan if pertama.
end;
dari sini bisa dikatakan bahwa procedure start1 digunakan untuk melengkapi
proses penyalaan lampu. Jika pada timer, ketika suatu lampu menyala sebagai
syarat kondisi terpenuhi, maka lampu itu akan langsung dimatikan sesuai
instruksi yang di dalamnya, dan interval waktu hanya diberikan untuk proses
di dalam if. Dengan adanya start1 maka setiap lampu menyala akan diberi
interval termasuk dalam rangka pemenuhan kondisi if sebelum program
didalamnya dieksekusi. Sehingga ketika setelah di stop dan di start lagi, tidak
ada kerancuan lagi dala waktu penyalaan lampu. Karena semua proses sudah
ditetapkan interval waktunya.
end;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

TAMPILAN SETELAH TOMBOL STOP DI KLIK

Pada tombol stop diprogram sebagai berikut:

Untuk tombol stop, ketika di klik maka proses yang dijalankan adalah sebagai berikut:
procedure TForm1.stopClick(Sender: TObject);
begin
timer1.enabled:=false; // me-nonaktifkan timer1 //untuk mematikan timer
shape1.visible := true; // merah nyala
shape2.visible := true; // kuning padam
shape3.visible := true; // hijau padam
untuk mendisplay lagi keseluruhan shape sebagai inisiasi bahwa proses dihentikan.
end;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

B. Simulasi Traffic Light Satu Jalur Dengan Hitung Mundur


Form:

Dibandingkan dengan program A, di sini ada penambahan beberapa komponen, yaitu;


1. Sebuah timer yang akan memproses hitung mundur
2. Sebuah shape dengan caption 40. Ini digunakan untuk menampilkan hitung
mundur
3. Sebuah button dengan nama pause yang digunakan untuk menghentikan
program tepat pada perhitungan terakhirnya sebelum pause ditekan dan tanpa
mengembalikan kondisi lampu seperti semula
4. Sebuah button continue yang digunakan untuk menghidupkan lagi lampu yang
di pause dan melanjutkan hitung mundurnya dengan sisa waktu yang tersedia
5. Sebuah button reset yang berguna untuk mengembalikan semua kondisi lampu
ke keadaan semula dan menghentikan timer.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

DISPLAY:

TAMPILAN AWAL SETELAH RUN

Setelah run, terlihat tampilan program menghilangkan beberapa komponen yang ada.
Seperti reset, pause,dan continue ini karena pada keadaan awal fungsi yang bisa
dijalankan hanya start.
Deprogram pada procedure Form sebagai berikut:
procedure TForm1.FormActivate(Sender: TObject);
begin
continue.Enabled:=false; //untuk mematikan tombol continue
pause.Enabled:=false; //untuk mematikan tombol pause
reset.enabled:=false; //untuk mematikan tombol reset
continue.Visible:=false; //untuk menghilangkan tombol continnue
pause.visible:=false; //untuk menghilangkan tombol pause
reset.Visible:=false; //untuk menghilangkann tombol reset
end;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

SETELAH KLIK TOMBOL START

KONDISI PADA 40 DETIK PERTAMA DENGAN SISA WAKTU 33 DETIK SETELAH TOMBOL START DI
KLIK

TAMPILAN PADA 35 DETIK BERIKUTNYA DENGAN SISA WAKTU 29 DDETIK

TAMPILAN PADA 5 DETIK BERIKUTNYA DENGAN SISA WAKTU 3 DETIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Pada procedure start, dibandingkan dengan sebelumnya tidak ada perubaha dalam
segi program yang sudah dituliskan. Hanya saja dengan adanya hitung mundur yang
ditampilkan maka pada procedure start ditambahkan instruksi untuk mengaktifkan
timer kedua dan juga beberapa instruksi untuk mengatur tampilan button.
Beberapa instruksi yang ditambahkan tersebut adalah sebagai berikut:
1. Penambahan instruksi pada procedure timer1 dan juga procedure start1. Nantinya
akan diproses hitung mundur maka dibutuhkan sebuah label untuk menampilkan
angka. Pada property caption untuk label harus dibuat sembarang angka, agar
dalam eksekusi tidak terjadi error.
Setelah itu juga pada setiap if dalam procedure timer1 dan juga start1 diatur lagi
caption label agar sesuai dengan interval yang dituliskan.
procedure TForm1.Timer1Timer(Sender: procedure TForm1.start1;
TObject); begin
begin if shape1.Visible=true then
if shape1.visible = true then begin
begin label4.Caption:='40';
shape1.visible := false; timer1.Interval:=40000;
shape2.visible := false; end
shape3.visible := true; else
label4.caption:= '35'; begin
timer1.interval := 35000; if shape2.Visible=true then
end begin
else label4.caption:='5';
if shape3.visible = true then timer1.Interval:=5000;
begin end
shape1.visible := false; else
shape2.visible := true; begin
shape3.visible := false; label4.caption:='35';
label4.caption:='5'; timer1.Interval:=35000;
timer1.interval := 5000; end;
end end;
else end;
begin
shape1.visible := true;
shape2.visible := false;
shape3.visible := false;
label4.caption:= '40';
timer1.interval := 40000;
end;
end;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

2. timer2.enabled:=true; // meng-aktifkan timer2


timer 2 digunakan untuk memproses hitun mundur. Sama seperti procedure timer1
dengan procedure yang fungsinya saling terkait. Procedure pada timer2 juga
bergantung pada procedure timer1, namun tidak sebalikanya.
Untuk timer 2 prosesnya diselaraskan dengan timer1 dengan mengambil setiap
caption yang diproses oleh timer1 dan juga start1 sebagai sebuah data integer agar
proses hitung mundur dapat dilakukan sebagai berikut:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
waktu:=strtoint(label4.Caption);
data:= waktu - 1;
label4.Caption:=inttostr(data);
end;
setiap caption yang diprogram baik pada timer ataupun start1 akan dipanggil
sebagai data integer dalam variable waktu. Selanjutnya agar nilainya berubah
seiring berjalannya interval waktu pada timer2.
Dalam keadaan biasa, atau dalam hitung mundur untuk satu kondisi saja timer 2
akan terus berjalan sampai nilai minus yang tidak ditentukan sampai program
dihentikan.
Namun pada kasus ini program dihadirkan dalam tiga kondisi, dengan label
caption yang berbeda untuk setiap kondisi baik pada procedure timer1 maupun
start1. Sehingga ketika suatu kondisi terpenuhi maka labelnya akan berubah dan
secara tidak langsung hitung mundur timer2 dimulai lagi dari label caption yang
baru.
Beberapa prosesnya adalah sebagai berikut:
Ketika start diklik maka procedure start1 aktif bersamaan procedure timer1.
Ketika lampu merah aktif, if pertama dari procedure start1 akan di eksekusi maka
waktu berjalan selama 40 detik, dan label caption menjadi 40. Selang waktu 40
detik tersebut timer2 dua akan bekerja dengan nilai pada label berkurang 1 setiap
detiknya karena interval timer2 adalah 1 detik. Label akan tiba pada angka 0
setelah 40 detik, namun sebelum memasuki angka minus, procedure timer akan
memproses if pertama setelah if pada procedure start1 terpenuhi selama 40 detik,

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

yaitu menghidupkan lampu hijau selama 35 detik dan label caption juga diubah
jadi 35. Karena label captionnya dirubah, maka timer dua akan langsung memulai
perhitungan lagi pada angka 35 sebelum memasuki nilai minus. Begitu seterusnya
selama program berjalan.
3. Penambahan instruksi untuk menghilangkan beberapa komponen button.
continue.Enabled:=false;
pause.Enabled:=true;
reset.enabled:=true;
continue.Visible:=false;
pause.visible:=true;
reset.Visible:=true;

SETELAH KLIK TOMBOL PAUSE

TAMPILAN SETELAH DITEKAN PAUSE

Ketika tombol pause diklik maka hitung mundur berhenti pada angka terakhir yang
ditampilkan, serta lampu terakhir yang hidup. Kemudian muncul sebuah tombol
continue. Pause memilik program yang singkat karena hanya digunakan untuk
menghentikan lampu dan juga hitung mundur tanpa perubahan parameter lainnya
maka cukup dilakukan dengan merubah enabled kedua timer menjadi false sebagai
berikut:

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

procedure TForm1.pauseClick(Sender: TObject);


var waktu1:integer;
begin
timer1.enabled:=false; // me-nonaktifkan timer1
timer2.enabled:=false; // me-nonaktifkan timer2
waktu1:=strtoint(label4.Caption);
timer1.Interval:=waktu1 * 1000;
continue.enabled:=true;
start.Enabled:=true;
reset.enabled:=true;
start.Visible:=true;
continue.Visible:=true;
reset.Visible:=true;
penambahan tombol continue di sini dimaksudkan untuk memberikan pilihan untuk
memulai lagi program dengan sisa waktu yang tertera saat pause. Sedangkan tombol
start digunakan untuk memberikan pilihan untuk memulai perhitungan dari awal lagi.
Dan tombol reset digunakan untuk menghentikan proses dan mengembalikan
kondisinya seperti semula.
end;

SETELAH KLIK TOMBOL CONTINUE

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

TAMPILAN SETELAH DITEKAN CONTINUE

Dengan di-klik-nya tombol continue, berarti bahwa pilihan yang diambil adalah untuk
melanjutkan proses dengan sisa waktu yang tersedia. Untuk memproses program
seperti ini, maka data pada caption harus diambil lagi, dan digunakan unntuk merubah
interval pada timer1 agar berjalan selama detik yang sama dengan caption dari label.
procedure TForm1.continueClick(Sender: TObject);
var waktu1:integer;
begin
timer1.enabled:=true; // meng-aktifkan timer1
timer2.enabled:=true; // meng-aktifkan timer2
waktu1:=strtoint(label4.Caption);
timer1.Interval:=waktu1 * 1000;
start.Visible:=false;
Dalam display program ketika di pause menunjukkan angka 25 pada label4 kemudian
caption pada label4 dipanggil sebagai integer dalam variable waktu. Dan digunakan
sebagai nilai dari interval timer1 dengan dikalikan seribu karena satuan pada interval
adalah milisekon. Dari sini lampu merah akan menyala sesuai sisa waktu yaitu 25,
dan ketika lampu berubah maka, intevalnya akan kembali sesuai instruksi pada
procedure timer1 dan procedure start1.
Yang perlu diperhatikan disini adalah interal yang dirubah adalah interval pada timer1
karena yang menentukan lamanya suatu lampu akan hidup adalah timer 1. Sedangkan
timer 2 hanya berfungsi untuk menampilkan hitung mundur, maka intervalnya harus

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

dibiarkan tetap berada dalam angka 1000ms atau 1 detik agar pengurangan angka
pada label terjadi setiap detik, sehingga selaras denga interval waktu pada timer1.
end;

TAMPILAN SETELAH KLIK RESET

TAMPILAN SETELAH DITEKAN RESET

Ada penambahan beberapa instruksi pada tombol reset jika dibandingkan dengan
tombol sebelumnya. Namun hanya instruksi sederhana untuk menghilangkan tombol
pause, continue, dan reset itu sendiri sebagai inisiasi bahwa program kembali ke
kondisi awal.
procedure TForm1.resetClick(Sender: TObject);
begin
timer1.enabled:=false; // me-nonaktifkan timer1
timer2.enabled:=false; // me-nonaktifkan timer2
shape1.visible := true; // merah nyala
shape2.visible := true; // kuning padam
shape3.visible := true; // hijau padam
label4.Caption:='';
start.Enabled:=true;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

start.visible:=true;
pause.enabled:=false;
pause.Visible:=false;
continue.Enabled:=false;
continue.Visible:=false;
reset.Visible:=false;
end;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

C. Simulasi Traffic Light Dengan Empat Jalur Dan Hitung Mundur


FORM:

Untuk traffic light empat jalur, cukup ditambahkan desain yang sama seperti
sebelumnya dengan masing-masing jalur memiliki timernnya tersendiri. Setiap jalur
mempunyai dua timer, yang pertama digunakan untuk mengontrol lampu pada jalur
tersebut, dan timer kedua untuk menampilkan hitung mundur.
Pembagian timer:
1. Timer 1 untuk control lampu pada jalur 1
Timer 2 untuk control lampu pada jalur 1
2. Timer 3 untuk control lampu pada jalur 2
Timer 4 untuk control lampu pada jalur 2
3. Timer 5 untuk control lampu pada jalur 3
Timer 6 untuk control lampu pada jalur 3
4. Timer 7 untuk control lampu pada jalur 4
Timer 8 untuk control lampu pada jalur 4

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

DISPLAY:

Program ini walaupun terlihat sedikit rumit dengan listing program yang cukup
panjang karena digunakan timer yang berbeda untuk masing-masing jalur sehingga
pada program dibuatkan procedurenya satu persatu. namun pada dasarnya setiap
procedure yang ada pada program ini sama sekali tidak berbeda secara struktur
maupun instruksi yang ada jika dibandingkan dengan program sebelumnya. Dimana
timer pertama pada setiap jalur digunakan mengontrol lampu, maka untuk masing-
masinya harus dibuatkan procedure tambahan yaitu start1 untuk jalur 1, start2 untuk
jalu 2, start3 untuk jalur 3 dan start4 untuk jalur 4. Kemudian pada masing-masing
jalur juga ditambahkan satu timer lagi untuk mengatur hitung mundur, sehingga
terdapat procedure yang berbeda untuk masing-masing timer.
Perbedaan pada tiap-tiap procedure ini hanya terdapat pada nama komponen yang
digunakan dan selebihnya baik struktur, konsep dan juga instruksi adalah sama.
Satu poin lagi yang berbeda adalah, lampu yang dinyalakan terlebih dahulu. Ada dua
kelompok penyalaan lampu yaitu:
1. Jalur 1 dan 3 menyala bersamaan dengan lampu dan waktu yang sama. Lampu
pertama yang menyala pada jalur ini adalah lampu merah dengan waktu 40 detik,
kemudian menyesuaikan dengan instruksi yang ada pada timer untuk jalur 1 dan
jalur 3

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

2. Jalur 2 dan 3 menyala bersamaan dengan lampu dan waktu yang sama namun
berbeda dari jalur 1 dan 3. Lampu pertama yang menyala pada jalur ini adalah
lampu hijau dengan waktu 35 detik, kemudian menyesuaikan dengan instruksi
yang ada pada timer untuk jalur 2 dan jalur 4

1) 35 detik pertama pada jalur 2 dan 4 dengan lampu hijau menyala dan sisa waktu 32 detik

2) 40 detik pertama jalur 1 dan 3 dengan lampu merah menyala dengan sisa waktu 37 detik

3) 5 detik berikutnya pada jalur 2 dan 4 dengan lampu kuning menyala dan sisa waktu 2 detik

4) masih dalam interval 40 detik pertama pada jalur 1 dan 3 dengan lampu merah masih menyala dan sisa waktu 3
detik

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

5) 40 detik berikutnya pada jalur 2 dan 4 dengan lampu merah menyala dan sisa waktu 22 detik

6) 35 detik berikutnya pada jalur 1 dan 3 dengan lampu hijau menyala dan sisa waktu 17 detik

7) masih dalam interval 40 detik jalur 2 dan 4 dengan lampu merah masih menyala dan sisa waktu 3 detik

8) 5 detik berikutnya pada jalur 1 dan 3 dengan lampu kuning menyala dan sisa waktu 3 detik

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

SETELAH KLIK TOMBOL PAUSE

Tampilan setelah tombol pause ditekan, lampu berhenti pada lampu terakhir yang
menyala dan hitung mundur berhenti dan menampilkan angka terakhir yang ditampika
saat tombol pause di tekan.
Jika pada program sebelumnya hanya dibuatkan untuk mengubah enabled timer 1 dan
2 menjadi false. Dalam program ini ditambahkan kedalamnya instruksi untuk
merubah enabled seluruh timer.

SETELAH KLIK TOMBOL CONTINUE

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Di sini semua interval pada timer satu persatu harus di buatkan seperti procedure
continue sebelumnya dengan cara yang sama.

SETELAH KLIK TOMBOL RESET

Di sini semua timer di berhentikan dan semua lampu didisplaykan sebagaimana


procedure reset untuk program sebelumnya.

IMPLEMENTASI PROGRAM

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB VI
KESIMPULAN

Setelah dilakukan percobaan membuat control traffic light, dapat ditarik kesimpulan sebagai
berikut:

1. Simulasi control traffic light dapat dilakukan dengan menggunakan timer


2. Untuk setiap inisiasi lampu, interval timer di atur dalam interval yang berbeda,
sehingga instruksi selanjutnya akan dijalankan setelah interval waktu tersebut
3. Pengaturan interval dapat langsung dibuatkan pada property interval
komponen timer, untuk timer yang digunakan untuk penggunaan insterval atau
jarak waktu yang konstan setiap kali menjalankan instruksi
4. Untuk timer yang digunakan untuk memberikan interval pada instruksi
perubahan nyala lampu, maka interval harus dirubah melalui listing program
sesuai dengan kondisi yang dibutuhkan

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER

Anda mungkin juga menyukai