Modul Teori dan Praktikum Pemrograman C++ Builder
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. STRUKTUR KONDISI “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 : If(kondisi){ Pernyataan; }
Contoh Program /* Program struktur kondisi if untuk memeriksa suatu kondisi */ #include
#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_1){ Pernyataan_1; }else If(kondisi_2){ Pernyataan_2; }
Contoh Program
Agar form Contoh if #include muncul, maka harus di #pragma hdrstop tambahkan unitnya ke #include "U_if.h" unit Password, yaitu: #include "U_Pass.h" #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) { if (Edit2->Text=="AMIK") { ShowMessage("Selamat, Login Password Anda Berhasil!"); Form2->Show();} else { ShowMessage("Selamat, Login Password Anda Berhasil!");} }
#include #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"; } }
© 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
C. STRUKTUR KONDISI “IF TERSARANG” Dalam struktur kondisi if tersarang yaitu di dalam if terdapat if yang lainnya minimal terdapat dua pernyataan. Bentuk umumnya adalah sebagai berikut : If(kondisi_1){ Pernyataan_1; }else If(kondisi_2){ Pernyataan_2; } else If(kondisi_n){ Pernyataan_n; } else {Pernyataan_m;}
Contoh Program Program berikut ini adalah program untuk menghitung persamaan kuadrat AX 2 + 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 Form1 Label1 Label2 Label3 Label4 Edit1 Edit2 Edit3 Edit4 ListBox Bitbtn1 Bitbtn2 Bitbtn3
Properti Caption Caption Caption Caption Caption Text Text Text Text
Nilai Program Untuk Menyelesaikan Persamaan Kuadrat Masukan Bilangan A Masukan Bilangan B Masukan Bilangan C Nilai Determinan (D) Kosongkan Kosongkan Kosongkan Kosongkan
Caption Caption Kind
&Proses &Ulang bkClose
Dengan Listing, sebagai berikut: 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)); } }
© 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
Aktifkan komponen Bitbtn2 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini void __fastcall TForm1::BitBtn2Click(TObject *Sender) { Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); ListBox1->Clear(); Edit1->SetFocus(); }
D. STRUKTUR KONDISI “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 : 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; }
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 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);; } }
3. Apabila program ini dijalankan (RUN F9), maka ditampilkan seperti form di bawah ini:
© 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
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 GroupBox1 Label1 Label2 Label3 Label4 Edit1 Edit2 RadioButton1 RadioButton2 ComboBox1 GroupBox2 Label5 Label6 Label7 Label8 Label9 Label10 Label11 Edit3 Edit4 Edit5 Edit6 Edit7 Edit8 Edit9 Bitbtn1 Bitbtn2 Bitbtn3
Caption Caption Caption Caption Caption Caption Text Text Caption Caption Text Items.. Caption Caption Caption Caption Caption Caption Caption Caption Text Text Text Text Text Text Text Caption Kind Caption Kind Caption Kind
Contoh switch-case Data Pegawai NIP Nama Pegawai Jenis Kelamin Golongan Kosongkan Kosongkan Laki-laki Perempuan Kosongkan 1, 2, 3 Output Data Gaji NIP Nama Pegawai Jenis Kelamin Golongan Gaji Pokok Tunjangan Gaji Diterima Kosongkan Kosongkan Kosongkan Kosongkan Kosongkan Kosongkan Kosongkan &Proses bkAll &Ulang bkRetry &Close bkClose
2. Aktifkan komponen Bitbtn1 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)); }
3. aktifkan komponen Bitbtn2 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini 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(); } © 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
4. aktifkan komponen Bitbtn3 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini void __fastcall TForm1::BitBtn3Click(TObject *Sender) { Close(); }
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 &Proses Bitbtn1 Caption Kind bkAll &Ulang Bitbtn2 Caption Kind bkRetry &Selesai Bitbtn3 Caption Kind bkClose © 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
2. Aktifkan komponen Bitbtn1 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini 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");} }
3. aktifkan komponen Bitbtn2 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini 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(); }
4. aktifkan komponen Bitbtn3 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini void __fastcall TForm1::BitBtn3Click(TObject *Sender) { Close(); }
5. Simpan unit dengan nama U_NilaiAkhir dan projectnya dengan nama P_NilaiAkhir dengan memilih menu FileSave All. Kemudian jalankan aplikasi dengan menekan tombol F9 atau Run.
© 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
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 : //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;}
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. void __fastcall TForm1::Button1Click(TObject *Sender) { int i; for (i = 1; i<=10;i++){ Memo1->Lines->Add("Bilangan Ke = "+IntToStr(i)); } }
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: //Struktur Pengulangan while Nama_variabel=nilai_awal; while (kondisi) { pernyataan_yang_akan_diulang; variabel_peningkatan; }
Latihan 7 1. Buat aplikasi baru dengan dengan memilih menu File|New|Application C++ Builder. Kemudian tambahkan komponen TlistBox dan Tbutton seperti gambar.
© 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
2. Double klik pada tombol proses dan isikan source code berikut. void __fastcall TForm1::Button1Click(TObject *Sender) { int i; i=1; while (i<=10){ Memo1->Lines->Add("Bilangan Ke = "+IntToStr(i)); i++; } }
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: //Struktur Pengulangan do .. while Nama_variabel=nilai_awal; do { pernyataan_yang_akan_diulang; variable_peningkatan; } while (kondisi);
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. void __fastcall TForm1::Button1Click(TObject *Sender) { int i; i=1; do { Memo1->Lines->Add("Bilangan Ke = "+IntToStr(i)); i++; } while (i<=10); }
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:
© 2011
Modul Teori dan Praktikum Pemrograman C++ Builder
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); } }
2. Buatlah aplikasi sederhana untuk menghitung Nilai Rata-rata. Dengan output tampilan seperti gambar.
Dengan Listing Berikut: 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("=================================="); }
© 2011