Anda di halaman 1dari 104

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

KONSEP DASAR PEMROGRAMAN DATABASE

Modul

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

PEMODELAN SISTEM emodelan (modeling) adalah proses merancang perangkat lunak sebelum melakukan pengkodean (coding). Model perangkat lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan perangkat lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Kesuksesan suatu pemodelan perangkat lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebuan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan. PERANCANGAN DATABASE ehandalan dari teknik pemrograman database adalah bagaimana anda sebagai seorang programmer merancang database sebaik mungkin. Database menjadi suatu object yang sifatnya sangat sensitif disini dimana banyak sekali pertimbangan-pertimbangan yang harus anda lakukan sebelum merancang database. Untuk suatu aplikasi yang kemungkinan pengembangan datanya sangat besar maka diperlukan suatu manajemen database yang dapat menangani data hingga ribuan record. Tetapi hal yang paling utama dari semua ini adalah teknik perancangan database dengan melakukan normalisasi hingga diperoleh suatu rancangan database yang benar-benar terhindar dari redudancy data sehingga kapasitas penyimpanan lebih kecil dan proses pe-retrieve-an data dapat lebih cepat.

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

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

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

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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

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

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

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

1. Pseudocode 2. Structured Chart 3. Flow Chart Cetakan dari program sumber (source code program) Manual operasi penggunaan program. PEMBUATAN FILE INSTALASI ahap terakhir dari pembuatan suatu sistem perangkat lunak adalah pembuatan file instalasi. Pada Microsoft Visual Basic 6.0 anda dapat dengan mudah membuat file instalasi dengan menggunakan wizard yang ada. Atau anda dapat pula menggunakan aplikasi pembuat file instalasi dari third party yang jauh lebih fleksibel dan expert dengan banyak fitur tambahan.

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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

PERANCANGAN DAN NORMALISASI DATABASE

Modul

OBJEKTIF Pemahaman teori database dan hierarki data. Pembahasan teknik normalisasi untuk mereduksi terjadinya redudancy data. Pemahaman aspek penting pada relation ships Penentuan key-key pada database PENDAHULUAN elah disinggung pada bab sebelumnya bahwa pada teknik pemrograman database sangat dituntut perancangan database sebaik mungkin. Kehandalan aplikasi berbasis data ini sekitar 70% bergantung kepada tipe dan hasil perancangan database tersebut serta teknik normalisasi yang digunakan.

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

AMIK TRIGUNA DHARMA

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

Sistem Informasi

Database

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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

1. Characters merupakan bagian data yang terkecil, dapat berupa karakter numerik, huruf ataupun karakter-karakter khusus (special characters) yang membentuk suatu field atau item data. 2. item data / field Field : merepresentasikan suatu atribut dari record yang menunjukkan suatu item dari data, seperti misalnya nama, alamat dan lain sebagainya. Kumpulan dari field membentuk suatu record. field name : harus diberi nama untuk membedakan field yang satu dengan lainnya field representation : tipe field (karakter, teks, tanggal, angka, dsb), lebar field (ruang maksimum yang dapat diisi dengan karakter-karakter data). field value: isi dari field untuk masing-masing record. 3. Record Kumpulan dari field membentuk suatu record. Record menggambarkan suatu unit data individu yang tertentu. Kumpulan dari record membentuk suatu file. 4. Misalnya file personalia, tiap-tiap record dapat mewakili data tiap-tiap karyawan. 5. File File terdiri dari record-record yang menggambarkan satu kesatuan data yang sejenis. Misalnya file mata pelajaran berisi data tentang semua mata pelajaran yang ada. 6. Database : Kumpulan dari file / tabel membentuk suatu database

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

1. Normal Pertama (1st Normal Form) Aturan : Mendefinisikan atribut kunci Tidak adanya group berulang Langkah Pasti Menuju Sukses 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: ormal seharusnya berada dalam bentuk normal tertinggi dan bergerak dari bentuk normal satu dan seterusnya untuk setiap kali membatasi hanya satu jenis redudansi. Keseluruhannya cuma ada lima bentuk normal. Tiga bentuk normal pertama menekankan redudansi yang muncul dari Function Dependencies sedangkan bentuk keempat dan kelima menekankan redudansi yang muncul dari kasus Multi Valued Dependencies.

RELASI ANTAR TABLE ubungan antara tabel satu dengan lainnya melalui field yang sama disebut relasi. Relasi dibuat menggunakan kunci. Ada dua macam kunci. Pertama primary key (kunci utama) yaitu field unik yang mengidentifikasikan suatu record sehingga dapat dihubungkan dengan tabel lain yang berkaitan. Kedua foreign key (kunci tamu) yaitu field yang berisi nilai identifikasi dengan record yang berkaitan dalam table lainnya. Ada tiga bentuk relasi antar table, yaitu : Relasi One-to-one (satu ke satu), ketika satu record pada suatu tabel hanya berhubungan dengan satu record pada table lainnya. Relasi One-to-many (satu ke banyak), ketika satu record pada suatu tabel berhubungan dengan banyak record pada tabel lainnya. Relasi many-to-many (banyak ke banyak), ketika banyak record pada suatu tabel berhubungan dengan banyak record pada tabel lainnya.

Co!#o$ 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


MK. KLK AGM "T" KLK KMA +A, KULIAH Kalkulus Agama "#a#is#ik Kalkulus Kimia Au#-+ad

Pemrograman Database Dengan Visual Basic 6.0


DOSEN FHR JFR "$T FHR $() H$R DOSEN Fahri Je ri "an#i Fahri *hisnu Henr. ABSENSI 100 100 85 100 50 100 TUGAS 100 85 100 50 80 100 MID 75 80 80 80 '0 85 UAS 85 !5 85 '5 !5 '5

1001

Budi

T.Mesin

100%

Ardi

T."i&il

Dari Bentuk unnormalized dapat kita buat ke bentuk normalisasi pertama yaitu dalam bentuk flat table
NIM 1001 1001 1001 100% 100% 100% NAMA Budi Budi Budi Ardi Ardi Ardi JURUSAN T.Mesin T.Mesin T.Mesin T."i&il T."i&il T."i&il KODE MK. KLK AGM "T" KLK KMA +A, MATA KULIAH Kalkulus Agama "#a#is#ik Kalkulus Kimia Au#-+ad KODE DOSEN FHR JFR "$T FHR $() H$R NAMA DOSEN Fahri Je ri "an#i Fahri *hisnu Henr. NILAI ABSENSI 100 100 85 100 50 100 NILAI TUGAS 100 85 100 50 80 100 NILAI MID 75 80 80 80 '0 85 NILAI UAS 85 !5 85 '5 !5 '5

Dari Bentuk Normal Pertama kita bagi flat table diatas menjadi beberapat table sehingga tiap table memiliki key unik (key primer). Table Mahasiswa * NIM 1001 1002 Table Dosen * KODE DOSEN FHR JFR SNT NOE HNR Table Jurusan * KODE JURUSAN TMS TSP Table Nilai KODE NIM NAMA JURUSAN Teknik Mesin Teknik Sipil NILAI NILAI NILAI NILAI 11 NAMA DOSEN Fahri Jefri Santi Whisnu Henry NAMA Budi Ardi KODE JURUSAN TMS T.Sipil

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0 MK AGM CAD KLK KLK KMA STS 1001 1002 1001 1002 1002 1001 ABSEN 100 100 100 100 50 85 TUGAS 85 100 100 50 80 100 MID 80 85 75 80 90 80

AMIK TRIGUNA DHARMA UAS 65 95 85 95 65 85

Pada bentuk normal kedua diatas tiap tabel sudah tidak memiliki keteragantungan parsial atas tabel lainnya hanya bergantung pada field kunci saja, hanya saja pada table nilai masih terdapat redudancy data sehingga table perlu dipecah kembali untuk menghasilkan bentuk normal ke tiga. Pada Bentuk Normal ketiga tiap table harus tidak memiliki ketergantungan transitif lagi, hal ini dilakukan dengan cara menentukan foreign key yang memiliki ketergantungan pada key primer pada table lain. Hal ini sangat berguna dalam menjaga keintegritasan data pada tiap table. Bentuk Normal Ketiga
Table MataKuliah Kode_MK Nama_MK Jmlh_SKS 1 n Table Nilai Kode Ujian n Nim N_Absen N_Tugas N_Mid N_Semester Table Mahasis a N_AkhirAngka 1 N_AkhirHuruf NIM Nama n Kode_Jurusan

Table Ujian n n Kode_Ujian Kode_MK Kode_Dosen Tahun_Ajaran 1

Table Dosen Kode_Dosen Nama_Dosen 1

Table Jurusan Kode_Jurusan 1 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 Field Name * Kode_Dosen Nama_Dosen Table Jurusan Field Name * Kode_Jurusan Nama_Jurusan Nama_Kajur Table Mahasiswa Field Name * NIM Nama Kode Jurusan Table MataKuliah Field Name * Kode_MK Nama_MK Jumlah SKS Data Type Text Text Number Lebar Data 7 30 Byte Data Type Text Text Text Lebar Data 8 30 3 Data Type Text Text Text Lebar Data 3 20 50 Data Type Text Text Lebar Data 5 30 Table Nilai Field Name Kode_Ujian NIM N_Absen N_Tugas N_Mid N_Semester N_AkhirAngka N_AkhirHuruf Table Ujian Field Name * Kode_Ujian Kode_MK Kode_Dosen Tahun_Ajaran Data Type Text Text Text Text Lebar Data 20 7 5 10 Data Type Text Text Number Number Number Number Number Text Lebar Data 20 8 Byte Byte Byte Byte Single 5

Keterangan Tanda * pada Field Name dari setiap table menandakan bahwa Field Tersebut merupakan Primary Key dari table yang dirancang.

TIPS-Per"!%"!g"! D"#"b"se enentuan Tipe Data dan Lebar Data dari tiap field sangat penting. Tipe Data harus ditentukan berdasarkan kemungkinan value yang akan diinput begitu

Langkah Pasti Menuju Sukses

13

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

pula dengan lebar data. Pada suatu field Lebar data harus ditentukan seminimal mungkin (mis. Nama = 30, jarang sekali nama seseorang panjangnya sampai 50 karakter). Lebar Data yang mubazir akan menyebabkan pengembangan size database yang tentunya akan membutuhkan space penyimpanan yang besar. BENTUK RELATION SHIPS ancanglah bentuk Relationships seperti dibawah ini. Ketika anda melakukan relasi antar table maka atur properti tiap foreign key seperti dibawah ini :

Keterangan Bentuk Relasi adalah One-To-Many (1 = One, = Many ) Enforce Referential Integrity Kita akan meningkatkan keintegritasan tiap tabel yang direlasikan. Cascade Update Related Fields Tiap terjadi perubahan field pada parent table maka hal ini juga akan terjadi pada child table. Cascade Delete Related Fields Tiap terjadi penghapusan record pada parent table maka hal ini juga akan terjadi pada child table.

14

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

STRUCTURE QUERY LANGUAGE (SQL)


OBJEKTIF Mahasiswa dapat memahami struktur dasar SQL Command Pada DDL dan DML Pembuatan Aplikasi Penguji Query SQL

Modul

KONSEP DASAR S&L 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 S&L 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

PERN'ATAAN S&L SELECT(FROM ernyataan SELECT/FROM untuk mengambil field dari satu atau lebih table. Sintaks dari pernyataan SELECT/FROM adalah :

SELECT [FIELD] FROM [TABLE] Dimana [Field] adalah daftar field yang diinginkan dan [Table] merupakan daftar table dimana field berada. Karakter Wildcard dapat digunakan untuk memilih semua field yang terletak dalam table. Contoh : SELECT

* FROM PUBLISHER

Pernyataan diatas akan memilih dan menampilkan semua field table publisher dari database Biblio.mdb (database contoh pada office / visual basic ) SELECT TITLE, [YEAR PUBLISHED] FROM TITLES KLAUSA )HERE lausa Where digunakan untuk menampilkan record yang memenuhi kondisi tertentu. Sintaksnya adalah :

SELECT [FIELD] FROM [TABLE] WHERE KONDISI Klausa WHERE menggunakan operator sebagai berikut : OPERATOR < <= > >= = <> Between Like In PENJELASAN Isi field lebih kecil dari suatu nilai Isi field lebih kecil atau sama dengan dari suatu nilai Isi field lebih besar dari suatu nilai Isi filed lebih besar atau sama dengan dari suatu nilai Isi field sama dengan dari suatu nilai Isi field tidak sama dengan dari suatu nilai Isi field diantara suat range Isi field sesuai dengan pola tertentu Isi field sesuai dengan satu dari beberapa Kriteria

Contoh : SELECT * FROM PUBLISHERS Where City = New York

Langkah Pasti Menuju Sukses

17

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Hasilnya akan menampilkan daftar penerbit yang berasal dari kota New York saja.Untuk menampilkan penerbit yang PubID-nya diantara 200 sampai 300 maka query yang diberikan adalah : SELECT * FROM PUBLISHERS WHERE PUBID BETWEEN 200 AND 300 Untuk menampilkan daftar pengarang yang menggunakan awalan huruf D digunakan klausa LIKE. nama belakangkanya

SELECT * FROM AUTHORS WHERE AUTHOR LIKE D* Sedangkan untuk menampilkan daftar penerbit yang berasal dari kota Boston, Carmel dan Cambridge saja, digunakan klausa IN SELECT * FROM PUBLISHERS WHERE CITY IN (BOSTON,CARMEL,CAMBRIDGE)

PERN'ATAAN S&L De*e#e 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) PERN'ATAAN INSERT INTO ernyataan query Insert Into fungsinya untuk menyisipkan baris baru kedalam table. Sintaksnya sebagai berikut :

P
18

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) Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

PERN'ATAAN UPDATE ernyataan query Update digunakan untuk memperbaharui informasi dalam suatu table.Sintaksnya sebagai berikut :

UPDATE Table Set Nilai Where Kriteria Contoh : UPDATE Pelanggan SET Kota = Makasar Where Kota = Ujung Pandang LATIHAN DAN TUGAS ada modul ini Anda akan membuat sebuah program penguji Query SQL dimana dengan aplikasi yang akan dirancang ini anda akan mudah untuk mempelajari pernyataan SQL dan langsung melihat hasilnya pada form.

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

Langkah Pasti Menuju Sukses

19

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

DAFTAR PROPERTI OBJECT OBJECT Form1 Data1 DBGrid1 Label1 Label2 Label3 PROPERTI Caption DatabaseName Visible Caption DataSource Caption Caption Name Alignment BorderStyle PENGATURAN Penguji Query SQL Path Database Anda False Hasil SQL Data1 Record Ke Jumlah Record LblRecordKe 2 Center 1 Fixed Single Langkah Pasti Menuju Sukses

20

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0 Caption Name Alignment BorderStyle Caption Name Multiline ScrollBars Text Name Caption Kosongkan lblJmlhRecord 2 Center 1 Fixed Single Kosongkan Text1 True 2 Vertical Kosongkan cmdJalankan &Jalankan

Label4

TextBox

Command1

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

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

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

ADO DAN PEMBUATAN MODUL SISTEM AKADEMIK


22

Modul

Langkah Pasti Menuju Sukses

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 niversal Data Access (UDA) adalah strategi Microsoft untuk menyediakan akses ke semua tipe informasi dari berbagai sumber data baik relational maupun non relational sepert mainframe ISAM/VSAM, database hierarkial, e-mail, teks dan data grafis. OLE Database (OLE DB) adalah bagian dari Universal Data Access yang memungkinkan kita membaca dan memproses data dari manapun tanpa terlebih dahulu mengkonversi dan mengimpor ke dalam bentuk database tradisional. Menggunakan provider OLE DB, anda dapat memproses data dalam pesan e-mail, halaman HTML, spreadsheet dan dokument teks. Juga Microsoft Jet, SQL Server, FoxPro dan database Oracle. Active X Data Object (ADO) adalah antarmuka level tinggi ke OLE DB atau dengan kata lain kita dapat berkomunikasi dengan OLE DB menggunakan ADO. Dengan menggunakan ADO yang dihubungkan dengan OLE DB kita dapat Berbicara dengan data Access, Oracle, Server SQL dan sumber data linnya menggunakan model Objek ADO.

"

OBJEK ADO Ado memiliki tujuh Objek sebagai berikut : OBJEK Connection KETERANGAN Membuat koneksi antara aplikasi Anda dengan sumber data eksternal sepert MS Access, MS SQL Server, Oracle dan lain-lain. Digunakan untuk mengeksekusi perintah termasuk menggunakan parameter yang spesifik untuk mengakses record dari sumber data. Umumnya nilai kembalian dari akses record adalah objek recordset. Digunakan untuk mengakses record yang merupakan kembalian dari query SQL. Objek recordset dipakai untuk 23

Command

Recordset

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Field Parameter Error Property

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

Masing-masing objek ADO memiliki serangkaian properti dan metode yang mengizinkan Anda untuk memanipulasi objek dan isinya. Ketika anda bekerja dengan pemrograman ADO, umumnya digunakan tiga objek ADO yaitu Connection, Command dan Recordset. OBJEK CONNECTION Dibawah ini daftar metode yang ada pada objek Connection METODA Begin Trans Cancel Close Execute Open OpenSchem RollBackTrans KETERANGAN Untuk memulai transaksi baru. Untuk membatalkan operasi asynchronous Untuk menutup objek atau koneksi Untuk mengeksekusi pernyataan SQL atau Query. Untuk membuka koneksi Nilai kembaliannya adalah informasi skema database Untuk membatalkan perubahan yang terjadi saat transaksi atau mengakhiri transaksi yang gagal.

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

PROPERTI OBJECT CONNECTION Berikut Table Properti Objek Connection 24 Langkah Pasti Menuju Sukses

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

Pemrograman Database Dengan Visual Basic 6.0 KETERANGAN Mengindikasikan karakteristik suatu objek. Nilai kembalian atau pengaturan waktu yang digunkan untuk memperoses sebuah perintah sebelum waktunya habis / timeout. Nilai kembalian atau pengaturan untuk membuat suatu connection. Isinya DSN, UserName dan Password. Nilai kembalian atau pengaturan waktu yang disediakan untuk memproses sebuah connection sebelum waktunya habis /.timeout. Nilai kembalian atau pengaturan dimana kursor berada. Nilai kembalian atau pengaturan default database untuk objek connection. Nilai kembaliannya adalah koleksi dari objek error yang dimunculkan oleh provider data. Nilai kembalian atau pengaturan dari level isolasi untuk transaksi Nilai kembaliannya adalah izin akses yang diberikan untuk memodifikasi data. Nilai kembaliannya adalah properti dinamik untuk objek. Nilai kembaliannya adalah nama data provider. Nilai kembaliannya adalah status koneksi apakah dibuka, ditutup atau sibuk. Nilai kembaliannya adalah nomor versi ADO.

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

PROPERTI OBJEK COMMAND Langkah Pasti Menuju Sukses 25

Pemrograman Database Dengan Visual Basic 6.0 Berikut adalah table properti objek Command PROPERTI ActiveConnection CommandText CommandTimeOut CommandType Name Parameters Prepared Properties State KETERANGAN

AMIK TRIGUNA DHARMA

Nilai kembalian atau pengaturan untuk mengaktifkan objek connection. Nilai kembalian atau pengaturan untuk command teks. Nilai kembalian atau pengaturan sampai waktunya habis. Nilai kembalian atau pengaturan tipe command. Nlai kembaliannya adalah nama objek. Nilai kembaliannya adalah parameter command. Nilai kembalian atau pengaturan apakah akan mengkompilasi command sebelum mengeksekusi. Nilai kembaliannya adalah properti yang dinamik dari objek. Nilai kembaliannya adalah status koneksi apakah dibuka, ditutup atau sibuk.

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

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

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

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

Langkah Pasti Menuju Sukses

Pemrograman Database Dengan Visual Basic 6.0 Data Member Data Source EditMode EOF Fields Filter LockType MaxRecord PageCount PageSize Properties RecordCount Sort Source State Status

AMIK TRIGUNA DHARMA

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

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

28

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

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

Keterangan : Simpan file Project (Sistem Akademik.VBP) pada folder Sistem Akademik. Simpan semua file project lainnya (*.frm, *.frx, *.bas) pada folder Code. Simpan Database yang telah anda buat pada modul kedua di folder Database Simpan Semua file report (*.rpt) yang akan anda buat nantinya pada folder Report. Siapkan folder Package untuk file instalasi (Setup Program). Prosedur Kerja Pembuatan Modul SistemAkademik : 1. Bukalah sebuah project baru (Standard Exe) pada Visual Basic 6.0. 2. Ubah properti Name pada Project1 menjadi Sistem_Akademik. Langkah Pasti Menuju Sukses 29

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

3. Remove form1 dengan cara meng-klik kanan form default (form1) pada project explorer window dan pilih Remove Form1.frm. 4. Dari Menu Project pilih Add Module, dan ubah properti Name pada Module1 menjadi SistemAkademik. 5. Anda perlu mengatur referensi project ke ADO. Caranya klik menu Pjoect References Dari daftar referensi yang muncul pilih Microsoft ActiveX Data Object 2.5 Library. Klik OK. 6. Ketikkan listing program dibawah ini. Listing Program Modul Sistem Akademik :
'Constanta Untuk daftar Table di Database Public Const Dosen = 1 Public Const Jurusan = 2 Public Const Mahasiswa = 3 Public Const MataKuliah = 4 Public Const Ujian = 5 Public Const Nilai = 6 Public Const ListNilai = 7 'Variable untuk pengaksesan ke database Public cn As ADODB.Connection 'cn untuk connnection Public rsDosen As ADODB.Recordset 'rs untuk recordset Public rsJurusan As ADODB.Recordset Public rsMahasiswa As ADODB.Recordset Public rsMataKuliah As ADODB.Recordset Public rsUjian As ADODB.Recordset Public rsNilai As ADODB.Recordset Public rsListNilai As ADODB.Recordset '************************************************************ ' Sub Rutin Untuk Membuka Konneksi ke Database * '************************************************************ Public Sub OpenDBConnection() Dim Str_Connect As String On Error GoTo ErrorMsg 'String koneksi untuk membuka koneksi Str_Connect = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Persist Security Info=False;" & _ "Data Source = " & App.Path & "\Database\dbAkademik.mdb" 'Buat Koneksi baru Set cn = New ADODB.Connection cn.Open Str_Connect Exit Sub ErrorMsg: MsgBox Err.Description

30

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA


End Sub

Pemrograman Database Dengan Visual Basic 6.0

'************************************************************ ' 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


End Sub

AMIK TRIGUNA DHARMA

'************************************************************ ' Sub Rutin Untuk Menutup Konneksi ke Table * '************************************************************ Public Sub CloseTblConnection(ID_Table As Byte) On Error GoTo ErrorMsg Select Case ID_Table Case Dosen: 'Tutup recordset rsDosen.Close Set rsDosen = Nothing Case Jurusan: rsJurusan.Close Set rsJurusan = Nothing Case Mahasiswa: rsMahasiswa.Close Set rsMahasiswa = Nothing Case MataKuliah: rsMataKuliah.Close Set rsMataKuliah = Nothing Case Ujian: rsUjian.Close Set rsUjian = Nothing Case Nilai: rsNilai.Close Set rsNilai = Nothing Case ListNilai: rsListNilai.Close Set rsListNilai = Nothing End Select Exit Sub ErrorMsg: MsgBox Err.Description End Sub '************************************************************ ' Sub Rutin Untuk Menutup Konneksi ke Database * '************************************************************ Public Sub CloseDBConnection() Set cn = Nothing End Sub '************************************************************ ' Sub Rutin Main, Bagian Program Utama * '************************************************************ Public Sub Main() Load frmMain frmMain.Show End Sub

32

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

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

Langkah Pasti Menuju Sukses

33

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

INTERFACING APLIKASI SISTEM AKADEMIK

Modul

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

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

34

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

FLO) 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 LA'OUT FORM DATA DOSEN Label3 Crystal Reports TextBox1 Label2 Frame1

Label1

Command Buttons

TextBox2

Command Button1

Label4 Command Button2 Command Button4 Command Button3

DAFTAR PROPERTI OBJECT P"1" For2 D"#" Dose!


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

Langkah Pasti Menuju Sukses

37

Pemrograman Database Dengan Visual Basic 6.0


Command Button1 Command Button2 Command Button3 Command Button4 Command Button5 Command Button6 Command Button7 Command Button8 Command (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) CmdAdd &Add CmdEdit &Edit CmdUpdate &Update CmdCancel &Cancel CmdDelete &Delete CmdSearch &Search CmdClose &Close CmdReport &Report CmdFirst Crystal Report1 Form1 Button9 Command Button10 Command Button11 Command Button12 Style (Name) Style (Name) Style (Name) Style (Name) BorderStyle Caption

AMIK TRIGUNA DHARMA


1 Graphical CmdPrevious 1 - Graphical CmdNext 1 - Graphical CmdLast 1 Graphical FrmDosen 3 Fixed Dialog Form Data Dosen 2 Center Screen CrptReport 2-crptMaximize

StartUposition (Name) WindowState

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

38

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Label3 Label2 TextBox1 Frame1 Label1 TextBox2

Command Buttons

Command Button1

Label4 Command Button2 TextBox3 Command Button4 Command Button3

DAFTAR PROPERTI OBJECT P"1" For2 D"#" Jurus"!


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

Langkah Pasti Menuju Sukses

39

Pemrograman Database Dengan Visual Basic 6.0


Text (Name) TextBox2 Text (Name) TextBox3 Text Command Button1 Command Button2 Command Button3 Command Button4 Command Button5 Command Button6 Command (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) (Kosongkan) CmdAdd &Add CmdEdit &Edit CmdUpdate &Update CmdCancel &Cancel CmdDelete &Delete CmdSearch &Search CmdClose Form1 Caption Button9 Command Button10 Command Button11 Command Button12 Style (Name) Style (Name) Style (Name) Style (Name) BorderStyle (Kosongkan) txtFields Button8 Command Caption (Name) (Kosongkan) txtFields Button7 Command Caption (Name)

AMIK TRIGUNA DHARMA


&Close CmdReport &Report CmdFirst 1 - Graphical CmdPrevious 1 - Graphical CmdNext 1 - Graphical CmdLast 1 Graphical FrmJurusan 3 Fixed Dialog Form Data Jurusan 2 Center Screen

StartUposition

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

40

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Label3 Label2

Crystal Report Frame1

TextBox1

Label1

Command Buttons

TextBox2

Command Button1 Label4

Label5 Command Button2 TextBox3 Command Button4 Command Button3

DAFTAR PROPERTI OBJECT P"1" For2 D"#" M"#" Ku* "$


OBJECT PROPERTI Alignment Label1 Caption MataKuliah BackStyle Alignment Label2 Caption BackStyle 0 Transparent 1 Right Justified Kode MataKuliah 0 Transparent Label5 Label4 PENGATURAN 2 Center Form Data Label3 Alignment Caption BackStyle Alignment Caption BackStyle Alignment BorderStyle BackColor 1 Right Justified Nama MataKuliah 0 Transparent 1 Right Justified Jumlah SKS 0 - Transparant 2 Center 1 Fixed Single &H00FFFFFF&

Langkah Pasti Menuju Sukses

41

Pemrograman Database Dengan Visual Basic 6.0


Caption (Name) Frame1 TextBox1 Text (Name) TextBox2 Text (Name) TextBox3 Text Command Button1 Command Button2 Command Button3 Command Button4 Command Button5 Command Button6 Command (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) (Kosongkan) CmdAdd &Add CmdEdit &Edit CmdUpdate &Update CmdCancel &Cancel CmdDelete &Delete CmdSearch &Search CmdClose Crystal Report1 Form1 Caption Button11 Command Button12 Style (Name) Style (Name) BorderStyle (Kosongkan) txtFields Button10 Command Style (Name) (Kosongkan) txtFields Button9 Command Style (Name) Caption (Name) (Kosongkan) lblStatus Data MataKuliah txtFields Button7 Command Button8 Command Caption (Name) Caption (Name)

AMIK TRIGUNA DHARMA


&Close CmdReport &Report CmdFirst 1 - Graphical CmdPrevious 1 - Graphical CmdNext 1 Graphical CmdLast 1 Graphical FrmMataKuliah 3 Fixed Dialog Form Data MataKuliah StartUposition (Name) WindowState 2 Center Screen CrptReport 2-crptMaximize

PERANCANGAN FORM DATA MAHASIS)A 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 Label2

Crystal Report Frame1

TextBox1

Label1

Command Buttons

TextBox2

Command Button1 Label4

Label5 Command Button2 ComboBox Command Button4 Command Button3

DAFTAR PROPERTI OBJECT P"1" For2 D"#" M"$"s s3"


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

Langkah Pasti Menuju Sukses

43

Pemrograman Database Dengan Visual Basic 6.0


BackColor Caption (Name) Frame1 TextBox1 Text (Name) TextBox2 Text (Name) TextBox3 Text (Name) Combo1 Style Combol Command Button1 Command Button2 Command Button3 Command Button4 Command Button5 Command Button6 (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption CmdAdd &Add CmdEdit &Edit CmdUpdate &Update CmdCancel &Cancel CmdDelete &Delete CmdSearch &Search Crystal Report1 Form1 Caption (Name) BorderStyle (Kosongkan) cboJurusan 0 Dropdown Button11 Command Button12 Style (Name) Style (Kosongkan) TxtFields Button10 Command Style (Name) (Kosongkan) TxtFields Button9 Command Style (Name) Caption (Name) &H00FFFFFF& (Kosongkan) LblStatus Data Mahasiswa TxtFields Command Button7 Command Button8 Command (Name) Caption (Name) Caption (Name)

AMIK TRIGUNA DHARMA


CmdClose &Close CmdReport &Report CmdFirst 1 - Graphical CmdPrevious 1 - Graphical CmdNext 1 Graphical CmdLast 1 Graphical FrmMataKuliah 3 Fixed Dialog Form Data Mahasiswa StartUposition (Name) WindowState 2 Center Screen CrptReport 2-crptMaximize

PERANCANGAN FORM DATA N *" 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 DAFTAR PROPERTI OBJECT P"1" For2 D"#" N *"
OBJECT PROPERTI Alignment Label1 Caption Mahasiswa BackStyle Alignment Label2 Caption BackStyle Alignment Label3 Caption BackStyle Alignment Label4 Caption BackStyle Alignment Label5 Caption (Name) Alignment Label5 Caption (Name) Frame1 Frame2 Frame3 Frame4 Combo Box1 Combo Box2 Caption Caption Caption Caption (Name) Style (Name) Style 0 Transparent PENGATURAN 2 Center Form Nilai

Pemrograman Database Dengan Visual Basic 6.0

Combo Box3 Combo Box4 Combo Box5 Option Button1 Option Button2 Command Button1 Command Button2 Command Button3 Command Button4 Command Button5 Command Button6 Command Button7 Command Button8 Command Button9

(Name) Style (Name) Style (Name) Style (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption

CboTahunAjaran 2 Dropdown CboNIM 2 Dropdown CboNama 2 - Dropdown Option1 Ascend Option2 Descend CmdAdd &Add CmdEdit &Edit CmdUpdate &Update CmdCancel &Cancel CmdDelete &Delete CmdSearch &Search CmdClose &Close CmdReport &Report CmdTitle NIM

1 Right Justified Kode MataKuliah 0 Transparent 1 Right Justified Kode Dosen : 0 Transparent 1 Right Justified Tahun Ajaran : 0 - Transparant 1 Center (Kosongkan) LblMataKuliah 2 Center (Kosongkan) LblDosen Data Mahasiswa Nama MataKuliah Nama Dosen Pengurutan CboMataKuliah 2 Dropdown CboDosen 2 Dropdown

Langkah Pasti Menuju Sukses

47

Pemrograman Database Dengan Visual Basic 6.0


Command Button10 Command Button11 Command Button12 Command Button13 Command Button14 Command Button15 Command Button16 (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption (Name) Caption CmdTitle Text Box1 Nama Mahasiswa CmdTitle Absensi 10 % CmdTitle Tugas 15 % CmdTitle Mid 30 % CmdTitle UAS 45 % CmdTitle Angka CmdTitle Huruf MsHFlex Grid1 Crystal Report1 Form1 BackColor (Name) BorderStyle Caption StartUpositi on (Name) (Name)

AMIK TRIGUNA DHARMA


TxtList &H00FFC0FF& FrmMataNilai 3 Fixed Dialog Form Nilai 2 Center Screen CrptReport 2-crptMaximize MshReport &H00C0E0FF& &H00FFC0C0&

WindowStat e (Name) BackColor BackColorB kg

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

PROPERTI PADA MENU


CAPTION &File &Tutup Aplikasi &Data &Jurusan Mata&Kuliah &Dosen &Mahasiswa &Nilai Mahasiswa NAME mnuFile mnuTutupAplikasi mnuData mnuJurusan mnuMataKuliah Separator1 mnuDosen mnuMahasiswa Separator2 mnuNilaiMahasiswa

PROPERTI PADA TOOL BAR


INDEX 1 2 3 4 5 6 7 8 9 10 CAPTION Jurusan MataKuliah Dosen Mahasiswa Nilai Keluar STYLE 4 tbrPlaceholder 0 tbrDefault 0 tbrDefault 3 tbrSeparator 0 tbrDefault 0 tbrDefault 0 tbrDefault 3 tbrSeparator 0 tbrDefault 3 tbrSeparator

48

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

Tool Bar

Image List

Status Bar
TIPS D"! Tr %4 nda dapat menambahkan bakcground untuk memperindah tampilan form Main. Sebaiknya tipe file image yang dipakai berekstensi *.wmf (windows metafile) karena jika window diresize maka image background akan stretching mengikuti lebar window sehingga tampilan tampak professional. Jika anda tidak memiliki aplikasi konversi file image ke metafile maka anda dapat menggunakan aplikasi Microsoft Word. Yaitu dengan membuka lembar kerja baru lalu klik menu Insert Picture From File, masukkan file image dengan ekstensi apa saja (bmp, jpg, jpeg, gif) ke document word lalu atur layout picture menjadi behind text. Selanjutnya copy file image tersebut dan paste-kan pada MDI form. Secara otomatis file image tersebut akan berextensi wmf.

Langkah Pasti Menuju Sukses

49

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

PERANCANGAN REPORT DENGAN CRYSTAL REPORT

Modul

OBJEKTIF Mahasiswa Dapat merancang suatu sistem report yang terintegrasi dengan menggunakan aplikasi third party Seagate Crystal Report. Per"!%"!g"! Re5or# 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 MAHASIS)A

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

Des" ! Re5or# L"5or"! D"#" N *"

Langkah Pasti Menuju Sukses

53

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Ru!! !g To#"* F e*1 P"1" L"5or"! D"#" N *" 54 Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA


RUNNING TOTAL NAME FIELD TO SUMMARIZE

Pemrograman Database Dengan Visual Basic 6.0


TYPE OF SUMMARY ( EVALUATE ) USE A FORMULA RESET

Count_A Count_B Count_C Count_D Count_E

Nilai.N_AkhirHuruf Nilai.N_AkhirHuruf Nilai.N_AkhirHuruf Nilai.N_AkhirHuruf Nilai.N_AkhirHuruf

Count Count Count Count Count

{Nilai.N_AkhirHuruf} = "A" {Nilai.N_AkhirHuruf} = "B" {Nilai.N_AkhirHuruf} = "C" {Nilai.N_AkhirHuruf} = "D" {Nilai.N_AkhirHuruf} = "E"

Never Never Never Never Never

For2u*" F e*1 P"1" L"5or"! D"#" N *" @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

CODEING APLIKASI SISTEM AKADEMIK


OBJEKTIF Tahap penulisan source code pada tiap objek. RunTime Program. Proses debugging dan testing program.

Modul

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

P
Dim Dim Dim Dim

KODE PROGRAM PADA FORM DOSEN


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

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

56

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA


End Sub

Pemrograman Database Dengan Visual Basic 6.0

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


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

AMIK TRIGUNA DHARMA

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


If CheckField = False Then Exit Sub End If

AMIK TRIGUNA DHARMA

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


ErrorMsg: MsgBox Err.Description End Sub Private Sub cmdNext_Click() On Error GoTo ErrorMsg

AMIK TRIGUNA DHARMA

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


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

Pemrograman Database Dengan Visual Basic 6.0

KODE PROGRAM PADA FORM JURUSAN


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

Private Sub FieldClear() Dim ObjTxt As TextBox For Each ObjTxt In Me.txtFields ObjTxt.Text = "" Next End Sub Private Sub FieldFill() On Error GoTo ErrorMsg With rsJurusan txtFields(0).Text = .Fields(0).Value txtFields(1).Text = .Fields(1).Value txtFields(2).Text = .Fields(2).Value End With txtFields(0).SetFocus Exit Sub ErrorMsg: MsgBox Err.Description End Sub Function CheckField() As Boolean If txtFields(0).Text = vbNullString Then MsgBox "Field Kode Jurusan tidak boleh kosong !", vbInformation, "Kesalahan Input" txtFields(0).SetFocus CheckField = False

Langkah Pasti Menuju Sukses

63

Pemrograman Database Dengan Visual Basic 6.0


Exit Function End If

AMIK TRIGUNA DHARMA

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


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

Pemrograman Database Dengan Visual Basic 6.0

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


Then

Pemrograman Database Dengan Visual Basic 6.0


If UCase(.Fields(0).Value) = UCase(txtFields(0).Text)

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


Private Sub cmdNext_Click() On Error GoTo ErrorMsg

Pemrograman Database Dengan Visual Basic 6.0

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


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

AMIK TRIGUNA DHARMA

KODE PROGRAM PADA FORM MAHASIS)A


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

Private Sub FieldClear() Dim ObjTxt As TextBox For Each ObjTxt In Me.txtFields ObjTxt.Text = "" Next End Sub Private Sub FieldFill() On Error GoTo ErrorMsg With rsMahasiswa txtFields(0).Text = .Fields(0).Value txtFields(1).Text = .Fields(1).Value cboJurusan.Text = .Fields(2).Value End With txtFields(0).SetFocus Exit Sub ErrorMsg: MsgBox Err.Description End Sub Function CheckField() As Boolean If txtFields(0).Text = vbNullString Then MsgBox "Field Nim Mahasiswa tidak boleh kosong !", vbInformation, "Kesalahan Input" txtFields(0).SetFocus CheckField = False Exit Function End If If txtFields(1).Text = vbNullString Then

70

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

MsgBox "Field Nama Mahasiswa tidak boleh kosong !", vbInformation, "Kesalahan Input" txtFields(1).SetFocus CheckField = False Exit Function End If If cboJurusan.Text = vbNullString Then MsgBox "Data Kode Jurusan belum ada .. !", vbInformation, "Kesalahan Input" CheckField = False Exit Function End If CheckField = True End Function Private Sub cmdReport_Click() On Error GoTo Error crptReport.ReportFileName = App.Path & "\Report\LAPORAN DATA MAHASISWA.rpt" crptReport.DiscardSavedData = True crptReport.Action = 1 Exit Sub Error: MsgBox Err.Description End Sub Private Sub cmdSearch_Click() On Error GoTo ErrorMsg Dim Kode As String Kode = InputBox("Masukkan Nim Mahasiswa", "Cari Record Mahasiswa") With rsMahasiswa If .RecordCount <> 0 Then .MoveFirst Do If UCase(.Fields(0).Value) = UCase(Kode) Then FieldFill Exit Sub End If .MoveNext Loop Until .EOF End If End With MsgBox "Nim Mahasiswa yang anda input tidak ada", vbInformation, "Konfirmasi" Exit Sub ErrorMsg: MsgBox Err.Description End Sub

Langkah Pasti Menuju Sukses

71

Pemrograman Database Dengan Visual Basic 6.0


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

AMIK TRIGUNA DHARMA

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


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

AMIK TRIGUNA DHARMA

With rsMahasiswa 'Jika operasi Add Record If AddNewFlag Then 'check apakah terjadi redudansi pada key primer If .RecordCount <> 0 Then .MoveFirst Do If UCase(.Fields(0).Value) = UCase(txtFields(0).Text) Then MsgBox "NIM Mahasiswa telah ada pada Database..", vbInformation, "Kesalahan Input" txtFields(0).Text = vbNullString txtFields(0).SetFocus Exit Sub End If .MoveNext Loop Until .EOF End If 'Jika Tidak Lakukan Penambahan Record Baru .AddNew .Fields(0).Value = txtFields(0).Text .Fields(1).Value = txtFields(1).Text .Fields(2).Value = cboJurusan.Text .UpdateBatch AddNewFlag = False 'Jika Operasi Edit Record ElseIf EditFlag Then If txtFields(0).Text <> KodeMahasiswa Then 'check apakah terjadi redudansi pada key primer With rsMahasiswa If .RecordCount <> 0 Then

74

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

.MoveFirst Do If UCase(.Fields(0).Value) <> UCase(KodeMahasiswa) Then If UCase(.Fields(0).Value) = UCase(txtFields(0).Text) Then MsgBox "NIM Mahasiswa telah ada pada Database..", vbInformation, "Kesalahan Input" txtFields(0).Text = vbNullString txtFields(0).SetFocus Exit Sub End If End If .MoveNext Loop Until .EOF End If End With End If .MoveFirst 'Jika tidak ubah record Do If .Fields(0).Value = KodeMahasiswa Then .Fields(0).Value = txtFields(0) .Fields(1).Value = txtFields(1) .Fields(2).Value = cboJurusan.Text .UpdateBatch Exit Do End If .MoveNext Loop Until .EOF EditFlag = False End If End With Save = True SetButtons (True) lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount) Exit Sub ErrorMsg: MsgBox Err.Description End Sub Private Sub cmdClose_Click() Unload Me End Sub Private Sub cmdFirst_Click() On Error GoTo ErrorMsg With rsMahasiswa If .RecordCount <> 0 Then .MoveFirst

Langkah Pasti Menuju Sukses

75

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

FieldFill lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount) End If End With Exit Sub ErrorMsg: MsgBox Err.Description End Sub Private Sub cmdLast_Click() On Error GoTo ErrorMsg With rsMahasiswa If .RecordCount <> 0 Then .MoveLast FieldFill lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount) End If End With Exit Sub ErrorMsg: MsgBox Err.Description End Sub Private Sub cmdNext_Click() On Error GoTo ErrorMsg With rsMahasiswa If .RecordCount <> 0 Then .MoveNext If .EOF Then .MovePrevious End If Else Exit Sub End If End With FieldFill lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount) Exit Sub ErrorMsg: MsgBox Err.Description End Sub Private Sub cmdPrevious_Click() On Error GoTo ErrorMsg

76

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

With rsMahasiswa If .RecordCount <> 0 Then .MovePrevious If .BOF Then .MoveNext End If Else Exit Sub End If End With FieldFill lblStatus.Caption = "Record Ke : " & CStr(rsMahasiswa.AbsolutePosition) & "/" & CStr(rsMahasiswa.RecordCount) Exit Sub ErrorMsg: MsgBox Err.Description End Sub Private Sub SetButtons(bVal As Boolean) Dim ObjText As TextBox For Each ObjText In Me.txtFields ObjText.Locked = bVal Next cmdAdd.Visible = bVal cmdEdit.Visible = bVal cmdUpdate.Visible = Not bVal cmdCancel.Visible = Not bVal cmdDelete.Visible = bVal cmdClose.Visible = bVal cmdSearch.Visible = bVal cmdNext.Enabled = bVal cmdFirst.Enabled = bVal cmdLast.Enabled = bVal cmdPrevious.Enabled = bVal End Sub

KODE PROGRAM PADA FORM MATAKULIAH


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

Private Sub FieldClear() Dim ObjTxt As TextBox For Each ObjTxt In Me.txtFields ObjTxt.Text = "" Next

Langkah Pasti Menuju Sukses

77

Pemrograman Database Dengan Visual Basic 6.0


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

AMIK TRIGUNA DHARMA

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


Error: MsgBox Err.Description End Sub Private Sub cmdSearch_Click() On Error GoTo ErrorMsg Dim Kode As String

Pemrograman Database Dengan Visual Basic 6.0

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


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

AMIK TRIGUNA DHARMA

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


Private Sub cmdPrevious_Click() On Error GoTo ErrorMsg

AMIK TRIGUNA DHARMA

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 N *" M"$"s s3" 84 Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA


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

Pemrograman Database Dengan Visual Basic 6.0

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


Private Sub cboNim_LostFocus() Dim Nama As String

Pemrograman Database Dengan Visual Basic 6.0

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


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

AMIK TRIGUNA DHARMA

88

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA


Dim StrQuery As String

Pemrograman Database Dengan Visual Basic 6.0

crptReport.ReportFileName = App.Path & "\Report\LAPORAN NILAI MAHASISWA.rpt" StrQuery = "{Ujian.Kode_Ujian}=" & KodeUjian crptReport.SelectionFormula = StrQuery crptReport.DiscardSavedData = True crptReport.Action = 1 Exit Sub Error: MsgBox Err.Description End Sub Private Sub cmdSearch_Click() Dim NIM As String Dim FindNim As Boolean Dim i As Byte NIM = InputBox("Masukkan Nim record yang akan dicari", "Cari Record") With mshReport .Col = 0 FindNim = False For i = 0 To .Rows - 1 .Row = i If .Text = NIM Then FindNim = True SearchRow = i + 1 Exit For End If Next i End With If Not FindNim Then MsgBox "Nim " & NIM & " Tidak ada dalam list ", vbInformation, "Kesalahan" Exit Sub Else SelectRow SearchRow - 1, Light End If End Sub Private Sub cmdSearch_LostFocus() SelectRow SearchRow - 1, Normal End Sub Private Sub cmdTitle_Click(Index As Integer) strConnection = _ "SELECT Nilai.Nim, Mahasiswa.Nama, Nilai.N_absen, Nilai.N_Tugas, Nilai.N_Mid, " & _ "Nilai.N_Semester, Nilai.N_AkhirAngka, Nilai.N_AkhirHuruf, Nilai.Kode_Ujian " & _ "FROM Mahasiswa INNER JOIN Nilai ON Mahasiswa.Nim = Nilai.Nim " & _ "WHERE (((Nilai.Kode_Ujian)=" & KodeUjian & ")) "

Langkah Pasti Menuju Sukses

89

Pemrograman Database Dengan Visual Basic 6.0


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

AMIK TRIGUNA DHARMA

= True Then strConnection & "ORDER BY Nilai.Nim" strConnection & "ORDER BY Nilai.Nim DESC"

= True Then strConnection & "ORDER BY Mahasiswa.Nama" strConnection & "ORDER BY Mahasiswa.Nama

= True Then strConnection & "ORDER BY strConnection & "ORDER BY

Nilai.N_absen" Nilai.N_absen

= True Then strConnection & "ORDER BY Nilai.N_Tugas" strConnection & "ORDER BY Nilai.N_Tugas

= True Then strConnection & "ORDER BY N_Mid" strConnection & "ORDER BY Nilai.N_Mid DESC"

= True Then strConnection & "ORDER BY Nilai.N_Semester" strConnection & "ORDER BY Nilai.N_Semester

= True Then strConnection & "ORDER BY

strConnection & "ORDER BY Nilai.N_AkhirAngka

= True Then strConnection & "ORDER BY

90

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA


DESC" End If End Select View_List End Sub

Pemrograman Database Dengan Visual Basic 6.0

Else strConnection = strConnection & "ORDER BY Nilai.N_AkhirHuruf

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


End Sub Private Sub SetGridTitle() Dim i As Byte

AMIK TRIGUNA DHARMA

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


txtList.Height Case 6 To 7 Hitung_Nilai End Select End With End Sub

Pemrograman Database Dengan Visual Basic 6.0

txtList.SetFocus txtList.Move .CellLeft + .Left, .CellTop + .Top, .CellWidth,

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


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

AMIK TRIGUNA DHARMA

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


End Sub Private Sub cmdEdit_Click() Dim i As Byte Dim FindNim As Boolean Dim NIM As String

Pemrograman Database Dengan Visual Basic 6.0

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


.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

AMIK TRIGUNA DHARMA

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


Dim UpdateRecord As Boolean

Pemrograman Database Dengan Visual Basic 6.0

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


'Jika Operasi Edit Record ElseIf EditFlag Then With rsNilai 'cari NIM mshReport.Col = 0 mshReport.Row = EditRow - 1 NIM = mshReport.Text

AMIK TRIGUNA DHARMA

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


cmdReport.Enabled = bVal End Sub

Pemrograman Database Dengan Visual Basic 6.0

KODE PROGRAM PADA FORM MAIN


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

Langkah Pasti Menuju Sukses

99

Pemrograman Database Dengan Visual Basic 6.0

AMIK TRIGUNA DHARMA

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Caption Case "Jurusan" mnuJurusan_Click Case "MataKuliah" mnuMatakuliah_Click Case "Dosen" mnuDosen_Click Case "Mahasiswa" mnuMahasiswa_Click Case "Nilai" mnuNilaiMahasiswa_Click Case "Keluar" Unload Me End Select End Sub

100

Langkah Pasti Menuju Sukses

AMIK TRIGUNA DHARMA

Pemrograman Database Dengan Visual Basic 6.0

PEMBUATAN PACKAGE APLIKASI

Modul

OBJEKTIF Mahasiswa dapat membuat sebuah package dari aplikasi yang telah dirancang sebelumnya serta mengetahui aspek-aspek apa saja yang perlu diperhatikan selema proses pembuatan tersebut. PENDAHULUAN etelah proses perancangan dan Penulisan kode program selesai tahap akhir adalah membuat file executable dari program. Tahap ini sekaligus berfungsi untuk memeriksa kode program apakah ada konstanta, variable atau object yang tidak sesuai dengan defenisinnya atau belum dideklarasikan.

LANGKAH-*"!g4"$ 5EMBUATAN 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