Langsung ke konten utama

Contoh Pemprograman List, Animasi, dan Suara dengan Visual Basic - VB6

Sebenarnya saya agak malu nge-posting ini, karena low quality (✗_✗) banget. Tapi karena saya melihat ada beberapa teman yang kesulitan dalam mengerjakan tugas pemprograman Visual Basic (VB6) yang seperti ini, maka saya tebel-tebelin muka untuk posting disini sebagai contoh, siapa tahu bisa berguna.

Tampilan Program

Pemilihan objek dengan menggunakan list
Pemilihan objek dengan meng-klik gambar binatang


Latar Belakang Pembuatan

Aplikasi ini dibuat sebagai pelaksaan dari tugas yang diberikan pada matakuliah Bahasa Pemprograman Visual 1 (Visual Basic 6) yang diajar oleh Bapak H. M. Amrin Lubis, Ir, M.Sc untuk mendemonstrasikan penggunaan List, Animasi dan Suara. Untuk lebih jelasnya, berikut ini adalah pernyataan tugas tersebut:
    Wajib:
  1. Buat sebuah daftar nama-nama hewan dalam list atau combo minimal 10 nama hewan.
  2. Ketik di-click salah satu nama hewan tersebut maka tampil gambarnya.
    Misal: di-klik kelinci tampil nama kelinci dan bahasa inggrisnya.
  3. Anjuran:
  4. Keluarkan voice dari nama hewan tersebut
  5. Buat animasi"

Download

Kode sumber berbahasa Visual Basic dan file exe-nya yang sudah ter-7zip, binatangus_20120402.7z (656,03 KB) bisa di-ambil di: http://www.mediafire.com/?81t9feu2oju18bq

Mohon di PERHATIKAN!!!

Karena direktori kerja IDE VB6 secara default-nya adalah "C:\Program Files\Microsoft Visual Studio\VB98", sedangkan VB tidak mengganti direktori kerja sesuai project yang dibuka, akibatnya, jika menggunakan Open Project-nya IDE Visual Basic, pada saat me-Run dari IDE programnya tidak dapat menemukan file-file eksternal(gambar dan suara) yang dibutuhkannya.
Cara yang lebih baik adalah dengan membuka file project 'Binatangus.vbp' dari Windows Explorer.

Penjelasan Program

Semua gambar yang ditampilkan form berformat gif, kecuali gambar background yang berformat jpg.
Gif dipilih karena fitur transparansi gambar-nya. Meskipun selain transparansi, format png juga mendukung warna yang lebih kaya, format ini tidak dapat saya pilih karena tidak dapat ditampilkan oleh komponen Image.

Animasi Sun (Matahari) dilakukan dengan menggunakan kumpulan file gif yang ditampilkan bergantian pada komponen Image yang menjadi display-nya. Gambar-gambar ini di-load ke memory terlebih dahulu pada saat form di load kedalam array bertipe IPictureDisp sebagai penampung, sehingga animasinya dapat berjalan lebih mulus karena tidak lagi perlu mengakses hardisk pada saat animasi dijalankan. Pergantian gambar dilakukan setiap interval tertentu sesuai yang didefinisikan pada komponen Timer pengendalinya.
Teknik ini digunakan untuk menghindari penggunaan komponen pihak ketiga dan juga untuk menghindari penggunaan fungsi low level dari WinAPI (GDI) dalam menampilkan animasi gif yang membutuhkan prosedur yang agak rumit.
Meskipun sederhana, tetapi entah mengapa sepertinya di internet tidak ada yang menggunakan teknik seperti yang saya gunakan disini... Yah mungkin karena terlalu sederhana dan amatiran jadi ga ada yang make teknik ini :p

Animasi cloud (Awan) dilakukan dengan sederhana. Hanya menggeser Image ke kanan dan kekiri sesuai interval Timer pengendalinya.

Kode yang digunakan dalam memainkan file suara didapat dari internet (alamat sumbernya tidak tercatat). Pada kode tersebut terdapat pendefinisian beberapa konstanta, yang meskipun ada yang tidak digunakan tetapi tidak saya hapus karena sepertinya akan bermanfaat sebagai bahan referensi dikemudian hari.

Pada saat dijalankan, animasinya terkadang (sering sih) tampak berkedip, hal ini dikarenakan repaint form tidak terjadi langsung setelah pergerakan/ pergantian gambar. Hingga saat ini, solusinya masih belum saya temukan :p

Aplikasi dan lainnya yang digunakan dalam pengerjaan:


Nama Penggunaan
Audacity Konversi *.mpeg → *.wav
DownloadHelper Add-On Firefox untuk men-download suara dari Google Translate
Gimp Konversi *.png → *.jpg dan *.png → *.gif. Pembuatan icon (*.ico)
Google Translate Sumber file suara bahasa inggris (*.mpeg)
Inkscape Konversi *.svg → *.png. Pembuatan gambar latar, matahari (sun), awan
Mozilla Firefox Web browser untuk mengakses Google Translate
OpenClipart Koleksi sumber gambar (binatang) (*.svg)


Membuat yang seperti program ini

Beberapa sumber masalah yang mungkin terjadi

Menggunakan path absolute

Saat me-load file eksternal (gambar, suara) sebaiknya jangan menggunakan path absolute (misal: "c:\Yayang\kuliah\tugas\animasi\gajah.gif")
Jika program didisribusikan tanpa menggunakan installer, yang mungkin terjadi adalah saat program dijalankan di komputer lain, lokasi program tersebut kemungkinan besar (sangat besar) berbeda dengan lokasi eksekusi program saat kita menjalankannya sendiri komputer kita, akibatnya program tersebut tidak dapat menemukan file yang dibutuhkannya .
Lebih baik menggunakan path relative (misal: ".\animasi\gajah.gif")
Jika ternyata tidak bisa, misalnya saat menggunakan komponen WebBrowser yang cuma mau ngebuka file berdasarkan path absolute, maka bisa digunakan fungsi CurDir untuk membangun path tersebut (misal: CurDir & "\animasi\gajah.gif")

Memainkan suara dengan secara synchronized

Biasanya untuk memainkan file wav yang termudah adalah dengan menggunakan fungsi PlaySoundA dari winmm.dll. 
Private Declare Function PlaySoundA Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Hanya saja sebagian besar contoh yang saya lihat di internet saat menggunakannya menggunakan bentuk:
PlaySoundA <path ke file suara>, 0, &H20000 Or &H0

Banyak yang tidak mengetahui bahwa &H0 di atas berarti memainkan suara secara tersingkronisasi alias laju program akan dihentikan dan menunggu hingga suara selesai dimainkan.
Akibatnya animasi akan terhenti ಠ_ರೃ....
Untuk memainkan suara secara unsynchronized, ganti angka tersebut dengan &H1,
maka kodenya menjadi:
PlaySoundA <path ke file suara>, 0, &H20000 Or &H1

Komentar

  1. gan saya coba download kok tipe filenya bukan zip...????ada yang rar g gan!!bntu please...

    BalasHapus
    Balasan
    1. Seingat saya Winrar bisa buka file 7z koq.
      Tapi klo masih ga bisa juga, coba buka pake 7zip, bisa di-download di http://www.7-zip.org/download.html

      Hapus

Posting Komentar

Postingan populer dari blog ini

Lirik lagu Keong Racun beserta terjemahannya inggris-nya (english translation)

Baca-baca komentar orang-orang bule tentang video Keong Racun-nya Sinta dan Jojo yang sempat jadi TT (Trending Topic) di Twitter selama beberapa hari kemarin, jadi pengen ketawa-ketawa sendiri (tapi ga jadi takut disangka gila). Ternyata rata-rata mereka ga ngerti apa istimewanya tu video. Menurut saya salah satu yang membuat video-nya menarik ya lagunya (disamping lipsinger-nya tentunya, terutama "Sinta", chow cwiiiit). Supaya lagunya lebih mudah dimengerti dan karena lagi kurang kerjaan ya saya buatlah terjemahan lagunya ke bahasa inggris dengan bahasa inggris versi saya (maksudnya versi pas-pasan cenderung kurang). Meskipun belom bener 100%, tapi yah lumayanlah dari pada ga ada. Keong Racun Penyanyi asli: Lissa Pencipta lagu: Abuy (Buy Akur) :Reff: Dasar kau keong racun Baru kenal eh ngajak tidur Ngomong nggak sopan santun Kau anggap aku ayam kampung Kau rayu diriku Kau goda diriku Kau colek diriku Hei ku takut sekali tanpa basa basi kamu ngajak happy

Memasang Android 4.4 KitKat di Samsung Galaxy W (Wonder) GT-I8150

Membuat backup Singkronisasikan handphone (contact, dll) Saya membuat backup SMS dengan SMS To Text, dan riwayat panggilan dengan Call Logs Backup and Restore Download Download Android SDK Tools Windows: http://dl.google.com/android/installer_r22.3-windows.exe Linux: http://dl.google.com/android/android-sdk_r22.3-linux.tgz Android SDK Tools juga terdapat dalam pake Android SDK Windows 32 bit: http://dl.google.com/android/adt/adt-bundle-windows-x86-20131030.zip Linux 32 bit: http://dl.google.com/android/adt/adt-bundle-linux-x86-20131030.zip Download ClockworkMod (CWM) Recovery Versi minimal untuk memasang CM 11 adalah versi 6.0.4.4. Jika menggunakan versi yang dibawah/sebelum itu, akan muncul pesan kesalahan "set_metadata_recursive: some changes failed" pada saat memasang CM nantinya. Download versi versi 6.0.4.5 di http://goo.im/devs/arco/ancora/cwm/recovery-clockwork-6.0.4.5-ancora.zip Download CyanogenMod (CM) 11 http://goo.im/devs/arco/ancor