Setelah sekian lama tidak pernah update kali ini saya akan coba update cara membuat program berbasis clien sever. Program ini merupakan contoh pemrograman client server dengan menggunakan bahasa pemrograman Visual Basic 6.0 dan Microsoft Acces sebagai Database. Program ini dilengkapi dengan operasi record. Sebagai program berbasis sistem informasi, pengguna dapat melakukan pencetakan dengan menggunakan Crystal Report 8.5 sebagai output/laporan. Program ini terdiri atas dua file project, yakni untuk di tempatkan di server dan di sisi client. Mudah-mudahan contoh program ini berguna terutama bagi yang ingin mencoba membuat pemrograman client server.
Dim Tampil As ListView
Dim DTM(11) As String
Dim x As Long
Dim Urut As Double
Private Sub cmdQuit_Click()
Unload Me
End Sub
Private Sub Form_Activate()
'menampilkan id client
LblHost.Caption = Socket(0).LocalHostName
LblIP.Caption = Socket(0).LocalIP
Socket(0).LocalPort = 1007
sServerMsg = "Listening to port: " & Socket(0).LocalPort
List1.AddItem (sServerMsg)
Socket(0).Listen
'untuk listview
Lview.GridLines = True
Lview.ListItems.Clear
Lview.View = lvwReport
Lview.ColumnHeaders.Add , , "No Trans", 900
Lview.ColumnHeaders.Add , , "Terima dari", 1300
Lview.ColumnHeaders.Add , , "Uraian", 2600
Lview.ColumnHeaders.Add , , "Kode Akun", 1100
Lview.ColumnHeaders.Add , , "Cara Bayar", 1000
Lview.ColumnHeaders.Add , , "Jumlah (Rp)", 1100
Lview.ColumnHeaders.Add , , "Diterima di", 900
Lview.ColumnHeaders.Add , , "Tanggal", 1000
Lview.ColumnHeaders.Add , , "Penerima", 1000
Call LData
'--------------------------------------
End Sub
Sub LData()
ConnectDb
Rs.Open "select * from [BuktiBayar]", Db, 1, 3
With Rs
If Rs.RecordCount = 0 Then
Set kodok = Lview.ListItems.Add(, , "---")
kodok.SubItems(1) = "---"
kodok.SubItems(2) = "---"
kodok.SubItems(3) = "---"
kodok.SubItems(4) = "---"
kodok.SubItems(5) = "---"
kodok.SubItems(6) = "---"
kodok.SubItems(7) = "---"
kodok.SubItems(8) = "---"
ElseIf .RecordCount > 0 Then
.MoveFirst
Do While Not .EOF
Set kodok = Lview.ListItems.Add(, , ![no transaksi])
kodok.SubItems(1) = ![terima dari]
kodok.SubItems(2) = ![uraian]
kodok.SubItems(3) = ![kode akun]
kodok.SubItems(4) = ![cara bayar]
kodok.SubItems(5) = ![jlh rupiah]
kodok.SubItems(6) = ![Diterima di]
kodok.SubItems(7) = ![Tanggal]
kodok.SubItems(8) = ![penerima]
.MoveNext
Loop
End If
End With
End Sub
Selanjutnya untuk module copykan listing berikut ini:
‘--- ini untuk menghubungkan database
Public Db As ADODB.Connection
Public Rs As ADODB.Recordset
Public Function ConnectDb() As Boolean
On Error GoTo DC
Set Db = New ADODB.Connection
Set Rs = New ADODB.Recordset
Db.CursorLocation = adUseClient
Db.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Persist security Info=false;Data source=" & App.Path & "\dbtiram.mdb;"
Exit Function
DC:
MsgBox Err.Number + " " + Err.Description, vbOKOnly, "Disconnect"
End Function
Tambahkan satu form, satu module, dan satu file crystal report. Kemudian copykan listing berikut ini di form
Dim Tampil As ListView
Dim nou(2) As String
Dim nomor, J1 As Byte
Private Sub CmdCancel_Click()
Call ResetForm(Me)
LblNoTrans.Caption = ""
CmdCancel.Enabled = False
CmdNew.Enabled = True
CmdSave.Enabled = False
CmdPreview.Enabled = False
End Sub
Private Sub CmdConnect_Click()
If CmdConnect.Caption = "&Connect" Then
Winsock1.RemoteHost = "10.16.184.33" ' rubah ip ini menjadi ip server
Winsock1.RemotePort = 1007
Winsock1.Connect
LblCon.Caption = "Connect to server"
Tombol (1)
Me.Caption = "Connect to Server"
CmdConnect.Caption = "&Disconnect"
ElseIf CmdConnect.Caption = "&Disconnect" Then
LblCon.Caption = "Unavailable Connection to server"
Me.Caption = "Unavailable Connection to server"
Winsock1.Close
CmdConnect.Caption = "&Connect"
End If
End Sub
Private Sub cmdEdit_Click()
CmdSave.Caption = "&Update"
End Sub
Private Sub CmdNew_Click()
If Left(Me.Caption, 2) = "Un" Then
MsgBox "Tidak terkoneksi ke server" & Chr(13) _
& "Klik tombol connect terlebih dahulu untuk " _
& "mengkoneksikan ke server", vbOKOnly, "Disconnect"
CmdSave.Caption = "&Save"
Else
CmdNew.Enabled = False
CmdCancel.Enabled = True
CmdSave.Enabled = True
CmdPreview.Enabled = True
Frame1.Enabled = True
Call ResetForm(Me)
'---ambil nomor transaksi dari server
If Winsock1.State = sckConnected Then
Winsock1.SendData "no~"
LblCon.Caption = "Sending Data"
End If
'ambil nomor terakhir dari tabel nomor
'ConnectDb
'Rs.Open "select * from nomor", Db, 1, 3
'If Rs.RecordCount = 0 Then
' no = 1
'ElseIf Rs.RecordCount > 0 Then
' Rs.MoveLast
' no = Rs!nourut + 1
' LblNoTrans.Caption = no
'End If
End If
End Sub
'
Private Sub CmdPreview_Click()
Dim tgl As String
t1 = Format(TxtTgl.Value, "dd mmmm yyyy")
tgl = TxtDiterima.Text & ", " & t1
Cr1.ReportFileName = App.Path & "\reports\bukti_bayar[1].rpt"
'Cr1.ReplaceSelectionFormula "{bukti pembayaran.no transaksi}='" & LblNoTrans.Caption & "'"
Cr1.Formulas(0) = "bterima='" & txtterima.Text & "'"
Cr1.Formulas(1) = "buraian='" & TxtUraian.Text & "'"
Cr1.Formulas(2) = "blg='" & TxtTerbilang.Caption & "'"
Cr1.Formulas(3) = "blg='" & TxtTerbilang.Caption & "'"
Cr1.Formulas(4) = "bkdakun='" & TxtKdAkun.Text & "'"
Cr1.Formulas(5) = "bc_byr='" & TxtDibayarDng.Text & "'"
Cr1.Formulas(6) = "b_tgl='" & tgl & "'"
Cr1.Formulas(7) = "b_penerima='" & TxtPenerima.Text & "'"
'Item.SubItems(1)
' Cr1.PrintReport
Cr1.WindowState = crptMaximized
Cr1.Action = 1
'
'ErrPrint:
' MsgBox Err.Number & " " & Err.Description, vbCritical, "Error Print"
' End If
' Next
End Sub
Private Sub cmdQuit_Click()
Winsock1.Close
Unload Me
End Sub
CmdPreview.Enabled = True
If Winsock1.State = sckConnected Then
Winsock1.SendData "s~" & LblNoTrans.Caption & "~" & txtterima.Text _
& "~" & TxtUraian.Text & " " & "~" & TxtKdAkun.Text & "~" _
& TxtDibayarDng.Text & "~" & TxtRp.Text & "~" & TxtTerbilang.Caption & "~" _
& TxtDiterima.Text & "~" & TxtTgl.Value & "~" & TxtPenerima.Text
LblCon.Caption = "Sending Data"
Else
LblCon.Caption = "Not currently connected to host"
End If
Form_Activate
End Sub
Sub Tombol(aktif As Boolean)
CmdNew.Enabled = aktif
CmdSave.Enabled = aktif
End Sub
Private Sub Form_Activate()
'koneksi ke server
Tombol (0)
CmdConnect.Enabled = True
End Sub
Private Sub Form_Load()
Frame1.Enabled = False
CmdNew.Enabled = True
CmdNew.Visible = True
CmdSave.Enabled = False
' CmdPreview.Enabled = False
CmdCancel.Enabled = False
LblNoTrans.Caption = ""
End Sub
Private Sub txtRp_Change() 'Isi besar uang diulangi dengan terbilang huruf...
If Len(TxtRp.Text) = 0 Then
Exit Sub
ElseIf Len(TxtRp.Text) > 0 Then
TxtTerbilang.Caption = "## " & UCase(TerbilangDesimal(TxtRp.Text)) & " RUPIAH ##"
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Winsock1.GetData sData, vbString
'Label1.Caption = sData
'kalau record tidak ada
'For J1 = 0 To 1
st = Split(sData, "~")
If Mid(st(0), 1, 2) = "no" Then
'MsgBox "record tidak ditemukan"
LblNoTrans.Visible = True
LblNoTrans.Caption = st(1)
Else 'If Mid(st(0), 1, 1) = "S" Then
MsgBox "Data terupdate"
End If
End Sub
‘selanjutnya tambahkan baris berikut ini di module
‘ini fungsi terbilang
Public Function TerbilangDesimal(InputCurrency As String, _
Optional MataUang As String = "rupiah") As String
Dim strInput As String
Dim strBilangan As String
Dim strPecahan As String
On Error GoTo pesan
Dim strValid As String, huruf As String * 1
Dim i As Integer
'Periksa setiap karakter yg diketikkan ke kotak UserID
strValid = "1234567890,"
For i% = 1 To Len(InputCurrency)
huruf = Chr(Asc(Mid(InputCurrency, i%, 1)))
If InStr(strValid, huruf) = 0 Then
Set AngkaTerbilang = Nothing
MsgBox "Harus karakter angka!", _
vbCritical, "Karakter Tidak Valid"
Exit Function
End If
Next i%
If InputCurrency = "" Then Exit Function
If Len(Trim(InputCurrency)) > 15 Then GoTo pesan
strInput = CStr(InputCurrency) 'Konversi ke string
'Periksa apakah ada tanda "," jika ya berarti pecahan
If InStr(1, strInput, ",", vbBinaryCompare) Then
strBilangan = Left(strInput, InStr(1, strInput, ",", vbBinaryCompare) - 1)
'strBilangan = Right(strInput, InStr(1, strInput, ".", vbBinaryCompare) - 2)
strPecahan = Trim(Right(strInput, Len(strInput) - Len(strBilangan) - 1))
If MataUang <> "" Then
If CLng(Trim(strPecahan)) > 99 Then
strInput = Format(Round(CDbl(strInput), 2), "#0.00")
strPecahan = Format((Right(strInput, Len(strInput) - Len(strBilangan) - 1)), "00")
End If
If Len(Trim(strPecahan)) = 1 Then
strInput = Format(Round(CDbl(strInput), 2), "#0.00")
strPecahan = Format((Right(strInput, Len(strInput) - Len(strBilangan) - 1)), "00")
End If
If CLng(Trim(strPecahan)) = 0 Then
TerbilangDesimal = (KonversiBilangan(strBilangan) & MataUang & " " & KonversiBilangan(strPecahan))
Else
TerbilangDesimal = (KonversiBilangan(strBilangan) & MataUang & " " & KonversiBilangan(strPecahan) & "sen")
End If
Else
TerbilangDesimal = (KonversiBilangan(strBilangan) & "koma " & KonversiPecahan(strPecahan))
End If
Else
TerbilangDesimal = (KonversiBilangan(strInput))
End If
Exit Function
pesan:
TerbilangDesimal = "(maksimal 15 digit)"
End Function
'Fungsi ini untuk mengkonversi nilai pecahan (setelah angka 0)
Private Function KonversiPecahan(strAngka As String) As String
Dim i%, strJmlHuruf$, Urai$, Kar$
If strAngka = "" Then Exit Function
strJmlHuruf = Trim(strAngka)
Urai = ""
Kar = ""
For i = 1 To Len(strJmlHuruf)
'Tampung setiap satu karakter ke Kar
Kar = Mid(strAngka, i, 1)
Urai = Urai & Kata(CInt(Kar))
Next i
KonversiPecahan = Urai
End Function
'Fungsi ini untuk menterjemahkan setiap satu angka ke kata
Private Function Kata(angka As Byte) As String
Select Case angka
Case 1: Kata = "Satu "
Case 2: Kata = "Dua "
Case 3: Kata = "Tiga "
Case 4: Kata = "Empat "
Case 5: Kata = "Lima "
Case 6: Kata = "Enam "
Case 7: Kata = "Tujuh "
Case 8: Kata = "Delapan "
Case 9: Kata = "Sembilan "
Case 0: Kata = "Nol "
End Select
End Function
'Ini untuk mengkonversi nilai bilangan sebelum pecahan
Private Function KonversiBilangan(strAngka As String) As String
Dim strJmlHuruf$, intPecahan As Integer, strPecahan$, Urai$, Bil1$, strTot$, Bil2$
Dim X, Y, z As Integer
If strAngka = "" Then Exit Function
strJmlHuruf = Trim(strAngka)
X = 0
Y = 0
Urai = ""
While (X < x =" X" strtot =" Mid(strJmlHuruf," y =" Y" z =" Len(strJmlHuruf)" bil1 = "NOL " z =" 1" z =" 7" z =" 10" z =" 13)" bil1 = "Satu " z =" 4)" x =" 1)" bil1 = "Se" bil1 = "Satu " z =" 2" z =" 5" z =" 8" z =" 11" z =" 14)" x =" X" strtot =" Mid(strJmlHuruf," z =" Len(strJmlHuruf)" bil2 = "" bil1 = "Sepuluh " bil1 = "Sebelas " bil1 = "Dua Belas " bil1 = "Tiga Belas " bil1 = "Empat Belas " bil1 = "Lima Belas " bil1 = "Enam Belas " bil1 = "Tujuh Belas " bil1 = "Delapan Belas " bil1 = "Sembilan Belas " bil1 = "Se" bil1 = "Dua " bil1 = "Tiga " bil1 = "Empat " bil1 = "Lima " bil1 = "Enam " bil1 = "Tujuh " bil1 = "Delapan " bil1 = "Sembilan " bil1 = ""> 0) Then
If (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
Bil2 = "Puluh "
ElseIf (z = 3 Or z = 6 Or z = 9 Or z = 12 Or z = 15) Then
Bil2 = "Ratus "
Else
Bil2 = ""
End If
Else
Bil2 = ""
End If
If (Y > 0) Then
Select Case z
Case 4
Bil2 = Bil2 + "Ribu "
Y = 0
Case 7
Bil2 = Bil2 + "Juta "
Y = 0
Case 10
Bil2 = Bil2 + "Milyar "
Y = 0
Case 13
Bil2 = Bil2 + "Trilyun "
Y = 0
End Select
End If
Urai = Urai + Bil1 + Bil2
Wend
KonversiBilangan = Urai
End Function
‘ini fungsi untuk mereset form
Public Sub ResetForm(layar As Form)
For Each CNTRL In layar.Controls
If (TypeOf CNTRL Is TextBox) Then
CNTRL.Text = ""
ElseIf (TypeOf CNTRL Is DTPicker) Then
CNTRL.Value = Date
CNTRL.MaxDate = Date
End If
Next CNTRL
End Sub
Catatan:
1. Sebelum menjalankan program ada baiknya mengcopykan file lvbutton. Selanjutnya file tersebut diextract dan dicopykan ke c:\windows\system atau c:\windows\system32
2. Untuk menjalankannya jalankan kedua program terlebih dahulu secara bersama-sama.......
- Untuk Server
Dim Tampil As ListView
Dim DTM(11) As String
Dim x As Long
Dim Urut As Double
Private Sub cmdQuit_Click()
Unload Me
End Sub
Private Sub Form_Activate()
'menampilkan id client
LblHost.Caption = Socket(0).LocalHostName
LblIP.Caption = Socket(0).LocalIP
Socket(0).LocalPort = 1007
sServerMsg = "Listening to port: " & Socket(0).LocalPort
List1.AddItem (sServerMsg)
Socket(0).Listen
'untuk listview
Lview.GridLines = True
Lview.ListItems.Clear
Lview.View = lvwReport
Lview.ColumnHeaders.Add , , "No Trans", 900
Lview.ColumnHeaders.Add , , "Terima dari", 1300
Lview.ColumnHeaders.Add , , "Uraian", 2600
Lview.ColumnHeaders.Add , , "Kode Akun", 1100
Lview.ColumnHeaders.Add , , "Cara Bayar", 1000
Lview.ColumnHeaders.Add , , "Jumlah (Rp)", 1100
Lview.ColumnHeaders.Add , , "Diterima di", 900
Lview.ColumnHeaders.Add , , "Tanggal", 1000
Lview.ColumnHeaders.Add , , "Penerima", 1000
Call LData
'--------------------------------------
End Sub
Sub LData()
ConnectDb
Rs.Open "select * from [BuktiBayar]", Db, 1, 3
With Rs
If Rs.RecordCount = 0 Then
Set kodok = Lview.ListItems.Add(, , "---")
kodok.SubItems(1) = "---"
kodok.SubItems(2) = "---"
kodok.SubItems(3) = "---"
kodok.SubItems(4) = "---"
kodok.SubItems(5) = "---"
kodok.SubItems(6) = "---"
kodok.SubItems(7) = "---"
kodok.SubItems(8) = "---"
ElseIf .RecordCount > 0 Then
.MoveFirst
Do While Not .EOF
Set kodok = Lview.ListItems.Add(, , ![no transaksi])
kodok.SubItems(1) = ![terima dari]
kodok.SubItems(2) = ![uraian]
kodok.SubItems(3) = ![kode akun]
kodok.SubItems(4) = ![cara bayar]
kodok.SubItems(5) = ![jlh rupiah]
kodok.SubItems(6) = ![Diterima di]
kodok.SubItems(7) = ![Tanggal]
kodok.SubItems(8) = ![penerima]
.MoveNext
Loop
End If
End With
End Sub
Selanjutnya untuk module copykan listing berikut ini:
‘--- ini untuk menghubungkan database
Public Db As ADODB.Connection
Public Rs As ADODB.Recordset
Public Function ConnectDb() As Boolean
On Error GoTo DC
Set Db = New ADODB.Connection
Set Rs = New ADODB.Recordset
Db.CursorLocation = adUseClient
Db.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Persist security Info=false;Data source=" & App.Path & "\dbtiram.mdb;"
Exit Function
DC:
MsgBox Err.Number + " " + Err.Description, vbOKOnly, "Disconnect"
End Function
2. Untuk Client
Tambahkan satu form, satu module, dan satu file crystal report. Kemudian copykan listing berikut ini di form
Dim Tampil As ListView
Dim nou(2) As String
Dim nomor, J1 As Byte
Private Sub CmdCancel_Click()
Call ResetForm(Me)
LblNoTrans.Caption = ""
CmdCancel.Enabled = False
CmdNew.Enabled = True
CmdSave.Enabled = False
CmdPreview.Enabled = False
End Sub
Private Sub CmdConnect_Click()
If CmdConnect.Caption = "&Connect" Then
Winsock1.RemoteHost = "10.16.184.33" ' rubah ip ini menjadi ip server
Winsock1.RemotePort = 1007
Winsock1.Connect
LblCon.Caption = "Connect to server"
Tombol (1)
Me.Caption = "Connect to Server"
CmdConnect.Caption = "&Disconnect"
ElseIf CmdConnect.Caption = "&Disconnect" Then
LblCon.Caption = "Unavailable Connection to server"
Me.Caption = "Unavailable Connection to server"
Winsock1.Close
CmdConnect.Caption = "&Connect"
End If
End Sub
Private Sub cmdEdit_Click()
CmdSave.Caption = "&Update"
End Sub
Private Sub CmdNew_Click()
If Left(Me.Caption, 2) = "Un" Then
MsgBox "Tidak terkoneksi ke server" & Chr(13) _
& "Klik tombol connect terlebih dahulu untuk " _
& "mengkoneksikan ke server", vbOKOnly, "Disconnect"
CmdSave.Caption = "&Save"
Else
CmdNew.Enabled = False
CmdCancel.Enabled = True
CmdSave.Enabled = True
CmdPreview.Enabled = True
Frame1.Enabled = True
Call ResetForm(Me)
'---ambil nomor transaksi dari server
If Winsock1.State = sckConnected Then
Winsock1.SendData "no~"
LblCon.Caption = "Sending Data"
End If
'ambil nomor terakhir dari tabel nomor
'ConnectDb
'Rs.Open "select * from nomor", Db, 1, 3
'If Rs.RecordCount = 0 Then
' no = 1
'ElseIf Rs.RecordCount > 0 Then
' Rs.MoveLast
' no = Rs!nourut + 1
' LblNoTrans.Caption = no
'End If
End If
End Sub
'
Private Sub CmdPreview_Click()
Dim tgl As String
t1 = Format(TxtTgl.Value, "dd mmmm yyyy")
tgl = TxtDiterima.Text & ", " & t1
Cr1.ReportFileName = App.Path & "\reports\bukti_bayar[1].rpt"
'Cr1.ReplaceSelectionFormula "{bukti pembayaran.no transaksi}='" & LblNoTrans.Caption & "'"
Cr1.Formulas(0) = "bterima='" & txtterima.Text & "'"
Cr1.Formulas(1) = "buraian='" & TxtUraian.Text & "'"
Cr1.Formulas(2) = "blg='" & TxtTerbilang.Caption & "'"
Cr1.Formulas(3) = "blg='" & TxtTerbilang.Caption & "'"
Cr1.Formulas(4) = "bkdakun='" & TxtKdAkun.Text & "'"
Cr1.Formulas(5) = "bc_byr='" & TxtDibayarDng.Text & "'"
Cr1.Formulas(6) = "b_tgl='" & tgl & "'"
Cr1.Formulas(7) = "b_penerima='" & TxtPenerima.Text & "'"
'Item.SubItems(1)
' Cr1.PrintReport
Cr1.WindowState = crptMaximized
Cr1.Action = 1
'
'ErrPrint:
' MsgBox Err.Number & " " & Err.Description, vbCritical, "Error Print"
' End If
' Next
End Sub
Private Sub cmdQuit_Click()
Winsock1.Close
Unload Me
End Sub
CmdPreview.Enabled = True
If Winsock1.State = sckConnected Then
Winsock1.SendData "s~" & LblNoTrans.Caption & "~" & txtterima.Text _
& "~" & TxtUraian.Text & " " & "~" & TxtKdAkun.Text & "~" _
& TxtDibayarDng.Text & "~" & TxtRp.Text & "~" & TxtTerbilang.Caption & "~" _
& TxtDiterima.Text & "~" & TxtTgl.Value & "~" & TxtPenerima.Text
LblCon.Caption = "Sending Data"
Else
LblCon.Caption = "Not currently connected to host"
End If
Form_Activate
End Sub
Sub Tombol(aktif As Boolean)
CmdNew.Enabled = aktif
CmdSave.Enabled = aktif
End Sub
Private Sub Form_Activate()
'koneksi ke server
Tombol (0)
CmdConnect.Enabled = True
End Sub
Private Sub Form_Load()
Frame1.Enabled = False
CmdNew.Enabled = True
CmdNew.Visible = True
CmdSave.Enabled = False
' CmdPreview.Enabled = False
CmdCancel.Enabled = False
LblNoTrans.Caption = ""
End Sub
Private Sub txtRp_Change() 'Isi besar uang diulangi dengan terbilang huruf...
If Len(TxtRp.Text) = 0 Then
Exit Sub
ElseIf Len(TxtRp.Text) > 0 Then
TxtTerbilang.Caption = "## " & UCase(TerbilangDesimal(TxtRp.Text)) & " RUPIAH ##"
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim sData As String
Winsock1.GetData sData, vbString
'Label1.Caption = sData
'kalau record tidak ada
'For J1 = 0 To 1
st = Split(sData, "~")
If Mid(st(0), 1, 2) = "no" Then
'MsgBox "record tidak ditemukan"
LblNoTrans.Visible = True
LblNoTrans.Caption = st(1)
Else 'If Mid(st(0), 1, 1) = "S" Then
MsgBox "Data terupdate"
End If
End Sub
‘selanjutnya tambahkan baris berikut ini di module
‘ini fungsi terbilang
Public Function TerbilangDesimal(InputCurrency As String, _
Optional MataUang As String = "rupiah") As String
Dim strInput As String
Dim strBilangan As String
Dim strPecahan As String
On Error GoTo pesan
Dim strValid As String, huruf As String * 1
Dim i As Integer
'Periksa setiap karakter yg diketikkan ke kotak UserID
strValid = "1234567890,"
For i% = 1 To Len(InputCurrency)
huruf = Chr(Asc(Mid(InputCurrency, i%, 1)))
If InStr(strValid, huruf) = 0 Then
Set AngkaTerbilang = Nothing
MsgBox "Harus karakter angka!", _
vbCritical, "Karakter Tidak Valid"
Exit Function
End If
Next i%
If InputCurrency = "" Then Exit Function
If Len(Trim(InputCurrency)) > 15 Then GoTo pesan
strInput = CStr(InputCurrency) 'Konversi ke string
'Periksa apakah ada tanda "," jika ya berarti pecahan
If InStr(1, strInput, ",", vbBinaryCompare) Then
strBilangan = Left(strInput, InStr(1, strInput, ",", vbBinaryCompare) - 1)
'strBilangan = Right(strInput, InStr(1, strInput, ".", vbBinaryCompare) - 2)
strPecahan = Trim(Right(strInput, Len(strInput) - Len(strBilangan) - 1))
If MataUang <> "" Then
If CLng(Trim(strPecahan)) > 99 Then
strInput = Format(Round(CDbl(strInput), 2), "#0.00")
strPecahan = Format((Right(strInput, Len(strInput) - Len(strBilangan) - 1)), "00")
End If
If Len(Trim(strPecahan)) = 1 Then
strInput = Format(Round(CDbl(strInput), 2), "#0.00")
strPecahan = Format((Right(strInput, Len(strInput) - Len(strBilangan) - 1)), "00")
End If
If CLng(Trim(strPecahan)) = 0 Then
TerbilangDesimal = (KonversiBilangan(strBilangan) & MataUang & " " & KonversiBilangan(strPecahan))
Else
TerbilangDesimal = (KonversiBilangan(strBilangan) & MataUang & " " & KonversiBilangan(strPecahan) & "sen")
End If
Else
TerbilangDesimal = (KonversiBilangan(strBilangan) & "koma " & KonversiPecahan(strPecahan))
End If
Else
TerbilangDesimal = (KonversiBilangan(strInput))
End If
Exit Function
pesan:
TerbilangDesimal = "(maksimal 15 digit)"
End Function
'Fungsi ini untuk mengkonversi nilai pecahan (setelah angka 0)
Private Function KonversiPecahan(strAngka As String) As String
Dim i%, strJmlHuruf$, Urai$, Kar$
If strAngka = "" Then Exit Function
strJmlHuruf = Trim(strAngka)
Urai = ""
Kar = ""
For i = 1 To Len(strJmlHuruf)
'Tampung setiap satu karakter ke Kar
Kar = Mid(strAngka, i, 1)
Urai = Urai & Kata(CInt(Kar))
Next i
KonversiPecahan = Urai
End Function
'Fungsi ini untuk menterjemahkan setiap satu angka ke kata
Private Function Kata(angka As Byte) As String
Select Case angka
Case 1: Kata = "Satu "
Case 2: Kata = "Dua "
Case 3: Kata = "Tiga "
Case 4: Kata = "Empat "
Case 5: Kata = "Lima "
Case 6: Kata = "Enam "
Case 7: Kata = "Tujuh "
Case 8: Kata = "Delapan "
Case 9: Kata = "Sembilan "
Case 0: Kata = "Nol "
End Select
End Function
'Ini untuk mengkonversi nilai bilangan sebelum pecahan
Private Function KonversiBilangan(strAngka As String) As String
Dim strJmlHuruf$, intPecahan As Integer, strPecahan$, Urai$, Bil1$, strTot$, Bil2$
Dim X, Y, z As Integer
If strAngka = "" Then Exit Function
strJmlHuruf = Trim(strAngka)
X = 0
Y = 0
Urai = ""
While (X < x =" X" strtot =" Mid(strJmlHuruf," y =" Y" z =" Len(strJmlHuruf)" bil1 = "NOL " z =" 1" z =" 7" z =" 10" z =" 13)" bil1 = "Satu " z =" 4)" x =" 1)" bil1 = "Se" bil1 = "Satu " z =" 2" z =" 5" z =" 8" z =" 11" z =" 14)" x =" X" strtot =" Mid(strJmlHuruf," z =" Len(strJmlHuruf)" bil2 = "" bil1 = "Sepuluh " bil1 = "Sebelas " bil1 = "Dua Belas " bil1 = "Tiga Belas " bil1 = "Empat Belas " bil1 = "Lima Belas " bil1 = "Enam Belas " bil1 = "Tujuh Belas " bil1 = "Delapan Belas " bil1 = "Sembilan Belas " bil1 = "Se" bil1 = "Dua " bil1 = "Tiga " bil1 = "Empat " bil1 = "Lima " bil1 = "Enam " bil1 = "Tujuh " bil1 = "Delapan " bil1 = "Sembilan " bil1 = ""> 0) Then
If (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
Bil2 = "Puluh "
ElseIf (z = 3 Or z = 6 Or z = 9 Or z = 12 Or z = 15) Then
Bil2 = "Ratus "
Else
Bil2 = ""
End If
Else
Bil2 = ""
End If
If (Y > 0) Then
Select Case z
Case 4
Bil2 = Bil2 + "Ribu "
Y = 0
Case 7
Bil2 = Bil2 + "Juta "
Y = 0
Case 10
Bil2 = Bil2 + "Milyar "
Y = 0
Case 13
Bil2 = Bil2 + "Trilyun "
Y = 0
End Select
End If
Urai = Urai + Bil1 + Bil2
Wend
KonversiBilangan = Urai
End Function
‘ini fungsi untuk mereset form
Public Sub ResetForm(layar As Form)
For Each CNTRL In layar.Controls
If (TypeOf CNTRL Is TextBox) Then
CNTRL.Text = ""
ElseIf (TypeOf CNTRL Is DTPicker) Then
CNTRL.Value = Date
CNTRL.MaxDate = Date
End If
Next CNTRL
End Sub
Catatan:
1. Sebelum menjalankan program ada baiknya mengcopykan file lvbutton. Selanjutnya file tersebut diextract dan dicopykan ke c:\windows\system atau c:\windows\system32
2. Untuk menjalankannya jalankan kedua program terlebih dahulu secara bersama-sama.......
Untuk teman-teman pengguna lapto atau notebook berikut ini beberapa tips untuk merawat batteray laptop agar tetap awet. Masalah laptop tidak selalu pada software, terkadang juga mengincar hardware. Kali ini Jalan Tikus akan membahas tentang tips perawatan baterai laptop agar awet. Laptop biasanya menggunakan baterai Li-Ion, dan Li-Ion mampu bertahan hingga 4-5 tahun. Bagaimana cara untuk mempertahankan performa dan keawetan dari baterai tersebut agar tetap dalam kondisi optimal? Hal tersebut sering menjadi kendala bagi pengguna laptop, baterai laptop juga termasuk elemen yang penting dan mahal. Berikut adalah tips untuk menjaga performa baterai laptop:
1. Letakkan pada tempat yang keras
Panas adalah salah satu penyebab dari menurunnya performa baterai, jangan taruh laptop di tempat yang empuk seperti kasur atau bantal yang menyerap panas karena panas yang keluar akan terserap dan diam di laptop
2. Gunakan listrik dengan tegangan stabil
Ketika charge baterai, perhatikan listrik yang dikonsumsi oleh adaptor. Tegangan listrik yang tidak stabil akan membuat adaptor rusak dan performa dari baterai drop.
3. Defrag Hard Disk
Lakukan defrag hard disk secara rutin, dengan melakukan hal tersebut maka kinerja hard disk akan lebih baik dan otomatis mengurangi beban penggunaan baterai. Defrag hard disk dapat menggunakan software Auslogics Disk Defrag.
4. Hibernate dan Standby
Hibernate lebih irit penggunaan baterai daripada Standby, karena beberapa service akan di-non-aktifkan sementara saat mode hibernate.
5. Hard Disk dan CD-ROM
Lebih banyak menggunakan hard disk lebih hemat baterai daripada menggunakan CD-ROM yang lebih boros dalam pemakaian.
6. Kontak Baterai
Rutin membersihkan kontak baterai menggunakan kain yang dibasahi alkohol akan membuat kontak bersih dan transfer daya listrik lebih optimal.
7. Power Option
Pilih pilihan Optimize, karena akan menampilakn efek maksimal dengan penggunaan maksimum baterai.
8. External Device
External Device seperti hard disk external, wifi, bluetooh dan lainnya akan menguras penggunaan baterai anda. Jika tidak sedang digunakan sebaiknya dilepas dari laptop.
9. RAM
Semakin besar RAM maka semakin irit penggunaan baterai, karena performa laptop akan lebih ringan dengan RAM yang besar, dengan begitu baterai juga berkurang beban penggunaanya. Dengan beberapa tips tersebut akan menjaga performa dari baterai laptop anda.
1. Letakkan pada tempat yang keras
Panas adalah salah satu penyebab dari menurunnya performa baterai, jangan taruh laptop di tempat yang empuk seperti kasur atau bantal yang menyerap panas karena panas yang keluar akan terserap dan diam di laptop
2. Gunakan listrik dengan tegangan stabil
Ketika charge baterai, perhatikan listrik yang dikonsumsi oleh adaptor. Tegangan listrik yang tidak stabil akan membuat adaptor rusak dan performa dari baterai drop.
3. Defrag Hard Disk
Lakukan defrag hard disk secara rutin, dengan melakukan hal tersebut maka kinerja hard disk akan lebih baik dan otomatis mengurangi beban penggunaan baterai. Defrag hard disk dapat menggunakan software Auslogics Disk Defrag.
4. Hibernate dan Standby
Hibernate lebih irit penggunaan baterai daripada Standby, karena beberapa service akan di-non-aktifkan sementara saat mode hibernate.
5. Hard Disk dan CD-ROM
Lebih banyak menggunakan hard disk lebih hemat baterai daripada menggunakan CD-ROM yang lebih boros dalam pemakaian.
6. Kontak Baterai
Rutin membersihkan kontak baterai menggunakan kain yang dibasahi alkohol akan membuat kontak bersih dan transfer daya listrik lebih optimal.
7. Power Option
Pilih pilihan Optimize, karena akan menampilakn efek maksimal dengan penggunaan maksimum baterai.
8. External Device
External Device seperti hard disk external, wifi, bluetooh dan lainnya akan menguras penggunaan baterai anda. Jika tidak sedang digunakan sebaiknya dilepas dari laptop.
9. RAM
Semakin besar RAM maka semakin irit penggunaan baterai, karena performa laptop akan lebih ringan dengan RAM yang besar, dengan begitu baterai juga berkurang beban penggunaanya. Dengan beberapa tips tersebut akan menjaga performa dari baterai laptop anda.
Resetter Printer Epson Stylus T20, T20E
Blinking. Berikut ini saya share Software Resetter Printer Epson T20
dan T20E atau Epson Printer Adjustment Program T20 dan T20E. Caranya hampir
sama dengan Cara Reset Printer Epson yang lainnya. Cara Settingnya sudah
terdapat include pada Software tersebut, Anda tinggal Download dan membacanya.
Sebenarnya Resetter Software ini merupakan Software Trial tetapi setelah
melalui proses modifikasi akhirnya dapat dipergunakan seterusnya tanpa
melakukan Setting PC.
Resetter Software Epson Printer atau Adjustment Program T20 dan T20E. Cara Reset Printer Epson Stylus T20 atau T20E nya sama dengan pada printer epson yang lainnya.
Resetter Software Epson Printer atau Adjustment Program T20 dan T20E. Cara Reset Printer Epson Stylus T20 atau T20E nya sama dengan pada printer epson yang lainnya.
Tinggal Extract file
software resetter yang telah Anda download – baca petunjuknya dan siap
dijalankan. Tentunya dengan posisi Printer epson T20 atau T20E yang telah
terkoneksi dengan komputer.
Download softwarenya DISINI
Skripsi
adalah laporan penelitian yang dituangkan dalam bentuk karya tulis (karya tulis
ilmiah) yang disusun menurut kaidah keilmuan dibawah pengawasan atau pengarahan
dosen pembimbing. Skripsi dibuat sebagai salah satu persyaratan menyelesaikan
program studi yang merupakan tugas akhir bagi mahasiswa.
- PEDOMAN PENULISAN
Susunan
pedoman penulisan karya tulis ilmiah secara umum dibagi dalam tiga bagian yang
terdiri atas:
1. AWAL LAPORAN
2. ISI LAPORAN
3. AHIR LAPORAN
- AWAL LAPORAN
Bagian awal
laporan terdiri dari:
- Halaman sampul
- Halaman judul
- Halaman pengesahan
- Kata pengantar
- Ucapan terimakasih
- Abstrak (dalam bahasa Indonesia, Arab dan Inggris)
- Daftar isi
- Daftar table (jika ada)
- Daftar gambar (jika ada)
- Daftar lainnya (jika ada)
- Daftar lampiran (jika ada)
a.
Halaman Sampul
Halaman
sampul adalah halaman terdepan yang pertama kali dibaca dalam suatu karya tulis
ilmiah. Halaman sampul harus dapat memberikan informasi singkat kepada pembaca
tentang karya tulis ilmiah yang berupa judul, identitas penulis, institusi dan
tahun pembuatan. Ketentuan menyangkut penulisan dapat dilihat di bagian C.4 dan
pada contoh halaman sampul pada lampiran 1.
b.
Halaman Judul
Secara umum
informasi yang diberikan pada Halaman Judul sama dengan Halaman Sampul, hanya
saja pada halaman judul biasanya dicantumkan informasi tambahan, yaitu untuk
apa karya tulis ilmiah tersebut dibuat. Ketentuan menyangkkut penulisan bisa
dilihat pada bagian C.5 dan pada contoh Halaman Judul pada lampiran 2.
c.
Halaman Pengesahan
Halaman
Pengesahan untuk menjamin keabsahan karya tulis ilmiah atau pernyataan
diterimanya skripsi sebagai karya tulis ilmiah oleh institusi penulis.
Ketentuan menyangkut mengenai penulisan dapat dilihat di C.6 dan pada Contoh
Halaman Pengesahan pada lampiran 3.
d.
Kata Pengantar
Halaman kata
pengantar memuat pengantar singkat atas tulisan yang dibuat dan ucapan terima
kasih atau penghargaan kepada pihak-pihak yang telah membantu dalam pembuatan
karya ilmiah dan penulisannya tersebut. Sebaiknay ucapan terima kasih dan
penghargaan tersebut mencantumkan bantuan yang mereka berikan, misalnya bantuan
dalam memperoleh masukan, data, sumber-sumber informasi, serta bantuan dalam
menyelesaikan Tugas Akhir tersebut. Ketentuan menyangkut penulisan bisa dilihat
pada bagian C.7 dan pada contoh Kata Pengantar dalam lampiran 4.
e.
Ucapan Terimakasih
Halaman
Ucapan Terima Kasih memuat tentang ucapan terima kasih dan penghargaan yang
ditujukan kepada orang-orang atau lemaga isntitusi yang telah membantu
penulisan karya tulis atau skripsi tersebut.
f.
Abstrak (dalam bahasa Indonesia, Arab dan Inggris)
Abstrak
merupakan garis besar isi dari karya ilmiah yang memuat permasalahan, tujuan,
metode penulisan, hasil dan kesimpulan yang diperoleh. Abstrak dibuat untuk
memudahkan pembaca secara cepat mengerti tulisan untuk memutuskan apakah perlu
dibaca lebih lanjut atau tidak. Ketentuan mengenai penulisan bisa dilihat pada
contoh Abstrak pada bagian C.8 dan pada lampiran 5.
g.
Daftar isi
Daftar Isi
memuat daftar tiap bagian penulisan beserta nomor halaman masing-masing, yang
ditulis persis seperti isi yang bersangkutan.
h.
Daftar Table, Daftar Gambar, Daftar lainnya dan Daftar lampiran (jika ada)
Daftar
table, Daftar gambar, Daftar lainnya dan Daftar lampiran digunakan untuk memuat
tabel, gambar dan yang lain-lainnya yang digunakan dalam penulisan. Penulisan
nama tabel, gambar dan yang lainnya mennggunakan huruf besar diawal kata (title
case). Ketentuan menyangkut penulisan dapat dilihat pada bagian C.10 dan
pada Contoh Daftar Gambar pada lampiran 7.
- ISI LAPORAN
Pembagian
bab, isi laporan dan kesimpulan. Substansi laporan tugas akhir setidaknya
terdiri dari 4 (empat) bab. Bab pertama membicarakan perihal latar belakang
rumusan masalah, tujuan penelitian dan metode penelitan yang digunakan; bab
kedua membahas tentang kajian teoritik yang dieksplor dari berbagai referensi;
bab ketiga merupakan hasil analisis penelitian; dan bab terahir memuat dan
rekomondasi penelitian.
- AHIR LAPORAN
Bagian ini
trdiri dari:
a.
Referensi
Referensi
merupakan daftar bahan bacaan atau referensi yang menjadi sumber dan dasar
penulisan Tugas Akhir berupa buku, artikel, majalah atau surat kabar,
wawancara, sumber yang diakses dari web di internet dan sebagainya.
b.
Lampiran (jika ada)
Lampiran
merupakan data atau pelengkap atau hasil olahan yang menunjang penulisan Tugas
Akhir tetapi tidak diletakkan pada Isi Laporan karena memngganggu kesinambungan
pembacaan, lampiran yang perlu disertakan, dikelompokan menurut jenisnya,
antara lain berupa: jadwal, tabel, daftar pertanyaan, gambar, grafik, desain,
dan lain-lain.
C. PENULISAN
Penampilan
merupakan factor penting untuk mewujudkan Tugas Akhir (Skripsi) yang rapi dan
seragam di lingkungan Sekolah Tinggi Ilmu Tarbiyah (STIT) Muslim Asia Afrika
Jakarta. oleh karena itu, untuk merealisasikan hal tersebut perlu diperhatikan
beberapa aturan teknis sebagai berikut:
1. Kertas
Spesifikasi
kertas yang digunakan:
- Jenis : HVS
- Warna : Putih polos
- Berat : 80 gram
- Ukuran : A4 (21,5 cm x 29,7 cm)
2. Pengetikan
Ketentuan
pengetikan adalah sebagai berikut:
a.
Pengetikan dilakukan pada satu sisi kertas (single side)
b.
Posisi penempatan teks pada tepi kertas