Anda di halaman 1dari 104

AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.

Modul
KONSEP DASAR
PEMROGRAMAN DATABASE 1
OBJEKTIF
Mahasiswa Dapat Memahami aspek-aspek penting pada pemrograman
database

ASPEK-ASPEK PENTING PEMROGRAMAN DATABASE

S aat ini perangkat lunak semakin luas dan besar lingkupnya, sehingga tidak bisa
lagi dibuat asal-asalan. Perangkat lunak saat ini seharusnya dirancang dengan
memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust
walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan
dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain
selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang
matang adalah dimungkinkannya penggunaan kembali modul atau komponen
untuk aplikasi perangkat lunak lain yang membutuhkan fungsionalitas yang sama.
Pemrograman Database merupakan salah satu bentuk spesifik dari teknik
pemrograman. Dimana objek utama komputasi dari teknik pemrograman ini adalah
Database. Terdapat beberapa aspek-aspek penting dari pemrograman database
yaitu :
1. Pemodelan Sistem
2. Perancangan Database
3. Pemilihan Bahasa Pemrograman
4. Pengkodean (coding)
5. Perancangan sistem report
6. Proses Debugging dan Testing
7. Optimasi perangkat lunak
8. Dokumentasi Perangkat Lunak
9. Pembuatan File Instalasi

PEMODELAN SISTEM

P 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 1


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
K ehandalan dari teknik pemrograman database adalah bagaimana anda
sebagai seorang programmer merancang database sebaik mungkin.
Database menjadi suatu object yang sifatnya sangat sensitif disini dimana banyak
sekali pertimbangan-pertimbangan yang harus anda lakukan sebelum merancang
database. Untuk suatu aplikasi yang kemungkinan pengembangan datanya sangat
besar maka diperlukan suatu manajemen database yang dapat menangani data
hingga ribuan record. Tetapi hal yang paling utama dari semua ini adalah teknik
perancangan database dengan melakukan normalisasi hingga diperoleh suatu
rancangan database yang benar-benar terhindar dari redudancy data sehingga
kapasitas penyimpanan lebih kecil dan proses pe-retrieve-an data dapat lebih
cepat.

MEMILIH BAHASA PEMROGRAMAN

S 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 pertimbangan-
pertimbangan 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.

2 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)

T 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

S istem perangkat lunak Database harus dapat menghasilkan suatu informasi


yang dibutuhkan oleh si-pemakai. Informasi yang dihasilkan biasanya hasil pe-
retrieve-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

S ebelum program diterapkan, maka program harus bebas terlebih dahulu dari
kesalahan-kesalahan. Oleh sebab itu, program harus ditest untuk menemukan
kesalahan-kesalahan yang mungkin terjadi. Program ditest untuk tiap-tiap modul
dan dilanjutkan dengan pengetesan untuk semua modul yang telah dirangkai.
Kesalahan dari program dapat diklasifikasikan dalam tiga bentuk kesalahan yaitu :
Kesalahan bahasa (language errors) atau disebut juga dengan kesalahan
penulisan (syntax errors) atau kesalahan tata bahasa (grammatical errors)
adalah kesalahan didalam penulisan source program yang tidak sesuai
dengan yang telah disyaratkan. Kesalahan ini relatif mudah ditemukan dan
diperbaiki, karena kompiler akan memberitahukan letak dan sebab
kesalahannya sewaktu program dikompilasi.
Kesalahan sewaktu proses (run-time errors), adalah kesalahan yang terjadi
sewaktu executable program dijalankan . Kesalahan ini akan menyebabkan

Langkah Pasti Menuju Sukses 3


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

S 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

D 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

T 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 5


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

Modul
PERANCANGAN DAN
NORMALISASI DATABASE 2
OBJEKTIF
Pemahaman teori database dan hierarki data.
Pembahasan teknik normalisasi untuk mereduksi terjadinya redudancy data.
Pemahaman aspek penting pada relation ships
Penentuan key-key pada database

PENDAHULUAN

T 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


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
menggambarkan suatu kejadian-kejadian (event) yang nyata
(fact) yang digunakan untuk pengambilan keputusan.
Sistem Informasi 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.
Database 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 7


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

8 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

NORMALISASI

N ormalisasi merupakan suatu teknik dalam logical desain sebuah basis data/
database, teknik pengelompokkan atribut dari suatu relasi sehingga
membentuk struktur relasi yang baik (tanpa redudansi). Ada Lima bentuk
Normalisasi tetapi sampai kebentuk Normal ke Tiga saja sudah memenuhi syarat
perancangan database yang baik.

1. Normal Pertama (1st Normal Form)


Aturan :
Mendefinisikan atribut kunci
Tidak adanya group berulang

Langkah Pasti Menuju Sukses 9


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:

N ormal seharusnya berada dalam bentuk normal tertinggi dan bergerak dari
bentuk normal satu dan seterusnya untuk setiap kali membatasi hanya satu
jenis redudansi. Keseluruhannya cuma ada lima bentuk normal. Tiga bentuk
normal pertama menekankan redudansi yang muncul dari Function Dependencies
sedangkan bentuk keempat dan kelima menekankan redudansi yang muncul dari
kasus Multi Valued Dependencies.

RELASI ANTAR TABLE

H ubungan antara tabel satu dengan lainnya melalui field yang sama disebut
relasi. Relasi dibuat menggunakan kunci. Ada dua macam kunci. Pertama
primary key (kunci utama) yaitu field unik yang mengidentifikasikan suatu record
sehingga dapat dihubungkan dengan tabel lain yang berkaitan. Kedua foreign key
(kunci tamu) yaitu field yang berisi nilai identifikasi dengan record yang berkaitan
dalam table lainnya.

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 NAMA JURUSAN KODE MATA KODE NAMA NILAI NILAI NILAI NILAI

10 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
MK. KULIAH DOSEN DOSEN ABSENSI TUGAS MID UAS
KLK Kalkulus FHR Fahri 100 100 75 85
1001 Budi T.Mesin AGM Agama JFR Jefri 100 85 80 65
STS Statistik SNT Santi 85 100 80 85
KLK Kalkulus FHR Fahri 100 50 80 95
1002 Ardi T.Sipil KMA Kimia NOE Whisnu 50 80 90 65
CAD AutoCad HNR Henry 100 100 85 95

Dari Bentuk unnormalized dapat kita buat ke bentuk normalisasi pertama yaitu
dalam bentuk flat table
KODE MATA KODE NAMA NILAI NILAI NILAI NILAI
NIM NAMA JURUSAN
MK. KULIAH DOSEN DOSEN ABSENSI TUGAS MID UAS
1001 Budi T.Mesin KLK Kalkulus FHR Fahri 100 100 75 85
1001 Budi T.Mesin AGM Agama JFR Jefri 100 85 80 65
1001 Budi T.Mesin STS Statistik SNT Santi 85 100 80 85
1002 Ardi T.Sipil KLK Kalkulus FHR Fahri 100 50 80 95
1002 Ardi T.Sipil KMA Kimia NOE Whisnu 50 80 90 65
1002 Ardi T.Sipil CAD AutoCad HNR Henry 100 100 85 95
Dari Bentuk Normal Pertama kita bagi flat table diatas menjadi beberapat table
sehingga tiap table memiliki key unik (key primer).

Table Mahasiswa
* NIM NAMA KODE JURUSAN
1001 Budi TMS
1002 Ardi T.Sipil

Table Dosen
* KODE DOSEN NAMA DOSEN
FHR Fahri
JFR Jefri
SNT Santi
NOE Whisnu
HNR Henry

Table Jurusan
* KODE JURUSAN NAMA JURUSAN
TMS Teknik Mesin
TSP Teknik Sipil
Table Nilai
KODE NIM NILAI NILAI NILAI NILAI

Langkah Pasti Menuju Sukses 11


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA
MK ABSEN TUGAS MID UAS
AGM 1001 100 85 80 65
CAD 1002 100 100 85 95
KLK 1001 100 100 75 85
KLK 1002 100 50 80 95
KMA 1002 50 80 90 65
STS 1001 85 100 80 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


1 n
Kode_MK Kode Ujian
n
Nama_MK Nim
Jmlh_SKS N_Absen
N_Tugas
N_Mid
N_Semester
Table Ujian Table Mahasiswa
n 1 N_AkhirAngka 1
Kode_Ujian N_AkhirHuruf NIM
Kode_MK Nama
n Kode_Dosen n Kode_Jurusan
Tahun_Ajaran

Table Dosen Table Jurusan


1
Kode_Dosen Kode_Jurusan 1
Nama_Dosen Nama_Jurusan
Nama_KAJUR

12 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

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


Data Lebar Data Lebar
Field Name Field Name
Type Data Type Data
* Kode_Dosen Text 5 Kode_Ujian Text 20
Nama_Dosen Text 30 NIM Text 8
N_Absen Number Byte
Table Jurusan N_Tugas Number Byte
Data Lebar N_Mid Number Byte
Field Name N_Semester Number Byte
Type Data
* Kode_Jurusan Text 3 N_AkhirAngka Number Single
Nama_Jurusan Text 20 N_AkhirHuruf Text 5
Nama_Kajur Text 50
Table Ujian
Table Mahasiswa Data Lebar
Field Name
Data Lebar Type Data
Field Name * Kode_Ujian Text 20
Type Data
* NIM Text 8 Kode_MK Text 7
Nama Text 30 Kode_Dosen Text 5
Kode Jurusan Text 3 Tahun_Ajaran Text 10

Table MataKuliah Keterangan


Data Lebar Tanda * pada Field Name dari setiap
Field Name table menandakan bahwa Field
Type Data
* Kode_MK Text 7 Tersebut merupakan Primary Key dari
table yang dirancang.
Nama_MK Text 30
Jumlah SKS Number Byte

TIPS-Perancangan Database

P enentuan Tipe Data dan Lebar Data dari tiap field sangat penting. Tipe Data
harus ditentukan berdasarkan kemungkinan value yang akan diinput begitu

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


R 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

Modul
STRUCTURE QUERY
LANGUAGE (SQL) 3
OBJEKTIF
Mahasiswa dapat memahami struktur dasar SQL
Command Pada DDL dan DML
Pembuatan Aplikasi Penguji Query SQL

KONSEP DASAR SQL

S 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


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

PERNYATAAN SQL SELECT/FROM

P 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
K 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 PENJELASAN
< Isi field lebih kecil dari suatu nilai
<= Isi field lebih kecil atau sama dengan dari suatu nilai
> Isi field lebih besar dari suatu nilai
>= Isi filed lebih besar atau sama dengan dari suatu nilai
= Isi field sama dengan dari suatu nilai
<> Isi field tidak sama dengan dari suatu nilai
Between Isi field diantara suat range
Like Isi field sesuai dengan pola tertentu
In Isi field sesuai dengan satu dari beberapa Kriteria

Contoh :
SELECT * FROM PUBLISHERS Where City = “New York”

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 nama belakangkanya


menggunakan awalan huruf “D” digunakan klausa LIKE.
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

P 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

P 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

P 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

P ada modul ini Anda akan membuat sebuah program penguji Query SQL
dimana dengan aplikasi yang akan dirancang ini anda akan mudah untuk
mempelajari pernyataan SQL dan langsung melihat hasilnya pada form.

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 PROPERTI PENGATURAN
Form1 Caption Penguji Query SQL
DatabaseName Path Database Anda
Data1
Visible False
Caption Hasil SQL
DBGrid1
DataSource Data1
Label1 Caption Record Ke
Label2 Caption Jumlah Record
Name LblRecordKe
Label3 Alignment 2 – Center
BorderStyle 1 – Fixed Single

20 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
Caption Kosongkan
Name lblJmlhRecord
Alignment 2 – Center
Label4
BorderStyle 1 – Fixed Single
Caption Kosongkan
Name Text1
Multiline True
TextBox
ScrollBars 2 – Vertical
Text Kosongkan
Name cmdJalankan
Command1
Caption &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

Modul
ADO DAN PEMBUATAN
MODUL SISTEM AKADEMIK
22
4
Langkah Pasti Menuju Sukses
AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

OBJEKTIF
Memahamai fungsionalitas ADO
Mengenal Objek-Objek Pada ADO
Mengenal Metode-Metode yang ada pada objek-objek utama
Pembuatan Modul pada “Sistem Informasi Akademik”

PENGANTAR ADO

U 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 KETERANGAN
Membuat koneksi antara aplikasi Anda dengan sumber
Connection data eksternal sepert MS Access, MS SQL Server, Oracle
dan lain-lain.
Digunakan untuk mengeksekusi perintah termasuk
menggunakan parameter yang spesifik untuk mengakses
Command
record dari sumber data. Umumnya nilai kembalian dari
akses record adalah objek recordset.
Digunakan untuk mengakses record yang merupakan
Recordset
kembalian dari query SQL. Objek recordset dipakai untuk

Langkah Pasti Menuju Sukses 23


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA
menampilkan record ke pemakai.
Berisi informasi tentang kolom tunggal data dalam
Field
recordset.
Suatu parameter tunggal dari command kumpulan
Parameter
parameter.
Berisi informasi error yang diperluas mengenai suatu
Error
kondisi yang ditimbulkan oleh provider.
Berisi suatu nilai karakteristik yang didefenisikan provider
Property
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 KETERANGAN
Begin Trans Untuk memulai transaksi baru.
Cancel Untuk membatalkan operasi asynchronous
Close Untuk menutup objek atau koneksi
Execute Untuk mengeksekusi pernyataan SQL atau Query.
Open Untuk membuka koneksi
OpenSchem Nilai kembaliannya adalah informasi skema database
Untuk membatalkan perubahan yang terjadi saat transaksi
RollBackTrans
atau mengakhiri transaksi yang gagal.

Operasi asynchronous adalah suatu tugas yang diinisialisasi oleh suatu kode
(seperti query) yang mengizinkan tugas lainnya untuk melanjutkannya sebelum
tugas tersebut selesai. Kebalikannya, operasi synchronous adalah suatu tugas
yang diinisialisasi oleh suatu kode yang harus selesai terlebih dahulu sebelum
operasi lainnya dimulai.

PROPERTI OBJECT CONNECTION


Berikut Table Properti Objek Connection

24 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

PROPERTI KETERANGAN
Attributes Mengindikasikan karakteristik suatu objek.
Nilai kembalian atau pengaturan waktu yang digunkan
CommandTimeOut untuk memperoses sebuah perintah sebelum waktunya
habis / timeout.
Nilai kembalian atau pengaturan untuk membuat suatu
ConnectionString
connection. Isinya DSN, UserName dan Password.
Nilai kembalian atau pengaturan waktu yang disediakan
ConnectionTimeOut untuk memproses sebuah connection sebelum waktunya
habis /.timeout.
CursorLocation Nilai kembalian atau pengaturan dimana kursor berada.
Nilai kembalian atau pengaturan default database untuk
DefaultDatabase
objek connection.
Nilai kembaliannya adalah koleksi dari objek error yang
Errors
dimunculkan oleh provider data.
Nilai kembalian atau pengaturan dari level isolasi untuk
Isolation Level
transaksi
Nilai kembaliannya adalah izin akses yang diberikan untuk
Mode
memodifikasi data.
Properties Nilai kembaliannya adalah properti dinamik untuk objek.
Provider Nilai kembaliannya adalah nama data provider.
Nilai kembaliannya adalah status koneksi apakah dibuka,
State
ditutup atau sibuk.
Version Nilai kembaliannya adalah nomor versi ADO.

OBJEK COMMAND
Dibawah ini adalah metode-metode yang ada pada objek command ;
METODE KETERANGAN
Membatalkan perintah yang dieksekusi secara
Cancel
asynchronous.
CancelParameter Membuat parameter baru suatu objek.
Execute Menjalankan perintah/Command

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 KETERANGAN
Nilai kembalian atau pengaturan untuk mengaktifkan
ActiveConnection
objek connection.
CommandText Nilai kembalian atau pengaturan untuk command teks.
Nilai kembalian atau pengaturan sampai waktunya
CommandTimeOut
habis.
CommandType Nilai kembalian atau pengaturan tipe command.
Name Nlai kembaliannya adalah nama objek.
Parameters Nilai kembaliannya adalah parameter command.
Nilai kembalian atau pengaturan apakah akan
Prepared
mengkompilasi command sebelum mengeksekusi.
Nilai kembaliannya adalah properti yang dinamik dari
Properties
objek.
Nilai kembaliannya adalah status koneksi apakah
State
dibuka, ditutup atau sibuk.

OBJEK RECORDSET
Dibawah ini adalah daftar metode yang ada pada objek RecordSet
METODA KETERANGAN
AddNew Menambah record baru ke objek recordset.
Membatalkan perintah yang dieksekusi secara
Cancel
asynchronous.
Membatalkan perubahan sebelum BatchUpdate
CancelBatch
dipanggil.
CancelUpdate Membatalkan perubahan sebelum update dipanggil.
Membuat duplikat objek recordset dari objek recordset
Clone
yang ada.
Menutup recordset dan koneksinya ke sebuah sumber
Close
data.
Mengambil dua bookmark dan membandingkan posisi
CompareBookmarks
relatif mereka.
Delete Menghapus data pada objek recordset.
Find Mencari suatu record dari recordset.
GetRows Memasukkan record ke dalam suatu array.
GetString Memasukkan record ke dalam suatu string.
Move Memindahkan posisi record aktif.

26 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
Memindahkan posisi data ke record pertama dari
MoveFirst
recordset.
Memindahkan posisi data ke record terakhir dari
MoveLast
recordset.
Memindahkan posisi data ke record berikutnya dari
MoveNext
recordset.
Memindahkan posisi data ke record sebelumnya dari
MovePrevious
recordset.
Menghapus objek recordset yang aktif dan
NextRecordset
menggantikannya dengan recordset baru.
Open Membuka objek recordset.
Memperbarui data dalam objek recordset dengan
Requery
mengulang query.
Resync Me-Refresh data dalam objek recordset database.
Save Menyimpan recordset ke file
Menyatakan apakah objek recordset mendukung tipe
Supports
fungsi tertentu.
Menyimpan perubahan dalam baris/Record sekarang
Update
ke database.
UpdateBatch Menyimpan perubahan batch sekarang.

PROPERTI RECORDSET
Berikut adalah table Properti yang ada pada objek RecordSet.
PROPERTI KETERANGAN
AbsolutePage Menghasilkan nomor halaman dari record yang ada.
AbsolutePosition Menghasilkan posisi awal dari record yang ada.
Nilai kembaliannya adalah objek command yang
ActiveCommand
membuat recordset.
Nilai kembaliannya adalah koneksi aktif yang
ActiveConnection
digunakan oleh recordset.
Nilai kembaliannya adalah posisi record aktif sebelum
BOF
data pertama dari recordset.
Bookmark Pengenal baris unik untuk record aktif.
Nilai kembalian atau pengaturan jumlah record yang
CacheSize
di-cache dalam memory lokal.
CursorLocation Nilai kembalian atau pengaturan dari lokasi kursor.
CursorType Nilai kembalian atau pengaturan tipe kursor.

Langkah Pasti Menuju Sukses 27


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA
Nilai kembalian atau pengaturan anggota sumber data
Data Member
dimana recordset terikat.
Data Source Nilai kembalian atau pengaturan sumber data.
EditMode Nilai kembaliannya status editing dari record aktif.
Nilai kembaliannya posisi data berada sesudah record
EOF
terakhir dari objek recordset.
Nilai kembaliannya adalah koleksi objek field dalam
Fields
recordset.
Filter Nilai kembalian atau pengaturan filter dari data.
Nilai kembalian atau pengaturan tipe kunci yang
LockType
diberikan pada data selama pengeditan.
Nilai kembalian atau pengaturan jumlah maksimum
MaxRecord
data dalam sebuah query pada recordset.
Nilai kembalian atau pengaturan jumlah halaman data
PageCount
dalam recordset.
PageSize Nilai kembalian atau pengaturan ukuran halaman.
Properties Nilai kembaliannya adalah properti dinamik dari objek.
RecordCount Nilai kembaliannya adalah jumlah record.
Sort Nilai kembalian atau pengaturan kriteria pengurutan.
Source Nilai kembalian atau pengaturan sumber dari data.
Nilai kembaliannya adalah status koneksi apakah
State
dibuka, ditutup, atau sibuk.
Status Menyatakan status data selama updating batch.

STRING KONEKSI BERDASARKAN PROVIDER


PROVIDER STRING KONEKSI
Microsoft Jet “Provider=Microsoft.Jet.OLEDB.3.5.1;”
“Provdier=MSDAORA;Data Source =ServerName;
Oracle
User ID=NamaUser;Password=password”
Provider=MSDASQL.1;UID=admin;Extended
Microsoft ODBC Properties=”DBQ=PathDatabase;FIL=
Ms Access;”
“Provider=SQLOLEDB;Data Source=sql65server;
SQL Server
User ID=sa;Password=”;initial Catalog=pubs”

28 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

ANTARA ENGINE JET 3.51 DENGAN JET 4

V 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

P ada modul ini dan modul selanjutnya anda akan membuat sebuah aplikasi
lengkap Sistem Informasi Akademik. Untuk modul ini terlebih dahulu kita akan
membuat project baru untuk aplikasi kita dan pembuatan modul utama yang
berisikan deklarasi variable global, inisialisasi variable, subrutine serta fungsi-
fungsi umum.
Agar aplikasi yang akan anda buat terstruktur dan source code yang ada pada
modul ini dapat berjalan tanpa ada masalah, maka standarisasi untuk lokasi
penyimpanan adalah sebagai berikut :

Keterangan :
Simpan file Project (Sistem Akademik.VBP) pada folder Sistem Akademik.
Simpan semua file project lainnya (*.frm, *.frx, *.bas) pada folder Code.
Simpan Database yang telah anda buat pada modul kedua di folder Database
Simpan Semua file report (*.rpt) yang akan anda buat nantinya pada folder
Report.
Siapkan folder Package untuk file instalasi (Setup Program).

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

P roject Program sejauh ini belum dapat dijalankan, simpan project dengan
nama “Sistem Akademik.vbp” dan simpan module dengan nama “Sistem
Akademik.bas” (sesuai dengan pathnya) lalu tutup project. Pada modul-modul
berikutnya anda akan membuat interfacing serta sistem report pada aplikasi
Sistem Akademik ini.

Langkah Pasti Menuju Sukses 33


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

Modul
INTERFACING APLIKASI
SISTEM AKADEMIK 5
OBJEKTIF
Mahasiswa dapat mendesain dan merancang interface yang diperlukan dalam
pembuatan aplikasi perangkat lunak Sistem Informasi Akademik.

PENDAHULUAN

S istem Informasi Akademik memiliki interface yang terdiri atas lima form dan
satu form MDI (Multiple Document Interface). Tiap form satu sama lain memiliki
object-object yang hampir indentik, artinya Anda hanya perlu merancang satu form
hingga selesai, dan form lainnya dapat dibuat dengan meng-copy dari form yang
telah selesai dirancang tadi. Begitu pula dengan pengaturan properti tiap object
Anda cukup mengatur pada satu form saja sehingga proses perancangan mudah
dan cepat.
Sebelum dilakukan perancangan pada Form Data Dosen maka Anda harus
terlebih dahulu mengatur beberapa setting pada Project Sistem Akademik yaitu :
Tambahkan beberapa komponen kontrol dari menu Project Components…
1. Crystal Report Component
2. Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)
3. Microsoft Windows Common Controls 6.0 (SP4)
Atur Referensi dari Project yaitu dari menu Project References…
1. Microsoft ActiveX Data Objects 2.5 Library
2. Microsoft Data Binding Collection VB 6.0 (SP4)

PERANCANGAN FORM DATA DOSEN


R 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 peng-
update-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 AMIK TRIGUNA DHARMA

36 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

BENTUK LAYOUT FORM DATA DOSEN


Label3 Crystal Command
Reports TextBox1 Label1 Buttons
Label2 TextBox2
Frame1

Label4
Command Command Command
Button1 Button2 Button4
Command
Button3

DAFTAR PROPERTI OBJECT Pada Form Data Dosen


OBJECT PROPERTI PENGATURAN BackStyle 0 – Transparent
Alignment 2 – Center Alignment 2 – Center
Form Data BorderStyle 1 – Fixed Single
Label1 Caption
Dosen
Label4 BackColor &H00FFFFFF&
BackStyle 0 – Transparent
Caption (Kosongkan)
1 – Right
Alignment (Name) lblStatus
Justified
Label2 Frame1 Caption Data Dosen
Caption Kode Dosen
BackStyle 0 – Transparent (Name) txtFields
TextBox1
1 – Right Text (Kosongkan)
Alignment
Label3 Justified
(Name) TxtFields
Caption Nama Dosen TextBox2
Text (Kosongkan)

Langkah Pasti Menuju Sukses 37


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

Command (Name) CmdAdd Button9 Style 1 – Graphical


Button1 Caption &Add Command (Name) CmdPrevious

Command (Name) CmdEdit Button10 Style 1 - Graphical


Button2 Caption &Edit Command (Name) CmdNext

Command (Name) CmdUpdate Button11 Style 1 - Graphical


Button3 Caption &Update Command (Name) CmdLast

Command (Name) CmdCancel Button12 Style 1 – Graphical


Button4 Caption &Cancel (Name) FrmDosen

Command (Name) CmdDelete BorderStyle 3 – Fixed Dialog


Button5 Caption &Delete Form1 Form Data
Caption
Dosen
Command (Name) CmdSearch
2 – Center
Button6 Caption &Search StartUposition
Screen
Command (Name) CmdClose (Name) CrptReport
Crystal
Button7 Caption &Close Report1 WindowState 2-crptMaximize
Command (Name) CmdReport
Button8 Caption &Report
Command (Name) CmdFirst

PERANCANGAN FORM DATA JURUSAN

H ampir semua object / control pada form data Jurusan identik dengan form
Data Dosen yang telah Anda rancang.Untuk mempersingkat tahap
perancangan interfacing Anda cukup mengcopy semua form pada data Dosen dan
kemudian menambahkan/menghapus beberapa control yang tidak ada pada Form
Data Jurusan.
Cara lain yang lebih cepat untuk menggandakan form Data Dosen adalah
dengan melakukan Save As pada form dengan nama form lain misalnya dengan
nama frmJurusan lalu Anda harus meng-add kembali form data dosen pada
project Anda.
Algoritma yang digunakan pada form Data Jurusan juga relatif sama dengan
Form data Dosen sehingga Anda cukup melihat flowchart pada Form Data Dosen
untuk memahami sistem kerja yang ada.

38 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
Label3 Command
TextBox1 Label1 Buttons
Label2 TextBox2
Frame1

Label4
Command Command Command
Button1 Button2 Button4
TextBox3 Command
Button3

DAFTAR PROPERTI OBJECT Pada Form Data Jurusan


OBJECT PROPERTI PENGATURAN Alignment 1 – Right Justified
Alignment 2 – Center Nama Ketua
Label4 Caption
Jurusan
Form Data
Label1 Caption
Jurusan BackStyle 0 - Transparant
BackStyle 0 – Transparent Alignment 2 – Center
Alignment 1 – Right Justified BorderStyle 1 – Fixed Single
Label2 Caption Kode Jurusan Label5 BackColor &H00FFFFFF&
BackStyle 0 – Transparent Caption (Kosongkan)
Alignment 1 – Right Justified (Name) lblStatus
Label3 Caption Nama Jurusan Frame1 Caption Data Jurusan
BackStyle 0 – Transparent TextBox1 (Name) txtFields

Langkah Pasti Menuju Sukses 39


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

Text (Kosongkan) Button7 Caption &Close


(Name) txtFields Command (Name) CmdReport
TextBox2
Text (Kosongkan) Button8 Caption &Report
(Name) txtFields Command (Name) CmdFirst
TextBox3
Text (Kosongkan) Button9 Style 1 - Graphical

Command (Name) CmdAdd Command (Name) CmdPrevious


Button1 Caption &Add Button10 Style 1 - Graphical

Command (Name) CmdEdit Command (Name) CmdNext


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 Form1 Form Data


Caption
Jurusan
Button5 Caption &Delete
StartUposition 2 – Center Screen
Command (Name) CmdSearch
Button6 Caption &Search
Command (Name) CmdClose

PERANCANGAN FORM DATA MATA KULIAH

H ampir semua object / control pada form data Mata Kuliah identik dengan form
Data Dosen yang telah Anda rancang.Untuk mempersingkat tahap
perancangan interfacing Anda cukup mengcopy semua form pada data Dosen dan
kemudian menambahkan/menghapus beberapa control yang tidak ada pada Form
Data Mata Kuliah.
Algoritma yang digunakan pada form Data Mata Kuliah juga relatif sama
dengan Form data Dosen sehingga Anda cukup melihat flowchart pada Form Data
Dosen untuk memahami sistem kerja yang ada.

40 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

Label3 Crystal Command


Report Buttons
TextBox1 Label1
Label2 TextBox2
Frame1

Label5
Command Command Command
Button1 Button2 Button4
TextBox3 Command
Label4 Button3

DAFTAR PROPERTI OBJECT Pada Form Data Mata Kuliah


OBJECT PROPERTI PENGATURAN Alignment 1 – Right Justified
Label3 Caption Nama MataKuliah
Alignment 2 – Center
BackStyle 0 – Transparent
Form Data
Label1 Caption Alignment 1 – Right Justified
MataKuliah
BackStyle 0 – Transparent Label4 Caption Jumlah SKS

Alignment 1 – Right Justified BackStyle 0 - Transparant

Label2 Caption Kode MataKuliah Alignment 2 – Center

BackStyle 0 – Transparent Label5 BorderStyle 1 – Fixed Single


BackColor &H00FFFFFF&

Langkah Pasti Menuju Sukses 41


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

Caption (Kosongkan) Button7 Caption &Close


(Name) lblStatus Command (Name) CmdReport
Frame1 Caption Data MataKuliah Button8 Caption &Report
(Name) txtFields Command (Name) CmdFirst
TextBox1
Text (Kosongkan) Button9 Style 1 - Graphical
(Name) txtFields Command (Name) CmdPrevious
TextBox2
Text (Kosongkan) Button10 Style 1 - Graphical
(Name) txtFields Command (Name) CmdNext
TextBox3
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 Form1 Form Data


Caption
Button3 Caption &Update MataKuliah

Command (Name) CmdCancel StartUposition 2 – Center Screen

Button4 Caption &Cancel Crystal (Name) CrptReport

Command (Name) CmdDelete Report1 WindowState 2-crptMaximize

Button5 Caption &Delete

Command (Name) CmdSearch


Button6 Caption &Search
Command (Name) CmdClose

PERANCANGAN FORM DATA MAHASISWA

H ampir semua object / control pada form data Mahasiswa identik dengan form
Data Dosen yang telah Anda rancang.Untuk mempersingkat tahap
perancangan interfacing Anda cukup mengcopy semua form pada data Dosen dan
kemudian menambahkan/menghapus beberapa control yang tidak ada pada Form
Data Mahasiswa.
Algoritma yang digunakan pada form Data Mahasiswa juga relatif sama
dengan Form data Dosen sehingga Anda cukup melihat flowchart pada Form Data
Dosen untuk memahami sistem kerja yang ada.

42 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

Label3 Crystal Command


Report Buttons
TextBox1 Label1
Label2 TextBox2
Frame1

Label5
Command Command Command
Button1 Button2 Button4
ComboBox Command
Label4 Button3

DAFTAR PROPERTI OBJECT Pada Form Data Mahasiswa


OBJECT PROPERTI PENGATURAN Alignment 1 – Right Justified
Alignment 2 – Center Label3 Caption Nama
Form Data BackStyle 0 – Transparent
Label1 Caption
Mahasiswa Alignment 1 – Right Justified
BackStyle 0 – Transparent Label4 Caption Kode Jurusan
Alignment 1 – Right Justified BackStyle 0 - Transparant
Label2 Caption NIM Alignment 2 – Center
Label5
BackStyle 0 – Transparent BorderStyle 1 – Fixed Single

Langkah Pasti Menuju Sukses 43


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

BackColor &H00FFFFFF& Command (Name) CmdClose


Caption (Kosongkan) Button7 Caption &Close
(Name) LblStatus Command (Name) CmdReport
Frame1 Caption Data Mahasiswa Button8 Caption &Report
(Name) TxtFields Command (Name) CmdFirst
TextBox1
Text (Kosongkan) Button9 Style 1 - Graphical
(Name) TxtFields Command (Name) CmdPrevious
TextBox2
Text (Kosongkan) Button10 Style 1 - Graphical
(Name) TxtFields Command (Name) CmdNext
TextBox3
Text (Kosongkan) Button11 Style 1 – Graphical
(Name) cboJurusan Command (Name) CmdLast
Combo1 0 – Dropdown Button12 Style 1 – Graphical
Style
Combol (Name) FrmMataKuliah
Command (Name) CmdAdd BorderStyle 3 – Fixed Dialog
Button1 Caption &Add Form1 Form Data
Caption
Command (Name) CmdEdit Mahasiswa
Button2 Caption &Edit StartUposition 2 – Center Screen

Command (Name) CmdUpdate Crystal (Name) CrptReport


Button3 Caption &Update Report1 WindowState 2-crptMaximize

Command (Name) CmdCancel


Button4 Caption &Cancel

Command (Name) CmdDelete


Button5 Caption &Delete

Command (Name) CmdSearch


Button6 Caption &Search

PERANCANGAN FORM DATA Nilai

F orm Data Nilai memiliki tingkat logika yang tinggi dimana terdapat algoritma
sorting, searching dan retrieving pada data serta ekspansi kemampuan untuk
kontrol MsHflexGrid. Seperti yang kita ketahui bahwa MsHflexGrid bersifat Read
Only tetapi untuk kemudahan user maka kita rancang suatu interface MsHflexGrid

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 AMIK TRIGUNA DHARMA

46 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0

DAFTAR PROPERTI OBJECT Pada Form Data Nilai


OBJECT PROPERTI PENGATURAN Combo (Name) CboTahunAjaran
Alignment 2 – Center Box3 Style 2 – Dropdown
Form Nilai Combo (Name) CboNIM
Label1 Caption
Mahasiswa Box4 Style 2 – Dropdown
BackStyle 0 – Transparent Combo (Name) CboNama
Alignment 1 – Right Justified Box5 Style 2 - Dropdown
Label2 Caption Kode MataKuliah (Name) Option1
Option
BackStyle 0 – Transparent Button1 Caption Ascend
Alignment 1 – Right Justified (Name) Option2
Option
Label3 Caption Kode Dosen : Button2 Caption Descend
BackStyle 0 – Transparent Command (Name) CmdAdd
Alignment 1 – Right Justified Button1 Caption &Add
Label4 Caption Tahun Ajaran : Command (Name) CmdEdit
BackStyle 0 - Transparant Button2 Caption &Edit
Alignment 1 – Center Command (Name) CmdUpdate
Label5 Caption (Kosongkan) Button3 Caption &Update
(Name) LblMataKuliah Command (Name) CmdCancel
Alignment 2 – Center Button4 Caption &Cancel
Label5 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

Langkah Pasti Menuju Sukses 47


Pemrograman Database Dengan Visual Basic 6.0 AMIK TRIGUNA DHARMA

Command (Name) CmdTitle (Name) TxtList


Text Box1
Button10 Caption Nama Mahasiswa BackColor &H00FFC0FF&

Command (Name) CmdTitle (Name) FrmMataNilai


Button11 Caption Absensi 10 % BorderStyle 3 – Fixed Dialog

Command (Name) CmdTitle Form1 Caption Form Nilai


Button12 Caption Tugas 15 % StartUpositi 2 – Center Screen
on
Command (Name) CmdTitle
(Name) CrptReport
Button13 Caption Mid 30 % Crystal
WindowStat 2-crptMaximize
Command (Name) CmdTitle Report1
e
Button14 Caption UAS 45 % (Name) MshReport
Command (Name) CmdTitle MsHFlex BackColor &H00C0E0FF&
Button15 Caption Angka Grid1 BackColorB &H00FFC0C0&
kg
Command (Name) CmdTitle
Button16 Caption Huruf

PERANCANGAN FORM Main (MDI Form)

F orm Main adalah form utama yang bertipe MDI (Multiple Document Interface).
Pada form Main terdapat kontrol ToolBar, ImageList dan Status Bar juga
terdapat Menu dengan hierarki sebagai berikut :

PROPERTI PADA MENU PROPERTI PADA TOOL BAR


CAPTION NAME INDEX CAPTION STYLE
&File mnuFile 1 4 – tbrPlaceholder
…&Tutup Aplikasi mnuTutupAplikasi 2 Jurusan 0 – tbrDefault
&Data mnuData 3 MataKuliah 0 – tbrDefault
…&Jurusan mnuJurusan 4 3 – tbrSeparator
…Mata&Kuliah mnuMataKuliah 5 Dosen 0 – tbrDefault
…- Separator1 6 Mahasiswa 0 – tbrDefault
…&Dosen mnuDosen 7 Nilai 0 – tbrDefault
…&Mahasiswa mnuMahasiswa 8 3 – tbrSeparator
…- Separator2 9 Keluar 0 – tbrDefault
…&Nilai Mahasiswa mnuNilaiMahasiswa 10 3 – tbrSeparator

48 Langkah Pasti Menuju Sukses


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
Tool Bar

Image
List

Status
Bar

TIPS Dan Trick

A 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

Modul
PERANCANGAN REPORT
DENGAN CRYSTAL REPORT 6
OBJEKTIF
Mahasiswa Dapat merancang suatu sistem report yang terintegrasi dengan
menggunakan aplikasi third party Seagate Crystal Report.

Perancangan Report

S istem Report pada perangkat lunak Sistem Akademik ini dirancang dengan
menggunakan program third party Seagate Crystal Report. Aplikasi ini bekerja
secara terpisah dengan Visual Basic 6.0 dan berfungsi membuat dan menguji
report, kontrol ActiveX dan beberapa file lainnya.
Crystal Report desainer akan membuat file definisi report dengan ekstensi
*.rpt. Pada aplikasi kita Crystal Report di link-an dengan kontrol OLE (OCX) yang
ditampilkan pada form untuk mengatur proses mencetak report. Dengan kontrol ini
anda dapat menampilkan report pada jendela Print Preview, mencetak langsung
ke printer, atau mengekspor menjadi suatu file.

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 FIELD TO TYPE OF ( EVALUATE ) USE A RESET


TOTAL NAME SUMMARIZE SUMMARY FORMULA
Count_A Nilai.N_AkhirHuruf Count {Nilai.N_AkhirHuruf} = "A" Never
Count_B Nilai.N_AkhirHuruf Count {Nilai.N_AkhirHuruf} = "B" Never
Count_C Nilai.N_AkhirHuruf Count {Nilai.N_AkhirHuruf} = "C" Never
Count_D Nilai.N_AkhirHuruf Count {Nilai.N_AkhirHuruf} = "D" Never
Count_E Nilai.N_AkhirHuruf Count {Nilai.N_AkhirHuruf} = "E" 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 AMIK TRIGUNA DHARMA

Modul
CODEING APLIKASI
SISTEM AKADEMIK 7
OBJEKTIF
Tahap penulisan source code pada tiap objek.
RunTime Program.
Proses debugging dan testing program.

PENDAHULUAN

P ada modul ini adalah tahapan penyelesaian perangkat lunak Sistem Informasi
Akademik yaitu penulisan kode sumber (source code) pada tiap objek yang
ada. Setelah proses codeing selesai maka proses selanjutnya adalah melakukan
proses debugging pada tiap modul, keintegritasan dari seluruh modul hingga
diperoleh suatu sistem perangkat lunak yang baik dan terhindar dari bug program.

KODE PROGRAM PADA FORM DOSEN


Dim AddNewFlag As Boolean
Dim EditFlag As Boolean
Dim SaveRecord As Boolean
Dim 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 AddNewFlag As Boolean
Dim EditFlag As Boolean
Dim SaveRecord As Boolean
Dim 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


AMIK TRIGUNA DHARMA Pemrograman Database Dengan Visual Basic 6.0
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 AddNewFlag As Boolean
Dim EditFlag As Boolean
Dim SaveRecord As Boolean
Dim 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 AddNewFlag As Boolean
Dim EditFlag As Boolean
Dim SaveRecord As Boolean
Dim 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 AMIK TRIGUNA DHARMA
Select Case Index
Case 0
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY Nilai.Nim"
Else
strConnection = strConnection & "ORDER BY Nilai.Nim DESC"
End If
Case 1
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY Mahasiswa.Nama"
Else
strConnection = strConnection & "ORDER BY Mahasiswa.Nama
DESC"
End If
Case 2
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY Nilai.N_absen"
Else
strConnection = strConnection & "ORDER BY Nilai.N_absen
DESC"
End If
Case 3
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY Nilai.N_Tugas"
Else
strConnection = strConnection & "ORDER BY Nilai.N_Tugas
DESC"
End If
Case 4
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY N_Mid"
Else
strConnection = strConnection & "ORDER BY Nilai.N_Mid DESC"
End If
Case 5
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY Nilai.N_Semester"
Else
strConnection = strConnection & "ORDER BY Nilai.N_Semester
DESC"
End If
Case 6
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY
Nilai.N_AkhirAngka"
Else
strConnection = strConnection & "ORDER BY Nilai.N_AkhirAngka
DESC"
End If
Case 7
If Option1(0).Value = True Then
strConnection = strConnection & "ORDER BY
Nilai.N_AkhirHuruf"

90 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

Modul
PEMBUATAN PACKAGE
APLIKASI 8
OBJEKTIF
Mahasiswa dapat membuat sebuah package dari aplikasi yang telah dirancang
sebelumnya serta mengetahui aspek-aspek apa saja yang perlu diperhatikan
selema proses pembuatan tersebut.

PENDAHULUAN

S etelah proses perancangan dan Penulisan kode program selesai tahap akhir
adalah membuat file executable dari program. Tahap ini sekaligus berfungsi
untuk memeriksa kode program apakah ada konstanta, variable atau object yang
tidak sesuai dengan defenisinnya atau belum dideklarasikan.

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