Puzzle merupakan permainan yang ada sudah lama sejak zaman dahulu kala. Permainan ini dapat merangsang otak untuk berpikir kritis dalam menyelesaikan masalah. Kali ini saya ingin share tugas pemrogaman visual ke 4 yang ke dua tentan membuat puzzle. Sudah saya cari disana sini tapi tidak ketemu juga akhirnya saya buat sesuai logika saya sendiri. Berikut cara membuat game puzzle menggunakan visual studio 2010  Langkah pertama buka visual basic dan buat form dengan tampilan sebagai berikut :


susunan form tampilan game puzzle

Jika sudah maka tinggal memasukan source code ke setiap tombol. Namun sebelumnya saya akan jelaskan bagaimana cara progam ini berjalan.
  • Tombbol acak berfungsi untuk mengacak angaka 1 – 0 , sekaligus akan menjadi tombol stop saat progam dijalankan
  • Tombol tambah kecepatan berfungsi untuk menambah kecepatan proses pengacakan tombol puzzle. Jika kecepatan sudah sampai maksimum maka muncul pesan “ kecepatan maksimum tercapai”
  • Perpindahan angka hanya bisa dilakukan jika ada tombol kosong disebelah tombol yang isi.  Jika tombol isi di pilih sedang tombol kosong ada disebelahnya maka secara otomatis tombol akan bertukar tempat. Jika sebelahnya isi maka tombol tidak akan bertukar tempat
  • Jika semua tombol sudah terletak pada tempatnya masing masing maka akan muncul “ selamat anda berhasil”

OK paham lah yah... kalo kurang paham main ketempat saya aja nanti saya jelaskan. Pertama kita akan membuat tombol acaknya dahulu, kenapa tidak masukan angkanya aja dulu? Ya terserah saya aja yah... yang penting kan nanti hasilnya.....

Pada tombol acak kita masukan kode berikut

PrivateSubbacak_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlesbacak.Click
jalan = Notjalan
        Timer1.Enabled = jalan
If Timer1.Enabled = TrueThen
bacak.Text = "STOP"
Else
bacak.Text = "ACAK"
EndIf

EndSub

Lho kok error... ya iya lah itu karena kita belum membuat timer. Timer disini berfungsi untuk mengaca angka secara continyu. Untuk itu kita harus buat object timer. Selanjutnya pada object timer kita masukan kode berikut :


PrivateSub Timer1_Tick(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Timer1.Tick
DimacakAsInteger
Do
acak = Rnd() * 10
            b1.Text = acak
'  If b1.Text = 10 Or b1.Text = 0 Or b1.Text = 9 Then
'b1.Text = ""
'End If
LoopWhileacak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b2.Text = acak
'If b2.Text = 10 Or b2.Text = 0 Or b2.Text = 9 Then
'b2.Text = ""
' End If

LoopWhile b2.Text = b1.Text Oracak = 10 Oracak = 9


Do
acak = Rnd() * 10
            b3.Text = acak
'   If b3.Text = 10 Or b3.Text = 0 Or b3.Text = 9 Then
'b3.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b4.Text = acak
' If b4.Text = 10 Or b4.Text = 0 Or b4.Text = 9 Then
'b4.Text = ""
' End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b5.Text = acak
'If b5.Text = 10 Or b5.Text = 0 Or b5.Text = 9 Then
'b5.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b6.Text = acak
'If b6.Text = 10 Or b6.Text = 0 Or b6.Text = 9 Then
'b6.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b7.Text = acak
'If b7.Text = 10 Or b7.Text = 0 Or b7.Text = 9 Then
'b7.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = b6.Text Oracak = 10 Oracak = 9



Do
acak = Rnd() * 10
            b8.Text = acak
'            If b8.Text = 10 Or b8.Text = 0 Or b8.Text = 9 Then
'b8.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = b6.Text Oracak = b7.Text Oracak = 10 Oracak = 9


Do
acak = Rnd() * 10
            b9.Text = acak
' If b9.Text = 10 Or b9.Text = 0 Or b9.Text = 9 Then
'b9.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = b6.Text Oracak = b7.Text Oracak = b8.Text Oracak = 10 Oracak = 9


Dim control AsWindows.Forms.Control
ForEach control InMe.Controls
Ifcontrol.Text = "0"Then
control.Text = ""
EndIf
Next

EndSub


Sekarang kita coba jalankan maka hasilnya button 1 sampai 9 telah terisi angka, sebenarnya ada cara yang lebih mudah yaitu dengan menggunakan array tapi pakai cara yang susah aja dulu biar jalan logikanya. Berikut tampilan progamnya ketika diacak

Ketika tombol stop di hentikan maka proses acak akan berhenti dan tombol stop akan berubah menjadi tombol acak lagi. Setelah kita dapat mengacak angka maka sekarang kita tinggal membuat perintah agar tombol mau berpindah tempat. Sebagai contoh ketika tombol acak dihentikan maka tampilannya akan sebagai berikut. Saat angka 7 kita klik maka angka 7 akan berpindah ke tengah dan tombol kosong akan berpindah ke bawah.


Agar dapat berjalan seperti diatas maka kita akan tambahkann perintah disetiap button 1 sampai 9, berikut kode perintahnya. 



PrivateSub b1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b1.Click
If b2.Text = ""Then
            b2.Text = b1.Text
            b1.Text = ""
EndIf
If b4.Text = ""Then
            b4.Text = b1.Text
            b1.Text = ""
EndIf
EndSub

PrivateSub b2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b2.Click
If b1.Text = ""Then
            b1.Text = b2.Text
            b2.Text = ""
EndIf
If b5.Text = ""Then
            b5.Text = b2.Text
            b2.Text = ""
EndIf
If b3.Text = ""Then
            b3.Text = b2.Text
            b2.Text = ""
EndIf

EndSub

PrivateSub b3_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b3.Click
If b2.Text = ""Then
            b2.Text = b3.Text
            b3.Text = ""
EndIf
If b6.Text = ""Then
            b6.Text = b3.Text
            b3.Text = ""
EndIf

EndSub

PrivateSub b4_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b4.Click
If b1.Text = ""Then
            b1.Text = b4.Text
            b4.Text = ""
EndIf
If b5.Text = ""Then
            b5.Text = b4.Text
            b4.Text = ""
EndIf
If b7.Text = ""Then
            b7.Text = b4.Text
            b4.Text = ""
EndIf
EndSub

PrivateSub b5_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b5.Click
If b2.Text = ""Then
            b2.Text = b5.Text
            b5.Text = ""
EndIf
If b4.Text = ""Then
            b4.Text = b5.Text
            b5.Text = ""
EndIf
If b6.Text = ""Then
            b6.Text = b5.Text
            b5.Text = ""
EndIf
If b8.Text = ""Then
            b8.Text = b5.Text
            b5.Text = ""
EndIf
EndSub

PrivateSub b6_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b6.Click
If b3.Text = ""Then
            b3.Text = b6.Text
            b6.Text = ""
EndIf
If b5.Text = ""Then
            b5.Text = b6.Text
            b6.Text = ""
EndIf
If b9.Text = ""Then
            b9.Text = b6.Text
            b6.Text = ""
EndIf

EndSub

PrivateSub b7_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b7.Click
If b4.Text = ""Then
            b4.Text = b7.Text
            b7.Text = ""
EndIf
If b8.Text = ""Then
            b8.Text = b7.Text
            b7.Text = ""
EndIf
EndSub

PrivateSub b8_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b8.Click
If b5.Text = ""Then
            b5.Text = b8.Text
            b8.Text = ""
EndIf
If b9.Text = ""Then
            b9.Text = b8.Text
            b8.Text = ""
EndIf
If b7.Text = ""Then
            b7.Text = b8.Text
            b8.Text = ""
EndIf

EndSub

PrivateSub b9_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b9.Click
If b8.Text = ""Then
            b8.Text = b9.Text
            b9.Text = ""
EndIf
If b6.Text = ""Then
            b6.Text = b9.Text
            b9.Text = ""
EndIf
If (b1.Text = "1"And b2.Text = "2"And b3.Text = "3"And b4.Text = "4"And b5.Text = "5"And b6.Text = "6"And b7.Text = "7"And b8.Text = "8"And b9.Text = "") Then
MsgBox("selamatandaberhasil")

EndIf

EndSub




Pada button 9 kita beri perintah untuk menampilkan kotak dialog “ selamat anda berhasil” jika kita dapat menyelesaikan puzzle yang kita buat. Karena sudah pasti ketika kita menyelesaikan puzzle maka tombol ke 9 akan di tekan terakhir kali...




Demikian cara membuat game puzzle sederhana dengan visual studio. Eh... ada yang kurang... itu tombol tambah kecepatannya. Sebenarnya tidak terlalu penting si hanya sbagai pelengkap saja. Tombol tambah kecepatan hanya berfungsi untuk mengubah nilai interval pada timer sampai nilai tertentu.



Jika kecepatan sudah maksimum maka akan muncul pesan “ kecepatan maksimum tercapai “ untuk itu kita perlu menambahkan perintah pada botton tambah kecepatan sbagai berikut



PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click
        Timer1.Interval = Timer1.Interval / 2
If Timer1.Interval < 32 Then
MsgBox("kecepatanmaksimumtercapai")
            Timer1.Interval = 15


Demikian progam yang saya buat untuk melengkapi tugas pemrogaman sebelumnya semoga bermanfaat. Untuk source kode selengkapnya dapat dilihat dibawah ini.



PublicClassForm1
DimjalanAsBoolean = False

PrivateSub b1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b1.Click
If b2.Text = ""Then
            b2.Text = b1.Text
            b1.Text = ""
EndIf
If b4.Text = ""Then
            b4.Text = b1.Text
            b1.Text = ""
EndIf
EndSub

PrivateSub b2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b2.Click
If b1.Text = ""Then
            b1.Text = b2.Text
            b2.Text = ""
EndIf
If b5.Text = ""Then
            b5.Text = b2.Text
            b2.Text = ""
EndIf
If b3.Text = ""Then
            b3.Text = b2.Text
            b2.Text = ""
EndIf

EndSub

PrivateSub b3_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b3.Click
If b2.Text = ""Then
            b2.Text = b3.Text
            b3.Text = ""
EndIf
If b6.Text = ""Then
            b6.Text = b3.Text
            b3.Text = ""
EndIf

EndSub

PrivateSub b4_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b4.Click
If b1.Text = ""Then
            b1.Text = b4.Text
            b4.Text = ""
EndIf
If b5.Text = ""Then
            b5.Text = b4.Text
            b4.Text = ""
EndIf
If b7.Text = ""Then
            b7.Text = b4.Text
            b4.Text = ""
EndIf
EndSub

PrivateSub b5_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b5.Click
If b2.Text = ""Then
            b2.Text = b5.Text
            b5.Text = ""
EndIf
If b4.Text = ""Then
            b4.Text = b5.Text
            b5.Text = ""
EndIf
If b6.Text = ""Then
            b6.Text = b5.Text
            b5.Text = ""
EndIf
If b8.Text = ""Then
            b8.Text = b5.Text
            b5.Text = ""
EndIf
EndSub

PrivateSub b6_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b6.Click
If b3.Text = ""Then
            b3.Text = b6.Text
            b6.Text = ""
EndIf
If b5.Text = ""Then
            b5.Text = b6.Text
            b6.Text = ""
EndIf
If b9.Text = ""Then
            b9.Text = b6.Text
            b6.Text = ""
EndIf

EndSub

PrivateSub b7_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b7.Click
If b4.Text = ""Then
            b4.Text = b7.Text
            b7.Text = ""
EndIf
If b8.Text = ""Then
            b8.Text = b7.Text
            b7.Text = ""
EndIf
EndSub

PrivateSub b8_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b8.Click
If b5.Text = ""Then
            b5.Text = b8.Text
            b8.Text = ""
EndIf
If b9.Text = ""Then
            b9.Text = b8.Text
            b8.Text = ""
EndIf
If b7.Text = ""Then
            b7.Text = b8.Text
            b8.Text = ""
EndIf

EndSub

PrivateSub b9_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles b9.Click
If b8.Text = ""Then
            b8.Text = b9.Text
            b9.Text = ""
EndIf
If b6.Text = ""Then
            b6.Text = b9.Text
            b9.Text = ""
EndIf
If (b1.Text = "1"And b2.Text = "2"And b3.Text = "3"And b4.Text = "4"And b5.Text = "5"And b6.Text = "6"And b7.Text = "7"And b8.Text = "8"And b9.Text = "") Then
MsgBox("selamatandaberhasil")

EndIf

EndSub

PrivateSubbacak_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlesbacak.Click
jalan = Notjalan
        Timer1.Enabled = jalan
If Timer1.Enabled = TrueThen
bacak.Text = "STOP"
Else
bacak.Text = "ACAK"
EndIf

EndSub



PrivateSub Timer1_Tick(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Timer1.Tick
DimacakAsInteger
Do
acak = Rnd() * 10
            b1.Text = acak
'  If b1.Text = 10 Or b1.Text = 0 Or b1.Text = 9 Then
'b1.Text = ""
'End If
LoopWhileacak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b2.Text = acak
'If b2.Text = 10 Or b2.Text = 0 Or b2.Text = 9 Then
'b2.Text = ""
' End If

LoopWhile b2.Text = b1.Text Oracak = 10 Oracak = 9


Do
acak = Rnd() * 10
            b3.Text = acak
'   If b3.Text = 10 Or b3.Text = 0 Or b3.Text = 9 Then
'b3.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b4.Text = acak
' If b4.Text = 10 Or b4.Text = 0 Or b4.Text = 9 Then
'b4.Text = ""
' End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b5.Text = acak
'If b5.Text = 10 Or b5.Text = 0 Or b5.Text = 9 Then
'b5.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b6.Text = acak
'If b6.Text = 10 Or b6.Text = 0 Or b6.Text = 9 Then
'b6.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = 10 Oracak = 9

Do
acak = Rnd() * 10
            b7.Text = acak
'If b7.Text = 10 Or b7.Text = 0 Or b7.Text = 9 Then
'b7.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = b6.Text Oracak = 10 Oracak = 9



Do
acak = Rnd() * 10
            b8.Text = acak
'            If b8.Text = 10 Or b8.Text = 0 Or b8.Text = 9 Then
'b8.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = b6.Text Oracak = b7.Text Oracak = 10 Oracak = 9


Do
acak = Rnd() * 10
            b9.Text = acak
' If b9.Text = 10 Or b9.Text = 0 Or b9.Text = 9 Then
'b9.Text = ""
'End If
LoopWhileacak = b1.Text Oracak = b2.Text Oracak = b3.Text Oracak = b4.Text Oracak = b5.Text Oracak = b6.Text Oracak = b7.Text Oracak = b8.Text Oracak = 10 Oracak = 9


Dim control AsWindows.Forms.Control
ForEach control InMe.Controls
Ifcontrol.Text = "0"Then
control.Text = ""
EndIf
Next



EndSub


PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click
        Timer1.Interval = Timer1.Interval / 2
If Timer1.Interval < 32 Then
MsgBox("kecepatanmaksimumtercapai")
            Timer1.Interval = 15

EndIf

EndSub

PrivateSub Label1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs)

EndSub
EndClass














Setelah kemarin membuat progam penjualan dengan visual basic 2010 ternyata masih ada beberapa kekurangan. sekarang saya akan melanjutkan progam yang kemarin lagi untuk melengkapi kekurangan di progam yang kemarin. Perbaikan progam yang saya buat antara lain :

  • penambahan tombol isi data
  • saat form dijalankan semuat isian, tombol isidata dan tutup aktif, sedangkan tombol clear tidak aktif
  • saat ditekan tombol clear maka sama dengan saat form dijalankan.

Untuk membuat progaram seperti diatas maka saya buat tampilan form seperti ini




Selanjutnya agarsaat form dijalankan semuat isian, tombol isidata dan tutup aktif, sedangkan tombol clear tidak aktif maka kita tambahkan coding berikut pada form load



PrivateSub Form1_Load(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) HandlesMyBase.Load





Dim Control AsWindows.Forms.Control



ForEach Control InMe.Controls

Control.Enabled = False

Next
        Button2.Enabled = True ‘tombol isi data
bttutup.Enabled = True

maka tampilan saat progam dijalankan akan seperti ini






Agar dapat diisi maka isian harus aktif, maka kita bisa menambahkan perintah di tombol isi data agar isian bisa aktif semua dan tombol clear bisa berfungsi. Berikut coding yang saya gunakan untuk membuat semua isian progam tersebut menjadi aktif lagi

PrivateSub Button2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click

Dim Control AsWindows.Forms.Control

ForEach Control InMe.Controls



Control.Enabled = True

Next

        Button1.Enabled = True‘button 1 tombol clear
        Button2.Enabled = False‘button 1 tombol isi data



EndSub


Dan tampilan progamnya saat dijalankan jadi seperti ini :



ketika tombol di klik
ketika tombol sis data di klik



Agar saat tombol clear ditekan tampilan form sperti pada saat pertama progam dijalankan maka perlu ditambahkan perintah pada tombol clear sebagai berikut
PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click
txtbayar.Clear()
txtdiskon.Clear()
txtharga.Clear()
txtjumlah.Clear()
txtnama.Clear()
txttotal.Clear()
Me.radiotunai.Checked = False
Me.radiokredit.Checked = False
cmbkode.Text = ""

Dim Control AsWindows.Forms.Control
ForEach Control InMe.Controls

Control.Enabled = False

Next
        Button2.Enabled = True ‘tombol
bttutup.Enabled = True

EndSub

Ok demikia untuk update dari tugas pemrogaman 3 yang kemarin sebagai tugas pemrogaman 3 yang pertama.  Untuk source kode selengkapnya dibawah ini. Untuk tugas pemrogaman ke 3 yang ke dua tentang bagaimana membuat puzzle dengan visual basic juga telah saya buat. Terimakasih.

Untuk source code selengkapnya bisa dilihat dibawa ini :


PublicClassForm1

PrivateSub Form1_Load(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) HandlesMyBase.Load
Dim Control AsWindows.Forms.Control
ForEach Control InMe.Controls

Control.Enabled = False

Next
        Button2.Enabled = True
bttutup.Enabled = True

cmbkode.Items.Add("SPT")
cmbkode.Items.Add("SND")
cmbkode.Items.Add("TST")
cmbkode.Items.Add("TOP")
cmbkode.Items.Add("TAS")


EndSub

PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click
txtbayar.Clear()
txtdiskon.Clear()
txtharga.Clear()
txtjumlah.Clear()
txtnama.Clear()
txttotal.Clear()
Me.radiotunai.Checked = False
Me.radiokredit.Checked = False
cmbkode.Text = ""
Dim Control AsWindows.Forms.Control
ForEach Control InMe.Controls

Control.Enabled = False

Next
        Button2.Enabled = True
bttutup.Enabled = True

EndSub

PrivateSub TextBox1_TextChanged(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlestxtjumlah.TextChanged

EndSub

PrivateSubcmbkode_SelectedIndexChanged(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlescmbkode.SelectedIndexChanged
Dimkdbarang, namabarangAsString
DimhargaAsInteger
kdbarang = cmbkode.Text
SelectCasekdbarang
Case"SPT"
namabarang = " sepatu "
harga = 20000
Case"SND"
namabarang = " sendal"
harga = 10000
Case"TST"
namabarang = " T-Shirt "
harga = 15000
Case"TOP"
namabarang = " topi "
harga = 50000
Case Else
namabarang = " - "
harga = 0
EndSelect
txtjumlah.Text = 0
txtnama.Text = namabarang
txtharga.Text = harga

txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)

EndSub

PrivateSubradiotunai_CheckedChanged(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlesradiotunai.CheckedChanged

txtdiskon.Text = Val(txttotal.Text) * 10 / 100

txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)

EndSub

PrivateSubradiokredit_CheckedChanged(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlesradiokredit.CheckedChanged
txtdiskon.Text = 0
txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)

EndSub

PrivateSubtxtbayar_TextChanged(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlestxtbayar.TextChanged

EndSub

PrivateSubbttutup_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlesbttutup.Click
Me.Close()
EndSub

PrivateSubtxttotal_TextChanged(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handlestxttotal.TextChanged

EndSub

PrivateSub Button2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click
Dim Control AsWindows.Forms.Control
ForEach Control InMe.Controls

Control.Enabled = True
Next
        Button1.Enabled = True
        Button2.Enabled = False
EndSub
EndClass



Okeh langsung saja dari pada kelamaan kali ini saya coba menganalisa masalah yang terjadi pada program 1.  Pertama buat 2 buah  form terlebih dahulu  kemudian masukan kode dibawah ini pada form 1

Public Class Frmsatu
    Const alamat = "kuningan"
    Private Sub Btalamat1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btalamat1.Click
        Dim alamat = "nandang"
        txtnama.Text = alamat
    End Sub

    Private Sub Btnama1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnama1.Click
        Dim nama As String
        nama = " Nandang "
        txtnama.Text = nama

    End Sub

    Private Sub Btnama2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnama2.Click

        txtnama.Text = nama
    End Sub

    Private Sub Btalamat2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btalamat2.Click
        Txtalamat.Text = alamat
    End Sub

    Private Sub Btumur1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btumur1.Click
        Dim umur As Integer
        umur += 1
        Txtumur.Text = umur
    End Sub

    Private Sub Btumur2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btumur2.Click
        Static umur As Integer
        umur += 1
        Txtumur.Text = umur
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Frmdua.ShowDialog()
    End Sub
End Class

Langah berikutnya kita jalankan program dan ternyata ada keganjilan yang terjadi dari program tersebut yaitu  saat ditekan tombol nama1 dan nama1 nama yang ditampilkan pada textbox nama berbeda sedangkan saat ditekan tombol alamat1 dan alamat2 yang ditampilkan pada textbox alamat sama kenapa bisa begitu??

hal ini terjadi karena Pada tombol nama 1 dideklarasikan yaitu dengan dim as nama string yang berisi "nandang" sedangkan pada tombol nama 2 deklarasi menggambil dari deklarasi global yang terdapat pada modul program.

Pada tambah umur 1 selalu keluar angka satu karena pendeklarasiannya menggunakan DIM yang artinya tidak menyimpan nilai, maka nilai akan selalu keluar 1.  untuk itu DIM seharusnya diganti dengan STATIC agar nilainya tidak hilang saat program dijalankan.


Selanjutnya saya coba analisa program ke 2  coba buat form dengan tampilan sebagai berikut untuk menganalisa program if dan case


selanjutnya beri poperti dan masukan kode berikut :

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cmbkode.Items.Add("SPT")
        cmbkode.Items.Add("SND")
        cmbkode.Items.Add("TST")
        cmbkode.Items.Add("TOP")
        cmbkode.Items.Add("TAS")

    End Sub
'========================================================='
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        txtbayar.Clear()
        txtdiskon.Clear()
        txtharga.Clear()
        txtjumlah.Clear()
        txtnama.Clear()
        txttotal.Clear()
        Me.radiotunai.Checked = False
        Me.radiokredit.Checked = False
        cmbkode.Text = ""

    End Sub

'========================================================='
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtjumlah.TextChanged
        txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
    End Sub

    Private Sub cmbkode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbkode.SelectedIndexChanged
        Dim kdbarang, namabarang As String
        Dim harga As Integer
        kdbarang = cmbkode.Text
        Select Case kdbarang
            Case "SPT"
                namabarang = " sepatu "
                harga = 20000
            Case "SND"
                namabarang = " sendal"
                harga = 10000
            Case "TST"
                namabarang = " T-Shirt "
                harga = 15000
            Case "TOP"
                namabarang = " topi "
                harga = 50000
            Case Else
                namabarang = " - "
                harga = 0
        End Select
        txtnama.Text = namabarang
        txtharga.Text = harga
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)

    End Sub

'========================================================='
    Private Sub radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiotunai.CheckedChanged
        txtdiskon.Text = Val(txttotal.Text) * 10 / 100
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
    End Sub

'========================================================='
    Private Sub radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiokredit.CheckedChanged
        txtdiskon.Text = 0
        txtbayar.Text = Val(txttotal.Text) - Val(txtdiskon.Text)
    End Sub

'========================================================='
    Private Sub txtbayar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtbayar.TextChanged

    End Sub

'========================================================='
    Private Sub bttutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttutup.Click
        Me.Close()
    End Sub

'========================================================='
    Private Sub txttotal_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txttotal.TextChanged

    End Sub

End Class
selanjutnya jalankan progam. maka progam berjalan dengan lancar tapi sebenarnya ada kekurangan dari program tersebut. antara lain


  • Tombol clear tidak menghapus semua textbox untuk itu kita tambahkan perintah untuk menghapus textbox yang masih isi dengan perintah namatxtbox.clear() 
  • Item barang tas tidak memilliki nilai untuk mengatasinya kita harus memberikan nilai tas pada select case agar nantinya nilai dapat diketahui
Demikian analisa untuk tugas pemrogaman 2 terimakasih ^^




Berikut ini adalah cara sederhana untuk menggunakan kotak Information File di Photoshop untuk menyimpan  undang-undang hak cipta. Ingat bahwa Anda mendapatkan perlindungan tambahan di bawah Digital Millennium Copyright Act dengan memberikan pemberitahuan kepada pemirsa dari pekerjaan Anda. Hal ini juga mencegah gambar Anda dari menjadi Pekerjaan Orphan  .

Ini harus tidak dilakukan sebagai satu-satunya alat Anda perlindungan. Saya juga akan menyarankan menggunakan "terlihat" watermark yang mencakup, minimal, simbol hak cipta dan nama Anda. Hal ini dapat ditempatkan sebagai lapisan di atas gambar dan hantu atau timbul ke dalam gambar.

Anda akan mendapatkan kualitas terbaik dengan bekerja dengan file yang dalam format terkompresi atau lossless seperti TIF daripada jpeg. Melakukan tindakan ini pada JPEG akan dikenakan file-file ke putaran lain kompresi "lossy" yang dapat menurunkan kualitas gambar Anda. Minimal saya akan menyarankan mengamati jpeg asli ke jpeg dua kali disimpan untuk memastikan bahwa kualitas dapat diterima.

Anda juga dapat menemukan penggunaan utilitas seperti Toolkit Info Gambar  , atau PhotoMechanic  lebih cocok untuk embedding metadata ke file jpeg.

Langkah-Langkah

Cara membuat tindakan di Photoshop (saya menggunakan Adobe Photoshop CS 5, tapi ini bisa bekerja dalam versi lain kebanyakan juga).

1. Buka  gambar di Photoshop.

2. Di bawah menu window pilih "Tindakan Tampilkan".

3. Di sisi kanan palet tindakan Anda akan melihat segitiga kecil. Klik dan pilih "menciptakan tindakan baru" .

4. Nama Aksi (misalnya, "Hak cipta 2007" )

5. Pilih satu set dari menu pop up (Anda bisa menciptakan satu set baru jika diinginkan seperti salah satu nama meta data atau hak cipta ). Jika Anda ingin Anda dapat memetakan tombol fungsi Anda sebagai shortcut (misalnya, Mac "Command + Shift + F8" atau pc, Ctrl + Shift + F8).

6. Anda siap untuk mulai merekam, pergi ke gambar terbuka dan pilih File, File Info .

7. Dalam jenis kotak Caption, di © 2007 (fotografer nama), All Rights Reserved . Jika Anda ingin, menambahkan nomor telepon Anda, alamat, dll
(untuk mendapatkan Option © simbol penggunaan + G [mac], atau tahan pada tombol Alt sambil mengetik 0169 dari keypad numerik * [jendela]). Lihat titik tanda bintang di bawah ini jika Anda menggunakan laptop jendela.

8. Ada beberapa bagian di bawah bar beralih tergantung pada versi Adobe ® Photoshop yang Anda gunakan. Untuk versi 6, lihat di bawah "hak cipta" bagian (Command + 6, Mac, Control + 6, PC), di versi 7 ini berada di bagian "umum". Centang kotak berlabel "Mark berhak cipta" dan tempat © 2003 (fotografer nama), All Rights Reserved . (Ini sehingga Anda benar-benar tertutup dalam setiap negara yang menandatangani Konvensi Bern). Karena tidak semua pembaca IPTC bekerja sama, saya juga menyarankan menempatkan info yang sama ke dalam kolom "keterangan" juga.

9. Jika Anda ingin, tambahkan URL website Anda di kolom yang disediakan di bawah ini. Namun, seperti disebutkan di atas ini hanya dapat terlihat jika klien membuka file dalam Adobe ® Photoshop, sehingga Anda mungkin ingin juga menempatkan ini dalam bidang caption juga.

10. Pilih OK - Anda akan melihat simbol hak cipta sekarang di depan nama gambar pada bagian atas jendela gambar.

11. Kembali ke segitiga kecil di tepi palet tindakan dan pilih "berhenti merekam" dari menu atau klik pada kotak hitam kecil di bagian bawah. Jika Anda ingin menggunakan ini sebagai bagian dari sebuah proses "batch" seperti yang disebutkan di bawah ini, Anda akan perlu menambahkan "Save As" ** langkah sebelum Anda berhenti merekam.

12. Anda sekarang memiliki tindakan untuk memasukkan data ini ke setiap gambar hanya dengan menjalankan tindakan ini ..

Anda mungkin ingin cadangan tindakan ini pada saat ini. Melihat file bantuan atau manual untuk spesifik tentang cara untuk melakukan ini.

Hanya itu otomatis!

Jika Anda ingin membuat proses ini lebih mudah, mengatur proses batch sehingga Anda dapat memproses banyak gambar sekaligus dengan tindakan ini.

1. Buat folder pada desktop Anda, Anda mungkin menyebutnya "hak cipta" . Pindahkan file yang Anda ingin melindungi ke dalam folder ini.

Catatan: Ini akan menghapus semua data yang ada dalam "file info" Anda kotak, jadi gunakan dengan hati-hati atau hanya menempatkan salinan file dalam folder ini.

2. Di bawah "file" menu pilih "otomatis" dan pilih "Batch" .

Pilih tindakan hak cipta (seharusnya muncul secara otomatis jika itu adalah tindakan terakhir Anda berlari), pilih sumber folder pastikan untuk memeriksa kotak berlabel tindakan override "Save As" ** perintah dan memilih bermain .

Kemudian duduk kembali dan menonton, atau menggunakan waktu yang Anda simpan untuk keperluan produksi yang lebih.

* Jika Anda berada di laptop windows dan tidak dapat dengan mudah menggunakan keypad numerik, coba gunakan "Character Map" program (membaca file bantuan Anda jika Anda belum pernah menggunakan ini). Anda dapat menemukannya dengan menggunakan Start >> Program >> Accessories >> System Tools >> Peta Karakter.

** Harap dicatat bahwa Anda hanya harus menggunakan "Save As" perintah. Semua versi terbaru Adobe ® Photoshop akan "menelanjangi" keluar info IPTC jika Anda menggunakan "Save for Web" pilihan karena hal ini memberikan ukuran file yang paling kompak. Lihat Manifesto Metadata  untuk rincian lainnya tentang bagaimana Anda dapat menggunakan metadata efektif.


Bingung mau bikin aplikasi apa nih menggunakan aplikasi visual basic 2010, setelah beberapa hari berpikir ingin buat program kasir tapi sepertinya ribet apalagi belum terbiasa dengan Visual Studio 2010. Akhirnya aku putuskan buat program menghitung luas, keliling, dan diagonal sebuah persegi. Untuk penampakan gambar akhirnya seperti ini.


Hasil Akhir setelah program di jalankan


Sangat sederhana sekali yah, dan tampilannya juga masih jelek. Tapi tidak masalah yang penting kan keakuratan hasilnya sudah pasti dan jelas. Oke langsung saja berikut langkah langkah membuat program untuk menghitung luas keliling dan diagonal persegi.

1. Buka Visual Studio 2010 kemudian pilih buat new project >> Pilih Windows Aplication Form. langsung Simpan di derektori yang anda inginkan.
2. Buat 2 buah textbox, 8 buah label dan 2 buah button atur seperti gambar dibawah ini.



Buat Layout Seperti gambar


Public Class Form1

    Private Sub Text1_KeyPress(ByVal KeyAscii As Integer)


    End Sub
 
    Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click

    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button2.Enabled = True

        Dim a As Integer = Text1.Text
        Dim b As Integer = Text2.Text


        Label3.Visible = True
        Label4.Visible = True
        Label5.Visible = True
        Label6.Text = (a + b) * 2
        Label6.Visible = True
        Label7.Text = ((a * a) + (b * b)) ^ 0.5
        Label7.Visible = True
        Label8.Text = (a * b)
        Label8.Visible = True

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Label6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.Click

    End Sub

    Private Sub Text2_KeyPress(ByVal KeyAscii As Integer)
        If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Then
            KeyAscii = 0
            MsgBox("Hanya angka saja..!", vbCritical, "Peringatan")

            Exit Sub
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Text1.ResetText()
        Text2.ResetText()
        Label3.Visible = False
        Label4.Visible = False
        Label5.Visible = False
        Label6.Visible = False
        Label7.Visible = False
        Label8.Visible = False
        Button2.Enabled = False
    End Sub

    Private Sub Label9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Text1.TextChanged

    End Sub
End Class


3. Proses menghitung dilakukan saat tombol hitung di klik, pada button hitung diletakan script untuk membuat label yang enable=false berubah menjadi true agar dapat tampil saat di klik.
4. label6 menghasilkan keliling
5. label7 menghasilkan panjang diagonal
6. label8 menghasilkan luas
7. Tombol reset mreset semua nilai di textbox dan mengubah label menjadi enable=false sehingga label tidak nampak.

demikian cara membuat aplikasi hitung luas persegi panjang yang sederhana. semoga bermanfaat.











Diberdayakan oleh Blogger.