Sabtu, 16 November 2013

Mengolah Image Pada Visual Basic

Pengantar

Tentunya Anda tidak akan asing dengan image Lenna disamping, dimana image tersebut telah digunakan secara luas sebagai image standar untuk operasi image processing atau pengolahan citra digital.
Menurut beberapa sumber, ternyata Lena wanita yang ada pada image tersebut adalah salah satu model yang ada pada majalah Play Boy. Citra/image tersebut telah dijadikan sebagai standar bagi pemroresan citra dan kompresi citra. Wanita tersebut telah dinobatkan sebagai The First Lady Of The Internet.

Jika Anda menunjukkan Gambar di atas dan bertanya kepada seseorang yang bergerak di bidang pengolahan citra, dia pasti akan tahu bahwa itu adalah “Gambar Lena”, tapi mungkin dia tidak tahu siapa Lena. Lena adalah seorang gadis playmate majalah Playboy tahun 1972.
Pada tahun 70-an, seorang periset dari University of Southern Carolina sedang mengerjakan sebuah algoritma kompresi dan memindai gambar Lena, yang ada di lembaran tengah (centerspread) majalah Playboy. Sejak saat itu Gambar Lena telah menjadi standar industri sebagai bahan untuk menguji algoritma manipulasi dan transmisi citra elektronik. Selama lebih dari 25 tahun sejak Lena diperkenalkan, tidak ada gambar yang lebih penting daripada Lena dalam bidang manipulasi dan komunikasi citra digital. Lena telah dianggap sebagai Ibu Negara Internet.

Mengapa Lena?

Ada banyak gambar lain di dunia ini yang dapat digunakan untuk menguji teknologi kompresi dan teknologi manipulasi citra yang lain, namun Lena dipilih karena dua alasan. Alasan pertama adalah alasan teknis. Gambar Lena memiliki gabungan detail, pencahayaan, dan tekstur yang cocok untuk menguji berbagai algoritma. Jika suatu algoritma diaplikasikan terhadap gambar Lena maka dapat dilihat bagaimana algoritma itu berpengaruh terhadap keseluruhan gambar—misalnya apakah satu bagian menjadi lebih baik atau lebih jelek dari bagian yang lain. Alasan yang kedua sama sekali tidak teknis. Kebanyakan periset citra adalah laki-laki yang cenderung tertarik pada wanita cantik, sehingga gambar Lena lebih dipilih dibanding gambar yang lain.
Tidak semua pihak setuju penggunaan gambar Lena pada publikasi ilmiah. Ketidaksetujuan ini disebabkan karena asal gambar itu, yaitu dari Playboy. Gambar itu diambil dari majalah yang oleh sebagian orang dianggap merendahkan wanita sehingga sebaiknya tidak digunakan. Sebagian yang lain menganggap sebaiknya gambar yang memiliki hak cipta tidak digunakan di publikasi ilmiah.
Majalah Playboy sendiri tadinya hendak menuntut penggunaan Gambar Lena, namun kini hal itu tidak dilakukan lagi. Justru majalah tersebut membantu melacak kembali informasi mengenai gambar Lena, misalnya kamera dan film apa yang digunakan, serta bagaimana pemrosesan gambar dilakukan. Hal ini dilakukan oleh majalah Playboy karena menganggap Lena sebagai suatu fenomena yang patut dieksploitasi—demi keuntungan mereka tentunya.
Menampilkan Citra Pada Visual Basic

 Untuk menampilkan citra pada visual basic, kita dapat menggunakan komponen PictureBox. Dengan PictureBox, sebuah citra dapat di analisa komposisi warna pembentuk citra tersebut. Komponen warna yang dimaksud adalah RGB (Red, Green, Blue) yang merupakan warna primer pada sebuah citra. Sementara warna-warna lain adalah turunan kombinasi dari dua atau tiga warna tersebut.


Pada contoh code tersebut kita juga menggunakan komponen CommonDialog. Komponen ini berfungsi untuk menampilkan interface membuka sebuah file citra layaknya pada sebuah program aplikasi windows umumnya.
Code untuk membuka sebua citra kedalam sebuah PictureBox adalah:
CD.ShowOpen
Me.Caption = CD.FileName
Picture1.Picture = LoadPicture(CD.FileName)

Setelah sebuah citra dapat ditampilkan pada PictureBox, citra dapat digunakan untuk pemroresan citra selanjutnya.
Demikian, semoga bermanfaat.

Mengendalikan Motor Stepper Dengan Visual Basic


Motor Stepper adalah salah satu jenis motor DC yang sangat populer khususnya dibidang robotika. Walaupun motor stepper saat ini sudah tergeser popularitasnya dengan motor jenis lain, namun motor stepper memiliki keunggulan tersendiri yang tidak bisa digantikan oleh yang lain.
Motor stepper memiliki desain konstruksi yang khas, yaitu terdiri dari beberapa kumpatan yang terpisah ataupun disatukan. Untuk lebih jelasnya, silakan membaca pada How Stepper Motors Work.
Pada kesempatan ini, kita akan mencoba membuat interface motor stepper dengan menggunakan VB 6.0 melalui Port Parallel. Karena untuk mengendalikan motor stepper, dibutuhkan data parallel, maka kita gunakan port parallel untuk mempermudah. Tidak menutup kemungkinan interfacing dilakukan dengan menggunakan port serial dengan menambah komponen tambahan.
Untuk dapat menggerakan motor stepper, kita memerlukan sebuah hardware yang berfungsi untuk mengubah sinyal dari port parallel menjadi sinyal tegangan yang dapat menggerakan motor stepper. Anda harus membuat sebuah rangkaian driver yang dapat dibuat secara sederhana menggunakan transistor sebagai switching.
contoh driver sederhana adalah sebagai berikut:

(Sumber: http://www.ilmu.8k.com/pengetahuan/stepper.htm)
Interfacing VB 6
Untuk dapat mengirimkan data sinyal ke port parallel, kita akan memanfaatkan file dynamic link library (DLL) diantaranya adalah inpout32.dll, WinMM.dll, Kernel32.dll. Untuk yang pertama sudah ada pada file code yang dapat didownload pada bagian bawah dari artikel ini. Sementara file ke-2 dan ke-3, sudah ada pada file system windows. file ini adalah file library yang dapat kita manfaatkan untuk membuat aplikasi interface dengan motor stepper.
dalam VB untuk mendeklarikan file DLL di atas agar dapat digunakan adalah sebagai berikut:
Private Declare Sub Sleep Lib “Kernel32.dll” (ByVal dwMilliseconds As Long)
Private Declare Function timeGetTime Lib “WinMM.dll” () As Long
Public Declare Function Inp Lib “inpout32.dll” Alias “Inp32″ (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib “inpout32.dll” Alias “Out32″ (ByVal PortAddress As Integer, ByVal Value As Integer)
sedangkan untuk mengirim data ke port serial kita gunakan syntax berikut:
Out 888, 1
dimana data yang dikirim adalah 1 ke port 888 yang merupakan alias dari port parallel.
Untuk menggerakan motor stepper dengan aliran sinyal seperti berikut

(sumber: http://tutorial-elektronika.blogspot.com/2009/02/bagaimana-cara-menggerakkan-motor.html)
maka kita kirimkan sinyal dengan VB:
  1. Out 888, 8
  2. Out 888, 4
  3. Out 888, 2
  4. Out 888, 1
  5. Out 888, 8
  6. Out 888, 4
  7. Out 888, 2
  8. Out 888, 1
Program berikut dapat digunakan untuk mencoba beberapa variasi gerakan dari motor stepper.

  1. Delay: adalah jeda waktu pengiriman sinyal antara sinyal satu dan sinyal berikutnya
  2. Looping: lama pengulangan dalam mengirim sinyal
  3. Tipe: [Wave Drive, One-Phase; Hi-Torque, Two-Phase; Half-Step]
  4. Button “Tes 1 Loop”: untuk memberikan satu kali looping, memberikan satu step
  5. Button “Tes”: mengirimkan sinyal secara kontinyu
  6. Button “Close”: keluar dari program
Untuk mempelajari code pada VB, silakan buka pada file yang telah dilampirkan di bawah ini.
Sekian, semoga bermanfaat.
Code Motor Stepper VB 6.0
Referensi Motor Stepper:
Wikipedia: Stepper Motor
Bagaimana Menggerakkan Motor Stepper
How Stepper Motors Work

Modem Wavecom Dengan Visual Basic


Pada kesempatan kali ini kita akan mencoba membuat sebuah program sederhana untuk melakukan komunikasi antara Visual Basic 6.0 dengan modem GSM Wavecom. Modem Wavecom dapat diatur dengan dua mode, yaitu mode teks dan mode PDU. Untuk kesempatan kali ini kita akan menggunakan mode teks yang lebih mudah dimengerti dan mudah interfacing dengan VB 6.0.
Modem Wavecom
Modem ini memiliki banyak command yang diawali dengan AT, diantaranya dapat digolongkan menjadi:

  1. General Command
  2. Call Control Command
  3. Network Service Command
  4. Security Command
  5. Phonebook Command
  6. Short Message Command
  7. Supplementary Services command
  8. Data Command
  9. Fax Command
  10. V24-V25 Command
  11. Spesific AT Command, dan
  12. Other Command
Untuk lebih detail tentang fungsi dan syntax AT Command masing-masing command di atas, Anda dapat merujuk pada datasheet yang ada di bawah.
Kali ini kita akan mencoba menggunakan beberapa AT Command dengan menggunakan interface VB 6.0. Pada dasarnya, interfacing serial dengan modem GSM Wavecom bisa dilakukan dengan tool lain, misalnya Hyperterminal, mikrokontroller ataupun, bahasa pemrograman yang lain, diantaranya Delphi, Visual C, Matlab.
Diantara beberapa fungsi AT command yang dapat digunakan antara lain:
  • Manucfacturer identification +CGMI
  • Request model identification +CGMM
  • Request revision identification +CGMR
  • Product Serial Number +CGSN
Visual Basic 6.0
Dengan menggunakan bahasa pemrograman yang telah familiar dan banyak referensi, maka VB 6 adalah bahasa yang tentunya juga mudah untuk digunakan dalam contoh saat ini. Untuk membuat interface dengan Modem GSM Wavecom, ikuti langkah-langkah berikut:B
Buat desain pada VB 6 seperti tampilan berikut

untuk membuat desain diatas, komponen yang dipakai dan setting propertiesnya adalah:
- Command1
  • Caption = Send Command
- Command2
  • Caption = &Exit
-Text1
  • Text = “”
- Text2
  • Text = AT+CGMR
- Serial (MSComm)
  • Setting = 115200,n,8,1
  • CommPort = 2 (sesuaikan)
- Timer1
  • Interval = 100
  • Enabled = True
- Label1
  • Caption = Testing GSM Modem dengan AT Command
Selanjutnya isikan code pada masing-masing bagian seperti berikut
Private Sub Command1_Click()
Serial.Output = Text2.Text + vbCrLf
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Exit_Click()
Unload Me
End Sub
Private Sub Form_Load()
If Serial.PortOpen = True Then
Serial.PortOpen = False
Serial.PortOpen = True
ElseIf Serial.PortOpen = False Then
Serial.PortOpen = True
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Serial.PortOpen = True Then
Serial.PortOpen = False
End If
End Sub
Private Sub Timer1_Timer()
Text1.Text = Text1.Text & Serial.Input
End Sub
Sekian, mudah-mudahan bermanfaat.
Code Tes Modem VB 6.0
wavecom_command

Absensi Karyawan Dengan Visual Basic



Berikut adalah Screen Shot dari Program Absensi Karyawan dengan Visual Basic 6.0 dan Barcode:
1. Tampilan Awal Menu Utama

- Menampilkan logo identitas instansi yang menggunakan program aplikasi
2. Tampilan Form Absensi dengan barcode

- Menampilkan data absensi karyawan dengan lengkap barupa jam masuk, nama, tanggal, jabatan, dan status absensi.
- Kartu pengenal yang dilengkapi dengan kode barcode dari ID discanning menggunakan barcode reader
- Secara otomatis, data dari karyawan akan tampil
3. Tampilan Database Karyawan

- Database karyawan yang menampilkan data detail karyawan
4. Tampilan Untuk Edit Data Karyawan

- Menu untuk menghapus ataupun mengedit data karyawan
5. Tampilan Manage User

- Menu untuk mengganti password Admin dan user
6. Tampilan Rekap Absensi Harian

- Form untuk membuat print out Rekap absensi harian
- Data dipilih dengan memasukkan data tangal awal dan tanggal akhir
7. Tampilan Hasil Rekap Absensi Harian

- Hasil print out rekapitulasi absensi harian semua karyawan yang masuk pada hari yang dikehendaki
8. Tampilan Rekap Absensi Bulanan

- Form untuk membuat print out Rekap absensi bulanan
- Data dipilih dengan memasukkan data bulan awal dan bulan akhir
9. Tampilan Hasil Rekap Absensi Bulanan

- Hasil print out rekapitulasi absensi dalam format bulan
10. Tampilan Laporan Absensi Harian Individual

- Form untuk membuat print out Rekap absensi harian individual
- Data dipilih dengan memasukkan data ID karyawan, tanggal awal dan tanggal akhir
11. Tampilan Hasil Rekap Absensi Harian Individual

- Hasil rekap Absensi individual karyawan dalam form harian
12. Tampilan Rekap Absensi Bulanan Individual

- Form untuk membuat print out Rekap absensi bulanan individual
- Data dipilih dengan memasukkan data ID karyawan, bulan awal dan bulan akhir
13. Tampilan Hasil Rekap Absensi Bulanan Tiap Karyawan

- Hasil rekap Absensi individual karyawan dalam form bulan
14. Tampilan Tentang Software

- Tampilan dukungan support program aplikasi
Demikian, semoga bermanfaat.
Demo Program
Source Code

NB:
untuk menggunakan software di atas, pada PC/Laptop harus ada port serial dengan konfigurasi Port Number 6, 9600,n,8,1.
Jika ada barcode reader serial, lebih diutamakan.