Modul Praktikum Bahasa Pemrograman C++ Builder
12MODUL III
PILIHAN RadioButton dan RadioGroup
I. MAKSUD DAN TUJUAN
A. MAKSUD
Mempraktekan cara-cara pemprograman visual dengan menggunakan C++
Builder untuk menyajikan pilihan data melalui komponent RadioButton dan
RadioGroup.
B. TUJUAN
Memberikan kemampuan memprogram dengan menggunakan komponent
RadioButton dan RadioGroup untuk penyajian pilihan.
II. TEORI
Komponen RadioButton adalah untuk menyajikan sejumlah pilihan pada
Form, dengan jumlah terbatas. Syarat pilihan pengguna hanya diperbolehkan
memilih salah satu dengan mengarahkan mouse dan menekan tombol klik. Biasanya
pilihan ini dikelompokan dengan komponen GroupBox atau Panel. Komponen ini
hampir sama dengan RadioGroup. RadioButton terdapat pada menu Component
Pallete pada tab Standar dengan ikon
dan RadioGroup dengan ikon
.
III. PRAKTEK
Buatlah tampilan seprti pada rancangan gambar di bawah dan seting properti
isikan seperti pada tabel dan gambar 3.1. :
Gambar 3.1. Penggunaan RadioGroup
Tabel 3.1. Set Properti rancangan gambar 3.1.
Komponen Properti Nilai
Form Name Form1
GroupBox Name Caption GroupBox1 Agama RadioButton Name Caption RdButtonIslam Islam RadioButton Name Caption RdButtonKristen Kristen
Modul Praktikum Bahasa Pemrograman C++ Builder
13 Caption Katholik RadioButton Name Caption RdButtonHindu Hindu RadioButton Name Caption RdButtonBudha Budha Label Name Caption Label1 Pilihan Edit Nama Text EditAgama Button Name Caption ButtonOK OK Button Name Caption ButtonSelesai SelesaiLangkah untuk memasukan kode program :
•
Program untuk proses untuk kejadian bila tombol OK ditekan
•
Arahkan mouse ke tombol OK
•
Object Properti pilih tab Events
•
Pilih OnClik tekan klik ganda
•
Isikan program sebagai berikut :
void __fastcall TForm1::ButtonOKClick(TObject *Sender)
{
if (RdButtonIslam->Checked) EditAgama->Text ="Islam"; if (RdButtonKristen->Checked) EditAgama->Text ="Kristen"; if (RdButtonKatholik->Checked) EditAgama->Text ="Katholik"; if (RdButtonHindu->Checked) EditAgama->Text ="Hindu"; if (RdButtonBudha->Checked) EditAgama->Text ="Budha"; }
•
Untuk RdButtonIslam->Checked
jenis variabelnya adalah BOOL, dan bila
tombol dipilih bernilai benar.
•
Kembali ke Form pilih tombol Selesai
•
Object Inspectors pilih tab Events
•
Pilih OnClik tekan klik ganda
•
Isikan program
void __fastcall TForm1::ButtonSelesaiClick(TObject *Sender)
{
Close(); }
•
Mengarah ke kursor pilihan Islam pada saat program pertama dijalankan,
dengan menggunakan methode SetFocus()
•
Kembali ke Form, klik komponen Form
•
Object Inspectors pilih tab Events
•
Pilih OnActivate tekan klik ganda
•
Isikan program
void __fastcall TForm1::FormActivate(TObject *Sender)
{
RdButtonIslam->SetFocus(); }
Kompilasi dan eksekusi
Modul Praktikum Bahasa Pemrograman C++ Builder
14•
Lihat hasilnya
Gambar 3.2. Keluaran Form Komponen RadioButton
Program lengkapnya seperti pada listing program :
File UnitLat4.h
//--- #ifndef UnitLat4H #define UnitLat4H //--- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //---class TForm1 : public TForm
{
__published: // IDE-managed Components TGroupBox *GroupBox1; TRadioButton *RdButtonIslam; TRadioButton *RdButtonKristen; TRadioButton *RdButtonKatholik; TRadioButton *RdButtonHindu; TRadioButton *RdButtonBudha; TLabel *Label1; TEdit *EditAgama; TButton *ButtonOK; TButton *ButtonSelesai;
void __fastcall ButtonOKClick(TObject *Sender); void __fastcall FormActivate(TObject *Sender);
void __fastcall ButtonSelesaiClick(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner); };
//--- extern PACKAGE TForm1 *Form1;
//--- #endif UnitLat4.cpp //--- #include <vcl.h> #pragma hdrstop #include "UnitLat4.h"
Modul Praktikum Bahasa Pemrograman C++ Builder
15 //--- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--- __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner) {
}
//---
void __fastcall TForm1::ButtonOKClick(TObject *Sender)
{
if (RdButtonIslam->Checked) EditAgama->Text ="Islam"; if (RdButtonKristen->Checked) EditAgama->Text ="Kristen"; if (RdButtonKatholik->Checked) EditAgama->Text ="Katholik"; if (RdButtonHindu->Checked) EditAgama->Text ="Hindu"; if (RdButtonBudha->Checked) EditAgama->Text ="Budha"; }
//---
void __fastcall TForm1::FormActivate(TObject *Sender)
{
RdButtonIslam->SetFocus(); }
//---
void __fastcall TForm1::ButtonSelesaiClick(TObject *Sender)
{
Close(); }
//---
RadioGroup
Komponen
RadioGroup fungsinya sama dengan RadioButton, yang
membedakan adalah untuk RadioGroup isi pilihannya, sudah termasuk isi pilihan
dan dikelompokkan dalam kotak. Untuk isi pilihan terdapat pada properti Items.
Untuk menggunakan RadioGroup terdapat pada menu Component Pallete
pada tab Standar dengan ikon
.
Paktek : Bualtah project baru dengan perintah File | New Application, rancanglah
Form seperti gambar di bawah :
Gambar 3.3. Rancangan Form Komponen RadioGroup
Tabel 3.2. Set Properti Rancangan gambar 3.3.
Modul Praktikum Bahasa Pemrograman C++ Builder
16Komponen Properti Nilai
Form Name Form1
RadioGroup Name Caption Items (Tstrings) Coloums RadioGroup Agama Islam Kristen Katholik Hindu Budha 2 Label Name Caption Label1 Pilihan Label Name Caption Label2 Nilai Index Edit Name Text EditAgama Edit Name Text EditIndex BitBtn Nama Kinds BitBtn1 bkClose
Memasukkan isi Items (TStrings) pada komponen RadioGroup dengan
langkah-langjkah sebagai berikut :
•
Klik pada komponen RadioGroupAgama
•
Klik Object Inspector pilih tab Properties
•
Klik Items
•
Selanjutnya terlihat pada gambar kotak dialog String List Editor
•
Masukkan isi pilihan seperti terlihat pada gambar
•
Klik OK
Gambar 3.4. String List Editor RadioGroup
•
Program untuk kejadian bila RadioGroupAgama diklik
•
Arahkan mouse pada RadioGroupAgama
•
Object Inspector | pilih tab Events
Modul Praktikum Bahasa Pemrograman C++ Builder
17•
masukan kode sebagai berikut :
void __fastcall TForm1::RadioGroupAgamaClick(TObject *Sender) { switch (RadioGroupAgama->ItemIndex) { case 0 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } case 1 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } case 2 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } case 3 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } case 4 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } } }
Untuk
RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex]mengambil isi array dari kompomen RadioGroup dengan variabel string.
RadioGroupAgama->ItemIndex adalah nilai posisi elemen array atau nilai indeks.Nilai elemen array dimulai dari 0.
Simpan program Anda dengan perintah File | Save berikan nama
UnitRadioGroup.cpp, dan File | Save Project As…, berikan nama
ProjectRadioGroup.bpr, Uji program Anda dengan menjalankan Run| Run F9 atau
dengan memilih ikon
.
Modul Praktikum Bahasa Pemrograman C++ Builder
18Listing Program
UnitRadioGroup.h /--- #ifndef UnitRadioGroupH #define UnitRadioGroupH //--- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <Buttons.hpp> #include <ExtCtrls.hpp> //--- class TForm1 : public TForm{
__published: // IDE-managed Components TRadioGroup *RadioGroupAgama; TLabel *Label1; TEdit *EditAgama; TBitBtn *BitBtn1; TEdit *EditIndex; TLabel *Label2;
void __fastcall RadioGroupAgamaClick(TObject *Sender); private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner); };
//--- extern PACKAGE TForm1 *Form1;
//--- #endif //--- #include <vcl.h> #pragma hdrstop #include "UnitRadioGroup.h" //--- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--- __fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner) {
}
//--- void __fastcall TForm1::RadioGroupAgamaClick(TObject *Sender)
{ switch (RadioGroupAgama->ItemIndex) { case 0 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } case 1 : { EditAgama->Text = RadioGroupAgama->Items->Strings[RadioGroupAgama->ItemIndex] ; EditIndex->Text = IntToStr(RadioGroupAgama->ItemIndex); } case 2 :