Penyelesaian Program menurut saya:
1. Kita buad desaign awal aplikasi ini, seperti ini:
2. Kemudian Kita atur propertiesnya
label 1
caption: Dari
label 2
caption:Ke
label 3
caption: Kelas
label 4
caption:Harga
label 5
caption:Berangkat
label 6
caption: Kembali
label 7
caption:Dewasa
label 8
caption: Bayi
label 9
caption: Sub Total Rp.
label 10
caption: Total Bayar: Rp.
Combo1
Name: CboAsal
Caption: CboAsal
Combo2
Name: CboTujuan
Caption: CboTujuan
Option1
Name: OptBisnis
Caption: Bisnis
Option2
Name: OptEkonomi
Caption: Ekonomi
Text1
Name:TxtHarga
Text2
Name:TxtDewasa
Text3
Name:TxtBayi
Text4
Name:TxtSubTotal
Text5
Name:txtTotal
Frame1
Caption: Bagasi
Check1
Caption:0-15 Kg
Check2
Caption:16-30 Kg
Check3
Caption:31-50 Kg
Command1
Name:CmdCancel
Caption:Cancel
Command2
Name:CmdExit
Caption:Exit
List1
Name:ListTgl_B
List2
Name:LstBulan_B
List3
Name:LstTahun_B
List4
Name:LstTgl_K
List5
Name:LstBulan_K
List6
Name:LstTahun_K
Sehingga Hasil akhir form seperti ini:
3. Waktunya melakukan peng-coding-an
Pertama, kita asumsikan bahwa saat aplikasi di load asal, tujuan keberangkatan, tanggal, bulan dan tahun sudah langsung di tampil.
Private Sub Form_Load()
TxtDewasa = ""
TxtBayi = ""
For t = 1990 To 2050
LstTahun_B.AddItem t
Next
For i = 1990 To 2050
LstTahun_K.AddItem i
Next
For k = 1 To 31
LstTgl_K.AddItem k
Next
For b = 1 To 31
LstTgl_B.AddItem b
Next
LstBulan_B.List(0) = "Januari"
LstBulan_B.List(1) = "Februari"
LstBulan_B.List(2) = "Maret"
LstBulan_B.List(3) = "April"
LstBulan_B.List(4) = "Mei"
LstBulan_B.List(5) = "Juni"
LstBulan_B.List(6) = "Juli"
LstBulan_B.List(7) = "Agustus"
LstBulan_B.List(8) = "September"
LstBulan_B.List(9) = "Oktober"
LstBulan_B.List(10) = "November"
LstBulan_B.List(11) = "Desember"
LstBulan_K.List(0) = "Januari"
LstBulan_K.List(1) = "Februari"
LstBulan_K.List(2) = "Maret"
LstBulan_K.List(3) = "April"
LstBulan_K.List(4) = "Mei"
LstBulan_K.List(5) = "Juni"
LstBulan_K.List(6) = "Juli"
LstBulan_K.List(7) = "Agustus"
LstBulan_K.List(8) = "September"
LstBulan_K.List(9) = "Oktober"
LstBulan_K.List(10) = "November"
LstBulan_K.List(11) = "Desember"
CboTujuan.List(0) = "Denpasar(DPS)"
CboTujuan.List(1) = "Jakarta (Cgk)"
CboTujuan.List(2) = "Surabaya (Sby)"
CboAsal.List(0) = "Denpasar(DPS)"
CboAsal.List(1) = "Jakarta (Cgk)"
CboAsal.List(2) = "Surabaya (Sby)"
End Sub
Validasi tanggal berangkat dan tanggal kembali, tanggal kembali tidak boleh melebihi tanggal berangkat.
Private Sub LstTahun_K_Click()
If LstTgl_K.Text < LstTgl_B.Text Or LstTahun_K.Text < LstTahun_B.Text Then
MsgBox "tanggal kembali tidak boleh melebihi tanggal berangkat", vbInformation, "WARNING!"
End If
End Sub
Tampilkan harga tiket pada txtHrgTiket setelah user memilih salah satu kelas apakah kelas bisnis (OptBisnis) atau kelas ekonomi (OptEkonomi).
Private Sub OptBisnis_Click()
If CboAsal.ListIndex = 0 And CboTujuan.ListIndex = 1 Then
TxtHarga.Text = 1855000
ElseIf CboAsal.ListIndex = 0 And CboTujuan.ListIndex = 2 Then
TxtHarga.Text = 1200000
ElseIf CboAsal.ListIndex = 1 And CboTujuan.ListIndex = 0 Then
TxtHarga.Text = 1700000
ElseIf CboAsal.ListIndex = 2 And CboTujuan.ListIndex = 0 Then
TxtHarga.Text = 1055000
Else
MsgBox "Kota Asal dan Kota Tujuan Tidak Boleh Sama", vbInformation, "WARNING!"
End If
End Sub
Private Sub OptEkonomi_Click()
If CboAsal.ListIndex = 0 And CboTujuan.ListIndex = 1 Then
TxtHarga.Text = 1050000
ElseIf CboAsal.ListIndex = 0 And CboTujuan.ListIndex = 2 Then
TxtHarga.Text = 750000
ElseIf CboAsal.ListIndex = 1 And CboTujuan.ListIndex = 0 Then
TxtHarga.Text = 900000
ElseIf CboAsal.ListIndex = 2 And CboTujuan.ListIndex = 0 Then
TxtHarga.Text = 600000
Else
MsgBox "Kota Asal dan Kota Tujuan Tidak Boleh Sama", vbInformation, "WARNING!"
End If
End Sub
Lakukan perhitungan sub total (sub total = (jumlah penumpang dewasa * harga tiket)+(jumlah penumpang bayi * harga tiket)). Harga tiket untuk bayi sebesar 15% dari harga tiket orang dewasa. Lakukan perhitungan total bayar (total bayar = sub total + bagasi). Saya asumsikan perhitungan di mulai ketika user melakukan check box pada bagasi.
Pertama kita inilisasikan dulu
Dim harga, dewasa, bayi, hargabayi, subtotal, total As Currency
Lanjut.....
Private Sub Check1_Click()
dewasa = TxtDewasa.Text
bayi = TxtBayi.Text
harga = TxtHarga.Text
hargabayi = 0.15 * harga
bagasi = 30000
subtotal = (dewasa * harga) + (hargabayi * bayi)
total = subtotal + bagasi
TxtSubTotal.Text = subtotal
txtTotal.Text = total
End Sub
Private Sub Check2_Click()
dewasa = TxtDewasa.Text
bayi = TxtBayi.Text
harga = TxtHarga.Text
hargabayi = 0.15 * harga
bagasi = 60000
subtotal = (dewasa * harga) + (hargabayi * bayi)
total = subtotal + bagasi
TxtSubTotal.Text = subtotal
txtTotal.Text = total
End Sub
Private Sub Check3_Click()
dewasa = TxtDewasa.Text
bayi = TxtBayi.Text
harga = TxtHarga.Text
hargabayi = 0.15 * harga
bagasi = 90000
subtotal = (dewasa * harga) + (hargabayi * bayi)
total = subtotal + bagasi
TxtSubTotal.Text = subtotal
txtTotal.Text = total
End Sub
Tombol cmdCancel digunakan untuk membatalkan transaksi (bersihkan form) dan tombol cmdExit digunakan untuk keluar dari program.
Private Sub CmdCancel_Click()
TxtDewasa.Text = ""
TxtBayi.Text = ""
TxtSubTotal.Text = ""
txtTotal.Text = ""
TxtHarga.Text = ""
OptBisnis.Value = False
OptEkonomi.Value = False
End Sub
Private Sub CmdExit_Click()
End
End Sub