Sistem Informasi Royalti POKOK BAHASAN Diagram Objek Sistem Informasi Royalti Struktur File Sistem Informasi Royalti Membuat Database dan Tabel Form-Form yang Terlibat Pembuatan Form Wizard Pembuatan Form Designer Desain Menu Sistem Informasi Royalti Kompilasi Program
107
4.1 Pendahuluan Sistem Informasi Royalti yang akan dibahas ini difokuskan pada pengolahan pembayaran royalti ke penulis, tetapi dapat dikembangkan ke sistem informasi royalti yang lebih lengkap.
4.2 Diagram Objek Sistem Informasi Royalti Sebelum kita membuat model objek seharusnya membuat spesifikasi kebutuhan, tetapi dalam buku ini sistemnya sederhana, sehingga penulis langsung membuat model objeknya. Diagram objek merupakan alat yang dipakai pada model objek. Model objek adalah salah satu model OMT (Object Modelling Technique). Tujuan utama diagram objek adalah untuk mendapatkan susunan tabel.
Gambar 4.1 Diagram Objek Sistem Informasi Royalti
4.3 Struktur File Sistem Informasi Royalti Sebenarnya, dari model objek, kita harus mendesain database memakai Normalisasi karena model objek baru mencapai 2NF (Second Normal Form). Tabel dikatakan baik jika minimal sampai 108
3NF. Jika Anda mendesain database model objek sistem informasi penggajian memakai Normalisasi, berarti sudah mencapai 3NF dan BCNF. Dalam implementasi struktur file sistem informasi penggajian, seperti pada bentuk perangkat lunak database VDM (Visual Data Manager), yang merupakan perangkat lunak database terdapat dalam perangkat lunak Visual Basic 6.0 (Add-In). Struktur file sistem informasi penggajian terlihat seperti pada ketiga tabel berikut. Tabel Buku Field Name
Data Type
Field Size
Description
KdBuku
Text
15
Kode Buku
ISBN
Text
20
International Number
Judul
Text
50
Judul Buku
Penulis
Text
50
Penulis Buku
Cetakan
Text
12
Cetakan Buku
Tahun
Text
4
Tahun Terbit Buku
Exemplar
Integer
Exemplar Cetakan
Quantity
Integer
Quantity Buku
HrgBuku
Double
Harga Buku
Serial
Book
Tabel 4.1 Struktur File Tabel Buku
Catatan: KdBuku sebagai kunci utama (Primary Key). Tabel Penulis Field Name
Data Type
Field Size
Description
KdPenulis
Text
9
Kode Penulis
NamaPenulis
Text
50
Nama Penulis
AltPenulis
Text
50
Alamat Penulis
JkPenulis
Text
12
Jenis Kelamin Penulis
109
TglLhrPenulis
Text
12
Tanggal Lahir Penulis
PhonePenulis
Text
15
Telepon Penulis
Tabel 4.2 Struktur File Tabel Penulis
Catatan: KdPenulis sebagai kunci utama (Primary Key). Tabel Royalti Field Name
Data Type
Field Size
Description
TglRoyalti
Text
15
Tanggal Pembayaran Royalti
KdBuku
Text
15
Kode Buku
KdPenulis
Text
9
Kode Penulis
QtyByr
Interger
Periode
Text
Quantity Bayar 50
Periode Royalti
Tabel 4.3 Struktur Tabel Royalti
Catatan: TglRoyalti;KdBuku;KdPenulis (Primary Key).
sebagai
kunci
utama
4.4 Membuat Database dan Tabel 4.4.1 Membuat File Database Database merupakan tempat untuk menampung file tabel. Langkah-langkah membuat database sebagai berikut: 1. Buka atau jalankan perangkat lunak Microsoft Visual Basic 6.0. 2. Di jendela New Project VB6 (Microsoft Visual Basic 6.0), klik Open, akan muncul lingkungan terpadu VB6. 3. Pilih menu Add_Ins > Visual Data Manager. 4. Pilih menu File > New…> Microsoft Access > Version 7.0 MDB…
110
5. Muncul jendela Select Microsoft Access Database to Create, lalu arahkan folder ke C:\Documents and Settings\Yuniar Supardi\My Documents\My Data\MyBook\EMK\10SisPopuler\ SIR (Anda dapat memilih folder yang lain) dan ketik nama file SisfoRoyalti di File name. 6. Klik Save, muncul jendela Database Window.
4.4.2 Membuat File Tabel Untuk membuat tabel di dalam database, langkah-langkahnya sebagai berikut: 1. Klik kanan Properties di jendela Database Window. 2. Pilih New Table, akan muncul jendela Table Structure. 3. Ketik Buku di kotak Table Name dan klik Add Field, akan muncul jendela Add Field. 4. Ketik KdBuku di kotak Name, atur ukuran field menjadi 15 di kotak Size dan klik opsi Fixed Field (ukuran field tidak dapat diubah selama program berjalan), kemudian klik OK. 5. Lakukan lagi untuk field, seperti Tabel 4.4 di bawah ini. Field Name
Data Type
Field Size
ISBN
Text
20
Judul
Text
50
Penulis
Text
50
Cetakan
Text
12
Tahun
Text
4
Exemplar
Integer
Quantity
Integer
HrgBuku
Double
Tabel 4.4 Lanjutan Field Tabel Buku
6. Setelah Anda memasukkan field terakhir (HrgBuku), klik tombol Close. 111
4.4.3 Membuat File Index File Index dipakai untuk mencari record tertentu, field yang dijadikan index harus unique (tidak ada nilai datanya yang sama). Langkah-langkah membuat file index sebagai berikut: 1. Klik tombol Add Index untuk membuat file index, akan muncul jendela Add Index. 2. Ketik IdxBuku di kotak Name, hilangkan tanda checklist Unique, kemudian klik field KdBuku di kotak Available Field, sehingga field Nim muncul di kotak Indexed Field. 3. Klik OK. 4. Kemudian klik tombol Build the Table, tabel Buku akan terlihat di jendela Database Window.
4.4.4 Memasukkan Record ke Tabel Untuk memasukkan record ke tabel, langkah-langkahnya sebagai berikut: 1. Dalam keadaan jendela Database Window terbuka, klik kanan di nama tabel yang akan dimasukkan record-nya. Sebagai contoh, kita klik kanan tabel Buku. 2. Pilih Open. 3. Klik tombol Add, lalu ketik record pertama seperti Gambar 4.2.
Gambar 4.2 Record Pertama
112
4. Akhiri dengan mengklik tombol Update, masukkan lagi satu record seperti Gambar 4.3 di bawah ini.
Gambar 4.3 Record Kedua
5. Klik Close. 6. Buat lagi tabel Penulis, klik kanan di Properties pada Database Window. 7. Buat tabel Penulis dengan struktur file seperti Tabel 4.5. Field Name
Data Type
Field Size
KdPenulis
Text
9
NamaPenulis
Text
50
AltPenulis
Text
50
JkPenulis
Text
12
TglLhrPenulis
Text
12
PhonePenulis
Text
15
Tabel 4.5 Struktur File Tabel Penulis
Catatan: KdPenulis sebagai kunci utama (Primary Key), nama file index-nya IdxPenulis. Isi record-record Penulis seperti Gambar 4.4 dan Gambar 4.5. 113
Gambar 4.4 Record Pertama
Gambar 4.5 Record Kedua
8. Buat tabel Royalti dengan struktur file seperti Tabel 4.6. Field Name
Data Type
Field Size
TglRoyalti
Text
12
KdBuku
Text
15
KdPenulis
Text
9
QtyByr
Integer
Periode
Text
30
Tabel 4.6 Field-Field Tabel Royalti
114
9. Klik tombol Add Index untuk membuat file index, akan muncul jendela Add Index. 10. Ketik IdxRoyalti di kotak Name, hilangkan tanda checklist Unique, kemudian klik field TglRoyalti, KdBuku dan KdPenulis di kotak Available Field, sehingga field TglRoyalti;KdBuku;KdPenulis muncul di kotak Indexed Field. 11. Klik OK. 12. Kemudian klik tombol Build the Table. 13. Untuk sementara tutup (Close) dahulu VisData (VDM).
4.5 Form-Form yang Terlibat Dalam Sistem Informasi Pendidikan ini, form yang akan dibuat jumlahnya ada tiga, yaitu Form_Buku (untuk data Buku), Form_Penulis (untuk data Penulis), dan Form_Royalti (untuk menampung perhitungan royalti). Form_Buku dan Form_Penulis dibuat memakai Microsoft Visual Basic 6.0 dengan memanfaatkan Form Wizard, sedangkan Form_Royalti dibuat memakai Form Designer.
4.6 Pembuatan Form Wizard Form Wizard merupakan sarana untuk membuat form dengan cepat, feature ini merupakan salah satu andalan dari VB 6. Cara membuatnya akan dibahas pada subbab berikut ini.
4.6.1 Pembuatan Form_Buku Langkah-langkah membuat form wizard Form_Buku seperti yang dibahas pada Bab 1. Simpan form dengan nama Form_Buku dan project dengan nama PSIR.
115
4.6.2 Pembuatan Form_Penulis Langkah-langkah membuat form wizard Form_Penulis seperti yang dibahas pada Bab 1. Simpan form dengan nama Form_Penulis. Untuk membuat Form_Buku dan Form_Penulis ketika dijalankan posisinya berada di tengah layar, atur properti StartUpPosition menjadi 2-CenterScreen.
4.7 Pembuatan Form Designer Form Designer merupakan form yang kita buat secara manual (dibuat oleh pengembang/programmer). Contohnya Form_Royalti. Langkah-langkah membuatnya sebagai berikut: 1. Klik kanan di folder Forms, pilih Add > Form. 2. Muncul jendela Add Form, di tab New klik Open. 3. Buat Form_Royalti seperti Gambar 4.6.
Gambar 4.6 Form_Royalti
Pengaturan propertinya seperti Tabel 4.7. No
Objek
Properti
Nilai
1
Label1
Autosize
True
2
Label1
Font/Font style
Bold
116
3
Label1
Caption
Royalti
4
Label1
Font/Size
18
5
Label2
Autosize
True
6
Label2
Font/Font style
Bold
7
Label2
Caption
Tanggal Royalti
8
Label3
Autosize
True
9
Label3
Font/Font style
Bold
10
Label3
Caption
Kode Buku
11
Label4
Autosize
True
12
Label4
Font/Font style
Bold
13
Label4
Caption
Judul
14
Label5
Autosize
True
15
Label5
Font/Font style
Bold
16
Label5
Caption
Penulis
17
Label6
Autosize
True
18
Label6
Font/Font style
Bold
19
Label6
Caption
Cetakan
20
Label7
Autosize
True
21
Label7
Font/Font style
Bold
22
Label7
Caption
Tahun
23
Label8
Autosize
True
24
Label8
Font/Font style
Bold
25
Label8
Caption
Exemplar
26
Label9
Autosize
True
27
Label9
Font/Font style
Bold
28
Label9
Caption
Quantity
29
Label10
Autosize
True
30
Label10
Font/Font style
Bold
117
31
Label10
Caption
Harga Buku
32
Label11
Autosize
True
33
Label11
Font/Font style
Bold
34
Label11
Caption
Kode Penulis
35
Label12
Autosize
True
36
Label12
Font/Font style
Bold
37
Label12
Caption
Nama Penulis
38
Label13
Autosize
True
39
Label13
Font/Font style
Bold
40
Label13
Caption
Quantity Bayar
41
Label14
Autosize
True
42
Label14
Font/Font style
Bold
43
Label14
Caption
Terima
44
Label15
Autosize
True
45
Label15
Font/Font style
Bold
46
Label15
Caption
Periode Bayar
47
TextBox1
Text
(Dikosongkan/Dihapus)
48
TextBox1
Name
TxtTglRoyalti
49
TextBox1
Maxlength
12
50
TextBox2
Text
(Dikosongkan/Dihapus)
51
TextBox2
Name
TxtKdBuku
52
TextBox2
Maxlength
9
53
TextBox3
Text
(Dikosongkan/Dihapus)
54
TextBox3
Name
TxtJudul
55
TextBox3
Maxlength
50
56
TextBox4
Text
(Dikosongkan/Dihapus)
57
TextBox4
Name
TxtPenulis
58
TextBox4
Maxlength
50
118
59
TextBox5
Text
(Dikosongkan/Dihapus)
60
TextBox5
Name
TxtCetakan
61
TextBox5
Maxlength
12
62
TextBox6
Text
(Dikosongkan/Dihapus)
63
TextBox6
Name
TxtTahun
64
TextBox6
Maxlength
4
65
TextBox7
Text
(Dikosongkan/Dihapus)
66
TextBox7
Name
TxtExemplar
67
TextBox8
Text
(Dikosongkan/Dihapus)
68
TextBox8
Name
TxtQuantity
69
TextBox9
Text
(Diksongkan/Dihapus)
70
TextBox9
Name
TxtHrgBuku
71
TextBox10
Text
(Dikosongkan/Dihapus)
72
TextBox10
Name
TxtKdPenulis
73
TextBox10
Maxlength
9
74
TextBox11
Text
(Dikosongkan/Dihapus)
75
TextBox11
Name
TxtNamaPenulis
76
TextBox11
Maxlength
50
77
TextBox12
Text
(Dikosongkan/Dihapus)
78
TextBox12
Name
TxtQtyByr
79
TextBox13
Text
(Dikosongkan/Dihapus)
80
TextBox13
Name
TxtTerima
81
TextBox14
Name
TxtPeriode
82
TextBox14
Text
(Dikosongkan/Dihapus)
83
TextBox14
Maxlength
30
84
Command1
Caption
&Simpan
85
Command1
Font/Font style
Bold
86
Command1
Name
CmdSimpan
119
87
Command2
Caption
&Batal
88
Command2
Font/Font style
Bold
89
Command2
Name
CmdBatal
90
Command3
Caption
S&elesai
91
Command3
Font/Font style
Bold
92
Command3
Name
CmdSelesai
93
Form1
Caption
Form Royalti
94
Form1
Name
Form_Royalti
95
Form1
StartUpPosition
2-Center Screen
96
Data1
DatabaseName
SisfoRoyalti
97
Data1
RecordsetType
0-Table
98
Data1
RecordSource
Buku
99
Data2
DatabaseName
SisfoRoyalti
100
Data2
RecordsetType
0-Table
101
Data2
RecordSource
Penulis
102
Data3
DatabaseName
SisfoRoyalti
103
Data3
RecordsetType
0-Table
104
Data3
RecordSource
Royalti
Tabel 4.7 Pengaturan Properti Form_Royalti
4. Simpan Form dengan nama Form_Royalti.
4.7.1 Memberi Perintah Form_Royalti Perintah-perintah yang dibuat pada Form_Royalti sebagai berikut: 1. Dalam keadaan View Code, pilih menu Tools > Add Procedure.
120
Gambar 4.7 Menu Tools > Add Procedure
2. Muncul jendela Add Procedure, atur seperti Gambar 4.8.
Gambar 4.8 Jendela Add Procedure
3. Klik OK, kemudian ketik perintah di bawah ini: TxtTglRoyalti.Text = " " TxtKdBuku.Text = " " TxtJudul.Text = " " TxtPenulis.Text = " " TxtCetakan.Text = " " TxtTahun.Text = " " TxtExemplar.Text = " " TxtQuantity.Text = " " TxtHrgBuku.Text = " " TxtKdPenulis.Text = " " TxtNamaPenulis.Text = " " TxtQtyByr.Text = " " TxtTerima.Text = " " TxtPeriode.Text = " "
Arti perintah di atas: Untuk mengosongkan data di objek TextBox.
121
4. Klik View Object untuk ke form, kemudian klik dua kali objek CmdBatal. Ketik perintah sebagai berikut: Kosongform TxtKdBuku.SetFocus
5. Klik View Object untuk ke form, kemudian klik dua kali objek CmdSelesai. Ketik perintah sebagai berikut: Unload Me
6. Klik View Object untuk ke form, kemudian klik dua kali objek CmdSimpan. Ketik perintah sebagai berikut: Dim x As Integer Dim M1 As Integer Dim M2 As Integer Data1.Recordset.Index = "IdxBuku" Data1.Recordset.Seek ">=", TxtKdBuku.Text If Not Data1.Recordset.NoMatch Then M1 = Val(TxtQuantity.Text) M2 = M1 - Val(TxtQtyByr.Text) Data1.Recordset.Edit Data1.Recordset!quantity = M2 Data1.Recordset.Update End If Data3.Recordset.AddNew Data3.Recordset!TglRoyalti = TxtTglRoyalti.Text Data3.Recordset!KdBuku = TxtKdBuku.Text Data3.Recordset!KdPenulis = TxtKdPenulis.Text Data3.Recordset!QtyByr = Val(TxtQtyByr.Text) Data3.Recordset!Periode = TxtPeriode.Text Data3.Recordset.Update Kosongform TxtKdBuku.SetFocus
Arti perintah di atas: Untuk menyimpan ke tabel Royalti. 7. Klik View Object untuk ke form, klik dua kali form yang tidak ada objek. Pilih Activate pada kotak Procedure, ketik perintah sebagai berikut: TxtTglRoyalti.Text = Date Tidakaktif
Arti perintah di atas: Untuk menampilkan tanggal sistem ke objek TextBox TxtTglRoyalti dan memanggil procedure Tidakaktif. 8. Buat procedure Tidakaktif dan ketik perintahnya sebagai berikut: TxtTglRoyalti.Enabled = False TxtJudul.Enabled = False
122
TxtPenulis.Enabled = False TxtCetakan.Enabled = False TxtTahun.Enabled = False TxtExemplar.Enabled = False TxtQuantity.Enabled = False TxtHrgBuku.Enabled = False TxtNamaPenulis.Enabled = False TxtTerima.Enabled = False TxtTglRoyalti.BackColor = &H8000000F TxtJudul.BackColor = &H8000000F TxtPenulis.BackColor = &H8000000F TxtCetakan.BackColor = &H8000000F TxtTahun.BackColor = &H8000000F TxtExemplar.BackColor = &H8000000F TxtQuantity.BackColor = &H8000000F TxtHrgBuku.BackColor = &H8000000F TxtNamaPenulis.BackColor = &H8000000F TxtTerima.BackColor = &H8000000F
9. Klik View Object untuk ke form, kemudian klik dua kali objek Textbox TxtKdBuku, pilih LostFocus pada kotak Procedure. Ketik perintah sebagai berikut: Dim x As Integer If Len(Trim(TxtKdBuku.Text)) < 15 Then TxtKdBuku.Text = " " TxtKdBuku.SetFocus Else Data1.Recordset.Index = "IdxBuku" Data1.Recordset.Seek ">=", TxtKdBuku.Text If Data1.Recordset.NoMatch Then x = MsgBox("Data Buku Tidak Ada!!!", vbOKOnly) TxtKdBuku.Text = " " TxtKdBuku.SetFocus Else TxtJudul.Text = Data1.Recordset!judul TxtPenulis.Text = Data1.Recordset!Penulis TxtCetakan.Text = Data1.Recordset!cetakan TxtTahun.Text = Data1.Recordset!tahun TxtExemplar.Text = Data1.Recordset!Exemplar TxtQuantity.Text = Data1.Recordset!quantity TxtHrgBuku.Text = Data1.Recordset!hrgbuku End If End If
10. Klik View Object untuk ke form, kemudian klik dua kali objek Textbox TxtKdPenulis, pilih LostFocus pada kotak Procedure. Ketik perintah sebagai berikut: Dim x As Integer If Len(Trim(TxtKdPenulis.Text)) < 9 Then TxtKdPenulis.Text = " " TxtKdPenulis.SetFocus Else Data2.Recordset.Index = "Idxpenulis" Data2.Recordset.Seek ">=", TxtKdPenulis.Text If Data2.Recordset.NoMatch Then x = MsgBox("Data Penulis Tidak Ada!!!", vbOKOnly)
123
TxtKdPenulis.Text = " " TxtKdPenulis.SetFocus Else TxtNamaPenulis.Text = Data2.Recordset!namapenulis End If End If Data3.Recordset.Index = "IdxRoyalti" Data3.Recordset.Seek ">=", TxtTglRoyalti.Text, TxtKdBuku.Text, TxtKdPenulis.Text If Not Data3.Recordset.NoMatch Then x = MsgBox("Sudah Terima Royalti!!!", vbOKOnly) Kosongform TxtKdBuku.SetFocus End If
11. Klik View Object untuk ke form, kemudian klik dua kali objek Textbox TxtQtyByr, pilih LostFocus pada kotak Procedure. Ketik perintah sebagai berikut: Dim Mterima1 As Double Dim Mterima2 As Double Dim x As Integer If Val(TxtQtyByr.Text) <= Val(TxtQuantity.Text) Then Mterima1 = Val(TxtQuantity.Text) * Val(TxtHrgBuku.Text) * 0.1 Mterima2 = Mterima1 * 0.15 TxtTerima.Text = Mterima2 Else x = MsgBox("Salah Quantity Bayar!!!", vbOKOnly) TxtQtyByr.Text = " " TxtQtyByr.SetFocus End If
12. Simpan kembali form dengan memilih menu File > Save atau mengklik ikon disket.
4.8 Desain Menu Sistem Informasi Royalti Menu merupakan fasilitas untuk memudahkan pemakai program dalam menjalankan program yang kita buat. Langkah-langkah membuat menu sebagai berikut: 1. Klik kanan folder Forms di Project Explorer, kemudian pilih menu Add > Form. 2. Pada tab New, klik tombol Open. 3. Kemudian buat Form dengan tampilan seperti Gambar 4.9.
124
Gambar 4.9 Form_Utama
4. Simpan form dengan memilih menu File > Save Form1 As…, muncul jendela Save File As, ketik Form_Utama di kotak File Name. Pengaturan propertinya seperti Tabel 4.8. No
Objek
Properti
Nilai
1
Form_Utama
Name
Form_Utama
2
Form_Utama
WindowState
2-Maximized
3
Form_Utama
Caption
Sistem Informasi Royalti
4
Form_Utama
MinButton
False
5
Form_Utama
MaxButton
False
6
Form_Utama
Moveable
False
Tabel 4.8 Pengaturan Properti Form_Utama
5. Kemudian klik ikon Menu Editor seperti Gambar 4.10.
Gambar 4.10 Ikon Menu Editor
6. Muncul jendela Menu Editor, atur seperti Gambar 4.11. 125
Gambar 4.11 Jendela Menu Editor
7. Pengaturan properti yang lainnya seperti Tabel 4.9. No
Caption
Name
1
&Penulis
Mnu_Penulis
2
&Royalti
Mnu_Royalti
3
&Exit
Mnu_Exit
Tabel 4.9 Pengaturan Menu Editor
8. Setelah mengisi Mnu_Exit di kotak Name, klik OK. 9. Jika Anda benar membuat menunya, tampilannya seperti Gambar 4.12.
Gambar 4.12 Menu Sistem Informasi Royalti
126
10. Klik Buku, ketik perintahnya sebagai berikut: Form_Buku.Show
Arti perintah di atas: Menampilkan Form_Buku. 11. Klik View Object, kemudian klik Penulis. Ketik perintahnya sebagai berikut: Form_Penulis.Show
Arti perintah di atas: Menampilkan Form_Penulis. 12. Klik View Object, kemudian klik Royalti. Ketik perintahnya sebagai berikut: Form_Royalti.Show
Arti perintah di atas: Menampilkan Form_Royalti. 13. Klik View Object, lalu klik Exit. Ketik perintahnya sebagai berikut: End
14. Pilih Project > Project1 Properties…, atur Startup Object menjadi Form_Utama, kemudian klik OK. 15. Klik ikon Start (panah ke kanan).
4.9 Kompilasi Program Supaya program dapat dijalankan tanpa sistem Microsoft Visual Basic 6.0, maka program harus dibuat menjadi file EXE (Executable file). Langkah-langkah membuat file EXE sebagai berikut: 1. Buka Project PSIR, jika belum terbuka atau aktif. 2. Pilih menu File > Make PSIR.exe…. 3. Muncul jendela Make Project, ketik SisfoRoyalti sebagai nama file hasil exe dan klik OK. 4. Proses membuat file EXE berlangsung. Jika selesai, Anda sudah memiliki file application SisfoRoyalti, yang dapat dijalankan di Windows Explorer. *** 127