Pemrograman Database Dengan VB 6.0
Pemrograman Database Dengan VB 6.0
KONSEP DASAR
PEMROGRAMAN DATABASE
Modul
OBJEKTIF
Mahasiswa Dapat Memahami aspek-aspek penting pada pemrograman
database
ASPEK-ASPEK PENTING PEMROGRAMAN DATABASE
aat ini perangkat lunak semakin luas dan besar lingkupnya, sehingga tidak bisa
lagi dibuat asal-asalan. Perangkat lunak saat ini seharusnya dirancang dengan
memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust
walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan
dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain
selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang
matang adalah dimungkinkannya penggunaan kembali modul atau komponen
untuk aplikasi perangkat lunak lain yang membutuhkan fungsionalitas yang sama.
Pemrograman Database merupakan salah satu bentuk spesifik dari teknik
pemrograman. Dimana objek utama komputasi dari teknik pemrograman ini adalah
Database. Terdapat beberapa aspek-aspek penting dari pemrograman database
yaitu :
1. Pemodelan Sistem
2. Perancangan Database
3. Pemilihan Bahasa Pemrograman
4. Pengkodean (coding)
5. Perancangan sistem report
6. Proses Debugging dan Testing
7. Optimasi perangkat lunak
8. Dokumentasi Perangkat Lunak
9. Pembuatan File Instalasi
PEMODELAN SISTEM
emodelan (modeling) adalah proses merancang perangkat lunak sebelum
melakukan pengkodean (coding). Model perangkat lunak dapat dianalogikan
seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari
sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat
memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah
sistem, semakin penting pula penggunaan teknik pemodelan yang baik.
Dengan menggunakan model, diharapkan pengembangan perangkat lunak
dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat,
termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya.
Kesuksesan suatu pemodelan perangkat lunak ditentukan oleh tiga unsur,
yang kemudian terkenal dengan sebuan segitiga sukses (the triangle for success).
Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan
tool yang digunakan.
PERANCANGAN DATABASE
ehandalan dari teknik pemrograman database adalah bagaimana anda
sebagai seorang programmer merancang database sebaik mungkin.
Database menjadi suatu object yang sifatnya sangat sensitif disini dimana banyak
sekali pertimbangan-pertimbangan yang harus anda lakukan sebelum merancang
database. Untuk suatu aplikasi yang kemungkinan pengembangan datanya sangat
besar maka diperlukan suatu manajemen database yang dapat menangani data
hingga ribuan record. Tetapi hal yang paling utama dari semua ini adalah teknik
perancangan database dengan melakukan normalisasi hingga diperoleh suatu
rancangan database yang benar-benar terhindar dari redudancy data sehingga
kapasitas penyimpanan lebih kecil dan proses pe-retrieve-an data dapat lebih
cepat.
1. Pseudocode
2. Structured Chart
3. Flow Chart
Cetakan dari program sumber (source code program)
Manual operasi penggunaan program.
PEMBUATAN FILE INSTALASI
ahap terakhir dari pembuatan suatu sistem perangkat lunak adalah
pembuatan file instalasi. Pada Microsoft Visual Basic 6.0 anda dapat dengan
mudah membuat file instalasi dengan menggunakan wizard yang ada. Atau anda
dapat pula menggunakan aplikasi pembuat file instalasi dari third party yang jauh
lebih fleksibel dan expert dengan banyak fitur tambahan.
PERANCANGAN DAN
NORMALISASI DATABASE
Modul
OBJEKTIF
Pemahaman teori database dan hierarki data.
Pembahasan teknik normalisasi untuk mereduksi terjadinya redudancy data.
Pemahaman aspek penting pada relation ships
Penentuan key-key pada database
PENDAHULUAN
elah disinggung pada bab sebelumnya bahwa pada teknik pemrograman
database sangat dituntut perancangan database sebaik mungkin. Kehandalan
aplikasi berbasis data ini sekitar 70% bergantung kepada tipe dan hasil
perancangan database tersebut serta teknik normalisasi yang digunakan.
Sistem Informasi
Database
1. Characters
merupakan bagian data yang terkecil, dapat berupa karakter
numerik, huruf ataupun karakter-karakter khusus (special characters) yang
membentuk suatu field atau item data.
2. item data / field
Field : merepresentasikan suatu atribut dari record yang
menunjukkan suatu item dari data, seperti misalnya nama, alamat dan lain
sebagainya. Kumpulan dari field membentuk suatu record.
field name : harus diberi nama untuk membedakan field yang satu dengan
lainnya
field representation : tipe field (karakter, teks, tanggal, angka, dsb), lebar
field (ruang maksimum yang dapat diisi dengan karakter-karakter data).
field value: isi dari field untuk masing-masing record.
3. Record
Kumpulan dari field membentuk suatu record. Record
menggambarkan suatu unit data individu yang tertentu. Kumpulan dari record
membentuk suatu file.
4. Misalnya file personalia, tiap-tiap record dapat mewakili data tiap-tiap
karyawan.
5. File
File terdiri dari record-record yang menggambarkan satu kesatuan data
yang sejenis. Misalnya file mata pelajaran berisi data tentang semua mata
pelajaran yang ada.
6. Database : Kumpulan dari file / tabel membentuk suatu database
NORMALISASI
ormalisasi merupakan suatu teknik dalam logical desain sebuah basis data/
database, teknik pengelompokkan atribut dari suatu relasi sehingga
membentuk struktur relasi yang baik (tanpa redudansi). Ada Lima bentuk
Normalisasi tetapi sampai kebentuk Normal ke Tiga saja sudah memenuhi syarat
perancangan database yang baik.
10
NAMA
JURUSAN
KODE
MATA
KODE
NAMA
NILAI
NILAI
NILAI
NILAI
1001
Budi
T.Mesin
1002
Ardi
T.Sipil
MK.
KLK
AGM
STS
KLK
KMA
CAD
KULIAH
Kalkulus
Agama
Statistik
Kalkulus
Kimia
AutoCad
DOSEN
FHR
JFR
SNT
FHR
NOE
HNR
DOSEN
Fahri
Jefri
Santi
Fahri
Whisnu
Henry
ABSENSI
100
100
85
100
50
100
TUGAS
100
85
100
50
80
100
MID
75
80
80
80
90
85
UAS
85
65
85
95
65
95
Dari Bentuk unnormalized dapat kita buat ke bentuk normalisasi pertama yaitu
dalam bentuk flat table
NIM
1001
1001
1001
1002
1002
1002
NAMA
JURUSAN
Budi
Budi
Budi
Ardi
Ardi
Ardi
T.Mesin
T.Mesin
T.Mesin
T.Sipil
T.Sipil
T.Sipil
KODE
MK.
KLK
AGM
STS
KLK
KMA
CAD
MATA
KULIAH
Kalkulus
Agama
Statistik
Kalkulus
Kimia
AutoCad
KODE
DOSEN
FHR
JFR
SNT
FHR
NOE
HNR
NAMA
DOSEN
Fahri
Jefri
Santi
Fahri
Whisnu
Henry
NILAI
ABSENSI
100
100
85
100
50
100
NILAI
TUGAS
100
85
100
50
80
100
NILAI
MID
75
80
80
80
90
85
NILAI
UAS
85
65
85
95
65
95
Dari Bentuk Normal Pertama kita bagi flat table diatas menjadi beberapat table
sehingga tiap table memiliki key unik (key primer).
Table Mahasiswa
* NIM
1001
1002
NAMA
Budi
Ardi
KODE JURUSAN
TMS
T.Sipil
Table Dosen
* KODE DOSEN
FHR
JFR
SNT
NOE
HNR
NAMA DOSEN
Fahri
Jefri
Santi
Whisnu
Henry
Table Jurusan
* KODE JURUSAN
TMS
TSP
Table Nilai
KODE
NIM
NAMA JURUSAN
Teknik Mesin
Teknik Sipil
NILAI
NILAI
NILAI
NILAI
11
ABSEN
100
100
100
100
50
85
1001
1002
1001
1002
1002
1001
TUGAS
85
100
100
50
80
100
MID
80
85
75
80
90
80
UAS
65
95
85
95
65
85
Pada bentuk normal kedua diatas tiap tabel sudah tidak memiliki
keteragantungan parsial atas tabel lainnya hanya bergantung pada field kunci saja,
hanya saja pada table nilai masih terdapat redudancy data sehingga table perlu
dipecah kembali untuk menghasilkan bentuk normal ke tiga.
Pada Bentuk Normal ketiga tiap table harus tidak memiliki ketergantungan
transitif lagi, hal ini dilakukan dengan cara menentukan foreign key yang memiliki
ketergantungan pada key primer pada table lain. Hal ini sangat berguna dalam
menjaga keintegritasan data pada tiap table.
Bentuk Normal Ketiga
Table MataKuliah
Table Nilai
n
Kode_MK
Nama_MK
Jmlh_SKS
Table Ujian
n
n
Table Dosen
Kode_Dosen
Nama_Dosen
12
Kode_Ujian
Kode_MK
Kode_Dosen
Tahun_Ajaran
Kode Ujian
n
Nim
N_Absen
N_Tugas
N_Mid
N_Semester
Table Mahasiswa
N_AkhirAngka
1
N_AkhirHuruf
NIM
Nama
n Kode_Jurusan
Table Jurusan
1
Kode_Jurusan 1
Nama_Jurusan
Nama_KAJUR
Table Nilai
Field Name
* Kode_Dosen
Nama_Dosen
Data
Type
Text
Text
Lebar
Data
5
30
Data
Type
Text
Text
Text
Lebar
Data
3
20
50
Table Jurusan
Field Name
* Kode_Jurusan
Nama_Jurusan
Nama_Kajur
Field Name
Kode_Ujian
NIM
N_Absen
N_Tugas
N_Mid
N_Semester
N_AkhirAngka
N_AkhirHuruf
Data
Type
Text
Text
Number
Number
Number
Number
Number
Text
Lebar
Data
20
8
Byte
Byte
Byte
Byte
Single
5
Table Ujian
Table Mahasiswa
Data
Type
Text
Text
Text
Lebar
Data
8
30
3
Data
Type
Text
Text
Number
Lebar
Data
7
30
Byte
Field Name
* NIM
Nama
Kode Jurusan
Table MataKuliah
Field Name
* Kode_MK
Nama_MK
Jumlah SKS
Field Name
* Kode_Ujian
Kode_MK
Kode_Dosen
Tahun_Ajaran
Data
Type
Text
Text
Text
Text
Lebar
Data
20
7
5
10
Keterangan
Tanda * pada Field Name dari setiap
table
menandakan
bahwa
Field
Tersebut merupakan Primary Key dari
table yang dirancang.
TIPS-Perancangan Database
enentuan Tipe Data dan Lebar Data dari tiap field sangat penting. Tipe Data
harus ditentukan berdasarkan kemungkinan value yang akan diinput begitu
13
pula dengan lebar data. Pada suatu field Lebar data harus ditentukan seminimal
mungkin (mis. Nama = 30, jarang sekali nama seseorang panjangnya sampai 50
karakter). Lebar Data yang mubazir akan menyebabkan pengembangan size
database yang tentunya akan membutuhkan space penyimpanan yang besar.
BENTUK RELATION SHIPS
ancanglah bentuk Relationships seperti dibawah ini. Ketika anda melakukan
relasi antar table maka atur properti tiap foreign key seperti dibawah ini :
Keterangan
Bentuk Relasi adalah One-To-Many (1 = One, = Many )
Enforce Referential Integrity
Kita akan meningkatkan keintegritasan tiap
tabel yang direlasikan.
Cascade Update Related Fields
Tiap terjadi perubahan field pada parent
table maka hal ini juga akan terjadi pada child table.
Cascade Delete Related Fields
Tiap terjadi penghapusan record pada
parent table maka hal ini juga akan terjadi pada child table.
14
STRUCTURE QUERY
LANGUAGE (SQL)
Modul
OBJEKTIF
Mahasiswa dapat memahami struktur dasar SQL
Command Pada DDL dan DML
Pembuatan Aplikasi Penguji Query SQL
KONSEP DASAR SQL
QL (Structured Query Language) adalah serangkaian pernyataan pada engine
database (termasuk engine Jet) yang berisi informasi apa yang ingin
ditampilkan oleh pemakai. Kemudian engine memproses pernyataan tersebut dan
menyediakan informasi yang diperlukan.
SQL bukanlah bahasa pemrograman tetapi sub-language (subbahasa) yang
berisi sekitar 30 pernyataan khusus dengan tugas mengelola database.
Pernyataan SQL diintegrasikan pada bahasa pemrograman yang sebenarnya
seperti Visual Basic.
Pernyataan SQL dikelompokkan menjadi dua yaitu DDL (Data Defenition
Language) dan DML (Data Manipulation Language). Pernyataan DDL dapat
15
* FROM PUBLISHER
Pernyataan diatas akan memilih dan menampilkan semua field table publisher
dari database Biblio.mdb (database contoh pada office / visual basic )
SELECT TITLE, [YEAR PUBLISHED] FROM TITLES
KLAUSA WHERE
lausa Where digunakan untuk menampilkan record yang memenuhi kondisi
tertentu. Sintaksnya adalah :
PENJELASAN
Isi field lebih kecil dari suatu nilai
Isi field lebih kecil atau sama dengan dari suatu nilai
Isi field lebih besar dari suatu nilai
Isi filed lebih besar atau sama dengan dari suatu nilai
Isi field sama dengan dari suatu nilai
Isi field tidak sama dengan dari suatu nilai
Isi field diantara suat range
Isi field sesuai dengan pola tertentu
Isi field sesuai dengan satu dari beberapa Kriteria
Contoh :
SELECT * FROM PUBLISHERS Where City = New York
17
Hasilnya akan menampilkan daftar penerbit yang berasal dari kota New York
saja.Untuk menampilkan penerbit yang PubID-nya diantara 200 sampai 300 maka
query yang diberikan adalah :
SELECT * FROM PUBLISHERS WHERE PUBID BETWEEN 200 AND 300
Untuk menampilkan daftar pengarang yang
menggunakan awalan huruf D digunakan klausa LIKE.
nama
belakangkanya
fungsinya
untuk
menghapus
data.
Contoh
PERNYATAAN UPDATE
ernyataan query Update digunakan untuk memperbaharui informasi dalam
suatu table.Sintaksnya sebagai berikut :
UPDATE Table
Set Nilai
Where Kriteria
Contoh :
UPDATE Pelanggan
SET Kota = Makasar
Where Kota = Ujung Pandang
LATIHAN DAN TUGAS
ada modul ini Anda akan membuat sebuah program penguji Query SQL
dimana dengan aplikasi yang akan dirancang ini anda akan mudah untuk
mempelajari pernyataan SQL dan langsung melihat hasilnya pada form.
19
20
PROPERTI
Caption
DatabaseName
Visible
Caption
DataSource
Caption
Caption
Name
Alignment
BorderStyle
PENGATURAN
Penguji Query SQL
Path Database Anda
False
Hasil SQL
Data1
Record Ke
Jumlah Record
LblRecordKe
2 Center
1 Fixed Single
Langkah Pasti Menuju Sukses
Label4
TextBox
Command1
Caption
Name
Alignment
BorderStyle
Caption
Name
Multiline
ScrollBars
Text
Name
Caption
Kosongkan
lblJmlhRecord
2 Center
1 Fixed Single
Kosongkan
Text1
True
2 Vertical
Kosongkan
cmdJalankan
&Jalankan
21
Modul
OBJEKTIF
Memahamai fungsionalitas ADO
Mengenal Objek-Objek Pada ADO
Mengenal Metode-Metode yang ada pada objek-objek utama
Pembuatan Modul pada Sistem Informasi Akademik
PENGANTAR ADO
niversal Data Access (UDA) adalah strategi Microsoft untuk menyediakan
akses ke semua tipe informasi dari berbagai sumber data baik relational
maupun non relational sepert mainframe ISAM/VSAM, database hierarkial, e-mail,
teks dan data grafis.
OLE Database (OLE DB) adalah bagian dari Universal Data Access yang
memungkinkan kita membaca dan memproses data dari manapun tanpa terlebih
dahulu mengkonversi dan mengimpor ke dalam bentuk database tradisional.
Menggunakan provider OLE DB, anda dapat memproses data dalam pesan e-mail,
halaman HTML, spreadsheet dan dokument teks. Juga Microsoft Jet, SQL Server,
FoxPro dan database Oracle.
Active X Data Object (ADO) adalah antarmuka level tinggi ke OLE DB atau
dengan kata lain kita dapat berkomunikasi dengan OLE DB menggunakan ADO.
Dengan menggunakan ADO yang dihubungkan dengan OLE DB kita dapat
Berbicara dengan data Access, Oracle, Server SQL dan sumber data linnya
menggunakan model Objek ADO.
OBJEK ADO
Ado memiliki tujuh Objek sebagai berikut :
OBJEK
Connection
Command
Recordset
KETERANGAN
Membuat koneksi antara aplikasi Anda dengan sumber
data eksternal sepert MS Access, MS SQL Server, Oracle
dan lain-lain.
Digunakan untuk mengeksekusi perintah termasuk
menggunakan parameter yang spesifik untuk mengakses
record dari sumber data. Umumnya nilai kembalian dari
akses record adalah objek recordset.
Digunakan untuk mengakses record yang merupakan
kembalian dari query SQL. Objek recordset dipakai untuk
23
Field
Parameter
Error
Property
KETERANGAN
Untuk memulai transaksi baru.
Untuk membatalkan operasi asynchronous
Untuk menutup objek atau koneksi
Untuk mengeksekusi pernyataan SQL atau Query.
Untuk membuka koneksi
Nilai kembaliannya adalah informasi skema database
Untuk membatalkan perubahan yang terjadi saat transaksi
atau mengakhiri transaksi yang gagal.
Operasi asynchronous adalah suatu tugas yang diinisialisasi oleh suatu kode
(seperti query) yang mengizinkan tugas lainnya untuk melanjutkannya sebelum
tugas tersebut selesai. Kebalikannya, operasi synchronous adalah suatu tugas
yang diinisialisasi oleh suatu kode yang harus selesai terlebih dahulu sebelum
operasi lainnya dimulai.
KETERANGAN
Mengindikasikan karakteristik suatu objek.
Nilai kembalian atau pengaturan waktu yang digunkan
untuk memperoses sebuah perintah sebelum waktunya
habis / timeout.
Nilai kembalian atau pengaturan untuk membuat suatu
connection. Isinya DSN, UserName dan Password.
Nilai kembalian atau pengaturan waktu yang disediakan
untuk memproses sebuah connection sebelum waktunya
habis /.timeout.
Nilai kembalian atau pengaturan dimana kursor berada.
Nilai kembalian atau pengaturan default database untuk
objek connection.
Nilai kembaliannya adalah koleksi dari objek error yang
dimunculkan oleh provider data.
Nilai kembalian atau pengaturan dari level isolasi untuk
transaksi
Nilai kembaliannya adalah izin akses yang diberikan untuk
memodifikasi data.
Nilai kembaliannya adalah properti dinamik untuk objek.
Nilai kembaliannya adalah nama data provider.
Nilai kembaliannya adalah status koneksi apakah dibuka,
ditutup atau sibuk.
Nilai kembaliannya adalah nomor versi ADO.
OBJEK COMMAND
Dibawah ini adalah metode-metode yang ada pada objek command ;
METODE
Cancel
CancelParameter
Execute
KETERANGAN
Membatalkan
perintah
yang
dieksekusi
asynchronous.
Membuat parameter baru suatu objek.
Menjalankan perintah/Command
secara
25
KETERANGAN
Nilai kembalian atau pengaturan untuk mengaktifkan
objek connection.
Nilai kembalian atau pengaturan untuk command teks.
Nilai kembalian atau pengaturan sampai waktunya
habis.
Nilai kembalian atau pengaturan tipe command.
Nlai kembaliannya adalah nama objek.
Nilai kembaliannya adalah parameter command.
Nilai kembalian atau pengaturan apakah akan
mengkompilasi command sebelum mengeksekusi.
Nilai kembaliannya adalah properti yang dinamik dari
objek.
Nilai kembaliannya adalah status koneksi apakah
dibuka, ditutup atau sibuk.
OBJEK RECORDSET
Dibawah ini adalah daftar metode yang ada pada objek RecordSet
METODA
AddNew
Cancel
CancelBatch
CancelUpdate
Clone
Close
CompareBookmarks
Delete
Find
GetRows
GetString
Move
26
KETERANGAN
Menambah record baru ke objek recordset.
Membatalkan perintah yang dieksekusi secara
asynchronous.
Membatalkan perubahan sebelum BatchUpdate
dipanggil.
Membatalkan perubahan sebelum update dipanggil.
Membuat duplikat objek recordset dari objek recordset
yang ada.
Menutup recordset dan koneksinya ke sebuah sumber
data.
Mengambil dua bookmark dan membandingkan posisi
relatif mereka.
Menghapus data pada objek recordset.
Mencari suatu record dari recordset.
Memasukkan record ke dalam suatu array.
Memasukkan record ke dalam suatu string.
Memindahkan posisi record aktif.
Langkah Pasti Menuju Sukses
PROPERTI RECORDSET
Berikut adalah table Properti yang ada pada objek RecordSet.
PROPERTI
AbsolutePage
AbsolutePosition
ActiveCommand
ActiveConnection
BOF
Bookmark
CacheSize
CursorLocation
CursorType
KETERANGAN
Menghasilkan nomor halaman dari record yang ada.
Menghasilkan posisi awal dari record yang ada.
Nilai kembaliannya adalah objek command yang
membuat recordset.
Nilai kembaliannya adalah koneksi aktif yang
digunakan oleh recordset.
Nilai kembaliannya adalah posisi record aktif sebelum
data pertama dari recordset.
Pengenal baris unik untuk record aktif.
Nilai kembalian atau pengaturan jumlah record yang
di-cache dalam memory lokal.
Nilai kembalian atau pengaturan dari lokasi kursor.
Nilai kembalian atau pengaturan tipe kursor.
27
28
STRING KONEKSI
Provider=Microsoft.Jet.OLEDB.3.5.1;
Provdier=MSDAORA;Data Source =ServerName;
User ID=NamaUser;Password=password
Provider=MSDASQL.1;UID=admin;Extended
Properties=DBQ=PathDatabase;FIL=
Ms Access;
Provider=SQLOLEDB;Data Source=sql65server;
User ID=sa;Password=;initial Catalog=pubs
Keterangan :
Simpan file Project (Sistem Akademik.VBP) pada folder Sistem Akademik.
Simpan semua file project lainnya (*.frm, *.frx, *.bas) pada folder Code.
Simpan Database yang telah anda buat pada modul kedua di folder Database
Simpan Semua file report (*.rpt) yang akan anda buat nantinya pada folder
Report.
Siapkan folder Package untuk file instalasi (Setup Program).
Prosedur Kerja Pembuatan Modul SistemAkademik :
1. Bukalah sebuah project baru (Standard Exe) pada Visual Basic 6.0.
2. Ubah properti Name pada Project1 menjadi Sistem_Akademik.
Langkah Pasti Menuju Sukses
29
3. Remove form1 dengan cara meng-klik kanan form default (form1) pada project
explorer window dan pilih Remove Form1.frm.
4. Dari Menu Project pilih Add Module, dan ubah properti Name pada Module1
menjadi SistemAkademik.
5. Anda perlu mengatur referensi project ke ADO. Caranya klik menu Pjoect
References Dari daftar referensi yang muncul pilih Microsoft ActiveX Data
Object 2.5 Library. Klik OK.
6. Ketikkan listing program dibawah ini.
Listing Program Modul Sistem Akademik :
'Constanta Untuk daftar Table di Database
Public Const Dosen = 1
Public Const Jurusan = 2
Public Const Mahasiswa = 3
Public Const MataKuliah = 4
Public Const Ujian = 5
Public Const Nilai = 6
Public Const ListNilai = 7
'Variable untuk pengaksesan ke database
Public cn As ADODB.Connection
'cn untuk connnection
Public rsDosen As ADODB.Recordset
'rs untuk recordset
Public rsJurusan As ADODB.Recordset
Public rsMahasiswa As ADODB.Recordset
Public rsMataKuliah As ADODB.Recordset
Public rsUjian As ADODB.Recordset
Public rsNilai As ADODB.Recordset
Public rsListNilai As ADODB.Recordset
'************************************************************
' Sub Rutin Untuk Membuka Konneksi ke Database
*
'************************************************************
Public Sub OpenDBConnection()
Dim Str_Connect As String
On Error GoTo ErrorMsg
'String koneksi untuk membuka koneksi
Str_Connect = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source = " & App.Path & "\Database\dbAkademik.mdb"
'Buat Koneksi baru
Set cn = New ADODB.Connection
cn.Open Str_Connect
Exit Sub
ErrorMsg:
MsgBox Err.Description
30
End Sub
'************************************************************
' Sub Rutin Untuk Membuka Konneksi ke Table
*
'************************************************************
Public Sub OpenTblConnection(ID_Table As Byte)
On Error GoTo ErrorMsg
'Pilih recordset mana yang akan dibuka
Select Case ID_Table
Case Dosen:
'Buar recordset baru untuk table Dosen
Set rsDosen = New ADODB.Recordset
rsDosen.Open "Select * from Dosen", cn, adOpenStatic, _
adLockOptimistic
Case Jurusan:
'Buar recordset baru untuk table Jurusan
Set rsJurusan = New ADODB.Recordset
rsJurusan.Open "Select * from Jurusan", cn, adOpenStatic, _
adLockOptimistic
Case Mahasiswa:
'Buar recordset baru untuk table Mahasiswa
Set rsMahasiswa = New ADODB.Recordset
rsMahasiswa.Open "Select * from Mahasiswa", cn, _
adOpenStatic, adLockOptimistic
Case MataKuliah:
'Buar recordset baru untuk table MataKuliah
Set rsMataKuliah = New ADODB.Recordset
rsMataKuliah.Open "Select * from MataKuliah", cn, _
adOpenStatic, adLockOptimistic
Case Ujian:
Set rsUjian = New ADODB.Recordset
rsUjian.Open "Select * from Ujian", cn, adOpenStatic, _
adLockOptimistic
Case Nilai:
'Buar recordset baru untuk table Nilai
Set rsNilai = New ADODB.Recordset
rsNilai.Open "Select * from Nilai", cn, adOpenStatic, _
adLockOptimistic
Case ListNilai:
'Buar recordset baru untuk table ListNilai
Set rsListNilai = New ADODB.Recordset
rsListNilai.Open _
"SELECT Nilai.Nim, Mahasiswa.Nama, Nilai.N_absen, " & _
"Nilai.N_Tugas, Nilai.N_Mid, Nilai.N_Semester, " & _
"Nilai.N_AkhirAngka, Nilai.N_AkhirHuruf FROM Mahasiswa " & _
"INNER JOIN Nilai ON Mahasiswa.Nim = Nilai.Nim", cn, _
adOpenStatic, adLockOptimistic
End Select
Exit Sub
ErrorMsg:
MsgBox Err.Description
31
End Sub
'************************************************************
' Sub Rutin Untuk Menutup Konneksi ke Table
*
'************************************************************
Public Sub CloseTblConnection(ID_Table As Byte)
On Error GoTo ErrorMsg
Select Case ID_Table
Case Dosen:
'Tutup recordset
rsDosen.Close
Set rsDosen = Nothing
Case Jurusan:
rsJurusan.Close
Set rsJurusan = Nothing
Case Mahasiswa:
rsMahasiswa.Close
Set rsMahasiswa = Nothing
Case MataKuliah:
rsMataKuliah.Close
Set rsMataKuliah = Nothing
Case Ujian:
rsUjian.Close
Set rsUjian = Nothing
Case Nilai:
rsNilai.Close
Set rsNilai = Nothing
Case ListNilai:
rsListNilai.Close
Set rsListNilai = Nothing
End Select
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
'************************************************************
' Sub Rutin Untuk Menutup Konneksi ke Database
*
'************************************************************
Public Sub CloseDBConnection()
Set cn = Nothing
End Sub
'************************************************************
' Sub Rutin Main, Bagian Program Utama
*
'************************************************************
Public Sub Main()
Load frmMain
frmMain.Show
End Sub
32
CATATAN
roject Program sejauh ini belum dapat dijalankan, simpan project dengan
nama Sistem Akademik.vbp dan simpan module dengan nama Sistem
Akademik.bas (sesuai dengan pathnya) lalu tutup project. Pada modul-modul
berikutnya anda akan membuat interfacing serta sistem report pada aplikasi
Sistem Akademik ini.
33
INTERFACING APLIKASI
SISTEM AKADEMIK
Modul
OBJEKTIF
Mahasiswa dapat mendesain dan merancang interface yang diperlukan dalam
pembuatan aplikasi perangkat lunak Sistem Informasi Akademik.
PENDAHULUAN
istem Informasi Akademik memiliki interface yang terdiri atas lima form dan
satu form MDI (Multiple Document Interface). Tiap form satu sama lain memiliki
object-object yang hampir indentik, artinya Anda hanya perlu merancang satu form
hingga selesai, dan form lainnya dapat dibuat dengan meng-copy dari form yang
telah selesai dirancang tadi. Begitu pula dengan pengaturan properti tiap object
Anda cukup mengatur pada satu form saja sehingga proses perancangan mudah
dan cepat.
Sebelum dilakukan perancangan pada Form Data Dosen maka Anda harus
terlebih dahulu mengatur beberapa setting pada Project Sistem Akademik yaitu :
Tambahkan beberapa komponen kontrol dari menu Project Components
1. Crystal Report Component
2. Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)
3. Microsoft Windows Common Controls 6.0 (SP4)
Atur Referensi dari Project yaitu dari menu Project References
1. Microsoft ActiveX Data Objects 2.5 Library
2. Microsoft Data Binding Collection VB 6.0 (SP4)
34
35
36
Command
Button1
Label1
Command
Buttons
TextBox2
Label4
Command
Button2
Command
Button4
Command
Button3
Label1
Label2
PROPERTI
PENGATURAN
BackStyle
0 Transparent
Alignment
2 Center
Alignment
2 Center
Caption
Form Data
Dosen
BorderStyle
1 Fixed Single
BackColor
&H00FFFFFF&
BackStyle
0 Transparent
Caption
(Kosongkan)
Alignment
1 Right
Justified
(Name)
lblStatus
Caption
Kode Dosen
Caption
Data Dosen
BackStyle
0 Transparent
(Name)
txtFields
Alignment
1 Right
Justified
Text
(Kosongkan)
(Name)
TxtFields
Caption
Nama Dosen
Text
(Kosongkan)
Label3
Label4
Frame1
TextBox1
TextBox2
37
Command
(Name)
CmdAdd
Button9
Style
1 Graphical
Button1
Caption
&Add
Command
(Name)
CmdPrevious
Style
1 - Graphical
Command
(Name)
CmdEdit
Button10
Button2
Caption
&Edit
Command
(Name)
CmdNext
Style
1 - Graphical
CmdLast
Command
(Name)
CmdUpdate
Button11
Button3
Caption
&Update
Command
(Name)
Button12
Command
(Name)
CmdCancel
Style
1 Graphical
Button4
Caption
&Cancel
(Name)
FrmDosen
Command
(Name)
CmdDelete
BorderStyle
3 Fixed Dialog
Button5
Caption
&Delete
Caption
Command
(Name)
CmdSearch
Form Data
Dosen
Button6
Caption
&Search
StartUposition
2 Center
Screen
Command
(Name)
CmdClose
(Name)
CrptReport
Button7
Caption
&Close
WindowState
2-crptMaximize
Command
(Name)
CmdReport
Button8
Caption
&Report
Command
(Name)
CmdFirst
Form1
Crystal
Report1
38
Label3
TextBox1
Label2
Label1
Frame1
Command
Button1
Command
Buttons
TextBox2
Label4
Command
Button2
Command
Button4
Command
Button3
TextBox3
Label1
Label2
Label3
PROPERTI
PENGATURAN
Alignment
1 Right Justified
Caption
Nama Ketua
Jurusan
Alignment
2 Center
Caption
Form Data
Jurusan
BackStyle
0 - Transparant
BackStyle
0 Transparent
Alignment
2 Center
Alignment
1 Right Justified
BorderStyle
1 Fixed Single
Caption
Kode Jurusan
BackColor
&H00FFFFFF&
BackStyle
0 Transparent
Caption
(Kosongkan)
Alignment
1 Right Justified
(Name)
lblStatus
Caption
Nama Jurusan
Frame1
Caption
Data Jurusan
BackStyle
0 Transparent
TextBox1
(Name)
txtFields
Label4
Label5
39
Text
(Kosongkan)
Button7
Caption
&Close
(Name)
txtFields
Command
(Name)
CmdReport
Text
(Kosongkan)
Button8
Caption
&Report
(Name)
txtFields
Command
(Name)
CmdFirst
Text
(Kosongkan)
Button9
Style
1 - Graphical
(Name)
CmdAdd
Command
(Name)
CmdPrevious
Button10
Style
1 - Graphical
CmdNext
TextBox2
TextBox3
Command
Button1
Caption
&Add
Command
(Name)
CmdEdit
Command
(Name)
Button2
Caption
&Edit
Button11
Style
1 - Graphical
Command
(Name)
CmdUpdate
Command
(Name)
CmdLast
Button3
Caption
&Update
Button12
Style
1 Graphical
Command
(Name)
CmdCancel
(Name)
FrmJurusan
Button4
Caption
&Cancel
BorderStyle
3 Fixed Dialog
Command
(Name)
CmdDelete
Caption
Button5
Caption
&Delete
Form Data
Jurusan
Command
(Name)
CmdSearch
StartUposition
2 Center Screen
Button6
Caption
&Search
Command
(Name)
CmdClose
Form1
40
Crystal
Report
Label3
Label2
TextBox1
Label1
Frame1
Command
Button1
Command
Buttons
TextBox2
Label5
Command
Button2
Command
Button4
Command
Button3
TextBox3
Label4
PROPERTI
Alignment
PENGATURAN
2 Center
Label3
Form Data
Label1
Caption
MataKuliah
Label2
Label4
Alignment
1 Right Justified
Caption
Nama MataKuliah
BackStyle
0 Transparent
Alignment
1 Right Justified
Caption
Jumlah SKS
BackStyle
0 Transparent
Alignment
1 Right Justified
BackStyle
0 - Transparant
Caption
Kode MataKuliah
Alignment
2 Center
BackStyle
0 Transparent
BorderStyle
1 Fixed Single
BackColor
&H00FFFFFF&
Label5
41
Frame1
Caption
(Kosongkan)
Button7
Caption
&Close
(Name)
lblStatus
Command
(Name)
CmdReport
Caption
Data MataKuliah
Button8
Caption
&Report
(Name)
txtFields
Command
(Name)
CmdFirst
Text
(Kosongkan)
Button9
Style
1 - Graphical
(Name)
txtFields
Command
(Name)
CmdPrevious
Button10
Style
1 - Graphical
CmdNext
TextBox1
TextBox2
Text
(Kosongkan)
(Name)
txtFields
Command
(Name)
Text
(Kosongkan)
Button11
Style
1 Graphical
Command
(Name)
CmdAdd
Command
(Name)
CmdLast
Button1
Caption
&Add
Button12
Style
1 Graphical
Command
(Name)
CmdEdit
(Name)
FrmMataKuliah
Button2
Caption
&Edit
BorderStyle
3 Fixed Dialog
Command
(Name)
CmdUpdate
Button3
Caption
&Update
Command
(Name)
CmdCancel
Button4
Caption
&Cancel
Command
(Name)
CmdDelete
Button5
Caption
&Delete
Command
(Name)
CmdSearch
Button6
Caption
&Search
Command
(Name)
CmdClose
TextBox3
Form1
Form Data
Caption
MataKuliah
StartUposition
2 Center Screen
Crystal
(Name)
CrptReport
Report1
WindowState
2-crptMaximize
42
Crystal
Report
Label3
Label2
TextBox1
Label1
Frame1
Command
Button1
Command
Buttons
TextBox2
Label5
Command
Button2
Command
Button4
Command
Button3
ComboBox
Label4
PROPERTI
Alignment
Label1
Label2
PENGATURAN
Alignment
1 Right Justified
Caption
Nama
Form Data
BackStyle
0 Transparent
Mahasiswa
Alignment
1 Right Justified
Caption
Kode Jurusan
BackStyle
0 - Transparant
Alignment
2 Center
BorderStyle
1 Fixed Single
2 Center
Label3
Caption
BackStyle
0 Transparent
Alignment
1 Right Justified
Caption
NIM
BackStyle
0 Transparent
Label4
Label5
43
Frame1
&H00FFFFFF&
Command
(Name)
CmdClose
Caption
(Kosongkan)
Button7
Caption
&Close
(Name)
LblStatus
Command
(Name)
CmdReport
Caption
Data Mahasiswa
Button8
Caption
&Report
(Name)
TxtFields
Command
(Name)
CmdFirst
Text
(Kosongkan)
Button9
Style
1 - Graphical
(Name)
TxtFields
Command
(Name)
CmdPrevious
Text
(Kosongkan)
Button10
Style
1 - Graphical
(Name)
TxtFields
Command
(Name)
CmdNext
Text
(Kosongkan)
Button11
Style
1 Graphical
(Name)
cboJurusan
Command
(Name)
CmdLast
0 Dropdown
Button12
Style
1 Graphical
Combol
(Name)
FrmMataKuliah
BorderStyle
3 Fixed Dialog
TextBox1
TextBox2
TextBox3
Combo1
Style
Command
(Name)
CmdAdd
Button1
Caption
&Add
Form1
Form Data
Caption
Command
(Name)
CmdEdit
Button2
Caption
&Edit
Command
(Name)
CmdUpdate
Button3
Caption
&Update
Command
(Name)
CmdCancel
Button4
Caption
&Cancel
Command
(Name)
CmdDelete
Button5
Caption
&Delete
Command
(Name)
CmdSearch
Button6
Caption
&Search
Mahasiswa
StartUposition
2 Center Screen
Crystal
(Name)
CrptReport
Report1
WindowState
2-crptMaximize
F
44
yang dapat diedit seperti layaknya textbox serta dapat menampilkan list (combol
box) pada cell yang diklik.
Sistem Report juga akan mengacu kepada setting yang diberikan oleh user
secara fleksibel. User dapat menentukan pensortiran data berdasarkan kriteria
field. Hal ini dapat dimanipulasi berdasarkan query yang diberikan.
45
46
Label1
Label2
Label3
PROPERTI
PENGATURAN
Combo
(Name)
CboTahunAjaran
Alignment
2 Center
Box3
Style
2 Dropdown
Form Nilai
Combo
(Name)
CboNIM
Mahasiswa
Box4
Style
2 Dropdown
BackStyle
0 Transparent
Combo
(Name)
CboNama
Alignment
1 Right Justified
Box5
Style
2 - Dropdown
Caption
Kode MataKuliah
(Name)
Option1
BackStyle
0 Transparent
Option
Button1
Caption
Ascend
Alignment
1 Right Justified
Caption
BackStyle
Caption
(Name)
Option2
Kode Dosen :
Option
Button2
Caption
Descend
0 Transparent
Command
(Name)
CmdAdd
Alignment
1 Right Justified
Button1
Caption
&Add
Caption
Tahun Ajaran :
Command
(Name)
CmdEdit
BackStyle
0 - Transparant
Button2
Caption
&Edit
Alignment
1 Center
Command
(Name)
CmdUpdate
Caption
(Kosongkan)
Button3
Caption
&Update
(Name)
LblMataKuliah
Command
(Name)
CmdCancel
Alignment
2 Center
Button4
Caption
&Cancel
Caption
(Kosongkan)
Command
(Name)
CmdDelete
(Name)
LblDosen
Button5
Caption
&Delete
Frame1
Caption
Data Mahasiswa
Command
(Name)
CmdSearch
Frame2
Caption
Nama MataKuliah
Button6
Caption
&Search
Frame3
Caption
Nama Dosen
Command
(Name)
CmdClose
Frame4
Caption
Pengurutan
Button7
Caption
&Close
Combo
(Name)
CboMataKuliah
Command
(Name)
CmdReport
Box1
Style
2 Dropdown
Button8
Caption
&Report
Combo
(Name)
CboDosen
Command
(Name)
CmdTitle
Box2
Style
2 Dropdown
Button9
Caption
NIM
Label4
Label5
Label5
47
(Name)
CmdTitle
(Name)
TxtList
Nama Mahasiswa
BackColor
&H00FFC0FF&
(Name)
CmdTitle
(Name)
FrmMataNilai
Caption
Absensi 10 %
BorderStyle
3 Fixed Dialog
Caption
Form Nilai
StartUpositi
on
2 Center Screen
(Name)
CrptReport
WindowStat
e
2-crptMaximize
Text Box1
Button10
Caption
Command
Button11
Command
(Name)
CmdTitle
Button12
Caption
Tugas 15 %
Form1
Command
(Name)
CmdTitle
Button13
Caption
Mid 30 %
Crystal
Command
(Name)
CmdTitle
Report1
Button14
Caption
UAS 45 %
(Name)
MshReport
Command
(Name)
CmdTitle
MsHFlex
BackColor
&H00C0E0FF&
Button15
Caption
Angka
Grid1
Command
CmdTitle
BackColorB
kg
&H00FFC0C0&
(Name)
Button16
Caption
Huruf
48
INDEX
1
2
3
4
5
6
7
8
9
10
CAPTION
Jurusan
MataKuliah
Dosen
Mahasiswa
Nilai
Keluar
STYLE
4 tbrPlaceholder
0 tbrDefault
0 tbrDefault
3 tbrSeparator
0 tbrDefault
0 tbrDefault
0 tbrDefault
3 tbrSeparator
0 tbrDefault
3 tbrSeparator
Tool Bar
Image
List
Status
Bar
TIPS Dan Trick
nda dapat menambahkan bakcground untuk memperindah tampilan form
Main. Sebaiknya tipe file image yang dipakai berekstensi *.wmf (windows
metafile) karena jika window diresize maka image background akan stretching
mengikuti lebar window sehingga tampilan tampak professional.
Jika anda tidak memiliki aplikasi konversi file image ke metafile maka anda
dapat menggunakan aplikasi Microsoft Word. Yaitu dengan membuka lembar kerja
baru lalu klik menu Insert
Picture
From File, masukkan file image dengan
ekstensi apa saja (bmp, jpg, jpeg, gif) ke document word lalu atur layout picture
menjadi behind text. Selanjutnya copy file image tersebut dan paste-kan pada MDI
form. Secara otomatis file image tersebut akan berextensi wmf.
49
PERANCANGAN REPORT
DENGAN CRYSTAL REPORT
Modul
OBJEKTIF
Mahasiswa Dapat merancang suatu sistem report yang terintegrasi dengan
menggunakan aplikasi third party Seagate Crystal Report.
Perancangan Report
istem Report pada perangkat lunak Sistem Akademik ini dirancang dengan
menggunakan program third party Seagate Crystal Report. Aplikasi ini bekerja
secara terpisah dengan Visual Basic 6.0 dan berfungsi membuat dan menguji
report, kontrol ActiveX dan beberapa file lainnya.
Crystal Report desainer akan membuat file definisi report dengan ekstensi
*.rpt. Pada aplikasi kita Crystal Report di link-an dengan kontrol OLE (OCX) yang
ditampilkan pada form untuk mengatur proses mencetak report. Dengan kontrol ini
anda dapat menampilkan report pada jendela Print Preview, mencetak langsung
ke printer, atau mengekspor menjadi suatu file.
50
2. Muncul kotak wizard Create Report Expert. Pada Tab pertama Tables klik
pada perintah Data File. Pada Pilihan Directories pilih dimana database
dbAkademik disimpan. Lalu klik tombol Add kemudian tombol Done Anda akan
masuk ke halaman tab ke dua yaitu Links dimana secara otomatis Crystal
Report akan membuat daftar link.
3. Klik Next kemudian pada tab ketiga Fields tambahkan fieds sesuai report yang
akan kita rancang.
4. Klik tab Style kemudian pada kotak isian Title isikan judul report dan pilih style
Table untuk Report kita.
51
52
53
RUNNING
TOTAL NAME
FIELD TO
SUMMARIZE
TYPE OF
SUMMARY
( EVALUATE ) USE A
FORMULA
RESET
Count_A
Count_B
Count_C
Count_D
Count_E
Nilai.N_AkhirHuruf
Nilai.N_AkhirHuruf
Nilai.N_AkhirHuruf
Nilai.N_AkhirHuruf
Nilai.N_AkhirHuruf
Count
Count
Count
Count
Count
{Nilai.N_AkhirHuruf} = "A"
{Nilai.N_AkhirHuruf} = "B"
{Nilai.N_AkhirHuruf} = "C"
{Nilai.N_AkhirHuruf} = "D"
{Nilai.N_AkhirHuruf} = "E"
Never
Never
Never
Never
Never
55
CODEING APLIKASI
SISTEM AKADEMIK
Modul
OBJEKTIF
Tahap penulisan source code pada tiap objek.
RunTime Program.
Proses debugging dan testing program.
PENDAHULUAN
ada modul ini adalah tahapan penyelesaian perangkat lunak Sistem Informasi
Akademik yaitu penulisan kode sumber (source code) pada tiap objek yang
ada. Setelah proses codeing selesai maka proses selanjutnya adalah melakukan
proses debugging pada tiap modul, keintegritasan dari seluruh modul hingga
diperoleh suatu sistem perangkat lunak yang baik dan terhindar dari bug program.
AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeDosen As String * 3
56
End Sub
Function CheckField() As Boolean
If txtFields(0).Text = vbNullString Then
MsgBox "Field Kode Dosen tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(0).SetFocus
CheckField = False
Exit Function
End If
If txtFields(1).Text = vbNullString Then
MsgBox "Field Nama Dosen tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(1).SetFocus
CheckField = False
Exit Function
End If
CheckField = True
End Function
Private Sub cmdReport_Click()
On Error GoTo Error
crptReport.ReportFileName = App.Path & "\Report\LAPORAN DATA DOSEN.rpt"
crptReport.DiscardSavedData = True
crptReport.Action = 1
Exit Sub
Error:
MsgBox Err.Description
End Sub
Private Sub cmdSearch_Click()
On Error GoTo ErrorMsg
Dim Kode As String
Kode = InputBox("Masukkan Kode Dosen", "Cari Record Dosen")
With rsDosen
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) = UCase(Kode) Then
FieldFill
Exit Sub
End If
.MoveNext
Loop Until .EOF
End If
End With
MsgBox "Kode Dosen yang anda input tidak ada", vbInformation,
"Konfirmasi"
Exit Sub
57
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub
Private Sub Form_Activate()
SetButtons (True)
With rsDosen
If .RecordCount <> 0 Then
cmdFirst_Click
FieldFill
End If
End With
End Sub
Private Sub Form_Load()
OpenTblConnection (Dosen)
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyEscape
cmdClose_Click
Case vbKeyEnd
cmdLast_Click
Case vbKeyHome
cmdFirst_Click
Case vbKeyUp, vbKeyPageUp
If Shift = vbCtrlMask Then
cmdFirst_Click
Else
cmdPrevious_Click
End If
Case vbKeyDown, vbKeyPageDown
If Shift = vbCtrlMask Then
cmdLast_Click
Else
cmdNext_Click
End If
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
CloseTblConnection (Dosen)
Screen.MousePointer = vbDefault
End Sub
58
59
60
.Fields(1).Value = txtFields(1)
.UpdateBatch
Exit Do
End If
.MoveNext
Loop Until .EOF
EditFlag = False
End If
End With
Save = True
SetButtons (True)
lblStatus.Caption = "Record Ke : " & CStr(rsDosen.AbsolutePosition) &
"/" & CStr(rsDosen.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdFirst_Click()
On Error GoTo ErrorMsg
With rsDosen
If .RecordCount <> 0 Then
.MoveFirst
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsDosen.AbsolutePosition)
& "/" & CStr(rsDosen.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdLast_Click()
On Error GoTo ErrorMsg
With rsDosen
If .RecordCount <> 0 Then
.MoveLast
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsDosen.AbsolutePosition)
& "/" & CStr(rsDosen.RecordCount)
End If
End With
Exit Sub
61
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdNext_Click()
On Error GoTo ErrorMsg
With rsDosen
If .RecordCount <> 0 Then
.MoveNext
If .EOF Then
.MovePrevious
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsDosen.AbsolutePosition) &
"/" & CStr(rsDosen.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdPrevious_Click()
On Error GoTo ErrorMsg
With rsDosen
If .RecordCount <> 0 Then
.MovePrevious
If .BOF Then
.MoveNext
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsDosen.AbsolutePosition) &
"/" & CStr(rsDosen.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub SetButtons(bVal As Boolean)
Dim ObjText As TextBox
For Each ObjText In Me.txtFields
62
ObjText.Locked = bVal
Next
cmdAdd.Visible = bVal
cmdEdit.Visible = bVal
cmdUpdate.Visible = Not bVal
cmdCancel.Visible = Not bVal
cmdDelete.Visible = bVal
cmdClose.Visible = bVal
cmdSearch.Visible = bVal
cmdNext.Enabled = bVal
cmdFirst.Enabled = bVal
cmdLast.Enabled = bVal
cmdPrevious.Enabled = bVal
End Sub
AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeJurusan As String * 3
63
Exit Function
End If
If txtFields(1).Text = vbNullString Then
MsgBox "Field Nama Jurusan tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(1).SetFocus
CheckField = False
Exit Function
End If
If txtFields(2).Text = vbNullString Then
MsgBox "Field Nama Ketua Jurusan tidak boleh kosong !",
vbInformation, "Kesalahan Input"
txtFields(2).SetFocus
CheckField = False
Exit Function
End If
CheckField = True
End Function
Private Sub cmdSearch_Click()
On Error GoTo ErrorMsg
Dim Kode As String
Kode = InputBox("Masukkan Kode Jurusan", "Cari Record Jurusan")
With rsJurusan
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) = UCase(Kode) Then
FieldFill
Exit Sub
End If
.MoveNext
Loop Until .EOF
End If
End With
MsgBox "Kode jurusan yang anda input tidak ada", vbInformation,
"Konfirmasi"
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub
64
65
66
If UCase(.Fields(0).Value) = UCase(txtFields(0).Text)
Then
MsgBox "Kode Jurusan telah ada pada Database..",
vbInformation, "Kesalahan Input"
txtFields(0).Text = vbNullString
txtFields(0).SetFocus
Exit Sub
End If
.MoveNext
Loop Until .EOF
End If
'Jika Tidak Lakukan Penambahan Record Baru
.AddNew
.Fields(0).Value = txtFields(0).Text
.Fields(1).Value = txtFields(1).Text
.Fields(2).Value = txtFields(2).Text
.UpdateBatch
AddNewFlag = False
'Jika Operasi Edit Record
ElseIf EditFlag Then
If txtFields(0).Text <> KodeJurusan Then
'check apakah terjadi redudansi pada key primer
With rsJurusan
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) <> UCase(KodeJurusan)
Then
If UCase(.Fields(0).Value) =
UCase(txtFields(0).Text) Then
MsgBox "Kode Jurusan telah ada pada
Database..", vbInformation, "Kesalahan Input"
txtFields(0).Text = vbNullString
txtFields(0).SetFocus
Exit Sub
End If
End If
.MoveNext
Loop Until .EOF
End If
End With
End If
.MoveFirst
'Jika tidak ubah record
Do
If .Fields(0).Value = KodeJurusan Then
.Fields(0).Value = txtFields(0)
.Fields(1).Value = txtFields(1)
.Fields(2).Value = txtFields(2)
.UpdateBatch
Exit Do
End If
.MoveNext
67
68
69
AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeMahasiswa As String
70
71
72
cmdFirst_Click
Else
cmdPrevious_Click
End If
Case vbKeyDown, vbKeyPageDown
If Shift = vbCtrlMask Then
cmdLast_Click
Else
cmdNext_Click
End If
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
CloseTblConnection (Mahasiswa)
CloseTblConnection (Jurusan)
Screen.MousePointer = vbDefault
End Sub
73
74
.MoveFirst
Do
If UCase(.Fields(0).Value) <>
UCase(KodeMahasiswa) Then
If UCase(.Fields(0).Value) =
UCase(txtFields(0).Text) Then
MsgBox "NIM Mahasiswa telah ada pada
Database..", vbInformation, "Kesalahan Input"
txtFields(0).Text = vbNullString
txtFields(0).SetFocus
Exit Sub
End If
End If
.MoveNext
Loop Until .EOF
End If
End With
End If
.MoveFirst
'Jika tidak ubah record
Do
If .Fields(0).Value = KodeMahasiswa Then
.Fields(0).Value = txtFields(0)
.Fields(1).Value = txtFields(1)
.Fields(2).Value = cboJurusan.Text
.UpdateBatch
Exit Do
End If
.MoveNext
Loop Until .EOF
EditFlag = False
End If
End With
Save = True
SetButtons (True)
lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition)
& "/" & CStr(rsMahasiswa.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdFirst_Click()
On Error GoTo ErrorMsg
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveFirst
75
FieldFill
lblStatus.Caption = "Record Ke : " &
CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdLast_Click()
On Error GoTo ErrorMsg
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveLast
FieldFill
lblStatus.Caption = "Record Ke : " &
CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdNext_Click()
On Error GoTo ErrorMsg
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveNext
If .EOF Then
.MovePrevious
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition)
& "/" & CStr(rsMahasiswa.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdPrevious_Click()
On Error GoTo ErrorMsg
76
With rsMahasiswa
If .RecordCount <> 0 Then
.MovePrevious
If .BOF Then
.MoveNext
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition)
& "/" & CStr(rsMahasiswa.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub SetButtons(bVal As Boolean)
Dim ObjText As TextBox
For Each ObjText In Me.txtFields
ObjText.Locked = bVal
Next
cmdAdd.Visible = bVal
cmdEdit.Visible = bVal
cmdUpdate.Visible = Not bVal
cmdCancel.Visible = Not bVal
cmdDelete.Visible = bVal
cmdClose.Visible = bVal
cmdSearch.Visible = bVal
cmdNext.Enabled = bVal
cmdFirst.Enabled = bVal
cmdLast.Enabled = bVal
cmdPrevious.Enabled = bVal
End Sub
AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeMataKuliah As String * 3
77
End Sub
Private Sub FieldFill()
On Error GoTo ErrorMsg
With rsMataKuliah
txtFields(0).Text = .Fields(0).Value
txtFields(1).Text = .Fields(1).Value
txtFields(2).Text = .Fields(2).Value
End With
txtFields(0).SetFocus
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Function CheckField() As Boolean
If txtFields(0).Text = vbNullString Then
MsgBox "Field Kode MataKuliah tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(0).SetFocus
CheckField = False
Exit Function
End If
If txtFields(1).Text = vbNullString Then
MsgBox "Field Nama MataKuliah tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(1).SetFocus
CheckField = False
Exit Function
End If
If txtFields(2).Text = vbNullString Then
MsgBox "Field Nama Ketua MataKuliah tidak boleh kosong !",
vbInformation, "Kesalahan Input"
txtFields(2).SetFocus
CheckField = False
Exit Function
End If
CheckField = True
End Function
Private Sub cmdReport_Click()
On Error GoTo Error
crptReport.ReportFileName = App.Path & "\Report\LAPORAN DATA
MATAKULIAH.rpt"
crptReport.DiscardSavedData = True
crptReport.Action = 1
Exit Sub
78
Error:
MsgBox Err.Description
End Sub
Private Sub cmdSearch_Click()
On Error GoTo ErrorMsg
Dim Kode As String
Kode = InputBox("Masukkan Kode MataKuliah", "Cari Record MataKuliah")
With rsMataKuliah
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) = UCase(Kode) Then
FieldFill
Exit Sub
End If
.MoveNext
Loop Until .EOF
End If
End With
MsgBox "Kode MataKuliah yang anda input tidak ada", vbInformation,
"Konfirmasi"
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub
Private Sub Form_Activate()
SetButtons (True)
With rsMataKuliah
If .RecordCount <> 0 Then
cmdFirst_Click
FieldFill
End If
End With
End Sub
Private Sub Form_Load()
OpenTblConnection (MataKuliah)
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyEscape
79
cmdClose_Click
Case vbKeyUp, vbKeyPageUp
If Shift = vbCtrlMask Then
cmdFirst_Click
Else
cmdPrevious_Click
End If
Case vbKeyDown, vbKeyPageDown
If Shift = vbCtrlMask Then
cmdLast_Click
Else
cmdNext_Click
End If
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
CloseTblConnection (MataKuliah)
Screen.MousePointer = vbDefault
End Sub
Private Sub cmdAdd_Click()
lblStatus.Caption = "Tambah Record"
Save = False
AddNewFlag = True
FieldClear
SetButtons (False)
txtFields(0).SetFocus
End Sub
Private Sub cmdDelete_Click()
On Error GoTo ErrorMsg
lblStatus.Caption = "Hapus Record"
With rsMataKuliah
If MsgBox("Yakin akan menghapus record ini ?", vbQuestion + vbYesNo,
"Konfirmasi") = vbYes Then
.Delete
.Requery
If .RecordCount <> 0 Then
cmdFirst_Click
Else
FieldClear
End If
Else
cmdFirst_Click
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
80
81
82
With rsMataKuliah
If .RecordCount <> 0 Then
.MoveFirst
FieldFill
lblStatus.Caption = "Record Ke : " &
CStr(rsMataKuliah.AbsolutePosition) & "/" & CStr(rsMataKuliah.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdLast_Click()
On Error GoTo ErrorMsg
With rsMataKuliah
If .RecordCount <> 0 Then
.MoveLast
FieldFill
lblStatus.Caption = "Record Ke : " &
CStr(rsMataKuliah.AbsolutePosition) & "/" & CStr(rsMataKuliah.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub cmdNext_Click()
On Error GoTo ErrorMsg
With rsMataKuliah
If .RecordCount <> 0 Then
.MoveNext
If .EOF Then
.MovePrevious
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsMataKuliah.AbsolutePosition)
& "/" & CStr(rsMataKuliah.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
83
Option Explicit
'Variable Global
Dim AddNewFlag As Boolean
Dim EditFlag As Boolean
Dim EditRow As Byte
Dim SearchRow As Byte
Dim Col, Row As Byte
Dim strConnection As String
'Deklarasi Konstanta
Const Light As Byte = 1
Const Normal As Byte = 2
Function KodeUjian() As String
KodeUjian = """" & cboMataKuliah.Text & cboDosen.Text &
cboTahunAjaran.Text & """"
End Function
Private Sub cboDosen_Click()
With rsDosen
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboDosen.Text Then
lblDosen.Caption = .Fields(1).Value
End If
.MoveNext
Loop Until .EOF
End If
End With
strConnection = _
"SELECT Nilai.Nim, Mahasiswa.Nama, Nilai.N_absen, Nilai.N_Tugas,
Nilai.N_Mid, " & _
"Nilai.N_Semester, Nilai.N_AkhirAngka, Nilai.N_AkhirHuruf,
Nilai.Kode_Ujian " & _
"FROM Mahasiswa INNER JOIN Nilai ON Mahasiswa.Nim = Nilai.Nim " & _
"WHERE (((Nilai.Kode_Ujian)=" & KodeUjian & "))"
View_List
End Sub
Private Sub cboMataKuliah_Click()
With rsMataKuliah
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboMataKuliah.Text Then
lblMataKuliah.Caption = .Fields(1).Value
End If
.MoveNext
Loop Until .EOF
End If
End With
strConnection = _
85
86
87
End With
End Sub
Private Sub FillCboMataKuliah()
With rsMataKuliah
If .RecordCount <> 0 Then
.MoveFirst
Do
cboMataKuliah.AddItem .Fields(0).Value
.MoveNext
Loop Until .EOF
Else
cboMataKuliah.AddItem vbNullString
End If
If cboMataKuliah.ListCount > 1 Then
cboMataKuliah.Text = cboMataKuliah.List(0)
End If
End With
End Sub
Private Sub FillCboMahasiswa()
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveFirst
Do
cboNim.AddItem .Fields(0).Value
cboNama.AddItem .Fields(1).Value
.MoveNext
Loop Until .EOF
Else
cboNim.AddItem vbNullString
cboNama.AddItem vbNullString
End If
If cboNim.ListCount > 1 Then
cboNim.Text = cboNim.List(0)
cboNama.Text = cboNama.List(0)
End If
End With
End Sub
Private Sub FillCboTahunAjaran()
Dim i As Integer
With cboTahunAjaran
For i = 2001 To 2050
.AddItem CStr(i) & "/" & CStr(i + 1)
Next i
End With
cboTahunAjaran.Text = cboTahunAjaran.List(0)
End Sub
Private Sub cmdReport_Click()
On Error GoTo Error
88
89
90
= True Then
strConnection & "ORDER BY Nilai.Nim"
strConnection & "ORDER BY Nilai.Nim DESC"
= True Then
strConnection & "ORDER BY Mahasiswa.Nama"
strConnection & "ORDER BY Mahasiswa.Nama
= True Then
strConnection & "ORDER BY
Nilai.N_absen"
Nilai.N_absen
= True Then
strConnection & "ORDER BY Nilai.N_Tugas"
strConnection & "ORDER BY Nilai.N_Tugas
= True Then
strConnection & "ORDER BY N_Mid"
strConnection & "ORDER BY Nilai.N_Mid DESC"
= True Then
strConnection & "ORDER BY Nilai.N_Semester"
strConnection & "ORDER BY Nilai.N_Semester
= True Then
strConnection & "ORDER BY
= True Then
strConnection & "ORDER BY
Else
strConnection = strConnection & "ORDER BY Nilai.N_AkhirHuruf
DESC"
End If
End Select
View_List
End Sub
Private Sub Form_Load()
OpenTblConnection (Ujian)
OpenTblConnection (Nilai)
OpenTblConnection (Dosen)
OpenTblConnection (Mahasiswa)
OpenTblConnection (MataKuliah)
mshReport.Clear
Set_mshGrid
SetGridTitle
mshReport.Rows = 0
FillCboMahasiswa
FillCboDosen
FillCboMataKuliah
FillCboTahunAjaran
Option1(0).Value = True
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub
Private Sub Set_mshGrid()
Dim wide As Integer
wide = TextWidth("###########")
With mshReport
.Cols = 8
.Rows = 1
.Row = 0
.Col = 0
.ColWidth(0) = wide * 1
.ColWidth(1) = wide * 2.5
.ColWidth(2) = wide * 1
.ColWidth(3) = wide * 1
.ColWidth(4) = wide * 1
.ColWidth(5) = wide * 1
.ColWidth(6) = wide * 1
.ColWidth(7) = wide * 1
.ColWidth(8) = 0
End With
91
End Sub
Private Sub SetGridTitle()
Dim i As Byte
For i = 0 To 7
mshReport.Col = i
cmdTitle(i).Width = mshReport.ColWidth(i)
cmdTitle(i).Left = mshReport.CellLeft + mshReport.Left
Next i
End Sub
Private Sub Form_Unload(Cancel As Integer)
CloseTblConnection (Ujian)
CloseTblConnection (Nilai)
CloseTblConnection (Dosen)
CloseTblConnection (Mahasiswa)
CloseTblConnection (MataKuliah)
End Sub
Private Sub mshReport_Click()
If Not EditFlag And Not AddNewFlag Then
Exit Sub
End If
If AddNewFlag Then
If mshReport.Row <> mshReport.Rows - 1 Then
Exit Sub
End If
End If
If EditFlag Then
If mshReport.Row <> EditRow - 1 Or _
mshReport.Col = 0 Or mshReport.Col = 1 Then
Exit Sub
End If
End If
With mshReport
Row = .Row
Col = .Col
Select Case Col
Case 0
cboNim.Visible = True
cboNim.SetFocus
cboNim.Move .CellLeft + .Left, .CellTop + .Top, .CellWidth
Case 1
cboNama.Visible = True
cboNama.SetFocus
cboNama.Move .CellLeft + .Left, .CellTop + .Top, .CellWidth
Case 2 To 5
txtList.Visible = True
txtList.Text = .Text
92
txtList.SetFocus
txtList.Move .CellLeft + .Left, .CellTop + .Top, .CellWidth,
txtList.Height
Case 6 To 7
Hitung_Nilai
End Select
End With
End Sub
Private Sub Hitung_Nilai()
Dim N_absen, N_Tugas, N_Mid, N_UAS As Single
Dim N_Akhir As Single
Dim N_Huruf As String * 1
With mshReport
.Col = 2
N_absen = 0.1 * Val(.Text)
.Col = 3
N_Tugas = 0.15 * Val(.Text)
.Col = 4
N_Mid = 0.3 * Val(.Text)
.Col = 5
N_UAS = 0.45 * Val(.Text)
N_Akhir = N_absen + N_Tugas + N_Mid + N_UAS
Select Case N_Akhir
Case 80 To 100
N_Huruf = "A"
Case 70 To 79
N_Huruf = "B"
Case 55 To 69
N_Huruf = "C"
Case 45 To 54
N_Huruf = "D"
Case 0 To 45
N_Huruf = "E"
End Select
.Col = 6
.Text = N_Akhir
.Col = 7
.Text = N_Huruf
End With
End Sub
Private Sub txtList_GotFocus()
SendKeys "{Home} + {End}"
End Sub
Private Sub txtList_KeyPress(KeyAscii As Integer)
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then
KeyAscii = 0
End If
End Sub
93
94
End Sub
Private Sub cmdEdit_Click()
Dim i As Byte
Dim FindNim As Boolean
Dim NIM As String
NIM = InputBox("Masukkan Nim record yang akan diedit", "Edit Record")
With mshReport
.Col = 0
FindNim = False
For i = 0 To .Rows - 1
.Row = i
If .Text = NIM Then
FindNim = True
EditRow = i + 1
Exit For
End If
Next i
End With
If Not FindNim Then
MsgBox "Nim " & NIM & " Tidak ada dalam list ", vbInformation,
"Kesalahan"
Exit Sub
Else
SelectRow EditRow - 1, Light
End If
EditFlag = True
SetButtons (False)
End Sub
Private Sub SelectRow(Brs As Byte, Tipe)
Dim Warna As Long
Select Case Tipe
Case Normal
Warna = &HC0E0FF
Case Light
Warna = &HC0FFC0
End Select
With mshReport
.Row = Brs
.Col = 0
.CellBackColor = Warna
.Col = 1
.CellBackColor = Warna
.Col = 2
.CellBackColor = Warna
.Col = 3
.CellBackColor = Warna
.Col = 4
.CellBackColor = Warna
.Col = 5
95
.CellBackColor = Warna
.Col = 6
.CellBackColor = Warna
.Col = 7
.CellBackColor = Warna
End With
End Sub
Private Sub cmdCancel_Click()
On Error GoTo ErrorMsg
If Not EditFlag Then
mshReport.Rows = mshReport.Rows - 1
Else
SelectRow EditRow - 1, Normal
End If
EditFlag = False
AddNewFlag = False
SetButtons (True)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Function CheckField() As Boolean
Dim NIM As String
mshReport.Col = 0
mshReport.Row = mshReport.Rows - 1
NIM = mshReport.Text
With rsNilai
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboMataKuliah & cboDosen.Text &
cboTahunAjaran.Text And _
.Fields(1).Value = NIM Then
MsgBox "Nim Mahasiswa Tersebut telah ada !..",
vbInformation, "Konfirmasi"
CheckField = False
Exit Function
End If
.MoveNext
Loop Until .EOF
End If
End With
CheckField = True
End Function
Private Sub cmdUpdate_Click()
On Error GoTo ErrorMsg
Dim NIM As String
96
97
98
cmdReport.Enabled = bVal
End Sub
99
100
PEMBUATAN PACKAGE
APLIKASI
Modul
OBJEKTIF
Mahasiswa dapat membuat sebuah package dari aplikasi yang telah dirancang
sebelumnya serta mengetahui aspek-aspek apa saja yang perlu diperhatikan
selema proses pembuatan tersebut.
PENDAHULUAN
etelah proses perancangan dan Penulisan kode program selesai tahap akhir
adalah membuat file executable dari program. Tahap ini sekaligus berfungsi
untuk memeriksa kode program apakah ada konstanta, variable atau object yang
tidak sesuai dengan defenisinnya atau belum dideklarasikan.
101
Klik kembali menu Add-Ins lalu pilih Package And Deployment Wizard, maka
akan muncul kotak dialog berikutnya. Pada kotak dialog tersebut klik tombol
Package maka VB akan memullai menganalisa tiap komponen aplikasi kita.
Pada kotak dialog berikutnya pilih Standard Setup Package dan klik tombol
Next
Kotak dialog berikutnya akan menanyakan apakah paket dibentuk dalam bentu
single Cab atau Multiple CAB Klik tombol Next
Menentukan judul instalasi pada kotak dialog berikutnya, klik tombol Next
Pilih apakah shortcut program akan dimasukkan kedalam start menu dan
dimana lokasinya
103
104