Tuesday, September 20, 2016

Source Code VB6 Penerapan Algoritma Fuzzy C-Means

Source Code VB6 Penerapan Fuzzy C-Means - Hasil analisa penulis selaku pembuat skripsi mahasiswa menyatakan tidak ada yang berani memposting code program penerapan fuzzy c-means ke dalam artikel, hal demikian penulis tidak dapat mengetahui penyebabnya. Untuk itu pada artikel kali ini penulis ingin berbagi cara penerapan logika algoritma fuzzy c-means ke dalam code visual basic 6.0.

Sebelumnya berikut tampilan hasil yang penulis buat:

Source Code VB6 Penerapan Algoritma Fuzzy C-Means
Tampilan Hasil
Dan Berikut Code Program yang ada pada form diatas:


'////   Pembentukan Fuzzy  C-means   /////
Sub FUZZYCMEANS()
Dim i As Integer
Dim baris As Integer
Call BukaDatabase
    tabel.Clear
    tabel.Rows = 2
    tabel.Cols = 13
    tabel.FixedRows = 1
    baris = 0
    tabel.TextMatrix(0, 0) = "Kode Calon"
    tabel.TextMatrix(0, 1) = "Nama"
    tabel.TextMatrix(0, 2) = "Jenis Kelamin"
    tabel.TextMatrix(0, 3) = "Tempat Lahir"
    tabel.TextMatrix(0, 4) = "Tanggal Lahir"
    tabel.TextMatrix(0, 5) = "Alamat"
    tabel.TextMatrix(0, 6) = "Pendidikan Akhir (K1)"
    tabel.TextMatrix(0, 7) = "Agama"
    tabel.TextMatrix(0, 8) = "NoTelepon"
    tabel.TextMatrix(0, 9) = "Pengalaman (K2)"
    tabel.TextMatrix(0, 10) = "Kesehatan (K3)"
    tabel.ColWidth(0) = 1000
    tabel.ColWidth(1) = 2000
    tabel.TextMatrix(0, 11) = "Warga Negara"
    tabel.TextMatrix(0, 12) = "Nilai Test (K4)"
    tabel.ColWidth(2) = 1500
    tabel.ColWidth(3) = 1500
    tabel.ColWidth(4) = 1500
    tabel.ColWidth(5) = 1500
    tabel.ColWidth(6) = 2000
    tabel.ColWidth(7) = 1500
    tabel.ColWidth(8) = 1800
    tabel.ColWidth(9) = 1800
    tabel.ColWidth(10) = 1800
    tabel.ColWidth(11) = 1800
    tabel.ColWidth(12) = 2000
For i = Val(NilaiTest.Text) To Val(TTOT.Text)
            Set RSREKAP = New ADODB.Recordset
            RSREKAP.Open " Select * from REKAP " & " Where NILTES='" _
            & i & "'" _
            , KONEKSI, adOpenDynamic, adLockBatchOptimistic
            Do While Not RSREKAP.EOF
            On Error Resume Next
                    baris = baris + 1
                    tabel.Rows = baris + 1
                    tabel.TextMatrix(baris, 0) = RSREKAP!KdCalon
                    tabel.TextMatrix(baris, 1) = RSREKAP!Nama
                    tabel.TextMatrix(baris, 2) = RSREKAP!JenisKelamin
                    tabel.TextMatrix(baris, 3) = RSREKAP!TempatLahir
                    tabel.TextMatrix(baris, 4) = RSREKAP!TanggalLahir
                    tabel.TextMatrix(baris, 5) = RSREKAP!Alamat
                    tabel.TextMatrix(baris, 6) = RSREKAP!PendidikanAkhir
                    tabel.TextMatrix(baris, 7) = RSREKAP!Agama
                    tabel.TextMatrix(baris, 8) = RSREKAP!NoTelepon
                    tabel.TextMatrix(baris, 9) = RSREKAP!Pengalaman
                    tabel.TextMatrix(baris, 10) = RSREKAP!Kesehatan
                    tabel.TextMatrix(baris, 11) = RSREKAP!WNI
                    tabel.TextMatrix(baris, 12) = RSREKAP!NILTES
                    RTBKET.SelRTF = tabel.TextMatrix(baris, 6) & vbTab & tabel.TextMatrix(baris, 9) & vbTab & vbTab & vbTab & tabel.TextMatrix(baris, 10) & vbTab & vbTab & tabel.TextMatrix(baris, 12) & vbCrLf
                    RSREKAP.MoveNext
            Loop
Next i
End Sub
' /// Menentukan nilai akir nilai tes   ///
Sub MKCalon()
Dim i As Integer
Dim vntgjl As Variant
Dim vnDummy As Variant
Call BukaDatabase
RSCalon.Requery
Set RSCalon = New ADODB.Recordset
RSCalon.Open "Select * From Calon order by NILTES", _
KONEKSI, adOpenDynamic, adLockBatchOptimistic
   Do While Not RSCalon.EOF
      vntgjl = RSCalon!NILTES
      If IsNull(vntgjl) Then vntgjl = ""
      TTOT.Text = CStr(vntgjl)
      RSCalon.MoveNext
   Loop
End Sub

Sub MKREKAP()
Dim i As Integer
Dim vntgjl As Variant
Dim vnDummy As Variant
Call BukaDatabase
List2.Clear
RSREKAP.Requery
Set RSREKAP = New ADODB.Recordset
RSREKAP.Open "Select * From REKAP order by NILTES", _
KONEKSI, adOpenDynamic, adLockBatchOptimistic
   Do While Not RSREKAP.EOF
      vntgjl = RSREKAP!NILTES
      If IsNull(vntgjl) Then vntgjl = ""
      List2.AddItem CStr(vntgjl)
      List2.Text = CStr(vntgjl)
      RSREKAP.MoveNext
   Loop
End Sub
'///    Membuat Keterangan Pada Form    ///
Sub KETERANGAN()
MGrs = String$(120, "-")
RTBKET.SelRTF = "Jumlah Cluster" & " = " & "4" & " : " & vbCrLf
RTBKET.SelRTF = "Jumlah Kebutuhan" & " = " & Val(Text2.Text) & vbCrLf
RTBKET.SelRTF = "Kategori Pengelompokan" & " :" & vbCrLf
RTBKET.SelRTF = "Cluster 1" & vbTab & " = " & "Pendidikan Terakhir" & vbCrLf
RTBKET.SelRTF = "Cluster 2" & vbTab & " = " & "Pengalaman" & vbCrLf
RTBKET.SelRTF = "Cluster 3" & vbTab & " = " & "Kesehatan" & vbCrLf
RTBKET.SelRTF = "Cluster 4" & vbTab & " = " & "Nlai Test" & vbCrLf
RTBKET.SelRTF = "Hasil Pengelompokan Berdasarkan Cluster 1 - 4" & vbTab & vbCrLf & MGrs & vbCrLf
RTBKET.SelRTF = "C1" & vbTab & "C2" & vbTab & vbTab & vbTab & "C3" & vbTab & vbTab & "C4" & vbTab & vbCrLf & MGrs & vbCrLf
End Sub

Sub SIMPANCMEANS()
        SqlInsert = "INSERT INTO CMeans " _
        & " (KdCalon,Nama,JenisKelamin,TempatLahir,TanggalLahir,Alamat,PendidikanAkhir,Agama,NoTelepon,Pengalaman,Kesehatan,WNI,NILTES)" _
        & " VALUES('" _
        & tabel.TextMatrix(baris, 0) & "','" _
        & tabel.TextMatrix(baris, 1) & "','" _
        & tabel.TextMatrix(baris, 2) & "','" _
        & tabel.TextMatrix(baris, 3) & "','" _
        & tabel.TextMatrix(baris, 4) & "','" _
        & tabel.TextMatrix(baris, 5) & "','" _
        & tabel.TextMatrix(baris, 6) & "','" _
        & tabel.TextMatrix(baris, 7) & "','" _
        & tabel.TextMatrix(baris, 8) & "','" _
        & tabel.TextMatrix(baris, 9) & "','" _
        & tabel.TextMatrix(baris, 10) & "','" _
        & tabel.TextMatrix(baris, 11) & "','" _
        & tabel.TextMatrix(baris, 12) & "')"
        KONEKSI.Execute SqlInsert, , adCmdText
        RSCMeans.Requery
End Sub
Private Sub CKeluar_Click()
Unload Me
End Sub
Sub HPSDATA()
SqlDelete = "DELETE FROM REKAP WHERE NILTES"
KONEKSI.Execute SqlDelete, , adCmdText
RSREKAP.Requery
End Sub

Sub PROSESPEMBATASANDATA()
Dim i As Integer
'List4.Clear
For i = 0 To LISTTDAKDIBUTUHKAN.ListCount - 1
Set RSREKAP = New ADODB.Recordset
RSREKAP.Open " Select * from REKAP " & " Where NILTES ='" _
& LISTTDAKDIBUTUHKAN.List(i) & "'" _
, KONEKSI, adOpenDynamic, adLockBatchOptimistic
Do While Not RSREKAP.EOF
On Error Resume Next
Text1.Text = RSREKAP!KdCalon
RSREKAP.MoveNext
Loop
    SqlDelete = "DELETE FROM REKAP WHERE  " _
    & " KdCalon='" & Text1.Text & "'"
    KONEKSI.Execute SqlDelete, , adCmdText
    RSREKAP.Requery
Next i
FUZZYCMEANS
End Sub

Sub TAHAPPERTAMA()
Dim i As Integer
On Error GoTo redam
LISTTDAKDIBUTUHKAN.Clear
ALLREKAPNILAI.Selected(i) = False
TSREKAP.Text = Val(TALLSREKAP.Text) - Val(Text2.Text)
For i = 0 To Val(TSREKAP.Text) - 1
        ALLREKAPNILAI.Selected(i) = True
        LISTTDAKDIBUTUHKAN.AddItem ALLREKAPNILAI.List(i)
        LISTTDAKDIBUTUHKAN.Selected(i) = True
Next i
PROSESPEMBATASANDATA
redam:
End Sub

Private Sub CProses_Click()
Dim i As Integer
Dim a As Integer
Dim K As Integer
Dim P As Integer
Dim baris As Integer
Me.MousePointer = vbHourglass
HPSDATA
RTBKET.TextRTF = ""
T1.Text = PendidikanAkhir.ListIndex
T2.Text = PendidikanAkhir.ListCount - 1
PI.Text = Pengalaman.ListIndex
PC.Text = Pengalaman.ListCount - 1
KK1.Text = Kesehatan.ListIndex
KK2.Text = Kesehatan.ListCount - 1
Call KETERANGAN
Call BukaDatabase
    tabel.Clear
    tabel.Rows = 2
    tabel.Cols = 13
    tabel.FixedRows = 1
    baris = 0
    tabel.TextMatrix(0, 0) = "Kode Calon"
    tabel.TextMatrix(0, 1) = "Nama"
    tabel.TextMatrix(0, 2) = "Jenis Kelamin"
    tabel.TextMatrix(0, 3) = "Tempat Lahir"
    tabel.TextMatrix(0, 4) = "Tanggal Lahir"
    tabel.TextMatrix(0, 5) = "Alamat"
    tabel.TextMatrix(0, 6) = "Pendidikan Akhir (K1)"
    tabel.TextMatrix(0, 7) = "Agama"
    tabel.TextMatrix(0, 8) = "NoTelepon"
    tabel.TextMatrix(0, 9) = "Pengalaman (K2)"
    tabel.TextMatrix(0, 10) = "Kesehatan (K3)"
    tabel.TextMatrix(0, 11) = "Warga Negara"
    tabel.TextMatrix(0, 12) = "Nilai Test (K4)"
    tabel.ColWidth(0) = 1000
    tabel.ColWidth(1) = 2000
    tabel.ColWidth(2) = 1500
    tabel.ColWidth(3) = 1500
    tabel.ColWidth(4) = 1500
    tabel.ColWidth(5) = 1500
    tabel.ColWidth(6) = 2000
    tabel.ColWidth(7) = 1500
    tabel.ColWidth(8) = 1800
    tabel.ColWidth(9) = 1800
    tabel.ColWidth(10) = 1800
    tabel.ColWidth(11) = 1800
    tabel.ColWidth(12) = 2000
ALLREKAPNILAI.Clear
For a = T1.Text To T2.Text
    For K = KK1.Text To KK2.Text
        For P = PI.Text To PC.Text
            For i = Val(NilaiTest.Text) To Val(TTOT.Text)
            Set RSCalon = New ADODB.Recordset
            RSCalon.Open " Select * from Calon " & " Where PendidikanAkhir  & Pengalaman & Kesehatan & NILTES='" _
            & PendidikanAkhir.List(a) & Pengalaman.List(P) & Kesehatan.List(K) & i & "'" _
            , KONEKSI, adOpenDynamic, adLockBatchOptimistic
                Do While Not RSCalon.EOF
                    On Error Resume Next
                    baris = baris + 1
                    tabel.Rows = baris + 1
                    tabel.TextMatrix(baris, 0) = RSCalon!KdCalon
                    tabel.TextMatrix(baris, 1) = RSCalon!Nama
                    tabel.TextMatrix(baris, 2) = RSCalon!JenisKelamin
                    tabel.TextMatrix(baris, 3) = RSCalon!TempatLahir
                    tabel.TextMatrix(baris, 4) = RSCalon!TanggalLahir
                    tabel.TextMatrix(baris, 5) = RSCalon!Alamat
                    tabel.TextMatrix(baris, 6) = RSCalon!PendidikanAkhir
                    tabel.TextMatrix(baris, 7) = RSCalon!Agama
                    tabel.TextMatrix(baris, 8) = RSCalon!NoTelepon
                    tabel.TextMatrix(baris, 9) = RSCalon!Pengalaman
                    tabel.TextMatrix(baris, 10) = RSCalon!Kesehatan
                    tabel.TextMatrix(baris, 11) = RSCalon!WNI
                    tabel.TextMatrix(baris, 12) = RSCalon!NILTES
                    ALLREKAPNILAI.AddItem RSCalon!NILTES
                    RSCalon.MoveNext
                        SqlInsert = "INSERT INTO REKAP " _
                        & " (KdCalon,Nama,JenisKelamin,TempatLahir,TanggalLahir,Alamat,PendidikanAkhir,Agama,NoTelepon,Pengalaman,Kesehatan,WNI,NILTES)" _
                        & " VALUES('" _
                        & tabel.TextMatrix(baris, 0) & "','" _
                        & tabel.TextMatrix(baris, 1) & "','" _
                        & tabel.TextMatrix(baris, 2) & "','" _
                        & tabel.TextMatrix(baris, 3) & "','" _
                        & tabel.TextMatrix(baris, 4) & "','" _
                        & tabel.TextMatrix(baris, 5) & "','" _
                        & tabel.TextMatrix(baris, 6) & "','" _
                        & tabel.TextMatrix(baris, 7) & "','" _
                        & tabel.TextMatrix(baris, 8) & "','" _
                        & tabel.TextMatrix(baris, 9) & "','" _
                        & tabel.TextMatrix(baris, 10) & "','" _
                        & tabel.TextMatrix(baris, 11) & "','" _
                        & tabel.TextMatrix(baris, 12) & "')"
                        KONEKSI.Execute SqlInsert, , adCmdText
                        RSREKAP.Requery
                        TALLSREKAP.Text = ALLREKAPNILAI.ListCount
                Loop
            Next i
        Next P
    Next K
Next a
Call MKCalon
Call TAHAPPERTAMA
Me.MousePointer = vbDefault
End Sub
Private Sub Form_Load()
MKCalon
FMU.Enabled = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
FMU.Enabled = True
End Sub

Private Sub Text2_Change()
If Val(Text2.Text) <= 0 Then
Text2.Text = ""
End If
End Sub

Aplikasi ini berjalan jika dibatuh dengan database, artikel ini hanya berisi pada bagian fuzzy  c-means. jika anda seorang programer, tentu anda dapat menggunakan coding di atas, tapi jika anda belum paham, anda dapat menghubungi penulis. terima kasih.

Random Huruf Menggunakan Visual Basic 6.0

Random Huruf Menggunakan Visual Basic 6.0 - kenapa artikel ini penulis buat, ini dikarenakan proses random huruf sangat di perlukan dalam pembuatan program skripsi, seperti halnya dalam pembuatan no otomatis untuk kode pada suatu input data, jika anda harus mengentrikan secara manual, hal demikian penulis rasa kurang baik, dikarenakan program yang nantinya anda buat itu tentunya bertujuan agar pengguna lebih mudah dalam entri data dan tidak manual lagi.

dari alasan diatas, penulis berharap artikel ini dapat anda gunakan sebagai tambahan kelengkapan aplikasi yang anda buat. Adapun bentuk hasil dari Random Huruf Menggunakan Visual Basic 6.0 adalah sebagai berikut:

Random Huruf Menggunakan Visual Basic 6.0
Random Huruf Menggunakan Visual Basic 6.0

dari tampilan diatas diperlukan:
1 buah listbox, 1 buah textbox, dan 1 buah tombol

Adapun Code program yang harus di masukkan ada dibawah ini:
copy saja dan langsung dimasukkan kedalam form

Private Sub Command1_Click()
Dim A As String
    Dim B As String
    Dim C As String
    Dim D As String
    Dim E As String
    Dim F As String
    Dim G As String
    Dim H As String
    Dim I As String
    Dim J As String

    A = Random
    B = Random
    C = Random
    D = Random
    E = Random
    F = Random
    G = Random
    H = Random
    I = Random
    J = Random

    Text1 = A + B + C + D + E + F + G + H + I + J
    List1.AddItem Text1
End Sub

Function RandomNum() As Integer
    RandomNum = Int((9 - 1 + 1) * Rnd + 1)
End Function

Function RandomChar() As String
    Dim Char As Integer
    Char = Int((26 - 1 + 1) * Rnd + 1)
    If Char = 1 Then RandomChar = "A": Exit Function
    If Char = 2 Then RandomChar = "B": Exit Function
    If Char = 3 Then RandomChar = "C": Exit Function
    If Char = 4 Then RandomChar = "D": Exit Function
    If Char = 5 Then RandomChar = "E": Exit Function
    If Char = 6 Then RandomChar = "F": Exit Function
    If Char = 7 Then RandomChar = "G": Exit Function
    If Char = 8 Then RandomChar = "H": Exit Function
    If Char = 9 Then RandomChar = "I": Exit Function
    If Char = 10 Then RandomChar = "J": Exit Function
    If Char = 11 Then RandomChar = "K": Exit Function
    If Char = 12 Then RandomChar = "L": Exit Function
    If Char = 13 Then RandomChar = "M": Exit Function
    If Char = 14 Then RandomChar = "N": Exit Function
    If Char = 15 Then RandomChar = "O": Exit Function
    If Char = 16 Then RandomChar = "P": Exit Function
    If Char = 17 Then RandomChar = "Q": Exit Function
    If Char = 18 Then RandomChar = "R": Exit Function
    If Char = 19 Then RandomChar = "S": Exit Function
    If Char = 20 Then RandomChar = "T": Exit Function
    If Char = 21 Then RandomChar = "U": Exit Function
    If Char = 22 Then RandomChar = "V": Exit Function
    If Char = 23 Then RandomChar = "W": Exit Function
    If Char = 24 Then RandomChar = "X": Exit Function
    If Char = 25 Then RandomChar = "Y": Exit Function
    If Char = 26 Then RandomChar = "Z": Exit Function
End Function

Function Random() As Variant
    Dim Randm As Integer
    Randm = Int((3 - 1 + 1) * Rnd + 1)
    'If Randm = 1 Then
        Random = RandomNum
    'Else
        Random = RandomChar
    'End If
End Function

Jika ada pertanyaan bisa anda hubungi penulis, terima kasih

Sunday, September 4, 2016

SISTEM PERSEDIAAN OBAT PADA PUSKESMAS MENGGUNAKAN METODE NAÏVE BAYES

SISTEM PERSEDIAAN OBAT PADA PUSKESMAS MENGGUNAKAN METODE NAÏVE BAYES (STUDI KASUS PUSKESMAS TALANG TINGGI SELUMA)


Pada Skripsi ini dibahas mengenai prediksi persediaan obat menggunakan metode naive bayes pada puskesmas Talang Tinggi Seluma.
Jika anda ingin skripsi lengkapnya, anda dapat menghubungi pengulis di fb: mesa bkl,
Berikut skripsinya

BAB I PENDAHULUAN

1.1. Latar Belakang
Puskesmas adalah sebuah unit pelayanan kesehatan yang bergerak dibidang jasa dalam hal pelayanan kesehatan kepada masyarakat. Sistem pencatatan persediaan obat yang digunakan saat ini masih mengunakan cara manual baik dalam penyediaan maupun pengeluaran obat tersebut, tentu saja hal ini kurang efisien.
Algoritma Naive Bayes Classifiers merupakan salah satu algoritma yang terdapat pada teknik klasifikasi. Naive Bayes merupakan pengklasifikasian dengan metode probabilitas dan statistik yang dikemukan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi peluang di masa depan berdasarkan pengalaman dimasa sebelumnya sehingga dikenal sebagai Teorema Bayes. Teorema tersebut dikombinasikan dengan Naive dimana diasumsikan kondisi antar atribut saling bebas. (Bustami, 2014)
Puskesmas Talang Tinggi Seluma belum dapat memprediksi kebutuhan persediaan obat
berdasarkan data obat yang di perlukan, ini disebabkan sistem pemesanan masih bersifat manual, yang mana pengecekan data persediaan obat satu persatu dan kemudian direkap kedalam buku lalu dipindahkan kedalam Laporan Permohonan Obat (LPO) dan diajukan ke Gudang Farmasi Kabupaten Seluma.
Dengan mengecek data persediaan obat satu persatu, hal ini dapat menyebabkan kekeliruan, dikarenakan pada ruang apotik puskesmas terdapat 200 jenis obat, sedangkan pada setiap jenis obat terdapat berbagai macam obat. Kekeliruan penghitungan obat akan berdampak pada keberlebihan obat, sedangkan obat yang berlebih akan menumpuk dan lama kelamaan akan kadaluarsa dan tidak dapat lagi digunakan dan dibakar.
Berdasarkan uraian diatas maka penulis tertarik untuk mengangkat judul pada skripsi ini yang berjudul: “Sistem Persediaan Obat Pada Puskesmas Menggunakan Metode Naïve Bayes (Studi Kasus Puskesmas Talang Tinggi Seluma)”, Sehingga dengan sistem ini diharapkan dapat memprediksi persediaan obat yang harus dipasok sebelum obat itu habis, sistem persediaan obat nantinya akan di olah menggunakan metode Naïve Bayes.

1.2. Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan diatas, Bagaimana membuat aplikasi sistem persediaan obat yang terorganisir dan mudah digunakan?

1.3. Batasan Masalah
Karena keterbatasan waktu, maka ruang lingkup permasalahan dalam merancang perangkat lunak ini antara lain:
  1. Implementasikan metode Naïve Bayes Classifiers Untuk Sistem Persediaan Obat,
  2. Penelitian dilakukan di Puskesmas Talang Tinggi Seluma, jalan Mayjen Sutoyo Km. 49 Desa Talang Tinggi Kecamatan Seluma Barat 38883.
  3. Adapun jenis data yang akan diolah adalah data persediaan obat.

1.4. Tujuan Penelitian
  1. Untuk membuat sebuah aplikasi yang membantu dalam Sistem prediksi persediaan obat,
  2. Untuk Mengontrol setiap laporan data persediaan obat agar tidak terjadi kekeliruan dalam pendataan laporan,
  3. Untuk Mempermudah dalam membuat rekap data data persediaan obat

1.5. Manfaat Penelitian
  1. Dengan adanya sistem persediaan obatini, dapat membantu dalam kinerja dalam melakukan pelaporan, pengecekan dan penyimpanan data,
  2. Dapat menghemat waktu dalam pengerjaan data-data yang berhubungan dengan persediaan obat, dapat membantu dalam keakuratan data yang disampaikan, data yang penting tidak tercecer sebagaimana sebelumnya


BAB III METODOLOGI PENELITIAN

3.1. Subjek Penelitian
Puskesmas Talang Tinggi dibangun pada tahun 1992 dan terletak di kecamatan Seluma Barat Kabupaten Seluma tepatnya di Jalan Raya Bengkulu Tais KM 49. Batas-batas wilayah Puskesmas Talang Tinggi:
  1. Sebelah Timur berbatasan dengan PT Agri Andalas
  2. Sebelah Selatan berbatasan dengan Wilayah Kerja Puskesmas Tais
  3. Sebelah Barat berbatasan dengan perbukitan Bukit Barisan
  4. Sebelah Utara berbatasan dengan Wilayah Kerja Puskesmas Tumbu‟an
Luas wilayah Puskesmas Talang Tinggi adalah 10.245 KM2 meliputi 9 (sembilan) desa dan terdiri 9 (sembilan) posyandu, dan 9 (sembilan) desa terdapat 4 (empat) desa terletak di daerah terpencil, yaitu Purbosari, Talang Perapat, Tanjung Agung dan Lubuk Lagan, sedangkan 5 (lima) desa lagi terletak di desa biasa, yaitu: Talang Tinggi, Pagar Agung, Lunjuk dan Air Latak, dan tambahan satu desa pemekaran yaitu Desa Sengkuang Jaya, rata-rata tempuh menuju ke Puskesmas dengan jarak terdekat yaitu ± 15 menit sedangkan jarak terjauh yaitu ± ½ (setengah) jam. Jumlah penduduk wilayah kerja Puskesmas Talang Tinggi yaitu 9.388 jiwa dengan penduduk miskin yaitu ± 4.489 jiwa.
Mata pencaharian penduduk di wilayah kerja Puskesmas Talang Tinggi yaitu sebagian besar petani, terutama petani karet, sawit dan petani padi, sedangkan sebagian kecil adalah di sector buruh, jasa dan Pegawai Negeri Sipil.
3.1.1. Tempat dan Waktu
Penelitian Penelitian ini di laksanakan di Puskesmas Talang Tinggi, Jalan Mayjen Sutoyo KM. 49 38883 Desa Talang Tinggi Kecamatan Seluma Barat Kabupaten Seluma Provinsi Bengkulu, Penelitian ini berlangsung selama 3 bulan dimulai dari Juni sampai dengan September 2016.
3.1.2. Struktur Organisasi
Struktur organisasi perusahaan dapat diartikan sebagai mekanismemekanisme formal dengan organisasi dikelola. Struktur organisasi menunjukkan kerangka dan susunan pola tetap yang saling berhubung diantara fungsi-fungsi, bagian-bagian, posisi-posisi maupun orang-orang yang menunjukkan kedudukan, tugas serta tanggung jawab yang berbeda dalam organisasi. Berdasarkan organisasi secara keseluruhan dan satuan kerjanya akan mempengaruhi struktur sosial. Struktur organisasi Puskesmas Talang Tinggi dapat dilihat pada gambar dibawah ini:
SISTEM PERSEDIAAN OBAT PADA PUSKESMAS MENGGUNAKAN METODE NAÏVE BAYES
Struktur Organisasi



3.2. Metode Penelitian
Dalam melakukan peranelitian ini, mengunakan metode pengembangan sistem yang mana tahapan dalam pengembangan sistem terdiri dari enam tahapan yaitu;
  1. Survey, bertujuan mengetahui ruang lingkup pekerjaan
  2. Analisis data, bertujuan untuk memahami sistem yang ada mengidentifikasi masalah dan
  3. cara solusinya.
  4. Desain, bertujuan untuk mendesain sestem baru yang dapat menyelesaikan masalah yang dihadapi.
  5. Pembuatan, membuat sistem yang sudah didesain atau menyiapkan semua yang dibutuhkan sparti perangkat keras dan perangkat lunaknya. 
  6. Implementasi, bertujuan untuk mengimplementasikan sistem yang baru.
  7. Pemeliharaan, bertujuan agar sistem dapat berjalan secara optimal.

3.3. Metode Pengumpulan Data
Adapun metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut:
a. Studi Pustaka (Library Research)
Metode ini dilakukan dengan cara mengadakan peninjauan terhadap buku-buku, referensi, dan sumber data yang lainnya yang berhubungan dengan masalah yang diteliti, yaitu masalah penerapan Algoritma Naive Bayes Classifiers dalam memprediksi persediaan obat pada Puskesmas Talang Tinggi Seluma dan mendapatkan landasan teori dalam penelitian yang kemudian dijadikan sebagai patokan dalam menarik suatu kesimpulan.
b. Study Lapangan (Field Research)
Metode ini dilakukan dengan cara mangadakan hubungan langsung terhadap objek yang diteliti, ditempu dalam penelitian ini adalah:
1. Wawancara, yaitu mengumpulkan data dengan cara tanya jawab kepada pihak apoteker Puskesmas Talang Tinggi Seluma.
2. Observasi, yaitu mengadakan pengamatan langsung pada kegiatan yang dilakukan Puskesmas Talang Tinggi Seluma.
3. Dokumentasi, yaitu mengumpulkan data dari dokumentasi, atau catatan-catatan yang ada pada Puskesmas Talang Tinggi Seluma.
3.4. Software Dan Hardware
Adapun Software dan Hardware yang digunakan dalam penelitian ini adalah:
a. Software
Adapun Software yang digunakan dalam penelitian ini adalah:
1. Sisitem operasi Windows XP Service Pack II
2. Aplikasi Microsoft Visual Basic 6.0
b. Hardware
Adapun hardware yang dibutukan pada penelitian ini adalah:
1. Satu Unit Laptop Asus
a. Prosessor Intel Pentium Core i7
b. Memori 4 GB
c. Hardisk 512 GB
2. Optical Mouse
3. Printer Canon IP2700
3.5. Metode Perancangan Sistem
3.5.1. Analisa Sistem Aktual
Sebelum melakukan pengembangan terhadap suatu sistem, telebih dahulu penulis menganalisa sistem yang dipakai pada puskesmas Talang Tinggi Seluma, dalam proses prediksi persediaan obat, hal ini belum dilakukan.


3.5.2. Analisa Sistem Baru
Dalam penelitian ini penulis akan membuat suatu aplikasi sebagai media untuk memprediksi perdeiaan obat. 
SISTEM PERSEDIAAN OBAT PADA PUSKESMAS MENGGUNAKAN METODE NAÏVE BAYES
Diagram Konteks

B. Data Flow Diagram Level 0
SISTEM PERSEDIAAN OBAT PADA PUSKESMAS MENGGUNAKAN METODE NAÏVE BAYES
Gambar 3.3. Data Flow Diagram Level0
C. ERD (Entity Relationship Diagram)

SISTEM PERSEDIAAN OBAT PADA PUSKESMAS MENGGUNAKAN METODE NAÏVE BAYES
Gambar 3.4. Diagram ERD