• Tidak ada hasil yang ditemukan

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

Dokumen terkait