Anda di halaman 1dari 11

ALGORITMA

DAN
PEMROGRAMAN KOMPUTER

PERCOBAAN 10
VARIASI RUNNING LED

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. Mengetahui penggunaan operator logika SHL dan SHR


2. Mengetahui penggunaan komponen Timer
3. Membangun aplikasi I/O variasi running led

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB II
TEORI DASAR

SHL dan SHR

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).

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB III
LANGKAH KERJA

A. Membangun aplikasi led hidup 1 buah dan berjalan ke kiri


1. Buatlah sebuah form sederhana yang berisi :
i. 2 komponen button (start dan stop)
ii. 1 komponen bkclose
iii. 1 komponen timer
2. Set property interval pada timer dengan nilai 1000 (1 detik) dan property enabled
false
3. Double click pada button start dan lengkapi program berikut: procedure
TForm1.ButtonStartClick(Sender: TObject);
begin
timer1.enabled:=true; // meng-aktifkan timer
end;
4. Double click pada button stop 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 PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';
function PortIn(Port : Word) : Byte;stdcall; external 'io.dll';
Var
Data : byte;

procedure TForm1.Button1Click(Sender: TObject);


begin timer1.enabled:=true;

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

end;

procedure TForm1.Button2Click(Sender: TObject);


begin timer1.enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);


begin
portout($378,data);
data := data shl 1;
if data=$00 then
data := $01;
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)

B. Membangun aplikasi led hidup 1 buahJ dan berjalan ke kanan

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.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

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:

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Display:

KONDISI AWAL KETIKA RUNNING PROGRAM

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.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

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

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

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

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

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.

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER


POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

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

ZEN RESTI MAULANA/1901031005 ALGORITMA DAN PEMROGRAMAN KOMPUTER

Anda mungkin juga menyukai