Modul II Object Bahasa Pascal Bahasa pemrograman yang dipakai oleh Delphi adalah Object Bahasa Pascal. Modul ini memberikan hal-hal dasar dari Object Bahasa Pascal dengan membahas Konsep Dasar Program, Variabel, Tipe Data, Operator Konstanta dan Fungsi, Unit, dan File Yang Dibangun Delphi yang disertai contohcontoh Program Aplikasi Sederhana. 2.1 Konsep Dasar Program Suatu komputer adalah suatu mesin serba guna. Tanpa suatu program, suatu komputer tidak bisa melakukan apa-apa. Dengan suatu program, komputer dapat dibuat bertingkah-laku seperti mesin spesialist (misal pengolah kata). Secara garis besar program memiliki beberapa konsep dasar, yang antara lain : 2.1.1 Statement Statement adalah perintah pengerjaan program. Kumpulan dari statement membentuk suatu program. Bila suatu program Pascal tidak mengandung statement atau disebut dengan statement kosong (empty statement), maka tidak akan ada yang dikerjakan oleh program. Statement terletak dibagian deklarasi statement dengan diawali oleh kata cadangan Begin dan ditutup dengan kata cadangan End. Masing-masing akhir dari statement diakhiri dengan titik koma (;). 2.1.2 Identifier Identifer (Pengenal) adalah bagian dari aplikasi yang digunakan untuk menunjukkan konstanta, tipe, perubah, prosedur, fungsi, program dan lain-lain. Aturan-aturan penamaan identifier, adalah sebagai berikut : Semua pengenal diawali dengan sebuah karakter atau garis bawah (a..z, A..Z atau _). Karakter-karakter setelahnya dapat berupa huruf, garis bawah atau angka (0..9) dan tidak boleh berisi spasi. Karakter-karakter lainnya tidak diperbolehkan. Sebagai contoh, Nama_Siswa, Program_Latih, A123 adalah contoh pengenal yang benar, sedangkan Nama Siswa, 1ABC adalah contoh pengenal yang salah. Pengenal bersifat Case-Insensitive, artinya tidak membedakan huruf kecil (a..z) dengan huruf besar (A..Z). misalnya pengenal-pengenal berikut : gaji, Gaji, GAJI adalah sama. Panjang pengenal bisa terdiri dari beberapa karakter, tetapi yang digunakan adalah 63 karakter pertama. 2.1.3 Komentar Komentar adalah suatu kalimat yang biasanya digunakan untuk memberikan penjelasan di dalam program. Teks di dalam komentar tidak diproses oleh Compiler. Object Pascal memperbolehkan penulisan komentar dengan 3 tanda, yaitu Kurung Kurawal, Kurung-Bintang dan komentar gaya C++ dengan slash ganda. Contoh-contoh komentar : { Komentar dengan kurung kurawal } (* Komentar dengan kurung bintang *) // Komentar gaya C++
2.2 Konstanta dan Variabel 2.2.1 Konstanta Deklarasi konstanta menunjukkan nilai yang tetap dari suatu pengenal dan berlaku pada blok dimana deklarasi tersebut dinyatakan. Bentuk umum dari deklarasi konstanta adalah : Const Pengenal = nilai > Const PPh = 0.15 Dengan Pengenal = nama pengenal Nilai = nilai konstanta Contoh : Di dalam program kita sering memakai nilai tetap. Misalnya Presentasi Pajak Penghasilan (PPh), sebesar 15 %. Jika kita memakai nilai tersebut sebanyak 5 kali, maka kita akan menuliskan 0.15 sebanyak 5 kali. Jika suatu saat, nilai tersebut berubah, maka kita akan mengubah nilai tersebut sebanyak 5 kali pula. Tetapi dengan konstanta cukup hanya sekali saja. 2.2.2 Variabel (Perubah) Perubah sebenarnya mewakili suatu nilai data tertentu yang akan dioperasikan dalam suatu program. Setiap perubah (variabel) harus dinyatakan tipe datanya. Bentuk umum deklarasi perubah adalah : Var Pengenal : tipe_data Dengan Pengenal : nama perubah yang akan dideklarasikan Tipe_data : tipe data yang akan digunakan.
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 5
Contoh : Var a, b, c : integer; Rata2 : real;
2.3 Pentingnya Tipe Data Tipe data sangat penting dalam pemrograman. Delphi menyediakan tipe data yang cukup banyak dan lengkap sehingga memberikan ruang yang luas bagi pemrogram untuk membuat program yang efektif dan efisien sesuai dengan tugas yang dilakukan program. Pemilihan tipe data yang tepat akan sangat berguna dalam hal menghemat memori, kecepatan proses, ketelitian perhitungan dan lain-lain. 2.3.1 Tipe Integer Tipe data integer digunakan untuk menyatakan bilangan yang tidak mempunyai angka desimal. Tabel berikut memberikan tipe-tipe bilangan integer beserta jangkauan dan memori yang diperlukan. Tipe Jangkauan Memory (Byte) Byte 0..255 1 Word 0..65535 2 ShortInt -128..127 1 SmallInt -32768..32767 2 Integer -2147483648..2147483647 4 Cardinal 0..2147483647 4 LongInt -2147483648..2147483647 4 Catatan : Fungsi di dalam Delphi untuk mengubah jenis data integer menjadi data string adalah IntToStr(Integer To String). 2.3.2 Tipe Real Tipe data real merupakan floating-point (ditulis dalam a x 10b), yang digunakan untuk menyimpan bilangan yang mempunyai angka desimal. Tabel berikut memberikan tipe-tipe bilangan integer beserta jangkauan dan memori yang diperlukan. Tipe Jangkauan Memory (Byte) Real 2,9 x 10-39 .. 1,7 x 1038 6 -45 38 Single 1,5 x 10 .. 3,4 x 10 4 Double 5.0 x 10-324 .. 1.7 x 10308 8 Extended 3.4 x 10-4932 .. 1.1 x 10-4392 10 Comp -263+1 .. 263-1 8 Catatan : Fungsi di dalam Delphi untuk mengubah jenis data numerik real menjadi data string adalah FloatToStr (Float To String) 2.3.3 Tipe Currency Tipe Currency adalah tipe yang baru dikembangkan. Dipakai untuk menyatakan besarnya nilai uang. Tipe Currency mempunyai jangkaun 922337203685477.5808 .. 922337203685477.5807 dengan besar memory yang dibutuhkan sebesar 8 byte. Ada dua keuntungan dari tipe data Currency, yaitu : 1. Tipe Currency mempunyai ketelitian yang lebih tinggi dalam menangani bilangan yang besar. 2. Tipe Currency dipakai pada CurrencyField dan komponen-komponen lain serta kompatibel dengan tipe-tipe database yang menyatakan uang. 2.3.4 Tipe Boolean Tipe boolean dipakai untuk menyatakan nilai logika. Variabel tipe ini hanya dapat berisi TRUE (benar) dan FALSE (salah). Tipe Memory (Byte) Boolean 1 ByteBool 1 Bool 2 WordBool 2 LongBool 4
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 6
2.3.5 Tipe Character Tipe karakter dipakai untuk menyimpan satu huruf. Sebuah karakter berukuran satu byte. Tipe Ukuran (byte) Isinya Char 1 1 Karakter UniCode ANSIChar 1 1 Karakter ANSI WideChar 2 arakter SemiCode
2.3.6 Tipe String Tipe string digunakan untuk menyatakan sederetan karakter yang membentuk kesatuan. String dapat dipakai untuk menyimpan data Nama, Alamat, Kota dan lain-lain. Tipe Panjang Isi ShortString 255 ANSIChar ANSIString Sampai 36 B ANSIChar String 255 atau sampai 36 B ANSIChar WideString Sampai 1.5 GB WideChar Catatan : Di bawah ini terdapat fungsi-fungsi string : 1. StrToInt (String To Integer) adalah untuk mengubah jenis data string menjadi data numerik integer. 2. StrToFloat (String To Float) adalah untuk mengubah jenis data string menjadi data numerik real. 3. StrToCurr (String To Currency) adalah untuk mendapatkan nilai berupa data numerik bertipe currency dari suatu data string. 4. StrToDate (String To Date) adalah untuk mendapatkan nilai bertipe TDateTime dari suatu data string. 5. DateToStr (Date To String) adalah untuk mendapatkan jenis data string dari suatu data bertipe TDateTime. 2.3.7 Tipe Array Tipe array adalah tipe terstruktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai tipe data yang sama (sejenis). Posisi masing-masing komponen dalam array dinyatakan sebagai nomor indeks. Bentuk umum dari deklarasi tipe array adalah : Tipe Pengenal = array [tipe_index] of tipe Dengan Pengenal : nama tipe data Tipe_index : tipe data untuk nomor indeks Tipe : tipe data komponen Contoh : Tipe ArNilai = array [1..5] of real; Var NilaiUjian : ArNilai; Rata_rata : real;
2.3.8 Tipe Record Sama halnya dengan array, record adalah kumpulan data. Perbedaan antara array dengan record adalah bahwa dalam array semua elemennya harus bertipe sama, tetapi dalam record setiap elemen bisa mempunyai tipe data yang berbeda satu sama lain. Bentuk umum dari deklarasi record adalah : Type Pengenal = record medan1 : tipe1; medan2 : tipe2
Dengan
medann : tipen; end; Pengenal : penegenal yang menunjukkan tipe data yang akan dideklarasikan. Medan1,..,medann : nama medan yang akan digunakan. Tipe1,..,tipen : sembarang tipe data yang telah dideklarsikan sebelumnya.
:
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 7
Contoh : Type DataMhs = record NIM : String[7]; Nama : String[20]; NilaiUTS : real; NilaiUAS : real; End; Var Mhs : DataMhs; 2.3.9 Tipe Subrange Tipe subrange dipakai untuk menyatakan data yang berurutan yang bertipe sama, misalnya range bilangan antara 1 sampai 10, huruf antara A sampai E dan seterusnya. Bentuk umum dari deklarasi tipe subrange adalah : Type Pengenal = Konstanta1..Konstanta2; Dengan Pengenal : nama tipe data yang akan dideklarassikan Konstanta1 : batas bawah nilai data Konstanta2 : batas atas nilai data Contoh : Type NilaiHuruf = ‘A’...’E’; Var Nilai = NilaiHuruf; 2.3.10 Tipe Set Set (himpunan) adalah kumpulan objek yang mempunyai tipe data yang sama dan urutan penulisannya tidak diperhatikan. Setiap objek di dalam suatu set disebut dengan anggota atau elemen himpunan. Bentuk umum dari deklarasi tipe set adalah : Type Pengenal = set of tipe_data; Set dapat juga langsung dideklarasikan dalam bagian deklarasi Variabel. Var Pengenal = set of tipe_data; Dengan Penegenal : nama perubah atau pengenal yang akan dinyatakan sebagai tipe himpunan. Tipe_data : tipe data dari anggota himpunan. Contoh : Type Irama = (JAZZ, ROCK, BLUSE, COUNTRY, CLASSIC); Musik = set of irama; Nilai = set of 0..10; Untai = set of char; Huruf = set of ‘A’..’Z’; Sakit = (pusing, mual, lemas, lesu, letih); Penyakit = set of sakit; Var Jenis_Musik Nilai_Ujian, Nilai1 Kalimat Alphabet Obat
: Musik; : Nilai; : Untai; : Huruf; : Penyakit;
2.4 Operator Operator dipakai untuk memanipulasi dan mengolah data. Opertor-operator yang digunakan untuk membentuk ungkapan bisa dikelompokkan menjadi operator Penugasan (Assignment), opertor Arimatika, operator Unary (Tunggal), operator Logika, dan operator Kesamaan (Relasi). 2.4.1 Operator Penugasan (Assignment) Opertor Uraian Contoh Opertor Penugasan (Assignment) Adalah operator Pascal yang paling sering dipakai. Operator ini dipakai untuk mengisikan nilai variabel. Tanda yang dipakai adalah titik dua sama dengan ( := ). := Penugasan Bilangan := 10;
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 8
2.4.2 Operator Arimatika Operator
+ * / Div Mod
Uraian Contoh Operator Aritmatika Dipakai untuk operasi arimatika Penjumlahan x := y + z; Pengurangan x := y – z; Perkalian x := y * z; Pembagian x := y / 3.14; Pembagian Bulat x := y div 10; Sisa Pembagian x := y mod z;
Catatan : Delphi tidak menyediakan operator pemangkatan, untuk operator pemangkatan digunakan rumus matematika ax = exp(x*ln(a)), atau dapat ditulis dengan exp(<pangkat>*ln()). 2.4.3 Operator Unary (Tunggal) Operator
^ @ And Or Not
Uraian Contoh Operator Unari Dipakai untuk operasi arimatika tunggal Opertor pointer Myobject.Data^; Operator Alamat Mhs := @MyRecord; Bitwaise and x := x and $02; Bitwaise or x := x or $FF; Bitwaise not x := x and not $02;
2.4.4 Operator Logika Operator
Uraian Contoh Operasi Logika Dipakai untuk mengekspresikan satu atau lebih data atau ekspresi logika (boolean), menghasilkan data logika baru. And Logika And If (x = 1) and (y = 2) then… Or Logika Or If (x = 1) or (y = 2) then… Not Logika Not If not vali then…
2.4.5 Operator Kesamaan (Relasional) Operator
Uraian Contoh Operator Kesamaan (Relasi) Dipakai untuk membandingkan dua variabel, sama seperti pada matematika. = Sama Dengan If (x = 10) then … <> Tidak sama dengan If (x <> 10) then … < Kecil dari If (x < 10) then … > Besar dari If (x > 10) then … <= Kecil atau sama dengan If (x <= 10) then … >= Besar atau sama dengan If (x >= 10) then …
Catatan : Perhatikan operator := dan =. Operator := untuk memberikan nilai variabel, sedangkan operator = untuk membandinkan dua buah nilai. 2.5 Urutan Operator Setiap operator mempunyai tingkat hierarki, yaitu urutan pelaksanaan jika ada beberapa operator dalam satu proses. Operator Urutan Kategori @, not Pertama Operator unary *,/,div,mod,and,shl,shr,as Kedua Operator perkalian +,-,or,xor Ketiga Operator penambahan =,<>,>,<,<=,>=,in,is Keempat Operator relasional
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 9
2.6 Prosedur dan Fungsi 2.6.1 Prosedur Suatu Prosedur adalah suatu bagian dari kode yang terpisah dari program utama dan mengerjakan suatu tindakan, tetapi tidak mengembalikan suatu nilai. Prosedur dibuat bilamana program akan dibagi-bagi menjadi beberapa blok-blok modul. Prosedur dibuat di dalam program dengan cara mendeklarasikannya dibagian deklarasi prosedur. Kata cadangan PROCEDURE digunakan sebagai judul dari bagian deklarasi prosedur, diikuti oleh identifier yang merupakan nama dari prosedurnya dan secara optional dapat diikuti lagi oleh kumpulan parameter yang diakhiri dengan titik koma. Bentuk umum dari deklarasi prosedur adalah :
Dengan
procedure nama <(dafpar)>; Nama : nama prosedur Dafpar : daftar parameter formal
2.6.2 Fungsi Suatu Fungsi adalah suatu bagian dari kode yang terpisah dari program utama dan mengerjakan suatu tindakan, serta tidak mengembalikan suatu nilai. Fungsi yang akan digunakan di dalam program juga harus dideklarasikan terlebih dahulu. Kata cadangan FUNCTION mengawali bagian deklarasi fungsi diikuti oleh identifier yang merupakan nama dari fungsinya dan secara optional dapat diikuti oleh kumpulan parameter, tipe dari fungsinya serta diakhiri dengan titik koma. Bentuk umum dari deklarasi fungsi adalah : function nama <(dafpar)> : tipe; Nama : nama fungsi Dafpar : daftar parameter formal tipe : Tipe data dari fungsi tersebut. Contoh :
Dengan
function Multiply(Num1, Num2 : Integer) : Integer; begin Result := Num1 * Num2; end; procedure TForm1.Button1Click(Sender: TObject); Var X : Integer; begin X := Multiply(10, 20); Label1.Caption := IntToStr(X)); end; 2.7 Unit
Unit adalah kumpulan procedure dan function. Unit adalah suatu file teks yang telah dikompilasi Delphi kedalam kode mesin serta dapat dipakai oleh program lain. Bentuk umum dari unit adalah : unit NamaUnit1; Interface Uses … Const … Type … Var … Procedure … Function … Implementation Uses … Label … Const … Type … Var … Procedure … Function … Initialization {optional} begin … end; Finalization {optional} begin … end; end.
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 10
Ada tiga jenis unit, yaitu 1. Unit yang berhubungan dengan form (unit yang paling umum). 2. Unit untuk menyimpan prosedur dan fungsi. 3. Unit untuk membangun komponen. 2.7.1 Struktur Unit Unit NamaUnit; Menyatakan nama unit yang disebutkan pada uses yang terdapat pada program atau pada unit yang lain. Interface Tempat mendeklarasikan konstanta, tipe, prosedur dan fungsi yang bersifat publik. Jika ada konstanta, tipe, prosedur dan fungsi yang ingin dideklarasikan tetapi berada pada unit lain, maka kata kunci (keyword) uses disertakan. Misal : uses UnitHit; Implementation Tempat mendefisikan prosedur dan fungsi yang bersifat publik. Tempat mendeklarasikan konstanta, tipe, variabel, prosedur dan fungsi yang bersifat private hanya untuk unit itu sendiri. Apabila ada deklarasi atau definisi konstanta, tipe, variabel, prosedur dan fungsi yang ingin disertakan tetapi ada pada unit lain, maka kata kunci (keyword) uses disertakan. Misal : uses Unit1; Initialization Bersifat opsional dan berada di dalam bagaian implementation. Berguna untuk membuat inisialisasi. Finalization Bersifat opsional dan berada di dalam bagaian implementation. Berguna untuk melakukan pembersihan sampah sebelum mengakhiri program. End. Mengakhiri struktur unit. Contoh : unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin end; end.
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 11
2.8 File-file Yang Dibangun Delphi Ada beberapa file yang dibuat oleh Delphi pada saat aplikasi dibangun, yang antara lain : 1. File Project (.dpr) File ini dipakai untuk menyimpan informasi mengenai form dan unit. File ini dibuat pada saat desain. File ini berisi inisialisasi form utama dan form-form lain yang dibuat secara otomatis. 2. File Unit (.pas) File ini dipakai untuk menyimpan program. Ada tiga jenis file unit : - Unit Form/Data Module dan Frame. Unit ini dibuat secara otomatis oleh Delphi. - Unit Component. Unit yang dibuat pada saat komponen baru dibuat. - Unit Umum Unit yang dibuat untuk tipe data, variabel, prosedur, dan class yang dapat diakses dan diaplikasi. 3. File Form (.dfm) File ini adalah file biner yang dibuat Delphi untuk menyimpan informasi mengenai form. Setiap file form mempunyai sebuah file unit (.pas). 4. File Resource (.res) File ini berisi sebuah icon yang dipakai oleh project. File ini tidak dapat dibuat atau diubah oleh user karena Delphi secara terus menerus meng-update atau membuat ulang file ini. 5. File Project Option (.dof) File ini berisi option-option dari project yang dinyatakan lewat menu project | option. File ini dibuat pada saat project disimpan untuk pertama kali dan disimpan ulang. 6. File Backup (.~dp, .~df, .~pa) File ini berisi file-file cadangan untuk project, form dan unit. File backup dibuat pada saat penyimpanan yang kedua kalinya. File backup berisi salinan terakhir dari file sebelum disimpan. 7. File-file yang Dibuat oleh Compiler - File Executable (.exe). File ini berdiri sendiri dan hanya memerlukan file library di DLL, VBX dan lain-lain. - 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 merancang DLL sendiri. 8. File Windows yang Dipakai Delphi - File Help (.hlp). File help standar dari Windows yang dapat dipakai diaplikasi Delphi. - File Image atau Grapik (.wmf, .bmp, .ico). File-file ini dipakai agar aplikasi lebih menarik. 2.9. Contoh Program Contoh di bawah ini adalah contoh program perhitungan sederhana :
Listing Program Untuk Button Proses procedure TForm1.Button2Click(Sender: TObject); var a,b,c : integer; begin a:=StrToInt(Edit1.Text); b:=StrToInt(Edit2.Text); c:=a+b; Edit3.Text:=IntToStr(c); end;
Listing Program Untuk Button Ulang
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Clear; Edit2.Text:=''; Edit3.Clear; Edit1.SetFocus; end;
Listing Program Untuk Button Tutup
procedure TForm1.BitBtn3Click(Sender: TObject); begin Close; end;
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 12
2.10. Tugas Praktikum 1. Buatlah program untuk kalkulator sederhana, seperti gambar di bawah ini : a. b.
2. Buatlah program untuk mengitung harga jual barang, seperti gambar berikut ini :
3. Buatlah program untuk menghitung umur seseorang (untuk usia Anda sekarang tambahkan dibelakangnya Tahun), seperti terlihat pada gambar di bawah ini :
4. Buatlah program untuk mengkonversi Nilai Celcius ke Fahrenheit, seperti terlihat pada gambar di bawah ini :
Modul Teori dan Praktikum Bahasa Pemrograman Delphi 13