Kebanyakan pemrogram pemula selalu ingin cepat-cepat membuat program dengan tampilan bagus. Mereka kurang menyukai keindahan yang terjadi behind the scene. Jika Anda termasuk orang yang cepat bosan dan lebih menyukai tampilan luar, maka Anda boleh melompati bagian ini dan langsung ke bagian VCL. Anda bisa kembali lagi ke bagian ini jika sudah merasa perlu untuk mengetahui hal-hal yang bersifat mendasar.
Apakah Object itu?
Pada bagian ini kita masih melakukan percobaan di dalam console. Akan tetapi karena obyek memiliki pembahasan yang cukup panjang dan merupakan pembahasan utama di dalam tutorial ini, maka saya menempatkan pembahasan mengenai obyek ini di dalam bab yang terpisah dari pembahasan console.
Jika record dapat mengumpulkan beberapa variabel menjadi satu variabel, maka object tidak hanya sebatas mengumpulkan variabel. Sebuah object dapat mempunyai prosedur dan fungsi. Untuk memanggil prosedur atau fungsi dari sebuah obyek, caranya mirip dengan mengakses anggota variabel dari sebuah record, yaitu dengan menyebutkan nama obyeknya diikuti dengan titik diikuti dengan nama prosedur atau fungsi yang hendak dipanggil.
HariLahir dengan obyek
Untuk memperjelas pemahaman tentang object, perhatikan jika program HariLahir ditulis menggunakan tipe object sebagai berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | program HariLahir4; {$APPTYPE CONSOLE} type TNamaBulan=(Januari=1, Pebruari, Maret, April, Mei, Juni, Juli, Agustus, September, Oktober, Nopember, Desember); TObjectTanggal=object Tanggal:integer; Bulan:TNamaBulan; Tahun:integer; procedure AmbilTanggal; function JumlahHari:integer; function NamaHari:string; end; const Hari:array[0..6]of string= ('Minggu','Senin','Selasa','Rabu', 'Kamis','Jumat','Sabtu'); HariPertama=5; var TglLahir:TObjectTanggal; //---implementasi TObjectTanggal------------------ procedure TObjectTanggal.AmbilTanggal; var tmp:integer; begin Write('Tanggal ?: '); Readln(Tanggal); Write('Bulan ? : '); Readln(tmp); Bulan:=TNamaBulan(tmp); Write('Tahun ? : '); Readln(Tahun); end; function IsKabisat(Y:integer):boolean; begin result:=((Y mod 4=0)and(Y mod 100<>0)) or(Y mod 400=0); end; function TObjectTanggal.JumlahHari:integer; function HariDlmBulan(B:TNamaBulan):integer; begin case B of Januari,Maret,Mei,Juli,Agustus, Oktober,Desember:result:=31; April,Juni,September,Nopember:result:=30; Pebruari:if IsKabisat(Tahun) then result:=29 else result:=28; end; end; var i:TNamaBulan; ii:integer; begin result:=0; //Hitung hari dalam tahun for ii:=0 to Tahun-1 do if IsKabisat(ii)then result:=result+366 else result:=result+365; //tambahkan dengan sisa hari for i:=Januari to Pred(Bulan)do result:=result+HariDlmBulan(i); result:=result+Tanggal; end; function TObjectTanggal.NamaHari:string; var i:integer; begin i:=(JumlahHari+HariPertama)mod 7; result:=Hari[i]; end; //--------------------------------------------- procedure DisplayHari(Tgl:TObjectTanggal); begin Writeln('Anda lahir hari ',Tgl.NamaHari); end; procedure AmbilData; begin Writeln('**Semua data dalam angka**'#13#10); Writeln('Masukkan data tanggal lahir'); TglLahir.AmbilTanggal; end; begin AmbilData; DisplayHari(TglLahir); Writeln('Tekan Enter'); Readln; end. |
Variabel TglLahir adalah variabel dengan tipe TObjectTanggal. Tipe tersebut memiliki prosedur AmbilTanggal untuk mengisi variabel Tanggal, Bulan dan Tahun yang dimilikinya. Prosedur AmbilData adalah prosedur yang bertujuan untuk mengisi variabel Tanggal, Bulan, dan Tahun dari obyek TglLahir. Oleh karena itu prosedur AmbilData memanggil prosedure AmbilTanggal yang dimiliki oleh setiap obyek dengan tipe TObjectTanggal dengan cara TglLahir.AmbilTanggal.
Prosedur DisplayHari bertujuan untuk menampilkan hari yang sesuai dengan tanggal yang dimiliki oleh TglLahir. Oleh karena itu prosedur DisplayHari memanggil fungsi NamaHari dari obyek Tgl yang merupakan parameter dari prosedur DisplayHari. Cara pemanggilannya adalah Tgl.NamaHari.


