11 Mei 2010

Program Visual Basic: Membuat Aplikasi Pembelian Tiket Bioskop

11 Mei 2010
Ini adalah Soal A Ujian tengah semester saya, Ternyata untuk membuat program memang tidak bisa di bataskan waktu hanya 2 jam saja, karena saya baru bisa menyelesaikan soal ini butuh waktu selama 2 hari, mesti belajar lebih giat jadinya.. huyuuu.. soal dan jawaban bisa di download di sini

Ini Soalnya:
Buat aplikasi Pembelian Tiket Bioskop seperti tampak di bawah ini :




1. Tampilkan judul film pada LblJudulFilm saat user memilih salah satu studio pada OptStudio (buat control array untuk optstudio-nya).

2. Tampilkan pula jam tayang pada pada cboJamTayang berdasarkan studio yang dipilih user.

3. Isi LstHari (Senin s/d Minggu), LstRow (A s/d J), LstSeat (1-10). Pada LstRow dan LstSeat, ganti property Style = 1-CheckBox. User dapat membeli banyak tiket.

4. Saat user meng-klik cmdBeli,

a. Tampilkan total harga pada txtTotHarga (total harga = jumlah tiket * harga tiket pada hari yang dipilih user)

b. Pada FrmDetailTiket, tampilkan judul film pada LblJudulFilmPilih, tampilkan hari dan tanggal pada LblDate, tampilkan jam tayang yang dipilih user pada LblJamTayang, tampilkan harga tiket pada LblHarga berdasarkan harga pada hari yang dipilih user.

5. Munculkan message box “Jumlah uang yang harus dibayar” Pembayaran ada 2 jenis :
a. Jika user memilih OptCash, maka jumlah uang yang harus dibayar = total harga.

b. Jika user memilih OptCreditCard, maka berlaku buy 1 get 1 free tapi tidak berlaku kelipatan. Jumlah uang yang harus dibayar total harga = ( (jumlah tiket-1) * harga tiket). Misal, beli 2 tiket, hanya bayar 1 tiket. Beli 4 tiket, hanya bayar 3 tiket.

6. Tombol cmdCancel digunakan untuk membatalkan transaksi (bersihkan form) dan tombol cmdExit digunakan untuk keluar dari program

7. DESAIN FORM Anda

Penyelesaian Menurut Saya:
1. Kita buat desain awalnya dulu, seperti ini:
Pada pertanyaan no 1, opt studio menggunakan array caranya, cukup pasangkan satu Option Button, kumudian klik kanan pada optionbutton cari coppy kemudian klik kanan paste-kan. maka akan ada peringakatan "do you alredy have a control name 'option1'.Do you wannt to create a control aray?". Klik Yes, maka anda akan mendapatkan option button aray lakukan sampai 3 kali.




2. Sekarang kita atur properties nya
label 1
caption: Studio:

label 2
caption:Judul Film :

label 3
caption: LblJudulFilm

label 4
caption:Jam Tayang :

label 5
caption:Hari :

label 6
caption: No Kursi :

label 7
caption:Total Harga : Rp

Frame2
Caption: Detail tiket

label 8
caption: Judul Film Pilihan

label 9
caption: Date :

label 10
caption: Kosongkan
Name:lblDate

label 11
caption: Time :

label 12
caption:kosongkan
name:lblTime

label 13
caption:Price : Rp.

label 14
caption:kosongkan
name:lblPrice

label 15
caption:Normat : Rp 20.000 (senin-kamis)

label 16
caption:Jumat : Rp 30.000

label 17
caption:HTM : Rp 45.000

option1(0) optionbutton
Name: OptStudio
Caption: Studio 1

option1(1) optionbutton
Name: OptStudio
Caption: Studio 2

option1(2) optionbutton
Name: OptStudio
Caption: Studio 3

option1(3) optionbutton
Name: OptStudio
Caption: Studio 4

Combo1
Name:cmbJamTayang

List1
Name: LstHari

List2
Name:LstRow
Style: 1-Checkbox

List3
Name:LstSeat
Style: 1-Checkbox

Command1
Name: cmdBeli
Caption: Beli

Frame1
Caption: Pembayaran

Option2
Name:OptPembayaran
Option: Cash

option3
Name:OptCredit
Caption:Credit

Command2
Name: cmdCancel
Caption: Cancel

Command3
Name: cmdExit
Caption: Exit

maka Hasilnya akan seperti ini:

Untuk masalah tulisan dan ukuran tulisan bisa di sesuaikan dengan keinginan anda sendiri.

3. Sekarang Kita mulai membuat coding
Tampilkan judul film pada LblJudulFilm saat user memilih salah satu studio pada OptStudio2.Tampilkan pula jam tayang pada pada cboJamTayang berdasarkan studio yang dipilih user.Isi LstHari (Senin s/d Minggu), LstRow (A s/d J), LstSeat (1-10). Pada LstRow dan LstSeat, ganti property Style = 1-CheckBox. User dapat membeli banyak tiket
Private Sub OptStudio_Click(Index As Integer)
If OptStudio(0).Value = True Then
LblJudulFilm.Caption = "IRON MAN 2"
cmbJamTayang.List(0) = "14:45"
cmbJamTayang.List(1) = "17:00"
cmbJamTayang.List(2) = "19:15"
cmbJamTayang.List(3) = "21:30"
LstHari.List(0) = "Senin"
LstHari.List(1) = "Selasa"
LstHari.List(2) = "Rabu"
LstHari.List(3) = "Kamis"
LstHari.List(4) = "Jumat"
LstHari.List(5) = "Sabtu"
LstHari.List(6) = "Minggu"
LstRow.List(0) = "A"
LstRow.List(1) = "B"
LstRow.List(2) = "C"
LstRow.List(3) = "D"
LstRow.List(4) = "E"
LstRow.List(5) = "F"
LstRow.List(6) = "G"
LstRow.List(7) = "H"
LstRow.List(8) = "I"
LstRow.List(9) = "J"
For s = 1 To 10
LstSeat.AddItem s
Next

ElseIf OptStudio(1).Value = True Then
LblJudulFilm.Caption = "The Book of Eli"
cmbJamTayang.List(0) = "14:55 "
cmbJamTayang.List(1) = "17:05"
cmbJamTayang.List(2) = "19:15"
cmbJamTayang.List(3) = "21:25"
LstHari.List(0) = "Senin"
LstHari.List(1) = "Selasa"
LstHari.List(2) = "Rabu"
LstHari.List(3) = "Kamis"
LstHari.List(4) = "Jumat"
LstHari.List(5) = "Sabtu"
LstHari.List(6) = "Minggu"
LstRow.List(0) = "A"
LstRow.List(1) = "B"
LstRow.List(2) = "C"
LstRow.List(3) = "D"
LstRow.List(4) = "E"
LstRow.List(5) = "F"
LstRow.List(6) = "G"
LstRow.List(7) = "H"
LstRow.List(8) = "I"
LstRow.List(9) = "J"
For s = 1 To 10
LstSeat.AddItem s
Next

ElseIf OptStudio(2).Value = True Then
LblJudulFilm.Caption = "GREEN ZONE"
cmbJamTayang.List(0) = "14:25 "
cmbJamTayang.List(1) = "16:50"
cmbJamTayang.List(2) = "19:15"
cmbJamTayang.List(3) = "21:40"
LstHari.List(0) = "Senin"
LstHari.List(1) = "Selasa"
LstHari.List(2) = "Rabu"
LstHari.List(3) = "Kamis"
LstHari.List(4) = "Jumat"
LstHari.List(5) = "Sabtu"
LstHari.List(6) = "Minggu"
LstRow.List(0) = "A"
LstRow.List(1) = "B"
LstRow.List(2) = "C"
LstRow.List(3) = "D"
LstRow.List(4) = "E"
LstRow.List(5) = "F"
LstRow.List(6) = "G"
LstRow.List(7) = "H"
LstRow.List(8) = "I"
LstRow.List(9) = "J"
For s = 1 To 10
LstSeat.AddItem s
Next

ElseIf OptStudio(3).Value = True Then
LblJudulFilm.Caption = "HURT LOCKER"
cmbJamTayang.List(0) = "14:25 "
cmbJamTayang.List(1) = "16:50"
cmbJamTayang.List(2) = "19:15"
cmbJamTayang.List(3) = "21:40"
LstHari.List(0) = "Senin"
LstHari.List(1) = "Selasa"
LstHari.List(2) = "Rabu"
LstHari.List(3) = "Kamis"
LstHari.List(4) = "Jumat"
LstHari.List(5) = "Sabtu"
LstHari.List(6) = "Minggu"
LstRow.List(0) = "A"
LstRow.List(1) = "B"
LstRow.List(2) = "C"
LstRow.List(3) = "D"
LstRow.List(4) = "E"
LstRow.List(5) = "F"
LstRow.List(6) = "G"
LstRow.List(7) = "H"
LstRow.List(8) = "I"
LstRow.List(9) = "J"
For s = 1 To 10
LstSeat.AddItem s
Next
End If
End Sub


Saat user meng-klik cmdBeli, Tampilkan total harga pada txtTotHarga (total harga = jumlah tiket * harga tiket pada hari yang dipilih user). Pada FrmDetailTiket, tampilkan judul film pada LblJudulFilmPilih, tampilkan hari dan tanggal pada LblDate, tampilkan jam tayang yang dipilih user pada LblJamTayang, tampilkan harga tiket pada LblHarga berdasarkan harga pada hari yang dipilih user.
Sebelum itu kita inilisiasikan nilainyam klik general:

Dim harga, total, credit As Currency
Dim jumlah As Integer

Kemudian, tuliskan code ini
Private Sub cmdBeli_Click()

lblTime.Caption = cmbJamTayang
lblDate.Caption = LstHari
LblJuduFilmlPilihan.Caption = LblJudulFilm

jumlah = LstSeat
Select Case LstHari.ListIndex
Case 0, 1, 2, 3
harga = 20000
total = jumlah * harga
txtTotalHarga.Text = total
lblPrice.Caption = total
credit = (jumlah - 1) * harga
Case 4
harga = 30000
total = jumlah * harga
txtTotalHarga.Text = total
lblPrice.Caption = total
credit = (jumlah - 1) * harga
Case 5, 6
harga = 45000
total = jumlah * harga
txtTotalHarga.Text = total
lblPrice.Caption = total
credit = (jumlah - 1) * harga
End Select
End Sub


Munculkan message box “Jumlah uang yang harus dibayar” Pembayaran ada 2 jenis :
a. Jika user memilih OptCash, maka jumlah uang yang harus dibayar = total harga.
b. Jika user memilih OptCreditCard, maka berlaku buy 1 get 1 free tapi tidak berlaku kelipatan. Jumlah uang yang harus dibayar = total harga – ( (jumlah tiket-1) * harga tiket). Misal, beli 2 tiket, hanya bayar 1 tiket. Beli 4 tiket, hanya bayar 3 tiket.
Private Sub OptCredit_Click()
MsgBox "Total Harga Yang harus di bayarkan adalah " & vbNewLine & "Rp. " & credit, vbInformation, "Konfirmasi"
End Sub

Private Sub OptPembayaran_Click(Index As Integer)
MsgBox "Total Harga Yang harus di bayarkan adalah " & vbNewLine & "Rp. " & total, vbInformation, "Konfirmasi"
End Sub


Tombol cmdCancel digunakan untuk membatalkan transaksi (bersihkan form) dan tombol cmdExit digunakan untuk keluar dari program
Private Sub cmdCencel_Click()
OptStudio(0).Value = False
OptStudio(1).Value = False
OptStudio(2).Value = False
OptStudio(3).Value = False
LblJudulFilm.Caption = "LblJudulFilm"
LblJuduFilmlPilihan.Caption = "LblJuduFilmlPilihan"
cmbJamTayang.Clear
OptCredit.Value = False
OptPembayaran(0).Value = False
txtTotalHarga.Text = ""
lblDate.Caption = ""
lblTime.Caption = ""
lblPrice.Caption = ""
LstHari.Clear
LstRow.Clear
LstSeat.Clear
End Sub

Private Sub cmdExit_Click()
End
End Sub


17 comments:

Anonim mengatakan...

hmmm... klo pemilihan seat nya bisa ga di ubah seperti pengurutan kalender???
thx before

Opie Eyek mengatakan...

@ananonim
pengurutan kalender yang seperti apa????
.bisa di perjelas?
pakai angka, romawi, huruf atau tulisan?

Anonim mengatakan...

@TS :
di gedung bioskop itu kan,bnyak kursi nya,
klo ga salah sih 80 kursi, 40 kiri , 40 kanan..
tiap kursi itu kan juga punya nama masing2, misal nya A1, B4, C8
jadi misalnya klo ada pelanggan yg mw nnton, tinggal pilih dengan mengklik lokasi kursi nya..
mohon bantuan.. :d

Opie Eyek mengatakan...

coding yang ini ada 100 kursi mas.. kalau cuma pngen 80 ya di setting aja.. mau memanjang kesamping atau ke atas...
kalau memanjang kesamping
abjadnya dari A-H dan angka 1-10
.
di jalankan dulu programnya.. sama seperti itu kuq konsepnya.

ewayan mengatakan...

makasi tutor nya yg ini bos, udah tak coba td. :n:

lukmanariefutama mengatakan...

mas codingan nya ada yang gag ngerti. . .
klo txtTotalHarga.Text tu buat apa???
erornya distu..
knp y???

Opie Eyek mengatakan...

txtTotalHarga.Text itu adalah textbox mas...

jadi
total = jumlah * harga
txtTotalHarga.Text = total
artinya, total itu jumlah kali harga, hasilnya total di tampilin di txtTotalHarga.Text

coba lihat properties nya, namenya udah sama ga???
.
emang erornya apa???

Anonim mengatakan...

Mbak Opie : Saya Liat ada satu yang gak nyambung (menurut saya) maaf kalau saya yang salah :)
ketika (cmdBeli) di klik
ada Variabel (Jumlah) code aslinya
(Jumlah = LstSeat)
*Ketika hasilnya muncul di (Label Price), (Total Harga) menjadi (LstSeat * Harga Satuan Tiket).
*Padahal itu kan (Lseat), nomor tempat duduk. bukan jumlah tiket yang mau dibeli.
jadi hasilnya (Total Harga = Nomor Kursi * Harga Satuan Tiket). Jadi Gak Ada NOMAT kalau begitu...
Saya coba tambah satu (TextBox), jadi (Jumlah = Text().Text) , (Total = Jumlah * Harga)
Terima kasih ilmu nya , mbak opie..
ini email saya : sosisiapakai@yahoo.co.id

Anonim mengatakan...

maaf, ini vb 06 atau vb.net yaaa??

terimakasihh :a:

Opie Eyek mengatakan...

ini pakai vb 6

Anonim mengatakan...

bagaimana dengan program print tiketnya??? bagaimana cara print tiketnya?? bisa di bantu??

Anonim mengatakan...

cara print nya??

Amaldo Firjarahadi mengatakan...

Di situ kagak ada berapa orang yang akan membeli dlm aplikasi trsbt min... mohon penjelasannya

Opie Eyek mengatakan...

ndak ada... itu cuma aplikasi sederhana aja kuq... bisa dikembangkan sndiri-sendiri :a:

ida fitria mengatakan...

flowchartnya ko ga da :(

Anonim mengatakan...

Great article. I will be experiencing some of these issues as well.
.

Feel free to visit my homepage; anti cellulite treatment

budi firman mengatakan...

met sore gan
mau nanya gan kok gx bsa running ya gan? kalau di running ada pemberitahuannya kayak gni "run time error "424" stelah aku debug,tapi kok yng digaris kuning lbljudulfilm kira2 salahnya dmna ya gan?

Poskan Komentar

sampaikan komentar dengan sopan dan bertanggung jawab :)