Sunday, September 11, 2011

Overview Delphi Day 4



Object Pascal part II

A. Conditional (Perumpamaan)
    1. If..Then..
        Menempatkan pertanyaan (kondisi) dan jawaban (aksi)
    2. Case..Of
        dapat digunakan untuk meminimalisasi input dari user
        a. jika menggunakan lebih dari 1 konstanta pada pernyataan kondisi, maka harus dipisah menggunakan koma
        b. konstanta yang digunakan pada pernyataan kondisi harus bertipe byte atau word, bukan string atau longint
        c. konstanta yang digunakan pada pernyataan kondisi tidak boleh overlap, artinya menggunakan konstanta yang sama pada 2 kondisi yang berbeda

B. Looping (Pengulangan)
    1. repeat..until
        statement yang berada setelah "repeat" akan selalu diekseskusi sampai kondisi yang berada setelah "until" terpenuhi.
    2. while..do
        selama kondisi yang berada setelah "while" masih terpenuhi, maka statement yang berada setelah "do" akan terus dieksekusi.
        catatan : untuk meminimalisir error, jangan lupa untuk mendeklarasikan nilai awal untuk konstanta yang digunakan pada proses looping
    3. for..do..
        digunakan jika kita mengetahui berapa kali statement akan dieksekusi.

C. Branching (Percabangan)
    1. GoTo
        digunakan jika kita ingin mengeksekusi suatu statement pada baris tertentu (tidak harus baris setelah "kondisi") jika kondisi terpenuhi.
    2. Break
        digunakan jika ingin menghentikan perulangan, dengan menempatkan "break" setelah kondisi di dalam perulangan tersebut.
    3. Continue
        digunakan untuk melanjutkan perulangan, dengan menempatkan "continue" setelah kondisi di dalam perulangan tersebut.
    4. Exit
        digunakan untuk tidak hanya menghentikan perulangan, tapi juga menghentikan program aplikasi (tidak mengeksekusi statement setelah perulangan).
    5. Halt
        digunakan untuk menghentikan dan keluar dari program aplikasi.
        Yang harus diperhatikan pada saat menempatkan "halt" di dalam suatu perulangan/kondisi:
        a. apakah ada database/file yang terbuka, karena penghentian aplikasi secara total dengan penggunaan "halt" dapat menyebabkan database atau file menjadi korup.
        b. apakah sedang dialokasikan memory yang tidak di-freed up, karena kalau keluar akan menyebabkan pemborosan memory.
        c. perhatikan baik2 kebutuhan penggunaan "halt".
    6. RunError
        digunakan untuk membuat manajemen error sendiri pada aplikasi, dengan menempatkan "runerror(int)" jika ada kondisi yang terpenuhi. Debugger akan mengeluarkan pesan error tersebut.

D. Programs
    akan mengeksekusi semua baris code satu per satu secara berurut

1. Procedure
        Pada suatu aplikasi, programmer akan sering kali menggunakan code/perintah/syntax yang sama lebih dari 1 kali. Jika menggunakan metode program pada umumnya, yaitu mengeksekusi semua baris code satu per satu secara berurut, tidak efisien waktu, tenaga dan akan menyulitkan saat debugging. Procedure adalah sebuah program kecil yang memiliki format yang sama, yang dapat digunakan berkali-kali sesuai dengan kebutuhan, dengan memanggil nama procedure nya saja.
    a. Parameter Passing
       Dalam procedure, kita dapat menambahkan nilai yang akan dikembalikan sebagai hasil dari eksekusi procedure. Nilai yang diinput oleh user berbentuk variabel, yang akan diisi pada paramater yang telah ditentukan dalam procedure. Jika menggunakan parameter lebih dari satu, harus memperhatikan urutan saat memanggilnya dalam procedure.
    b. Visibility and Scope
        Dalam menggunakan procedure, yang harus diperhatikan adalah variabel yang digunakan.             Programmer harus jeli kapan harus menempatkan variabel itu secara lokal (di dalam suatu procedure) atau global (yang dapat digunakan di beberapa procedure). Ketelitian penentuan variabel tersebut ditujukan agar tidak terjadi kesalahan pengisian nilai dan pemborosan penggunaan variabel.
 
2. Function
        Perbedaan antara function dengan procedure adalah pada function proses pengembalikan nilai dilakukan sekaligus pada saat pemanggilan function, sedangkan pada procedure harus dilakukan pemanggilan procedure dulu, lalu nilai hasil procedure tersebut baru bisa digunakan.

3. Units
        Units merupakan bagian lebih besar daripada sebuah procedure dan function.
        Procedure dan function di dalam suatu units juga dapat digunakan berkali-kali di dalam units yang lain.
    a. Format Units
        - Nama units
        - Interface; tempat mendeklarasikan semua variabel, konstanta, type, header procedure dan header function yang diperlukan dalam suatu units
        - Implementation => tempat mendeklarasikan semua variabel (global), konstanta (global), dsb yang akan digunakan dalam procedure dan function, pembuatan procedure dan function yang sudah didefinisikan pada bagian Interface.           
    b. Reusability
        Units merupakan contoh dari konsep software reusability dan component libraries. Membagi kode program menjadi beberapa bagian akan memudahkan programmer menyusun program aplikasi dan memeriksa kesalahan-kesalahan di dalamnya.       
    c. Distribution Security
        Units dapat dicompile dan menghasilkan file *.dcu (delphi compile unit). Programmer yang ingin membagi code mereka dapat memberikan file *.dcu ini kepada programmer lain. File *.dcu ini yang akan disertakan dalam klausa "uses" jika ingin meggunakan units tersebut tanpa harus melihat source code di dalamnya.       
    d. Team Development
        Manfaat lainnya dari suatu unit adalah pembagian pekerjaan. Jika dalam suatu pengerjaan suatu project terdapat lebih dari 1 programmer, maka tiap programmer dapat mengerjakan unit tertentu sendiri-sendiri lalu menggabungkan pada saat finalisasi. Hal ini dapat mempersingkat waktu pengerjaan.

E. Pointer
    Pada saat mendeklarasikan struktur data, kita mengalokasikan memory.
    Kebanyakan struktur data membutuhkan alokasi memory yang cukup besar, seperti record dan array.
    Pointer dapat digunakan untuk menyimpan alamat dari struktur data.
1. Penggunaan Pointer
    - New(Pointer) => mendefinisikan pointer/ membuka block Pointer
    - Pointer^ := ... => mengisi pointer
    - Dispose(Pointer) => menutup block Pointer


Reference : Teach Yourself Delphi 2 in 21 days by Dan Osier, Steve Grobman, and Steve Batson; SAMS Publishing

CMMIW..

^_^