BAB V. ANALISIS HASIL
5.1 Analisis Hasil Perangkat Lunak
Untuk dapat terkoneksi dengan database, sistem ini dilengkapi dengan modul koneksi antara sistem dengan database. Modul koneksi tersebut akan dieksekusi pada saat proses login user.
Berikut perintah pada modul koneksi database:
Module Connection
Public Function Database()
Dim myConn As SqlConnection
myConn = New SqlConnection("server=CHIMERA; database=RS; Trusted_Connection=yes")
Return myConn
End Function End Module
User bagian administrator, kasir, dan penagihan memiliki user interface halaman utama yang berbeda sesuai dengan hak akses yang dimiliki masing-masing bagian.
Berikut perintah yang mengatur pembagian hak akses pada proses login user:
Dim Conn As SqlConnection
Conn = Database() Conn.Open()
Dim myReader As SqlDataReader
Dim Id_Role As Integer Dim command As SqlCommand
Dim sql As String = "Select Id_Role from User1 Where User_Name= '" & txtUser.Text.Trim & "' And Password= '" & txtPassword.Text.Trim & "' "
command = New SqlCommand(sql, Conn) myReader = command.ExecuteReader()
If myReader.HasRows Then
i = 0
While myReader.Read()
End While myReader.Close() End If If Id_Role = 1 Then Show_Admin() Me.Hide()
ElseIf Id_Role = 2 Then
Show_Kasir()
Me.Hide()
ElseIf Id_Role = 3 Then
Show_Penagihan()
Me.Hide()
Else
i = i + 1
Untuk mengeksekusi data numeric, membaca database, dan mengeksekusi query pada database, sistem juga dilengkapi dengan modul fungsi.
Berikut perintah untuk modul fungsi :
Module Fungsi
Private myConn As SqlConnection
Public Function getNumeric(ByVal sqlQuery As String) As Integer
myConn = Database() myConn.Open()
Dim myReader As SqlDataReader
Dim cmd As SqlCommand
Dim data As Integer
cmd = New SqlCommand(sqlQuery, myConn) myReader = cmd.ExecuteReader Try If myReader.Read Then data = myReader.GetValue(0) End If Catch ex As Exception
MessageBox.Show("Failed to reader cause " &
ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
myReader.Close() myConn.Close()
Return data
End Function
Public Function isEmpty(ByVal sqlQuery As String) As Integer
myConn = Database() myConn.Open()
Dim myReader As SqlDataReader
Dim cmd As SqlCommand
myReader = cmd.ExecuteReader Try If myReader.HasRows Then isEmpty = 0 Else isEmpty = 1 End If Catch ex As Exception
MessageBox.Show("Failed to reader cause " &
ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
myReader.Close() myConn.Close()
Return isEmpty
End Function
Public Function executeQuery(ByVal sqlQuery As String) myConn = Database()
myConn.Open()
Try
Dim commandExe As New SqlCommand(sqlQuery, myConn) commandExe.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show("Failed to reader cause " &
ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
myConn.Close()
End Function End Module
Pada beberapa user interface akan ditampilkan isi dari database dalam bentuk datagrid, hal ini dimaksudkan untuk mempermudah proses manipulasi data. Berikut salah satu contoh perintah untuk datagrid:
Public Sub Data_Grid()
Dim myConn As SqlConnection
Dim daUser As SqlDataAdapter
Dim dsUser As DataSet myConn = Database() myConn.Open()
Dim sqlselect As String = "Select User1.User_Name 'User Name',User1.Password 'Password',ROLE.Role 'Bagian' from User1,ROLE Where" & _
" ROLE.Id_Role=User1.Id_Role"
daUser = New SqlDataAdapter(sqlselect, myConn) dsUser = New DataSet
daUser.Fill(dsUser, "USER1") dgUser.DataSource = dsUser dgUser.DataMember = ("USER1") dgUser.ReadOnly = True
myConn.Close()
End Sub
Sistem informasi ini juga dilengkapi fasilitas pengendalian kesalahan misalnya untuk data yang tidak lengkap, dan kesalahan memasukkan format tipe data.
Berikut contoh perintah untuk pengendalian kesalahan:
Try
Dim myConn As SqlConnection
Dim myReader As SqlDataReader myConn = Database()
myConn.Open()
Dim no_mr As String
Dim sqlSelect As String = "Select NO_MR from PASIEN order by NO_MR asc"
Dim comm As SqlCommand = New SqlCommand(sqlSelect, myConn) myReader = comm.ExecuteReader() If myReader.HasRows Then While myReader.Read() no_mr = myReader.Item("NO_MR") End While End If myReader.Close() If txtNama.Text = "" Then
MsgBox("Silahkan masukkan nama pasien", MsgBoxStyle.OKOnly, "Info")
txtNama.Focus()
ElseIf (IsNumeric(txtNama.Text) = True) Then
MsgBox("Data masukkan salah. Data Nama yang anda masukkan tidak boleh berupa angka", MsgBoxStyle.OKOnly, "Info")
txtNama.Text = "" txtNama.Focus()
ElseIf txtAlamat.Text = "" Then
MsgBox("Silahkan masukkan alamat pasien", MsgBoxStyle.OKOnly, "Info")
txtAlamat.Focus()
ElseIf DTP1.Checked = False Then
MsgBox("Silahkan masukkan tanggal lahir pasien", MsgBoxStyle.OKOnly, "Info")
DTP1.Focus()
ElseIf txtKota.Text = "" Then
MsgBox("Silahkan masukkan kota kelahiran pasien", MsgBoxStyle.OKOnly, "Info")
txtKota.Focus()
ElseIf (IsNumeric(txtKota.Text) = True) Then
MsgBox("Data masukkan salah. Data Kota yang anda masukkan tidak boleh berupa angka", MsgBoxStyle.OKOnly, "Info")
txtKota.Text = "" txtKota.Focus()
ElseIf txtUmur.Text = "" Then
MsgBox("Silahkan masukkan umur pasien Inputan harus berupa angka (0-9)", MsgBoxStyle.OKOnly, "Info")
txtUmur.Focus()
ElseIf (IsNumeric(txtUmur.Text) = False) Then
MsgBox("Nilai yang anda masukkan salah ! Inputan harus berupa angka (0-9)", MsgBoxStyle.OKOnly, "Info")
txtUmur.Text = "" txtUmur.Focus()
ElseIf cmbKelamin.Text = "--pilih kelamin--" Then
MsgBox("Silahkan pilih jenis kelamin pasien", MsgBoxStyle.OKOnly, "Info")
cmbKelamin.Focus()
ElseIf cmbStatus.Text = "--pilih status--" Then
MsgBox("Silahkan pilih status pasien", MsgBoxStyle.OKOnly, "Info")
cmbStatus.Focus()
ElseIf cmbAgama.Text = "--pilih agama--" Then
MsgBox("Silahkan pilih agama pasien", MsgBoxStyle.OKOnly, "Info")
cmbAgama.Focus()
ElseIf txtOrtu.Text = "" Then
MsgBox("Silahkan masukkan nama orang tua pasien", MsgBoxStyle.OKOnly, "Info")
txtOrtu.Focus()
ElseIf (IsNumeric(txtOrtu.Text) = True) Then
MsgBox("Data masukkan salah. Data Nama yang anda masukkan tidak boleh berupa angka", MsgBoxStyle.OKOnly, "Info")
txtOrtu.Focus()
ElseIf cmbPerusahaan.Text = "--pilih perusahaan--"
Then
MsgBox("Silahkan pilih perusahaan pasien", MsgBoxStyle.OKOnly, "Info")
cmbPerusahaan.Focus()
Else
Dim ans = MsgBox("Anda yakin akan menambahkan data tersebut?", MsgBoxStyle.OKCancel, "Konfirmasi")
Pada user interface data pasien, data perusahaan, dan data pembayaran terdapat id pasien berupa no mr, id perusahaan dan no folio untuk untuk pasien. Semua id tersebut dibuat (generate) oleh sistem secara otomatis untuk mencegah terjadinya redudancy data.
Berikut perintah untuk generate mr:
Public Sub generate_mr()
Dim myConn As SqlConnection
Dim myReader As SqlDataReader
Dim angka, angka2 As Integer
angka2 = 0
Dim no_mr As String Dim no_mr1 As String Dim n As Integer
myConn = Database() myConn.Open()
Dim sql As String = "Select NO_MR from PASIEN"
Dim command As SqlCommand = New SqlCommand(sql, myConn)
Try myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() no_mr = myReader.Item("NO_MR") n = Len(no_mr)
angka = CInt(Mid$(no_mr, 4, n))
If angka2 < angka Then
angka2 = angka End If End While no_mr = CStr(angka2 + 1) no_mr1 = "00-" + CStr(no_mr) txtMr.Text = no_mr1 Else : no_mr1 = "00-1" txtMr.Text = no_mr1 End If myReader.Close() Catch ex As Exception
MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info")
End Try
myConn.Close()
End Sub
Berikut perintah untuk generate id perusahaan:
Public Sub generate_id()
Dim myConn As SqlConnection
Dim myReader As SqlDataReader
Dim i As Integer = 1
Dim perusahaan_id As String Dim perusahaan_id2 As String
myConn = Database() myConn.Open()
order by ID_PERUSAHAAN"
Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then Try While myReader.Read perusahaan_id = CInt(Mid(Trim(myReader.GetString(0)), 2, 5)) If perusahaan_id = i Then i = i + 1 End If End While Catch ex As Exception
MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try perusahaan_id2 = CStr(i) If perusahaan_id2.Length = 1 Then perusahaan_id2 = "P00" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2
ElseIf perusahaan_id2.Length = 2 Then
perusahaan_id2 = "P0" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2
ElseIf perusahaan_id2.Length = 3 Then
perusahaan_id2 = "P" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 End If myReader.Close() myConn.Close() Else perusahaan_id2 = "P001" txtId.Text = perusahaan_id2 End If End Sub
Berikut perintah untuk generate nomor folio :
Public Sub generate_folio()
Dim myConn As SqlConnection
Dim myReader As SqlDataReader
Dim angka, angka2 As Integer
angka2 = 0
Dim no_folio As String Dim no_folio1 As String Dim n As Integer
myConn = Database() myConn.Open()
Dim sql As String = "Select NO_FOLIO from BIAYA"
Dim command As SqlCommand = New SqlCommand(sql, myConn)
Try
myReader = command.ExecuteReader()
If myReader.HasRows Then While myReader.Read()
no_folio = myReader.Item("NO_FOLIO") n = Len(no_folio)
angka = CInt(Mid$(no_folio, 4, n))
If angka2 < angka Then
angka2 = angka
End If End While
no_folio = CStr(angka2 + 1)
no_folio1 = "FO-" + CStr(no_folio) txtFolio.Text = no_folio1
Else : no_folio1 = "FO-1" txtFolio.Text = no_folio1
End If
myReader.Close()
Catch ex As Exception
MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info")
End Try
myConn.Close()
End Sub
5.2 Kelebihan Dan Kekurangan Sistem