DAN
PEMROGRAMAN KOMPUTER
PERCOBAAN 10
VARIASI RUNNING LED
BAB I
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK
TUJUAN
BAB II
TEORI DASAR
Ada bebeapa instruksi logika yang ada pada Delphi, diantaranya: SHL dan SHR. SHL
merupakan fungsi yang dapat merubah data (parameter) yang diberikan kepada fungsi
tersebut dengan cara menggeser posisi bit biner dari data tersebut 1 bit ke kiri atau lebih
(tergantung isntuksi). Sebaliknya SHR akan menggeser posisi bit biner dari data tersebut
1 bit atau lebih ke kanan (tergantung instruksi). Contoh:
Bila variable Angka berisi nilai 126 desimal = FE hexadecimal = 11111110 biner
dan dilakukan instruksi SHL 1 terhadap data tersebut yaitu: Nilai := Nilai Shl 1 maka
hasilnya adalah Nilai berisi 11111100 biner. Jika ingin menggeser 2 bit ke kiri maka
instruksinya adalah Nilai := Nilai Shl 2. Demikian sebaliknya jika dilakukan instuksi SHR
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 waktu 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 dilakui
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.
Dengan menggunakan timer bersama fungsi logika SHL dan SHR dapat dilakukan
pengontrolan operasi dari led peraga seperti gambar 1 dengan berbagai variasi (running led).
BAB III
LANGKAH KERJA
5. Double click pada icon Timer dan lengkapi program menjadi sbb:
implementation
{$R *.DFM}
procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';
function PortIn(Port : Word) : Byte;stdcall; external 'io.dll';
Var
Data : byte;
end;
end.
6. Ganti nilai operand 1 pada shl sesuai table dan lengkapi isi tabel tersebut:
No. Nilai Operand Geser Keadaan Lompatan Bit dan arahnya
1. 1
2. 2
3. 3
4. 4
5. 5
Buat tabel ke 2 untuk interval waktu 500 (0,5 detik)
Lakukan dengan cara yang sama dengan aplikasi A dengan mengganti fungsi SHL
dengan SHR.
Tugas:
Buat aplikasi untuk menggerakkan led dengan bergeser 1 bit ke kiri dan sesampai diujung
kiri kembali bergerak ke kanan 1 bit hingga ujung kanan, dan berulang kembali.
BAB IV
ANALISA DAN DISPLAY PROGRAM
Untuk progam dalam bab iii, sementara tidak bisa dijalankan dulu karena membutuhkan
perangkat yang mempunyai port parallel sedangkan perangkat yang digunakan praktikan
tidak kompatibel dengan itu.
Sebagai simulasi bagaimana nantinya program akan dijalankan dengan LED dan port
parallel, dapat dibuat program sebagai berikut dengan menggunakan komponen shape
sebagai inisiasi dari LED
Bentuk form:
Display:
Ketika running berjalan, kondisi warna shape secara keseluruhan adalah hitam. Diproses
dengan listing program berikut:
procedure TForm1.FormActivate(Sender: TObject);
begin
matisemua;
n:=1;
end;
di sini bisa kita lihat bahwa, tidak ada proses yang terlihat digunakan secara langsung untuk
mengubah warna dari shape. Melainkan pada listing program di atas, bisa dilihat terdapat satu
perintah matisemua; matisemua adalah sebuah procedure yang didalamnya terdapat listing
program untuk mengubah warna shape menjadi hitam.
Maka ketika procedure ini di panggil dalam procedure FormActive, maka procedure
matisemua akan berjalan seiring berjalannya procedure pemanggilnya.
Kemudian dalam procedure ini juga terdapat pemberian nilai n=1. Ini nantinya akan berguna
untuk fungsi case.
end.
procedure TForm1.matisemua; //dalam procedure ini bisa dilihat bahwa tidak ada
deklarasi suatu data dengan tipe data apapun di dalamnya. Hal ini boleh saja, karena proses
yang terjadi dalam procedure ini tidak memuat suatu proses yang membutuhkan input data
apapun melainkan hanya proses untuk mengubah salah satu property dari komponen shape
yaitu warnanya.
begin
shape1.Brush.Color := clblack;
shape2.Brush.Color := clblack;
shape3.Brush.Color := clblack;
shape4.Brush.Color := clblack;
shape5.Brush.Color := clblack;
shape6.Brush.Color := clblack;
shape7.Brush.Color := clblack;
shape8.Brush.Color := clblack;
end;
beralih ke program utama pada program ini, yaitu timer yang berguna untuk pengaturan
jalannya program.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
case n of // disini banyaknnya case adalah sebanyak n, dengan nilai n sudah ditetapkan
sebesar 1 pada procedure form active
1: begin
matisemua;
shape1.Brush.Color:=clred;
end;
2: begin
matisemua;
shape2.Brush.Color:=clred;
end;
3: begin
matisemua;
shape3.Brush.Color:=clred;
end;
4: begin
matisemua;
shape4.Brush.Color:=clred;
end;
5: begin
matisemua;
shape5.Brush.Color:=clred;
end;
6: begin
matisemua;
shape6.Brush.Color:=clred;
end;
7: begin
matisemua;
shape7.Brush.Color:=clred;
end;
8: begin
matisemua;
shape8.Brush.Color:=clred;
end;
di sini case digunakan untuk memasukkan urutan proses hidupnya lampu secara bergiliran.
Mesikpun pada dasarnya case berfungsi untuk memberikan beberapa pilihan kondisi yang
akan dijalankan, namun karena case berada dalam procedur timer, maka semua case yang ada
akan digilir untuk dijalankan seiring dengan interval timer yang sudah di setting.
end;
inc(n);
// disini setiap nilai case akan ditambah satu, maka seiring dengan perubahan interval pada
timer, maka case n yang tadinya bernilai satu pada detik pertama, kemudian pada detik kedua
dan seterusnya. Besarnya interval sudah diatur pada property interval timer sebesar 1000ms
atau 1 sekon.
if n=9 then n:=1
//pada case hanya terdapat 8 case yang mungkin untuk digilir, sedangkan timer akan terus
berjalan dan terus menambah nilai n tiap detiknya. Agar proses pada case dapat terus diulang,
maka setiap n bernilai 9(yang mana case hanya sampai 8, maka detik ke 9 tidak ada proses
untuk dijalankan) n dirubah nilainya menjadi 1, sehingga proses dimulai lagi dari case
pertama, begitu seterusnya
Untuk simulasi instruksi SHR, atau penggeseran 1 bit kea rah kanan, maka pada simulasi ini
dapat dibuatkan urutan case, dimana urutan pertama adalah dengan shape 1 berwarna merah,
kemudian shape dua lalu sampai pada shape terakhir. Kemudian pada detik ke 9 dan
seterusnya proses akan mulai lagi dari awal.
end;
untuk simulasi instruksi dengan SHL atau pergeseran bit ke arah kira, dapat dilakukan dengan
mengubah case. Dimana case pertama adalah untuk merubah shape 8 menjadi berwarna
merah, kedua shape7, dan seterusnya menurun sampai pada shape1.
Untuk simulasi berulang atau bolak-balik, maka case nya harus ditambahkan dimana, case
pertama dimulai pada shape1 dan berakhir pada shape8 di case ke 8, kemudian ditambahkan
case ke 9 untuk mengontrol lagi shape8 dan berakhir pada case ke 16 untuk shape 1. Karena
case nya bertambah menjadi 16 case, maka interval timer akan dipakai sampai detik ke 16
dimana n bernilai 16, sehingga agar proses dapat diulang maka pada setiap n bernilai 17 harus
dirubah kembali menjadi n bernilai 1.
Namun pada program ini, prkatikan menambahkan beberapa case lagi yaitu setelah case ke 8
case ke 9 digunakan untuk mengubah warna shape 8 menjadi hitam untuk melihat perubahan
pergeserannya. Sehingga untuk simulasi pergeserah SHL dimulai pada case ke 10 sampai
case ke 17, kemudian ditambah case 18 untuk mengubah warna shape menjadi hitam.
Sehingga perubahan nilai n menjadi 1 agar proses dapat diulang berada pada nilai n ke 19.
BAB V
KESIMPULAN
Berdasarkan percobaan yang telah dilakukan, maka dapat ditarik kesimpulan sebagai berikut:
1. Operator logika SHL digunakan untuk menggeser nilai bit ke arah kiri sebanyak yang
ditentukan di dalam program. Jika dituliskan SHL 1 maka bit akan bergeser satu bit
kea rah kiri
2. Operator logika SHR digunakan untuk menggeser nilai bit ke arah kanan sebanyak
yang ditentukan di dalam program. Jika dituliskan SHR 2 maka bit akan bergeser satu
bit kea rah kanan
3. Timer digunakan untuk memberikan jarak antar instruksi dengan mengatur interval
sesuai yang diinginkan. Jika interval 1000(1 detik) maka suatu instruksi akan
dieksekusi 1 detik setelah instruksi sebelumnya dieksekusi