Thursday, April 14, 2011

Kamus Inggris - Menambahkan Database - Bagian ke-7

Kamus Inggris - Menambahkan Database merupakan kelanjutan dari bagian ke-6.
Database kamus ini, kosakatanya berjumlah 23623 (dua puluh tiga ribu lebih). dalam format text sehingga bisa dengan mudah diakses dan ditambah kosakatanya. Database kamus ini diambil dari gKamus (Kamus Bahasa Inggris Indonesia Open Source). Beberapa modul/kode pada
bagian ke-7 ini diambil dari Putra VB (disitus miliknya Anda dapat belajar VB6 dan VB.Net). Untuk kedua Author situs tersebut saya ucapkan terima kasih. Selanjutnya ...

Pada bagian ke-8 kita akan menambahkan databasenya, dengan demikian project ini sudah bisa kita gunakan, dengan fitur bug disana-sini, sederhana, dan tampilan yang kurang enak dipandang (tentu saja, setidaknya untuk sementara), bagaimana mengenai kecepatan pencariannya? saya kira tidak perlu diragukan.

Tujuan pada bagian ke-
Menambahkan database, sehingga kamus ini sudah bisa kita gunakan.

Langkah-langkah
  • Download terlebih dahulu databasenya [Download Database]
  • Satukan file database (en-id.txt) ke dalam folder database
  • Buatlah module baru dan berinama modData
  • Tambahkan 1 TextBox (Text3) dan 1 ListBox (List2)
  • Tambahkan beberapa kode di bawah ini:
Kode-kode
'tambahkan kode di bawah ke dalam form frmMain 
Private Sub Form_Load()
BukaData App.Path & "\database\en-id.txt", List2
End Sub

Private Sub
List1_Click()
Text3.Text = List1.Text
End Sub

Private Sub
List2_Click()
If List2.ListIndex <> -1 Then
Text2.Text = Replace(DataEn(List2.ListIndex), vbTab, " = ")
End If
End Sub

Private Sub
Text1_DblClick()
Text3.Text = Trim(Text1.SelText)
End Sub

Private Sub
Text3_Change()
Dim i As Integer
If
Text3.Text = "" Then
List2.ListIndex = -1
Text2.Text = ""
Exit Sub
End If
i =
List2.ListIndex
If List2.Text = "" Then List2.ListIndex = i
Dim
retValue As Long
retValue = SendMessage(List2.hWnd, LB_FINDSTRING, -1, ByVal Text3.Text)
If retValue > -1 Then
List2.TopIndex = retValue
Else
List2.TopIndex = i
End If
List2.ListIndex = List2.TopIndex
End Sub

Kode di bawah ini masukan ke dalam module modData
Option Explicit 

Public Declare Function
SendMessage Lib "user32" Alias "SendMessageA" ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const
LB_ADDSTRING = &H180
Public Const LB_FINDSTRING = &H18F
Public Const LB_FINDSTRINGEXACT = &H1A2

Public
DataEn() As String
Public
LokasiData As String

Sub
BukaData(FileName As String, lst As ListBox)
Dim Temp As String
Dim i As Long
lst.Parent.Visible = False
Open
FileName For Binary As #1
Temp = Space$(LOF(1))
Get #1, , Temp
Close #1

Temp = Replace(Temp, vbCrLf & "" & vbCrLf, vbCrLf)
DataEn = Split(Temp, vbCrLf)

lst.Clear

For i =
0 To UBound(DataEn) - 1
SendMessage lst.hWnd, LB_ADDSTRING, 0, ByVal CStr(Split(DataEn(i), vbTab)(0))
Next
lst.ListIndex = 0
lst.Parent.Visible = True
End Sub

Uji Coba
  • Compile terlebih dahulu projectnya
  • Jalankan melalui Windows Explorer
  • Ketikan kosakata inggris pada TextBox pencarian (Text3), Anda lihat sekarang kamus ini dapat mencari kosakata dengan sangat cepatnya
Catatan
Pada bagian download terdapat file .exe, sebagai perbandingan saja.
Sampai disini apakah ada pertanyaan? sepertinya tidak ada, maka kita lanjutkan pada bagian ke-8
READ MORE - Kamus Inggris - Menambahkan Database - Bagian ke-7

Kamus Inggris - Splash Screen, Apakah Kegunaannya - Bagian 8

Kamus Inggris - Splash Screen, Apakah Kegunaannya merupakan kelanjutan dari bagian ke-7.
Dengan ditambahkannya database, maka pada saat dijalankan aplikasi akan memiliki jeda (Time Lag). Hal ini disebabkan aplikasi tersebut harus me-load terlebih dahulu kosakatanya, disinilah kita akan membutuhkan apa yang biasa disebut dalam pemrograman dengan Splash Screen/Form. Splash screen berguna untuk memberitahukan user bahwa aplikasi yang kita buat baik-baik saja, bukan hang. Selain itu splash screen bisa dianggap sebagai ciri khas dari aplikasi yang Anda buat, mengenai hal ini kreatifitas Anda sangat diperlukan.

Tujuan pada Bagian ke-8
Cara menampilkan splash screen dengan benar

Langkah-langkah
  • Klik menu project >> Add Form
  • Pilih Splash Screen, selanjutnya klik OK
  • Tambahkan (ganti) kode yang terdapat dalam modMain, tepat kode yang berada pada method Sub Main()
Kode-kode
Pada bagian modMain seperti yang telah disebutkan pada bagian ke-4 gantilah kode di bawah ini:
Sub Main()   
InitCommonControls
frmMain.Show
End Sub
sehingga menjadi:
Sub Main()   
InitCommonControls 'XP Style inisialisasi
frmSplash.Show 'tampilkan splash form terlebih dahulu
frmSplash.Refresh 'refresh agar tampilannya benar
Load frmMain 'load seluruh kode dalam tampilan utama
frmMain.Show 'tampilkan form utama
Unload frmSplash 'tutup splash form
End Sub
Uji Coba
  • Compile terlebih dahulu
  • Jalankan melalui Windows Explorer
  • Sekarang aplikasi akan menampilkan splash screen terlebih dahulu
READ MORE - Kamus Inggris - Splash Screen, Apakah Kegunaannya - Bagian 8

Kamus Inggris - Advance Form Center - Bagian ke-9

Kamus Inggris - Advance Form Center merupakan kelanjutan dari bagian ke-8.
Pada bagian ke-9 ini kita akan menambahkan modul form center dan module registry. Module form center berguna untuk menyimpan form di tengah layar, dalam hal ini kita akan menggunakan advance form center. Diberi kata advance, karena ia memiliki beberapa keistimewaan, yaitu:
  • Menampilkan form di tengah layar hanya untuk pertama kali saja,
  • Pada kali kedua ditampilkan dan seterusnya, posisi form akan diambil dari nilai yang terdapat pada registry
  • Tidak terpengaruh oleh tingginya taskbar, sehingga ia akan berada benar-benar di tengah layar.
Module registry selain digunakan untuk module form center, ia akan digunakan juga dalam setting-setting, opsi, dan konfigurasi aplikasi ini.

Tujuan pada Bagian ke-9
  • Menambahkan modul form center agar aplikasi ditampilkan tepat di tengah layar.
  • Menambahkan modul registry untuk keperluan setting/konfigurasi, dan opsi.
Langkah-langkah
  • Buatlah modul baru dan beri nama modForm, copy dan pastekan kode ini.
  • Buatlah modul baru dan beri nama modRegistry, copy dan pastekan kode ini.
Kode-kode
Gantilah kode di bawah ini (terdapat pada frmMain):
Private Sub Form_Load()  
BukaData App.Path & "\database\en-id.txt", List2
End Sub
Sehingga menjadi:
Private Sub Form_Load() 
GetPositionsFromRegistry Me 'ini untuk posisi form yang diambil dari registry
BukaData App.Path & "\database\en-id.txt", List2
End Sub
Tambahkan kode di bawah ini pada frmMain:
Private Sub Form_Unload(Cancel As Integer) 
SavePositionsInRegistry Me ' menyimpan posisi ke dalam registry
End Sub
Uji Coba
  • Compile terlebih dahulul projectnya, Jalankan melalui Windows Explorer. Pada saat pertama kali dijalankan aplikasi akan berada tepat di tengah layar. Selanjutnya geser (drag) aplikasi kamus dan tutuplah, buka kembali, maka sekarang ia akan tampil seperti pada posisi terakhir kali ia ditutup.
Sampai disini mungkin tidak ada pertanyaan, baiklah terima kasih. Kita lanjutkan pada bagian yang ke-10.
READ MORE - Kamus Inggris - Advance Form Center - Bagian ke-9

Tuesday, March 22, 2011

Kamus Inggris - Tutorial Cara Membuatnya

Agaknya prosedur-prosedur fungsi yang saya kumpulkan sudah lumayan walaupun tidak bisa disebut banyak, daripada prosedur-prosedur tersebut kurang bermanfaat dan menganggur, lebih baik kita gunakan untuk merakit software-software kecil. Lalu darimana kita memulainya...

Beberapa hal...
Prosedur-prosesedur fungsi yang telah saya tuliskan sebagian kecil berasal dari copy paste (tanpa modifikasi), sebagian kecil ide/dibuat sendiri, dan sebagian besar merupakan hasil copy yang selanjutnya dimodikasi kemudian dijalankan, untuk memastikan apakah ia bisa berjalan dengan baik. Prosedur-prosedur yang telah dimodifiksi tersebut diusahakan agar tidak memiliki dependency (ketergantungan) secara langsung terhadap objek maupun variable-variable yang bersifat publik, tujuan utamanya adalah agar memiliki sifat mudah digunakan kembali, mudah dicopypastekan, mudah di-encapsulate dalam bentuk dll atau ocx. Disamping itu ia akan menjadi prosedur dari pemrograman modular yang baik (jika tidak dijadikan dll atau ocx). Dengan demikian, kita dapat memisahkan bagian demi bagian dengan mudah, dan terhindar dari kerumitan kode karena melihatnya secara keseluruhan.

Untuk siapa tutorial ini?
Pemula, untuk pemula saja, karena saya pun seorang pemula. Jadi, jika seorang pemula bingung melihat kode, kemungkinan saya pun sama, jadi kita sama-sama belajar.

Selanjutnya...
Untuk membuat software-software kecil, ada beberepa tools yang harus kita kumpulkan dan miliki. Beberapa tools tersebut diantaranya memang harus dimiliki seperti InnoSetup (tools installer) dan sebagainya, dan sebagian lagi optional, hanya sebagai pelengkap untuk memudahkan dan mempercepat pekerjaan seperti MZ-Tools dan sebagainya (banyak). kita bahas saja sambil berjalan.

Software kecil apa yang akan kita buat?
Kamus Inggris Indonesia sederhana, karena yang tidak sederhana sudah banyak bertebaran di internet, walaupun sederhana, tetapi saya akan membagikannya menjadi beberapa puluh bagian (part).

Darimana databasenya?
Kebetulan saya memiliki beberapa database kamus inggris berasal dari software-software open source salah satunya dari gkamus, Kambing (bukan hewan) singkatan dari Kamus Bahasa Indonesia Inggris, dan lain sebagainya, terdiri dari puluhan ribu kosakata. Jika Anda ingin memilikinya, silakan kunjungi situsnya.
READ MORE - Kamus Inggris - Tutorial Cara Membuatnya