Implementasi Kompresi Algoritma Huffman Pada Sms Gateway Untuk Layanan Siraman Rohani Islam Berdasarkan Kriteria (Sholat, Puasa, Zakat dan Haji)

LISTING PROGRAM
1.

Menu Utama

Public Class frmMenu
Private Sub mnuQuit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuQuit.Click
Close()
End Sub
Private Sub mnuLogin_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuLogin.Click
Me.mnuFile.Enabled = False
Me.mnuModem.Enabled = False
frmLogin.Show()
End Sub
Private Sub mnuUser_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuUser.Click
frmUser.Show()
End Sub
Private Sub mnuAbt_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles mnuAbt.Click
frmAbt.Show()
End Sub
Private Sub frmMenu_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
If bolLogin = True Then
Me.mnuFile.Enabled = True
Me.mnuModem.Enabled = True
Me.mnuModem.Enabled = True
Else
Me.mnuFile.Enabled = False
Me.mnuModem.Enabled = False
Me.mnuModem.Enabled = False
End If
End Sub
Private Sub mnuSR_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuSR.Click
frmKriteria.Show()
End Sub
Private Sub mnuKriteria_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles mnuKriteria.Click
frmKR.Show()
End Sub
Private Sub mnuModem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles mnuModem.Click
frmModem.Show()
End Sub
End Class

60
Universitas Sumatera Utara

2. Login
Imports System.Data.SqlClient
Public Class frmLogin
Dim Cari As Boolean
Dim Tambah As Boolean
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click
Me.Close()

End Sub
Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
KoneKsi()
txtPasswd.Enabled = False
txtUserID.Select()
End Sub
Private Sub txtUserID_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtUserID.KeyPress
If e.KeyChar = Chr(13) Then
CMD = New SqlCommand("select * from UUser where userID='" &
txtUserID.Text & "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
txtPasswd.Enabled = True
txtPasswd.Focus()
Else
MsgBox("User tidak ada")
txtUserID.Text = ""

txtUserID.Focus()
End If
RD.Close()
End If
End Sub
Private Sub txtPasswd_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtPasswd.KeyPress
If e.KeyChar = Chr(13) Then
cmdOK.Enabled = True
cmdOK.Select()
End If
End Sub
Private Sub txtUserID_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles txtUserID.MouseMove
CMD = New SqlCommand("select * from UUser where userID='" & _
txtUserID.Text & "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
UserID = txtUserID.Text

End If
RD.Close()
End Sub
Private Sub txtUserID_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles txtUserID.TextChanged
If Len(txtUserID.Text) < 0 Then
Exit Sub

61
Universitas Sumatera Utara

Else
If txtUserID.Text = "so" Then
txtUserID.Text = "sohib"
End If
txtPasswd.Enabled = True
End If
End Sub
Private Sub cmdOK_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdOK.Click

CMD = New SqlCommand("select * from UUser where userID='" & _
txtUserID.Text & "' and passwd='" & txtPasswd.Text & "'", Conn)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows = True Then
bolLogin = True
Me.Hide()
frmMenu.mnuFile.Enabled = True
frmMenu.mnuModem.Enabled = True
frmMenu.Show()
Else
bolLogin = False
MsgBox("Login salah, periksa kembali user name dan password")
txtUserID.Focus()
End If
End Sub
End Class

3. Kriteria
Imports System.Data.SqlClient

Public Class frmKR
Dim str1(2) As String
Dim IDKriteria As String
Dim BolSave As Boolean
Sub Bersih()
IDKriteria = 0
txtKri.Text = ""
bolTambah = False
bolCari = False
cmdAdd.Enabled = True
cmdSave.Enabled = False
cmdEdit.Enabled = False
cmdDelete.Enabled = False
End Sub
Private Sub frmKR_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Call KoneKsi()
Call Bersih()
Call Segar()
txtKri.Enabled = False

cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub
Sub CariID()
CMD = New SqlCommand("select * from Kriteria where Kriteria='" & _
txtKri.Text & "'", Conn)
RD = CMD.ExecuteReader

62
Universitas Sumatera Utara

If RD.Read Then
BolSave = False
Else
BolSave = True
End If
RD.Close()

CMD.Dispose()
End Sub
Sub Segar()
cmdSave.Enabled = False
cmdDelete.Enabled = False
lv.Clear()
Dim lv1 As ListViewItem
With lv
.Columns.Clear()
.Columns.Add("ID", 100, HorizontalAlignment.Left)
.Columns.Add("Kriteria", 100, HorizontalAlignment.Left)
.View = View.Details
.GridLines = True
.BorderStyle = BorderStyle.Fixed3D
.AutoArrange = True
End With
CMD = New SqlCommand("select * from Kriteria order by IDKriteria asc",
_
Conn)
RD = CMD.ExecuteReader

Do While RD.Read
str1(0) = RD.Item("IDKriteria")
str1(1) = RD.Item("Kriteria")
lv1 = New ListViewItem(str1)
lv.Items.Add(lv1)
Loop
RD.Close()
CMD.Dispose()
End Sub

Private Sub cmdAdd_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdAdd.Click
bolTambah = True
cmdAdd.Enabled = False
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
txtKri.Enabled = True
txtKri.Focus()
End Sub

Private Sub cmdQuit_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdQuit.Click
Close()
End Sub
Private Sub txtKri_TextChanged(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles txtKri.TextChanged
If bolTambah = True Then
cmdSave.Enabled = True
End If
End Sub

63
Universitas Sumatera Utara

Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdSave.Click
cmdSave.Enabled = False
Call CariID()
If BolSave = True Then
CMD = New SqlCommand("Insert into Kriteria (IDKriteria,Kriteria) _
values ('" & Strings.Left(txtKri.Text, 1) & "','" & _
txtKri.Text & "')", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
Call Segar()
X = MsgBox("Ada data kriteria lagi ?", vbYesNo)
If X = vbYes Then
txtKri.Text = ""
txtKri.Focus()
Else
Call Bersih()
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End If
End If
End Sub
Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdEdit.Click
CMD = New SqlCommand("Update Kriteria SET Kriteria='" & _
txtKri.Text & "' where IDKriteria='" & IDKriteria & "'", Conn)
RD = CMD.ExecuteReader
Call Segar()
Call Bersih()
MsgBox("Data udah diEdit")
txtKri.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
RD.Close()
CMD.Dispose()
End Sub
Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdDelete.Click
cmdSave.Enabled = False
cmdDelete.Enabled = False
CMD = New SqlCommand("Delete from Kriteria where IDKriteria='" & _
IDKriteria & "'", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
Call Bersih()
Call Segar()
MsgBox("Data sudah dihapus")
cmdSave.Enabled = False

64
Universitas Sumatera Utara

cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub
Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdClear.Click
Call Segar()
Call Bersih()
End Sub
Private Sub lv_SelectedIndexChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles lv.SelectedIndexChanged
txtKri.Text = ""
IDKriteria = ""
IDKriteria = lv.FocusedItem.SubItems(0).Text
txtKri.Text = lv.FocusedItem.SubItems(1).Text
cmdEdit.Enabled = True
cmdDelete.Enabled = True
txtKri.Enabled = True
RD.Close()
CMD.Dispose()
End Sub
End Class

4. SiramanRohani
Imports System.Data.SqlClient
Public Class frmKriteria
Dim str1(3) As String
Dim IDSr As Integer
Dim IDKriteria As String
Sub Bersih()
IDSr = 0
Combo1.Text = ""
txtKet.Text = ""
Combo1.Enabled = False
txtKet.Enabled = False
bolTambah = False
bolCari = False
End Sub
Private Sub frmKriteria_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
KoneKsi()
Call Bersih()
Call Segar()
Combo1.Enabled = False
txtKet.Enabled = False
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub
Sub CariID()
CMD = New SqlCommand("select * from SiramanRohani order by IDSR DESC",
_

65
Universitas Sumatera Utara

Conn)
RD = CMD.ExecuteReader
If RD.Read Then
IDSr = RD.Item("IDSR") + 1
Else
IDSr = 1
End If
RD.Close()
CMD.Dispose()
End Sub
Sub Segar()
cmdSave.Enabled = False
cmdDelete.Enabled = False
lv.Clear()
Dim lv1 As ListViewItem
With lv
.Columns.Clear()
.Columns.Add("ID", 100, HorizontalAlignment.Left)
.Columns.Add("Kriteria", 100, HorizontalAlignment.Left)
.Columns.Add("Siraman Rohani", 100, HorizontalAlignment.Left)
.View = View.Details
.GridLines = True
.BorderStyle = BorderStyle.Fixed3D
.AutoArrange = True
End With
CMD = New SqlCommand("select * from SiramanRohani order by IDSR asc",
Conn)
RD = CMD.ExecuteReader
Do While RD.Read
str1(0) = RD.Item("IDSR")
str1(1) = RD.Item("IDKriteria")
str1(2) = RD.Item("SR")
lv1 = New ListViewItem(str1)
lv.Items.Add(lv1)
Loop
RD.Close()
CMD.Dispose()
End Sub
Private Sub cmdAdd_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdAdd.Click
bolTambah = True
cmdAdd.Enabled = False
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
Combo1.Enabled = True
Combo1.Focus()
End Sub
Private Sub cmdQuit_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdQuit.Click
Close()
End Sub
Private Sub Combo1_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Combo1.SelectedIndexChanged
If Combo1.Text = "SHOLAT" Then
IDKriteria = "S"

66
Universitas Sumatera Utara

ElseIf Combo1.Text = "ZAKAT" Then
IDKriteria = "Z"
ElseIf Combo1.Text = "PUASA" Then
IDKriteria = "P"
ElseIf Combo1.Text = "HAJI" Then
IDKriteria = "H"
End If
txtKet.Enabled = True
txtKet.Focus()
End Sub
Private Sub txtKet_TextChanged(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles txtKet.TextChanged
If bolTambah = True Then
cmdSave.Enabled = True
End If
End Sub
Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdSave.Click
cmdSave.Enabled = False
Call CariID()
CMD = New SqlCommand("Insert into SiramanRohani (IDSR,IDKriteria,SR) _
values (" & IDSr & ",'" & IDKriteria & "','" & txtKet.Text & "')", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
Call Segar()
X = MsgBox("Ada data dengan kriteria ini ?", vbYesNo)
If X = vbYes Then
txtKet.Text = ""
txtKet.Focus()
Else
MsgBox("")
Call Bersih()
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End If
End Sub
Private Sub lv_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles lv.Click
Combo1.Text = ""
txtKet.Text = ""
IDSr = lv.FocusedItem.SubItems(0).Text
IDKriteria = lv.FocusedItem.SubItems(1).Text
If IDKriteria = "S" Then
Combo1.Text = "SHOLAT"
ElseIf IDKriteria = "Z" Then
Combo1.Text = "ZAKAT"
ElseIf IDKriteria = "P" Then
Combo1.Text = "PUASA"
ElseIf IDKriteria = "H" Then
Combo1.Text = "HAJI"
End If

67
Universitas Sumatera Utara

CMD = New SqlCommand("select * from SiramanRohani where IDsr=" & _
IDSr & "", Conn)
RD = CMD.ExecuteReader
If RD.Read Then
txtKet.Text = RD.Item("SR")
cmdDelete.Enabled = True
cmdEdit.Enabled = True
txtKet.Enabled = True
Else
Combo1.Text = ""
txtKet.Text = ""
End If
RD.Close()
CMD.Dispose()
End Sub
Private Sub lv_SelectedIndexChanged(ByVal sender As System.Object, ByVal e
As _
System.EventArgs) Handles lv.SelectedIndexChanged
End Sub
Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdEdit.Click
CMD = New SqlCommand("Update SiramanRohani SET SR='" & txtKet.Text & _
"' where IDSr=" & IDSr & "", Conn)
RD = CMD.ExecuteReader
Call Segar()
Call Bersih()
MsgBox("Data udah diEdit")
Combo1.Text = ""
txtKet.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
RD.Close()
CMD.Dispose()
End Sub
Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdDelete.Click
cmdSave.Enabled = False
cmdDelete.Enabled = False
CMD = New SqlCommand("Delete from SiramanRohani where IDSr=" & _
IDSr & "", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
Call Bersih()
Call Segar()
MsgBox("Data sudah dihapus")
Combo1.Text = ""
txtKet.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub

68
Universitas Sumatera Utara

Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdClear.Click
Call Segar()
Call Bersih()
End Sub
End Class

5.

User

Imports System.Data.SqlClient
Public Class frmUser
Dim UserID As String
Dim Passwd As String
Dim Oto As String
Dim str1(2) As String
Private Sub frmUser_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
KoneKsi()
Call Segar()
End Sub
Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdClear.Click
txtUserID.Text = ""
txtPasswd.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub
Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdEdit.Click
CMD = New SqlCommand("Update UUser SET passwd='" & txtPasswd.Text & "'
_
where UserID='" & txtUserID.Text & "'", Conn)
RD = CMD.ExecuteReader
Call Segar()
MsgBox("Data udah diEdit")
txtUserID.Text = ""
txtPasswd.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
RD.Close()
CMD.Dispose()
End Sub
Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdDelete.Click
cmdSave.Enabled = False
cmdDelete.Enabled = False
CMD = New SqlCommand("Delete from UUser where UserID='" & _
txtUserID.Text & "'", Conn)

69
Universitas Sumatera Utara

RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
Call Segar()
MsgBox("Data sudah dihapus")
txtUserID.Text = ""
txtPasswd.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub
Private Sub cmdQuit_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdQuit.Click
Me.Close()
End Sub
Sub Segar()
cmdSave.Enabled = False
cmdDelete.Enabled = False
lv.Clear()
Dim lv1 As ListViewItem
With lv
.Columns.Clear()
.Columns.Add("UserID", 100, HorizontalAlignment.Left)
.Columns.Add("Password", 100, HorizontalAlignment.Left)
.View = View.Details
.GridLines = True
.BorderStyle = BorderStyle.Fixed3D
.AutoArrange = True
End With
CMD = New SqlCommand("select * from UUser order by UserID asc", Conn)
RD = CMD.ExecuteReader
Do While RD.Read
str1(0) = RD.Item("UserID")
str1(1) = RD.Item("Passwd")
lv1 = New ListViewItem(str1)
lv.Items.Add(lv1)
Loop
RD.Close()
CMD.Dispose()
End Sub
Private Sub cmdAdd_Click_1(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdAdd.Click
cmdAdd.Enabled = False
txtUserID.Select()
txtUserID.Focus()
End Sub
Private Sub cmdSave_Click_1(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdSave.Click
cmdSave.Enabled = False
CMD = New SqlCommand("Insert into UUser (UserID, Passwd) values ('" & _
txtUserID.Text & "','" & txtPasswd.Text & "')", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()

70
Universitas Sumatera Utara

Call Segar()
MsgBox("Data sudah disimpan")
txtUserID.Text = ""
txtPasswd.Text = ""
cmdSave.Enabled = False
cmdDelete.Enabled = False
cmdEdit.Enabled = False
cmdAdd.Enabled = True
cmdAdd.Focus()
End Sub

Private Sub txtUserID_KeyPress(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles txtUserID.KeyPress
If e.KeyChar = Chr(13) Then
CMD = New SqlCommand("select * from UUser where UserID='" & _
txtUserID.Text & "'", Conn)
RD = CMD.ExecuteReader
If RD.HasRows Then
MsgBox("Data udah ada")
Else
txtPasswd.Select()
End If
RD.Close()
CMD.Dispose()
End If
End Sub
Private Sub txtPasswd_KeyPress(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles txtPasswd.KeyPress
If e.KeyChar = Chr(13) Then
cmdSave.Enabled = True
cmdSave.Select()
End If
End Sub
Private Sub cmdClear_Click_1(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdClear.Click
txtUserID.Text = ""
txtPasswd.Text = ""
cmdAdd.Enabled = True
cmdDelete.Enabled = False
cmdSave.Enabled = False
cmdEdit.Enabled = False
End Sub
Private Sub lv_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles lv.Click
txtUserID.Text = ""
txtPasswd.Text = ""
UserID = lv.FocusedItem.SubItems(0).Text
txtUserID.Text = UserID
CMD = New SqlCommand("select * from UUser where UserID='" _
& UserID & "'", Conn)
RD = CMD.ExecuteReader
If RD.Read Then
Passwd = RD.Item("Passwd")
txtPasswd.Text = Passwd
cmdDelete.Enabled = True
cmdEdit.Enabled = True

71
Universitas Sumatera Utara

txtPasswd.Enabled = True
Else
txtUserID.Text = ""
txtPasswd.Text = ""
End If
RD.Close()
CMD.Dispose()
End Sub
Private Sub lv_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles lv.SelectedIndexChanged
End Sub
End Class

6. Modem
Imports System.Data.SqlClient
Public Class frmModem
Dim str1(4) As String
Dim IDKriteria As String
Dim SR As String
Dim NoPonsel As String
Dim IDKirim As Integer
Dim IDSms As Integer
Dim IDSR As Integer
Dim JumData As Integer
Dim AngkaAcak As Integer
Dim AngkaTertinggi As Integer
Dim AngkaTerendah As Integer
Dim Panjang As Integer
Dim Total As Integer
Dim SmsKom As String
Dim IsiSms As String
Dim JumByteSmsKom As Integer
Dim JumBitSmsKom As Integer
Private Sub frmModem_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Call KoneKsi()
Timer1.Enabled = True
End Sub
Sub Segar()
Call BacaPOrt()
txtSMS.Text = strATZ
txtSMS.Text = strATGS
txtSMS.Text = strATGL
lv.Clear()
Dim lv1 As ListViewItem
With lv
.Columns.Clear()
.Columns.Add("ID Sms", 60, HorizontalAlignment.Left)
.Columns.Add("Tgl Sms", 100, HorizontalAlignment.Left)
.Columns.Add("No.Ponsel", 100, HorizontalAlignment.Left)
.Columns.Add("Isi Sms", 100, HorizontalAlignment.Left)
.View = View.Details
.GridLines = True
.BorderStyle = BorderStyle.Fixed3D
.AutoArrange = True
End With
CMD = New SqlCommand("select * from SMS where statusProses='*' _

72
Universitas Sumatera Utara

order by IDSms asc", Conn)
RD = CMD.ExecuteReader
Do While RD.Read
str1(0) = RD.Item("IDSms")
str1(1) = RD.Item("TglSms")
str1(2) = RD.Item("NoPonsel")
str1(3) = RD.Item("Isi")
lv1 = New ListViewItem(str1)
lv.Items.Add(lv1)
Loop
RD.Close()
CMD.Dispose()
Timer2.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer1.Tick
Call Segar()
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer2.Tick
Timer1.Enabled = False
txtSMS.Text = ""
IDKriteria = ""
SR = ""
IDKriteria = ""
SR = ""
IDKirim = 0
IDSms = 0
IDSR = 0
JumData = 0
AngkaAcak = 0
AngkaTertinggi = 0
AngkaTerendah = 0
Panjang = 0
Total = 0
SmsKom = ""
JumByteSmsKom = 0
JumBitSmsKom = 0
NoPonsel = ""
IsiSms = ""
CMD = New SqlCommand("select * from tblTerima", Conn)
RD = CMD.ExecuteReader
If RD.Read Then
NoPonsel = RD.Item("NoPonsel")
IsiSms = RD.Item("Isi")
Else
NoPonsel = ""
IsiSms = ""
End If
RD.Close()
CMD.Dispose()
If NoPonsel "" And NoPonsel "TELKOMSEL" Then
'MsgBox("" & NoPonsel)
IDSms = 0
CMD = New SqlCommand("select * from SMS order by IDSMS DESC", Conn)
RD = CMD.ExecuteReader

73
Universitas Sumatera Utara

If RD.Read Then
IDSms = RD.Item("IDsms") + 1
Else
IDSms = 1
End If
RD.Close()
CMD.Dispose()
If IDSms 0 Then
CMD = New SqlCommand("Insert into SMS _
(IDSms,TglSMS,NoPonsel,Isi,StatusProses) values _
(" & IDSms & ",'" & Format(Now, "yyyy/MM/dd") & "','" _
& NoPonsel & "','" & IsiSms & "','1')", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
End If
CMD = New SqlCommand("Delete from tblTerima", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
Else
CMD = New SqlCommand("Delete from tblTerima", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
End If
CMD = New SqlCommand("select * from SMS where statusProses='1'", Conn)
RD = CMD.ExecuteReader
If RD.Read Then
IDSms = RD.Item("IDSms")
IDKriteria = Strings.Left(RD.Item("Isi"), 1)
lblID.Text = IDSms
lblTgl.Text = RD.Item("TglSms")
lblNoPonsel.Text = RD.Item("NoPonsel")
NoPonsel = RD.Item("NoPonsel")
If UCase(IDKriteria) = "S" Then
lblKriteria.Text = "Sholat"
ElseIf UCase(IDKriteria) = "P" Then
lblKriteria.Text = "Puasa"
ElseIf UCase(IDKriteria) = "Z" Then
lblKriteria.Text = "Zakat"
ElseIf UCase(IDKriteria) = "H" Then
lblKriteria.Text = "Haji"
End If
Else
IDKriteria = ""
lblKriteria.Text = ""
txtSMS.Text = ""
lblID.Text = ""
lblTgl.Text = ""
lblNoPonsel.Text = ""
End If
RD.Close()
CMD.Clone()
If IDKriteria "" Then
CMD = New SqlCommand("select * from SiramanRohani where _

74
Universitas Sumatera Utara

IDKriteria='" & IDKriteria & "'", Conn)
RD = CMD.ExecuteReader()
If RD.Read Then
Do While RD.Read
JumData = JumData + 1
Loop
Else
JumData = 0
End If
RD.Close()
CMD.Dispose()
CMD = New SqlCommand("select * from SiramanRohani where _
IDKriteria='" & IDKriteria & "' order by IDSR DESC", Conn)
RD = CMD.ExecuteReader()
If RD.Read Then
AngkaTertinggi = RD.Item("IDSR")
Else
AngkaTertinggi = 1
End If
RD.Close()
CMD.Dispose()
CMD = New SqlCommand("select * from SiramanRohani where _
IDKriteria='" & IDKriteria & "' order by IDSR ASC", Conn)
RD = CMD.ExecuteReader()
If RD.Read Then
AngkaTerendah = RD.Item("IDSR")
Else
AngkaTerendah = 1
End If
RD.Close()
CMD.Dispose()
AngkaAcak = Int(Rnd() * (AngkaTertinggi - AngkaTerendah + 1) + _
AngkaTerendah)
txtSmsAsli.Text = ""
CMD1 = New SqlCommand("select * from SiramanRohani where _
IDKriteria='" & IDKriteria & "' and IDSR=" & AngkaAcak & "", Conn)
RD1 = CMD1.ExecuteReader()
If RD1.Read Then
SR = Strings.Left(RD1.Item("SR"), 255)
txtSmsAsli.Text = SR
IDSR = AngkaAcak 'RD1.Item("IDSR")
Else
SR = ""
End If
txtSMS.Text = SR
RD1.Close()
CMD1.Dispose()
If IDSR 0 Then
Call CariID()
CMD = New SqlCommand("Insert into SMSKirim _
(IDKirim,TglKirim,IDSms,IDSR,SR,StatusKirim,NoPonsel) values _
(" & IDKirim & ",'" & Format(Now, "yyyy/MM/dd") & "'," & IDSms & ",'" _
& IDSR & "','" & SR & "','1','" & lblNoPonsel.Text & "')", Conn)
RD = CMD.ExecuteReader
RD.Close()

75
Universitas Sumatera Utara

CMD.Dispose()
CMD = New SqlCommand("Insert into LogSMSKirim _
(IDKirim,TglKirim,IDSms,IDSR,SR,StatusKirim,NoPonsel) _
values (" & IDKirim & ",'" & Format(Now, "yyyy/MM/dd") & "',_
" & IDSms & ",'" & IDSR & "','" & SR & "','1','" & _
lblNoPonsel.Text & "')", Conn)
RD = CMD.ExecuteReader
RD.Close()
CMD.Dispose()
CMD1 = New SqlCommand("Update SMS set statusProses='*' where _
IDSMS=" & IDSms & "", Conn)
RD1 = CMD1.ExecuteReader
RD1.Close()
CMD1.Dispose()

If txtSMS.Text "" Then
Dim AtB As New ASCIItoBIN(txtSMS.Text)
txtCODE.Text = AtB.convertASCIItoBIN()
lblJumByte.Text = jumByte
lblJumBit.Text = jumBit
End If
Dim myProcess As New Process()
myProcess.Start()
JumByteSmsKom = 0
CMD = New SqlCommand("select * from FreqChar order by Jumlah _
Desc", Conn)
RD = CMD.ExecuteReader
If RD.Read Then
List2.Items.Clear()
Do While RD.Read
JumByteSmsKom = JumByteSmsKom + 1
Panjang = Len(RD.Item("Tanda"))
Total = Total + Panjang
SmsKom = SmsKom & RD.Item("Tanda")
List2.Items.Add("Char-> " & RD.Item("char") & " _
Jumlah-> " & RD.Item("Jumlah") & " Tanda:- " & RD.Item("Tanda") & " Panjang:- "
& Panjang & " _
Total Panjang:- " & Total)
Loop
End If
RD.Close()
CMD.Dispose()
txtSmsKom.Text = Strings.Left(SmsKom, 255)
JumBitSmsKom = Len(SmsKom)
'MsgBox("" & JumBitSmsKom)
lblJumBitKom.Text = JumBitSmsKom
'lblJumBitKom.Text = Total
CMD1 = New SqlCommand("Update SMSKirim set IsiKirim='" & _
txtSmsKom.Text & "',JumByteSmsAsli=" & jumByte & _
",JumBitSmsAsli=" & jumBit & ",JumBitSmsComp=" & _
JumBitSmsKom & " where IDKirim=" & IDKirim & "", Conn)
RD1 = CMD1.ExecuteReader
RD1.Close()
CMD1.Dispose()
CMD1 = New SqlCommand("Update LogSMSKirim set IsiKirim='" & _
txtSmsKom.Text & "',JumByteSmsAsli=" & jumByte & _

76
Universitas Sumatera Utara

",JumBitSmsAsli=" & jumBit & ",JumBitSmsComp=" & _
JumBitSmsKom & " where IDKirim=" & IDKirim & "", Conn)
RD1 = CMD1.ExecuteReader
RD1.Close()
CMD1.Dispose()
Else
txtCODE.Clear()
lblJumByte.Text = ""
lblJumBit.Text = ""
End If
Timer2.Enabled = False
Timer1.Enabled = True
End If
End Sub

Sub CariID()
IDKirim = 0
CMD = New SqlCommand("select * from LogSMSKirim order by IDKirim DESC",
_
Conn)
RD = CMD.ExecuteReader
If RD.Read Then
IDKirim = RD.Item("IDKirim") + 1
Else
IDKirim = 1
End If
RD.Close()
CMD.Dispose()
End Sub
End Class

7.

Module

Imports System.Data.SqlClient
Module ModAPP
Public DA As SqlDataReader
Public DS As DataSet
Public CMD As SqlCommand = Nothing
Public CMD1 As SqlCommand = Nothing
Public PRS As SqlCommand = Nothing
Public rsUpdate As SqlCommand
Public RD As SqlDataReader = Nothing
Public RD1 As SqlDataReader = Nothing
Public RRD As SqlDataReader = Nothing
Public DR As SqlDataReader = Nothing
Public Kon As SqlConnection
Public strConn As String
Public Conn As SqlConnection
Public bolLogin As Boolean
Public bolTambah As Boolean
Public bolCari As Boolean
Public X As String, Y As String
Public Oto As String
Public Otoritas As String
Public UserID As String
Public IDChar As Integer

77
Universitas Sumatera Utara

Public jumByte As Integer
Public jumBit As Integer
Public strATZ As String
Public strATGL As String
Public strATGS As String
Public Sub KoneKsi()
strConn = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
Application.StartupPath & "\dbSmsSR.mdb")
strConn = ("Integrated Security=SSPI; " & _
"Persist Security Info=True;Initial Catalog=dbSmsSR;" & _
"Data Source=(LOCAL)")
Conn = New SqlConnection(strConn)
If Conn.State = ConnectionState.Closed Then
Conn.Open()
End If
End Sub
Public Sub BacaPOrt()
strATZ = "ATZ"
strATGL = "AT+CMGL=1"
strATGS = "AT+CMGS=1"
End Sub
End Module

8. KompresHuffman
Option Explicit
Public Sub CharFrequency(text As String, character() _
As String, char_count() As Long)
Dim temp As String
Dim match As Boolean
Dim length As Long
Dim value As Long
Dim I As Integer
Dim J As Integer
length = Len(text)
ReDim character(0)
ReDim char_count(0)
If length = 0 Then
character(0) = "-1"
char_count(0) = "-1"
Exit Sub
End If
Do Until Len(text) = 0
temp = Left(text, 1)
If temp = " " Then temp = "SPC"
For I = 0 To UBound(character)
If temp = character(I) Then
char_count(I) = char_count(I) + 1
match = True
End If
Next I
If Not match Then
character(UBound(character)) = temp
char_count(UBound(char_count)) = 1
ReDim Preserve character(UBound(character) + 1)
ReDim Preserve char_count(UBound(char_count) + 1)

78
Universitas Sumatera Utara

End If
text = Mid(text, 2)
match = False
Loop
For I = 0 To UBound(character) - 1
value = char_count(I)
For J = (I + 1) To UBound(character) - 1
If char_count(J) > value Then
char_count(UBound(char_count)) = char_count(I)
character(UBound(character)) = character(I)
char_count(I) = char_count(J)
character(I) = character(J)
char_count(J) = char_count(UBound(char_count))
character(J) = character(UBound(character))
value = char_count(I)
End If
Next J
Next I
ReDim Preserve character(UBound(character) - 1)
ReDim Preserve char_count(UBound(char_count) - 1)
End Sub

79
Universitas Sumatera Utara