Minggu, 22 Maret 2015

Operator-operator pada Delphi

Operator adalah bagian dari program untuk membuat operasi pada data. Terdapat beberapa operator untuk menangani operasi program sesuai tipe data.
Macam-macam operator pada Delphi 7 :

  1. Operator Aritmatika
    Adalah operator untuk keperluan operasi bilangan. Operator aritmatika dibagi menjadi dua, yaitu operator binary dan operator unary.
    Macam-macam operator aritmatika binary: 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    + Penjumlahan integer, real integer, real X + Y
    - Pengurangan integer, real integer, real X – Y
    * Perkalian integer, real integer, real X * Y
    / Pembagian real integer, real real X / Y
    div Pembagian integer integer integer X div Y
    mod Sisa integer integer X mod Y
    Macam-macam operator aritmatika unary:
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    + (unary) Tanda positif integer, real integer, real +X
    - (unary) Tanda negatif integer, real integer, real -X
  2. Operator Boolean
    Adalah operator yang dipakai untuk menangani operasi data bertipa boolean. Operator ini juga menghasilkan data bertipe boolean.
    Macam-macam operator boolean: 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    not Negasi Boolean Boolean not lulus
    and Konjungsi Boolean Boolean pria and single
    or Disjungsi Boolean Boolean pria or wanita
    xor Disjungsi Eksklusif Boolean Boolean anak xor balita
  3. Operator Logika
    Adalah operator untuk menangani operasi logika pada bit-bit angka. Berbeda dengan operator boolean, operator logika berfungsi mirip dengan operator aritmatika, artinya operator ini tidak menangani data berupa pernyataan namun berupa angka / integer.
    Macam-macam operator logika : 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    not bit negation integer integer not A
    and bit and integer integer A and B
    or bit or integer integer A or B
    xor bit xor integer integer A xor B
    shl bit shift left integer integer A shl 2
    shr bit shift right integer integer B shr 3
  4. Operator String
    Adalah operator yang menangani data berupa string atau huruf/karakter. Operator string hanya satu, yaitu operator +. Operator ini berfungsi sebagai perangkai, jadi tidak sama dengan + pada operator aritmatika. 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    + Perangkaian String, Character String ‘A’+’ku’
  5. Operator Pointer
    adalah operator yang khusus menangani data berupa pointer, hasil operator pointer bisa berupa pointer, integer, atau boolean.
    Macam-macam operator pointer: 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    + Penjumlahan Pointer Character pointer, Integer Character pointer P+I
    - Pengurangan Pointer Character Pointer, Integer Character Pointer, Integer P-Q
    ^ Selisih Pointer Pointer Tipe dasar pointer P^
    = Persamaan Pointer Boolean P=Q
    <> Pertidaksamaan Pointer Boolean P<>Q
  6. Operator Himpunan
    Adalah operator yang menangani data berupa himpunan.
    Macam-macam operator himpunan : 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    + Union set set S1+S2
    - Selisih set set S1-S2
    * Intersection set set S1*S2
    <= Subset set boolean S1<=S2
    >= Superset set boolean S2>=S1
    = Persamaan set boolean S1=S2
    <> Pertidaksamaan set boolean S1<>S2
    in Keanggotaan ordinal, set boolean S1 in S2
  7. Operator Relasional
    Adalah operator yang menangani perbandingan antara dua buah data. Operator relasional menghasilkan nilai boolean.
    Macam-macam operator relasional: 
    Operator Operasi Tipe Operand Tipe Hasil Contoh
    = Persamaan simple, class, class reference, interface, string, packed string Boolean A=B
    <> Pertidaksamaan simple, class, class reference, interface, string, packed string Boolean A<>B
    < Kurang dari simple, string, packed string, PChar Boolean A<B
    > Lebih Dari simple, string, packed string, PChar Boolean A>B
    <= Kurang dari atau sama dengan simple, string, packed string, PChar Boolean A<=B
    >= Lebih dari atau sama dengan simple, string, packed string, PChar Boolean A>=B
  8. Operator Class
    Operator as dan is menerima class dan instan obyek sebagai operand, operator = dan juga beroperasi dengan class
  9. Operator @
    Operator @ menghasilkan alamat variabel, function, procedure, atau method. Operator @ mengkonstruksi pointer dengan operandnya

https://abisabrina.wordpress.com/2010/12/19/operator-operator-pada-delphi/

Pengkapsulan, Pewarisan, Polimorfisme dan Eksepsi

A. Pengkapsulan(Encapsulation)

konsep penggabungan data dengan operator. Dalamkonsep pemodelan data dan operasi menjadi satu kesatuan yang disebutobject.
 Encapsulation juga disebut dengan penyembunyian informasi
Misalnya
  • prosedur menyalakan mobil, kita tidak perlu tahu detil proses yang
    terjadi ketika menyalakan mobil dan data-data apa saja yang terlibat
    dalam proses tersebut tetapi yang kita tahu adalah bagaimana cara
    menyalakan mobil itu saja.
  • kita hanya tahu cara menggunakan komponen tombol tetapi tidak
    perlu tahu cara membuat komponen tombol.

B. Pewarisan (Inheritance)
sebuah object yang dapat diturunkan menjadi object yangbaru dengan tidak menghilangkan sifat asli dari object tersebut
Misalnya
  • Setiap tombol pasti mempunyai event onClick.
C, Polimorfisme(Polymorphism)
Object yang diturunkan dari kelas yang sama disamping punya bentuk
yang sama tetapi dalam implementasinya mempunyai fungsi yang
berbeda-beda.
Misalnya
  • Tombol OK dan Cancel meskipun diturunkan dari satu komponen
    tetapi dalam implementasinya mereka mempunyai fungsi yang
    berbeda.
D. Eksepsi
Eksepsi merupakan sebuah mekanisme untuk mengatasi kesalahan sewaktu
program di eksekusi. Dengan memberikan kode pada penanganan eksepsi,
suatutindakan dapat diatur sendiri oleh pemrogram sekiranya kesalahan – kesalahan
yang tidak normal terjadi.
Delphi menyediakan dua konstruksi yang terkait dengan eksepsi, yaitu berupa
  • try…except dan
  • try…finally
Bentuk umum try…except adalah sebagai berikut :
try
pernyataan_1;
except
pernyataan_2;
end;
Pemilihan penggunaan eksepsi tersebut diatas, disesuaikan dengan keadaan yang
dihadapi oleh pemrogram. Bila ingin meyakinkan bahwa apapun yang terjadi suatu
kode harus dieksekusi (missal pembebasan memory seperti sintak diatas), maka
gunakan try…finally.
Sedang untuk mengatur agar suatu kode dieksekusi manakala sesuatu eksepsi
terjadi, maka gunakan try…except.


sumber :  http://maulana.tipolnep.net/2015/03/pengkapsulanpewarisanpolimorfismeeksepsi.html

KONSTRUKTOR DAN DESTRUKTOR

KONSTRUKTOR
Konstruktor adalah fungsi khusus anggota kelas yang otomatis dijalankan pada saat penciptaan objek (mendeklarasikan instance). Konstruktor ditandai dengan namanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai tipe hasil (return value). Biasanya konstruktor dipakai untuk inisialisasi anggota data dan melakukan operasi lain seperti membuka file dan melakukan alokasi memori secara dinamis. Meskipun konstruktor tidak harus ada dalam kelas, tetapi jika diperlukan konstruktor dapat lebih dari satu. 
Konstruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas.  Kegunaannya :
  • Mengalokasikan ruang bagi sebuah objek
  • Memberikan nilai awal terhadap anggota data suatu objek
  • Membentuk tugas-tugas umum lainnya  
Adapaun jenis-jenis kontruktor adalah sebagai berikut:
  1. Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai awal tertentu.
  2. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal dari parameter.
  3. Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota data diberi nilai awal dari objek lain.
Contoh penulisan konstruktor :

#include
class jumlah
{
   public:
    int jumlah1;
      int jumlah2;
      ~jumlah();
}; 
jumlah objek1,objek2;
void main()
{
   cout<<”Didalam main() \n”;
   cout<<”objek1.jumlah1 adalah “<<
   cout<<”objek1.jumlah2 adalah “<<
   cout<<”objek2.jumlah1 adalah “<<
   cout<<”objek2.jumlah2 adalah “<<
} 
jumlah::~jumlah()
{
   cout<<”Didalam jumlah() \n”;
} 


DESTRUKTOR
Destruktor adalah pasangan konstruktor. Pada saat program membuat objek maka secara otomatis kontruktor akan dijalankan, yang biasanya dimaksudkan untuk memberi nilai awal variable private. Sejalan dengan itu, C++ menyediakan fungsi destruktor (penghancur atau pelenyap) yang secara otomatis akan dijalankan pada saat berakhirnya objek. Setiap kelas mempunyai tepat satu destuktor. jika kita tidak mendeklarasikan sebuah destruktor dalam sebuah kelas, maka destruktor akan diciptakan sendiri oeh compiler C++. Fungsi destruktor itu sendiri adalah untuk mendealokasikan memori dinamis yang diciptakan kontruktor. Nama destruktor sama dengan nama kelas ditambah awalan karakter tilde (~). Walaupun compiler C++ akan secara otomatis mendeklarasikan sebuah destruktor, akan tetapi sangat disarankan untuk mendeklarasikan sendiri sebuah destruktor. Karena dengan mendeklarasikan sendiri destruktor maka kita mempunyai kontrol penuh terhadap apa yang dilakukan destruktor dari kelas yang kita buat.
Destruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas ditambah symbol tilde (~) didepannya. 
Contoh  penulisan dalam Destruktor :
#include
Class Tpersegi
{
   int *lebar, *panjang;
   public:
      Tpersegi (int, int);
      ~Tpersegi();
      int Luas() {return (*lebar * *panjang);}
};
Tpersegi::Tpersegi(int a, int b)
{
   lebar=new int;
   panjang=new int;
   *lebar = a;
   *panjang = b;
}
Tpersegi::~Tpersegi()
{
   delete lebar;
   delete panjang;
}
int main()
{
   Tpersegi pers(3,4), persg(5,6);
   cout<<”Luas pers= “<<
   cout<<”Luas persg = “<<
   return 0;
}

KESIMPULAN
Dari uraian diatas dapat kita simpulkan bahwa:
Konstruktor :
-          Nama kontruktor sama dengan nama kelas
-          Kontruktor tidak mempunyai nilai balik
-          Kontruktor harus diletakkan di bagian public
-          Kontruktor dijalankan dengan sendirinya pada saat objek diciptakan, bahkan kontruktor dijalankan sebelum fungsi main() dijalankan.

Destruktor:
-          Nama destruktor  sama dengan nama kelas ditambahkan tanda tilde (~) di depannya.
-          Destruktor tidak mempunyai nilai balik.
-          Destruktor harus diletakkan di bagian public.
-          Destruktor dijalankan dengan sendirinya pada saat objek akan sirna.

Contoh Lain konstruktor dan destruktor :
#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h"

class hitung
{
public:
    double alas,tinggi,luas,sisi,jari,kel;
    void segitiga()
    {    cout<<"** Luas Segitiga **"<
        cout<<"Masukkan Alas   = ";cin>>alas;
        cout<<"Masukkan Tinggi = ";cin>>tinggi;
        luas=(alas*tinggi)/2;
        cout<<"Luas Segitiga   = "<<
    }
    void persegi()
    {    cout<<"** Luas Persegi **"<
        cout<<"Masukkan Panjang Sisi = ";cin>>sisi;
        luas=sisi*sisi;
        cout<<"Luas Persegi          = "<<
    }
    void llingkaran()
    {    cout<<"** Luas Lingkaran **"<
        cout<<"Masukkan Panjang Jari = ";cin>>jari;
        luas=3.14*jari*jari;
        cout<<"Luas Lingkaran        = "<<
    }
    void ppanjang()
    {    cout<<"** Luas Persegi Panjang **"<
        cout<<"Masukkan Alas          = ";cin>>alas;
        cout<<"Masukkan Tinggi        = ";cin>>tinggi;
        luas=alas*tinggi;
        cout<<"Luas Persegi Panjang   = "<<
    }
    void kellingkaran()
    {   
        cout<<"** Keliling Lingkaran **"<
        cout<<"Masukkan Panjang Jari   = ";cin>>jari;
        kel=2*3.14*jari;
        cout<<"Keliling Lingkaran      = "<<
    }
};

void main()
{    hitung htg;
    char tanya;
    tanya = 'y';
    int pilih;
    do {
        system ("cls");
    cout<<"== KALKULATOR LINDA =="<
    cout<<"---------------------------"<
    cout<<"1. Mencari Luas Segitiga"<
    cout<<"2. Mencari Luas Persegi"<
    cout<<"3. Mencari Luas Lingkaran"<
    cout<<"4. Mencari Luas Persegi Panjang"<
    cout<<"5. Mencari Keliling Lingkaran"<
    cout<<"---------------------------"<
    cout<<"Masukkan pilihan Anda = ";cin>>pilih;
    if (pilih==1)
    {    htg.segitiga();} else
    if (pilih==2)
    {    htg.persegi();} else
    if (pilih==3)
    {    htg.llingkaran();} else
    if (pilih==4)
    {    htg.ppanjang();} else
    if (pilih==5)
    {    htg.kellingkaran();}
    cout<<"---------------------------"<
    cout<<"Apakah Anda Ingin Mengulanginya ..? "; cin>>tanya;
    } while (tanya == 'y');
}

Object Oriented Programming (OOP) Pada Delphi

Object Pascal, adalah sebuah bahasa dimana delphi menjadi salah satu IDE (Integrated Development Environment) nya, adalah sebuah bahasa yang mendukung penuh konsep OOP. Sederhananya, bahasa ini memungkinkan bagi programmer untuk membuat dan memanipulasi object. Lebih detailnya, bahasa ini mendukung empat prinsip pokok OOP yaitu : Data Abstraction, Encapsulation, Inheritance, Polymorphism.


Mempelajari OOP berbeda dengan mempelajari Delphi. Apalagi bagi seorang yang sudah mengenal bahasa Pascal. Bisa jadi ada orang yang sangat mahir delphi/pascal namun sangat lemah pada konsep OOP.

Apa itu OOP? Apa Itu Object? Apa Itu Kelas?


OOP adalah semua hal yang berkaitan dengan writing programs that manipulate objects : ). Delphi, Java, C++ adalah beberapa contoh bahasa yang mendukung OOP. Ketiga bahasa di atas mempunyai prinsip-prinsip OOP yang sama, tentunya dengan sintaks (penulisan baris kode program) yang berbeda. Sekali kita sudah menguasai konsep OOP, maka akan begitu mudah mempelajari OOP pada bahasa manapun. Karena kita hanya akan fokus pada sistaks, bukan pada apa itu OOP.

Setiap kita mempelajari OOP, maka kita tidak akan lepas dari dua istilah objek dan class (Kelas). Kelas adalah pola/rancangan/struktur data yang dipakai programmer untuk membuat tipe data baru. Untuk mempermudah, kadang saya menyamakan kelas dengan tipe data : ). Setiap bahasa pemrograman mempunyai tipe data bawaan misalnya integer, string, boolean, dll. Delphi dan bahasa lainnya (yang mendukung OOP) memungkinkan bagi programmer untuk membuat tida data sendiri, misalnya Tmahasiswa, Trekening, Tbank, dll. Selama tipe data tersebut bukan tipe data bawaan bahasanya, kita bisa menyebutnya tipe data abstract (abstract data types). VCL (Visual Component Library) milik delphi merupakan contoh koleksi dari banyak kelas. Jadi form, button, combobox, query, dll adalah kelas yang sudah dibuat oleh tim developer embarcadero.

Kita bisa membuat kelas sendiri dan menggunakannya sama dengan kelas-kelas yang ada pada VCL delphi. Kita akan membahsa lebih detail mengenai cara pembuatan dan penggunaan kelas baru pada beberapa artikel berikutnya. Untuk memberikan gambaran awal apa itu kelas perhatikan baris kode berikut ini :

TStudent = class
FNama: string;
FNIS: string;
FAlamat: string;
FTelpon: string;
end;
Baris kode di atas adalah sebuah deklarasi kelas Tstudent dimana kelas tersebut mempunya empat atribut (informasi) yaitu Fnama, FNIS, Falamat, dan Ftelpon. Kita bisa memakai kelas (tipe data) TSTudent ini dengan cara :
Var
Student1 : TStudent;
Student2 : TStudent;

Pada pembahasan di atas, kita sudah membahasa apa itu kelas. Lalu apa itu objek? Hmmm… mudah. Objek adalah instansiasi dari kelas, atau suatu data yang bertipe data kelas. Hmmm mbulet : ). Dari deklarasi di atas, kita bisa perjelas bahwa Student1, Student2 adalah objek dan Tstrudent adalah kelas.


sumber : http://delphigurus.blogspot.com/2011/02/object-oriented-programming-oop-pada.html?showComment=1427034335608#c456148689631081804