-escape the ordinary-


zozo... by ~zabaroe on deviantART
i try to make a flash game.. here it is.. (my own project):
Left to right -> oldest to newest




"Click thumbnail to play!"

Monday, May 4, 2009

Membuat fungsi baru pada C++ Builder 6.0

Sorry kalau bahasanya kacau, soalnya bingung kalau harus ditulis, tapi sudah disediakan file programnya untuk diunduh, semoga mudah dipahami... ^_^

Pada C++ Builder 6 ini, deklarasi fungsi ada di unit.h, sedangkan untuk code pemrogramannya ada di unit.cpp. Saat pertama kali menggunakan perangkat berbasis visual ini mungkin ada yang masih kesulitan. Untuk object yang telah disediakan oleh perangkat ini, saat diletakkan di dalam stage maka fungsi object tersebut akan terbentuk secara otomatis (baik di unit.h maupun di unit.cpp-nya). Lalu bagaimana kalau kita ingin membuat fungsi baru yang tujuannya mempermudah proses pengerjaan code-nya?

Simulasi Sederhana2 (download)
Mmm.. gini aja, ta kasih contoh sederhana aja yah. Misalkan menghitung perkalian 2 buah bilangan. Nanti untuk proses penghitungannya dengan memanggil fungsi lain yang kita buat sendiri.


Picture 1. Simulasi Sederhana2

Siapkan form, lalu masukkan 6 buah objek berikut ini ke stage (maksudnya ke dalam form): 2 buah Label, 1 Button, dan 3 Edit.
Setting Properties: (pada Object Inspector di properties-nya)

Label:
Untuk label Name-nya gak usah diganti apa-apa karena cuma buat tampilan, captionnya masing-masing diganti dengan “x” dan “=”

Edit:
Semua Edit (dalam hal ini yang terbentuk pada form adalah Edit1,Edit2,dan Edit3) kosongkan teks pada bagian Text, supaya nggak mengganggu tampilan. Kemudian beri nama masing-masing pada Name-nya: satuTxt, duaTxt, hasilTxt, jangan lupa atur letaknya.

Button:
Ganti caption-nya dengan “Hitung”, lalu ganti Name-nya dengan hitungBtn.
Untuk lihat bagaimana letaknya perhatikan picture1.

Berikut ini akan diberikan 2 cara, yakni cara biasa tanpa fungsi baru buatan kita dengan yang sebaliknya. Double klik hitungBtn, lalu isikan code ini pada fungsi yang otomatis terbentuk pada
Unit.cpp nya:


1) Dengan menggunakan cara biasa (tanpa fungsi):

bil1=StrToFloat(satuTxt->Text);
bil2=StrToFloat(duaTxt->Text);

hasilTxt->Text=String(bil1*bil2);
Jangan lupa untuk mendeklarasikan variabel bil1 dan bil2 (misalkan float) pada Unit.h

2) Dengan menggunakan membuat fungsi baru:
Tambahkan kode berikut ini pada unit.h di bagian “ __published:” yang terdapat di dalam class Tform-nya.
void __fastcall hitung();
Perhatikan, “hitung” adalah nama fungsinya (terserah).
Kemudian kembali lagi pada Unit.cpp-nya, buat kode fungsi hitungnya:

void __fastcall TForm1::hitung()
{
hasil=bil1*bil2;
hasilTxt->Text= hasil;
}
Panggil fungsi hitung() tadi dalam fungsi milik okBtn.

bil1=StrToFloat(satuTxt->Text);
bil2=StrToFloat(duaTxt->Text);
hitung();
Atau anda bisa mengutak-atiknya sesuai keinginan anda, karena setiap orang memiliki gaya penulisan code yang berbeda-beda. Pembuatan fungsi baru ini amat berguna apabila proses penghitungan atau yang berhubungan dengan itu cukup panjang dan rumit, maka anda dapat memecahnya menjadi fungsi-fungsi kecil yang mempermudah & terkadang dapat dipanggil lagi sesuai kebutuhan. Sebagai contoh yang agak kompleks disediakan pada Simulasi2.

Mengakali Array dengan StringGrid

Mungkin ini akan cukup membantu bagi kalian yang sedang membuat TA/skripsi (atau lainnya) yang menggunakan perangkat lunak C++ Builder 6. Karena ini yang aku gunakan (untuk mengakali array) ketika ada beberapa adik kelas yang menanyakan tutorial C++ Builder. StringGrid ini amat luar biasa karena dinamis, bisa spread menyesuaikan dengan data yang akan diolah. Dengan masih adanya kekurangan yang mungkin zabaroe tulis, harap maklum, zabaroe hanya ingin membagi pengetahuan ini...
Salam, ^_^

Terdapat 2 simulasi nantinya, pertama untuk membuat matrix sederhana melalui inputan secara visual & kedua adalah contoh simulasi hasil pengimplementasiannya (lanjutannya..).

Simulasi Sederhana1 (download)

Picture1. Tampilan Program Simulasi Sederhana 1
Penjelasan Simulasi:
Pada form nanti akan disediakan 2 kotak penginputan untuk jumlah baris & kolom yang diinginkan. Setelah menekan tombol ok, lalu matrix akan spread sesuai dengan 2 inputan tadi.

Tambahkan 2 buah label, 2 buah Edit, 1 buah button (dari tab standard), dan StringGrid (dari tab Additional).
Picture 2. contoh Setting Properties pada Object Inspector

Berikut ini untuk setting property “Object Inspector” untuk masing-masing objek: (Perlu diingat bahwa Name masing-masing objeklah yang akan digunakan pada proses pengcodingannya)

Label:
Untuk label cukup ganti caption-nya saja karena keduanya hanya untuk membantu tampilan saja, misalkan label1 ganti captionnya dengan baris dan label2 dengan kolom.

Edit:
Edit ini digunakan untuk bantuan menginput jumlah baris dan kolom, kosongkan teks pada kolom Text pada settingan properties Edit1 dan Edit2, kemudian beri Name masing-masing: barisTxt dan kolomTxt. (Sebagai contoh lihat picture2)

Button:
Ganti captionnya dengan tulisan OK, lalu ubah Name menjadi okBtn.

StringGrid: (agar lebih mudah saya akan menyebutnya sebagai SG)
Ganti name dengan SGCoba, lalu ubah setting defaultnya (terdapat FixedCols, FixedRows, dan beberapa baris, kolom) menjadi: kosongkan FixedCols dan FixedRows, lalu set ColCount dan RowCount menjadi 1. Kenapa harus 1? Karena untuk settingan awal tidak boleh kosong (minimal 1 kotak). dan akan dibuat simulasi bahwa StringGrid ini akan menjadi sebuah matrix yang dinamis (baik melebar ke atas maupun kesamping). DefaultColWidth juga bisa disetting sesuai keinginan, misalkan biar lebar kolom agak pendek, ubah menjadi 45.
Settingan ini belum selesai karena StringGrid ini belum bisa diinputkan apa-apa, kembali lagi ke properties pada Object Inspector, kita setting Option (klik tanda + disamping tulisan option), lalu ubah goEditing menjadi true (cukup doubleClick lewat mouse bila tak ingin repot).

Settingan sederhana untuk simulasi1 sudah. Coba jalankan dengan menekan tombol Run pada toolbar atau F9 pada keyboard. Lihat, namun belum bisa ada efek input pada SG karena belum diisikan kode pada objeknya.

Ok, sekarang untuk kodenya cukup dimasukkan pada tombol ok saja, sekarang double klik okBtn itu, maka anda akan langsung masuk pada unit.cpp-nya. Lihat fungsi untuk objek tombol itu langsung terbentuk otomatis:

void __fastcall TForm1::okBtnClick(TObject *Sender)
{
}
Lihat pada bagian bawah, terdapat pula tab unit.h. Unit.h ini biasanya digunakan untuk mendeklarasikan variable-variabel dan fungsi-fungsi yang digunakan pada Unit.cpp-nya. Coba klik unit.h dan perhatikan ada apa saja itu (wah..kok udah ada tulisannya, kalau bingung baca saja buku tutorialnya karena kalau dijelaskan akan terlalu panjang nanti). Namun cukup perhatikan saja bahwa objek yang telah berada pada form atau stage terdeclare.

Sekarang definisikan variable setelah private: (misal: int baris, kolom, i, j; )
Kembali pada Unit.cpp, kodenya:

void __fastcall TForm1::okBtnClick(TObject *Sender)
{
baris=StrToInt(barisTxt->Text);
kolom=StrToInt(kolomTxt->Text);
SGCoba->RowCount=baris;
SGCoba->ColCount=kolom;
}
Lalu maksudnya variabel i, j untuk apa?
Itu dapat digunakan untuk looping, misal dengan contoh sederhana seperti ini: Matrix tadi kita isi secara otomatis berupa keterangan [baris,kolom]. Berikut adalah kodenya:
Lihat & perhatikan!
Pada Array 2 dimensi biasanya didefinisikan baris kemudian kolom, namun tidak pada SG, pada SG untuk loopingnya sama namun kolom didefinisikan dulu. Lebih jelasnya perhatikan kode pada baris ke-9.

Sesuai dengan namanya “StringGrid” maka isian dalam SG ini berupa string, jika ingin menggunakan isiannya pada proses penghitungan maka harus diconvert dulu, dengan menggunakan perintah StrToInt (untuk ubah ke integer) atau StrToFloat (ubah ke float). Akan lebih diperjelas pada Simulasi1.
Oiya, disini belum terdapat penjebak error, jadi kalau salah input misalkan kosong atau huruf maka akan error. Untuk penjebak error beserta try and catch-nya akan dijelaskan pada simulasi berikutnya (entah simulasi berapa, kalau lagi mood nulis he..he

Welcome to Zabaroe's World

Blog ini rencananya akan berisi segala sesuatu yang sedang zabaroe kerjakan/pelajari.
Zabaroe sekarang sedang mendalami flash programming khususnya ActionScript 3.0, namun tidak menutup kemungkinan zabaroe (dengan ilmu & kemampuan yang masih terbatas) juga akan membahas bahasa pemrograman lain.
Namanya juga zabaroe's world,
ya... inilah dunia pembelajaran yang sedang zabaroe jalani.

Mudah-mudahan bermanfaat!