Royalti
POKOK BAHASAN
107
4.1 Pendahuluan
Sistem Informasi Royalti yang akan dibahas ini difokuskan pada
pengolahan pembayaran royalti ke penulis, tetapi dapat dikem-
bangkan ke sistem informasi royalti yang lebih lengkap.
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 data-
base terdapat dalam perangkat lunak Visual Basic 6.0 (Add-In).
Struktur file sistem informasi penggajian terlihat seperti pada
ketiga tabel berikut.
Tabel Buku
Tabel Penulis
109
TglLhrPenulis Text 12 Tanggal Lahir Penulis
Tabel Royalti
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.
ISBN Text 20
Judul Text 50
Penulis Text 50
Cetakan Text 12
Tahun Text 4
Exemplar Integer
Quantity Integer
HrgBuku Double
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.
112
4. Akhiri dengan mengklik tombol Update, masukkan lagi satu
record seperti Gambar 4.3 di bawah ini.
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.
KdPenulis Text 9
NamaPenulis Text 50
AltPenulis Text 50
JkPenulis Text 12
TglLhrPenulis Text 12
PhonePenulis Text 15
113
Gambar 4.4 Record Pertama
TglRoyalti Text 12
KdBuku Text 15
KdPenulis Text 9
QtyByr Integer
Periode Text 30
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).
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.
116
3 Label1 Caption Royalti
4 Label1 Font/Size 18
117
31 Label10 Caption Harga Buku
49 TextBox1 Maxlength 12
52 TextBox2 Maxlength 9
55 TextBox3 Maxlength 50
58 TextBox4 Maxlength 50
118
59 TextBox5 Text (Dikosongkan/Dihapus)
61 TextBox5 Maxlength 12
64 TextBox6 Maxlength 4
73 TextBox10 Maxlength 9
76 TextBox11 Maxlength 50
83 TextBox14 Maxlength 30
119
87 Command2 Caption &Batal
120
Gambar 4.7 Menu Tools > Add Procedure
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
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.
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.
125
Gambar 4.11 Jendela Menu Editor
No Caption Name
1 &Penulis Mnu_Penulis
2 &Royalti Mnu_Royalti
3 &Exit Mnu_Exit
126
10. Klik Buku, ketik perintahnya sebagai berikut:
Form_Buku.Show
127