tipe data delphi

Apa saja tipe data delphi?

Tipe data merupakan salah satu bagian penting dalam dunia pemrograman, karena bila salah menentukan tipe data, maka program bisa terjadi error. Contoh gampang : ada seseorang yang bertanya kepada kita, ”sekarang jam brapa?”, lalu kita menjawab “sekarang masih pagi”, sungguh jawaban yang sangat tidak relevan bukan?. Jika diterjemahkan dalam dunia pemrograman, pertanyaan tersebut mengharapkan jawaban yang bertipe data Date, tapi kita menjawabnya dengan jawaban yang bertipe data String. Kalau hal tersebut terjadi dalam pembuatan program, maka program akan muncul pesan error.

Tipe data juga memiliki makna lain. Sebagai contoh, kita akan menyimpan data jumlah hari dalam 1 bulan. Berapa maksimal jumlah hari dalam 1 bulan? 31? Tepat sekali. Untuk itu kita harus memilih tipe data yang jangkauannya mendekati, dalam arti cukup untuk menampung data angka-angka tersebut, tetapi tidak berlebihan. Misalnya untuk data angka-angka tersebut kita menggunaka tipe data LongInt yang memiliki jangkauan -2147483648 sampai 2147483747. Memang program tidak akan terjadi error karena sama-sama Numeric. Tetapi hal itu akan memboroskan memory, karena semakin besar jangkauan bilangan maka akan semakin besar konsumsi memory. Dan lagi hari tidak pernah bernilai negatif. Oleh sebab itu kita harus benar-benar mengenal tipe-tipe data, supaya pemakaiannya bisa tepat.

  1. Tipe Integer

Integer adalah bilangan bulat, dipakai untuk menyatakan bilangan yang tidak mengandung unsur desimal. Terdapat beberapa tipe data yang merupakan integer dan dikelompokkan sebagai Generik dan Fundamental. Sebisa mungkin gunakan tipe generik, karena tipe generik akan dioptimasi berkaitan dengan sistem operasi dan CPU yang digunakan.

tipe data delphi

Catatan:

  • Signed : Bilangan bertanda, artinya mengenal bilangan negatif dan positif.
  • Unsigned : Bilangan tidak bertanda, dimulai dari 0 (nol) dan tidak mengenal bilangan negatif dan positif.

  2. Tipe Real

Real dipakai untuk menyatakan bilangan yang mempunyai unsur desimal.

tipe data delphi

  • Tipe generik Real didefinisikan sebagai Double. Pada Delphi Pascal versi lama, tipe real adalh mengacu pada Real48. Bila diinginkan tipe real mengacu ke tipe real48 seperti pada versi lama, kita dapat menggunakan compiler directive {$REALCOMPATIBILITY ON}. Untuk diperhatikan adalah tipe real48 ini disediakan untuk backward compatibilty. Karena formatnya tidak Intel CPU Native, sehingga proses menggunakan tipe data ini akan berjalan lebih lambat dari tipe real lainnya.
  • Tipe Extended menawarkan presisi lebih tinggi tetapi kurang portabel. Kita harus lebih berhati-hati menggunakan tipe data ini.
  • Tipe Comp (Computational) adalah Native Intel CPU dan direpresentasikan sebagai integer 64 bit. Tipe ini dikelompokkan dalam real karena tidak memiliki sifat seperti tipe integer, misalnya tidak dapat di-increment atau decrement. Tipe ini sebenarnya adalah backward compatibility. Untuk mendapatkan performa yang lebih baik, kita dapat menggunakan Int64.
  • Tipe Currency adalah fixed-floating point data type yang digunakan untuk meminimalkan terjadinya error waktu pembulatan. Tipe ini direpresentasikan sebagai integer 64 bit yang terskala dan hanya memiliki 4 digit di belakang koma.

  3. Tipe Boolean

Boolean adalah bentuk tipe data yang mempunyai nilai True dan False.

tipe data delphi

  4. Tipe Character

Tipe Fundamental dari character adalah AnsiChar dan WideChar. Tipe Generik character adalah Char, yang ekuivalen dengan AnsiChar. Char memiliki sifat tipe ordinal, misalnya dapat di-increment, decrement, dan dapat menjadi pilihan dalam Case.

  5. Tipe String

String adalah sederetan character yang membentuk kesatuan. Tipe String umunya lebih banyak digunakan, seperti untuk menyimpan data Nama, Alamat, Kota dan lainnya.

tipe data delphi

  • Shortstring, pendefinisian shortstring dapat dilakukan dengan 2 cara, yaitu :

a. Pendefinisian dengan shortstring, akan mendefinisikan string dengan panjang maksimum 255 karakter dan memory yang dialokasikan adalah 256 byte.

b. Pendefinisian dengan string[x], panjang maksimum string adalah x, sedangkan memory yang dialokasikan adalah x+1.

Shortstring hanya digunakan untuk backward compatibility.

  • AnsiString, atau LongString, atau cukup disebut String saja adalah string yang dialokasikan secara dinamik sesuai kebutuhan. Panjang AnsiString hanya dibatasi oleh memory yang tersedia.
  • WideString, mirip dengan AnsiString hanya setiap karakternya disimpan sebagai WideChar. Perilaku WideString sangat mirip dengan AnsiString, perbedaannya pada ukuran setiap karakternya.

  6. Tipe Pointer

Pointer adalah sebuah variabel yang menunjukkan sebuah alamat pada memori. Ketika sebuah pointer berisi alamat variabel lainnya, dapat kita katakan pointer menunjuk ke lokasi variabel tersebut di memori atau ke data yang disimpan disana. Pointer dipakai untuk mengindikasikan jenis data yang disimpan pada alamat yang dikandungnya. Penggunaan pointer pada umumnya dapat mempresentasikan sembarang data, meskipun lebih banyak tipe pointer dikhususkan untuk mengacu pada tipe data tertentu. Pointer menempati 4 byte memori.

Sebagai Contoh :

tipe data delphi

  • Baris 2 : mendeklarasikan variabel X dan Y sebagai variabel bertipe integer.
  • Baris 3 : mendeklarasikan P sebagai pointer ke sebuah nilai integer. Ini berarti P dapat menunjuk ke lokasi X atau Y.
  • Baris 5 : menetapkan nilai ke X, yaitu 8.
  • Baris 6 : menetapkan alamat X ke P.
  • Baris 7 : mendapatkan kembali nilai pada lokasi yang ditunjukkan P, dan menetapkannya ke Y.
  • Dari ilustrasi diatas maka berapakah nilai Y? Ya benar, nilai Y=X, yang mana X=8, maka Y=8.
  • Operator @, dipakai untuk mengambil alamat variabel.
  • Simbol ^, Jika ia dituliskan sebelum identifier tipe seperti di baris 3 —^typename— , ia menunjukkan tipe yang menyatakan pointer ke variabel dengan tipe typename. Jika ia dituliskan setelah variabel pointer seperti pada baris 7 —Pointer^— maka ia mengacu balik pointer tersebut, atau menghasilkan nilai yang disimpan di alamat memori yang ditunjukkan oleh pointer tersebut.

  7. Tipe Variant

Variant merupakan tipe data yang fleksibel, karena bisa berubah saat runtime. Jadi jika kita memanipulasi data yang tipenya berubah-ubah atau tidak dapat ditentukan pada saat kompilasi maka kita dapat menggunakan variant. Variant menawarkan fleksibilitas tetapi juga membutuhkan memori yang lebih besar dibanding variabel biasa, juga operasi penggunaannya pun lebih lambat, dan berpotensial menghasilkan runtime error. Variant dapat berisi sembarang tipe data kecuali tipe data yang terstruktur dan pointer. Variant dapat dipadukan dengan nilai variant lain dan dengan nilai integer, real, string dan boolean di dalam ekspresi dan penetapan (kompiler secara otomatis mengerjakan konversi tipe).