Modul 4
Pembuatan Aplikasi
1. Penyeleksian Kondisi
Penyeleksian Kondisi adalah suatu pemilihan yang didasarkan atas kondisi tertentu. Suatu aksi akan dipilih hanya jika kondisi yang didefinisikan telah terpenuhi. Terdiri dari If, If...else, If Tersarang dan switch...case.
A. STRUKTURKONDISI“IF….”
Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah :
Contoh Program
/* Program struktur kondisi if untuk memeriksa suatu kondisi */ #include <vcl.h> #pragma hdrstop #include "U_if.h" //--- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--- __fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner) {
}
//--- void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
float Nilai=StrToFloat(Edit1->Text); if(Nilai>=60)
{
Label2->Caption="Selamat Anda -> LULUS"; }
}
Bila program tersebut dijalankan dan kita masukan nilai 60, maka akan mencetak tulisan Selamat Anda -> LULUS, tetapi sebaliknya jika memasukan sebuah nilai yang kurang dari 60 maka program akan berhenti dan tidak akan menghasilkan apa-apa.
B. STRUKTUR KONDISI“IF...ELSE….”
Dalam struktur kondisi if...else minimal terdapat dua pernyataan. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya adalah sebagai berikut :
If(kondisi){ Pernyataan; } If(kondisi_1){ Pernyataan_1; }else If(kondisi_2){ Pernyataan_2; } #include <vcl.h> #pragma hdrstop #include "U_if.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{ }
//--- void __fastcall TForm1::BitBtn1Click(TObject *Sender) {
float Nilai=StrToFloat(Edit1->Text); if(Nilai>=60){
Label2->Caption="Selamat Anda -> LULUS";} } else
{
Label2->Caption="Mohon Maaf Anda -> BELUM LULUS"; }
Contoh Program #include <vcl.h> #pragma hdrstop #include "U_if.h" #include "U_Pass.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{ }
//--- void __fastcall TForm1::BitBtn1Click(TObject *Sender) {
if (Edit2->Text=="AMIK") {
ShowMessage("Selamat, Login Password Anda Berhasil!"); Form2->Show();}
else {
Agar form Contoh if muncul, maka harus di tambahkan unitnya ke unit Password, yaitu: #include “U_if.h”
© 2011 C. STRUKTUR KONDISI“IFTERSARANG”
Dalam struktur kondisi if tersarang yaitu di dalam if terdapat if yang lainnya minimal terdapat dua pernyataan. Bentuk umumnya adalah sebagai berikut :
Contoh Program
Program berikut ini adalah program untuk menghitung persamaan kuadrat AX2 + BX + C, A ≠ 0 dengan nilai
Determinan adalah D = B2 – 4AC, yang mempunyai ketentuan berikut:
- Jika D < 0, akan terjadi “Akar-akar persamaan imaginer, yaitu:” X1 = -B + -D i
2A 2A X2 = -B - -D i 2A 2A
- Jika D = 0, akan terjadi “Akar-akar persamaan nyata tetapi kembar, yaitu:” X1 = X2 = -B / 2A
- Jika D > 0, akan terjadi “Akar-akar persamaan nyata dan berbeda, yaitu:” X1 = -B + D
2A X2 = -B - -D 2A
Dengan tampilan Form berikut:
Komponen Properti Nilai
Form1 Caption Program Untuk Menyelesaikan Persamaan Kuadrat
Label1 Caption Masukan Bilangan A
Label2 Caption Masukan Bilangan B
Label3 Caption Masukan Bilangan C
Label4 Caption Nilai Determinan (D)
Edit1 Text Kosongkan
Edit2 Text Kosongkan
Edit3 Text Kosongkan
Edit4 Text Kosongkan
ListBox
Bitbtn1 Caption &Proses
Bitbtn2 Caption &Ulang
Bitbtn3 Kind bkClose
Dengan Listing, sebagai berikut:
If(kondisi_1){ Pernyataan_1; }else If(kondisi_2){ Pernyataan_2; } else If(kondisi_n){ Pernyataan_n; } else {Pernyataan_m;}
void __fastcall TForm1::BitBtn1Click(TObject *Sender) { double a = StrToFloat(Edit1->Text); double b = StrToFloat(Edit2->Text); double c = StrToFloat(Edit3->Text); double D = b*b - 4*a*c; double x1, x2, z1, z2; Edit4->Text=FloatToStr(D); if(D<0) {z1 = -b/(2*a); z2 = Sqrt(-D)/(2*a);
ListBox1->Items->Add("Akar-akar persamaan imaginer, yaitu :");
ListBox1->Items->Add("x1 = "+FloatToStr(z1)+" + "+FloatToStr(z2)+"i"); ListBox1->Items->Add("x2 = "+FloatToStr(z1)+" - "+FloatToStr(z2)+"i"); }else if(D==0)
{ x1 = -b/(2*a);
ListBox1->Items->Add("Akar-akar persamaan nyata tetapi kembar, yaitu :"); ListBox1->Items->Add("x1 = x2 = " + FloatToStr(x1));
}else
{ x1 = (-b+Sqrt(D))/(2*a); x2 = (-b-Sqrt(D))/(2*a);
ListBox1->Items->Add("Akar-akar persamaan nyata dan berbeda, yaitu :"); ListBox1->Items->Add("x1 = " +FloatToStr(x1));
ListBox1->Items->Add("x2 = " +FloatToStr(x2)); }
Aktifkan komponen Bitbtn2 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini
D.STRUKTURKONDISI“SWITCH....CASE....DEFAULT…”
Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa pernyataan „case‟ tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan „break‟. Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah „default‟.
Bentuk umum dari struktur kondisi ini adalah :
Latihan 4
1. Buat aplikasi baru dengan dengan memilih menu File|New|Application C++ Builder. Kemudian lakukan design form dan pengesetan properti komponen pada object properties seperti gambar
2. Double klik pada tombol Konversi kemudian isikan source code berikut
3. Apabila program ini dijalankan (RUN F9), maka ditampilkan seperti form di bawah ini: void __fastcall TForm1::Button1Click(TObject *Sender)
{
int angka=StrToInt(Edit1->Text); switch (angka) {
case 0:Edit2->Text="Nol"; break; case 1:Edit2->Text="Satu"; break; case 2:Edit2->Text="Dua"; break; case 3:Edit2->Text="Tiga"; break; case 4:Edit2->Text="Empat"; break; case 5:Edit2->Text="Lima"; break; case 6:Edit2->Text="Enam"; break; case 7:Edit2->Text="Tujuh"; break; case 8:Edit2->Text="Delapan"; break; case 9:Edit2->Text="Sembilan"; break;
default: MessageBox(0, "Angka yang dikonfersi dari 0 sd 9","Kesalahan", MB_ICONINFORMATION|MB_OK);; } } switch(variabel){ case konstantaVariabel_1:Pernyataan_1; break; case konstantaVariabel_2:Pernyataan_2; break; case konstantaVariabel_3:Pernyataan_4; break; case konstantaVariabel_n:Pernyataan_n; break; default:Pernyataan_m; }
void __fastcall TForm1::BitBtn2Click(TObject *Sender) { Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); ListBox1->Clear(); Edit1->SetFocus(); }
© 2011 Latihan 5
1. Buat aplikasi baru dengan memilih menu File|New|Application. Kemudian design form, dan lakukan pengesetan properti pada object properties untuk masing-masing komponen seperti pada tabel dibawah ini.
Komponen Properti Nilai
Form1 Caption Contoh switch-case
GroupBox1 Caption Data Pegawai
Label1 Caption NIP
Label2 Caption Nama Pegawai
Label3 Caption Jenis Kelamin
Label4 Caption Golongan
Edit1 Text Kosongkan
Edit2 Text Kosongkan
RadioButton1 Caption Laki-laki
RadioButton2 Caption Perempuan
ComboBox1 Text Kosongkan
Items.. 1, 2, 3
GroupBox2 Caption Output Data Gaji
Label5 Caption NIP
Label6 Caption Nama Pegawai
Label7 Caption Jenis Kelamin
Label8 Caption Golongan
Label9 Caption Gaji Pokok
Label10 Caption Tunjangan
Label11 Caption Gaji Diterima
Edit3 Text Kosongkan
Edit4 Text Kosongkan
Edit5 Text Kosongkan
Edit6 Text Kosongkan
Edit7 Text Kosongkan
Edit8 Text Kosongkan
Edit9 Text Kosongkan
Bitbtn1 Caption &Proses
Kind bkAll
Bitbtn2 Caption &Ulang
Kind bkRetry
Bitbtn3 Caption &Close
Kind bkClose
2. Aktifkan komponen Bitbtn1 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini
3. aktifkan komponen Bitbtn2 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{ int gol; gol=StrToInt(ComboBox1->Text); float tj=0.25; Edit3->Text=Edit1->Text; Edit4->Text=Edit2->Text; Edit6->Text=ComboBox1->Text; switch (gol) { case 1 : Edit7->Text="1000000"; break; case 2 : Edit7->Text="1500000"; break; case 3 : Edit7->Text="2000000"; break;
default: MessageBox(0,"Golongan Yang Dimasukan Tidak Terdaftar","Informasi", MB_ICONINFORMATION|MB_OK); } if (RadioButton1->Checked) { Edit5->Text="Laki-laki"; Edit8->Text=FloatToStr(tj*StrToFloat(Edit7->Text)); } else { Edit5->Text="Perempuan"; Edit8->Text=0; } Edit9->Text=FloatToStr(StrToFloat(Edit7->Text)+StrToFloat(Edit8->Text)); }
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Edit1->Clear(); Edit2->Clear();
RadioButton1->Checked=false; RadioButton2->Checked=false; ComboBox1->ClearSelection(); Edit5->Clear(); Edit6->Clear();
Edit7->Clear(); Edit8->Clear(); Edit9->Clear(); Edit1->SetFocus(); }
4. aktifkan komponen Bitbtn3 pada form1 dan lakukan double click, Kemudian tuliskan source code
dibawah ini
5. Simpan unit dengan nama U_switchcase dan projectnya dengan nama P_switchcase dengan memilih
menu File-Save All. Kemudian jalankan aplikasi dengan menekan tombol F9 atau Run.
Latihan 6
1. Buat aplikasi baru dengan memilih menu File – New | Application. Kemudian design form, dan
lakukan pengesetan properti pada object properties untuk masing-masing komponen seperti pada
tabel dibawah ini.
Komponen Properti
Nilai
Form1
Caption
Program Menghitung Nilai Akhir
GroupBox1 Caption
Data Mahasiswa
Label1
Caption
NPM
Label2
Caption
Nama Mahasiswa
Label3
Caption
Jurusan/Jenjang
Label4
Caption
Mata Kuliah
Edit1
Text
Kosongkan
Edit2
Text
Kosongkan
Edit3
Text
Kosongkan
Edit4
Text
Kosongkan
GroupBox2 Caption
Data Nilai
Label5
Caption
Nilai UAS
Label6
Caption
Nilai UAS
Label7
Caption
Nilai UAS
Label8
Caption
Nilai UAS
Label9
Caption
Nilai UAS
Edit5
Text
Kosongkan
Edit6
Text
Kosongkan
Edit7
Text
Kosongkan
Edit8
Text
Kosongkan
Edit9
Text
Kosongkan
Memo1
Bitbtn1
Caption
&Proses
Kind
bkAll
Bitbtn2
Caption
&Ulang
Kind
bkRetry
Bitbtn3
Caption
&Selesai
Kind
bkClose
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{ Close(); }
© 2011
2. Aktifkan komponen Bitbtn1 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini
3. aktifkan komponen Bitbtn2 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini
4. aktifkan komponen Bitbtn3 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini
5. Simpan unit dengan nama U_NilaiAkhir dan projectnya dengan nama P_NilaiAkhir dengan memilih menu File-Save All. Kemudian jalankan aplikasi dengan menekan tombol F9 atau Run.
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
double Hdr = StrToFloat(Edit5->Text); double Qz = StrToFloat(Edit6->Text); double Tgs = StrToFloat(Edit7->Text); double UTS = StrToFloat(Edit8->Text); double UAS = StrToFloat(Edit9->Text);
double NA = 0.1*Hdr+0.1*Qz+0.15*Tgs+0.3*UTS+0.35*UAS; Memo1->Lines->Add("Output Data Mahasiswa dan Mata Kuliah :");
Memo1->Lines->Add("=========================================="); Memo1->Lines->Add("NPM : "+Edit1->Text);
Memo1->Lines->Add("Nama Mahasiswa : "+Edit2->Text); Memo1->Lines->Add("Jurusan/Jenjang : "+Edit3->Text); Memo1->Lines->Add("Mata Kuliah : "+Edit4->Text);
Memo1->Lines->Add("=========================================="); Memo1->Lines->Add("Hasil Perhitungan, adalah ...");
Memo1->Lines->Add("---"); Memo1->Lines->Add("Nilai Akhir = "+FloatToStr(NA)); if (NA>=85){
Memo1->Lines->Add("Nilai Huruf = A");
Memo1->Lines->Add("Keterangan = Sangat Baik");} else if (NA>=70){ Memo1->Lines->Add("Nilai Huruf = B"); Memo1->Lines->Add("Keterangan = Baik");} else if (NA>=60){ Memo1->Lines->Add("Nilai Huruf = C"); Memo1->Lines->Add("Keterangan = Cukup");} else if (NA>=40){ Memo1->Lines->Add("Nilai Huruf = D"); Memo1->Lines->Add("Keterangan = Kurang");} else if (NA<40){
Memo1->Lines->Add("Nilai Huruf = E"); Memo1->Lines->Add("Keterangan = Gagal");} }
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{ Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear(); Edit6->Clear(); Edit7->Clear(); Edit8->Clear(); Edit7->Clear(); Memo1->Clear(); Edit1->SetFocus(); }
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{ Close(); }
2. PENGULANGAN (LOOPING)
Pengulangan atau looping berguna untuk melakukan proses berulangan terhadap pernyataan, ada 3 jenis struktur pengulangan yaitu for, while, dan do – while.
A. STRUKTUR PENGULANGAN FOR
Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana.
Bentuk umumnya adalah sebagai berikut :
Latihan 6
1. Buat aplikasi baru dengan dengan memilih menu File|New|Application C++ Builder. Kemudian tambahkan komponen TlistBox dan Tbutton seperti gambar.
2. Double klik pada tombol proses dan isikan source code berikut.
3. Simpan unit dengan nama U_for dan projectnya dengan nama P_for kemudian jalankan dengan menekan tombol F9.
B. STRUKTUR PENGULANGAN WHILE
Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah. Bentuk Umumnya:
Latihan 7
1. Buat aplikasi baru dengan dengan memilih menu File|New|Application C++ Builder. Kemudian tambahkan komponen TlistBox dan Tbutton seperti gambar.
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int i;
for (i = 1; i<=10;i++){
Memo1->Lines->Add("Bilangan Ke = "+IntToStr(i)); } }
//untuk pengulangan yang melakukan proses increment
for (variabel=nilai_awal; kondisi; variabel_peningkatan) { Pernyataan_yang_akan_diulang;}
//untuk pengulangan yang melakukan proses decrement
for (Nama_variabel=nilai_awal; kondisi; variabel_penurunan) { Pernyataan_yang_akan_diulang;}
//Struktur Pengulangan while
Nama_variabel=nilai_awal;
while (kondisi) {
pernyataan_yang_akan_diulang; variabel_peningkatan;
© 2011
2. Double klik pada tombol proses dan isikan source code berikut.
3. Simpan unit dengan nama U_while dan projectnya dengan nama P_while kemudian jalankan dengan menekan tombol F9.
C. STRUKTUR PENGULANGAN DO..WHILE
Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan struktur do…while sekurangkurangnya akan terjadi satu kali perulangan. Bentuk Umumnya:
Latihan 8
1. Buat aplikasi baru dengan dengan memilih menu File|New|VCL Form Application C++ Builder. Kemudian tambahkan komponen TlistBox dan Tbutton seperti gambar.
2. Double klik pada tombol proses dan isikan source code berikut.
3. Simpan unit dengan nama U_dowhile dan projectnya dengan nama P_dowhile kemudian jalankan dengan menekan tombol F9.
Soal Latihan
1. Buatlah program aplikasi dengan C++ untuk menghitung Nilai Faktorial (N!=1x2x3x…xn), dengan tampilan Form Berikut:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int i; i=1; while (i<=10){ Memo1->Lines->Add("Bilangan Ke = "+IntToStr(i)); i++; } }
//Struktur Pengulangan do .. while
Nama_variabel=nilai_awal;
do {
pernyataan_yang_akan_diulang; variable_peningkatan;
} while (kondisi);
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int i; i=1; do { Memo1->Lines->Add("Bilangan Ke = "+IntToStr(i)); i++; } while (i<=10); }
Dengan listing berikut:
2. Buatlah aplikasi sederhana untuk menghitung Nilai Rata-rata. Dengan output tampilan seperti gambar.
Dengan Listing Berikut:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int a, i, fak; a=StrToInt(Edit1->Text); fak =1; for (i = 2; i <= a; i++) { fak=fak*i; Edit2->Text=IntToStr(fak); } }
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x,y; double z, jml;
AnsiString S = InputBox("Jumlah Data","Banyaknya Data",""); x =StrToInt(S);
jml=0;
ListBox1->Items->Add("Output Perhitungan Nilai Rata-rata"); ListBox1->Items->Add("=================================="); for (y=1; y <= x; y++) {
AnsiString T = InputBox("Data Bilangan","Masukan Angkanya",""); z=StrToFloat(T);
ListBox1->Items->Add("Data Ke "+IntToStr(y)+" : "+FloatToStr(z)); jml=jml+z;
}
double rata; rata=jml/x;
ListBox1->Items->Add("=================================="); ListBox1->Items->Add("Jumlah Data = "+IntToStr(x)); ListBox1->Items->Add("Total Nilai = "+FloatToStr(jml)); ListBox1->Items->Add("Nilai Rata-rata = "+FloatToStr(rata)); ListBox1->Items->Add("=================================="); }