Menampilkan Angka dengan 7 Segmen Melalui Mikrokontroller

Oleh Ipung Nurdianto / 11.11.2328 / TI 11 A

Italiano: Primo microprocessore Intel, l'Intel...

Italiano: Primo microprocessore Intel, l’Intel 4004. (Photo credit: Wikipedia)

Teori Singkat

Ada dua jenis seven segmen yaitu : Common Katoda dan Common Anoda. Common Katoda adalah seven segmen yang setiap katoda LED-nya disambung bersama sehingga hanya yang keluar hanya stau pin saja yang keluar yang diberi nama Common.  Data untuk seven segmen common katoda dimasukkan pada setiap anoda LED. Begitu juga untk Common Anoda,  semua anoda LED-nya disambungkan bersama, sehingga data akan dimasukan pada masing-masing kotoda.

Pada percobaan ini akan dibangun program untuk menampilkan data angka dengan Seven segmen COMMON ANODA yang terpasang pada port P0 mikrokontroler AT89S51.Untuk membangun program harap diperhatikan koneksi antara pin seven segmen dengan pin port P0 tersebut. Koneksi pin antara keduanya adalah sebagai berikut :

Pin a -> pin P0.0,                    Pin b -> pin P0.1,        Pin c -> pin P0.2,        Pin d -> pin P0.3,

Pin e -> pin P0.4,                    Pin f -> pin P0.5,        Pin g ->  pin P0.6,        Pin h ->  pin P0.7.

seven3          seven2

rangkaianRangkaian Satu Seven Segmen pada port 0 mikrokontroller AT89Sxx

rangkaian3Rangkain Tiga Seven Segmen

Sebelum memprogram tampilan seven segmen perlu disusun data untuk masing angka yang akan ditampilkan. Sesuai dengan koneksi pin-pin perangkat kerasnya dan common pin dari seven segmen seperti gambar seven segmen tunggal, maka dapat disusun table data untuk tampilan masing-masing angka seperti table 1.

TAMPILAN ANKGA

KOMPOSISI DATA(h,g,f,e,d,c,b,a)

DATA (HEXA)

0

1100 0000

C0

1

1111 1001

F9

2

1010 0100

A4

3

1011 0000

B0

4

1001 1001

99

5

1001 0010

92

6

1000 0010

82

7

1111 1000

F8

8

1000 0000

80

9

1001 0000

90

Untuk memperogram tampilan sebuah angka pada seven segemen dilakukan dengan mengirimkan data yang sudah disusun tadi melalui port, seperti potongan ptogram berikut .

 

       mov  A,#00111111b                    ; isi Reg A dengan C0H (angka 0)

       mov  P0,A                                    ; Kirim data dari A  ke |P0

Menampilkan angka sacara berurut dilakukan dengan cara mengirimkan komposisi data melaluim port sepaket demi sepaket dan yang diselingi dengan delay. Artinya setelah sebuah angka tampil harus ditahan dulu sebentar baru dikrimkan data beriktunya. Jika anda ingin menampilkan angka secara berurut turun  maka dapat dilakukan dengan mengirimkan data mulai dari komposisi data angka 9 menuju ke angka 0.

Persoalan berikutnya adalah menampilkan angka lebih dari satu. Sebenarnya angka yang ditampikan tetap satu demi satu juga, tetapi ditampilkan secara bergantian dengan kecepatan 50 kali setiap detik. Yang perlu diperhatikan juga adalah bahwa tampilan bukan sekedar hanya bergantian tetapi yang lebih penting lagi adalah posisi tampilan angka tersebuat harus sesuai dengan bobotnya, apakah angka itu satuan, puluhan atau ratusan.

Untuk memprogram tampilan  tiga buah seven segmen seperti rangkain 3. dimana ketiga pin common tidak digabung lagi tetapi masing-masing common disambungkan ke pin P2.0, P21 dan P2.2. Tujuannya adalah agar masing-masing seven segmen dapat dinyalakan sendiri-sendiri. Data untuk kedua seven segmen dimasukkan pada saluran yang sama. Dengan demikian kedua port  P0 dan P2 harus diprogram secara bersama. Agar angka satuan tampil pada seven segmen satuan maka common seven segmen satuan harus diberi logika 1 sedangkan common yang lain harus berlogika 0. Begitu juga untuk menampilkan angka puluhan maka  common seven segmen puluhan yang diberi logika 1 sedangkan common yang satuan diberi logika 0. Kemudian yang amat penting adalah bahwa angka satuan dan puluhan dan ratusan ditampilkan dengan cara brganti dengan frekuensi lebih besar dari batas penglihatan manusia ( >25 kali / detik). Berikut potongan program tampilan dua angka pada seven segmen common anoda yang dirangkai seperti gambar 3:

 

Ulang:    mov    A,#0A4H                       ; isi Reg. A dengan A4H (angka 2)
                 mov  P0,A                     ; isi kirim data dari A ke port P0
                 mov P2,#00000001b            ; NYALAKAN ANGKA SATUAN
                 call delay                   ; panggil waktu tunda
                 
                 mov    A,#0F8H                ; isi Reg. A dengan F8H (angka 7)
                 mov  P0,A                     ; isi kirim data dari A ke port P0
                 mov P2,#00000010b             ; NYALAKAN ANGKA PULUHAN
                 call delay                    ; panggil waktu tunda
 
                 mov    A,#92H                 ; isi Reg. A dengan 92H (angka 5)
                 mov  P0,A                     ; isi kirim data dari A ke port P0
                 mov P2,#00000100b             ; NYALAKAN ANGKA RATUSAN
                 call delay                    ; panggil waktu tunda
          jmp ulang                            ; tampilkan berulang-ulang

 Alat dan Bahan :

  1. Komputer PC yang mempunyai port Serial  ……..            1 buah
  2. Programmer DT-HQ …………………………………..    1 buah
  3. Board Peraga Mikrokontroler ………… …..……………. 1 set
  4. Perangkat Lunak Kompiler ASM51 atau HB2000 ….……1 paket
  5. Perangkat Lunak ISP Programming  ………………………….. 1 paket

Listing Program  :

 POGRAM 1

; ————————————————————-

; Menampilkan angka 0 s/d 9     dengan seven segmen  yang tersambung pada port P0

; dengan cara : Data langsung dikeluarkan ke port yang bersangkutan

; ————————————————————-

Org          0h

Mulai:

Mov     P0,#0C0h        ; keluarkan kode angka 0 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#0F9h         ; keluarkan kode angka 1 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#0A4h        ; keluarkan kode angka 2 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#0B0h        ; keluarkan kode angka 3 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#099h         ; keluarkan kode angka 4 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#092h         ; keluarkan kode angka 5 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#082h         ; keluarkan kode angka 6 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#0F8h         ; keluarkan kode angka 7 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#080h         ; keluarkan kode angka 8 Port 0

Acall    Delay               ; panggil sub routine Delay

Mov     P0,#090h         ; keluarkan kode angka 9 Port 0

Acall    Delay               ; panggil sub routine Delay

Sjmp    Mulai               ; Lompat ke alamat dg label Mulai

;——————-

; sub routine delay

;——————-

Delay:  Mov     R0,#0FFh        ; Isi Register R0 dengan FF (Hex)

Delay1: Mov   R1,#0FFh        ; Isi Register R1 dengan FF (hex)

Delay2: Djnz   R1,Delay2       ; Kurangi R1 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Delay2

Djnz    R0,Delay1       ; Kurangi R0 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Delay1

Ret                                      ; Kembali ke alamat setelah perintah

; ‘Acall Delay’

End

PROGRAM 2

; ————————————————————-

; Menampilkan angka 0 s/d 9     dengan seven segmen  yang tersambung pada port P0

; dengan cara : Data diambil dengan pointer LOOKUP TABLE

; ————————————————————-

Org          0h

Mulai:

Mov     R2,#10            ; jumlah angka numerik

Mov     DPTR,#Numerik         ;

Nextdata:

Clr       A

Movc   A,@A+DPTR

Mov     P0,A                ; keluarkan data A ke port 0

Inc       DPTR

Acall    Delay               ; panggil sub routine delay panjang

Djnz    R2,Nextdata   ; Kurangi R2 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Nextdata

Sjmp    Mulai               ; Lompat ke alamat dg label Mulai

;——————-

; sub routine delay

;——————-

Delay:  Mov     R0,#0FFh        ; Isi Register R0 dengan FF (Hex)

Delay1: Mov   R1,#0FFh        ; Isi Register R1 dengan FF (hex)

Delay2: Djnz   R1,Delay2       ; Kurangi R1 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Delay2

Djnz    R0,Delay1           ; Kurangi R0 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Delay1

Ret                                        ; Kembali ke alamat setelah perintah

; ‘Acall Delay’

;————————–

; Lokasi data

;————————–

Numerik:

DB      0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h

End

PROGRAM 3

; ——————————————————

; Program untuk menghidupkan Display 3 x 7 Segment ANGKA BERURUT  DARI 0-225

; ——————————————————

Org      0h

;———– variables ———–

ratusan          equ 30h

puluhan        equ 31h

satuan           equ 32h

angka            equ 33h

;———- main program ———

mulai:     mov angka,#0

loop1:     mov r0,#40

loop2:     mov a,angka

mov b,#0ah

div ab

mov satuan,b

mov b,#0ah

div ab

mov puluhan,b

mov ratusan,a

;

Mov  DPTR,#numerik          ;

Mov  A, satuan

Movc   A,@A+DPTR

Mov     P0,A                ; keluarkan data A ke port 0

Mov P2,#01H

Acall    Delay               ; panggil sub routine delay panjang

;

Mov  A, puluhan

Movc   A,@A+DPTR

Mov     P0,A                ; keluarkan data A ke port 0

Mov P2,#02H

Acall    Delay               ; panggil sub routine delay panjang

;

Mov  A, ratusan

Movc   A,@A+DPTR

Mov     P0,A                ; keluarkan data A ke port 0

Mov P2,#04H

Acall    Delay               ; panggil sub routine delay panjang

djnz r0,loop2

inc angka

sjmp loop1

;——————-

; sub routine delay

;——————-

Delay:  Mov     R0,#05h          ; Isi Register R0 dengan 05 (Hex)

Delay1: Mov   R1,#0FFh        ; Isi Register R1 dengan FF (hex)

Delay2: Mov   R2,#0FFh

Djnz R2,$

Djnz   R1,Delay2      ; Kurangi R1 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Delay2

Djnz    R0,Delay1       ; Kurangi R0 dengan 1, bila hasil belum

; sama dengan 0 maka lompat ke Delay1

Ret                              ; Kembali ke alamat setelah perintah

; ‘Acall Delay’

;————————–

; Lokasi data

;————————–

Numerik:

DB      0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h

End

Demikian postingan mengenai seven segmen yang bisa saya sampaikan. Terima kasih.

Sumber artikel : http://edidaspdg.files.wordpress.com/2010/01/job-11-menampilkan-angka-seven-segmen-dengan-mikrokontroler.doc

Iklan

Tulisan baru sedang menyusul ! Tapi mau nulis apa ya ?

Agaknya blog saya ini jadi kurang terurus dan ngeblank sehabis semester 3, jadi buat mengobati kebosanan saya selaku admin akan memuat cerita-cerita random saya. Hitung-hitung daripada kosong terbengkalai ga diurus :v
Okeh, niatnya saya mau memuat cerita (sudah dibilang). Mau tau cerita apa ? Tunggu tanggal mainnya.

Mumpung masih ada kuota 3 GBan (lol)

Tugas Pemrograman Visual Pertemuan ke 9

LATIHAN DASAR KONEKSI MYSQL SERVER 2005 DENGAN VISUAL BASIC

Posting kali ini saya akan membahas tetang pembuatan tombol navigasi (First, Previous, Next, Last) dan tombol pencarian yang digunakan untuk mencari data di dalam database yang kali saya menggunakan Microsoft SQL Server 2005. Sebelumnya buat dahulu sebuah tabel yang berisi kolom : nim, nama, alamat, tgllahir, jurusan, serta spptetap dan isilah tabel tersebut.

Setelah database dibuat, kita koneksikan dengan Microsoft Visual Studio 2010 dengan menu Data > Add New Data Source
pada menu di Microsoft Visual Studio 2010. Setelah terkoneksi dengan database, kemudian kita buat tampilan formnya agar menjadi seperti berikut :

tampilan form

Kemudian kita akan memberi coding pada tombol-tombol navigasi dan pencarian yang telah kita buat. Coding untuk masing-masing tombol adalah sebagai berikut :
Tombol First :
TbmahasiswaBindingSource.MoveFirst()
Tombol Previous :
TbmahasiswaBindingSource.MovePrevious()
Tombol Next :
TbmahasiswaBindingSource.MoveNext()
Tombol Last :
TbmahasiswaBindingSource.MoveLast()
Tombol Cari :
If (TbmahasiswaBindingSource.Find(“Nama”, TextBox1.Text)) > -1 Then
MsgBox(“Data Ditemukan”)
Else
MsgBox(“Data Tidak Ditemukan”)
End If
Tombol Keluar :
Me.Close()

Tampilan jika data ditemukan dalam record :

dataketemu

Tampilan jika data tidak ditemukan dalam record :

datatidakketemu

Sekian postingan saya kali ini. Maaf kalau terlambat.

Tugas Pemrograman Visual Pertemuan ke 8

OVERLOADING FUNCTION

Overloading function adalah fungsi yang namanya sama tapi berbeda paramaternya, semisal ada sebuah fungsi seperti ini :

 1).  Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
hitung = bil1 + bil2
End Function

dan ada fungsi bernama sama pula

2).  Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
hitung = bil1 + bil2 + bil3
End Function

Disini jelas terlihat bahwa fungsi tambah (dipisah dalam 2 poin) pada poin 1 hanya menambahkan 2 angka dan poin ke 2 menambahkan 3 angka.

Lalu lihat pada perintah selanjutnya, misal ditaruh di Button1

Private Sub Button1_Click(ByVal bla…bla…bla…) (disingkat saja)

TextBox1.Text=hitung(1,2,3)

Jalankan, maka hasil yang ditampilkan adalah 6 karena Button1 memanggil fungsi tambah yang terletak pada Function hitung berparameter 3 variabel. Lihat hitung(1,2,3) berarti ada 3 nilai dan hanya bisa dipanggil untuk Function berparameter 3.

FUNGSI BAWAAN / INTERNAL DI VISUAL BASIC

Sebuah function / fungsi mirip dengan prosedur biasa tapi tujuan fungsi adalah menerima beberapa input dan mengembalikan value / nilai yang dieksekusi pada program utama untuk menyelesaikannya. Ada dua jenis function, yaitu bawaan dan buatan dari programmer.

Contoh function bawaan yang sering kita pakai adalah :

1. MsgBox()

Tujuannya adalah menghasilkan kotak pesan pop-up dan mengizinkan pengguna untuk mengklik tombol perintah sebelum ia melanjutkan.

Formatnya :

yourMsg=MsgBox([Isi pesan],[Style value],[judul])

Argumen [Isi pesan] adalah pesan yang ingin ditampilkan, harus diberi tanda petik dua (”  “),

Argumen [Style value] adalah penetuan jenis pesannya, apakah pesan konfirmasi, peringatan, info, dll.

Style value 0 menampilkan tombol OK, nama konstannya vbOkOnly

Style value 1 menampilkan tombol OK dan Cancel, nama konstannya vbOkCancel

Style value 3 menampilkan tombol Abort, Retry, Ignore, nama konstannya vbAbortRetryIgnore

Style value 4 menampilkan tombol YesNo, nama konstannya vbYesNo

Style value 0 menampilkan tombol Retry dan Cancel, nama konstannya vbRetryCancel

Ada pula 4 icon yang dapat disertakan pada Style value agar jelas makna pesannya, yaitu :

Value 16 untuk icon silang merah (vbCritical)

Value 32 untuk icon tanda tanya (vbQuestion)

Value 48 untuk icon tanda seru (vbExclamation)

Value 64 untuk icon huruf i (vbInformation)

Sintaksnya bisa seperti ini :

Dim pesan As Integer

pesan=MsgBox(“Ini adalah contoh pesan”,1,”Pesan”)

atau boleh juga

pesan=MsgBox(“Ini adalah contoh pesan”,vbInformation+vbOkOnly,”Pesan”)

Contoh tampilan :

konfim

2. InputBox()

Fungsi InputBox() akan menampilkan kotak pesan yang bisa kita beri input / masukan di dalam formnya.

Sintaks :

pesanku=InputBox([kalimat pesan],[judul],[teks default],[posisi-x],[posisi-y])

pesanku dideklarasikan dengan macam-macam tipe data tapi biasanya bertipe string yang menerima input pesan.

Contoh, saya akan membuat InputBox dengan format seperti ini :

Dim psn As String

psn = InputBox(“Pesan Anda”,”Masukkan Pesan”,”Ketik disini”,400, 600)

Hasilnya :

inputbox

3. Manipulasi String

a. Mid Function

Gunanya untuk menerima beberapa bagian teks yang diberikan.

Formatnya : Mid(kalimat,posisi,n)

Dimana :

  • kalimat adalah String dari teks yang diinputkan
  • posisi adalah posisi mulai pengambilan dari sebuah kalimat
  • n adalah jumlah karakter untuk diterima

Contoh :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myPhrase As String

myPhrase = Microsoft.VisualBasic.InputBox(“Enter your phrase”)

Label1.Text = Mid(myPhrase, 2, 6)

End Sub

Misal inputnya adalah kata “Selamat” maka hasil ekstraksi / pengambilan katanya adalah “elamat”. Posisi pengambilan dari huruf kedua sebuah kata, lalu jumlah huruf yang diambil selanjutnya ada 6 (n huruf pada kata “elamat” ada 6)

b. Right function

Gunanya melakukan pengambilan String dari kanan.

Contoh formatnya :

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

        Dim myword As String

myword = TextBox1.Text

Label1.Text = Microsoft.VisualBasic.Right (myword, 4)

End Sub

Ket. : Jika kita inputkan kata “harimau” maka hasilnya “imau”. Lihat jumlah pengambilan huruf yang ada di belakang myword.

c. Left

Gunanya sama dengan Right tapi String yang diambil dari kiri, dan hanya diganti seperti ini :

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

        Dim myword As String

myword = TextBox1.Text

Label1.Text = Microsoft.VisualBasic.Left (myword, 4)

   End Sub

Jika kita input kata “kemeja” maka hasilnya “keme”.

d.Trim function

Gunanya untuk membuang spasi.

Formatnya : Trim(“Kalimat”)

Contoh :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myPhrase As String myPhrase = Microsoft.VisualBasic.InputBox(“Enter your phrase”)

Label1.Text = Trim(myPhrase)

End Sub

Jika kita inputkan seperti ini –> ”           Yogyakarta             ”

maka spasi akan dibuang dan hasilnya adalah –> “Yogyakarta”

Sekian postingan saya.

Sumber : http://www.vbtutor.net/vb2010/vb2010_Lesson13.htm (dengan perubahan secukupnya)

Tugas Pemrograman Visual Pertemuan 7 (Form, Menu, MdiForm)

Pada pertemuan ke-7 ini, saya akan memposting pembuatan form dengan form induk, form anak, beserta menunya. Duh apa lagi itu?

Intinya, form induk itu adalah form utama untuk menampung form-form yang bila dipanggil framenya tidak keluar dari form induk, misal seperti editing foto di Photoshop yang tiap file foto yang dibuka dikelompokkan dalam tab-tab tersendiri yang sebenarnya adalah form anak.

Cara membuatnya :

1.Buat sebuah form utama dan susun seperti ini :

forminduk

Pada Properties untuk form ini, atur saja Name=fawal, Text= Form Awal, isMdiContainer = True, dan lain-lainnya terserah sesuai selera. IsMdiContainer dibuat true agar dia berubah menjadi form induk, penampung form anak yang kan dibuat di no. selanjutnya.

  1. Buat form anak, isi tiap form bebas. Saya membuat ada 6 form anak dengan rincian 3 untuk ditampilkan dengan cara .Show() artinya kita bisa membuka lebih dari 1 form anak sekaligus tanpa harus menutupnya, dan 3 lagi untuk .ShowDialog(), yang cara menampilkannya memang seperti kotak dialog. Form harus ditutup dulu jika ingin membuka form lain.
  2. Sekarang kita berkutat di MenuStrip. Cukup drag n drop saja MenuStrip dari kategori Menus&Toolbars dan atur seperti ini :

<

p>menunya

Jendela : Penataan (Submenu : Susun vertikal, susun horizontal, Susun Cascade) dan Tutup Semua

Bantuan : Tentang

  1. ContextMenu, saya hanya bikin 1 saja dan letaknya di form induk, diakses dengan  klik kanan pada area kosong saat kita belum memanggil form apapun.

context

Rinciannya : Tampilkan (Submenunya : Menu dan Tab Menu), Sembunyikan (Submenunya : Menu dan Tab Menu), dan Docking (Submenu : Menu -> Atas, Bawah,Kanan,Kiri + Tab Menu – >Kanan , Kiri)

Agar ContextMenuStrip dapat ditampilkan, pada Properties Form utama cari “ContextMenuStrip”, ganti none dengan ContextMenuStrip1.

4.Untuk TabControl, saya membuat 2 TabPage. 1 untuk Form Latihan, karena hanya form latihan saja yang memungkinkan dibuka banyak secara bersamaan dan tab lain untuk mengatur layout MdiChild.

5.Kode program diuraikan di bawah ini.

Public Class fawal

”=================================================================================================
”ini untuk mengatur menu strip
Private Sub CobaForm1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaForm1ToolStripMenuItem.Click
form_lat1.MdiParent = Me
form_lat1.Show()

End Sub

Private Sub Latihan3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Latihan3ToolStripMenuItem.Click
form_lat3.MdiParent = Me
form_lat3.Show()
End Sub

Private Sub CobaTugas1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaTugas1ToolStripMenuItem.Click
form_tgs1.ShowDialog()
End Sub

Private Sub CobaTugas2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaTugas2ToolStripMenuItem.Click
form_tgs2.ShowDialog()
End Sub

Private Sub Tugas3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tugas3ToolStripMenuItem.Click
form_tgs3.ShowDialog()

End Sub
”========== exit====================
Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click

If MsgBox(“Apakah yakin akan keluar ?”, vbQuestion + vbYesNo + vbDefaultButton2, “Konfirmasi”) = vbYes Then
Me.Close()

End If

End Sub

”============tentang====================
Private Sub TentangToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TentangToolStripMenuItem.Click

MsgBox(“Tugas Pertemuan 7” & vbCrLf & “Oleh Ipung N. / 11.11.2328 “, vbInformation, “Tentang”)

End Sub

Private Sub SusunVertikalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SusunVertikalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub

Private Sub SusunHorizontalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SusunHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Private Sub TumpukToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TumpukToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub

”==========================================================================================
”ini untuk mengatur konteks menu

Private Sub MenuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolStripMenuItem.Click
strip_menu.Visible = True

End Sub

Private Sub TabKananToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabKananToolStripMenuItem.Click
tab_right.Visible = True
End Sub

Private Sub MenuToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolStripMenuItem1.Click
strip_menu.Visible = False

End Sub

Private Sub TabKananToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabKananToolStripMenuItem1.Click
tab_right.Visible = False
End Sub

”====================================================================================
”ini untuk mengatur checkbox di tabgroup dan membuka form anak

Private Sub chk_lat1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_lat1.CheckedChanged
If chk_lat1.Checked = True Then
form_lat1.MdiParent = Me
form_lat1.Show()
Else
form_lat1.MdiParent = Me
form_lat1.Dispose()
End If
”================== [ cek bila form latihan 1 sudah terbuka ] ===========================
If form_lat1.Visible Then
chk_lat1.Checked = True
Else
chk_lat1.Checked = False
End If

End Sub

Private Sub chk_lat2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_lat2.CheckedChanged
If chk_lat2.Checked = True Then
form_lat2.MdiParent = Me
form_lat2.Show()
Else
form_lat2.MdiParent = Me
form_lat2.Dispose()
End If

”================== [ cek bila form latihan 2 sudah terbuka ] ===========================
If form_lat2.Visible = True Then
chk_lat2.Checked = True
Else
chk_lat2.Checked = False
End If

End Sub

Private Sub chk_lat3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_lat3.CheckedChanged
If chk_lat3.Checked = True Then
form_lat3.MdiParent = Me
form_lat3.Show()
Else
form_lat3.MdiParent = Me
form_lat3.Dispose()
End If

”================== [ cek bila form latihan 3 sudah terbuka ] ===========================
If form_lat3.Visible = True Then
chk_lat3.Checked = True
Else
chk_lat3.Checked = False
End If

End Sub

”================================================================================================
”tutup semua form
Private Sub TutupToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TutupToolStripMenuItem.Click
For Each child In Me.MdiChildren
child.Close()
Next
End Sub

”===============================================================================================
”penataan via tab
Private Sub bt_vert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_vert.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub

Private Sub bt_hori_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_hori.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub

Private Sub radio_tgs1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles swt_lat1.CheckedChanged
If swt_lat1.Checked = True Then
form_lat1.MdiParent = Me
form_lat1.Visible = True
form_lat1.Dock = DockStyle.Top
ElseIf Not swt_lat1.Checked = True Then
form_lat1.Dispose()

End If

End Sub

Private Sub rad_tgs2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles swt_lat2.CheckedChanged
If swt_lat2.Checked = True Then
form_lat2.MdiParent = Me
form_lat2.Visible = True
form_lat2.Dock = DockStyle.Top
ElseIf Not swt_lat2.Checked = True Then
form_lat2.Dispose()
End If
End Sub

Private Sub rad_tgs3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles swt_lat3.CheckedChanged
If swt_lat3.Checked = True Then
form_lat3.MdiParent = Me
form_lat3.Visible = True
form_lat3.Dock = DockStyle.Top
ElseIf Not swt_lat3.Checked = True Then
form_lat3.Dispose()

End If
End Sub

”=================== [ close form ]=======================
Private Sub ex_lat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ex_lat.Click
For Each ex In Me.MdiChildren
ex.Close()
Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each ex2 In Me.MdiChildren
ex2.Close()
Next
End Sub

”================== [ docking ] ====================
Private Sub AtasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_atas.Click
strip_menu.Dock = DockStyle.Top

End Sub

Private Sub BawahToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_bawah.Click
strip_menu.Dock = DockStyle.Bottom
End Sub

Private Sub KananToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_kanan.Click
strip_menu.Dock = DockStyle.Right
End Sub

Private Sub dock_kiri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_kiri.Click
strip_menu.Dock = DockStyle.Left
End Sub

Private Sub KananToolStripMenuItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KananToolStripMenuItem.Click
tab_right.Dock = DockStyle.Right
End Sub

Private Sub KiriToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KiriToolStripMenuItem.Click
tab_right.Dock = DockStyle.Left

End Sub

Private Sub CobaForm2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaForm2ToolStripMenuItem.Click
form_lat2.MdiParent = Me
form_lat2.Show()

End Sub
End Class

Hasil debug :lat

Contoh penataan form dengan tile horizontal :

penataan

Sembunyikan menu dengan klik kanan, context menu :

contextbelum

Hasilnya :

contextsudah

Sekian postingan saya. Jika ada kesalahan koding mohon berikan laporan. Terima kasih.

Tugas Pemrograman 3 (Modifikasi Program dan Puzzle Game)

Tugas Bagian 1

Pada postingan kali ini, saya akan menampilkan hasil modifikasi program yang telah dibuat pada tugas pertemuan kedua mata kuliah Pemrograman Visual. Langsung saja saya tampilkan hasilnya :

Jadi dalam program ini diberi tambahan berupa 3 buah tombol. Aturannya, ketika program dijalankan maka semua macam bidang inputan seperti TextBox, ComboBox, dan RadioButton tidak dapat diisi. Ketika kita mengklik tomblo “Isi Data”, barulah dapat diisi. Selanjutnya, jika tombol “Clear” diklik maka keadaannya sepert saat program dijalankan.

Kita menggunakan perulangan for each pada tombol “Isi Data” dan dan “Clear”.

Secara lengkap saya sajikan listingnya di bawah ini :

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘Mendaftarkan kode barang’
cmb_kdbarang.Items.Add(“SPT”)
cmb_kdbarang.Items.Add(“SND”)
cmb_kdbarang.Items.Add(“TOP”)
cmb_kdbarang.Items.Add(“TST”)
cmb_kdbarang.Items.Add(“TAS”)

‘Mengatur kontrol yang disembunyikan
Dim kentrul As Windows.Forms.Control
For Each kentrul In Me.Controls

If kentrul.GetType.Name = “TextBox” Or kentrul.GetType.Name = “ComboBox” Or kentrul.GetType.Name = “RadioButton” Then
kentrul.Enabled = False
tb_clear.Enabled = False
tb_tutup.Enabled = True

End If
Next kentrul

End Sub

Private Sub cmbkode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_kdbarang.SelectedIndexChanged
Dim kdbarang, nmbarang As String
Dim harga As Single
kdbarang = cmb_kdbarang.Text

Select Case kdbarang
Case “SPT”
nmbarang = “Sepatu”
harga = 75000

Case “SND”
nmbarang = “Sandal”
harga = 10000

Case “TST”
nmbarang = “T-Shirt”
harga = 85000

Case “TOP”
nmbarang = “Top”
harga = 14000

Case Else
nmbarang = “-”
harga = 0

End Select

teks_nmbarang.Text = nmbarang
teks_hrgbarang.Text = harga
End Sub

Private Sub txtjumlah_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles teks_jmlbarang.TextChanged
teks_totalhrg.Text = Val(teks_hrgbarang.Text) * Val(teks_jmlbarang.Text)
teks_bayar.Text = Val(teks_totalhrg.Text) – Val(teks_disk.Text)

End Sub

Private Sub radiotunai_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rd_tunai.CheckedChanged
teks_disk.Text = Val(teks_totalhrg.Text) * 10 / 100
teks_bayar.Text = Val(teks_totalhrg.Text) – Val(teks_disk.Text)
End Sub

Private Sub radiokredit_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rd_kredit.CheckedChanged
teks_disk.Text = 0
teks_bayar.Text = Val(teks_totalhrg.Text)
End Sub

Private Sub btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_clear.Click

Dim kentrul As Windows.Forms.Control
teks_bayar.Clear()
teks_hrgbarang.Clear()
teks_jmlbarang.Clear()
teks_nmbarang.Clear()
teks_totalhrg.Clear()
teks_disk.Clear()
Me.rd_tunai.Checked = False
Me.rd_kredit.Checked = False
cmb_kdbarang.Text = ” ”

For Each kentrul In Me.Controls

If kentrul.GetType.Name = “TextBox” Or kentrul.GetType.Name = “ComboBox” Or kentrul.GetType.Name = “RadioButton” Then
kentrul.Enabled = False
tb_clear.Enabled = False
tb_tutup.Enabled = True
tb_isi.Enabled = True

End If
Next kentrul

End Sub

Private Sub btisi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_isi.Click
Dim kentrul As Windows.Forms.Control
For Each kentrul In Me.Controls

If kentrul.GetType.Name = “TextBox” Or kentrul.GetType.Name = “ComboBox” Or kentrul.GetType.Name = “RadioButton” Then
kentrul.Enabled = True
tb_clear.Enabled = True
tb_tutup.Enabled = True
tb_isi.Enabled = False

End If
Next kentrul

End Sub

Private Sub bttutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_tutup.Click
If MsgBox(“Anda yakin akan keluar ?”, vbQuestion + vbYesNo + vbDefaultButton2, “Konfirmasi Pesan Keluar “) = vbYes Then
Me.Close()
End If
End Sub
End Class

Jika tombol “Isi Data” diklik, hasilnya seperti ini :

Keterangan :

  • Listing yang berfungsi untuk menyembunyikan Control seperti TextBox, ComboBox, RadioButton dan 2 button (clear dan tutup) adalah listing berikut :

Dim kentrul As Windows.Forms.Control
For Each kentrul In Me.Controls

If kentrul.GetType.Name = “TextBox” Or kentrul.GetType.Name = “ComboBox” Or kentrul.GetType.Name = “RadioButton” Then
kentrul.Enabled = False
tb_clear.Enabled = False
tb_tutup.Enabled = True

End If
Next kentrul

Penempatan listing ini berada di bawah Form1_Load bla bla bla, karena jalan ketika form didebug.

  • Listing untuk menampilkan bidang isian yang tadinya disembunyikan :

Dim kentrul As Windows.Forms.Control
For Each kentrul In Me.Controls

If kentrul.GetType.Name = “TextBox” Or kentrul.GetType.Name = “ComboBox” Or kentrul.GetType.Name = “RadioButton” Then
kentrul.Enabled = True
tb_clear.Enabled = True
tb_tutup.Enabled = True
tb_isi.Enabled = False

End If
Next kentrul
Di sini jelas terlihat hanya ada pembalikan nilai Boolean untuk tiap kontrol. Penempatannya ada di bawah perintah tombol isi data.

  • Yang terakhir, pada tombol Clear. Listingnya sama dengan listing saat form dijalankan, karena tugasnya untuk menyembunyikan kemabli bidang isian. Namun jangan lupa isian yang terdapat di dalam TextBox, RadioButton, dan ComboBox dihapus / dihilangkan.

Demikian hasil modifikasi dari Program pertemuan kedua.

Tugas Bagian 2

Desain puzzlenya seperti ini :

Lalu sesuaikan Properties setiap object pada form dengan koding di bawah ini :

Public Class tbreset

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

For Each kotak In Me.box1.Controls
If kotak.GetType.Name = “Button” Then
kotak.Enabled = False
tb_acak.Enabled = False
End If
Next

End Sub

Private Sub tb_mulai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_mulai.Click

For Each kotak In Me.box1.Controls
If kotak.GetType.Name = “Button” Then
kotak.Enabled = True
tb_mulai.Enabled = False
tb_acak.Enabled = True
End If

Next

Dim swap As String

swap = bt1.Text
bt1.Text = bt2.Text
bt2.Text = swap

swap = bt2.Text
bt2.Text = bt3.Text
bt3.Text = swap

swap = bt4.Text
bt4.Text = bt5.Text
bt5.Text = swap

swap = bt5.Text
bt5.Text = bt6.Text
bt6.Text = swap

swap = bt6.Text
bt6.Text = bt7.Text
bt7.Text = swap

swap = bt7.Text
bt7.Text = bt8.Text
bt8.Text = swap

swap = btblank.Text
btblank.Text = bt1.Text
bt1.Text = swap

swap = btblank.Text
btblank.Text = bt4.Text
bt4.Text = swap

End Sub

Private Sub tb_keluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_keluar.Click

If MsgBox(“Berhenti mainnya ?”, vbQuestion + vbYesNo + vbDefaultButton2, “Pesan”) = vbYes Then
Me.Close()

End If

End Sub

‘Perintah untuk mengacak button’
Private Sub tb_acak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb_acak.Click
Dim swap As String

swap = bt1.Text
bt1.Text = bt2.Text
bt2.Text = swap

swap = bt2.Text
bt2.Text = bt3.Text
bt3.Text = swap

swap = bt4.Text
bt4.Text = bt5.Text
bt5.Text = swap

swap = bt5.Text
bt5.Text = bt6.Text
bt6.Text = swap

swap = bt6.Text
bt6.Text = bt7.Text
bt7.Text = swap

swap = bt7.Text
bt7.Text = bt8.Text
bt8.Text = swap

swap = btblank.Text
btblank.Text = bt1.Text
bt1.Text = swap

swap = btblank.Text
btblank.Text = bt4.Text
bt4.Text = swap

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Application.Restart()
End Sub

Private Sub bt1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt1.Click
Dim swap1 As String

If bt2.Text = ” ” Then
swap1 = bt2.Text
bt2.Text = bt1.Text
bt1.Text = swap1

ElseIf bt4.Text = ” ” Then
swap1 = bt4.Text
bt4.Text = bt1.Text
bt1.Text = swap1
End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”,vbInformation, “Pesan “)
End If

End Sub

Private Sub bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt2.Click
Dim swap2 As String

If bt1.Text = ” ” Then
swap2 = bt1.Text
bt1.Text = bt2.Text
bt2.Text = swap2

ElseIf bt3.Text = ” ” Then
swap2 = bt3.Text
bt3.Text = bt2.Text
bt2.Text = swap2

ElseIf bt5.Text = ” ” Then
swap2 = bt5.Text
bt5.Text = bt2.Text
bt5.Text = swap2

End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub bt3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt3.Click
Dim swap3 As String

If bt2.Text = ” ” Then
swap3 = bt2.Text
bt2.Text = bt3.Text
bt3.Text = swap3

ElseIf bt6.Text = ” ” Then
swap3 = bt6.Text
bt6.Text = bt3.Text
bt3.Text = swap3

End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub bt4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt4.Click
Dim swap4 As String

If bt1.Text = ” ” Then
swap4 = bt1.Text
bt1.Text = bt4.Text
bt4.Text = swap4

ElseIf bt5.Text = ” ” Then
swap4 = bt5.Text
bt5.Text = bt4.Text
bt4.Text = swap4

ElseIf bt7.Text = ” ” Then
swap4 = bt7.Text
bt7.Text = bt4.Text
bt4.Text = swap4

End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub bt5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt5.Click
Dim swap5 As String

If bt2.Text = ” ” Then
swap5 = bt2.Text
bt2.Text = bt5.Text
bt5.Text = swap5

ElseIf bt4.Text = ” ” Then
swap5 = bt4.Text
bt4.Text = bt5.Text
bt5.Text = swap5

ElseIf bt6.Text = ” ” Then
swap5 = bt6.Text
bt6.Text = bt5.Text
bt5.Text = swap5

ElseIf bt8.Text = ” ” Then
swap5 = bt8.Text
bt8.Text = bt5.Text
bt5.Text = swap5

End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub bt6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt6.Click
Dim swap6 As String

If bt3.Text = ” ” Then
swap6 = bt3.Text
bt3.Text = bt6.Text
bt6.Text = swap6

ElseIf bt5.Text = ” ” Then
swap6 = bt5.Text
bt5.Text = bt6.Text
bt6.Text = swap6

ElseIf btblank.Text = ” ” Then
swap6 = btblank.Text
btblank.Text = bt6.Text
bt6.Text = swap6
End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub bt7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt7.Click
Dim swap7 As String

If bt4.Text = ” ” Then
swap7 = bt4.Text
bt4.Text = bt7.Text
bt7.Text = swap7

ElseIf bt8.Text = ” ” Then
swap7 = bt8.Text
bt8.Text = bt7.Text
bt7.Text = swap7

End If
If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub bt8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt8.Click
Dim swap8 As String

If bt5.Text = ” ” Then
swap8 = bt5.Text
bt5.Text = bt8.Text
bt8.Text = swap8

ElseIf bt7.Text = ” ” Then
swap8 = bt7.Text
bt7.Text = bt8.Text
bt8.Text = swap8

ElseIf btblank.Text = ” ” Then
swap8 = btblank.Text
btblank.Text = bt8.Text
bt8.Text = swap8
End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub

Private Sub btblank_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btblank.Click
Dim swap9 As String

If bt6.Text = ” ” Then
swap9 = bt6.Text
bt6.Text = btblank.Text
btblank.Text = swap9

ElseIf bt8.Text = ” ” Then
swap9 = bt8.Text
bt8.Text = btblank.Text
btblank.Text = swap9

End If

If bt1.Text = “1” And bt2.Text = “2” And bt3.Text = “3” And bt4.Text = “4” And bt5.Text = “5” And bt6.Text = “6” And bt7.Text = “7” And bt8.Text = “8” And btblank.Text = ” ” Then
MsgBox(“Berhasil”, vbInformation, “Pesan “)
End If
End Sub
End Class

Setelah selesai, jalankan program :

1.Ketika program dijalankan

2.Kemudian, acak-acak susunan angkanya dengan menekan tombol acak sampai diacak seruwet mungkin.

3.Lalu,susun angka-angkanya sampai seperti ini :

Catatan :

  • Program ini belum sepenuhnya selesai, bari sekitar 70% tapi karena logika saya mentok dan ternyata banyak yang mirip jadi saya tidak berani copas. Mungkin bisa saya revisi di postingan selanjutnya.Terima kasih ^ ^

Tugas Pemrograman Visual 2

Jawaban untuk praktikum 1 (Form 1 & form 2)

1.a. Ketika program dijalankan akan muncul “Constant tidak bisa ditarget untuk penugasan”.  Kita memanggil alamat sebagai event pada btalamat1 tetapi const alamat sudah dideklarasikan di baris awal sehingga akan dibaca pemesanan yang nilainya tetap (Constant). Dan sebenarnya yang dipanggil adalah pemesanan Const bukan pemesanan ” alamat=”Kuningan” “.

b.Penyebab munculnya nama berbeda karena ada pemesanan pada modul, dengan ruang lingkup variabel Public Static artinya pemesanan variabel ini akan dikenali di seluruh project dengan nama variabel sama baik di form1 dan form2. Btnama1 akan memanggil “Nandang” karena pemesanan lokal dan hanya dikenali oleh btnama1, namun ketika btnama2 diklik akan muncul nama “Nandang Hermanto” karena memanggil pemesanan dengan ruang lingkup “Public” yang tersimpan pada modul.

c.btumur1 tidak menyimpan nilai / value variabel “umur” karena tidak diberikan ruang lingkup variabel “Static” namun “Dim” sehingga ketika dipanggil hanya akan menampilkan nilai 1 saja dan diulang berapa kali pun tetap sama.

Btumur2 mengalami pertambahan nilai / value secara teratur karena diberi pemesanan ruang lingkup variabel “static” artinya tetap. Pertambahan akan sesuai dengan kode yang diberikan, misal :

Static umur as Integer

umur+=1

txtumur.Text = umur

Artinya akan menambahkan nilai 1 pada umur secara teratur.

d.Pada awal kode terdapat “Option Explicit Off” sehingga tidak mengizinkan penggunaan pemesanan variabel tanpa ruang lingkup. Karena untuk melakukan pemanggilan nama, alamat, dan umur semuanya tidak menggunakan ruang lingkup maka pemanggilan akan menggunakan pendekarasian variabel pada Module1 yang semua variabelnya menggunakan pemesanan dengan ruang lingkup variabel “Public” .

Analisis latihan if case :

 

-Ketika kita mencoba menjalankan program dan menginput semua isian maka akan dihitung sesuai dengan masukan kita, semisal kita menggunkan kode barang “SPT” seperti di bawah ini :

 

Namun ketika kita mengubah kode barangnya menjadi “TST” dan tidak mengubah jumlah barangnya maka tidak akan terjadi perubahan perhitungan sesuai harga tiap kode barang, sehingga kita harus berkali-kali menekan Clear untuk mengulang perhitungan.

 

Saya menambahkan tombol “Perbarui” dengan rumus :

Private Sub btperbarui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btperbarui.Click
txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
txtdiskon.Text = Val(txttotal.Text) * 10 / 100

If radiotunai.Checked = True Then
txtbayar.Text = Val(txttotal.Text) – Val(txtdiskon.Text)

ElseIf radiokredit.Checked = True Then
 txtdiskon.Text = 0
txtbayar.Text = Val(txttotal.Text)
End If

Maka hasilnya :

 

  • Kurangnya konfirmasi exit saat keluar. Konfirmasi ini boleh ditambahkan untuk mengantisipasi jika perhitungan belum sempat tercatat dan tidak sengaja ketika kursor berada di tombol “Keluar” tertekan.
  • Pada “radiokredit”. Terdapat penulisan rumus “ txtbayar.Text = Val(txttotal.Text) – Val(txtdiskon.Text)” . Karena pada ketentuannya jika dibayar kredit pasti tidak diberi diskon, maka penghitungan total bayar sama dengan total harga.

<

p> 

Hasil perbaikan keseluruhan :

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 cmbkode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbkode.SelectedIndexChanged
Dim kdbarang, nmbarang As String
Dim harga As Single
kdbarang = cmbkode.Text

Select Case kdbarang
Case “SPT”
nmbarang = “Sepatu”
harga = 200000

Case “SND”
nmbarang = “Sandal”
harga = 100000

Case “TST”
nmbarang = “T-Shirt”
harga = 1500000

Case “TOP”
nmbarang = “Top”
harga = 500000

Case Else
nmbarang = “-“
harga = 0

End Select

txtnama.Text = nmbarang
txtharga.Text = harga
End Sub

Private Sub txtjumlah_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 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)
End Sub

Private Sub btclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btclear.Click
txtbayar.Clear()
txtharga.Clear()
txtjumlah.Clear()
txtnama.Clear()
txttotal.Clear()
txtdiskon.Clear()
Me.radiotunai.Checked = False
Me.radiokredit.Checked = False
cmbkode.Text = ” “
End Sub

Private Sub bttutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttutup.Click
If MsgBox(“Apakah yakin akan keluar ?”, vbQuestion + vbYesNo + vbDefaultButton2, “Konfirmasi”) = vbYes Then
Me.Close()

End If
End Sub

Private Sub btperbarui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btperbarui.Click
txttotal.Text = Val(txtharga.Text) * Val(txtjumlah.Text)
txtdiskon.Text = Val(txttotal.Text) * 10 / 100

If radiotunai.Checked = True Then
txtbayar.Text = Val(txttotal.Text) – Val(txtdiskon.Text)

ElseIf radiokredit.Checked = True Then
txtdiskon.Text = 0
txtbayar.Text = Val(txttotal.Text)
End If

 End Sub
End Class

Sekian analisis saya. Di antara perbaikan yang saya lakukan mungkin masih jauh dari nilai efektif namun paling tidak akan mempermudah penghitungan. Terima kasih.