Pemrograman Database Dengan VB 6 0
Pemrograman Database Dengan VB 6 0
Modul
KONSEP DASAR
PEMROGRAMAN DATABASE 1
OBJEKTIF
Mahasiswa Dapat Memahami aspek-aspek penting pada pemrograman
database
S 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
PERANCANGAN DATABASE
K 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.
S ebelum program diterapkan, maka program harus bebas terlebih dahulu dari
kesalahan-kesalahan. Oleh sebab itu, program harus ditest untuk menemukan
kesalahan-kesalahan yang mungkin terjadi. Program ditest untuk tiap-tiap modul
dan dilanjutkan dengan pengetesan untuk semua modul yang telah dirangkai.
Kesalahan dari program dapat diklasifikasikan dalam tiga bentuk kesalahan yaitu :
Kesalahan bahasa (language errors) atau disebut juga dengan kesalahan
penulisan (syntax errors) atau kesalahan tata bahasa (grammatical errors)
adalah kesalahan didalam penulisan source program yang tidak sesuai
dengan yang telah disyaratkan. Kesalahan ini relatif mudah ditemukan dan
diperbaiki, karena kompiler akan memberitahukan letak dan sebab
kesalahannya sewaktu program dikompilasi.
Kesalahan sewaktu proses (run-time errors), adalah kesalahan yang terjadi
sewaktu executable program dijalankan . Kesalahan ini akan menyebabkan
Modul
PERANCANGAN DAN
NORMALISASI DATABASE 2
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
JENJANG DATA
NORMALISASI
N 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.
Catatan:
N ormal seharusnya berada dalam bentuk normal tertinggi dan bergerak dari
bentuk normal satu dan seterusnya untuk setiap kali membatasi hanya satu
jenis redudansi. Keseluruhannya cuma ada lima bentuk normal. Tiga bentuk
normal pertama menekankan redudansi yang muncul dari Function Dependencies
sedangkan bentuk keempat dan kelima menekankan redudansi yang muncul dari
kasus Multi Valued Dependencies.
H ubungan antara tabel satu dengan lainnya melalui field yang sama disebut
relasi. Relasi dibuat menggunakan kunci. Ada dua macam kunci. Pertama
primary key (kunci utama) yaitu field unik yang mengidentifikasikan suatu record
sehingga dapat dihubungkan dengan tabel lain yang berkaitan. Kedua foreign key
(kunci tamu) yaitu field yang berisi nilai identifikasi dengan record yang berkaitan
dalam table lainnya.
Dari Bentuk unnormalized dapat kita buat ke bentuk normalisasi pertama yaitu
dalam bentuk flat table
KODE MATA KODE NAMA NILAI NILAI NILAI NILAI
NIM NAMA JURUSAN
MK. KULIAH DOSEN DOSEN ABSENSI TUGAS MID UAS
1001 Budi T.Mesin KLK Kalkulus FHR Fahri 100 100 75 85
1001 Budi T.Mesin AGM Agama JFR Jefri 100 85 80 65
1001 Budi T.Mesin STS Statistik SNT Santi 85 100 80 85
1002 Ardi T.Sipil KLK Kalkulus FHR Fahri 100 50 80 95
1002 Ardi T.Sipil KMA Kimia NOE Whisnu 50 80 90 65
1002 Ardi T.Sipil CAD AutoCad HNR Henry 100 100 85 95
Dari Bentuk Normal Pertama kita bagi flat table diatas menjadi beberapat table
sehingga tiap table memiliki key unik (key primer).
Table Mahasiswa
* NIM NAMA KODE JURUSAN
1001 Budi TMS
1002 Ardi T.Sipil
Table Dosen
* KODE DOSEN NAMA DOSEN
FHR Fahri
JFR Jefri
SNT Santi
NOE Whisnu
HNR Henry
Table Jurusan
* KODE JURUSAN NAMA JURUSAN
TMS Teknik Mesin
TSP Teknik Sipil
Table Nilai
KODE NIM NILAI NILAI NILAI NILAI
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.
TIPS-Perancangan Database
P enentuan Tipe Data dan Lebar Data dari tiap field sangat penting. Tipe Data
harus ditentukan berdasarkan kemungkinan value yang akan diinput begitu
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.
Modul
STRUCTURE QUERY
LANGUAGE (SQL) 3
OBJEKTIF
Mahasiswa dapat memahami struktur dasar SQL
Command Pada DDL dan DML
Pembuatan Aplikasi Penguji Query SQL
P ernyataan SELECT/FROM untuk mengambil field dari satu atau lebih table.
Sintaks dari pernyataan SELECT/FROM adalah :
Contoh :
SELECT * 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
K lausa Where digunakan untuk menampilkan record yang memenuhi kondisi
tertentu. Sintaksnya adalah :
OPERATOR 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
Between Isi field diantara suat range
Like Isi field sesuai dengan pola tertentu
In Isi field sesuai dengan satu dari beberapa Kriteria
Contoh :
SELECT * FROM PUBLISHERS Where City = “New York”
Sedangkan untuk menampilkan daftar penerbit yang berasal dari kota Boston,
Carmel dan Cambridge saja, digunakan klausa IN
SELECT * FROM PUBLISHERS
WHERE CITY IN (“BOSTON”,”CARMEL”,”CAMBRIDGE”)
Akan menghapus semua field dalam table Authors. Jika Anda ingin
menghapus daftar semua penerbit kecuali yang berasal dari kota New York,
Carmel dan Boston, perintahnya adalah
P ernyataan query Insert Into fungsinya untuk menyisipkan baris baru kedalam
table. Sintaksnya sebagai berikut :
Contoh :
Insert Into Publisher(PUBID, Name,[Company Name])
Values (630,”Duta Mas”,”PT. Elex Media Komputindo”)
PERNYATAAN UPDATE
UPDATE Table
Set Nilai
Where Kriteria
Contoh :
UPDATE Pelanggan
SET Kota = ‘Makasar’
Where Kota = ‘Ujung Pandang’
P 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.
Option Explicit
Data1.RecordSource = Text1
Data1.Refresh
End With
Else
lblJmlhRecord = "0"
lblRecordKe = "Tak ada record"
End If
Else
MsgBox ("Masukkan pernyataan SQL")
End If
Exit Sub
SQLError:
End Sub
lblRecordKe = Data1.Recordset.AbsolutePosition + 1
End Sub
Modul
ADO DAN PEMBUATAN
MODUL SISTEM AKADEMIK
22
4
Langkah Pasti Menuju Sukses
AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
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
OBJEK ADO
Ado memiliki tujuh Objek sebagai berikut :
OBJEK KETERANGAN
Membuat koneksi antara aplikasi Anda dengan sumber
Connection data eksternal sepert MS Access, MS SQL Server, Oracle
dan lain-lain.
Digunakan untuk mengeksekusi perintah termasuk
menggunakan parameter yang spesifik untuk mengakses
Command
record dari sumber data. Umumnya nilai kembalian dari
akses record adalah objek recordset.
Digunakan untuk mengakses record yang merupakan
Recordset
kembalian dari query SQL. Objek recordset dipakai untuk
OBJEK CONNECTION
Dibawah ini daftar metode yang ada pada objek Connection
METODA KETERANGAN
Begin Trans Untuk memulai transaksi baru.
Cancel Untuk membatalkan operasi asynchronous
Close Untuk menutup objek atau koneksi
Execute Untuk mengeksekusi pernyataan SQL atau Query.
Open Untuk membuka koneksi
OpenSchem Nilai kembaliannya adalah informasi skema database
Untuk membatalkan perubahan yang terjadi saat transaksi
RollBackTrans
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.
PROPERTI KETERANGAN
Attributes Mengindikasikan karakteristik suatu objek.
Nilai kembalian atau pengaturan waktu yang digunkan
CommandTimeOut untuk memperoses sebuah perintah sebelum waktunya
habis / timeout.
Nilai kembalian atau pengaturan untuk membuat suatu
ConnectionString
connection. Isinya DSN, UserName dan Password.
Nilai kembalian atau pengaturan waktu yang disediakan
ConnectionTimeOut untuk memproses sebuah connection sebelum waktunya
habis /.timeout.
CursorLocation Nilai kembalian atau pengaturan dimana kursor berada.
Nilai kembalian atau pengaturan default database untuk
DefaultDatabase
objek connection.
Nilai kembaliannya adalah koleksi dari objek error yang
Errors
dimunculkan oleh provider data.
Nilai kembalian atau pengaturan dari level isolasi untuk
Isolation Level
transaksi
Nilai kembaliannya adalah izin akses yang diberikan untuk
Mode
memodifikasi data.
Properties Nilai kembaliannya adalah properti dinamik untuk objek.
Provider Nilai kembaliannya adalah nama data provider.
Nilai kembaliannya adalah status koneksi apakah dibuka,
State
ditutup atau sibuk.
Version Nilai kembaliannya adalah nomor versi ADO.
OBJEK COMMAND
Dibawah ini adalah metode-metode yang ada pada objek command ;
METODE KETERANGAN
Membatalkan perintah yang dieksekusi secara
Cancel
asynchronous.
CancelParameter Membuat parameter baru suatu objek.
Execute Menjalankan perintah/Command
OBJEK RECORDSET
Dibawah ini adalah daftar metode yang ada pada objek RecordSet
METODA KETERANGAN
AddNew Menambah record baru ke objek recordset.
Membatalkan perintah yang dieksekusi secara
Cancel
asynchronous.
Membatalkan perubahan sebelum BatchUpdate
CancelBatch
dipanggil.
CancelUpdate Membatalkan perubahan sebelum update dipanggil.
Membuat duplikat objek recordset dari objek recordset
Clone
yang ada.
Menutup recordset dan koneksinya ke sebuah sumber
Close
data.
Mengambil dua bookmark dan membandingkan posisi
CompareBookmarks
relatif mereka.
Delete Menghapus data pada objek recordset.
Find Mencari suatu record dari recordset.
GetRows Memasukkan record ke dalam suatu array.
GetString Memasukkan record ke dalam suatu string.
Move Memindahkan posisi record aktif.
PROPERTI RECORDSET
Berikut adalah table Properti yang ada pada objek RecordSet.
PROPERTI KETERANGAN
AbsolutePage Menghasilkan nomor halaman dari record yang ada.
AbsolutePosition Menghasilkan posisi awal dari record yang ada.
Nilai kembaliannya adalah objek command yang
ActiveCommand
membuat recordset.
Nilai kembaliannya adalah koneksi aktif yang
ActiveConnection
digunakan oleh recordset.
Nilai kembaliannya adalah posisi record aktif sebelum
BOF
data pertama dari recordset.
Bookmark Pengenal baris unik untuk record aktif.
Nilai kembalian atau pengaturan jumlah record yang
CacheSize
di-cache dalam memory lokal.
CursorLocation Nilai kembalian atau pengaturan dari lokasi kursor.
CursorType Nilai kembalian atau pengaturan tipe kursor.
P ada modul ini dan modul selanjutnya anda akan membuat sebuah aplikasi
lengkap Sistem Informasi Akademik. Untuk modul ini terlebih dahulu kita akan
membuat project baru untuk aplikasi kita dan pembuatan modul utama yang
berisikan deklarasi variable global, inisialisasi variable, subrutine serta fungsi-
fungsi umum.
Agar aplikasi yang akan anda buat terstruktur dan source code yang ada pada
modul ini dapat berjalan tanpa ada masalah, maka standarisasi untuk lokasi
penyimpanan adalah sebagai berikut :
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).
'************************************************************
' Sub Rutin Untuk Membuka Konneksi ke Database *
'************************************************************
Public Sub OpenDBConnection()
Dim Str_Connect As String
ErrorMsg:
MsgBox Err.Description
'************************************************************
' Sub Rutin Untuk Membuka Konneksi ke Table *
'************************************************************
Public Sub OpenTblConnection(ID_Table As Byte)
On Error GoTo ErrorMsg
ErrorMsg:
MsgBox Err.Description
'************************************************************
' Sub Rutin Untuk Menutup Konneksi ke Table *
'************************************************************
Public Sub CloseTblConnection(ID_Table As Byte)
On Error GoTo ErrorMsg
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
CATATAN
P 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.
Modul
INTERFACING APLIKASI
SISTEM AKADEMIK 5
OBJEKTIF
Mahasiswa dapat mendesain dan merancang interface yang diperlukan dalam
pembuatan aplikasi perangkat lunak Sistem Informasi Akademik.
PENDAHULUAN
S 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)
Label4
Command Command Command
Button1 Button2 Button4
Command
Button3
H ampir semua object / control pada form data Jurusan identik dengan form
Data Dosen yang telah Anda rancang.Untuk mempersingkat tahap
perancangan interfacing Anda cukup mengcopy semua form pada data Dosen dan
kemudian menambahkan/menghapus beberapa control yang tidak ada pada Form
Data Jurusan.
Cara lain yang lebih cepat untuk menggandakan form Data Dosen adalah
dengan melakukan Save As pada form dengan nama form lain misalnya dengan
nama frmJurusan lalu Anda harus meng-add kembali form data dosen pada
project Anda.
Algoritma yang digunakan pada form Data Jurusan juga relatif sama dengan
Form data Dosen sehingga Anda cukup melihat flowchart pada Form Data Dosen
untuk memahami sistem kerja yang ada.
Label4
Command Command Command
Button1 Button2 Button4
TextBox3 Command
Button3
H ampir semua object / control pada form data Mata Kuliah identik dengan form
Data Dosen yang telah Anda rancang.Untuk mempersingkat tahap
perancangan interfacing Anda cukup mengcopy semua form pada data Dosen dan
kemudian menambahkan/menghapus beberapa control yang tidak ada pada Form
Data Mata Kuliah.
Algoritma yang digunakan pada form Data Mata Kuliah juga relatif sama
dengan Form data Dosen sehingga Anda cukup melihat flowchart pada Form Data
Dosen untuk memahami sistem kerja yang ada.
Label5
Command Command Command
Button1 Button2 Button4
TextBox3 Command
Label4 Button3
H ampir semua object / control pada form data Mahasiswa identik dengan form
Data Dosen yang telah Anda rancang.Untuk mempersingkat tahap
perancangan interfacing Anda cukup mengcopy semua form pada data Dosen dan
kemudian menambahkan/menghapus beberapa control yang tidak ada pada Form
Data Mahasiswa.
Algoritma yang digunakan pada form Data Mahasiswa juga relatif sama
dengan Form data Dosen sehingga Anda cukup melihat flowchart pada Form Data
Dosen untuk memahami sistem kerja yang ada.
Label5
Command Command Command
Button1 Button2 Button4
ComboBox Command
Label4 Button3
F orm Data Nilai memiliki tingkat logika yang tinggi dimana terdapat algoritma
sorting, searching dan retrieving pada data serta ekspansi kemampuan untuk
kontrol MsHflexGrid. Seperti yang kita ketahui bahwa MsHflexGrid bersifat Read
Only tetapi untuk kemudahan user maka kita rancang suatu interface MsHflexGrid
F orm Main adalah form utama yang bertipe MDI (Multiple Document Interface).
Pada form Main terdapat kontrol ToolBar, ImageList dan Status Bar juga
terdapat Menu dengan hierarki sebagai berikut :
Image
List
Status
Bar
Modul
PERANCANGAN REPORT
DENGAN CRYSTAL REPORT 6
OBJEKTIF
Mahasiswa Dapat merancang suatu sistem report yang terintegrasi dengan
menggunakan aplikasi third party Seagate Crystal Report.
Perancangan Report
S 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.
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.
Modul
CODEING APLIKASI
SISTEM AKADEMIK 7
OBJEKTIF
Tahap penulisan source code pada tiap objek.
RunTime Program.
Proses debugging dan testing program.
PENDAHULUAN
P 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.
ErrorMsg:
MsgBox Err.Description
CheckField = True
End Function
Error:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsDosen
If AddNewFlag Then
'check apakah terjadi redudansi pada key primer
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) = UCase(txtFields(0).Text)
Then
MsgBox "Kode Dosen telah ada pada Database..",
vbInformation, "Kesalahan Input"
txtFields(0).Text = vbNullString
txtFields(0).SetFocus
Exit Sub
End If
.MoveNext
Loop Until .EOF
End If
.AddNew
.Fields(0).Value = txtFields(0).Text
.Fields(1).Value = txtFields(1).Text
.UpdateBatch
AddNewFlag = False
ElseIf EditFlag Then
If txtFields(0).Text <> KodeDosen Then
'check apakah terjadi redudansi pada key primer
With rsDosen
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) <> UCase(KodeDosen)
Then
If UCase(.Fields(0).Value) =
UCase(txtFields(0).Text) Then
MsgBox "Kode Dosen 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
Do
If .Fields(0).Value = KodeDosen Then
.Fields(0).Value = txtFields(0)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
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
With rsDosen
If .RecordCount <> 0 Then
.MoveLast
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsDosen.AbsolutePosition)
& "/" & CStr(rsDosen.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
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
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
With rsJurusan
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
CheckField = True
End Function
ErrorMsg:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsJurusan
'Jika operasi Add Record
If AddNewFlag Then
'check apakah terjadi redudansi pada key primer
If .RecordCount <> 0 Then
.MoveFirst
Do
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsJurusan
If .RecordCount <> 0 Then
.MoveFirst
FieldFill
lblStatus.Caption = "Record Ke : " &
CStr(rsJurusan.AbsolutePosition) & "/" & CStr(rsJurusan.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsJurusan
If .RecordCount <> 0 Then
.MoveLast
FieldFill
lblStatus.Caption = "Record Ke : " &
CStr(rsJurusan.AbsolutePosition) & "/" & CStr(rsJurusan.RecordCount)
End If
End With
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsJurusan
If .RecordCount <> 0 Then
.MoveNext
If .EOF Then
.MovePrevious
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsJurusan.AbsolutePosition) &
"/" & CStr(rsJurusan.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsJurusan
If .RecordCount <> 0 Then
.MovePrevious
If .BOF Then
.MoveNext
End If
Else
Exit Sub
End If
End With
FieldFill
lblStatus.Caption = "Record Ke : " & CStr(rsJurusan.AbsolutePosition) &
"/" & CStr(rsJurusan.RecordCount)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsMahasiswa
txtFields(0).Text = .Fields(0).Value
txtFields(1).Text = .Fields(1).Value
cboJurusan.Text = .Fields(2).Value
End With
txtFields(0).SetFocus
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
CheckField = True
End Function
Error:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsMahasiswa
'Jika operasi Add Record
If AddNewFlag Then
'check apakah terjadi redudansi pada key primer
If .RecordCount <> 0 Then
.MoveFirst
Do
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
.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 = cboJurusan.Text
.UpdateBatch
AddNewFlag = False
'Jika Operasi Edit Record
ElseIf EditFlag Then
If txtFields(0).Text <> KodeMahasiswa Then
'check apakah terjadi redudansi pada key primer
With rsMahasiswa
If .RecordCount <> 0 Then
ErrorMsg:
MsgBox Err.Description
End Sub
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveFirst
ErrorMsg:
MsgBox Err.Description
End Sub
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
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
ErrorMsg:
MsgBox Err.Description
End Sub
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
CheckField = True
End Function
ErrorMsg:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
With rsMataKuliah
'Jika operasi Add Record
If AddNewFlag Then
'check apakah terjadi redudansi pada key primer
If .RecordCount <> 0 Then
.MoveFirst
Do
If UCase(.Fields(0).Value) = UCase(txtFields(0).Text)
Then
MsgBox "Kode MataKuliah 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 <> KodeMataKuliah Then
'check apakah terjadi redudansi pada key primer
With rsMataKuliah
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
ErrorMsg:
MsgBox Err.Description
End Sub
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
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
With rsMataKuliah
If .RecordCount <> 0 Then
.MovePrevious
If .BOF Then
.MoveNext
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
'Deklarasi Konstanta
Const Light As Byte = 1
Const Normal As Byte = 2
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(1).Value = cboNama.Text Then
NIM = .Fields(0).Value
Exit Do
End If
.MoveNext
Loop Until .EOF
End If
End With
With mshReport
.Col = Col
.Row = Row
.Text = cboNama.Text
.Col = Col - 1
.Text = NIM
Hitung_Nilai
.Col = .MouseCol
.Row = .MouseRow
End With
cboNama.Visible = False
End Sub
With rsMahasiswa
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboNim.Text Then
Nama = .Fields(1).Value
Exit Do
End If
.MoveNext
Loop Until .EOF
End If
End With
With mshReport
.Col = Col
.Row = Row
.Text = cboNim.Text
.Col = Col + 1
.Text = Nama
Hitung_Nilai
.Col = .MouseCol
.Row = .MouseRow
End With
cboNim.Visible = False
End Sub
mshReport.Clear
Set mshReport.DataSource = rsListNilai
rsListNilai.Close
Set rsListNilai = Nothing
End Sub
With cboTahunAjaran
For i = 2001 To 2050
.AddItem CStr(i) & "/" & CStr(i + 1)
Next i
End With
cboTahunAjaran.Text = cboTahunAjaran.List(0)
End Sub
Error:
MsgBox Err.Description
End Sub
mshReport.Clear
Set_mshGrid
SetGridTitle
mshReport.Rows = 0
FillCboMahasiswa
FillCboDosen
FillCboMataKuliah
FillCboTahunAjaran
Option1(0).Value = True
End Sub
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
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
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
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
ErrorMsg:
MsgBox Err.Description
ErrorMsg:
MsgBox Err.Description
End Sub
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
ErrorMsg:
MsgBox Err.Description
End Sub
cmdAdd.Visible = bVal
cmdEdit.Visible = bVal
cmdUpdate.Visible = Not bVal
cmdCancel.Visible = Not bVal
cmdDelete.Visible = bVal
cmdClose.Enabled = bVal
cmdSearch.Enabled = bVal
Modul
PEMBUATAN PACKAGE
APLIKASI 8
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
S 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.
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
Menentukan judul instalasi pada kotak dialog berikutnya, klik tombol Next
Pilih apakah shortcut program akan dimasukkan kedalam start menu dan
dimana lokasinya