INTERFACING
PENYUSUN:
2012
LEMBAR IDENTITAS DAN PENG ESAHAN
Bahan Ajar ini telah diperiksa dan disetujui untuk digunakan sebagai
Menyetujui :
Mengetahui/Menyetujui :
Pembantu Direktur I,
i
K ATA PENG ANTAR
Buku bahan ajar Interfacing ini dimaksudkan untuk menjadi media pustaka
belajar bagi mahasiswa di Jurusan Teknik Elektro, khususnya untuk program studi
Teknik Listrik di Politeknik Negeri Ujung Pandang dalam mempelajari ilmu
tentang interface antara komputer dan manusia serta antara komputer dengan
piranti lain diluarnya.
Materi dasar dalam bahan ajar ini akan akan muncul pada bagian-bagian
awal dari masing-masing bab dan akan dijelaskan secara seksama dan mendetil,
serta dilengkapi dengan contoh-contoh pembuatan interface komputer
menggunakan pemrograman Delphi. Bahan ajar ini juga dilengkapi dengan
beberapa gambar yang mendukung materi tiap bab agar mudah diserap oleh
mahasiswa.Pada akhir setiap bab, diberikan soal-soal latihan sebagai pemantapan
untuk menguji apakah teori yang diberikan sudah dipahami atau belum.
Para pemakai bahan ajar ini akan mendapat hasil yang lebih optimal
apabila paling sedikit telah mempunyai pengetahuan dasar tentang mata kuliah
Algoritma dan Pemrograman.
Penyusun
ii
DAFTAR ISI
iii
iv
DAFTAR TABEL
v
DAFTAR GAMBAR
vi
DAFTAR LAMPIRAN
vii
GBRP/GBPP
viii
TINJAUAN MATA K ULIAH
Mata kuliah ini akan membahas topik yang dikenal sebagai interfacing komputer.
Interfacing komputer dapat dibagi menjadi dua bagian, yaitu interfacing antara
komputer dengan pemakai komputer dalam bentuk visualisasi di layar monitor
(user interface) dan interfacing antara komputer dengan piranti atau peralatan di
luar komputer yang melakukan interaksi dengannya. Kita akan memulainya
dengan topik interfacing antara komputer dengan manusia. Topik ini memberi kita
kesempatan yang sangat baik untuk mempelajari sejumlah cara untuk merancang
dan membuat tampilan interface di layar monitor menggunakan Delphi 7 sebagai
bahasa pemrogramannya. Pada bagian ini akan dipelajari tentang dasar-dasar
pemrograman menggunakan Delphi, IDE Delphi dan Visual Component Library
yang digunakan untuk memudahkan dalam pembuatan interface oleh programmer.
Tahapan selanjutnya dalam studi kita difokuskan pada interfacing antara komputer
dan piranti di luar komputer yang melakukan interaksi dengannya. Jenis-jenis
interaksi dilakukan melalui komunikasi yang di lakukan secara parallel, serial,
maupun LAN.
ix
Buku ajar ini disusun dalam beberapa bab yang akan membahas tentang :
- Bab I Mengenal Delphi
- Bab II Visual Component Library
- Bab III Grafik
- Bab IV Komunikasi Serial
- Bab V Komunikasi Paralel
Dalam mempelajari bahan ajar ini, ikuti pertanyaan panduan pada halaman
penyekat disetiap bab. Dengan demikian, Anda akan dapat mengetahui sasaran
utama yang ingin dicapai setelah menyelesaikan bab yang bersangkutan.
Bacalah bahan ajar sebelum mengikuti kuliah sehingga jika ada masalah, dapat
ditanyakan pada pengajar pada saat kelas berlangsung setelah menyelesaikan
setiap bab, jawablah tugas / latihan yang diberikan agar Anda dapat menilai sejauh
mana pengetahuan yang telah Anda peroleh dalam mengikuti kuliah. Bila Anda
tidak dapat menjawab tugas / latihan yang diberikan, cobalah membaca kembali
bab bersangkutan.
x
BAB I MENGENAL DELPHI
Pada tahun 1992 muncul bahasa pemrograman baru bernama Borland Pascal versi
7 yang merupakan penggabungan dari Turbo Pascal dan Turbo Pascal for
Windows. Namun bahasa pemrograman baru tersebut ternyata masih sulit
digunakan.
1.2 Penyajian
1.2.1 Mengenal Integrat ed Development Envi ronment (IDE)
Delphi 7
Delphi meyediakan fasilitas yang lengkap untuk membangun suatu program
aplikasi, diantaranya adalah IDE (Integrated Development Environment). Dengan
IDE maka programmer akan terbantu karena kebutuhan pemrograman telah
disediakan dalam satu tampilan. IDE Delphi sendiri terdiri dari Menu, Speedbar,
Component Palette, Object Inspector, Form dan Code Editor. IDE Delphi dapat
dilihat pada gambar 1.1.
1
G ambar 1 . 1 IDE Del ph i
IDE Delphi terdiri dari Menu, Speedbar, Component Palette, Object Treeview,
Object Inspector, Form dan Code Editor
1. Menu
Menu adalah sekumpulan perintah di dalam menu bar yang terletak di bagian
atas window utama
2. Speedbar
Speedbar merupakan kelompok tombol yang digunakan untuk mengakses
perintah-perintah dalam menu. Perintah-perintah tersebut akan sering
digunakan pada saat penyusunan program aplikasi. Pengelompokkan ini akan
memudahkan dan menghemat waktu pemrogram untuk mengakses suatu
perintah karena tidak diperlukan pencarian perintah-perintah tersebut dalam
menu pulldown yang belum tentu dapat langsung ditemukan.
3. Component Palette
Component Palette adalah sekumpulan tab yang didalamnya tersedia tombol-
tombol komponen yang akan dipakai sebagai elemen interface program
aplikasi.
4. Object Treeview
2
Merupakan sebuah diagram pohon yang menggambarkan hubungan logis
menghubungkan semua komponen yang terdapat dalam suatu proyek
program. Komponen tersebut meliputi form, modul atau frame. Fungsinya
digunakan untuk menampilkan seluruh daftar komponen program dalam
sebuah aplikasi program sesuai dengan penempatan.
5. Object Inspector
Object inspector adalah sarana pengaturan obyek yang kita pasangkan pada
form, atau form itu sendiri. Bagian bagian dari Object Inspector yaitu:
A. Object Selector merupakan daftar drop down yang mencantumkan semua
komponen yang ada dalam form aktif beserta tipe obyek. Bagian ini
digunakan untuk memilih komponen yang akan ditetapkan property dan
event-nya.
B. Properties berfungsi untuk menetapkan property bagi komponen yang
terpilih oleh object selector saat itu. Kolom sebelah kiri dari tab Properties
menyatakan nama propertinya, sedangkan kolom sebelah kanan
merupakan isi setting atau nilai dari property tersebut.
C. Events berfungsi untuk menetapkan kejadian/proses pelaksanaan perintah
yang terpasang pada satu komponen.
6. Form
Form merupakan sebuah jendela yang merupakan wadah bagi komponen
yang terpasang dalam suatu program aplikasi. Tampilan form dapat diatur
melalui halaman Properties dari Object Inspector pada saat proses
perancangan.
Form akan tersimpan dalam dua buah file, yaitu:
A. File Form (.DFM), file ini adalah file binary yang berisi gambar grafis dari
form. Sebuah perubahan yang dilakukan berkaitan dengan tampilan form
akan disimpan di file ini.
B. File Unit (.PAS), file ini adalah file yang menyimpan kode sumber dari file
.DFM. File ini berisi kode-kode event handler, yang menentukan reaksi
form beserta komponen-komponenya saat aplikasi dijalankan.
7. Code Editor
3
Code Editor merupakan tempat yang digunakan untuk menuliskan,
memodifikasi dan mengakses kode-kode yang menjalankan aplikasi.
4
File project options (dengan ekstensi .dof) berisi option-option dari project.
File ini dibuat pada saat project disimpan untuk pertama kali dan disimpan
ulang pada saat project disimpan.
File desktop setting (dengan ekstensi .dsk) berisi option-option yang dimiliki
oleh setiap project.
6. File Backup (.~dp, .~df, .~pa)
File-file backup untuk project, form dan unit. File backup dibuat pada saat
penyimpanan yang kedua kalinya.
7. File-file yang Dibuat Oleh Compiler
File executable (.exe). File ini dapat berdiri sendiri dan hanya memerlukan
file library di DLL., VBX
File unit object (.dcu). File unit (.pas) versi terkompilasi dan akan di-link ke
dalam file executable akhir.
File dynamic-link-library (.dll). File ini dibuat jika dirancang DLL oleh
programmer sendiri.
8. File Windows yang Dipakai Delphi
File help (.hlp). File help standar dari Windows yang dapat diapkai di aplikasi
Delphi.
File Image atau grafik(.wmf, .bmp, .ico). File ini dipakai agar aplikasi ini
lebih menarik.
1. Identifier
Identifier adalah nama deskriptif/pengenal yang dibuat oleh programmer
sebagai bagian dari aplikasi program, yang meliputi tipe, konstanta, variable,
label, prosedur, unit, program dan field. Pemberian identifier ini sangat
penting karena akan mengurangi resiko kesalahan.
2. Tipe Data
5
Tipe dari suatu data akan menunjukkan bagaimana data tersebut akan diakses
dan disimpan, karena tiap tipe data mempunyai perbedaan dalam proses akses
dan penyimpanan.
3. Scope
Scope berarti area kerja, yang menentukan dapat atau tidaknya suatu
identifier digunakan oleh prosedur/fungsi lain.
Scope dibagi menjadi dua, yaitu:
A. Scope Lokal, dapat disebut area kerja setempat. Identifier berscope local
berarti hanya bisa digunakan dalam blok program dimana identifier
tersebut di deklarasikan, karena identifier ini hanya dikenali di blok itu
saja.
B. Scope Global. Identifier dengan scope global akan dikenali dan dapat
digunakan oleh semua prosedur dan fungsi dalam unit tersebut. Biasanya
identifier dengan scope global akan dideklarasikan di bagian interface
dari suatu unit.
Sebelum menyusun program aplikasi ada beberapa hal yang perlu diketahui dalam
pemrograman berbasis obyek (OOP) yaitu istilah object, property, method dan
event.
6
2. Property merupakan karakteristik yang dimiliki object
3. Method merupakan aksi yang dapat dilakukan oleh object
4. Event merupakan kejadian yang dapat dialami oleh object
Event:
Pintu dibuka
Ditabrak
Didorong
Event:
OnClick
OnCreate
OnClose
7
1.2.5 Membuat Apli kasi Sederhana
Pada bagian ini akan dibuat aplikasi sederhana berupa aplikasi untuk mengubah
property suatu object. Selanjutnya aplikasi ini akan disebut aplikasi Selamat
datang di PNUP. Adapun beberapa hal yang perlu dilakukan sebelum membuat
aplikasi di Delphi yaitu:
1. Masuk ke dalam Delphi. Buat project baru dengan menu File|New, pilih
Application.
2. Selanjutnya, simpan project tersebut dengan File|Save Project As. Anda akan
ditanya apakah Anda akan menyimpan nama file dengan nama unit1.pas.
Simpan file tersebut di direktori C:\interfacing\pendahuluan dengan nama
selamat.pas.
3. Selanjutnya Anda akan diminta untuk menyimpan file project. Anda akan
ditanya apakah Anda akan menyimpan file dengan nama Project1.dpr.
8
Simpan file tersebut di direktori C:\interfacing\pendahuluan dengan nama
pendahuluan.dpr.
4. Buatlah interface dengan menggunakan komponen Form, Button dan Label
dengan cara mengklik komponen tersebut dua kali. Komponen Button dan
Label ada pada tab standard di bagian Component Palette seperti yang terlihat
pada gambar 1.4. Rancangan interface terlihat seperti pada gambar 1.5.
9
1. Klik komponen form. Aktifkan tab Properties dari Object Inspector, Ubahlah
caption dari komponen form dari Form1 (defaultnya), menjadi Tes.
Field Caption
10
2. Untuk komponen Button1 dan Label1 pengaturan dilakukan pada object
inspector seperti yang dilakukan pada pengaturan form1. Lakukanlah
pengaturan property Button1 dan Label1 sebagai berikut:
Caption Tampil
Cursor crHandPoint
Name btnTampil
Caption Awal
Name lblUcapan
Sehingga tampilan aplikasi akan berubah menjadi seperti pada gambar 1.8.
11
G ambar 1. 8 Ra n can gan a kh ir in t er fa ce m en gguna kan But t on dan La bel
12
Aktifkan tab Events
3. Dari kedua cara di atas, Code Editor yang merupakan tempat untuk menuliskan
program akan terbuka. Secara otomatis Delphi akan membuat procedure
dengan nama TForm1.btnTampilClick, artinya dari obyek Form1, komponen
btnTampil untuk event OnClick. Delphi juga telah membuatkan kerangka
program dan Anda dapat langsung mengisikan programnya diantara
begin….end yang sudah tersedia.
Nama procedure
13
lblUcapan.Caption:='Selamat Belajar Interfacing';
2. Kita akan mencoba membuka file project untuk melihat perubahan-perubahan
yang dikerjakan Delphi secara otomatis. Pilih Project|View Source. Isinya
seperti berikut:
program pendahuluan;
uses
Forms,
tes in 'tes.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
3. Selanjutnya kita akan melihat listing dari tes.pas. Anda dapat melihatnya
dengan mengklik tab tes pada code editor.
Tab tes
G ambar 1. 11 Ta b pa da Code E di t or
Listing programnya:
unit tes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btnTampil: TButton;
lblUcapan: TLabel;
14
procedure btnTampilClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnTampilClick(Sender: TObject);
begin
lblUcapan.Caption:='Selamat Belajar Interfacing';
end;
end.
4. Selanjutnya kita akan menjalankan project. Pilih Run|Run atau tekan tombol
15
G ambar 1. 12 Pr oje ct Ma na ger
16
G ambar 1. 13 Kot a k Di a l og Pr oje ct Opt i on s
17
4. Linker
Option-option yang ada adalah Map File, Linker Output, EXE and DLL
Option, Memory Sizes and Description. Option default dapat dipakai semua
project umum.
5. Directories/Conditionals – Output Directory
Dipakai untuk menyatakan letak penyimpanan unit yang dikompilasi dan
executable (.dcu dan .exe). Jika dikosongkan, file-file dcu dan exe disimpan
di direktori yang sama dengan file sumber. Search path menyatakan tempat
mencari file .dcu. Sama seperti path pada DOS, Anda dapat menyatakan
beberapa search path yang dipisahkan oleh titik koma (;) dan panjang
maksimum 127 karakter.
Bagian Conditionals memberikan daftar drop-down untuk memilih compiler
directives dan symbol. Symbol-symbol tersebut mengontrol kompilasi
program tergantung pada suatu kondisi. Kotak Aliases dipakai untuk
memasukkan alias pada unit lain.
6. Version Info
Untuk menampilkan informasi dari versi Delphi yang dipakai.
7. Packages
Menampilkan paket-paket yang dipakai
Jika Anda memilih kotak cek Default (dengan tanda √, option-option yang Anda
naytakan akan disimpan sebagai option default yang dipakai untuk setiap project
baru.
Satu project satu direktori. Dengan membuat sebuah direktori untuk sebuah
project, file-file dari sebuah project akan terpisah dari file-file project lain. Hal ini
dapat mencegah sebuah project mengubah file dari project lain secara tidak
sengaja.
18
Unit-unit yang dipakai bersama. Anda dapat memakai rutin-rutin yang bersifat
umum secara bersama-sama oleh beberapa aplikasi, caranya adalah tempatkan
rutin-rutin tersebut di sebuah unit yang dapat diakses oleh beberapa project.
Praktisnya, buatlah sebuah direktori utilitas di harddisk Anda untuk menyimpan
unit-unit umum tersebut. Jika Anda akan mengakses sebuah function yang ada
dalam unit tersebut pada klausa uses dari file project/unit yang memerlukannya.
Anda juga harus menambahkan path direktori utilitas ke dalam path pencarian
(search/path) yang dinyatakan pada Directories/Conditional pada kotak dialog
Project Options. Hal ini akan memberi tahu Delphi dimana harus mencari file unit
utilitas.
1.3 Penutup
Delphi merupakan salah satu bahasa pemrograman visual yang dapat digunakan
untuk membuat aplikasi berbasis Graphical User Interface (GUI). Delphi
menyediakan Integrated Development Environment (IDE) yang memudahkan
programmer untuk membuat aplikasi dan mengembangkannya. Dalam merancang
sebuah aplikasi yang berbasis GUI dengan menggunakan Delphi ada beberapa
langkah yang perlu dilakukan agar proses pembuatan dan pengembangan aplikasi
lebih mudah untuk dilakukan.
Soal-soal Latihan
1. .Buatlah sebuah menu untuk menentukan besarnya ukuran teks pada sebuah
label. Buatlah empat buah pilihan ukuran teks pada label. Ukurannya adalah
10, 20, 30 dan 40 dengan jenis font yang ada. Contoh untuk tampilan form
program tersebut pada waktu menu 30 diklik adalah seperti yang terlihat pada
Gambar 1.14
19
Gambar 1.14 Soal Ukuran teks
2. Buatlah sebuah program untuk menggerakan sebuah label pada form. Untuk
menggerakan label gunakan control button dengan arah kanan, kiri, atas, dan
bawah. Jika tombol kiri di klik, teks akan bergerak ke kiri. Dan jika tombol
bawah di klik, teks akan bergerak ke bawah. Begitu juga dengan tombol
lainnya. Tampilan form seperti yang terlihat pada gambar 1.15
20
BAB II MEMAK AI VISUAL COMPONENT LIBRARY
Anda sudah mencoba beberapa komponen dalam aplikasi. Pada modul ini kita
akan measuki VCL lebih jauh lagi, juga memakai event-handler. Komponen-
komponen itu sama dengan OCX dari Visual Basic. Tidak seperti OCX,
komponen-komponen tersebut disimpan dalam sebuah library, bukan file-file
terpisah. Di Delphi, Anda juga dapat membuat komponen sendiri yang dapat
dipakai di kemudian hari.
2.2 Penyajian
2.2.1 K omponen Visual dan Nonvi sual
Komponen Delphi dapat bersifat Visual maupun Nonvisual. Komponen visual
dipakai untuk membangun antarmuka dengan pemakai. Pada saat pembuatan
aplikasi, kedua komponen tersebut dapat dilihat, tetapi komponen nonvisual tidak
terlihat pada saat aplikasi dijalankan. Contoh komponen visual adalah Button,
Edit dan Memo, sedangkan komponen nonvisual adalah Timer, OpenDialog dan
MainMenu. Komponen nonvisual tidak terlihat oleh user, tetapi pada saat aplikasi
dijalankan komponen-komponen tersebut menghasilkan tampilan di layar.
Komponen nonvisual dapat mudah diidentifikasi karena tidak dapat diubah
ukurannya dan terlihat sama seperti pada saat Anda memilihnya dan
meletakkannya dalam form.
21
2.2.2 Tab Standard
Tab Standard berisi komponen-komponen yang umum dipakai. Tab ini adalah tab
default pada saat Anda masuk ke dalam Delphi. Didalam tab ini terdapat 16
komponen.
G ambar 2. 1 Ta b St a n dar d.
Komponen MainMenu dipakai untuk membuat menu bar dan menu drop-
down. Kompone ini nonvisual.
Komponen PopUpMenu untuk membuat menu popup yang akan mncul jika
user mengklik tombol kanan dari mouse. Komponen ini Nonvisual.
Komponen Edit dipakai untuk menerima satu baris teks yang merupakan
masukan dari user. Komponen ini juga dapat digunakan untuk menampilkan
teks. Komponen ini visual.
Komponen Button dipakai untuk membuat button yang akan dipakai untuk
memilih option di dalam aplikasi. Komponen ini visual.
22
Komponen RadioButton dipakai untuk memberikan sekumpulan option dan
hanya satu yang dapat dipilih. Komponen ini visual.
Komponen Listbox dipakai untuk membuat sebuah daftar item dan user
dapat memilih salah satu diantaranya. Komponen ini visual.
Setelah melihat semua komponen dari tab Standard, kita akan mencobanya. Kita
akan membuat beberapa aplikasi yang memakai komponen-komponen diatas.
23
2.2.3 Membaca dan menampi lkan Data dengan Edit
Komponen Edit dipakai untuk menerima data masukan yang berupa teks. Kita
akan mencoba membuat aplikasi yang memanfaatkan komponen ini.
1. Buat aplikasi baru dan ubah caption dari formnya menjadi “Memakai
Komponen Edit‟.
2. Tambahkan 4 komponen label dan ubah setiap captionnya dengan „Nama
Langganan‟, „Nama Barang‟, „Banyak Barang‟, dan „Bayar‟. Ubah property
Namenya masing-masing menjadi lblLangganan, lblBarang, lblBanyak, dan
lblBayar.
3. Tambahkan sebuah komponen Edit. Ubah namanya menjadi eNama, caranya
pilih property Name dan isikan eNama. Pada kotak edit tercantum‟eNama‟
(sesuai dengan nama komponen). Jika dijalankan kita ingin kotak tersebut
kosong, oleh sebab itu aktifkan property Text dan kosongkan isinya.
4. Dengan cara yang sama tambahkan tiga komponen Edit dengan nama eKode,
eBanyak dan eBayar.
5. Selanjutnya tambahkan sebuah Button dan ubah Captionnya menjadi
„Hitung‟. Formnya menjadi seperti gambar…
24
Sebagai tambahan, kita akan mengubah font dari komponen btnHitung supaya
berbeda dengan yang lainnya. Aktifkan property font (dengan mengklik tanda +)
dan ubah property Color menjadi clAqua dan Size menjadi 10.
Kita akan mengisikan nama pelanggan di eNama dan mengisikan banyak barang
di eBanyak. Sedangkan eKode akan diisi dengan kode barang dank ode barang
yang ada adalah 1, 2, dan 3. eBayar akan berisi jumlah yang akan dibayar yaitu
hasil perkalian dari banyak barang dan harga barang. Harga barang ditentukan
berdasarkan kode barang. Jika Anda klik tombol Hitung, harga barang akan
ditentukan lalu dihitung bayarnya dan ditampilkan di eBayar. Untuk itu kita akan
mengisikan evnt handler untuk event OnClick dari btnHitung. Ada dua cara yaitu
klik ganda pada komponen btnHitung atau aktifkan tab Events dari Object
Inspector lalu klik ganda pada event OnClick.
Tab Events
Event OnClick
Anda akan masuk ke dalam Code Editor dan sudah diberikan kerangka
procedurenya.
25
G ambar 2. 4 Pr ocedur e un t uk E ven t On Cl i ck
Penjelasan Program;
1. Dideklarasikan tiga buah variable local bertipe real yaitu banyak, harga dan
bayar
2. Variabel banyak akan diisi dengan data yang akan dimasukkan ke dalam
komponen eBanyak. Ingat, data yang kita masukkan ke dalam komponen Edit
bertipe teks(string), sehingga sebelum melakukan perhitungan Anda harus
mengubahnya menjadi data numeric. Dalam hal ini menggunakan function
StrToFloat.
3. Harga setiap jenis barang ditentukan berdasarkan kodenya. Sekali lagi kita
harus mengubah data string menjadi data numeric. Sebenarnya kita dapat
memakai data string untuk mencari harganya, tetapi untuk contoh ini kita
26
ubah menjadi data numeric. Kita memakai StrToInt, bukan StrToFloat.
Alasannya, jika kita menggunakan case, kita harus memakai data bertipe
integer untuk perbandingannya.
4. Selanjutnya menghitung bayar.
5. Data bayar yang didapat dari perhitungan akan ditampilkan di komponen
eBayar. Sekali lagi ingat, data yang ditampilkan dalam komponen Edit harus
bertipe string, oleh sebab itu variable bayar diubah menjadi string dengan
function FloatToStr dan data string tersebut dimasukkan ke property Text dari
komponen eBayar (eBayar.Text).
Pada program aplikasi sebelumnya, kita memasukkan kode barang dengan cara
mengetikkannya (1,2,3). Dengan cara ini mungkin Anda salah mengetikkan 4,5
dan seterusnya. Kita akan membatasi data masuan tersebut, sehingga selalu benar.
Kita akan memakai RadioButton.
Form yang kita pakai sama seperti sebelumnya, hanya kita akan mengganti eKode
(komponen edit untuk kode barang) dengan RadioButton dan GroupBox.
Rancangan form terlihat seperti gambar 2.5
27
Gambar 2.5 Rancangan form menggunakan komponen RadioButton
Dari ketiga RadioButton tidak ada satupu yang dipilih. Pada saat aplikasi
dijalankan, Anda harus memilih salah satu. Anda dapat membuat pilihan default,
misalnya Buku (rbBuku dipilih secara default). Untuk itu Anda harus mengubah
property Checked dari rbBuku menjadi True. Perhatikan perubahan di form.
28
Langkah selanjutnya, kita akan mengisikan event handler untuk tombol Hitung
(btnHitung).
Di sini kita memakai If-Then. Jika rbBuku dipilih (rbBuku.Checked bernilai True)
maka harganya 1000. Begitu seterusnya.
29
Sama seperti ScrollBar pada umumnya, kita dapat memindahkan posisi ScrollBar
dengan menggerakkan (drag) kotak peluncurnya atau dengan mengklik anak
panahnya.
Klik anak panah
Memindahkan kotak peluncur
Gambar 2.7 Menggerakkan ScrollBar
Kita akan memakai ScrollBar untuk mengisi data ketiga nilai. Jika posisi
ScrollBar berubah, otomatis posisi tersebut menjadi nilai dan akan tercantum di
kotak edit.
Pilih sebuah ScrollBar, berapa isi property Max dan Min? Isinya adalah 100 dan
0. Anda dapat mengubahnya untuk menyatakan jangkauan yang Anda inginkan.
Dalam kasus ini nilai jangkauan tersebut sesuai.
Pilih ScrollBar1, aktifkan tab Events dari Object Inspector, lalu klik ganda pada
OnScroll. Anda akan masuk ke Code Editor dan isikan program berikut:
eNilai1.Text := FloatToStr(ScrollBar1.Position);
unit uscrollbar;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
eNilai1: TEdit;
eNilai2: TEdit;
eNilai3: TEdit;
eNilaiRata: TEdit;
30
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
ScrollBar3: TScrollBar;
Button1: TButton;
Button2: TButton;
procedure ScrollBar1Scroll(Sender: TObject; ScrollCode:
TScrollCode;
var ScrollPos: Integer);
procedure ScrollBar2Scroll(Sender: TObject; ScrollCode:
TScrollCode;
var ScrollPos: Integer);
procedure ScrollBar3Scroll(Sender: TObject; ScrollCode:
TScrollCode;
var ScrollPos: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
31
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;
end.
32
Gambar 2.8 Rancangan form aplikasi Memo
Selanjutnya, kita akan membuat aplikasi untuk mendemonstrasikan keempat
komponen yang ada pada perancangan interface gambar 2.8. Langkah-langkahnya
adalah sebagai berikut:
1. Buatlah aplikasi baru dan ubahlah nama form menjadi fMemo.
2. Tambahkan sebuah Memo. Klik ganda tanda … pada property Lines dan
Anda akan masuk ke String List Editor. Disana sudah tercantum Memo1
sesuai dengan nama memo. Hapus teks tersebut, lalu tekan tombol enter
sebanyak 5 kali. Hal ini akan menambah buffer dari Memo. Jika Anda tidak
menambah, Memo tidak dapat dipakai. Klik OK untuk mengakhiri String List
Editor.
3. Tambahkan komponen ComboBox. Terdapat teks ComboBox1, sesuai
dengan namanya. Kita akan menghapusnya. Aktifkan property Teks lalu
hapus isinya.
4. Kita akan mengisikan 4 pilihan pada ComboBox. Klik ganda kolom isian dari
property Items (klik ganda tanda …). Anda akan masuk ke String List Editor
dan isikan teks-teks berikut:
Coba Delphi
Komponen Memo
ListBox dengan 3 item
CheckBox mempunyai 3 state
33
5. Tambahkan komponen ListBox dan isikan pilihan-pilihan berikut pada
property Items:
Kotak Memo Warna Putih
Kotak Memo Warna Biru
Kotak Memo Warna Kuning
6. Tambahkan sebuah GroupBox dan ubah Captionnya menjadi Font.
7. Kedalam GroupBox tambahkan 3 buah CheckBox, masing-masing dengan
caption: Teks Warna Merah, Teks Miring dan Teks Cetak Tebal.
8. Tambahkan 3 buah Button masing-masing dengan Caption: Isi Memo, Ubah
Font, Keluar.
Button Isi Memo dipakai untuk mengisi teks ke dalam Memo. Pertama-tama
teks pada memo dibersihkan. Baris pertama Memo berisi teks dari
ComboBox. Teks dari ComboBox dapat berupa teks yang Anda ketikkan atau
teks yang dipilih dari pilihan yang tersedia. Baris kedua menyatakan pilihan
ke beberapa ListBox yang dipilih. Selanjutnya warna memo diubah ssesuai
dengan pilihan Anda pada ListBox.
Button Ubah Font dipakaiuntuk mengubah font. Pilihan font menggunakan
CheckBox, sehingga Anda dapat memilih lebih dari satu pilihan (bandingkan
dengan radioButton yang hanya boleh memilih salah satu). Jika Anda
memilih CheckBox1, maka teks berwarna merah, jika tidak warna default.
CheckBox2 dipakai untuk mencetak miring dan CheckBox3 untuk cetak
tebal.
Button3 untuk mengakhiri aplikasi.
Berikut ini adalah listing lengkapnya.
unit umemo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TfMemo = class(TForm)
Memo1: TMemo;
34
ComboBox1: TComboBox;
ListBox1: TListBox;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fMemo: TfMemo;
implementation
{$R *.dfm}
fMemo.Font.Style := [];
if CheckBox2.State = cbChecked
then fMemo.Font.Style := [fsItalic];
if CheckBox3.State = cbChecked
then fMemo.Font.Style := fMemo.Font.Style + [fsBold];
end;
35
end.
Hasil dari aplikasi menggunakan memo dan komponen lainnya dapat dilihat pada
gambar 2.9
2.3 Penutup
Pada bagian ini Anda telah mempelajari penggunaan Visual Component Library
yang ada di Delphi. Penggunaan VCL memudahkan programmer dalam membuat
aplikasi.
Soal-Soal Latihan
1. Sebuah rumah sakit dengan nama rumah sakit “Cepat Sembuh” meminta
Anda untuk membuat sebuah program untuk mendiagnosa penyakit pasien.
Program ini bertujuan untuk membantu dokter dalam mendiagnosa jenis
penyakit pasien berdasarkan gejala-gejala yang dialami pasien. Untuk jenis
penyakit dan gejala-gejalanya adalah seperti yang tedapat pada tabel berikut:
36
Tabel 2.1 Jenis penyakit
Jenis Penyakit Gejala Hasil
Malaria Demam Ya
Keringat Dingin Ya
Muntah Ya
Hidung Tersumbat Tidak
Flu Demam Ya
Keringat Dingin Tidak
Muntah Tidak
Hidung Tersumbat Ya
Tifus Demam Ya
Keringat Dingin Tidak
Muntah Ya
Hidung Tersumbat Tidak
Pada soal ini diasumsikan bahwa seseorang tidak mungkin memiliki dua penyakit
bersamaan. Untuk pengecekkan penyakit gunakan percabangan If .. Then ..Else.
37
BAB III GRAFIK
Demikian juga dengan data keluaran yang akan disajikan. Data dapat disajikan
dalam bentuk grafik, gambar, animasi dan kombinasi ketiganya. Dengan tampilan
grafis ini, data keluaran yang disajikan menjadi lebih impresif dan mudah
dimengerti.
3.2 Penyajian
3.2.1 Elemen G rafi k
3.2.1.1 K oordinat
Setiap komponen visual mempunyai property Top dan Left. Nilai yang tersimpan
di dalam property ini menyatakan dimana kompopnen tersebut diletakkan dalam
form.
Top menyatakan koordinat y (vertical), dalam satuan pixel, dari sebuah komponen
relative terhadap kontainernya. Sedangkan Left menyatakan koordinat x
38
(horizontal). Top dan Left dapat dipakai untuk mengubah posisi dari sebuah
komponen.
3.2.1.2 Canvas
Penggunaan canvas dapat dibagi menjadi 3 tingkatan, yaitu tingkat tinggi, menengah dan
rendah. Tingkat tinggi digunakan untuk fungsi-fungsi dasar seperti membuat garis, elips,
menampilkan teks dan lain-lain. Berikutnya adalah tingkat menengah berupa fungsi-
fungsi seperti manipulasi Pen, Brush dan Font, manipulasi tingkat pixel seperti
pengkopian image, penggabungan image, perwarnaan canvas. Terakhir adalah tingkat
rendah untuk memanggil fungsi-fungsi Windows API secara langsung dan banyak
berhubungan dengan handel. Makin rendah tingkatannya makin sulit penerapannya.
Canvas juga bisa dikatakan area gambar abstrak dari object atau komponen-
komponen grafik. Canvas mempunyai property, event dan method yang dapat
dipakai untuk membuat gambar dengan cara:
1. Menyatakan tipe brush, pen dan font yang dipakai.
2. Menggambar dan mengisi berbagai bentuk dan garis.
3. Menulis teks, dan lain-lain
Bagaimana dengan tampilan grafik pada aplikasi Anda tergantung pada tipe object
yang canvasnya diberi gambar. Jika Anda langsung menggambar pada canvas dari
sebuah control, gambar akan langsung ditampilkan. Tetapi, jika Anda
menggambar pada canvas diluar layar, misalnya canvas dari BitMap, gambar akan
ditampilkan setelah dicopy ke sebuah control. Oleh sebab itu, jika menggambar
bitmap dan menghubungkannya ke sebuah control, gambar akan muncul ketika
control mengakses event OnPaint.
.
Jika bekerja dengan grafik ada dua istilah yang harus dibedakan, yaitu drawing
(menggambar) dan painting (mengecat).
1. Drawing adalah menciptakan sebuah elemen grafik, seperti garis atau bentuk.
Di program, Anda menggambar sebuah objek dengan menyatakan posisinya
pada canvas, dan memanggil sebuah method drawing.
39
2. Painting adalah membuat tampilan objek. Biasanya paintingmelibatkan
drawing. Artinya, sebagai respon dari event OnPaint, umumnya sebuah objek
menggambar beberapa grafik. Misalnya, proses painting sebuah kotak edit
adalah menggambar kotak dan menuliskan teks di dalamnya.
3.2.1.3 Pi xel
Pada dasarnya, semua operasi grafik adalah mengubah warna pixel pada area
gambar. Di Delphi, Anda dapat memanipulasi pixel secara individual. Pada
mulanya pixel hanya dapat on atau off, sehingga hanya dapat warna hitam dan
putih. Tetapi, sekarang monitor mempunyai jutaan warna, sehingga tampilan
gambar menjadi halus.
40
Untuk mengakses sebuah pixel pada form, pakailah properti Canvas dari form dan
properti Pixels dari Canvas.Canvas.Pixels[10,20] berarti warna dari pixel yang
berada 10 pixel ke kanan dan 20 pixel ke bawah.
3.2.1.5 Pen
Setiap canvas mempunyai sebuah pen (walaupun tidak tampak) yang digunakan
untuk menggambar garis atau bentuk. Bayangkan pen tersebut sama seperti pen
pada umumnya. Ada dua cara menggerakkan pen tersebut:
1. Pen menyentuh kertas dan membuat tanda, method yang dipakai adalah
LineTo
2. Pen berada di atas kertas dan jika digerakkan tidak akanmeninggalkan bekas,
method yang sesuai adalah MoveTo.
3.2.1.6 Brush
Kadang-kadang kita ingin menggambar objek yang terisi bukan hanya garis
luarnya saja. Properti Brush dipakai untuk menentukan corak pengisian objek.
41
Ada tiga property dari Brush, yaitu Color, Style dan Bitmap Style. Bitmap style
yang ada adalah: bsSolid, bsCross, bsClear, bsDiagCross, bsBDiagonal,
bsHorizontal, bsFDiagonal, bsVertical.
Dengan property Color dan Style, warna dari pengisian tergantung dari isi
property Color. Properti Style mendefinisikan corak pengisian. Anda dapat
memakai PolyLine untuk menggambar kerangka objek (tidak terisi). Ada cara lain
yaitu dengan menggunakan method Polygon untuk menggambar polygon
sekaligus memberi arsir.
Selanjutnya kita akan membuat aplikasi untuk menyalin sebuah image dan
mengubah beberapa properti yang ada pada komponen tersebut.
1. Buatlah aplikasi baru dan ubahlah property Name form menjadi fGambar dan
Captionnya menjadi Praktek Gambar.
2. Tambahkan 1 buah komponen image yang ada pada tab Additional. Ubah
properti Namenya menjadi iAsal. Ubah properti height 150 dan Width 150.
3. Tambahkan 1 buah komponen PaintBox yang ada pada tab System. Ubah
property Height dan Widthnya masing-masing 150
4. Pada iAsal property Picture diisi dengan file gambar dengan tipe bitmap
(bmp) dengan ukuran 150 x 150 pixels.
5. Tambahkan komponen Button, dan ubah Captionnya menjadi Copy dan
properti Namenya menjadi btnCopy.
6. Tambahkan dua buah label masing – masing dengan properti Caption Image
Asal, property Namenya lblAsal dan Caption Image Hasil, property Namenya
lblHasil.
42
G ambar 3. 1 Ra n can gan in t er fa ce m en ggun a kan kom p on en im a ge
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TfGambar = class(TForm)
iAsal: TImage;
lblAsal: TLabel;
lblHasil: TLabel;
btnCopy: TButton;
PaintBox1: TPaintBox;
procedure btnCopyClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fGambar: TfGambar;
implementation
{$R *.dfm}
43
procedure TfGambar.btnCopyClick(Sender: TObject);
var
x, y : integer ;
warna : int64 ;
begin
for y :=0 to 149 do
begin
for x := 0 to 149 do
begin
warna := iAsal.Picture.Bitmap.Canvas.Pixels[x,y] ;
PaintBox1.Canvas.Pixels[x,y] := warna ;
end ;
end ;
end;
end.
3.2.2 Chart
Chart merupakan komponen pada Delphi yang digunakan untuk menampilkan
data-data berupa angka kedalam bentuk grafik sehingga mudah dipahami.Pada
dasarnya Delphi menyediakan 11 buah grafik standard yang dapat dipergunakan:
tampilannya dapat dilihat pada gambar 3.3.
44
G ambar 3 . 3 T eeCh art Ga ll er y
Sebelum kita amempelajari akuisisi data dan interfacing antara PC dan piranti
diluar PC menggunakan komunikasi parallel, serial maupun bentuk komunikasi
yang lainnya, kita akan membuat interface aplikasi dengan membuat simulasi
pengambilan data dari ADC dan menampilkannya dalam bentuk grafik
menggunakan komponen Chart.
Langkah awal yang harus dilakukan adalah merancang interface, berikut ini
adalah komponen yang diperlukan untuk membuat aplikasi simulasi ADC.
1. Buatlah aplikasi baru dan ubahlah property Name form menjadi fGrafik dan
Captionnya menjadi Simulasi ADC.
2. Tambahkan 1 buah komponen Timer dan ubah property Enabled menjadi
False, property Interval diisi dengan1.
3. Tambahkan 2 buah komponen CheckBox. CheckBox1 ubah Captionnya
On/Off, property Enabled di isi dengan False. Properti Caption CheckBox2
diubah menjadi 3D.
45
4. Tambahkan 1 buah komponen Chart yang ada pada Tab Additional.
5. Tambahkan 1 buah komponen SaveDialog dan 1 buah komponen OpenDialog
yang bisa dicari di Tab Dialogs.
Langkah berikutnya adalah mengklik ganda komponen Chart dan pilih Tab Series
pada Editing Chart. Klik tombol Add. Pada TeeChart Gallery pilih Line,
hilangkan tanda cek pada 3D. Klik OK. Klik tombol Tittle dan tuliskan nama
Series1 pada kotak yang tersedia dengan nama Sinyal 1. Klik kembali tombol Add
dan buat series baru dengan nama Sinyal 2. Tampilan interface simulasi ADC
dapat dilihat pada gambar 3.4
Simpan aplikasi dengan nama unit ugrafik1 dan projectnya dengan nama
pgrafik
Kita akan membuat simulasi ADC dengan mengasumsikan data diambil dari
dua buah sinyal yang kita sebut Sinyal 1 dan Sinyal 2. Sinyal 1 adalah ssinyal
sinus dengan persamaan y = 5 sin x dan Sinyal 2 adalah sinyal kosinus
dengan persamaan y = 3 cos (2x).
46
Selanjutnya adalah membuat procedure pada komponen-komponen berikut:
Timer1:
procedure TForm1.Timer1Timer(Sender: TObject);
var t:Longint;
y:array[1..2] of extended;
begin
y[1]:=5*sin(pi*x/180);
y[2]:=3*cos(2*pi*x/180);
x:=x+1;
{Form2.Memo1.Lines.Add(IntToStr(x)+''+FloatToStrF(y[1],ffFixed
,3,2) +''+FloatToStrF(y[2],ffFixed, 3, 2));}
timer1.Enabled:=False;
for t:=0 to Chart1.SeriesCount-1 do
With Chart1.Series[t] do Add(y[t+1],'',clTeeColor);
With Chart1.BottomAxis do
Begin
Automatic := False;
Maximum := Series1.XValues.Last;
Minimum := Maximum - 100;
End;
Timer1.Enabled:= True;
end;
CheckBox1:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
Timer1.Enabled:=True;
{ Simpan1.Enabled:= False;
Buka1.Enabled:=False;}
end
else
begin
Timer1.Enabled:=False;
{ Simpan1.Enabled:=True;
Buka1.Enabled:=True;}
end;
end;
CheckBox2:
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked then
47
Chart1.View3D := True
else
Chart1.View3D := False;
end;
Perintah pada Timer1 mendefinisikan dua buah sinyal yang kita simulasikan
dan menampilkan dua buah sinyal simulasi ini ke bentuk grafik pada
komponen Chart. Perintah pada CheckBox1 akan menghentikan pengambilan
data dan pada CheckBox2 akan membuat tampilan grafik menjadi 3 dimensi
atau 2 dimensi. Pada bagian deklarasi atau bagian paling atas dari unit1 cari
deklarasi variable seperti berikut:
Var
Form1 :TForm1;
Lalu tambahkan variable berikut:
x: integer;
y1,y2:extended;
Jalankan program untuk melihat hasilnya. Setelah tidak ada error, selanjutnya
kita akan menyimpan data simulasi ini. Banyak cara yang bisa dilakukan
dalam hal database dengan Delphi. Pada saat ini kita hanya akan membuat
penyimpanan yang sederhana dengan Notepad.
Klik 2x pada MainMenu untuk membuka Menu Designer. Tulis “File” pada
Caption. Klik SubMenu di bawah File dan beri Caption”Data”. Klik lagi
SubMenu di bawahnya dan beri Caption “Simpan”. Lakukan 3 kali lagi
langkah di atas. Kali ini beri Caption “Buka”, “Hapus” dan “Keluar”. Tutup
Menu Designer.
Buatlah form baru, dengan cara klik File|New|Form. Berikan pada Form2 ini
sebuah komponen Memo. Klik pada property List dan tulis “ No Sinyal 1
Sinyal 2”. Dan klik Ok. Ganti property Font dengan Lucida Console dan
SccrollBar dengan ssBoth.
48
Simpan unit yang baru dengan nama ugrafik2. Lihat bagian deklarasi uses
pada ugrafik1. Tambahkan ugrafik2 di unit1.Klik pada Sub-sub menu dan
tuliskan perintah berikut:
procedure TForm1.Data1Click(Sender: TObject);
begin
Form2.Show;
end;
49
end;
with SaveDialog1 do
begin
InitialDir:=ExtractFilePath(Application.ExeName);
Filter:= 'Text Files (*.txt)|*.txt';
end;
end;
Lihat kembali procedure Timer1. Ada perintah yang berada dalam kurung
kurawal {}. Hilangkan tanda kurung kurawal sehingga perintahnya menjadi:
Form2.Memo1.Lines.Add(IntToStr(x)+''+FloatToStrF(y[1],ffFixed,
3,2) +''+FloatToStrF(y[2],ffFixed, 3, 2));
3.3 Penutup.
Pada bagian ini Anda telah mempelajari penggunaan elemen grafik antara lain
berupa canvas, pixel, dan koordinat serta komponen Chart. Dengan memanfaatkan
fasilitas untuk menampilkan grafik dengan elemen-lemen tersebut, maka kita
dapat menggambar dan melukis sesuai dengan aplikasi yang dirancang.
Soal-Soal Latihan
1. Buatlah aplikasi yang digunakan untuk mengcopy gambar dan melakukan
operasi terhadap gambar berupa:
A. Pencerminan terhadap sumbu vertical
B. Pencerminan terhadap sumbu horizontal
C. Rotasi 900 CCW
D. Rotasi 900 CW
50
Berikut tampilan interfacenya ketika program dijalankan.
51
52