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 <vcl.h> #pragma hdrstop #include "U_if.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) //--------------------------------------------------------------------------- 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 #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) Agar form Contoh if muncul, maka harus di tambahkan unitnya ke unit Password, yaitu: #include U_if.h //---------------------------------------------------- if (Edit2->Text=="AMIK") ShowMessage("Selamat, Login Password Anda Berhasil!"); Form2->Show(); else ShowMessage("Selamat, Login Password Anda Berhasil!"); #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) //------------------------------------------------------- float Nilai=StrToFloat(Edit1->Text); if(nilai>=60) Label2->Caption="Selamat Anda -> LULUS"; else Label2->Caption="Mohon Maaf Anda -> BELUM LULUS";
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 = B 2 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: 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 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; case konstantavariabel_2:pernyataan_2; case konstantavariabel_3:pernyataan_4; case konstantavariabel_n:pernyataan_n; 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 int angka=strtoint(edit1->text); switch (angka) case 0:Edit2->Text="Nol"; case 1:Edit2->Text="Satu"; case 2:Edit2->Text="Dua"; case 3:Edit2->Text="Tiga"; case 4:Edit2->Text="Empat"; case 5:Edit2->Text="Lima"; case 6:Edit2->Text="Enam"; case 7:Edit2->Text="Tujuh"; case 8:Edit2->Text="Delapan"; case 9:Edit2->Text="Sembilan"; 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:
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 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"; case 2 : Edit7->Text="1500000"; case 3 : Edit7->Text="2000000"; 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();
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 Bitbtn1 Caption &Proses Kind bkall Bitbtn2 Caption &Ulang Kind bkretry Bitbtn3 Caption &Selesai Kind bkclose
2. Aktifkan komponen Bitbtn1 pada form1 dan lakukan double click, Kemudian tuliskan source code dibawah ini 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 File- Save All. Kemudian jalankan aplikasi dengan menekan tombol F9 atau Run.
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. 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.
2. Double klik pada tombol proses dan isikan source code berikut. 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. 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:
Dengan listing berikut: 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: 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("==================================");