Anda di halaman 1dari 72

i

Sistem Informasi Penjualan Obat


Apotek Dharma Jl. Ketintang 170 Surabaya
Dengan Menggunakan Microsoft Visual Studio 2005
dan Microsoft Access 2003

TUGAS MADYA

Diajukan Oleh :

Dwi Jayanti Hermanto 08130011


Nursetyo Nugroho 08130145

Komputer Informatika
Program Pendidikan Keahlian Bisnis
UNIVERSITAS NEGERI SURABAYA
2009

i
ii

SISTEM INFORMASI PENJUALAN OBAT


APOTEK DHARMA
Jl. KETINTANG 170 SURABAYA

Oleh :

[ Dwi Jayanti Hermanto dan Nursetyo Nugroho]


[ 08130011 dan 08130145]

Telah dipertahankan dihadapan dan diterima oleh


Tim Penguji Tugas Madya
Universitas Negeri Surabaya
Program Pendidikan Keahlian Bisnis
Program Studi Komputer Informatika

Tanggal Persetujuan : ......../......../.........

Dosen Pembimbing,

(Ahmad Fauzi)

ii
iii

LEMBAR PERNYATAAN

Yang bertanda tangan di bawah ini,

Nama : Dwi Jayanti Hermanto


: Nursetyo Nugroho
N.I.M : 08130011
: 08130145
Program Studi : Komputer Informatika
Judul Final Project : Sistem Informasi Penjualan Obat Apotek
Dengan Menggunakan Microsoft Visual
Studio 2005 dan Microsoft Access 2003
Dengan ini kami menyatakan bahwa hasil penulisan TUGAS
MADYA yang telah kami buat ini adalah hasil karya sendiri dan benar
keasliannya. Apabila ternyata dikemudian hari penulisan TUGAS
MADYA ini adalah hasil penjiplakan dari karya tulis orang lain, maka
kami bersedia menerima sanksi sesuai dengan peraturan tata tertib yang
berlaku di Program Pendidikan Keahlian Bisnis Universitas Negeri
Surabaya ( P2KB UNESA ).
Demikian pernyataan ini kami buat dalam keadaan sadar dan
tanpa ada paksaan dari pihak manapun.

Tim Penulis

iii
iv

KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Esa,


atas segala limpahan rahmat dan karunia sehingga kami dapat
menyelesaikan Tugas Madya yang ditempuh pada jurusan Komputer
Informatika pada Cawu III di PPKB Unesa.
Dengan terselesainya Tugas Madya ini tidak lupa kami ucapkan
terima kasih kepada semua pihak, antara lain :
1. Bapak Ahmad Fauzi, S.Kom, selaku dosen pembimbing dalam
penyusunan Tugas Madya.
2. Bapak dan Ibu Dosen, selaku dosen yang membantu dalam
memberikan pelajaran dan materi.
3. Teman teman yang membantu dan mendukung dalam pelaksanan
Tugas Madya.
4. Semua pihak yang terlibat secara sengaja maupun tidak sengaja
yang tidak bisa kami sebut satu-persatu.
Kami menyadari bahwa dalam penulisan buku ini jauh dari
kesempurnaan, sesuai dengan peribahasa Tak ada gading yang tak
retak, maka kami mengharapkan kritik dan saran yang membangun
guna kesempurnaan buku ini. Akhirnya, kami berharap semoga buku ini
dapat memenuhi harapan kita semua.

Surabaya, 16 Oktober 2009

Tim Penulis

iv
v

DAFTAR ISI
Halaman Judul......................................................................................i
Lembar Pengesahan.............................................................................ii
Lembar Pernyataan.............................................................................iii
Kata Pengantar...................................................................................iv
Daftar Isi..............................................................................................v
Daftar Gambar....................................................................................vi
Daftar Tabel.......................................................................................vii

BAB I PENDAHULUAN
1.1 Latar Belakang......................................................................1
1.2 Rumusan Masalah.................................................................2
1.3 Tujuan....................................................................................3
1.4 Batasan Masalah...................................................................3

BAB II DESAIN SISTEM


2.1 Flowchart Proses Pembelian Obat..........................................4
2.2 Desain Data Base...................................................................5
2.3 Desain Input dan Output........................................................9

BAB III IMPLEMENTASI SISTEM


3.1 Form Log In.........................................................................21
3.2 Form Utama..........................................................................22
3.3 Form Obat............................................................................25
3.4 Form Jenis Obat...................................................................31
3.5 Form Transaksi Penjualan....................................................37

v
vi

3.6 Form Pembeli.......................................................................44


3.7 Form Supplier.......................................................................50
3.8 Form Laporan.......................................................................56

BAB IV PENUTUP
4.1 Kesimpulan...........................................................................59
4.2 Saran.....................................................................................59

DAFTAR GAMBAR
2.1 Flowchart Proses Pembelian Obat...............................................4
2.2 Desain Data Base.........................................................................5
2.3 Desain Form Login/Awal............................................................9
2.4 Desain Form Utama...................................................................10
2.5 Desain Form Obat .....................................................................11
2.6 Desain Form Jenis Obat.............................................................13
2.7 Desain Form Pembeli................................................................14
2.8 Desain Form Supplier................................................................16
2.9 Desain Form Transaksi Penjualan............................................18
2.10 Desain Output............................................................................20
3.1 Form Log In...............................................................................21
3.2 Form Utama...............................................................................22
3.3 Form Obat..................................................................................25
3.4 Form Jenis Obat.........................................................................31
3.5 Form Transaksi Penjualan.........................................................37
3.6 Form Pembeli............................................................................44
3.7 Form Supplier............................................................................50
3.8 Form Laporan............................................................................56

vi
vii

DAFTAR TABEL
2.1 Tabel Obat......................................................................................6
2.2 Tabel Jenis Obat.............................................................................6
2.3 Tabel Pembeli................................................................................6
2.4 Tabel Supplier................................................................................7
2.5 Tabel Detail Masuk........................................................................7
2.6 Tabel Detail Jual............................................................................8
2.7 Tabel Transaksi Jual.......................................................................8
2.8 Tabel Transaksi Masuk..................................................................9

vii
viii

viii
ix

BAB I
PENDAHULUAN

ix
1

BAB I
PENDAHULUAN

1.1 Latar Belakang

Perkembangan arus globalisasi yang diiringi dengan


perkembangan Teknologi Informasi (TI) menyebabkan arus
informasi yang dulunya sulit didapatkan kini dapat dengan
mudah diperoleh sesuai dengan kebutuhan.
Komputer merupakan suatu perangkat yang sangat
dibutuhkan untuk proses penyajian pengolahan data, agar data
yang diolah dapat memberikan suatu informasi yang diperlukan
oleh pimpinan ataupun suatu perusahaan yang membutuhkan.
Apotek Dharma merupakan suatu usaha yang bergerak
dibidang penjualan obat haruslah pandai mengatur strategi
penjualan untuk meningkatkan hasil penjualannya. Di mana
apotek ini berfungsi sebagai penyedia dan penyalur obat
harusnya mampu memberikan pelayanan yang terbaik kepada
masyarakat. Tetapi dalam hal pengolahan data masih terkesan
manual misalnya saja jika karyawan tersebut ingin membuat
suatu laporan bulanan tentang penjualan obat dimana dalam
pembuatan laporan sering terjadi kesalahan-kesalahan apabila
laporan tersebut diperiksa oleh pimpinan apotek. Sistem
komputerisasi dalam proses penjualan akan membantu dalam
hal pengolahan data apotek. Untuk menunjang kualitas
tersebut, maka diperlukan suatu sistem informasi yang mudah

1
2

dari segi waktu dan akan memberikan data yang cepat, tepat
dan akurat.
Sistem informasi apotek sangatlah penting bagi
Apotek Dharma dalam proses penyajian dan pengolahan data
sehingga memberikan informasi yang dibutuhkan pimpinan
apotek itu sendiri. Oleh karena itu, kualitas sumber daya
manusia juga merupakan faktor penting, di samping itu
diperlukan pula adanya kerjasama yang baik antara karyawan
dan pimpinan apotek akan sangat membantu dalam tercapainya
suatu tujuan pada Apotek Dharma.
Dilihat dari latar belakang tersebut, kami mengambil
suatu kesimpulan bagaimana memberikan yang terbaik bagi
apotek tersebut. Terutama dalam hal mengolah data maka, kami
merasa perlu mengadakan penelitian dengan judul Sistem
Informasi Penjualan Obat Apotek Dharma Jl. Ketintang 170
Surabaya Dengan Menggunakan Microsoft Visual Studio 2005
dan Microsoft Access 2003.

1.2 Rumusan Masalah

Berdasarkan analisa dan latar belakang di atas, maka


dapat disimpulkan rumusan masalah sebagai berikut :
Bagaimana cara mengaplikasikan masalah dalam program
komputerisasi.
Bagaimana cara memasukkan data-data yang masuk dan
keluar secara tepat dan akurat.
Bagaimana melakukan proses penjualan secara cepat dan
efisien.
Bagaimana untuk membuat laporan penjualan.

2
3

1.3 Tujuan

Dalam penulisan buku ini kami akan membuat


aplikasi yang dilakukan mulai tahap analisis hingga ujicoba,
dan evaluasi, dengan kemampuan aplikasi sebagai berikut :
Merancang suatu sistem informasi berbasis komputer
dalam hal memproses data koleksi obat, pembeli,
penjualan obat pada Apotek Dharma.
Ragam informasi dan laporan yang bisa dicetak cukup
lengkap untuk memenuhi kebutuhan manajemen apotek.

1.4 Batasan Masalah

Dalam masalah final project ini akan di buat aplikasi


dengan batasan sebagai berikut :
Mampu mendata penjualan obat.
Mampu menginputkan, mengedit data obat dan transaksi
penjualan.
Mampu membuat laporan data penjualan obat.
Aplikasi ini dikerjakan mengunakan bahasa
pemrograman Microsoft Visual Studio 2005 (C#) dan Microsoft
Access 2003.
BAB II
DESAIN SISTEM

2.1 Flowchart Proses Pembelian Obat

3
4

Gambar 2.1

Keterangan :
1. Pembeli memesan obat pada penjual.
2. Apakah obat yang dikehendaki cocok.
3. Kalau tidak cocok pembeli memilih obat yang
cocok lagi. Kalau cocok, obat itu dibeli.

4
5

4. Pembeli memesan lagi apa tidak.


5. Jika ingin memesan lagi pesan pada penjual
kemudian dibayar. Jika tidak memesan lagi bayar
obat yang dipesan.

2.2 Desain Data Base

Gambar 2.2
1. TABEL OBAT

NAMA KOLOM PRIMARY KEY TIPE DATA

5
6

Kode_Obat Yes Text


Nama_Obat No Text
Harga_Jual No Number

Tabel 2.1

2. TABEL JENIS OBAT

NAMA KOLOM PRIMARY KEY TIPE DATA


Kode_Jenis Yes Text
Nama_Jenis No Text

Tabel 2.2

3. TABEL PEMBELI

NAMA KOLOM PRIMARY KEY TIPE DATA


Kode_pembeli Yes Text
Nama_pembeli No Text
Alamat_pembeli No Text
Tanggal_beli No Date/Time

Tabel 2.3
4. TABEL SUPPLIER

NAMA KOLOM PRIMARY KEY TIPE DATA


Kode_Supplier Yes Text
Nama_Supplier No Text

6
7

Alamat_Supplier No Text
Telepon_Supplier No Text

Tabel 2.4

5. TABEL DETAIL MASUK

NAMA KOLOM PRIMARY KEY TIPE DATA


Kode_Detail Yes Text
Kode_Obat Yes Text
Jumlah_Obat No Number
Tanggal_Produksi No Date/Time
Tanggal_Kadaluarsa No Date/Time

Tabel 2.5

6. TABEL DETAIL JUAL

NAMA KOLOM PRIMARY KEY TIPE DATA

7
8

Kode_Detail Yes Text


Kode_Obat Yes Text
Obat No Text
Banyak No Number
Harga No Number
Total No Number

Tabel 2.6

7. TABEL TRANSAKSI JUAL

NAMA KOLOM PRIMARY KEY TIPE DATA


Kode_Transaksi_Jual Yes Text
Kode_Pembeli No Text
Nama_Pembeli No Text
Alamat No Text
Tanggal_Beli No Date/Time
Jam No Date/Time

Tabel 2.7

8. TABEL TRANSAKSI MASUK

NAMA KOLOM PRIMARY KEY TIPE DATA


Kode_Transaksi Yes Text

8
9

Kode_Supplier No Text
Tanggal_Masuk No Date/Time

Tabel 2.8

2.3 Desain Input dan Output


2.3.1 Desain Input
Desain input yaitu kumpulan gambar form-form yang
terdapat dalam aplikasi. Form-form tersebut sebagai aplikasi
untuk melaksanakan proses pencatatan kegiatan transaksi.
Dalam desain input ini penulis menggunakan Microsoft Visual
Studio 2005. Tampilan halaman awal seperti berikut :

2.3.1.1 Desain Form Log In/Awal


Sebelum masuk ke menu utama kita harus melakukan
login terlebih dahulu. Jika berhasil login kita akan menuju ke
halaman menu utama. Berikut gambar form awal (login) :

Gambar 2.3
Keterangan :
Kolom Username : Digunakan untuk memasukkan nama user.
Kolom Password : Digunakan untuk mengisi password.

9
10

Link Sign In : Digunakan apabila kita telah mengisi


username dan password dengan benar.

2.3.1.2 Desain Form Utama


Form ini berisi menu utama yang ada pada aplikasi
yang kami buat, berikut ini adalah gambar dari form menu
utama :

Gambar 2.4

2.3.1.3 Desain Form Obat


Form obat digunakan untuk memasukkan data-data
obat. Berikut ini adalah gambar dari form data obat :

10
11

Gambar 2.5
Keterangan :
Kolom Kode Obat : Kolom yang digunakan untuk
menginputkan kode obat yang
akan kita masukkan.
Kolom Nama Obat : Kolom yang digunakan untuk
menginputkan nama obat yang
akan kita masukkan.
Kolom Harga Jual : Kolom yang digunakan untuk
menginputkan harga obat yang
akan kita masukkan.
Icon Add : Adalah sebuah tombol yang
digunakan untuk menambah data

11
12

obat yang baru.


Icon Edit : Adalah sebuah tombol yang
digunakan untuk merubah data
obat yang ingin dirubah datanya.
Icon Save : Adalah sebuah tombol yang
digunakan untuk menyimpan data
obat yang baru atau data obat yang
mengalami perubahan.
Icon Cancel : Adalah sebuah tombol yang
digunakan untuk membatalkan
proses masukan data.
Icon Delete : Adalah sebuah tombol yang
digunakan untuk menghapus data
obat.

2.3.1.4 Desain Form Jenis Obat


Form jenis obat digunakan untuk memasukkan data
jenis obat. Berikut ini adalah gambar dari form jenis obat :

12
13

Gambar 2.6

Keterangan :
Kolom Kode Jenis : Kolom yang digunakan untuk
menginputkan kode jenis obat yang
akan kita masukkan.
Kolom Nama Jenis : Kolom yang digunakan untuk
menginputkan jenis obat yang akan
kita masukkan.
Icon Add : Adalah sebuah tombol yang digunakan
untuk menambah data jenis obat yang baru.
Icon Edit : Adalah sebuah tombol yang digunakan

13
14

untuk mengedit data jenis obat yang salah


atau untuk melakukan perubahan.
Icon Save : Adalah sebuah tombol yang digunakan
untuk menyimpan data obat yang baru
ditambah atau data yang baru mengalami
perubahan.
Icon Delete : Adalah sebuah tombol yang digunakan
untuk menghapus data obat.

2.3.1.5 Desain Form Pembeli


Form pembeli digunakan untuk memasukkan data-
data pembeli. Berikut ini adalah gambar dari form data pembeli
:

Gambar 2.7

Keterangan :
Kolom Kode Pembeli : Kolom yang digunakan untuk

14
15

menginputkan kode pembeli yang


akan kita masukkan.
Kolom Nama Pembeli : Kolom yang digunakan untuk
menginputkan nama pembeli yang
akan kita masukkan.
Kolom Alamat Pembeli : Kolom yang digunakan untuk
menginputkan alamat pembeli
yang akan kita masukkan.
Tanggal Beli : Kolom yang digunakan untuk
menginputkan tanggal beli obat
yang akan kita masukkan.
Icon Add : Adalah sebuah tombol yang
digunakan untuk menambah data
pembeli yang baru.
Icon Edit : Adalah sebuah tombol yang
digunakan untuk merubah data
pembeli.
Icon Save : Adalah sebuah tombol yang
digunakan untuk menyimpan data
pembeli yang baru atau perubahan
data.
Icon Delete : Adalah sebuah tombol yang
digunakan untuk menghapus data
pembeli.

2.3.1.6 Desain Form Supplier

15
16

Form supplier digunakan untuk memasukkan data-


data supplier. Berikut ini adalah gambar dari form supplier :

Gambar 2.8
Keterangan :
Kolom Kode Supplier : Kolom yang digunakan untuk
menginputkan kode supplier yang
akan kita masukkan.
Kolom Nama Supplier : Kolom yang digunakan untuk
menginputkan nama supplier yang
akan kita masukkan.
Kolom Alamat Supplier : Kolom yang digunakan untuk
menginputkan alamat supplier
yang akan kita masukkan.

16
17

Kolom Telepon : Kolom yang digunakan untuk


menginputkan nomor telepon
supplier yang akan kita masukkan.
Icon Add : Adalah sebuah tombol yang
digunakan untuk menambah data
supplier yang baru.
Icon Edit : Adalah sebuah tombol yang
digunakan untuk merubah data
supplier yang salah atau perubahan
lain.
Icon Save : Adalah sebuah tombol yang
digunakan untuk menyimpan data
supplier yang baru ditambah atau
pada data yang mengalami
perubahan.
Icon Delete : Adalah sebuah tombol yang
digunakan untuk menghapus data
supplier.

2.3.1.7 Desain Form Transaksi Penjualan


Form transaksi penjualan merupakan form untuk
memasukkan data transaksi penjualan obat. Berikut ini adalah
gambar dari form transaksi penjualan :

17
18

Gambar 2.9
Keterangan :
Kolom Kode Detail Jual : Kolom yang digunakan untuk
menginputkan kode detail jual
yang akan kita masukkan.
Kolom Tanggal Jual : Kolom tanggal ini bekerja secara
otomatis menurut tanggal
terjadinya transaksi.
Kolom Id Pembeli : Kolom yang digunakan untuk
menginputkan id pembeli yang
akan kita masukkan.
Kolom pembeli : Kolom yang digunakan untuk
menginputkan nama pembeli.
Kolom Alamat : Kolom yang digunakan untuk
menginputkan alamat pembeli
yang akan kita masukkan.

18
19

Kolom Kode Obat : Kolom yang secara otomatis keluar


kode obatnya setelah kita memilih
obat.
Kolom Obat : Kolom yang berisikan data-data
obat yang dijual.
Kolom Jumlah : Kolom yang digunakan untuk
menginputkan jumlah obat yang
dibeli dalam satu kali transaksi.
Kolom Harga : Kolom yang digunakan untuk
memasukkan harga satuan obat
yang secara otomatis akan keluar
apabila kita menekan tombol add.
Kolom Total : Kolom yang digunakan untuk
menghasilkan subtotal antara
perkalian harga satuan obat dengan
jumlah obat yang dibeli.
Icon New : Adalah sebuah tombol yang
digunakan untuk melakukan
transaksi penjualan baru.
Icon Save : Adalah sebuah tombol yang
digunakan untuk menyimpan data
transaksi.
Icon Add : Adalah sebuah tombol yang
digunakan untuk menambah data
obat yang dibeli ke daftar beli.
Icon Drop : Adalah sebuah tombol yang
digunakan untuk menghapus daftar

19
20

obat yang dibeli.

2.3.2 Desain Output


Merupakan desain form laporan. Gunanya untuk
menampilkan hasil laporan yang akan ditampilkan. Berikut
gambar desain output :

Gambar 2.10

20
21

BAB III
IMPLEMENTASI SISTEM

3.1 Form Log In


Ketika program pertama kali dijalankan, yang pertama
muncul adalah form log in. Form ini berfungsi sebagai kunci
yaitu sebelum kita masuk ke aplikasi telebih dahulu kita
masukkan user dan password. Tujuannya jelas, yaitu untuk
memproteksi aplikasi dari orang lain. Apabila user dan
password yang diisikan benar kita bisa masuk ke aplikasi.
Apabila salah kita tidak akan bisa masuk ke aplikasi.

Gambar 3.1
Kode Form Log In
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void linkLabel1_LinkClicked(object


sender, LinkLabelLinkClickedEventArgs e)
{
string user = "djhoho26", pass = "123";
if (txtusername.Text == user &&
txtpassword.Text == pass)
{
Induk AWAL = new Induk();

21
22

AWAL.Show();
txtpassword.Clear();
txtusername.Clear();

}
else
{
MessageBox.Show("GAGAL LOGIN",
"LOGIN", MessageBoxButtons.OK);
txtpassword.Clear();
txtusername.Clear();
txtusername.Focus();
return;
}
}
}

3.2 Form Utama


Adalah form induk. Form ini berfungsi sebagai
penampung seluruh form yang ada. Jadi, form ini berguna
mengontrol seluruh form yang ada di dalam form ini melalui
menu yang tersedia.

Gambar 3.2
Kode Form Utama

22
23

public partial class Induk : Form


{
public Induk()
{
InitializeComponent();
}

private void
dataObatToolStripMenuItem_Click(object sender,
EventArgs e)
{
Obat OBAT = new Obat();
OBAT.MdiParent = this;
OBAT.Show();
}

private void
obatToolStripMenuItem1_Click(object sender, EventArgs
e)
{
JenisObat macam = new JenisObat();
macam.MdiParent = this;
macam.Show();
}

private void
dataPembeliToolStripMenuItem_Click(object sender,
EventArgs e)
{
pembeli pelanggan = new pembeli();
pelanggan.MdiParent = this;
pelanggan.Show();
}

private void
dataSupplierToolStripMenuItem_Click(object sender,
EventArgs e)
{
supplier agen = new supplier();
agen.MdiParent = this;
agen.Show();
}

private void
detailToolStripMenuItem1_Click(object sender,

23
24

EventArgs e)
{
DetailObat data = new DetailObat();
data.MdiParent = this;
data.Show();
}

private void
dataTransaksiToolStripMenuItem_Click(object sender,
EventArgs e)
{
penjualan jual= new penjualan(1);
jual.MdiParent = this;
jual.Show();
}

private void
deailPenjualanToolStripMenuItem_Click(object sender,
EventArgs e)
{
DetailPenjualan datapenjualan = new
DetailPenjualan();
datapenjualan.MdiParent = this;
datapenjualan.Show();
}

private void
lAPORANToolStripMenuItem_Click(object sender,
EventArgs e)
{
Laporan laporan = new Laporan();
laporan.MdiParent = this;
laporan.Show();
}
}

3.3 Form Obat

24
25

Form ini digunakan untuk menambah, menyimpan,


merubah atau menghapus data obat beserta harga.

Gambar 3.3
Kode Form Obat
public partial class Obat : Form
{
bool simpan_baru;
string SQL;
DataTable tabelobat = new DataTable();

public Obat()
{
InitializeComponent();
}

private void status_text(bool status)


{

25
26

tb_KodeObat.Enabled = status;
tb_NamaObat.Enabled = status;
txtharga.Enabled = status;
tb_KodeObat.Focus();
}

private void toolStripButtonadd_Click(object


sender, EventArgs e)
{
status_text(true);
simpan_baru = true;
}

private void data_refresh()


{
SQL = "SELECT * FROM Obat";
try
{
Program.koneksi.Open();
OleDbDataAdapter adapter = new
OleDbDataAdapter(SQL, Program.koneksi);
tabelobat.Clear();
adapter.Fill(tabelobat);
Program.koneksi.Close();
dgObat.DataSource = tabelobat;
}
catch (Exception X)
{
MessageBox.Show("Data gagal direfresh
karena:\n" + X.Message, "Refresh Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}

private void data_baru()


{
tb_KodeObat.Clear();
tb_NamaObat.Clear();
txtharga.Clear();
}

26
27

private void data_edit()


{
int bariske =
dgObat.SelectedCells[0].RowIndex;
try
{
tb_KodeObat.Text = dgObat["kode_obat",
bariske].Value.ToString();
tb_NamaObat.Text = dgObat["nama_obat",
bariske].Value.ToString();
txtharga.Text = dgObat["harga_jual",
bariske].Value.ToString();
}
catch (Exception X)
{
MessageBox.Show("Data gagal diedit
karena:\n" + X.Message, "Edit Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

private void data_hapus()


{
int bariske =
dgObat.SelectedCells[0].RowIndex;
string kode_obat =dgObat[0,
bariske].Value.ToString();
SQL = "DELETE FROM Obat WHERE kode_obat='"
+ kode_obat + "'";
try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
MessageBox.Show("Data berhasil
dihapus.", "Delete Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal dihapus
karena:\n" + X.Message, "Delete Data",

27
28

MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}

private void data_simpan()


{
if (tb_KodeObat.Text == "" ||
tb_NamaObat.Text == "")
{
MessageBox.Show("ID dan Nama harus
diisi.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
tb_KodeObat.Focus();
}
else
{
if (simpan_baru == true)
{
SQL = "INSERT INTO
Obat(kode_obat,nama_obat,harga_jual)" + "VALUES('" +
tb_KodeObat.Text + "','" + tb_NamaObat.Text
+"',"+txtharga.Text+")";
}
else
{
SQL = "UPDATE Obat SET
nama_obat='" + tb_NamaObat.Text
+"',harga_jual="+txtharga.Text+" WHERE kode_obat='" +
tb_KodeObat.Text + "'";
}

try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
simpan_baru = false;
MessageBox.Show("Data berhasil

28
29

disimpan.", "Save Data", MessageBoxButtons.OK,


MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal
disimpan karena:\n" + X.Message, "Save Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
status_text(false);
hilang();
}
}

private void hilang()


{
tb_KodeObat.Clear();
tb_KodeObat.Focus();
tb_NamaObat.Clear();
txtharga.Clear();
}

private void Obat_Load(object sender,


EventArgs e)
{
data_refresh();
status_text(false);
OleDbDataAdapter adapter = new
OleDbDataAdapter("SELECT * FROM Obat",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Application.StartupPath + "\\SI_Apotek.mdb");
DataTable tabelobat = new DataTable();
adapter.Fill(tabelobat);
dgObat.DataSource = tabelobat;
}

private void toolStripButtonedit_Click(object


sender, EventArgs e)
{
simpan_baru = false;
status_text(true);

29
30

tb_KodeObat.ReadOnly = true;
tb_NamaObat.Focus();
data_edit();
}

private void toolStripButtonsave_Click(object


sender, EventArgs e)
{
status_text(false);
data_simpan();
}

private void
toolStripButtondelete_Click(object sender, EventArgs
e)
{
if (tabelobat.Rows.Count > 0)
{
DialogResult tombol =
MessageBox.Show(this, "Apakah data yang terpilih akan
dihapus?", "Hapus Data", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (tombol == DialogResult.Yes)
{
data_hapus();
}
else
{
MessageBox.Show("Data batal
dihapus", "Data Hapus");
}
}
else
{
MessageBox.Show("Batal menghapus
data", "Data Hapus");
}
}
}

3.4 Form Jenis Obat

30
31

Form ini digunakan untuk untuk menambah,


menyimpan, merubah atau menghapus data jenis obat.

Gambar 3.4
Kode Form Jenis Obat
public partial class JenisObat : Form
{

bool simpan_baru;
string SQL;
DataTable tabeljenis = new DataTable();

public JenisObat()
{
InitializeComponent();
}
private void status_text(bool status)

31
32

{
tb_kodejenis.Enabled = status;
tb_namajenis.Enabled = status;
tb_kodejenis.Focus();
}

private void toolStripButton1_Click(object


sender, EventArgs e)
{
status_text(true);
simpan_baru = true;
}
private void data_refresh()
{
SQL = "SELECT * FROM Jenis_Obat";
try
{
Program.koneksi.Open();
OleDbDataAdapter adapter = new
OleDbDataAdapter(SQL, Program.koneksi);
tabeljenis.Clear();
adapter.Fill(tabeljenis);
Program.koneksi.Close();
dg_jenisobat.DataSource = tabeljenis;
}
catch (Exception X)
{
MessageBox.Show("Data gagal direfresh
karena:\n" + X.Message, "Refresh Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}
private void data_baru()
{
tb_kodejenis.Clear();
tb_namajenis.Clear();

}
private void data_edit()
{
int bariske

32
33

=dg_jenisobat.SelectedCells[0].RowIndex;
try
{
tb_kodejenis.Text
=dg_jenisobat["kode_jenis", bariske].Value.ToString();
tb_namajenis.Text =
dg_jenisobat["nama_jenis", bariske].Value.ToString();

}
catch (Exception X)
{
MessageBox.Show("Data gagal diedit
karena:\n" + X.Message, "Edit Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void data_hapus()
{
int bariske
=dg_jenisobat.SelectedCells[0].RowIndex;
string kode_jenis =dg_jenisobat[0,
bariske].Value.ToString();
SQL = "DELETE FROM Jenis_Obat WHERE
kode_jenis='" + kode_jenis + "'";
try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
MessageBox.Show("Data berhasil
dihapus.", "Delete Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal dihapus
karena:\n" + X.Message, "Delete Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();

33
34

}
}
private void data_simpan()
{
if (tb_namajenis.Text == "" ||
tb_namajenis.Text == "")
{
MessageBox.Show("ID dan Nama harus
diisi.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
tb_kodejenis.Focus();
}
else
{
if (simpan_baru == true)
{
SQL = "INSERT INTO
Jenis_Obat(kode_jenis,nama_jenis)" + "VALUES('"
+tb_kodejenis.Text + "','" +tb_namajenis.Text + "')";
}
else
{
SQL = "UPDATE Jenis_Obat SET
nama_jenis='" + tb_namajenis.Text+ "' WHERE
kode_jenis='" +tb_kodejenis.Text + "'";
}

try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
simpan_baru = false;
MessageBox.Show("Data berhasil
disimpan.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal
disimpan karena:\n" + X.Message, "Save Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);

34
35

}
finally
{
Program.koneksi.Close();
}
status_text(false);
hilang();
}
}
private void hilang()
{
tb_kodejenis.Clear();
tb_kodejenis.Focus();
tb_namajenis.Clear();
}

private void JenisObat_Load(object sender,


EventArgs e)
{
data_refresh();
status_text(false);
OleDbDataAdapter adapter = new
OleDbDataAdapter("SELECT * FROM Jenis_Obat",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Application.StartupPath + "\\SI_Apotek.mdb");
DataTable tabeljenis = new DataTable();
adapter.Fill(tabeljenis);
dg_jenisobat.DataSource = tabeljenis;
}

private void toolStripButton_edit_Click(object


sender, EventArgs e)
{
simpan_baru = false;
status_text(true);
tb_kodejenis.ReadOnly = true;
tb_namajenis.Focus();
data_edit();
}

private void toolStripButton_save_Click(object


sender, EventArgs e)
{
status_text(false);
data_simpan();

35
36

private void toolStripButton_del_Click(object


sender, EventArgs e)
{
int bariske
=dg_jenisobat.SelectedCells[0].RowIndex;
string kode_jenis =dg_jenisobat[0,
bariske].Value.ToString();
SQL = "DELETE FROM Jenis_Obat WHERE
kode_Jenis='" + kode_jenis + "'";
try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
MessageBox.Show("Data berhasil
dihapus.", "Delete Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal dihapus
karena:\n" + X.Message, "Delete Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}

3.5 Form Transaksi Penjualan

36
37

Form ini digunakan sebagai tempat proses transaksi


penjualan. Yaitu, barang-barang yang dibeli oleh pembeli
dimasukkan di form ini.

Gambar 3.5
Kode Form Transaksi
public partial class penjualan : Form
{
protected int Tujuan = 0;
string SQL;
DataTable tabelpenjualan = new DataTable();

public penjualan(int tujuan)


{

InitializeComponent();
status_text(false);
Tujuan =tujuan;

37
38

Program.koneksi.Open();
dataGridView1.ColumnCount = 5;
dataGridView1.Columns[0].HeaderText =
"Kode Obat";
dataGridView1.Columns[1].HeaderText =
"Nama Obat";
dataGridView1.Columns[2].HeaderText =
"Jumlah";
dataGridView1.Columns[3].HeaderText =
"Harga";
dataGridView1.Columns[4].HeaderText =
"Total";
}
private void status_text(bool status)
{
tb_kode.Enabled = status;
tb_tgl.Enabled = status;
tb_jam.Enabled = status;
comboBox1.Enabled = status;
tb_jmlh.Enabled = status;
tb_total.Enabled = status;
tb_kodeobat.Enabled = status;
}

private void toolStripButton1_Click(object


sender, EventArgs e)
{
status_text(true);
}
private void data_baru()
{
tb_kode.Clear();
tb_tgl.Clear();
tb_jam.Clear();
tb_jmlh.Clear();
tb_total.Clear();
comboBox1.SelectedIndex = 0;
}
private void data_edit()
{
OleDbTransaction transaksi = null;
OleDbCommand cmdPembuatan = new
OleDbCommand();

try

38
39

{
if (Program.koneksi.State !=
ConnectionState.Open)
Program.koneksi.Open();
cmdPembuatan.Connection =
Program.koneksi;
//transaksi dimulaui
transaksi =
Program.koneksi.BeginTransaction();
cmdPembuatan.Transaction = transaksi;
cmdPembuatan.CommandText = "UPDATE
rincipenjualan2 SET Kode_Penjualan=" + tb_kode.Text +
",Tanggal_Penjualn='" +
DateTime.Today.ToString("yyyy-MM-dd")
+ "',Jam_Penjualan='" +
DateTime.Now.ToString("HH:mm:ss") + "' WHERE
Kode_Penjualan='" + tb_kode.Text + "'";
cmdPembuatan.ExecuteNonQuery();
for (int i = 0; i <dataGridView1
.RowCount; i++)
{
cmdPembuatan.CommandText = "INSERT
INTO
rincian2(Kode_Penjualan,Tanggal_Penjualan,Jam_Penjualn
) VALUES('" + tb_kode.Text + "' ,'" + dataGridView1[0,
i].Value.ToString() + "','" + dataGridView1[1,
i].Value.ToString() + "','" + dataGridView1[2,
i].Value.ToString() + "')";
cmdPembuatan.ExecuteNonQuery();
}
transaksi.Commit();
MessageBox.Show("Tranaksi Tersimpan");
//return true;
}
catch (Exception ex)
{
transaksi.Rollback();
MessageBox.Show("Data dibatalkan,
ERROR :" + ex.Message);
//return false;
}
}

private void data_hapus()


{

39
40

int bariske
=dataGridView1.SelectedCells[0].RowIndex;
string Kode_Penjualan =dataGridView1[0,
bariske].Value.ToString();
SQL = "DELETE FROM rincipenjualan2 WHERE
Kode_Penjualan='" + Kode_Penjualan + "'";
try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();

MessageBox.Show("Data berhasil
dihapus.", "Delete Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal dihapus
karena:\n" + X.Message, "Delete Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}
private void data_simpan()
{
OleDbTransaction transaksi = null;
OleDbCommand cmdPemesanan = new
OleDbCommand();
try
{
cmdPemesanan.Connection =
Program.koneksi;
transaksi =
Program.koneksi.BeginTransaction();
cmdPemesanan.Transaction = transaksi;
cmdPemesanan.CommandText = "INSERT
INTO
Transaksi_Jual(Kode_Transaksi_Jual,Kode_Pembeli,Nama_P
embeli,Alamat,Tanggal_Beli,Jam) VALUES('" +

40
41

tb_kode.Text + "','" + tb_kodepembeli.Text + "','" +


tb_pembeli.Text + "','" + tb_alamat.Text + "','" +
DateTime.Today.ToString("yyyy-MM-dd") + "','" +
DateTime.Now.ToString("HH:mm:ss") + "')";
cmdPemesanan.ExecuteNonQuery();
for (int i = 0; i
<dataGridView1.RowCount; i++)
{
cmdPemesanan.CommandText = "INSERT
INTO
Detail_Jual(Kode_Detail,Kode_Obat,Obat,Banyak,Harga,To
tal) VALUES('" + tb_kode.Text + "','" +
dataGridView1[0, i].Value.ToString() + "','" +
dataGridView1[1, i].Value.ToString() + "'," +
dataGridView1[2, i].Value.ToString() + "," +
dataGridView1[3, i].Value.ToString() + "," +
dataGridView1[4, i].Value.ToString() + ")";
cmdPemesanan.ExecuteNonQuery();
}
transaksi.Commit();
MessageBox.Show("Transaksi
tersimpan");
//return true;
}
catch (Exception ex)
{
transaksi.Rollback();
MessageBox.Show("Trnsaksi dibatalkan,
ERROR :" + ex.Message);
//return false;
}
}
private void hilang()
{
tb_kode.Clear();
comboBox1.Text = "";
tb_tgl.Clear();
tb_jam.Clear();
tb_jmlh.Focus();
tb_total.Clear();
}

private void penjualan_Load(object sender,


EventArgs e)
{

41
42

//status_text(false);
//cbobt
//data_refresh();
status_text(false);
OleDbDataAdapter adapter4 = new
OleDbDataAdapter("SELECT * FROM obat ORDER BY
Nama_Obat", "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" + Application.StartupPath +
"\\si_apotek.mdb");
DataTable ptg = new DataTable();
adapter4.Fill(ptg);
comboBox1.DataSource = ptg;
comboBox1.ValueMember = "kode_obat";
comboBox1.DisplayMember = "nama_obat";
}

private void toolStripButton2_Click(object


sender, EventArgs e)
{
switch (Tujuan)
{
case 1:
data_simpan();
status_text(false);
break;
case 2:
data_edit();
status_text(false);
break;
}
}

private void timer1_Tick(object sender,


EventArgs e)
{
tb_jam.Text=
DateTime.Now.ToString("HH:mm:ss");
tb_tgl.Text =
DateTime.Today.ToString("yyyy-MM-dd");
}

private void
comboBox1_SelectedIndexChanged(object sender,
EventArgs e)

42
43

{
if (comboBox1.Items.Count > 0)
tb_kodeobat.Text =
comboBox1.SelectedValue.ToString();
}
private void tooladd_Click(object sender,
EventArgs e)
{
OleDbCommand cmdMenu = new
OleDbCommand("select * from Obat where Kode_Obat = '"
+ tb_kodeobat.Text + "'",Program.koneksi);
OleDbDataReader rdMenu =
cmdMenu.ExecuteReader();
rdMenu.Read();
if (tb_jmlh.Text.Trim().Length == 0)
tb_jmlh.Text = "1";
dataGridView1.RowCount =
dataGridView1.RowCount + 1;
dataGridView1[0, dataGridView1.RowCount -
1].Value = rdMenu[0].ToString();
dataGridView1[1, dataGridView1.RowCount -
1].Value = rdMenu[1].ToString();
dataGridView1[3, dataGridView1.RowCount -
1].Value = tb_jmlh.Text;
dataGridView1[2, dataGridView1.RowCount -
1].Value = rdMenu[2].ToString();
dataGridView1[4, dataGridView1.RowCount -
1].Value = Convert.ToDouble(rdMenu[2].ToString()) *
Convert.ToDouble(tb_jmlh.Text);
tb_harga.Text = rdMenu[2].ToString();

double harga, banyak, total;


harga = double.Parse(tb_harga.Text);
banyak = double.Parse(tb_jmlh.Text);
total = harga * banyak;
tb_total.Text = total.ToString();
}

private void tolldrop_Click(object sender,


EventArgs e)
{
if (dataGridView1.Rows.Count > 0)

dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.
RowIndex);

43
44

}
}

3.6 Form Pembeli


Form ini digunakan untuk untuk menambah,
menyimpan, merubah atau menghapus data pembeli.

Gambar 3.6
Kode Form Pembeli
public partial class pembeli : Form
{
bool simpan_baru;
string SQL;
DataTable tabelpembeli = new DataTable();

public pembeli()
{

44
45

InitializeComponent();
}
private void status_text(bool status)
{
tb_kdepembeli.Enabled = status;
tb_namapmb.Enabled = status;
tb_alamat.Enabled = status;
dateTimePickerPembeli.Enabled = status;
tb_kdepembeli.Focus();
}

private void toolStripButtonadd_Click(object


sender, EventArgs e)
{
status_text(true);
simpan_baru = true;
}
private void data_refresh()
{
SQL = "SELECT * FROM pembeli";
try
{
Program.koneksi.Open();
OleDbDataAdapter adapter = new
OleDbDataAdapter(SQL, Program.koneksi);
tabelpembeli.Clear();
adapter.Fill(tabelpembeli);
Program.koneksi.Close();
dgpembeli.DataSource = tabelpembeli;
}
catch (Exception X)
{
MessageBox.Show("Data gagal direfresh
karena:\n" + X.Message, "Refresh Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}
private void data_baru()
{
tb_kdepembeli.Clear();
tb_namapmb.Clear();

45
46

tb_alamat.Clear();
}
private void data_edit()
{
int bariske =
dgpembeli.SelectedCells[0].RowIndex;
try
{
tb_kdepembeli.Text =
dgpembeli["kode_pembeli", bariske].Value.ToString();
tb_namapmb.Text =
dgpembeli["nama_pembeli", bariske].Value.ToString();
tb_alamat.Text =
dgpembeli["alamat_pembeli", bariske].Value.ToString();
dateTimePickerPembeli.Text =
dgpembeli["tanggal_beli", bariske].Value.ToString();
}
catch (Exception X)
{
MessageBox.Show("Data gagal diedit
karena:\n" + X.Message, "Edit Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void data_hapus()
{
int bariske
=dgpembeli.SelectedCells[0].RowIndex;
string kode_pembeli =dgpembeli[0,
bariske].Value.ToString();
SQL = "DELETE FROM pembeli WHERE
kode_pembeli='" + kode_pembeli+ "'";
try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
MessageBox.Show("Data berhasil
dihapus.", "Delete Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)

46
47

{
MessageBox.Show("Data gagal dihapus
karena:\n" + X.Message, "Delete Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}
private void data_simpan()
{
if (tb_kdepembeli.Text == "" ||
tb_namapmb.Text == "")
{
MessageBox.Show("ID dan Nama harus
diisi.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
tb_kdepembeli.Focus();
}
else
{
if (simpan_baru == true)
{
SQL = "INSERT INTO
pembeli(kode_pembeli,nama_pembeli,alamat_pembeli,tangg
al_beli)" + "VALUES('" + tb_kdepembeli.Text + "','" +
tb_namapmb.Text +
"','"+tb_alamat.Text+"','"+dateTimePickerPembeli.Value
+"')";
}
else
{
SQL = "UPDATE pembeli SET
nama_pembeli='" + tb_namapmb.Text +
"',alamat_pembeli='"+tb_alamat.Text+"',tanggal_beli='"
+dateTimePickerPembeli.Value+"' WHERE kode_pembeli='"
+ tb_kdepembeli.Text+ "'";
}

try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);

47
48

olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
simpan_baru = false;
MessageBox.Show("Data berhasil
disimpan.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal
disimpan karena:\n" + X.Message, "Save Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
status_text(false);
hilang();
}
}
private void hilang()
{
tb_kdepembeli.Clear();
tb_namapmb.Clear();
tb_alamat.Clear();
tb_kdepembeli.Focus();
}

private void pembeli_Load(object sender,


EventArgs e)
{
data_refresh();
status_text(false);
OleDbDataAdapter adapter = new
OleDbDataAdapter("SELECT * FROM pembeli",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Application.StartupPath + "\\SI_Apotek.mdb");
DataTable tabelpembeli = new DataTable();
adapter.Fill(tabelpembeli);
dgpembeli.DataSource = tabelpembeli;
}

private void toolStripButtonedit_Click(object

48
49

sender, EventArgs e)
{
simpan_baru = false;
status_text(true);
tb_kdepembeli.ReadOnly = true;
tb_namapmb.Focus();
data_edit();
}

private void toolStripButtonsave_Click(object


sender, EventArgs e)
{
status_text(false);
data_simpan();
}

private void toolStripButtondel_Click(object


sender, EventArgs e)
{
if (tabelpembeli.Rows.Count > 0)
{
DialogResult tombol =
MessageBox.Show(this, "Apakah data yang terpilih akan
dihapus?", "Hapus Data", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (tombol == DialogResult.Yes)
{
data_hapus();
}
else
{
MessageBox.Show("Data batal
dihapus", "Data Hapus");
}
}
else
{
MessageBox.Show("Batal menghapus
data", "Data Hapus");
}
}
}

49
50

3.7 Form Supplier


Form ini digunakan untuk untuk menambah,
menyimpan, merubah atau menghapus data supplier.

Gambar 3.7
Kode Form Supplier
public partial class supplier : Form
{
bool simpan_baru;
string SQL;
DataTable tabelsupplier = new DataTable();

public supplier()
{

50
51

InitializeComponent();
}
private void status_text(bool status)
{
tbkdsup.Enabled = status;
tbnmsup.Enabled = status;
tbalmtsup.Enabled = status;
tbtlpsup.Enabled = status;
tbkdsup.Focus();
}

private void toolStripButtonadd_Click(object


sender, EventArgs e)
{
status_text(true);
simpan_baru = true;
}
private void data_refresh()
{
SQL = "SELECT * FROM supplier";
try
{
Program.koneksi.Open();
OleDbDataAdapter adapter = new
OleDbDataAdapter(SQL, Program.koneksi);
tabelsupplier.Clear();
adapter.Fill(tabelsupplier);
Program.koneksi.Close();
dgsup.DataSource = tabelsupplier;
}
catch (Exception X)
{
MessageBox.Show("Data gagal direfresh
karena:\n" + X.Message, "Refresh Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}
private void data_baru()
{
tbkdsup.Clear();
tbnmsup.Clear();

51
52

tbalmtsup.Clear();
tbtlpsup.Clear();

}
private void data_edit()
{
int bariske
=dgsup.SelectedCells[0].RowIndex;
try
{
tbkdsup.Text = dgsup["kode_supplier",
bariske].Value.ToString();
tbnmsup.Text = dgsup["nama_supplier",
bariske].Value.ToString();
tbalmtsup.Text =
dgsup["alamat_supplier", bariske].Value.ToString();
tbtlpsup.Text =
dgsup["telepon_supplier", bariske].Value.ToString();
}
catch (Exception X)
{
MessageBox.Show("Data gagal diedit
karena:\n" + X.Message, "Edit Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void data_hapus()
{
int bariske
=dgsup.SelectedCells[0].RowIndex;
string kode_supplier =dgsup[0,
bariske].Value.ToString();
SQL = "DELETE FROM supplier WHERE
kode_supplier='" + kode_supplier + "'";
try
{
Program.koneksi.Open();
OleDbCommand olecmd = new
OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
MessageBox.Show("Data berhasil
dihapus.", "Delete Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);

52
53

}
catch (Exception X)
{
MessageBox.Show("Data gagal dihapus
karena:\n" + X.Message, "Delete Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
}
private void data_simpan()
{
if (tbkdsup.Text == "" || tbnmsup.Text ==
"")
{
MessageBox.Show("ID dan Nama harus
diisi.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
tbkdsup.Focus();
}
else
{
if (simpan_baru == true)
{
SQL = "INSERT INTO
supplier(kode_supplier,nama_supplier,alamat_supplier,t
elepon_supplier)" + "VALUES('" + tbkdsup.Text+ "','" +
tbnmsup.Text +
"','"+tbalmtsup.Text+"','"+tbtlpsup.Text+"')";
}
else
{
SQL = "UPDATE supplier SET
nama_supplier='" + tbnmsup.Text +
"',alamat_supplier='"+tbalmtsup.Text+"',telepon_suppli
er='"+tbtlpsup.Text+"' WHERE kode_supplier='" +
tbkdsup.Text+ "'";
}

try
{
Program.koneksi.Open();
OleDbCommand olecmd = new

53
54

OleDbCommand(SQL, Program.koneksi);
olecmd.ExecuteNonQuery();
Program.koneksi.Close();
data_refresh();
simpan_baru = false;
MessageBox.Show("Data berhasil
disimpan.", "Save Data", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception X)
{
MessageBox.Show("Data gagal
disimpan karena:\n" + X.Message, "Save Data",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Program.koneksi.Close();
}
status_text(false);
hilang();
}
}
private void hilang()
{
tbkdsup.Clear();
tbnmsup.Clear();
tbalmtsup.Clear();
tbkdsup.Focus();
tbtlpsup.Clear();
}

private void toolStripButtonedit_Click(object


sender, EventArgs e)
{
simpan_baru = false;
status_text(true);
tbkdsup.ReadOnly = true;
tbnmsup.Focus();
data_edit();
}

private void toolStripButtonsave_Click(object


sender, EventArgs e)
{

54
55

status_text(false);
data_simpan();
}

private void toolStripButton1_Click(object


sender, EventArgs e)
{
if (tabelsupplier.Rows.Count > 0)
{
DialogResult tombol =
MessageBox.Show(this, "Apakah data yang terpilih akan
dihapus?", "Hapus Data", MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (tombol == DialogResult.Yes)
{
data_hapus();
}
else
{
MessageBox.Show("Data batal
dihapus", "Data Hapus");
}
}
else
{
MessageBox.Show("Batal menghapus
data", "Data Hapus");
}
}

private void supplier_Load(object sender,


EventArgs e)
{
data_refresh();
status_text(false);
OleDbDataAdapter adapter = new
OleDbDataAdapter("SELECT * FROM supplier",
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Application.StartupPath + "\\SI_Apotek.mdb");
DataTable tabelsupplier= new DataTable();
adapter.Fill(tabelsupplier);
dgsup.DataSource = tabelsupplier;
}
}

55
56

3.8 Form Laporan


Form ini digunakan untuk menampilkan hasil laporan
yang diinginkan.

Gambar 3.8
Kode Form Laporan
public partial class Laporan : Form
{
adapterSupplier adpSupplier = new
adapterSupplier();
adapterPembeli adpPembeli = new
adapterPembeli();
adapterObat adpObat = new adapterObat();
adapterDetailJual adpDetailJual = new
adapterDetailJual();

56
57

DataSet1 dsReport = new DataSet1();


public Laporan()
{
InitializeComponent();
}

private void
suplierToolStripMenuItem_Click(object sender,
EventArgs e)
{
RptSupplier rpt = new RptSupplier();
adpSupplier.Fill(dsReport.Supplier);

rpt.SetDataSource((DataTable)dsReport.Supplier);
crvlaporan.ReportSource = rpt;
}

private void
pembeliToolStripMenuItem_Click(object sender,
EventArgs e)
{
RptPembeli rpt = new RptPembeli();
adpPembeli.Fill(dsReport.Pembeli);

rpt.SetDataSource((DataTable)dsReport.Pembeli);
crvlaporan.ReportSource = rpt;
}

private void
obatToolStripMenuItem_Click(object sender, EventArgs
e)
{
RptObat rpt = new RptObat();
adpObat.Fill(dsReport.Obat);

rpt.SetDataSource((DataTable)dsReport.Obat);
crvlaporan.ReportSource = rpt;
}

private void
transaksiToolStripMenuItem_Click(object sender,
EventArgs e)
{
RptDetailJual rpt = new RptDetailJual();

57
58

adpDetailJual.Fill(dsReport.Detail_Jual);

rpt.SetDataSource((DataTable)dsReport.Detail_Jual);
crvlaporan.ReportSource = rpt;
}
}

58
59

BAB IV
PENUTUP

Sebagai langkah akhir dalam penyusunan


buku Tugas Madya ini adalah memberikan kesimpulan dan
saran-saran yang diharapkan dapat berguna sebagai bahan
pertimbangan bagi kami selaku penulis pada khususnya dan
pembaca pada umumnya di dalam memecahkan masalah atau
kesulitan-kesulitan yang berhubungan dengan Sistem Informasi
Apotek di Apotek Dharma.

4.1 Kesimpulan
Dengan dibuatnya aplikasi Sistem Informasi Apotek,
maka kami menyimpulkan :
Memperlancar dan mempermudah dalam
memasukkan data transaksi yang ada pada
APOTEK DHARMA.
Memperlancar dan mempercepat proses
transaksi sesuai dengan keinginan user
sehingga dapat tercapai hasil yang
memuaskan.
Mempermudah dalam pembuatan laporan.
4.2 Kritik dan Saran
Kami menyadari bahwa dalam pembuatan Tugas
Madya ini jauh dari kesempurnaan, sesuai dengan peribahasa
Tak ada gading yang tak retak, maka kami mengharapkan

59
60

kritik dan saran yang membangun guna kesempurnaan.


Akhirnya, kami berharap semoga buku ini dapat memenuhi
harapan kita semua.

60
61

BAB II
DESAIN SISTEM

61
62

BAB III
IMPLEMENTASI SISTEM

62
63

BAB IV
PENUTUP

63

Anda mungkin juga menyukai