Anda di halaman 1dari 104

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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.

MEMILIH BAHASA PEMROGRAMAN


etelah permasalahan dan kebutuhan input/output telah didefenisikan dengan jelas,
untuk keperluan penulisan programnya harus ditentukan terlebih dahulu bahasa
pemrograman apa yang akan dipergunakan. Berikut ini merupakan pertimbanganpertimbangan yang dapat dipergunakan di dalam pemilihan bahasa pemrograman :
Tipe dari permasalahannya, apakah permasalahan bisnis, teknik atau yang lainnya.
Kesulitan dari permasalahan yang dihadapi.
Tipe dari pengolahan datanya, apakah berbentuk batch processing atau online
processing.
Ketersediaan program-program pustaka (library) yang ada dan yang dapat
dimanfaatkan oleh bahasa yang akan dipilih.
Kemampuan dari bahasanya.
Jenis dari bahasanya, compiler atau interpreter.
Dukungan dari penjual atau pembuat bahasa bila ada perubahan-perubahan
dikemudian hari.

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Kemudahan dari bahasa pemrograman dalam memodifikasi program bila ada


perubahan
Konfigurasi perangkat keras dan system software yang sudah dipergunakan.
PROSES PENGKODEAN (CODING)
erdapat beberapa teknik pengkodean yang dapat anda lakukan biasanya
tergantung algoritma apa yang anda terapkan. Suatu program yang ditulis
dengan teknik pengkodean yang baik akan jauh lebih mudah dibaca algoritmanya
baik oleh si programmer itu sendiri atau oleh oran lain yang akan mengembangkan
program tersebut. Proses debugging juga akan jauh lebih gampang selaras
dengan optimasi yang dilakukan pada sistem perangkat lunak tersebut.
Pengkodean dari suatu sistem perangkat lunak yang telah dirancang
mencerminkan karakteristik dari programmer itu sendiri.

PERANCANGAN SISTEM REPORT


istem perangkat lunak Database harus dapat menghasilkan suatu informasi
yang dibutuhkan oleh si-pemakai. Informasi yang dihasilkan biasanya hasil peretrieve-an oleh sistem report. Pada Visual Basic 6.0 terdapat suatu sistem report
build-in yaitu Data Report. Data Report terintegrasi dengan baik sekali pada
development tools ini, tetapi memiliki keterbatasan untuk menghasilkan suatu
report yang sifatnya lebih kompleks. Anda dapat juga menggunakan aplikasi third
party seperti Seagate Crystal Report yang dapat menghasilkan suatu report dari
query yang sangat kompleks.

Proses Debugging Dan Testing


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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

proses program terhenti karena kompiler menemukan kondisi-kondisi yang


belum terpenuhi yang tidak bisa dikerjakan. Kesalahan ini juga relatif mudah
ditemukan karena juga ditunjukkan letak serta sebab kesalahannya.
Kesalahan logika (logical errors) adalah kesalahan dari logika program yang
dibuat. Kesalahan seperti ini sulit ditelusuri, karena tidak ada pemberitahuan
mengenai kesalahannya dan tetap akan didapatkan hasil dari proses program,
tetapi hasil yang salah. Jenis kesalahan ini merupakan kesalahan yang
berbahaya, karena bila tidak disadari dan tidak ditemukan hasil yang salah
dapat menyesatkan bagi yang menggunakannya. Proses melacak kesalahan
ini dikenal dengan istilah mencari kutu (debugging).
OPTIMASI PERANGKAT LUNAK
etelah proses debugging selesai, maka tahap berikutnya adalah proses
optimasi. Pada proses ini anda harus melakukan analisa terhadap algoritma
yang dipakai dan tentukan big O dari algoritma tersebut. Optimasi bagian-bagian
program yang penting seperti pada proses looping dan branching, gunakan
struktur yang tepat untuk kasus yang sesuai. Ingatlah filosofi dalam merancang
suatu sistem perangkat lunak yaitu Make it right and then make it fast hal ini
menjadikan hasil dari sistem perangkat lunak yang kita rancang tidak hanya benar
secara algoritma tetapi juga menghasilkan waktu eksekusi yang cepat.

PEMBUATAN DOKUMENTASI PROGRAM


okumentasi program adalah catatan mengenai program yang telah dirancang,
dapat meliputi catatan tentang tujuan program, data yang dipergunakan dalam
program, logika yang dipergunakan, bentuk input/output serta cara menggunakan
programnya.

Dokumentasi program diperlukan untuk tujuan :


Petunjuk untuk mereka yang akan menggunakan program
Sebagai bahan training di dalam penerapan program
Di dalam pemeliharaan program, bila akan memodifikasi atau mengembangkan
program lebih lanjut.
Mempermudah mencari dan membetulkan kesalahan-kesalahan program yang
terjadi.
Sebagai hard copy dari program yang dapat berfungsi untuk backup dari program.
Dokumentasi Program dapat berupa :
Keterangan penjelasan (narrative description) yang berisi keterangan-keterangan
tertulis mengenai program, Hasil dari perancangan program dapat berbentuk :
4

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

LATIHAN DAN TUGAS


1. Rancanglah DFD (Data Flow Diagram) level 1 dari permasalahan untuk sistem
akademik dimana entitas yang ada adalah Dosen, Mahasiswa, dan
Matakuliah.
2. Dengan pendekatan terstruktur (Structured Approach) kembangkalah DFD
Level 1 tersebut hingga diperoleh aspek real dari permasalahan sebelumnya.
3. Gunakan pendekatan Top Down Design untuk merancang perangkat lunak
hingga terlihat jelas gambaran perangkat lunak yang akan dibangun.

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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.

TERMINOLOGI PADA DATABASE


Data
Nilai/value yang turut merepresentasikan deskripsi dari
suatu objek atau kejadian (event)
Informasi
Merupakan hasil dari pengolahan data dalam suatu bentuk
yang lebih berguna dan lebih berarti bagi penerimanya yang
6

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Sistem Informasi

Database

menggambarkan suatu kejadian-kejadian (event) yang nyata


(fact) yang digunakan untuk pengambilan keputusan.
Suatu sistem dalam suatu organisasi yang merupakan
kombinasi dari orang-orang, fasilitas, teknologi, media,
prosedur-prosedur dan pengendalian untuk mendapatkan
jalur komunikasi penting, memproses tipe transaksi rutin
tertentu, memberi sinyal kepada manajemen dan yang
lainnya terhadap kejadian-kejadian internal dan eksternal
yang penting dan menyediakan suatu dasar informasi untuk
pengambilan keputusan.
Kumpulan dari item data yang saling berhubungan satu
dengan yang lainnya yang diorganisasikan berdasarkan
sebuah skema atau struktur tertentu, tersimpan di hardware
komputer dan dengan software untuk melakukan manipulasi
untuk kegunaan tertentu.

MENGAPA DIPERLUKAN DATABASE


Salah satu komponen penting dalam sistem informasi, karena merupakan
dasar dalam menyediakan informasi
Menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan.
Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan
dengan biaya mendapatkannya.
Mengurangi duplikasi data (data redudancy)
Hubungan data dapat ditingkatkan (data relatability)
Mengurangi pemborosan tempat simpanan luar
JENJANG DATA

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

1. Normal Pertama (1st Normal Form)


Aturan :
Mendefinisikan atribut kunci
Tidak adanya group berulang
Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Semua atribut bukan kunci tergantung pada atribut kunci


2. Normalisasi Kedua (2nd Normal Form)
Aturan :
Sudah memenuhi dalam bentuk normal kesatu
Sudah tidak ada ketergantungan parsial, dimana seluruh field hanya
tergantung pada sebagian field kunci.
3. Normalisasi Ketiga (3rd Normal Form)
Aturan :
Sudah berada dalam bentuk normal kedua
Tidak ada ketergantungan transitif (dimana field bukan kunci tergantung
pada field bukan kunci lainnya).
Catatan:
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.

RELASI ANTAR TABLE


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.

Ada tiga bentuk relasi antar table, yaitu :


Relasi One-to-one (satu ke satu), ketika satu record pada suatu tabel hanya
berhubungan dengan satu record pada table lainnya.
Relasi One-to-many (satu ke banyak), ketika satu record pada suatu tabel
berhubungan dengan banyak record pada tabel lainnya.
Relasi many-to-many (banyak ke banyak), ketika banyak record pada suatu
tabel berhubungan dengan banyak record pada tabel lainnya.

Contoh NORMALISASI PADA DATABASE SISTEM AKADEMIK


Bentuk tidak normal (Unnormalized Form)
NIM

10

NAMA

JURUSAN

KODE

MATA

KODE

NAMA

NILAI

NILAI

NILAI

NILAI

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

NAMA JURUSAN
Teknik Mesin
Teknik Sipil
NILAI

NILAI

NILAI

NILAI
11

Pemrograman Database Dengan Visual Basic 6.0


MK
AGM
CAD
KLK
KLK
KMA
STS

ABSEN
100
100
100
100
50
85

1001
1002
1001
1002
1002
1001

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

LATIHAN DAN TUGAS


Buatlah sebuah database baru pada Microsoft Access dan beri nama
dbAkademik lalu buatlah table-table dengan ketentuan seperti dibawah ini.
Table Dosen

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

Langkah Pasti Menuju Sukses

13

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

15

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

digunakan untuk membuat tabel, indeks dan relasi database. Sedangkan


pernyataan DML digunakan untuk memilih, mengurutkan dan melakukan
perhitungan terhadap data.
Aturan dalam penulisan pernyataan SQL adalah sebagai berikut :
Semua keyword (kata kunci) dari pernyataan SQL diketik menggunakan huruf
besar.
Informasi bertipe string yang terletak diantara pernyataan SQL dapat diapit
dengan kutip ganda () atau kutip tunggal ()
Pada waktu menampilkan data (recordset), SQL mendukung penggunaan
wildcards (memilih semua kolom/fields) dengan lambang asterik (*).
Jika nama field atau table memiliki spasi ditengahnya maka nama tersebut
harus diapit dengan lambang brackets ([ ]).
Untuk menunjuk field khusus pada table khusus dalam pernyataan SQL
digunakan notasi dot (.).

COMMAND DAN KLAUSA PADA SQL


Table berikut menunjukkan tujuh buah perintah (command) SQL.
PERINTAH
KETERANGAN
Create
Membuat table, field atau indeks
Mengubah tabel dengan menambah field atau mengubah
Alter
definisi filed.
Drop
Men-drop table atau indeks
Select
Mendefenisikan data apa yang akan diambil dari database.
Insert
Dengan sekali operasi menyisipkan banyak record.
Mengubah informasi seluruh range dengan memberi
Update
parameter.
Delete
Menghapus record pada suatu table
Ketika menggunakan query, Anda dapat menggunakan klausa berikut untuk
diimplementasikan dalam pernyataan SQL.
KLAUSA
KETERANGAN
From
Menentukan table mana yang datanya akan ditampilkan
Where
Menentukan kondisi query
Group By
Menentukan grup/kelompok dari informasi yang dipilih.
Digunakan bersama Group By untuk menentukan kondisi
Having
untuk tiap group dalam query.
Order By
Menentukan urutan dari query.
16

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

PERNYATAAN SQL SELECT/FROM


ernyataan SELECT/FROM untuk mengambil field dari satu atau lebih table.
Sintaks dari pernyataan SELECT/FROM adalah :

SELECT [FIELD] FROM [TABLE]


Dimana [Field] adalah daftar field yang diinginkan dan [Table] merupakan daftar
table dimana field berada. Karakter Wildcard dapat digunakan untuk memilih
semua field yang terletak dalam table.
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
lausa Where digunakan untuk menampilkan record yang memenuhi kondisi
tertentu. Sintaksnya adalah :

SELECT [FIELD] FROM [TABLE] WHERE KONDISI


Klausa WHERE menggunakan operator sebagai berikut :
OPERATOR
<
<=
>
>=
=
<>
Between
Like
In

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

Langkah Pasti Menuju Sukses

17

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

SELECT * FROM AUTHORS WHERE AUTHOR LIKE D*


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)

PERNYATAAN SQL Delete


ernyataan Query Delete
pemakaiannya yaitu :

fungsinya

untuk

menghapus

data.

Contoh

Delete * From Authors


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
DELETE * FROM PUBLISHERS
WHERE CITY NOT IN (NEW YORK,CARMEL,BOSTON)
PERNYATAAN INSERT INTO
ernyataan query Insert Into fungsinya untuk menyisipkan baris baru kedalam
table. Sintaksnya sebagai berikut :

Insert Into nama_table (daftar field) VALUES (daftar nilai)


Contoh :
Insert Into Publisher(PUBID, Name,[Company Name])
Values (630,Duta Mas,PT. Elex Media Komputindo)
18

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

Prosedur Pembuatan Program


Buatlah sebuah project Visual Basic Baru lalu pada form atur object-object
seperti pada gambar dibawah, tetapi sebelumnya tambahkan kontrol Microsoft
Data Bound Grid Control 5.0 (Sp3) pada project Anda.

Langkah Pasti Menuju Sukses

19

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

DAFTAR PROPERTI OBJECT


OBJECT
Form1
Data1
DBGrid1
Label1
Label2
Label3

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

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

LISTING PROGRAM PENGUJI QUERY


Option Explicit
Private Sub cmdJalankan_Click()
On Error GoTo SQLError:
Data1.RecordSource = Text1
Data1.Refresh
If Data1.RecordSource <> "" Then
If (Data1.Recordset.RecordCount > 0) Then
With Data1.Recordset
.MoveLast
.MoveFirst
lblJmlhRecord = .RecordCount
End With
Else
lblJmlhRecord = "0"
lblRecordKe = "Tak ada record"
End If
Else
MsgBox ("Masukkan pernyataan SQL")
End If
Exit Sub
SQLError:
Langkah Pasti Menuju Sukses

21

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Dim sError As String


sError = "Nomor Error: " & Err.Number & vbCrLf
sError = sError & Err.Description
MsgBox (sError)
Exit Sub
End Sub
Private Sub Data1_Reposition()
lblRecordKe = Data1.Recordset.AbsolutePosition + 1
End Sub

ADO DAN PEMBUATAN


MODUL SISTEM AKADEMIK
22

Modul

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

23

Pemrograman Database Dengan Visual Basic 6.0

Field
Parameter
Error
Property

AMIK TRIGUNA DHARMA

menampilkan record ke pemakai.


Berisi informasi tentang kolom tunggal data dalam
recordset.
Suatu parameter tunggal dari command kumpulan
parameter.
Berisi informasi error yang diperluas mengenai suatu
kondisi yang ditimbulkan oleh provider.
Berisi suatu nilai karakteristik yang didefenisikan provider
dari objek ADO.

Masing-masing objek ADO memiliki serangkaian properti dan metode yang


mengizinkan Anda untuk memanipulasi objek dan isinya. Ketika anda bekerja
dengan pemrograman ADO, umumnya digunakan tiga objek ADO yaitu
Connection, Command dan Recordset.
OBJEK CONNECTION
Dibawah ini daftar metode yang ada pada objek Connection
METODA
Begin Trans
Cancel
Close
Execute
Open
OpenSchem
RollBackTrans

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.

PROPERTI OBJECT CONNECTION


Berikut Table Properti Objek Connection
24

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA


PROPERTI
Attributes
CommandTimeOut
ConnectionString
ConnectionTimeOut
CursorLocation
DefaultDatabase
Errors
Isolation Level
Mode
Properties
Provider
State
Version

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

PROPERTI OBJEK COMMAND


Langkah Pasti Menuju Sukses

25

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Berikut adalah table properti objek Command


PROPERTI
ActiveConnection
CommandText
CommandTimeOut
CommandType
Name
Parameters
Prepared
Properties
State

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

AMIK TRIGUNA DHARMA


MoveFirst
MoveLast
MoveNext
MovePrevious
NextRecordset
Open
Requery
Resync
Save
Supports
Update
UpdateBatch

Pemrograman Database Dengan Visual Basic 6.0


Memindahkan posisi data ke record pertama dari
recordset.
Memindahkan posisi data ke record terakhir dari
recordset.
Memindahkan posisi data ke record berikutnya dari
recordset.
Memindahkan posisi data ke record sebelumnya dari
recordset.
Menghapus objek recordset yang aktif dan
menggantikannya dengan recordset baru.
Membuka objek recordset.
Memperbarui data dalam objek recordset dengan
mengulang query.
Me-Refresh data dalam objek recordset database.
Menyimpan recordset ke file
Menyatakan apakah objek recordset mendukung tipe
fungsi tertentu.
Menyimpan perubahan dalam baris/Record sekarang
ke database.
Menyimpan perubahan batch sekarang.

PROPERTI RECORDSET
Berikut adalah table Properti yang ada pada objek RecordSet.
PROPERTI
AbsolutePage
AbsolutePosition
ActiveCommand
ActiveConnection
BOF
Bookmark
CacheSize
CursorLocation
CursorType

Langkah Pasti Menuju Sukses

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

Pemrograman Database Dengan Visual Basic 6.0


Data Member
Data Source
EditMode
EOF
Fields
Filter
LockType
MaxRecord
PageCount
PageSize
Properties
RecordCount
Sort
Source
State
Status

AMIK TRIGUNA DHARMA

Nilai kembalian atau pengaturan anggota sumber data


dimana recordset terikat.
Nilai kembalian atau pengaturan sumber data.
Nilai kembaliannya status editing dari record aktif.
Nilai kembaliannya posisi data berada sesudah record
terakhir dari objek recordset.
Nilai kembaliannya adalah koleksi objek field dalam
recordset.
Nilai kembalian atau pengaturan filter dari data.
Nilai kembalian atau pengaturan tipe kunci yang
diberikan pada data selama pengeditan.
Nilai kembalian atau pengaturan jumlah maksimum
data dalam sebuah query pada recordset.
Nilai kembalian atau pengaturan jumlah halaman data
dalam recordset.
Nilai kembalian atau pengaturan ukuran halaman.
Nilai kembaliannya adalah properti dinamik dari objek.
Nilai kembaliannya adalah jumlah record.
Nilai kembalian atau pengaturan kriteria pengurutan.
Nilai kembalian atau pengaturan sumber dari data.
Nilai kembaliannya adalah status koneksi apakah
dibuka, ditutup, atau sibuk.
Menyatakan status data selama updating batch.

STRING KONEKSI BERDASARKAN PROVIDER


PROVIDER
Microsoft Jet
Oracle
Microsoft ODBC
SQL Server

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

ANTARA ENGINE JET 3.51 DENGAN JET 4


isual Basic 6 dan MS Access 97 dalam mengelola database menggunakan
engine database Jet 3.51, sedangkan MS Access 2000/XP menggunakan
engine database Jet 4. Karena adanya masalah kompatibilitas antara Jet 4 dengan
Jet 3.51, maka diperlukan konversi file *.mdb.
Misalnya saja anda membuat struktur tabel dalam file *.mdb menggunakan MS
Access XP, konversi dapat dilakukan di Access atau di Visual Basic. Untuk
melakukan konversi pada MS Access XP, klik menu Tools
Database Utilities
Convert Database
To Access 97 File Format. Konversi di Visual Basic dapat
dilakukan dengan cara mengubah string koneksi dari Jet 3.51 menjadi Jet 4.

LATIHAN DAN TUGAS


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 fungsifungsi 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).
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

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

31

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

Langkah Pasti Menuju Sukses

33

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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)

PERANCANGAN FORM DATA DOSEN


ancanglah Form Data Dosen dengan object-object yang ada seperti pada
gambar dibawah ini. Untuk menambah sebuah form Anda dapat
menambahnya denggan mengklik menu Project Add Form.
Pada Form Data dosen Anda akan membuat sebuah objeck kontrol data ADO
manual yang terdiri atas control Label dan control CommandButton. Terdapat
suatu logika sistem keamanan dalam pengeditan, penghapusan, serta pengupdate-an dari tiap record. Hal ini dilakukan agar tiap field yang terelasi terjaga
keintegritasannya dan hasil retrieve data tetap valid. Algoritma yang digunakan
pada form data dosen dapat anda lihat seperti pada flowchart dibawah ini :

34

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

FLOW CHART DATA DOSEN

Langkah Pasti Menuju Sukses

35

Pemrograman Database Dengan Visual Basic 6.0

36

AMIK TRIGUNA DHARMA

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

BENTUK LAYOUT FORM DATA DOSEN


Label3
Crystal
Reports
TextBox1
Label2
Frame1

Command
Button1

Label1

Command
Buttons

TextBox2

Label4
Command
Button2

Command
Button4
Command
Button3

DAFTAR PROPERTI OBJECT Pada Form Data Dosen


OBJECT

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

Langkah Pasti Menuju Sukses

Label4

Frame1
TextBox1

TextBox2

37

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

PERANCANGAN FORM DATA JURUSAN


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.

38

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Label3
TextBox1

Label2

Label1

Frame1

Command
Button1

Command
Buttons

TextBox2

Label4
Command
Button2

Command
Button4
Command
Button3

TextBox3

DAFTAR PROPERTI OBJECT Pada Form Data Jurusan


OBJECT

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

Langkah Pasti Menuju Sukses

Label4

Label5

39

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

PERANCANGAN FORM DATA MATA KULIAH


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.

40

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Crystal
Report

Label3
Label2

TextBox1

Label1

Frame1

Command
Button1

Command
Buttons

TextBox2

Label5
Command
Button2

Command
Button4
Command
Button3

TextBox3

Label4

DAFTAR PROPERTI OBJECT Pada Form Data Mata Kuliah


OBJECT

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&

Langkah Pasti Menuju Sukses

Label5

41

Pemrograman Database Dengan Visual Basic 6.0

Frame1

AMIK TRIGUNA DHARMA

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

PERANCANGAN FORM DATA MAHASISWA


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.

42

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Crystal
Report

Label3
Label2

TextBox1

Label1

Frame1

Command
Button1

Command
Buttons

TextBox2

Label5
Command
Button2

Command
Button4
Command
Button3

ComboBox

Label4

DAFTAR PROPERTI OBJECT Pada Form Data Mahasiswa


OBJECT

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

Langkah Pasti Menuju Sukses

0 Transparent

Label4

Label5

43

Pemrograman Database Dengan Visual Basic 6.0


BackColor

Frame1

AMIK TRIGUNA DHARMA

&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

PERANCANGAN FORM DATA Nilai


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
44

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

Langkah Pasti Menuju Sukses

45

Pemrograman Database Dengan Visual Basic 6.0

46

AMIK TRIGUNA DHARMA

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA


DAFTAR PROPERTI OBJECT Pada Form Data Nilai
OBJECT

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

Langkah Pasti Menuju Sukses

47

Pemrograman Database Dengan Visual Basic 6.0


Command

(Name)

AMIK TRIGUNA DHARMA

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

PERANCANGAN FORM Main (MDI Form)


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 :

PROPERTI PADA MENU


CAPTION
&File
&Tutup Aplikasi
&Data
&Jurusan
Mata&Kuliah
&Dosen
&Mahasiswa
&Nilai Mahasiswa

48

PROPERTI PADA TOOL BAR


NAME
mnuFile
mnuTutupAplikasi
mnuData
mnuJurusan
mnuMataKuliah
Separator1
mnuDosen
mnuMahasiswa
Separator2
mnuNilaiMahasiswa

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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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.

Langkah Pasti Menuju Sukses

49

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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.

LANGKAH-LANGKAH PEMBUATAN REPORT


1. Dari jendela program Crystal Report klik menu File > New. Akan muncul kotak
dialog Create New Report. Klik pada pilihan Standard

50

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

Langkah Pasti Menuju Sukses

51

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

DESAIN REPORT LAPORAN DATA DOSEN

Simpan Report dengan nama Laporan Data Dosen.rpt


DESAIN REPORT LAPORAN DATA MAHASISWA

52

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Simpan Report dengan nama Laporan Data Mahasiswa.rpt


DESAIN REPORT LAPORAN DATA MATAKULIAH

Simpan Report dengan nama Laporan Data Matakuliah.rpt

Desain Report Laporan Data Nilai

Langkah Pasti Menuju Sukses

53

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Running Total Field Pada Laporan Data Nilai


54

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Formula Field Pada Laporan Data Nilai


@MaxNilai = Maximum ({Nilai.N_AkhirAngka})
@MinNilai = Minimum ({Nilai.N_AkhirAngka})
@%A = ({#Count_A} / RecordNumber) * 100
@%B = ({#Count_B} / RecordNumber) * 100
@%C = ({#Count_C} / RecordNumber) * 100
@%D = ({#Count_D} / RecordNumber) * 100
@%E = ({#Count_E} / RecordNumber) * 100

Langkah Pasti Menuju Sukses

55

Pemrograman Database Dengan Visual Basic 6.0

CODEING APLIKASI
SISTEM AKADEMIK

AMIK TRIGUNA DHARMA

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.

KODE PROGRAM PADA FORM DOSEN


Dim
Dim
Dim
Dim

AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeDosen As String * 3

Private Sub FieldClear()


Dim ObjTxt As TextBox
For Each ObjTxt In Me.txtFields
ObjTxt.Text = ""
Next
End Sub
Private Sub FieldFill()
On Error GoTo ErrorMsg
With rsDosen
txtFields(0).Text = .Fields(0).Value
txtFields(1).Text = .Fields(1).Value
End With
txtFields(0).SetFocus
Exit Sub
ErrorMsg:
MsgBox Err.Description

56

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

57

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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 rsDosen
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
Private Sub cmdEdit_Click()
lblStatus.Caption = "Edit Record"
Save = False
EditFlag = True
SetButtons (False)
KodeDosen = txtFields(0).Text
txtFields(0).SetFocus
End Sub
Private Sub cmdCancel_Click()
Save = True
EditFlag = False
AddNewFlag = False
SetButtons (True)
cmdFirst_Click
End Sub
Private Sub cmdUpdate_Click()
On Error GoTo ErrorMsg

Langkah Pasti Menuju Sukses

59

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

If CheckField = False Then


Exit Sub
End If
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)

60

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

.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

Langkah Pasti Menuju Sukses

61

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

KODE PROGRAM PADA FORM JURUSAN


Dim
Dim
Dim
Dim

AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeJurusan As String * 3

Private Sub FieldClear()


Dim ObjTxt As TextBox
For Each ObjTxt In Me.txtFields
ObjTxt.Text = ""
Next
End Sub
Private Sub FieldFill()
On Error GoTo ErrorMsg
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
Function CheckField() As Boolean
If txtFields(0).Text = vbNullString Then
MsgBox "Field Kode Jurusan tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(0).SetFocus
CheckField = False

Langkah Pasti Menuju Sukses

63

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Private Sub Form_Activate()


SetButtons (True)
With rsJurusan
If .RecordCount <> 0 Then
cmdFirst_Click
FieldFill
End If
End With
End Sub
Private Sub Form_Load()
OpenTblConnection (Jurusan)
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 (Jurusan)
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

Langkah Pasti Menuju Sukses

65

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Private Sub cmdDelete_Click()


On Error GoTo ErrorMsg
lblStatus.Caption = "Hapus Record"
With rsJurusan
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
Private Sub cmdEdit_Click()
lblStatus.Caption = "Edit Record"
Save = False
EditFlag = True
SetButtons (False)
KodeJurusan = txtFields(0).Text
txtFields(0).SetFocus
End Sub
Private Sub cmdCancel_Click()
Save = True
EditFlag = False
AddNewFlag = False
SetButtons (True)
cmdFirst_Click
End Sub
Private Sub cmdUpdate_Click()
On Error GoTo ErrorMsg
If CheckField = False Then
Exit Sub
End If
With rsJurusan
'Jika operasi Add Record
If AddNewFlag Then
'check apakah terjadi redudansi pada key primer
If .RecordCount <> 0 Then
.MoveFirst
Do

66

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

67

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Loop Until .EOF


EditFlag = False
End If
End With
Save = True
SetButtons (True)
lblStatus.Caption = "Record Ke : " & CStr(rsJurusan.AbsolutePosition) &
"/" & CStr(rsJurusan.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 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
Private Sub cmdLast_Click()
On Error GoTo ErrorMsg
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

68

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Private Sub cmdNext_Click()


On Error GoTo ErrorMsg
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
Private Sub cmdPrevious_Click()
On Error GoTo ErrorMsg
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
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

Langkah Pasti Menuju Sukses

69

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

KODE PROGRAM PADA FORM MAHASISWA


Dim
Dim
Dim
Dim

AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeMahasiswa As String

Private Sub FieldClear()


Dim ObjTxt As TextBox
For Each ObjTxt In Me.txtFields
ObjTxt.Text = ""
Next
End Sub
Private Sub FieldFill()
On Error GoTo ErrorMsg
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
Function CheckField() As Boolean
If txtFields(0).Text = vbNullString Then
MsgBox "Field Nim Mahasiswa tidak boleh kosong !", vbInformation,
"Kesalahan Input"
txtFields(0).SetFocus
CheckField = False
Exit Function
End If
If txtFields(1).Text = vbNullString Then

70

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

MsgBox "Field Nama Mahasiswa tidak boleh kosong !", vbInformation,


"Kesalahan Input"
txtFields(1).SetFocus
CheckField = False
Exit Function
End If
If cboJurusan.Text = vbNullString Then
MsgBox "Data Kode Jurusan belum ada .. !", vbInformation, "Kesalahan
Input"
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
MAHASISWA.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 Nim Mahasiswa", "Cari Record Mahasiswa")
With rsMahasiswa
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 "Nim Mahasiswa yang anda input tidak ada", vbInformation,
"Konfirmasi"
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub

Langkah Pasti Menuju Sukses

71

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Private Sub FillCboJurusan()


With rsJurusan
If .RecordCount <> 0 Then
.MoveFirst
Do
cboJurusan.AddItem .Fields(0).Value
.MoveNext
Loop Until .EOF
Else
cboJurusan.AddItem vbNullString
End If
If cboJurusan.ListCount > 1 Then
cboJurusan.Text = cboJurusan.List(0)
End If
End With
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 rsMahasiswa
If .RecordCount <> 0 Then
FillCboJurusan
cmdFirst_Click
FieldFill
Else
FillCboJurusan
End If
End With
End Sub
Private Sub Form_Load()
OpenTblConnection (Mahasiswa)
OpenTblConnection (Jurusan)
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

72

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

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 rsMahasiswa
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
Private Sub cmdEdit_Click()

Langkah Pasti Menuju Sukses

73

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

lblStatus.Caption = "Edit Record"


Save = False
EditFlag = True
SetButtons (False)
KodeMahasiswa = txtFields(0).Text
txtFields(0).SetFocus
End Sub
Private Sub cmdCancel_Click()
Save = True
EditFlag = False
AddNewFlag = False
SetButtons (True)
cmdFirst_Click
End Sub
Private Sub cmdUpdate_Click()
On Error GoTo ErrorMsg
If CheckField = False Then
Exit Sub
End If
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

74

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

.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

Langkah Pasti Menuju Sukses

75

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

KODE PROGRAM PADA FORM MATAKULIAH


Dim
Dim
Dim
Dim

AddNewFlag As Boolean
EditFlag As Boolean
SaveRecord As Boolean
KodeMataKuliah As String * 3

Private Sub FieldClear()


Dim ObjTxt As TextBox
For Each ObjTxt In Me.txtFields
ObjTxt.Text = ""
Next

Langkah Pasti Menuju Sukses

77

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

79

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Private Sub cmdEdit_Click()


lblStatus.Caption = "Edit Record"
Save = False
EditFlag = True
SetButtons (False)
KodeMataKuliah = txtFields(0).Text
txtFields(0).SetFocus
End Sub
Private Sub cmdCancel_Click()
Save = True
EditFlag = False
AddNewFlag = False
SetButtons (True)
cmdFirst_Click
End Sub
Private Sub cmdUpdate_Click()
On Error GoTo ErrorMsg
If CheckField = False Then
Exit Sub
End If
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

Langkah Pasti Menuju Sukses

81

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

If .RecordCount <> 0 Then


.MoveFirst
Do
If UCase(.Fields(0).Value) <>
UCase(KodeMataKuliah) Then
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
End If
.MoveNext
Loop Until .EOF
End If
End With
End If
.MoveFirst
'Jika tidak ubah record
Do
If .Fields(0).Value = KodeMataKuliah Then
.Fields(0).Value = txtFields(0)
.Fields(1).Value = txtFields(1)
.Fields(2).Value = txtFields(2)
.UpdateBatch
Exit Do
End If
.MoveNext
Loop Until .EOF
EditFlag = False
End If
End With
Save = True
SetButtons (True)
lblStatus.Caption = "Record Ke : " & CStr(rsMataKuliah.AbsolutePosition)
& "/" & CStr(rsMataKuliah.RecordCount) & "/" &
CStr(rsMataKuliah.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

82

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

83

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Private Sub cmdPrevious_Click()


On Error GoTo ErrorMsg
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
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
Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
If Index = 2 Then
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii =
vbKeyBack) Then
KeyAscii = 0
End If
End If
End Sub

KODE PROGRAM PADA FORM Nilai Mahasiswa


84

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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 = _

Langkah Pasti Menuju Sukses

85

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

"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 cboTahunAjaran_Click()
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 cmdClose_Click()
Unload Me
End Sub
Private Sub cboNama_LostFocus()
Dim NIM As String
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

86

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Private Sub cboNim_LostFocus()


Dim Nama As String
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
Private Sub View_List()
Set rsListNilai = New ADODB.Recordset
rsListNilai.Open strConnection, cn, adOpenStatic, adLockOptimistic
mshReport.Clear
Set mshReport.DataSource = rsListNilai
rsListNilai.Close
Set rsListNilai = Nothing
End Sub
Private Sub FillCboDosen()
With rsDosen
If .RecordCount <> 0 Then
.MoveFirst
Do
cboDosen.AddItem .Fields(0).Value
.MoveNext
Loop Until .EOF
Else
cboDosen.AddItem vbNullString
End If
If cboDosen.ListCount > 1 Then
cboDosen.Text = cboDosen.List(0)
End If

Langkah Pasti Menuju Sukses

87

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Dim StrQuery As String


crptReport.ReportFileName = App.Path & "\Report\LAPORAN NILAI
MAHASISWA.rpt"
StrQuery = "{Ujian.Kode_Ujian}=" & KodeUjian
crptReport.SelectionFormula = StrQuery
crptReport.DiscardSavedData = True
crptReport.Action = 1
Exit Sub
Error:
MsgBox Err.Description
End Sub
Private Sub cmdSearch_Click()
Dim NIM As String
Dim FindNim As Boolean
Dim i As Byte
NIM = InputBox("Masukkan Nim record yang akan dicari", "Cari Record")
With mshReport
.Col = 0
FindNim = False
For i = 0 To .Rows - 1
.Row = i
If .Text = NIM Then
FindNim = True
SearchRow = 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 SearchRow - 1, Light
End If
End Sub
Private Sub cmdSearch_LostFocus()
SelectRow SearchRow - 1, Normal
End Sub
Private Sub cmdTitle_Click(Index As Integer)
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 & ")) "

Langkah Pasti Menuju Sukses

89

Pemrograman Database Dengan Visual Basic 6.0


Select Case Index
Case 0
If Option1(0).Value
strConnection =
Else
strConnection =
End If
Case 1
If Option1(0).Value
strConnection =
Else
strConnection =
DESC"
End If
Case 2
If Option1(0).Value
strConnection =
Else
strConnection =
DESC"
End If
Case 3
If Option1(0).Value
strConnection =
Else
strConnection =
DESC"
End If
Case 4
If Option1(0).Value
strConnection =
Else
strConnection =
End If
Case 5
If Option1(0).Value
strConnection =
Else
strConnection =
DESC"
End If
Case 6
If Option1(0).Value
strConnection =
Nilai.N_AkhirAngka"
Else
strConnection =
DESC"
End If
Case 7
If Option1(0).Value
strConnection =
Nilai.N_AkhirHuruf"

90

AMIK TRIGUNA DHARMA

= 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"

strConnection & "ORDER BY

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

strConnection & "ORDER BY Nilai.N_AkhirAngka

= True Then
strConnection & "ORDER BY

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

91

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

93

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Private Sub txtList_LostFocus()


With mshReport
.Col = Col
.Row = Row
.Text = txtList.Text
Hitung_Nilai
.Col = .MouseCol
.Row = .MouseRow
End With
txtList.Visible = False
End Sub
Private Sub cmdAdd_Click()
AddNewFlag = True
SetButtons (False)
With mshReport
.Rows = .Rows + 1
End With
End Sub
Private Sub cmdDelete_Click()
On Error GoTo ErrorMsg
Dim NIM As String
NIM = InputBox("Masukkan Nim Mahasiswa yang akan dihapus", "Delete
Record")
With rsNilai
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboMataKuliah & cboDosen.Text &
cboTahunAjaran.Text And _
.Fields(1).Value = NIM Then
If MsgBox("Yakin akan menghapus record tersebut ?",
vbQuestion + vbYesNo, "Konfirmasi") = vbYes Then
.Delete
.Requery
View_List
Exit Sub
End If
Exit Sub
End If
.MoveNext
Loop Until .EOF
End If
End With
MsgBox "Nim " & NIM & " Tidak ada dalam Database ", vbInformation,
"Kesalahan"
Exit Sub
ErrorMsg:
MsgBox Err.Description

94

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

95

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

.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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Dim UpdateRecord As Boolean


If Not EditFlag Then
If CheckField = False Then
Exit Sub
End If
End If
'Jika operasi Add Record
If AddNewFlag Then
'Update pada table Ujian
With rsUjian
UpdateRecord = True
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboMataKuliah.Text & _
cboDosen.Text & cboTahunAjaran.Text Then
UpdateRecord = False
Exit Do
End If
.MoveNext
Loop Until .EOF
End If
If UpdateRecord Then
.AddNew
.Fields(0).Value = cboMataKuliah.Text & cboDosen.Text &
cboTahunAjaran.Text
.Fields(1).Value = cboMataKuliah.Text
.Fields(2).Value = cboDosen.Text
.Fields(3).Value = cboTahunAjaran.Text
.UpdateBatch
End If
End With
With rsNilai
.AddNew
.Fields(0).Value = cboMataKuliah.Text & cboDosen.Text &
cboTahunAjaran.Text
.Fields(1).Value = mshReport.TextMatrix(mshReport.Rows - 1, 0)
.Fields(2).Value = Val(mshReport.TextMatrix(mshReport.Rows - 1,
2))
.Fields(3).Value = Val(mshReport.TextMatrix(mshReport.Rows - 1,
3))
.Fields(4).Value = Val(mshReport.TextMatrix(mshReport.Rows - 1,
4))
.Fields(5).Value = Val(mshReport.TextMatrix(mshReport.Rows - 1,
5))
.Fields(6).Value = Val(mshReport.TextMatrix(mshReport.Rows - 1,
6))
.Fields(7).Value = mshReport.TextMatrix(mshReport.Rows - 1, 7)
.UpdateBatch
AddNewFlag = False
End With

Langkah Pasti Menuju Sukses

97

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

'Jika Operasi Edit Record


ElseIf EditFlag Then
With rsNilai
'cari NIM
mshReport.Col = 0
mshReport.Row = EditRow - 1
NIM = mshReport.Text
If .RecordCount <> 0 Then
.MoveFirst
Do
If .Fields(0).Value = cboMataKuliah & cboDosen.Text &
cboTahunAjaran.Text And _
.Fields(1).Value = NIM Then
.Fields(2).Value = Val(mshReport.TextMatrix(EditRow
- 1, 2))
.Fields(3).Value = Val(mshReport.TextMatrix(EditRow
- 1, 3))
.Fields(4).Value = Val(mshReport.TextMatrix(EditRow
- 1, 4))
.Fields(5).Value = Val(mshReport.TextMatrix(EditRow
- 1, 5))
.Fields(6).Value = Val(mshReport.TextMatrix(EditRow
- 1, 6))
.Fields(7).Value = mshReport.TextMatrix(EditRow - 1,
7)
.UpdateBatch
Exit Do
End If
.MoveNext
Loop Until .EOF
EditFlag = False
SelectRow EditRow - 1, Normal
End If
End With
End If
SetButtons (True)
Exit Sub
ErrorMsg:
MsgBox Err.Description
End Sub
Private Sub SetButtons(bVal As Boolean)
Dim ObjText As TextBox
cmdAdd.Visible = bVal
cmdEdit.Visible = bVal
cmdUpdate.Visible = Not bVal
cmdCancel.Visible = Not bVal
cmdDelete.Visible = bVal
cmdClose.Enabled = bVal
cmdSearch.Enabled = bVal

98

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

cmdReport.Enabled = bVal
End Sub

KODE PROGRAM PADA FORM MAIN


Private Sub MDIForm_Load()
OpenDBConnection
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If MsgBox("Tutup Aplikasi Ini ?..", vbQuestion + vbYesNo, "Verifikasi
Penutupan") = vbNo Then
Cancel = 1
Else
Unload Me
End If
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
CloseDBConnection
End Sub
Private Sub mnuDosen_Click()
Load frmDosen
frmDosen.Show vbModal
End Sub
Private Sub mnuJurusan_Click()
Load frmJurusan
frmJurusan.Show vbModal
End Sub
Private Sub mnuMahasiswa_Click()
Load frmMahasiswa
frmMahasiswa.Show vbModal
End Sub
Private Sub mnuMatakuliah_Click()
Load frmMataKuliah
frmMataKuliah.Show vbModal
End Sub
Private Sub mnuNilaiMahasiswa_Click()
Load frmNilai
frmNilai.Show vbModal
End Sub
Private Sub mnuTutupAplikasi_Click()
Unload Me
End Sub

Langkah Pasti Menuju Sukses

99

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)


Select Case Button.Caption
Case "Jurusan"
mnuJurusan_Click
Case "MataKuliah"
mnuMatakuliah_Click
Case "Dosen"
mnuDosen_Click
Case "Mahasiswa"
mnuMahasiswa_Click
Case "Nilai"
mnuNilaiMahasiswa_Click
Case "Keluar"
Unload Me
End Select
End Sub

100

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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.

LANGKAH-langkah pEMBUATAN PACKAGE PROGRAM


Dari menu Add-Ins klik Add-Ins Manager
Pada kotak dialog Add-Ins-Manager pilih Package And Deployment Wizard
lalu klik checkbox Loaded/Unloaded

Langkah Pasti Menuju Sukses

101

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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 mengkonfirmasi dimana lokasi folder tempat


peng-asemble-an aplikasi kita (pembuatan folder package), klik Next.
Kotak dialog berikutnya akan mengidentifikasikan setiap komponen object baik
OCX dan lain-lain yang out of date, dependency-nya dan lain lain, klik tombol
Next
102

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Kotak dialog berikuntya akan menentukan lokasi setiap file pendukung


instalasi kita nantinya akan dicopykan di lokasi mana
Langkah Pasti Menuju Sukses

103

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Klik tombol Finish untuk memulai proses pembuatan Pacakage.

104

Langkah Pasti Menuju Sukses

Anda mungkin juga menyukai