Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Monday, December 10, 2012

VB6 Code - Memahami KeyWord ByVal dan ByRef

Di bawah ini merupakan contoh kode sehingga kita bisa memahami KeyWord ByVal dan ByRef. Untuk keperluan ini copy dan pastekan kode di bawah ini:

Option Explicit

Private Sub Form_Load()
Dim iNumber As Integer
iNumber = 1
MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(ByVal Pesan As String) As String
TampilkanPesan = Pesan
End Function
Coba bedakan dengan yang ini
Fungsinya akan menampilkan error yakni argumen yang tidak sama (cocok/mismatch)
Private Sub Form_Load()
Dim iNumber As Integer
iNumber = 1
MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(Pesan As String) As String
TampilkanPesan = Pesan
End Function
Untuk mengatasi error di atas maka cocokan saja argumennya yakni
dengan mengubah variable iNumber yang asalnya integer menjadi String
Private Sub Form_Load()
Dim iNumber As String
iNumber = 1
'sekarang tidak akan terjadi error karena type datanya sama yakni string
MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(Pesan As String) As String
TampilkanPesan = Pesan
End Function
Atau Anda beri statement ByVal pada argumen fungsinya
Private Sub Form_Load()
'Dim iNumber As String
iNumber = 1
'sekarang tidak akan terjadi error karena type datanya sama yakni string
MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(ByVal Pesan As String) As String
TampilkanPesan = Pesan
End Function
Maka kesimpulannya:
  • Secara default Visual Basic 6.0 telah menyertakan ByRef pada argumen walaupun kita tidak menuliskannya, terkecuali secara explicit kita menuliskan ByVal pada argumen tersebut.
  • Penggunaan ByVal akan memaksa sebuah argumen untuk dijadikan data type tertentu sebagai contoh:
  • ByVal Pesan As String maka pesan akan dipaksa untuk memiliki data type string.
  • Penggunaan KeyWord ByVal menjadikan sebuah argumen tidak lagi memiliki hubungan dengan variable yang melewatinya. Sebagai contoh:
    Dim i as integer
i = 1
Msgbox TampilkanPesan(i)
Msgbox i 'maka i disini, tetap saja memiliki nilai satu.

Function TampilkanPesan(ByVal Pesan As String) As String
Pesan = 2
TampilkanPesan = Pesan
End Function
READ MORE - VB6 Code - Memahami KeyWord ByVal dan ByRef

VB6 Code - Memahami ParamArray Pada Sebuah Argumen

Untuk Memahami ParamArray dalam Visual Basic 6.0, Coba copy dan pastekan kode di bawah ini:
Option Explicit

Private Sub Form_Load()
MsgBox TampilkanPesan("Pesan 1", "Pesan 2", "Pesan 3", "Pesan dst")
End Sub

Function TampilkanPesan(ParamArray Pesan() As Variant)
TampilkanPesan = Pesan(1) & " dan " & Pesan(2) & " dan " & Pesan(3)
End Function
Bagaimana? Sukses! Selanjutnya hilangkan ParamArray, sehingga kodenya menjadi:
Option Explicit

Private Sub Form_Load()
MsgBox TampilkanPesan("Pesan 1", "Pesan 2", "Pesan 3", "Pesan dst")
End Sub

Function TampilkanPesan(Pesan() As Variant)
TampilkanPesan = Pesan(1) & " dan " & Pesan(2) & " dan " & Pesan(3)
End Function
Bagaimana? Error!

Maka kesimpulannya:
Dengan menggunakan ParamArray maka argumen dari sebuah fungsi dapat menampung beberapa/banyak data atau katakanlah berubah menjadi array. Tetapi harus diingat aturan dari ParamArray ini, yaitu:

  1. Harus berType Data Variant.
  2. Jika Argumen lebih dari satu, maka ParamArray wajib ditempatkan di akhir.
  3. Hanya satu ParamArray yang diperbolehkan dalam sebuah fungsi.

Nah, sekarang Anda telah memahami ParamArray dalam Visual Basic 6.0.
READ MORE - VB6 Code - Memahami ParamArray Pada Sebuah Argumen

VB6 - Memahami KeyWord Optional Pada Sebuah Argumen

Untuk memahami Optional pada sebuah argumen, copy dan pastekan kode berikut:
Option Explicit

Private Sub Form_Load()
MsgBox TampilkanPesan("Pesan pertama")
End Sub

Private Function TampilkanPesan(PesanPertama As String, PesanKedua As String)
TampilkanPesan = PesanPertama & " dan " & PesanKedua
End Function
Apa yang terjadi? Error! mengapa? karena argumen yang kedua tidak bersifat optional, sehingga mau tidak mau kita harus mengisinya. Selanjutnya copy dan pastekan kode berikut:
Option Explicit

Private Sub Form_Load()
MsgBox TampilkanPesan("Pesan pertama")
End Sub

Private Function TampilkanPesan(PesanPertama As String, Option PesanKedua As String)
TampilkanPesan = PesanPertama & " dan " & PesanKedua
End Function
Apa yang terjadi, Sukses! tidak menampilkan pesan error. Selanjutnya copy dan pastekan kode berikut:
Option Explicit

Private Sub Form_Load()
MsgBox TampilkanPesan("Pesan pertama")
End Sub

Private Function TampilkanPesan(PesanPertama As String, Option PesanKedua As String="Pesan kedua")
TampilkanPesan = PesanPertama & " dan " & PesanKedua
End Function
Apa yang terjadi, Sukses! tidak menampilkan pesan error!

Maka kesimpulannya:
Sebuah argumen yang disertai Optional memiliki dua pilihan: boleh diisi atau tidak.
READ MORE - VB6 - Memahami KeyWord Optional Pada Sebuah Argumen

VB6 Code - Memahami Recursive Function (Fungsi Recursive)

Di bawah ini merupakan contoh kode sehingga kita dapat memahami fungsi recursive. Apa yang dimaksud dengan fungsi recursive? fungsi recursive adalah fungsi yang memanggil dirinya sendiri. Coba perhatikan contoh kode di bawah ini:
Private Sub Form_Load()
MsgBox Factorial(9)
End Sub

Function Factorial (ByVal MyVar As Integer) ' Function declaration.
MyVar = MyVar - 1
If MyVar = 0 Then
Factorial = 1
Exit Function
End If
Factorial = Factorial(MyVar) * (MyVar + 1)
End Function
Dalam contoh kode di atas, fungsi tersebut memanggil dirinya sendiri (yang diberi warna merah).Untuk keperluan fungsi recursive ada beberapa hal yang harus diperhatikan, yaitu: Pemberian KeyWord ByVal (coba Anda hilangkan ByVal maka apa yang terjadi?) Fungsi recursive harus ditutup/diakhiri jika tidak, maka fungsi tersebut akan menampilkan error yakni Runtime Error '28' Out Of Stack Space. Mengapa? karena fungsi tersebut terus menerus memanggil fungsinya tanpa memiliki akhir, kapan ia harus berhenti. Sebagai contoh kode yang error, copy dan pastekan code berikut:
Private Sub Form_Load()
MsgBox Factorial(9)
End Sub

Function Factorial(ByVal MyVar As Integer) ' Function declaration.
MyVar = MyVar - 1
If MyVar = 0 Then
Factorial = 1
End If
Factorial = Factorial(MyVar) * (MyVar + 1)
End Function
Kode di atas akan mengalami error, mengapa? karena kode tersebut tidak memiliki akhir (terus menerus memanggil dirinya sendiri). Seperti halnya kalimat di bawah ini: Jika sekolah maka libur, dan jika libur maka sekolah. Lho? kapan sekolah dan kapan liburnya!
READ MORE - VB6 Code - Memahami Recursive Function (Fungsi Recursive)

VB6 Code - Fungsi Untuk Menggenapkan/Membulatkan Bilangan

Dalam membuat sebuah software, seringkali kita membutuhkan fungsi untuk menggenapkan/membulatkan sebuah bilangan (misalnya dalam membuat software biling warnet dan sebagainya). Pertanyaannya, bagaimanakah cara membuat sebuah fungsi dengan algoritma yang baik, kokoh, bisa digunakan dengan segala macam aplikasi, tahan banting, hanya satu jajar kode saja dan tidak menghabiskan energi (karena tidak terlampau banyak mengetik dan berfikir). bahasanya kepanjangan ya, padahal maksudnya dengan kode yang efektif dan efisien).

Fungsi untuk menggenapkan bilangan
Private Function Genapkan(ByVal Number As Double, Optional Range = 10) As double
Genapkan = (Round((Number / Range) + 0.49)) * Range
End Function
Contoh Fungsi untuk menggenapkan bilangan dalam sebuah aplikasi:
Private Sub Form_Load()
MsgBox Genapkan(456565656, 10) 'ini untuk menggenapkan puluhan
MsgBox Genapkan(456565656, 100) 'ini untuk menggenapkan ratusan
MsgBox Genapkan(456565656, 1000) 'ini untuk menggenapkan ribuan
MsgBox Genapkan(456565656, 10000) 'ini untuk menggenapkan puluhan ribu
MsgBox Genapkan(456565656, 100000) 'ini untuk menggenapkan ratusan ribu
MsgBox Genapkan(456565656, 1000000) 'ini untuk menggenapkan jutaan
MsgBox Genapkan(456565656, 10000000) 'ini untuk menggenapkan pulahan juta
'dan seterusnya
End Sub
READ MORE - VB6 Code - Fungsi Untuk Menggenapkan/Membulatkan Bilangan

VB6 Code - Add-Ins Tools VB6.0 Toolbar Resizer 1.0

Toolbar Resizer 1.0 merupakan sebuah Add-Ins VB6.0 yang berguna untuk merubah ukuran buttons Toolbar yang telah terlanjur diisi gambar (yang berasal dari ImageList)

Download: Toolbar Resizer 1.0

Cara menggunakan:
  1. Register terlebih dahulu Toolbar Resizer 1.0 dengan cara mendouble klik file install.bat
  2. Klik menu file Add-ins selanjutnya klik Add-Ins Manager, cari Add-ins dengan nama Toolbar Resizer 1.0.
  3. Pilih Toolbar yang telah diisi gambar yang berasal dari ImageList.
  4. Sesuaikan ukurannya dengan cara memilih item yang tersedia dalam ComboBox Toolbar Resizer 1.0.
Seperti yang kita ketahui, objek Toolbar yang buttonnya telah terisi gambar dari ImageList tidak dapat dirubah ukurannya misalnya dari 16 x 16 menjadi 32 x 32, 48 x 48 atau sebaliknya, terkecuali kita hapus terlebih dahulu seluruh gambar yang terdapat pada ImageList tersebut dan meng-unbound property ImageList yang terdapat dalam Toolbar tersebut. Akan tetapi dengan tools kecil yang diberi nama Toolbar Resizer 1.0 kita dapat merubah ukuran gambar sesuai selera tanpa harus mengutak-atik Toolbar dan ImageList-nya.

Toolbar Resizer 1.0 dibuat oleh http://khoiriyyah.blogspot.com
READ MORE - VB6 Code - Add-Ins Tools VB6.0 Toolbar Resizer 1.0

VB6 Code - Merubah ukuran dan tanggal file secara random

Ternyata virus exe yang dibuat dengan menggunakan bahasa pemrograman Visual Basic 6.0 (baca: klasik). Hanya sayang kurang asyik setelah di search, ternyata file size serta date created seluruhnya sama (sehingga menjadi aurat bagi virus tersebut), mungkin pembuat virus tersebut lupa menambahkan beberapa baris untuk merubah ukuran (size kb) serta tanggal pembuatannya (date created) secara random. Sebenarnya merubah ukuran, tanggal pembuatan tidaklah sulit. Anda dapat mendownloadnya pada link di bawah ini (:

Download: Merubah ukuran dan tanggal file secara random

Tapi bagaimanapun juga virus tersebut sudah merepotkan dan cukup mengganggu aktivitas.

READ MORE - VB6 Code - Merubah ukuran dan tanggal file secara random

Tuesday, March 16, 2010

Memahami KeyWord Option Explicit dalam Visual Basic 6.0

Di bawah ini merupakan contoh kode, sehingga kita dapat memahami Statement Option Explicit dalam Visual Basic 6.0. Untuk keperluan ini, copy dan pastekan kode di bawah ini (tanpa menggunakan Option Explicit).
Private Sub Form_Load()
i = 1
MsgBox i
End Sub
Apa yang terjadi, apakah terjadi error? Tidak!
Selanjutnya copy dan pastekan kode di bawah ini (dengan menggunakan Option Explicit):
Option Explicit

Private Sub Form_Load()
i = 1
MsgBox i
End Sub
Apa yang terjadi, apakah terjadi error? Ya! dengan error 'Variable not defined' mengapa? karena Visual Basic 6.0 tidak mengenal 'i', 'i' tersebut belum didefinisikan menjadi sebuah variable atau dengan kata lain belum dideklarasikan. Sekarang copy dan pastekan code di bawah ini:
Option Explicit

Private Sub Form_Load()
Dim i as Integer
i = 1
MsgBox i
End Sub
Apakah terjadi error? tidak! sekarang 'i' telah didefinisikan (dideklarasikan) menjadi sebuah variable.

Maka kesimpulannya:
Tanpa menggunakan Option Explicit, semua variable yang tidak terdefinisi secara default akan didefinisikan oleh Visual Basic 6.0 menjadi sebuah variable yang memiliki data type Variant.
Dengan menggunakan KeyWord Option Explicit, akan memaksa seluruh variable yang belum terdefinisi untuk didefinisikan terlebih dahulu, yakni Visual Basic 6.0 tersebut akan dengan senang hati menampilkan pesan error "Variable not defined".
READ MORE - Memahami KeyWord Option Explicit dalam Visual Basic 6.0

Visual Basic 6.0 - Memahami KeyWord Option Base

Di bawah ini merupakan contoh kode sehingga kita bisa memahami Statement Option Base. Untuk keperluan tersebut copy dan pastekan code di bawah ini:

Kode dengan menggunakan Option Base 1
Option Explicit
Option Base 1

Private Sub Form_Load()
Dim Arr(5) As Integer
MsgBox LBound(Arr)
End Sub
Terlihat bahwa MsgBox tersebut menampilkan angka 1

Kode dengan tanpa menggunakan Option Base 1
Option Explicit

Private Sub Form_Load()
Dim Arr(5) As Integer
MsgBox LBound(Arr)
End Sub
Terlihat bahwa MsgBox tersebut menampilkan angka 0

Maka Kesimpulannya:
  1. Dengan menggunakan Option Base 1, maka LBound atau Lower Bound (batas terendah dari sebuah array sama dengan 1)
  2. Secara default Visual Basic 6.0 men-set Option Base 0, apabila secara explicit kita tidak menuliskan Option Base 1
  3. Option Base tidak bisa diberi nilai yang lebih dari 1
READ MORE - Visual Basic 6.0 - Memahami KeyWord Option Base

Visual Basic 6.0 - Memahami Procedure Function

Di bawah ini merupakan beberapa contoh sehingga Anda dapat memahami Statement Function dalam Visual Basic 6.0, untuk memahaminya copy dan pastekan kode di bawah ini:
Private Sub Form_Load() 
TampilkanPesan_0 'baris ke-1
TampilkanPesan_1 "Ini pesan" 'baris ke-2
MsgBox TampilkanPesan_2("Ini pesan") 'baris ke-3
End Sub

'Fungsi ini yang dipanggil dalam baris ke-1
Function TampilkanPesan_0()
MsgBox "Ini pesan"
End Function

'Fungsi ini yang dipanggil dalam baris ke-2
Function TampilkanPesan_1(Pesan As String)
MsgBox Pesan
End Function

'Fungsi ini yang dipanggil dalam baris ke-3
Function TampilkanPesan_2(Pesan As String) As String
TampilkanPesan_2 = Pesan
End Function
Catatan:
Fungsi pada baris ke-1 tanpa argumen
Fungsi pada baris ke-2 dengan argumen (yang diberi warna merah)
Fungsi pada baris ke-3 disertai argumen & Return Value (yang diberi tanda merah)

Perhatikan cara memanggilnya!

Nah, sekarang Anda telah memahami Statement Function (Fungsi Statement) dalam Visual Basic 6.0. Perlu diketahui:
  1. Function merupakan sebagian dari Procedure, mafhumnya seluruh Function merupakan Procedure akan tetapi tidak seluruh Function merupakan Procedure
  2. Seluruh kode dalam Visual Basic ditulis dalam tubuh Procedure, Betapapun rumitnya sebuah program tersebut.
READ MORE - Visual Basic 6.0 - Memahami Procedure Function

VB6 Code - .Show Atau .Zorder dalam MDI

Mengetahui jawaban dari pertanyaan, Mana yang akan dipilih .Show atau .Zorder dalam MDI? lebih baik kita praktekan saja dengan cara buat 1 form MDI dan 4 form SDI, 3 form memiliki properties .MDI Child = True kemudian 1 form kemudian 1 form memiliki properties .MDI Child = False. Selanjutnya Copy dan pastekan kode di bawah ini:
Private Sub Command1_Click()
Form1.ZOrder 0
End Sub

Private Sub Command2_Click()
Form2.ZOrder 0
End Sub

Private Sub Command3_Click()
Form3.ZOrder 0
End Sub

Private Sub Command4_Click()
Form4.ZOrder 0
End Sub

Private Sub MDIForm_Load()
Form1.Show 'dengan properties .MDI Child = True
Form2.Show 'dengan properties .MDI Child = True
Form3.Show 'dengan properties .MDI Child = True
Form4.Show 'dengan properties .MDI Child = False
End Sub
Sekarang, coba klik masing-masing Button dari mulai Command1 sampai Command4. Eksperimen dari tahap pertama selesai.
Private Sub Command1_Click()
Form1.Show
End Sub

Private Sub Command2_Click()
Form2.Show
End Sub

Private Sub Command3_Click()
Form3.Show
End Sub

Private Sub Command4_Click()
Form4.Show
End Sub

Private Sub MDIForm_Load()
Form1.Show 'dengan properties .MDI Child = True
Form2.Show 'dengan properties .MDI Child = True
Form3.Show 'dengan properties .MDI Child = True
Form4.Show 'dengan properties .MDI Child = False
End Sub
Sekarang, coba klik masing-masing Button dari mulai Command1 sampai Command4. Eksperimen dari tahap pertama selesai.

Apa yang bisa kita simpulkan? Yah, Anda benar tidak ada pengaruhnya sama sekali!

Sekarang coba kita beri 1 objek (misalnya TextBox) pada masing-masing form selain form MDI, coba klik masing-masing Button dari mulai Command1 sampai .Command4. Apa yang bisa kita simpulkan?

Selanjutnya kembalikan lagi properties .Show menjadi method .Zorder 0, coba klik masing-masing objek button dari mulai Command1 sampai Command4, Apa yang bisa Anda tarik kesimpulan? yah, benar. Menakjubkan! Apa yang menakjubkan? Saya tidak tahu! sekarang pertanyaannya, Manakah yang akan dipilih .Show atau .Zorder dalam MDI?
READ MORE - VB6 Code - .Show Atau .Zorder dalam MDI

Friday, January 8, 2010

VB6 Code - File-File Runtime Crystal Report

Apa saja file-file runtime crystal report itu? di bawah ini merupakan file-file runtime crystal report 8.0 yang harus Anda masukan ke dalam file setup. Adapun file-file runtime crystal report versi sebelum atau sesudahnya, tinggal Anda bandingkan saja.
  • Implode.dll
  • cpeaut32.dll
  • Crpaig80.dll
  • p2bdao.dll
  • p2ctdao.dll
  • p2irdao.dll
  • P2smon.dll
  • craxdrt.dll
  • crviewer.dll
  • crystalwizard.dll
  • xqviewer.dll
READ MORE - VB6 Code - File-File Runtime Crystal Report

Thursday, December 24, 2009

VB6 Code - Memahami Struktur Software Maktabah Syamilah

Sebelumnya perlu Anda ketahui bahwa Software Maktabah Syamilah ini dibuat dengan menggunakan bahasa pemrograman Visual Basic 6.0.
  • Format file-file eBooknya keseluruhan menggunakan Access 97. Alasannya menggunakan Access 97 adalah ukurannya lebih kecil dan lebih cepat untuk di-load.
  • Dalam pembuatannya Software Maktabah Syamilah tidak menggunakan resource akan tetapi, seluruh gambar, menu, dan sebagainya langsung diembed ke dalamnya. Menu-menu misalnya langsung ditanamkan ke dalam file exe-nya, itulah sebabnya walaupun kita menggunakan software 'Resource Hacker' tetap tidak dapat merubah menu-menu tersebut ke dalam Bahasa Indonesia misalnya.
  • Kendali file-file eBooknya keseluruhan terdapat dalam file main.mdb yang ada dalam directory ... \Liblary\Files\main.mdb. Hal tersebut bertujuan agar lebih mempermudah dalam pengaturan serta penambahan file-file eBooknya (kitabnya) seakan-akan file Maktabah Syamilah.exe dan eBooknya merupakan bagian yang terpisah.
  • File-file recent/history serta file bookmark disimpan dalam C:\Program Files\أ‡أ،أ£أںأٹأˆأ‰ أ‡أ،أ”أ‡أ£أ،أ‰\user.mdb. Backuplah file tersebut jika Anda ingin menyelamatkan file-file history dan file-file bookmark yang telah Anda buat.
  • File-file e-booknya disimpan dalam directory ... \Liblary\Books\0 ... 9. Tujuan penyimpanan file-file tersebut (dari 0 s/d 9) berguna untuk mempercepat proses pencarian kitab artinya pemberian nama folder 0 ... 9 itu merupakan index dari e-booknya itu sendiri. Tidakkah Anda melihat bahwa directory ... \Liblary\Books\0 (misalnya) akan diisi oleh file *.mdb yang berakhiran 0, misalnya 10.mdb, 20.mdb, 110.mdb, 130.mdb,1000.mdb dan seterusnya.

Lalu (setelah mempelajari struktur maktabah syamilah di atas)...
  • bagaimana jika kita ingin menambahkan kitab pada maktabah syamilah, misalnya kitab yaqulu, jurumiyah dsb atau al-Qur'an dengan disertai terjemahan DEPAG misalnya?
  • Bagaimana jika kita ingin membuat software Maktabah Syamilah versi Indonesia (maksudnya file .exenya saja, dimana seluruh menu dan petunjuknya menggunakan bahasa Indonesia sedangkan seluruh databasenya diambil dari maktabah syamilah yang asli)?
Tentu saja poin ke-7 dan ke-8 itu sangat bisa, hanya yang menjadi persoalan adalah My google adsense. Googlenya terkena 'smart pricing' (lho apa hubungannya?)

Terimakasih semoga bermanfaat.
READ MORE - VB6 Code - Memahami Struktur Software Maktabah Syamilah

Monday, December 7, 2009

VB6 Code - Konsep Membuat Software Tashrif (Ilmu Sharaf)

Tashrif dalam ilmu sharaf bisa kita sederhanakan menjadi:
  1. Hadzaf (pembuangan huruf)
  2. Naql (pemindahanhuruf/syakal)
  3. Ibdal (penggantian huruf)
  4. Ziyadah (penambahan huruf)
Lalu artinya? artinya dengan memahami konsep di atas, kita dapat membuat software tashrif dengan cara mengeksplorasi dan memanipulasi fungsi-fungsi string yang terdapat dalam pemrograman. Untuk keperluan ini kami menggunakan program Visual Basic 6.0. Yang menjadi persoalan kita sekarang, bagaimanakah membuat fungsi-fungsi yang dapat mencakup keseluruhan wazan yang terdapat dalam Ilmu Sharaf, salim dan ghair salim (mudho'af, mahmuz, mu'tal [mitsal, ajwaf, naqish, lafif mafruq, lafif maqrun, dsb] kemudian madhi, mudhore, amr sampai isim alat berikut tashrifannya?

Berikut ini dua fungsi yang telah dibuat untuk keperluan di atas:
Option Explicit

'//--------------------------------------------------------------------
'// Dua fungsi utama software tashrif
'//--------------------------------------------------------------------

'Fungsi pertama: untuk menyamakan syakal
Function SamakanSyakal(sMauzun As String, sWazan As String) As String

Dim s() As String
Dim c() As String
Dim i As Integer
Dim a As Integer
Dim d As String
Dim g As String
ReDim s(Len(sWazan))
ReDim c(Len(sWazan))

a = 1

For i = 1 To Len(sWazan)
s(i) = Mid(sWazan, i, 1)
Next

For i = 1 To UBound(c)
d = Mid(sWazan, i, 1)
If d = "ظژ" Or _
d = "ظڈ" Or _
d = "ظگ" Or _
d = "ظ’" Or _
d = "ظŒ" Or _
d = "ظ‹" Then
c(i) = d
Else
c(i) = Mid(sMauzun, a, 1)
a = a + 1
End If
Next

For i = 1 To UBound(c)
g = g & c(i)
Next

SamakanSyakal = g

End Function

'//--------------------------------------------------------------------
'//Fungsi kedua: untuk menyamakan huruf
'//--------------------------------------------------------------------

Function SamakanHuruf(sMauzun As String, PolaWazan As String) As String

Dim s() As String
ReDim s(Len(PolaWazan))
Dim i As Integer
Dim c As String

For i = 1 To Len(PolaWazan)
If Mid(PolaWazan, i, 1) < 9 Then
c = c & Mid(sMauzun, Mid(PolaWazan, i, 1), 1)
Else
c = c & Mid(PolaWazan, i, 1)
End If
Next

SamakanHuruf = c

End Function

Di bawah ini sedikit contoh untuk wazan ط§ط³طھظپط¹ظ„ yang salim.

'----------------------------------------------------------------------------
'//Contoh penggunaan dua fungsi di atas
'----------------------------------------------------------------------------

Private Sub cmdGenerate_Click()

Dim d As String
Dim c As String
c = Text2.Text

'Madhi ط§ظ„ظ…ط§ط¶ظٹ
d = SamakanSyakal(SamakanHuruf(c, "123456"), "ط¥ظگط³ظ’طھظژظپظ’ط¹ظژظ„ظژ")
'Mudhore ط§ظ„ظ…ط¶ط§ط±ط¹
d = d & " - " & SamakanSyakal(SamakanHuruf(c, "ظٹ23456"), "ظٹظژط³ظ’طھظژظپظ’ط¹ظگظ„ظڈ")
'Mashdar ط§ظ„ظ…طµط¯ط±
d = d & " - " & SamakanSyakal(SamakanHuruf(c, "ط¥2345ط§6ط§"), "ط¥ظگط³ظ’طھظگظپظ’ط¹ظژط§ظ„ط§ظ‹")
'Fa'il ط§ظ„ظپط§ط¹ظ„
d = d & " - ظپظ‡ظˆ " & SamakanSyakal(SamakanHuruf(c, "ظ…23456"), "ظ…ظڈط³ظ’طھظژظپظ’ط¹ظگظ„ظŒ")
'Maf'ul ط§ظ„ظ…ظپط¹ظˆظ„
d = d & " - ظˆط°ط§ظƒ " & SamakanSyakal(SamakanHuruf(c, "ظ…23456"), "ظ…ظڈط³ظ’طھظژظپظ’ط¹ظژظ„ظŒ")
'Amr ط§ظ„ط£ظ…ط±
d = d & " - " & SamakanSyakal(SamakanHuruf(c, "ط¥23456"), "ط¥ظگط³ظ’طھظژظپظ’ط¹ظگظ„ظ’")
'Nahi ط§ظ„ظ†ظ‡ظٹ
d = d & " - ظ„ط§ " & SamakanSyakal(SamakanHuruf(c, "طھ23456"), "طھظژط³ظ’طھظژظپظ’ط¹ظگظ„ظ’")
'Makan ط§ظ„ظ…ظƒط§ظ†
d = d & " - " & SamakanSyakal(SamakanHuruf(c, "ظ…23456"), "ظ…ظڈط³ظ’طھظژظپظ’ط¹ظژظ„ظŒ")
'Zaman ط§ظ„ط²ظ…ط§ظ†
d = d & " - " & SamakanSyakal(SamakanHuruf(c, "ظ…23456"), "ظ…ظڈط³ظ’طھظژظپظ’ط¹ظژظ„ظŒ")

Text3.Text = d

End Sub
READ MORE - VB6 Code - Konsep Membuat Software Tashrif (Ilmu Sharaf)