uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Menus, StdCtrls, ExtCtrls, MPlayer;

dokumen-dokumen yang mirip
1 Latihan 6 Ketentuan Soal:

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 STRUKTUR KEPUTUSAN-1

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 LOGIKA PERULANGAN-1

PERCOBAAN 4 GRAFIKA KOMPUTER DENGAN DELPHI

ANGKA TERBILANG. Program ini terdiri dari beberapa komponen yaitu:

Minggu ke : 7. Bentuk umum : While <kondisi> do <Pernyataan>

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 PROCEDURE DAN FUNCTION

Minggu ke : 4 Penyusun : Dian Usdiyana Rini Marwati Materi : 4. Pernyataan Kondisional 4.1 If then. 4.2 If. then.else..

For <pencacah> := <nilaiawal> to <nilaiakhir> do <pernyataan>

1. Menggambar ANAK PANAH. Setelah kita RUN dan saya klik button ANAK PANAH maka akan muncul gambar anak panah seperti nampak pada gambar dibawah ini

ALGORITMA PENCARIAN. c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian.

LABORATORIUM KOMPUTER TEKNIK INFORMATIKA STT DHARMA ISWARA MADIUN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK-1 TIPE DATA DAN VARIABEL

PROSEDUR. Mahasiswa dapat memahami penggunaan prosedur. Mahasiswa dapat membuat prosedur. Mahasiswa dapat memahami variabel lokal dan variabel global

PERCOBAAN I STATEMENT

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ExtDlgs, TeeProcs, TeEngine, Chart,

Lampiran 1. Form 01. unit Skripsi; interface. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math;

Delphi 7. Merencang Program dengan Fungsi IF. Ketentuan Soal : 1. Jabatan : JABATAN GAJI POKOK Direktur Manager Staff

BAB III ANALISIS DAN PERANCANGAN MODEL SEDERHANA SISTEM KONTROL ELEVATOR. Pada Bab III akan dijelaskan mengenai bagaimana sistem kontrol

URAIAN POKOK PERKULIAHAN. (1) Nilai akar-akar, x 1 dan x 2, dapat ditentukan dengan menggunakan rumus:

4.1 Struktur Rancangan Puncak-Turun dengan Procedure

Modul I Mengenal Pemrograman Delphi

MODUL 2 EVEN, VARIABEL DAN FUNGSI KONVERSI

GRAPHICS AND VISUALIZATION. Logo

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type

PRAKTIKUM 3 BERBAGAI MACAM TIPE DATA

LAMPIRAN A RANGKAIAN ELEKTRONIKA LENGKAP

PRAKTIKUM 3 BERBAGAI MACAM TIPE DATA (Integer dan Real)

Kontrol Data Set dan Navigasi Tabel

URAIAN POKOK PERKULIAHAN

Pengenalan Borland Delphi 7.0

Kodingan untuk Membuat Grafik dari Persamaan Garis Lurus dan Kuadrat Menggunakan Delphi 7

PROSEDUR DENGAN PARAMETER. Mahasiswa dapat memahami penggunaan prosedur dengan parameter. Mahasiswa dapat membuat prosedur dengan parameter.

Modul I Mengenal Pemrograman Delphi

Daftar Pustaka. Supriyadi, Moh Pemrograman Sistem Pengendali dengan Delphi.

FieldName DataType FieldSize Status UserPass Text 40 Primary Key Nama_User Text 30 Password Text 10

Borland Delphi 7. Created By 1

LAMPIRAN A: DDL DATABASE

LAMPIRAN A: LISTING PROGRAM

Object Name Caption. RadioButton1 rpria Pria RadioButton2 rwanita Wanita. ComboBox1 ckode - Edit1 enapar - Edit2 ehrg - Edit3 ejumbel - Edit4 etotal -

LAMPIRAN. Universitas Sumatera Utara

Elga Lesmana

BAB IV IMPLEMENTASI DAN PENGUJIAN

URAIAN POKOK PERKULIAHAN

BAB 1 PENDAHULUAN 1.1 Latar Belakang

DAFTAR PUSTAKA. Choiron, Moch. Agus. (tanpa tahun). Interpolasi. Malang.

LANJUTAN APLIKASI DATABASE

PEMROGRAMAN DATABASE DENGAN DELPHI DAN MICROSOFT ACCESS

DAFTAR PUSTAKA. Abdia, Gunaidi Away.2008.The Shortcut Of Delphi For ACCOUNTING.Bandung : Informatika.

LANJUTAN APLIKASI DATABASE

Mengenal pemrograman multithread dengan Delphi 7

STRUCTURED QUERY LANGUAGE (SQL)

Yohanas auri yahoo.com

PRAKTIKUM 1 2 MENGENAL DELPHI

LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI GRAFIS INTENSITAS WARNA DASAR RGB PADA GAMBAR BITMAP MENGGUNAKAN DELPHI7

Pertemuan ke 5 Perulangan. Pemrograman 2 Dosen : Eko Budi Setiawan, S.Kom., M.T. Universitas Komputer Indonesia

LAMPIRAN A FOTO ALAT MONITORING KONDISI GUNUNG BERAPI NIRKABEL

Bahasa Pemrograman (TD22093)

Perkuliahan Pemrograman II (Teori / Praktikum) Minggu 6

& PEMROGRAMAN. Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

LAMPIRAN. A. Flowchart 1. Contoh Flowchart Penempatan Subjek. Gambar 185. Flowchart Penempatan Subjek AB

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

Visual Delphi 7 D3 TI FMIPA UNS Sakroni

Membuat File Dynamic Link Library (*.DLL) Menggunakan Borland Delphi

Akses Port Paralel (Menggunakan Delphi 7.0) (Drs. Agfianto Eko Putra, M.Si 2005)

Teori Algoritma TIPE DATA

PEMRORAMAN DATA BASE (FORNT END)

B. Kompetensi Mahasiswa dapat memahami tentang kendali kesalahan dengan paritas serta dapat melakukan penghitungan paritas.

BAB 5 ALGORITMA A PRIORI. A. Algoritma A Priori

PEMROGRAMAN DASAR XI TKJ SMK NEGERI 1 KUPANG

BAB V JOBSHEET 5. Antarmuka dengan Port Parallel (Input)

Pertemuan -1 BORLAND DELPHI

Modul II Object Bahasa Pascal

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math, ExtCtrls, ComCtrls;

BAB IV Antarmuka dengan Port Paralel (Output)

DAFTAR LAMPIRAN. Panduan Pengguna Program Bantu FPP Bahasa Pemrograman untuk Program Bantu FPP

Pengenalan Lingkungan Delphi

Bab Konsep Dasar Program 2.1 Objek

Mengukur Waktu Tayang Form

Array merupakan sekumpulan elemen berindeks yang memiliki tipe yang sama (base type). Pendefinisian array ditunjukkan dengan format:

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

DIKTAT PERKULIAHAN PEMROGRAMAN II BORLAND DELPHI BAB VII PERULANGAN

BAB IV PERULANGAN (For To Do, For Downto Do, Repeat Until, While Do)

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

KONSEP DASAR BAHASA PASCAL

BAB VI SEARCHING (PENCARIAN)

MENGGAMBAR ROTASI TERHADAP SUMBU Y. Pada borland delphi buatlah tampilan form seperti berikut :

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

IV. HASIL DAN PEMBAHASAN

Membuat Keylogger dan Antinya pada sistem operasi Windows

BAB III GRAFIKA 2D. Xv = Xvmin + round((xw - Xwmin)*(Xvmax-Xvmin)/(Xwmax-Xwmin)) Yv = Yvmax - round((yw - Ywmin)*(Yvmax-Yvmin)/(Ywmax-Ywmin))

Pengenalan Pascal. Sejarah Singkat Pascal

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 16

BAB II LANDASAN TEORI

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

MODUL IX PEMROGRAMAN DATABASE DENGAN DELPHI. Untuk praktikum ini kita menggunakan Ms. Access sebagai databasenya.

MODUL 1. Struktur Bahasa PASCAL secara umum

Transkripsi:

55 Lampiran 1: Source code program sistem kontrol elevator sederhana unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Menus, StdCtrls, ExtCtrls, MPlayer; type Tarah = (arahnaik=1, arahturun=0); Tlantai = record tombolnaik: TImage; tombolturun: Timage; tombolelev: Timage; labelelev: Tlabel; TForm1 = class(tform) LblLt1: TLabel; LblLt2: TLabel; LblLt3: TLabel; LblLt4: TLabel; LblLt5: TLabel; LblLt6: TLabel; LblLt7: TLabel; naik1: TImage; naik2: TImage; naik3: TImage; naik4: TImage; naik5: TImage; naik6: TImage; Turun7: TImage; Turun6: TImage; Turun5: TImage; Turun4: TImage; Turun3: TImage; Turun2: TImage; lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; lbl4: TLabel; lbl5: TLabel;

56 lbl6: TLabel; lbl7: TLabel; lampu1: TImage; lampu2: TImage; lampu3: TImage; lampu4: TImage; lampu5: TImage; lampu6: TImage; lampu7: TImage; IndLtLft: TLabel; IndArahLft: TImage; Diam: TTimer; elevnaik: TTimer; elevturun: TTimer; layan: TTimer; Label1: TLabel; timer: TTimer; Shape1: TShape; Shape2: TShape; Shape3: TShape; Shape4: TShape; Shape5: TShape; Shape6: TShape; Shape7: TShape; Shape8: TShape; Shape9: TShape; pintukiri: TShape; pintukanan: TShape; MediaPlayer1: TMediaPlayer; procedure lbl1click(sender: TObject); procedure ceknyampelantai(); procedure bukapintu(); procedure tutuppintu(); procedure naik1lantai(); procedure turun1lantai(); function carilantai(sender: TObject):integer; function caritarget():integer; procedure FormCreate(Sender: TObject); procedure naik1click(sender: TObject); procedure Turun2Click(Sender: TObject); procedure elevnaiktimer(sender: TObject); procedure elevturuntimer(sender: TObject); procedure DiamTimer(Sender: TObject); procedure layantimer(sender: TObject); procedure timertimer(sender: TObject);

57 private { Private declarations } public lantai: array[1..7] of Tlantai; posisi: integer; target: integer; arah: Tarah; path: string; naik: array[1..7] of boolean; turun: array[1..7] of boolean; car: array[1..7] of boolean; ting: boolean; { Public declarations } var Form1: TForm1; implementation {$R *.dfm} //variabel-variabel beserta nilai awalnya beserta keadaan awal procedure TForm1.FormCreate(Sender: TObject); var i:integer; ting:=false; diam.enabled := true;//keadaan awal adalah diam target := 0;//target awal 0 posisi := 1;//posisi awal 1 arah := arahnaik;//arah elevator awal naik //permintaan awalnya bernilai 0 semua for i := 1 to 7 do naik[i] := false; turun[i]:= false; car[i]:= false; //tombol naik lantai[1].tombolnaik:= naik1; lantai[2].tombolnaik:= naik2; lantai[3].tombolnaik:= naik3; lantai[4].tombolnaik:= naik4;

58 lantai[5].tombolnaik:= naik5; lantai[6].tombolnaik:= naik6; lantai[7].tombolnaik:= nil; //tombol turun lantai[1].tombolturun:= nil; lantai[2].tombolturun:= turun2; lantai[3].tombolturun:= turun3; lantai[4].tombolturun:= turun4; lantai[5].tombolturun:= turun5; lantai[6].tombolturun:= turun6; lantai[7].tombolturun:= turun7; //tombol car lantai[1].tombolelev:= lampu1; lantai[2].tombolelev:= lampu2; lantai[3].tombolelev:= lampu3; lantai[4].tombolelev:= lampu4; lantai[5].tombolelev:= lampu5; lantai[6].tombolelev:= lampu6; lantai[7].tombolelev:= lampu7; lantai[1].labelelev:=lbl1; lantai[2].labelelev:=lbl2; lantai[3].labelelev:=lbl3; lantai[4].labelelev:=lbl4; lantai[5].labelelev:=lbl5; lantai[6].labelelev:=lbl6; lantai[7].labelelev:=lbl7; path:=extractfilepath(application.exename); mediaplayer1.filename:=path + 'Elevator bell ding.wav'; mediaplayer1.open; function TForm1.carilantai(Sender: TObject): integer; var i:integer; for i := 1 to 7 do if lantai[i].tombolnaik = sender then break; if lantai[i].tombolturun = sender then break; if lantai[i].tombolelev = sender then break; if lantai[i].labelelev = sender then break; result := i; //tombol elevator ditekan

59 procedure TForm1.lbl1Click(Sender: TObject); var i: integer; i := carilantai(sender); if posisi <> i then lantai[i].tombolelev.picture.loadfromfile(path + 'tombol hidup.bmp'); lantai[i].labelelev.font.color:=clblack; car[i] := true; //Tombol naik lantai ditekan procedure TForm1.naik1Click(Sender: TObject); var i: integer; i := carilantai(sender); lantai[i].tombolnaik.picture.loadfromfile(path + 'tombol naik hidup.bmp'); naik[i] := true; //Tombol turun lantai ditekan procedure TForm1.Turun2Click(Sender: TObject); var i: integer; i := carilantai(sender); lantai[i].tombolturun.picture.loadfromfile(path + 'tombol turun hidup.bmp'); turun[i] := true; //Request Resolver function TForm1.caritarget: integer; var i,j:integer; result := 0; if arah = arahnaik then for i := posisi to 7 do if naik[i] or car[i] then result := i; break; if i = 7 then for j := 7 downto 1 do if car[j] or naik[j] or turun[j] then result :=j; break;

60 end for i := posisi downto 1 do if turun[i] or car[i] then result := i; break; if i = 1 then for j := 1 to 7 do if car[j] or naik[j] or turun[j] then result :=j; break; //fungsi pencari posisi elevator dan indikator elevator car procedure TForm1.ceknyampelantai(); case pintukiri.top of 30 : posisi:=7; IndLtLft.caption:='7'; ting:=true; 130 : posisi:=6; IndLtLft.caption:='6'; ting:=true; 230 : posisi:=5; IndLtLft.caption:='5'; ting:=true; 330 : posisi:=4; IndLtLft.caption:='4'; ting:=true; 430 : posisi:=3; IndLtLft.caption:='3'; ting:=true; 530 : posisi:=2; IndLtLft.caption:='2'; ting:=true; 630 : posisi:=1; IndLtLft.caption:='1'; ting:=true; ting:=false; // variabel ting menunjukan bahwa elevator telah sampai pada lantai tujuan if arah = arahnaik then indarahlft.visible := true; IndArahLft.Picture.LoadFromFile(path + 'naik.bmp'); end if arah = arahturun then indarahlft.visible := true; IndArahLft.Picture.bitmap.LoadFromFile(path + 'turun.bmp'); end

61 //Keadaan diam procedure TForm1.DiamTimer(Sender: TObject); tutuppintu;//output tp diam.enabled := false; //mencari target lantai berikutnya dengan memanggil request resolver target := caritarget; ceknyampelantai; //mencari posisi dari elevator //transisi keadaan if target = 0 then diam.enabled := true //jika target 0 maka kembali ke keadaan diam if target > posisi then elevnaik.enabled := true //jika target > posisi maka keadaan naik if target < posisi then elevturun.enabled := true //jika target < posisi maka keadaan turun layan.enabled := true; //jika target = posisi maka keadaan bukapintu //Keadaan naik procedure TForm1.elevnaikTimer(Sender: TObject); ceknyampelantai; naik1lantai;//output k arah := arahnaik;//output arah naik //mencari target lantai berikutnya dengan memanggil request resolver target := caritarget; elevnaik.enabled := false; //transisi keadaan if (target > posisi) or not ting then elevnaik.enabled := true //masuk ke keadaan naik lagi

62 layan.enabled := true; //masuk ke keadaan bukapintu //Keadaan turun procedure TForm1.elevturunTimer(Sender: TObject); ceknyampelantai; turun1lantai;//output t arah := arahturun;//output arah turun //mencari target lantai berikutnya dengan memanggil request resolver target := caritarget; elevturun.enabled := false; //transisi keadaan if (target < posisi)or not ting then elevturun.enabled := true //masuk ke keadaan turun lagi layan.enabled := true; //masuk ke keadaan bukapintu //keadaan bukapintu procedure TForm1.layanTimer(Sender: TObject); layan.enabled:=false; bukapintu;//output bp timer.enabled := true;//masuk ke transisi timer < 10 //mematikan lampu tombol car lantai ke-i dan menjadikan car(i) = 0 car[posisi] := false; lantai[posisi].tombolelev.picture.loadfromfile(path + 'tombol mati.bmp'); lantai[posisi].labelelev.font.color:=clwhite; //mematikan lampu tombol naik lantai ke-i dan menjadikan naik(i) = 0 naik[posisi] := false; if posisi <> 7 then lantai[posisi].tombolnaik.picture.loadfromfile(path + 'tombol naik mati.bmp')

63 lantai[posisi].tombolturun.picture.loadfromfile(path + 'tombol turun mati.bmp'); //mematikan lampu tombol turun lantai ke-i dan menjadikan turun(i) = 0 turun[posisi] := false; if posisi <> 1 then lantai[posisi].tombolturun.picture.loadfromfile(path + 'tombol turun mati.bmp') lantai[posisi].tombolnaik.picture.loadfromfile(path + 'tombol naik mati.bmp'); //timer selama 10 detik saat keadaan bukapintu procedure TForm1.timerTimer(Sender: TObject); timer.enabled := false; diam.enabled := true; //animasi membuka pintu procedure TForm1.bukapintu; mediaplayer1.stop; mediaplayer1.play; while pintukanan.width > 20 do pintukiri.width := pintukiri.width - 1; pintukanan.width := pintukanan.width - 1; pintukanan.left:= pintukanan.left + 1; pintukiri.repaint; pintukanan.repaint; //animasi menutup pintu procedure TForm1.tutuppintu; while pintukanan.width < 70 do pintukiri.width:=pintukiri.width + 1; pintukanan.width:=pintukanan.width + 1;

64 pintukanan.left:=pintukanan.left - 1; pintukiri.repaint; pintukanan.repaint; //animasi naik 1 lantai procedure TForm1.naik1lantai; pintukanan.top := pintukanan.top - 5; pintukiri.top := pintukiri.top - 5; pintukiri.repaint; pintukanan.repaint; ceknyampelantai; //animasi turun 1 lantai procedure TForm1.turun1lantai; pintukanan.top := pintukanan.top + 5; pintukiri.top := pintukiri.top + 5; pintukiri.repaint; pintukanan.repaint; ceknyampelantai; end.