Modul Prak. Bahasa Pemrograman II, - . Silahkan Download :)
Modul Prak. Bahasa Pemrograman II, - . Silahkan Download :)
Bahasa Pemrograman II
Prodi. S-1 Sistem Informasi
10-Maret-2014
Disusun Oleh: Gunawan, Rin Rin Meilani Salim, dan Hanes
KAMPUS A, B, C
JL. THAMRIN NO. 124, 140, 112 MEDAN 20212
TELP. (061) 4573767 4533705 4533708
FAX. (061) 4567789
DAFTAR ISI
S I S T E M I N F O R M A S I - S T M I K M I K R O S K I L
1. BEKERJA DENGAN FILE ................................................................................................ 1
2. MENU, TOOLBAR, DAN STATUSBAR ............................................................................ 7
3. ADO .NET ................................................................................................................... 12
4. PEMROGRAMAN DATABASE DENGAN ADO .NET (MODEL CONNECTED) ................ 19
5. PEMROGRAMAN DATABASE DENGAN ADO .NET (MODEL DISCONNECTED) ........... 27
6. PEMBUATAN LAPORAN DATABASE ........................................................................... 37
7. LINQ TO SQL .............................................................................................................. 58
MODUL 1
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
BEKERJA DENGAN FILE
Setelah mempelajari dan mempraktikkan Modul 1, mahasiswa diharapkan dapat:
Bekerja dengan file menggunakan objek My
Bekerja dengan file menggunakan class FileStream
2 | M O D U L 1 : B E K E R J A D E N G A N F I L E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
I
anyak program yang menyimpan informasinya ke file. Untuk
membaca dan menulis file di Visual Basic .NET dapat dilakukan
dengan menggunakan objek My dan menggunakan class FileStream.
Untuk melakukan manajemen file dan folder (direktori) dapat
menggunakan class FileInfo.
Objek My
bjek My memiliki:
Metoda untuk membaca dengan cepat serta menulis teks dan file biner.
Metoda dan properti untuk menjelajahi sistem file serta mengatur file
dan folder.
Tabel 1.1 berikut ini merupakan beberapa metoda yang digunakan untuk
melakukan akses file teks dan binary dengan objek My.
Tabel 1.1| Metoda Akses File Dengan Objek My
Nama Metoda Fungsi
WriteAllText() Menulis data ke dalam file teks
ReadAllText() Mengambil isi dari file teks menjadi string
WriteAllBytes() Menulis data ke dalam file binary
ReadAllBytes() Mengambil isi dari file binary menjadi array byte
Tujuan pendekatan My adalah untuk menyederhanakan proses. Objek My
cocok digunakan untuk pengaturan file, tetapi kurang berguna untuk
membaca dan menulis file, karena pembacaan file dengan metoda
ReadAllText() dari objek My selalu mengambil semua isi file, kemudian
ditempatkan ke dalam string. Untuk melakukan pemisahan string tersebut
bukanlah hal yang baik dan mudah. Penulisan ke file dengan metoda
WriteAllText() akan mengurangi performansi karena file dibuka dan ditutup
secara berulang-ulang.
Metoda ReadAllText() dan WriteAllText() hanya bekerja dengan file teks,
sedangkan untuk file binary tidak dapat dilakukan. Untuk bekerja dengan
file binary dapat menggunakan metoda WriteAllBytes() dan ReadAlBytes(),
lalu melakukan konversi dari array byte ke tipe data yang diinginkan.
Beberapa metoda yang sering digunakan untuk pengaturan file dan folder
dengan menggunakan objek My dapat dilihat pada tabel 1.2 berikut ini.
Tabel 1.2| Metoda Pengaturan File dan Folder Dengan Objek My
Metoda Fungsi
CopyDirectory (lokasi dan nama folder asal,
lokasi folder tujuan)
Men-copy isi folder asal ke folder tujuan
CopyFile (lokasi dan nama file asal, lokasi dan
nama file tujuan)
Men-copy suatu file asal ke file tujuan
CreateDirectory (lokasi dan nama folder) Membuat folder pada lokasi tertentu
DeleteDirectory (lokasi dan nama folder,
hapus semua isi folder atau hapus folder jika
isi folder kosong)
Menghapus folder
DeleteFile (lokasi dan nama file) Menghapus file
DirectoryExists (lokasi dan nama folder) Memeriksa apakah suatu folder ada atau tidak
FileExists (lokasi dan nama file) Memeriksa apakah suatu file ada atau tidak
B
O
3 | M O D U L 1 : B E K E R J A D E N G A N F I L E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
I
RenameDirectory (lokasi dan nama folder
yang akan diubah, nama folder baru)
Mengubah nama direktori
RenameFile (lokasi dan nama file yang akan
diubah, nama file baru)
Mengubah nama file
Class FileStream
lass FileStream (namespace System.IO) merupakan pintu gerbang
untuk akses file. Instance dari class ini mewakili sebuah file di
komputer. Class ini memiliki lebih banyak fitur dalam mengakses file.
Contoh sederhana untuk membuat file:
Dim fs as FileStream
fs = New FileStream (, FileMode.CreateNew)
FileMode terdiri dari:
FileMode.Open: untuk membuka file yang sudah ada. Jika file yang
dimaksud belum ada, maka akan menimbulkan error.
FileMode.Append: untuk menambah data yang sudah ada ke akhir file.
Jika file yang dimaksud belum ada, maka akan dibuat file yang baru.
Hanya boleh operasi tulis ke file, sedangkan operasi baca dari file akan
menimbulkan kesalahan.
FileMode.OpenOrCreate: untuk membuka file yang sudah ada dan jika
tidak ada, maka akan dibuat file baru. Operasi tulis ke file dan baca dari
file dapat dilakukan.
FileMode.Create: untuk membuat file baru dan menimpa/menggantikan
file yang sudah ada dengan nama yang sama. Hanya operasi tulis yang
dapat dilakukan.
FileMode.CreateNew: untuk membuat file baru. Jika file tersebut sudah
ada, maka akan menimbulkan error. Hanya operasi tulis yang dapat
dilakukan.
Untuk bekerja dengan file dengan menggunakan file stream harus
memanfaatkan stream reader atau stream writer. Walaupun sudah
ditentukan apakah akan membaca atau menulis informasi menggunakan
objek FileStream yang baru, namun masih belum dapat menentukan format
yang akan digunakan untuk mengirimkan data melalui stream tersebut.
Tanpa informasi format tersebut, stream tidak dapat digunakan. Terdapat
dua opsi, yaitu:
1. Menggunakan binary data dengan menggunakan objek BinaryWriter
dan BinaryReader.
2. Menggunakan plain text dengan menggunakan objek StreamWriter dan
StreamReader.
Class writer digunakan untuk mengirimkan informasi ke dalam sebuah file,
sedangkan class reader digunakan untuk mengambil informasi dari file.
Class StreamWriter dan StreamReader
bjek StreamWriter menghasilkan baris teks tanpa ada pemisah
tanda petik. Untuk mengambil teks dari file dapat menggunakan
metoda ReadLine(). Metoda ReadLine() akan mengambil teks
dengan tipe string dari file per baris. Class StreamWriter dapat menangani
tipe data sederhana seperti numerik, string, dan Boolean (menjadi string
True/False) ketika dituliskan ke file. Untuk mengambil informasi, dapat
C
O
4 | M O D U L 1 : B E K E R J A D E N G A N F I L E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
I
digunakan class StreamReader yang selalu dalam tipe data string, sehingga
untuk mengkonversi ke tipe data yang sesuai dapat menggunakan fungsi
CType().
Class BinaryWriter dan BinaryReader
inaryWriter bekerja dengan pola yang sama seperti StreamWriter,
tetapi BinaryWriter hanya bekerja dengan bytes dalam format binary
yang ter-encode. Jika ingin melakukan konversi ke byte array, maka
dapat menggunakan class System.BitConverter atau cukup menggunakan
metoda Write() dari class BinaryWriter selama menggunakan tipe data
sederhana. Pada kebanyakan program, file binary adalah cara standar untuk
menyimpan informasi. Keuntungannya adalah:
1. File tersebut susah dibaca sehingga dapat terhindar dari pengubahan isi
file secara sengaja.
2. Penyimpanan biner memakan tempat lebih hemat daripada
penyimpanan teks.
Untuk mengambil binary format dari file dapat menggunakan metoda
ReadString(), ReadInt32(), dan sebagainya tergantung masing-masing tipe
data. Yang perlu diperhatikan dalam penyimpanan dengan format binary
yaitu:
1. Perlunya melakukan serialisasi data agar tipe data yang ditulis dan
dibaca dapat sesuai.
2. Jika terdapat pergantian dari sebuah tipe data ke tipe data yang lain,
maka harus mengubah metoda pembacaan informasi dari file
tergantung tipe data yang telah diubah. Jika sudah disesuaikan, maka
akan kehilangan kemampuan untuk mengambil informasi yang
sebelumnya sudah disimpan.
Class FileInfo
ntuk mengambil informasi dari sebuah file seperti properti dan
atribut, pemeriksaan apakah file sudah ada, melakukan copy dan
hapus file, dan sebagainya dapat menggunakan class FileInfo
(namespace System.IO). Selain dengan menggunakan class ini, juga bisa
menggunakan metoda My.Computer.FileSystem.GetFileInfo().
Beberapa properti dari class FileInfo yang sering digunakan ditunjukkan
pada tabel 1.3 berikut ini.
Tabel 1.3| Properti Class FileInfo
Nama Properti Fungsi
Attributes Mengambil jenis atribut file
CreationTime Mengambil waktu buat file
Exists Memeriksa apakah suatu file ada atau tidak
DirectoryName Mengambil alamat dari sebuah file
Extension Mengambil ekstensi dari suatu file
FullName Mengambil lokasi dan nama file
LastAccessTime Mengambil waktu akses terakhir terhadap file
LastWriteTime Mengambil waktu rekam/tulis terakhir terhadap file
Length Mengambil ukuran file
Name Mengambil nama file saja
B
U
5 | M O D U L 1 : B E K E R J A D E N G A N F I L E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
I
CopyTo Melakukan operasi copy file ke lokasi dan nama file tujuan dengan syarat file
tujuan belum ada
Delete Menghapus file
MoveTo Melakukan operasi cut file ke lokasi dan nama file tujuan dengan syarat file
tujuan belum ada
Fitur yang lain adalah adanya keterhubungan antara objek file dan directory.
Objek FileInfo menyediakan properti direktori yang menghasilkan sebuah
objek DirectoryInfo yang menunjukkan direktori dimana file berada. Masing-
masing objek DirectoryInfo memiliki metoda seperti GetFiles() dan
GetDirectories() yang menghasilkan array FileInfo dan array DirectoryInfo().
TUGAS
1. Untuk mempraktikkan teori di atas, buatlah aplikasi berikut ini.
2. Buatlah aplikasi untuk menulis dan membaca informasi dari file teks
dengan menggunakan objek My.
3. Buatlah aplikasi untuk memanipulasi data supplier pada sebuah file teks
supplier.txt. Isi dari file tersebut akan ditampilkan pada sebuah ListBox.
6 | M O D U L 1 : B E K E R J A D E N G A N F I L E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
I
4. Sama seperti soal nomor 3 sebelumnya, hanya saja isi dari file akan
ditampilkan pada sebuah DataGridView.
5. Buatlah aplikasi untuk menampilkan daftar direktori dan file yang
terdapat pada suatu drive tertentu.
MODUL 2
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
MENU, TOOLBAR, DAN STATUSBAR
Setelah mempelajari dan mempraktikkan Modul 2, mahasiswa diharapkan dapat:
Membuat menu
Membuat toolbar
Membuat statusbar
8 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
enggunaan menu di aplikasi Windows merupakan suatu cara yang
praktis untuk mengintegrasikan kode program aplikasi sehingga
memudahkan user ketika menjalankan perintah-perintah. Menu
menyediakan akses ke perintah-perintah yang berkaitan dengan aplikasi
yang dibuat. Struktur menu dapat merepresentasikan fungsionalitas dari
suatu aplikasi, dan dari sini pula user akan mengoperasikan aplikasi yang
dibuat.
Untuk meningkatkan efektivitas, dapat disediakan toolbar guna mendukung
fungsionalitas menu. Pada umumnya, toolbar merepresentasikan ikon-ikon
perintah yang sering digunakan. Perintah yang terdapat pada masing-
masing ikon toolbar sebenarnya juga ada di dalam menu. Meskipun
demikian, toolbar menawarkan cara yang lebih efektif, yaitu dengan sekali
klik.
Menu
enu berguna untuk mengelompokkan perintah dengan topik
tertentu. Menu memungkinkan user untuk secara cepat dan
mudah mengakses fungsi aplikasi dan tools yang diinginkan.
Perencanaan dan desain yang baik dari menu membuat aplikasi mudah
digunakan dan dipelajari. Untuk membuat menu, perlu diperhatikan alur
logis dari aplikasi. Menu item harus dikelompokkan sesuai dengan
fungsionalitasnya. Untuk membuat menu window sebagaimana aplikasi
umumnya digunakan kontrol MenuStrip.
Beberapa properti pada kontrol MenuStrip yang penting ditunjukkan pada
tabel 2.1 berikut ini.
Tabel 2.1| Properti Kontrol MenuStrip
Nama Properti Keterangan
Checked Menampilkan atau tidak tanda cek pada item menu. Tipenya boolean
(True/False) dan default-nya False.
Enabled Menunjukkan apakah item menu aktif atau tidak. Jika False, maka item
menu berwarna abu-abu dan tidak dapat diakses. Tipenya boolean dan
default-nya True.
Image Menampilkan icon di samping item menu.
ShortcutKeys Mengatur kombinasi kunci shortcut untuk mengaktifkan item menu. Nilainya
adalah tipe shortcut, misalnya F1. Tiap kunci shortcut bernilai unik.
ShowShortcutKeys Jika kunci kombinasi shortcut didefinisikan pada item menu, maka
menunjukkan apakah kombinasi kunci ditampilkan di menu. Tipenya boolean
dan default-nya True.
Text Mewakili teks sebagai judul menu, item menu, dan item submenu.
Tambahkan karakter ampersand (&) di sebelah kiri huruf yang akan dijadikan
tombol akses. Karakter - akan membuat garis pemisah harizontal. Nilai
default-nya adalah string kosong.
Visible Menunjukkan apakah item menu ditampilkan atau tidak. Tipenya boolean
dan default-nya True.
Menu PopUp
dakalanya suatu aplikasi memerlukan menu yang lebih spesifik,
selain menu window normal tentunya. Sebagai contoh, di teks editor
bisa dimunculkan menu popup dengan melakukan klik kanan pada
area editor. Hal ini juga dapat diimplementasikan pada aplikasi Windows
P
M
A
9 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
menggunakan kontrol ContextMenuStrip. Kontrol ini memiliki fungsi utama
untuk menampilkan popup yang berisi menu-menu yang ditampilkan ketika
mengklik kanan kontrol-kontrol Windows tertentu.
ToolBar dan StatusBar
ebagaimana ketika membuat menu melalui kontrol MenuStrip,
pembuatan toolbar yang memanfaatkan kontrol ToolStrip juga
menyediakan item-item standar. Toolbar tinggal dilengkapi dengan
menambahkan atau mengurangi item yang telah disediakan dan
memperbaiki kode programnya.
StatusBar merupakan kontrol horizontal yang terletak di bagian bawah
form. StatusBar biasanya digunakan untuk menampilkan informasi
berbentuk teks, seperti tanggal, jam, mode keyboard (insert, num lock,
scroll lock, dan sebagainya), penjelasan proses yang sedang terjadi, serta
deskripsi dari item menu.
TUGAS
1. Buatlah aplikasi yang berisi menu untuk mengatur warna latar dan
ukuran form.
2. Buatlah aplikasi teks editor (menggunakan RichTextBox) yang berisi
toolbar dan statusbar, dimana:
Toolbar memiliki fungsi untuk mengatur style tulisan, dan
Statusbar memiliki fungsi untuk menampilkan jam sistem.
S
10 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
3. Rancanglah form seperti gambar berikut ini (form untuk setiap menu
akan dikerjakan pada modul-modul selanjutnya Model Connected,
Model Disconnected, dan Crystal Report).
11 | M O D U L 2 : M E N U , T O O L B A R , D A N S T A T U S B A R
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Menu-menu pada form di atas adalah sebagai berikut:
Master Transaksi Laporan Keluar
Data Barang
Data Pelanggan
Data Pengguna
Data Pemasok
Penjualan
Retur Penjualan
Pembelian
Retur Pembelian
Laporan Barang
Laporan Pelanggan
Laporan Pemasok
Laporan Penjualan
Laporan Retur Penjualan
Laporan Pembelian
Laporan Retur Pembelian
MODUL 3
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
ADO .NET
Setelah mempelajari dan mempraktikkan Modul 3, mahasiswa diharapkan dapat:
Memahami konsep ADO .NET
13 | M O D U L 3 : A D O . N E T
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
ebagian besar aplikasi membutuhkan akses data. Aplikasi desktop
butuh disambungkan ke database pusat, XML (Extensible Markup
Language) data store, ataupun database lokal. Akses data biasanya
melibatkan penggunaan SQL (Structured Query Language) statement, yang
sering dibuat secara dinamis pada saat runtime (biasa dikenal sebagai ad
hoc query).
ADO .NET Data Access menyediakan cara yang sederhana, tetapi cukup
bagus untuk mengakses data dan memaksimalkan resource sistem yang
digunakan. Versi-versi sebelumnya dari data akses menyediakan data akses
yang terhubung secara terus menerus. Di model ini, aplikasi membuat ke
database dan membiarkannya terbuka terus sampai aplikasi ditutup atau
sampai selang waktu tertentu. Pada saat aplikasi menjadi lebih kompleks,
menggunakan cara ini sangat memboroskan resource sistem: semakin
banyak koneksi tersambung, semakin buruk performa sistemnya. Lagipula,
aplikasi dengan data akses yang selalu terhubung sangat susah untuk di-
scale up.
ADO .NET mengatasi masalah ini dengan menerapkan model disconnected
database access sebagai default-nya. Pada model ini, koneksi data hanya
dijalankan dan dibiarkan terbuka selama menjalankan proses. Dengan
mempertahankan koneksi terbuka hanya untuk waktu minimum yang
dibutuhkan, ADO .NET mengurangi kebutuhan resource sistem dan
memungkinkan akses data di-scale up dengan efek minimal di performanya.
Pengenalan ADO .NET
ada masa pemrograman Windows, Visual Basic terkenal karena
merupakan tool yang sederhana dan powerful untuk menulis aplikasi
yang berhubungan dengan database dan menghasilkan report
(laporan) yang menarik. Untuk mengakses database, Microsoft
menyediakan teknologi-teknologi seperti Data Access Object (DAO), lalu di-
upgrade menjadi Remote Data Object (RDO) untuk mengakses produk
database client-server seperti SQL, dan kemudian migrasi ke ActiveX Data
Object (ADO) yang menggabungkan kedua teknologi sebelumnya. ADO
menyediakan model objek yang fleksibel dan powerful.
ADO telah dikenal sebagai salah satu metode yang cukup baik untuk
mengakses data di database. Pada masanya, ADO merupakan pilihan yang
sangat tepat dalam membangun aplikasi database dari skala kecil sampai
yang berskala besar. Sayangnya, ADO menuntut koneksi data yang dilakukan
secara terus menerus sehingga mengakibatkan pemborosan resource.
Untuk mendukung pengaksesan dan pengolahan data yang lebih baik, .NET
Framework memperkenalkan teknologi yang dikenal sebagai ADO .NET.
ADO .NET memiliki teknologi yang berbeda dari ADO. ADO .NET tersedia di
dalam library class .NET dan terintegrasi dengan XML. ADO .NET lebih
unggul dalam berhubungan dengan data relasional. ADO .NET merupakan
model pemrograman baru yang didesain untuk menyediakan akses
konsisten ke dalam data source. ADO .NET mendukung dua lingkungan
pemrograman yang berlainan, yaitu connected dan disconnected. Adapun
secara default, lingkungan pemrograman yang digunakan adalah
disconnected.
Fitur baru dari ADO .NET:
1. Cursor tidak bersifat server side
2. DataSet dan DataReader menggantikan RecordSet
3. DataAdapter
4. Penyimpanan data yang berbasiskan XML
S
P
14 | M O D U L 3 : A D O . N E T
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Arsitektur ADO .NET
ata akses di ADO .NET bergantung pada dua komponen, yaitu
DataSet yang menyimpan data di lokal dan .NET Data Provider yang
menjadi perantara interaksi antara program dan database. Gambar
3.1 berikut ini menunjukkan arsitektur ADO .NET.
Gambar 3.1| Arsitektur ADO .NET
DataSet
ataSet adalah representasi data yang disimpan di memori dalam
kondisi tak terhubung (disconnected). Data bisa di-load ke DataSet
dari data source apapun yang valid, seperti SQL Server database,
Microsoft Access database, ataupun dari XML file. DataSet tetap ada di
memori dan data di dalamnya bisa dimanipulasi dan di-update tanpa
bergantung pada database asalnya. Jika diperlukan, maka DataSet bisa
bertindak sebagai template untuk meng-update database pusat.
.NET Data Provider
ink ke database dibuat dan di-maintain oleh Data Provider (Managed
Provider). Data Provider tidak terdiri dari satu komponen, tetapi
merupakan kumpulan komponen yang bekerja bersama-sama
menyediakan data yang dibuat seefisien mungkin. Data Provider di .NET
Framework merupakan koleksi class-class yang bertindak sebagai
penghubung antara aplikasi dan data source. Pendekatan yang digunakan
oleh Data Provider .NET Framework adalah model pemrograman connected.
Hal ini berarti bahwa koneksi ke data source dilakukan secara terus menerus
seperti yang terjadi pada ADO. Model pemrograman connected
menyediakan akses read only dan forward only ke data di dalam data
source. Class-class di dalam model connected ini menyediakan cara umum
untuk bekerja dengan data yang terkoneksi dengan mengabaikan data
source yang mendasari.
D
D
L
15 | M O D U L 3 : A D O . N E T
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Data Provider menyediakan komponen class generik di namespace
System.Data yang terdiri dari empat komponen utama, yaitu:
a. Connection object
Menyediakan koneksi aktual ke database.
b. Command object
Digunakan untuk mengeksekusi perintah untuk mengakses data yang
bisa berupa perintah non-query seperti INSERT, UPDATE, dan DELETE,
atau mengembalikan nilai DataReader dari perintah SELECT. Command
object menyediakan tiga metoda yang digunakan untuk menjalankan
perintah di database:
ExecuteNonQuery, menjalankan perintah yang tidak memerlukan
return value, seperti INSERT, UPDATE, atau DELETE.
ExecuteScalar, mengembalikan satu nilai dari hasil query database.
ExecuteReader, mengembalikan result set melalui DataReader
objek.
c. DataReader object
Menyediakan connected recordset tipe forward-only, read-only.
DataReader dikembalikan sebagai hasil dari metoda ExecuteReader di
Command object.
d. DataAdapter object
Mem-populate disconnected DataSet atau DataTable dengan data dan
menjalankan update. Pada dasarnya merupakan perantara untuk
memfasilitasi komunikasi antara database dan DataSet. DataAdapter
mengisi DataTable atau DataSet dengan data dari database pada saat
metoda Fill() dipanggil. Setelah memori resident data dimanipulasi,
DataAdapter bisa men-transmit perubahan ke database dengan
memanggil metoda Update(). DataAdapter menyediakan empat
properti yang mewakili perintah database:
SelectCommand, berisi teks atau objek yang memilih data dari
database. Perintah ini dieksekusi pada saat metoda Fill() dipanggil
dan mengisi DataTable atau DataSet.
InsertCommand, berisi teks atau objek yang memasukkan satu baris
ke tabel.
DeleteCommand, berisi teks atau objek yang menghapus baris dari
tabel.
UpdateCommand, berisi teks atau objek yang meng-update nilai ke
database. Pada saat metoda Update() dipanggil, perubahan di
DataSet akan dituliskan kembali ke database dan InsertCommand,
DeleteCommand, atau UpdateCommand dieksekusi.
Gambar 3.2| .NET Data Provider
16 | M O D U L 3 : A D O . N E T
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
.NET Framework menyediakan empat buah managed provider, yaitu:
a. Data Provider untuk ODBC
b. Data Provider untuk OLE DB
c. Data Provider untuk SQL Server
d. Data Provider untuk Oracle
Gambar 3.3| Managed Provider
Objek Dasar ADO .NET
emua fitur dari ADO .NET tersedia dalam library class .NET
System.Data. Namespace yang terkandung di dalamnya yaitu:
a. System.Data
Mengandung class-class dasar untuk mengatur data seperti DataSet dan
DataRelation.
b. System.Data.SqlClient
Mengandung class-class yang digunakan untuk mengkoneksikan dengan
database Microsoft SQL Server. Di dalamnya terdapat class-class seperti
SqlCommand dan SqlConnection.
c. System.Data.Oracle
Mengandung class-class yang digunakan untuk mengkoneksikan dengan
database Oracle. Di dalamnya terdapat class-class seperti
OracleCommand dan OracleConnection.
d. System.Data.OleDb
Mengandung class-class yang digunakan untuk mengkoneksikan dengan
provider OLEDB. Di dalamnya terdapat class-class seperti
OledbCommand dan OledbConnection. Class-class ini berguna jika tidak
memiliki provider .NET yang murni khusus untuk mengakses database
tersebut.
S
17 | M O D U L 3 : A D O . N E T
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Koneksi Database
Objek Connection
bjek connection dapat digunakan untuk melakukan koneksi ke data
source (sumber data), yaitu Connection String. Connection String
digunakan untuk mengakses database (pada praktikum ini
menggunakan DBMS Microsoft SQL Server 2012) yang terdiri dari tiga
bagian informasi, yaitu:
Koneksi ke database SQL Server, baik komputer lokal ataupun komputer
lain dalam jaringan.
Nama database yang akan digunakan.
User account yang digunakan untuk mengkoneksi ke database SQL
Server.
- Koneksi ke database SQL Server 2012 dengan menggunakan account
Windows (Windows Authentication):
Contoh:
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(sender As Object, e As
EventArgs) Handles MyBase.Load
Dim constring As String = "Data Source=localhost;
Initial Catalog=Northwind; Integrated Security=True"
Dim con As New SqlConnection(constring)
con.Open()
End Sub
End Class
- Koneksi ke database SQL Server 2012 dengan menggunakan user
account SQL Server (SQL Server Authentication) dengan menuliskan
user id dan password:
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(sender As Object, e As
EventArgs) Handles MyBase.Load
Dim constring As String = "Data Source=localhost;
Initial Catalog=Northwind; User Id=sa; Password=1234"
Dim con As New SqlConnection(constring)
con.Open()
End Sub
End Class
Membuat Koneksi
etelah membuat Connection String yang benar dengan objek
Connection, maka dapat dibuat koneksi langsung ke database SQL
Server dengan menggunakan objek SqlConnection.
O
S
18 | M O D U L 3 : A D O . N E T
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs)
Handles MyBase.Load
Dim constring As String = "Data Source=localhost;
Initial Catalog=Northwind; Integrated Security=True"
Dim con As New SqlConnection(constring)
con.Open()
End Sub
End Class
Metoda Open() digunakan untuk membuat koneksi langsung ke database.
Koneksi dapat ditutup kapan saja dengan menggunakan metoda Close().
Objek Command
etelah membuat koneksi langsung ke database, maka langkah
selanjutnya adalah melakukan operasi terhadap database dengan
menggunakan objek Command. Objek Command berisi perintah SQL
atau stored procedure yang digunakan untuk mengambil data atau
melakukan perubahan. Agar bisa menggunakan ADO .NET, maka harus
mempunyai pemahaman dasar tentang perintah SQL.
Contoh:
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs)
Handles MyBase.Load
Dim constring As String = "Data Source=localhost;
Initial Catalog=Northwind; User Id=sa; Password=1234"
Dim con As New SqlConnection(constring)
con.Open()
Dim sqlString As String = "Select * from ORDERS where
OrderDate < '2014/01/01' and OrderDate > '1987/01/01'"
Dim cmd As New SqlCommand(sqlString, con)
End Sub
End Class
Contoh objek Command di atas belum membaca data, hanya mendefinisikan
perintah. Agar dapat menggunakan command, maka harus ditentukan
apakah membuat DataReader atau DataSet.
TUGAS
Ikuti petunjuk dosen praktikum untuk melakukan koneksi ke database
Microsoft SQL Server 2012 dengan Microsoft Visual Basic .NET.
S
MODUL 4
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
PEMROGRAMAN DATABASE DENGAN ADO
.NET (MODEL CONNECTED)
Setelah mempelajari dan mempraktikkan Modul 4, mahasiswa diharapkan dapat:
Memahami konsep pemrograman database dengan model connected
Membuat program database dengan model connected
20 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
ambar 4.1 berikut ini menunjukkan arsitektur model connected ADO
.Net (objek DataReader) untuk mengakses data dari database secara
cepat, bersifat forward, dan readonly.
Gambar 4.1| Arsitektur Model Connected ADO .NET
Objek DataReader digunakan untuk membaca data dari database secara
langsung. Objek ini tidak menyediakan akses terputus ataupun kemampuan
untuk mengubah atau meng-update sumber data yang sebenarnya.
DataReader hanya digunakan untuk akses cepat, akses data yang bersifat
readonly, navigasi secara forward, dan mengurutkan record. Tiap-tiap
provider menyediakan class DataReader-nya sendiri. Untuk DBMS SQL
Server dapat menggunakan class SqlDataReader.
Setelah membuat koneksi dengan objek Connection dan membuat objek
Command, maka data dapat diakses melalui objek DataReader. Inti dari
pemrograman ADO NET dengan DataReader adalah sebagai berikut:
Dim reader As SqlDataReader = cmd.ExecuteReader()
Ketika DataReader baru saja terbentuk, maka baris data/record masih
belum ada (record belum bisa diambil). Untuk melakukan navigasi dapat
menggunakan metoda Read(). Record dapat dinavigasi dari awal sampai
akhir, tetapi tidak ada cara (tidak bisa) untuk bergerak mundur. Metoda
Read() akan mengembalikan nilai True selama masih terdapat record pada
posisi yang dilaluinya dan sebaliknya akan mengembalikan nilai False jika
ada usaha untuk membaca record setelah record terakhir.
While reader.Read()
ambil baris data/record
End While
reader.close()
con.close()
Oleh karena DataReader melakukan pembacaan terhadap record database
secara langsung, setelah data diproses, maka koneksi harus ditutup
sesegera mungkin dengan metoda Close(). Untuk mengakses data pada
record dapat menggunakan nama field atau nomor indeks (dimulai dari
nol).
TUGAS
Latihan di bawah ini berhubungan dengan Modul 2 soal nomor 3, dimana
beberapa form pada menu tersebut dikerjakan pada latihan berikut ini.
1. Buatlah aplikasi untuk pengolahan data barang pada menu Master
dengan menggunakan model connected ADO .NET.
Database: MShop
Tabel: Barang
G
21 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Keterangan:
a. Jika tombol Preview dengan ListBox diklik, maka tampilkan data
Barang yang telah disimpan ke tabel Barang pada sebuah ListBox.
b. Jika tombol Preview dengan ListView diklik, maka tampilkan data
Barang yang telah disimpan ke tabel Barang pada sebuah ListView.
22 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
c. Jika tombol Preview dengan DataGridView diklik, maka tampilkan
data Barang yang telah disimpan ke tabel Barang pada sebuah
DataGridView.
2. Buatlah aplikasi untuk pengolahan data pelanggan pada menu Master
dengan menggunakan model connected ADO .NET.
Tabel: Pelanggan
Keterangan:
Jika tombol Browse () pada Kode Pelanggan diklik, maka tampilkan
data pelanggan yang telah disimpan ke tabel Pelanggan pada sebuah
DataGridView.
23 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
3. Buatlah aplikasi untuk pengolahan transaksi penjualan pada menu
Transaksi dengan menggunakan model connected ADO .NET.
Tabel: Header_Penjualan
Tabel: Detail_Penjualan
Keterangan:
Jika tombol Browse () pada No. Faktur diklik, maka tampilkan faktur
penjualan yang telah disimpan ke tabel Penjualan pada sebuah
DataGridView.
24 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Jika tombol Browse () pada Kode Pelanggan diklik, maka tampilkan
data pelanggan yang telah disimpan ke tabel Pelanggan pada sebuah
DataGridView.
Jika tombol Browse () pada Kode Barang diklik, maka tampilkan data
barang yang telah disimpan ke tabel Barang pada sebuah DataGridView.
4. Buatlah aplikasi untuk pengolahan transaksi retur penjualan pada menu
Transaksi dengan menggunakan model connected ADO .NET.
25 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Tabel: Header_Retur_Penjualan
Tabel: Detail_Retur_Penjualan
Keterangan:
Jika tombol Browse () pada No. Retur diklik, maka tampilkan data retur
penjualan yang telah disimpan ke tabel Retur Penjualan pada sebuah
DataGridView.
26 | M O D U L 4 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Jika tombol Browse () pada No. Faktur diklik, maka tampilkan faktur
penjualan yang telah disimpan ke tabel Penjualan pada sebuah
DataGridView.
MODUL 5
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
PEMROGRAMAN DATABASE DENGAN ADO
.NET (MODEL DISCONNECTED)
Setelah mempelajari dan mempraktikkan Modul 5, mahasiswa diharapkan dapat:
Memahami konsep pemrograman database dengan model disconnected
Membuat program database dengan model disconnected
28 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
alam banyak hal, objek DataSet merupakan fokus dari pemrograman
ADO .NET. Tidak seperti DataReader, DataSet pada dasarnya tidak
terkoneksi. Informasi yang diperoleh dari database relasional dapat
ditempatkan ke dalam sebuah DataSet atau memindahkan kembali
informasi dari sebuah DataSet ke dalam database relasional, tetapi DataSet
sendiri tidak pernah membentuk koneksi (hubungan) dengan sebuah
sumber data, sehingga DataSet tidak mempunyai properti connection.
Untuk menukar informasi antara objek DataSet dan sebuah sumber data
diperlukan objek DataAdapter. Gambar 5.1 berikut ini menunjukkan semua
objek dari ADO .NET yang terlibat pada akses tak terhubung (disconnected)
dan bagaimana mereka berinteraksi.
Gambar 5.1| Arsitektur Model Disconnected ADO .NET
Beberapa kemampuan yang dimiliki DataSet sebagai berikut:
a. Kemampuan menyimpan data untuk jangka waktu yang lama dan
mentransfernya ke class atau komponen lain sebagai sebuah paket.
b. Kemampuan melakukan update kompleks dan perubahan pada data,
tanpa perlu mengeksekusi setiap perubahan melalui sebuah objek
Command yang terpisah.
c. Kemampuan menyimpan atau mengambil kembali data berformat XML
ke sebuah file.
d. Kemampuan menghubungkan data pada kontrol dalam form Windows
atau halaman web ASP .NET untuk tampilan langsung dan tidak
membutuhkan pemrograman.
e. Kemampuan mensortir dan memfilter hasil secara on the fly.
f. Fleksibilitas yang lebih besar ketika membaca data, seperti navigasi data
secara maju dan mundur di antara tabel yang berbeda, tetapi yang
masih berhubungan.
Mengakses Informasi Dalam Sebuah DataSet
nformasi pada DataSet disimpan dalam collections. Berbeda dengan
DataReader yang hanya membuka satu baris pada satu saat, sehingga
memaksa untuk menggunakan metoda Read() untuk berpindah
antarbaris. Sebuah DataSet mempunyai properti Tables yang berisi
kumpulan objek DataTable. Setiap DataTable mempunyai properti Rows
yang berisi kumpulan objek DataRow. DataRows dapat diakses
menggunakan nama field yang berhubungan, sama seperti pada
DataReader. Gambar 5.2 berikut ini menunjukkan keseluruhan dari model
objek tersebut.
D
I
29 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 5.2| Model Objek DataSet
Berikut ini adalah sintaks yang digunakan untuk melakukan koneksi dan
mengisi record dari data source ke DataSet, men-setting primary key,
menampilkan record, mencari record, menambah record, mengubah record,
menghapus record ke DataSet, dan meng-update perubahan record dari
DataSet ke data source, serta me-refresh tabel DataSet.
a. Melakukan koneksi ke database dan mengisi record dari data source
(SQL Server) ke DataSet
con = New SqlConnection(data source=<nama server>/<ip
address>; initial catalog=<nama database>; integrated
security=true)
ds = New DataSet
cmd = New SqlCommand(select * from <nama tabel>, con)
ad = New SqlDataAdapter(cmd)
ad.Fill(ds, <nama tabel dataset>)
b. Menampilkan record ke DataGridView
Cara 1:
Me.dgv1.ColumnCount = <jumlah kolom>
For i = 0 To ds.Tables(<nama/indeks tabel>).Rows.Count 1
Dim dr As DataRow
dr = ds.Tables(<nama/indeks tabel>).Rows(i)
Me.dgv1.Rows.Add(dr.Item(<nama/indeks kolom ke-n>))
Next
Cara 2:
Me.dgv1.ColumnCount = <jumlah kolom>
For Each x As DataRow in ds.Tables(<nama/indeks
tabel>).Rows
Me.dgv1.Rows.Add(x.Item(<nama/indeks kolom ke-n>))
Next
Cara 3:
Me.dgv1.DataSource = ds.Tables(<nama/indeks tabel>)
c. Men-setting primary key (juga sebagai kunci pencarian)
Dim dc(n) as DataColumn
dc(0) = ds.Tables(<nama/indeks
tabel>).Columns(<nama/indeks kolom ke-0>)
dc(1) = ds.Tables(<nama/indeks
tabel>).Columns(<nama/indeks kolom ke-1>)
dc(n) = ds.Tables(<nama/indeks
tabel>).Columns(<nama/indeks kolom ke-n>)
ds.Tables(<nama/indeks tabel>).PrimaryKey = dc
30 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
d. Mencari record
Dim dr As DataRow
dr = ds.Tables(<nama/indeks tabel>).Rows.Find(<nilai yang
dicari>)
If dr Isnot Nothing Then
<ketemu>
Else
<tidak ketemu>
End If
e. Menambah record
Dim dr As DataRow
dr = ds.Tables(<nama/indeks tabel>).NewRow
dr(<nama/indeks kolom ke-n>) = <nilai>
ds.Tables(<nama/indeks kolom tabel>).Rows.Add(dr)
f. Mengubah record
Dim dr As DataRow
dr = ds.Tables(<nama/indeks tabel>).Rows.Find(<nilai yang
akan diubah>)
If dr Isnot Nothing Then
dr(<nama/indeks kolom ke-n>) = <nilai baru>
End If
g. Menghapus record
Dim dr As DataRow
dr = ds.Tables(<nama/indeks tabel>).Rows.Find(<nilai yang
akan dihapus>)
If dr Isnot Nothing Then dr.Delete()
h. Meng-update perubahan record dari DataSet ke data source
Dim cb As New SqlCommandBuilder(ad)
ad = cb.DataAdapter
Dim jum As Integer = ad.Update(ds, <nama tabel>)
MsgBox(jum & record berhasil diupdate ke data source)
i. Me-refresh tabel di DataSet
ds.Tables(<nama/indeks tabel>).Clear()
ad.Fill(ds, <nama tabel>)
TUGAS
Latihan di bawah ini berhubungan dengan Modul 2 soal nomor 3, dimana
beberapa form pada menu tersebut dikerjakan pada latihan berikut ini serta
menggunakan database MShop (database yang sama dengan latihan pada
model connected/Modul 4).
1. Buatlah form login untuk membatasi hak akses pengguna untuk masuk
ke dalam aplikasi dengan menggunakan model disconnected ADO .NET.
Tabel: Pengguna
31 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Keterangan:
a. Jika tombol Preview dengan ListBox diklik, maka tampilkan data
pengguna yang telah disimpan ke tabel Pengguna pada sebuah
ListBox.
b. Jika tombol Preview dengan ListView diklik, maka tampilkan data
pengguna yang telah disimpan ke tabel Pengguna pada sebuah
ListView.
c. Jika tombol Preview dengan DataGridView diklik, maka tampilkan
data pengguna yang telah disimpan ke tabel Pengguna pada sebuah
DataGridView.
32 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
2. Buatlah aplikasi untuk pengolahan data pemasok pada menu Master
dengan menggunakan model disconnected ADO .NET.
Tabel: Pemasok
Keterangan:
Jika tombol Browse () pada Kode Pemasok diklik, maka tampilkan data
pemasok yang telah disimpan ke tabel Pemasok pada sebuah
DataGridView.
33 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
3. Buatlah aplikasi untuk pengolahan data pembelian pada menu Transaksi
dengan menggunakan model disconnected ADO .NET.
Tabel: Header_Pembelian
Tabel: Detail_Pembelian
34 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Keterangan:
Jika tombol Browse () pada Kode Faktur diklik, maka tampilkan data
faktur pembelian yang telah disimpan ke tabel Pembelian pada sebuah
DataGridView.
Jika tombol Browse () pada Kode Pemasok diklik, maka tampilkan data
pemasok yang telah disimpan ke tabel Pemasok pada sebuah
DataGridView.
Jika tombol Browse () pada Kode Barang diklik, maka tampilkan data
barang yang telah disimpan ke tabel Barang pada sebuah DataGridView.
35 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
4. Buatlah aplikasi untuk pengolahan data retur pembelian pada menu
Transaksi dengan menggunakan model disconnected ADO .NET.
Tabel: Header_Retur_Pembelian
Tabel: Detail_Retur_Pembelian
Keterangan:
Jika tombol Browse () pada Kode Retur diklik, maka tampilkan data
retur pembelian yang telah disimpan ke tabel Retur Pembelian pada
sebuah DataGridView.
36 | M O D U L 5 : P E M R O G R A M A N D A T A B A S E D E N G A N A D O . N E T
( M O D E L D I S C O N N E C T E D )
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Jika tombol Browse () pada Kode Faktur diklik, maka tampilkan data
faktur pembelian yang telah disimpan ke tabel Pembelian pada sebuah
DataGridView.
MODUL 6
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
PEMBUATAN LAPORAN DATABASE
Setelah mempelajari dan mempraktikkan Modul 6, mahasiswa diharapkan dapat:
Memahami pembuatan laporan database dengan menggunakan Crystal Report
Membuat laporan database dengan sumber data Microsoft SQL Server
38 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
aporan (report) merupakan output dari program berupa informasi
yang dibutuhkan untuk menjalankan bisnis. Visual Basic .NET
menyediakan Business Objects Crystal Report untuk menyediakan
kepada developer cara yang cepat dan produktif untuk membuat dan
mengintegrasikan laporan berkualitas ke dalam aplikasi. Beberapa fitur
kunci dari Crystal Report adalah sebagai berikut:
1. Design-Time Preview untuk menampilkan data read-only dari data
source langsung ataupun dari sumber data yang lain seperti DataSet.
2. CrystalReportParts Viewer menampilkan informasi strategis seperti
summary atau grafik.
3. Hierarchical Field Support mendukung hierarchical field seperti User
Defined Types (UDT) dan XML field. Hierarchical field dapat
dikelompokkan untuk membuat struktur pengelompokkan dinamis
dalam laporan.
Membuat Laporan Dengan Crystal Report
erikut ini dijelaskan langkah-langkah untuk membuat laporan dengan
Crystal Report menggunakan bahasa pemrograman Microsoft Visual
Basic 2012.
Latihan
Menambahkan Sebuah Form Untuk Crystal Report Viewer
ambahkan sebuah Windows Form, kemudian pada bagian ToolBox,
klik di bagian Reporting dan pilih Crystal Report Viewer untuk
ditambahkan pada form.
Gambar 6.1| Pemilihan Project Baru
Dalam sebuah project hanya menggunakan satu buah form Crystal Report
Viewer dalam menampilkan lebih dari satu laporan.
Catatan:
L
B
T
1
2
39 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Membuat DataSet
ebelum membuat Crystal Report, langkah yang dibutuhkan adalah
merancang DataSet. Langkah untuk membuat DataSet adalah sebagai
berikut:
1. Pilih menu Project|Add Windows Form..., atau klik kanan pada Nama
Project|Add New Item, atau tekan Ctrl + Shift + A pada keyboard.
Gambar 6.2| Penambahan Form Melalui Menu Project
Gambar 6.3| Penambahan Form Dengan Klik Kanan Pada Nama Project
2. Akan ditampilkan kotak dialog Add New Item MyProject. Pilih template
DataSet. Setelah itu, tekan tombol Add.
S
1
2
3 2
1
40 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.4| Pemilihan Item DataSet
3. Setelah itu, akan muncul sebuah DataSet. Langkah selanjutnya adalah
membuat tabel dengan cara klik kanan dan pilih Add - DataTable.
Gambar 6.5| Membuat Tabel Pada DataSet
Gambar 6.6| DataTabel Pada DataSet
1
2
1
2
41 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
4. Untuk mengganti nama DataTable, klik sekali pada bagian judul
DataTable, kemudian ubah nama tabelnya, misalkan diubah menjadi
Barang.
Gambar 6.7| Mengubah Nama DataTable
5. Langkah selanjutnya adalah membuat kolom/field dari tabel. Klik kanan
pada DataTable, kemudian pilih Add - Column atau dengan cara
menekan Ctrl + L. Isi kolom/field disesuaikan dengan kolom/field tabel
yang ada di database.
Gambar 6.8| Membuat Kolom/Field Pada DataTable
1
1
2
42 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.9| Kolom/Field Pada DataTable
6. Langkah terakhir adalah mengatur primary key dari DataTable. Klik
kanan pada DataColumn, kemudian pilih Add - Key.
Gambar 6.10| Mengatur Primary Key Pada DataTable
7. Akan muncul sebuah kotak dialog Unique Constraint. Centang
kolom/field yang menjadi kunci. Pada tabel Barang yang dipraktikkan,
yang menjadi kunci adalah kode_barang, sehingga yang dicentang
adalah kolom/field kode_barang. Tekan tombol OK.
1
2
43 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.11| Membuat Primary Key
8. Selanjutnya, ubah tipe data setiap field, yaitu dengan cara mengklik
pada salah satu field, kemudian di jendela Properties, ubah DataType
yang dicocokkan dengan tipe data yang dibuat pada tabel database.
Pada latihan ini, ubah DataType kode_barang dan nama_barang menjadi
System.Stringm, DataType harga menjadi System.Int64, dan DataType
stok menjadi System.In16.
Gambar 6.12| Mengubah Tipe Data
Dalam sebuah project hanya menggunakan sebuah DataSet untuk membuat
lebih dari satu tabel.
Catatan:
Merancang Laporan Dengan Crystal Report
etelah menyelesaikan tahapan di atas, maka langkah selanjutnya
adalah merancang laporan dengan menggunakan Crystal Report.
Untuk dapat mercancang Crystal Report, terlebih dahulu harus meng-
install SAP Crystal Reports (misalnya versi CRforVS_13_0_5).
Laporan yang akan dirancang sebagai latihan adalah laporan data barang,
dimana laporan ini berhubungan dengan tugas praktik Modul 2 soal nomor
3. Langkah-langkah pengerjaannya adalah sebagai berikut:
S
1
2
44 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
1. Pilih menu Project|Add Windows Form..., atau klik kanan pada Nama
Project|Add New Item, atau tekan Ctrl + Shift + A pada keyboard.
Gambar 6.13| Penambahan Form Melalui Menu Project
Gambar 6.14| Penambahan Form Dengan Klik Kanan Pada Nama Project
2. Pada kotak dialog Add New Item MyProject yang muncul, pilih
Common Items di bagian Reporting, kemudian pilih template Crystal
Reports. Setelah itu, tekan tombol Add.
Gambar 6.15| Pemilihan Item Crystal Report
1
2
3
2
1
1
2
45 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
3. Pada kotak dialog Crystal Reports Gallery, pilih As a Blank Report. Tekan
tombol OK.
Gambar 6.16| Pilihan Pada Kotak Dialog Crystal Reports Gallery
Gambar 6.17| Tampilan Halaman Crystal Report
4. Langkah selanjutnya adalah merancang laporan. Untuk membuat judul
laporan, klik kanan dan pilih Insert - Text Object. Judul laporan
ditempatkan pada Section 1 (Report Header) dengan cara mengklik
sekali di bagian Section 1, sehingga Text Object untuk judul berada di
Section 1. Ketikkan judul laporannya, yaitu Laporan Barang. Untuk
mengubahnya, klik kanan pada Text Object judul, kemudian pilih Edit
Text Object.
1
2
46 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.18| Menambahkan Text Object
Klik kanan pada Text Object, kemudian pilih Format Object untuk
melakukan format pada Text Object. Misalnya, untuk mengubah jenis
tulisan, style, ukuran, warna, dan effect dilakukan dengan cara memilih
menu Font. Untuk mengatur Border pada Text Object, pilih menu
Border. Untuk mengatur perataan tulisan pada Text Object, pilih menu
Paragraph.
Gambar 6.19| Membuka Kotak Dialog Format Object
Gambar 6.20| Kotak Dialog Format Object
1
2
47 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
5. Untuk menambahkan tanggal cetak, caranya klik kanan dan pilih Insert -
Special Field - Print Date. Untuk menambahkan jam cetak, caranya klik
kanan dan pilih Insert - Special Field - Print Time. Print Date dan Print
Time ditempatkan di Section 1. Untuk memformat print date dan print
time, klik kanan pada objek yang akan diformat, kemudian pilih Format
Object.
Gambar 6.21| Menambahkan Print Date
Gambar 6.22| Menambahkan Print Time
6. Langkah selanjutnya adalah mengambil tabel yang telah dikerjakan pada
DataSet dengan cara mengklik kanan pada Database Fields - Database
Expert.
1
2
3
1
2
3
48 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.23| Membuka Database Expert
7. Pada kotak dialog Database Expert yang muncul, pilih Project Data
ADO .NET DataSets. Setelah itu, pilih tabel yang ingin dibuat laporannya.
Pada latihan ini, pilih tabel Barang. Pindahkan tabel yang diinginkan
untuk dibuat laporannya ke sebelah kanan dengan mengklik Button >.
Kemudian tekan tombol OK.
Gambar 6.24| Memilih Tabel Yang Diinginkan Untuk Dibuat Laporan
8. Klik simbol + pada Database Fields. Klik juga simbol + pada tabel Barang.
Field-field yang terdapat pada tabel Barang akan ditampilkan.
1
2
3
4
5
49 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.25| Menampilkan Field-Field Pada Tabel Barang
9. Untuk menambahkan field dari tabel Barang ke laporan, caranya adalah
dengan mengklik field yang diinginkan dari jendela Field Explorer,
kemudian drag ke bagian laporan pada Section 3.
Gambar 6.26| Menambahkan Field-Field Dari Tabel Barang
10. Untuk membuat garis, lakukan klik kanan dan pilih Insert - Line. Klik dan
drag untuk membuat garis.
Gambar 6.27| Membuat Garis
1
2
1
2
50 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.28| Tampilan Laporan Barang Dengan Garis
11. Selanjutnya, untuk menghitung total barang dilakukan dengan cara klik
kanan dan pilih Insert Summary....
Gambar 6.29| Menghitung Total Barang
12. Setelah kotak dialog Insert Summary tampil, untuk mendapatkan total
barang, pada bagian Choose the field to summarize: pilih
Barang.kode_barang (karena menghitung total barang berdasarkan field
kode_barang) dan pada bagian Calculate this summary: pilih Count
(untuk menghitung berapa jumlah barang yang tertera). Selanjutnya
tekan tombol OK. Letakkan di sebelah tulisan Total Barang: pada Section
4.
1
2
51 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.30| Insert Summary Total Barang
13. Selanjutnya, untuk menghitung jumlah stok dilakukan dengan cara klik
kanan dan pilih Insert - Summary seperti pada gambar 6.29. Setelah
tampil kotak dialog Insert Summary, untuk mendapatkan jumlah stok,
pada bagian Choose the field to summarize: pilih Barang.stok (karena
menghitung jumlah stok berdasarkan field stok) dan pada bagian
Calculate this summary : pilih Sum (menjumlahkan). Kemudian tekan
tombol OK. Letakkan di sebelah tulisan Jumlah Stok: pada Section 4.
Gambar 6.31| Insert Summary Jumlah Stok
14. Untuk menambah nomor halaman pada laporan, klik kanan dan pilih
Insert - Special Field - Page N of M atau klik kanan dan pilih Insert -
Special Field - Page Number. Misalkan pada latihan ini dipilih model
Page N of M dan ditempatkan pada Section 5.
1
2
1
2
52 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.32| Menambah Halaman
Gambar 6.33| Tampilan Laporan di Crystal Report
Menambahkan Coding Untuk Menampilkan Laporan Dengan Crystal
Report
erikutnya adalah tahapan coding. Untuk tugas praktik Modul 2 soal
nomor 3, pada menu Laporan - Laporan data barang, tambahkan
sebuah form baru, misalnya diberi nama FrmLapBarang. Pada saat
submenu Laporan data barang diklik, tampilkan FrmLapBarang
(FrmLapBarang.Show()). Tampilan untuk FrmLapBarang adalah sebagai
berikut.
B
1
2
3
53 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.34| Tampilan FrmLapBarang
Coding pada FrmLapBarang adalah sebagai berikut.
Imports System.Data.SqlClient
Public Class FrmLapBarang
Dim con As SqlConnection
Dim cmd As SqlCommand
Dim adBarang As SqlDataAdapter
Dim dsMShop As DataSet
Private Sub FrmLapBarang_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
con = New SqlConnection("Data source=localhost; Initial catalog=MShop;
Integrated Security=true")
con.Open()
cmd = New SqlCommand("Select * from Barang", con)
adBarang = New SqlDataAdapter(cmd)
dsMShop = New DataSet
adBarang.Fill(dsMShop, "Barang")
con.Close()
Dim row As DataRow
For Each row In dsMShop.Tables("Barang").Rows
cboDari.Items.Add(row(0))
cboSampai.Items.Add(row(0))
Next
End Sub
Private Sub btnLapSeluruhBarang_Click(sender As Object, e As EventArgs)
Handles btnLapSeluruhBarang.Click
Dim cr As New CrystalReport1
Dim preview As New frmCrystalReportViewer
cr.SetDataSource(dsMShop)
preview.CrystalReportViewer1.ReportSource = cr
preview.WindowState = FormWindowState.Maximized
preview.Show()
End Sub
Private Sub btnLaporan_Click(sender As Object, e As EventArgs) Handles
btnLaporan.Click
Dim cr As New CrystalReport1
Dim preview As New frmCrystalReportViewer
btnLapSeluruhBarang
cboDari
cboSampai
btnLaporan
54 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
cr.SetDataSource(dsMShop)
preview.CrystalReportViewer1.ReportSource = cr
preview.CrystalReportViewer1.SelectionFormula = "{Barang.kode_barang} >=
'" & cboDari.Text.Trim & "' And {Barang.kode_barang} <= '" & cboSampai.Text.Trim &
"'"
preview.WindowState = FormWindowState.Maximized
preview.Show()
End Sub
End Class
Gambar 6.35| Listing Program
Jika form dijalankan, maka akan muncul kesalahan seperti pada gambar berikut ini.
Gambar 6.36| Kesalahan Pada Saat Crystal Report Dijalankan
Untuk memperbaikinya, lakukan langkah-langkah sebagai berikut:
1. Klik tombol OK pada pesan kesalahan yang muncul. Selanjutnya klik icon Stop Debugging.
Gambar 6.37| Klik Icon Stop Debugging
2. Klik ganda pada file App.Config.
1
55 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.38| Isi File App.config
3. Tambahkan "useLegacyV2RuntimeActivationPolicy="True"" di bagian startup.
Gambar 6.39| Isi File App.config Setelah Penambahan Atribut
Setelah dilakukan konfigurasi pada file App.config, jalankan kembali Project
MShop. Tampilan laporan pada saat tombol btnLapSeluruhBarang diklik
adalah sebagai berikut.
1
1
56 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 6.40| Tampilan Laporan Seluruh Data Barang
Tampilan laporan pada saat ComboBox cboDari diisi dengan B001,
ComboBox cboSampai diisi dengan B010, dan tombol btnLaporan diklik
adalah sebagai berikut.
Gambar 6.41 | Tampilan Laporan Barang berdasarkan Kode Barang
TUGAS
Tugas praktik pada modul ini berhubungan dengan Modul 2 soal nomor 3,
dimana laporan pada menu-menu tersebut dikerjakan pada latihan berikut
ini.
1. Ikuti petunjuk dosen praktik untuk membuat laporan dari database
MShop untuk Laporan Pelanggan.
2. Ikuti petunjuk dosen praktik untuk membuat laporan dari database
MShop untuk Laporan Pemasok.
3. Ikuti petunjuk dosen praktik untuk membuat laporan dari database
MShop untuk Laporan Penjualan.
57 | M O D U L 6 : P E M B U A T A N L A P O R A N D A T A B A S E
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
4. Ikuti petunjuk dosen praktik untuk membuat laporan dari database
MShop untuk Laporan Retur Penjualan.
5. Ikuti petunjuk dosen praktik untuk membuat laporan dari database
MShop untuk Laporan Pembelian.
6. Ikuti petunjuk dosen praktik untuk membuat laporan dari database
MShop untuk Laporan Retur Pembelian.
MODUL 7
S I S T E M I N F O R M A S I | S T M I K M I K R O S K I L
LINQ TO SQL
Setelah mempelajari dan mempraktikkan Modul 7, mahasiswa diharapkan dapat:
Memahami penggunaan LINQ pada SQL
Menggunakan LINQ pada SQL
59 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
INQ singkatan dari Language Integrated Query, dimana LINQ sendiri
merupakan fasilitas baru yang disertakan pada .NET Framework 3.5
dan telah terintegrasi jika meng-install Microsoft Visual Studio.
Perbedaan antara LINQ dengan query yang digunakan selama ini dalam
database adalah selain bisa melakukan query pada database, LINQ juga
dapat melakukan query terhadap data dalam format XML, entities, object,
dan sebagainya.
Teknologi LINQ bertujuan untuk membuat standarisasi dan memudahkan
pattern proses pengaksesan data. Dengan adanya standar pengaksesan
data, para programmer dapat melakukan cara yang sama dalam memproses
beberapa format data (misalnya database, XML, ataupun collection data
object).
Berikut ini merupakan diagram arsitektur LINQ secara global dalam proses
pengaksesan data.
Gambar 7.1| Arsitektur LINQ
Secara global, LINQ dapat digunakan untuk melakukan query ke dalam
beberapa format data berikut:
LINQ to Object
LINQ to XML
LINQ to Database (SQL dan Dataset)
LINQ to Entity
LINQ to SQL
ntuk memudahkan dalam menggunakan LINQ to SQL di Visual Studio
2012, telah disediakan designer untuk membuat mapping objek-
objek terhadap tabel-tabel yang terdapat di dalam sebuah database.
Hal yang perlu dilakukan untuk melakukan design LINQ to SQL terhadap
objek-objek database yaitu dengan melakukan drag dan drop objek-objek
database seperti tabel, stored procedure, view, dan function ke dalam O/R
(Object/Relational) designer atau LINQ to SQL designer. Untuk penggunaan
LINQ to SQL pada Visual Studio 2012 telah ditambahkan sebuah template
item yang bernama LINQ to SQL Classes.
Template item ini akan membantu pada saat membuat sebuah class object
dari struktur database yang ada, nantinya akan disebut sebagai
L
U
60 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
DataContext, kemudian dari DataContext ini dapat digunakan untuk
pembacaan dengan LINQ.
Pertama, buatlah sebuah project Visual Basic baru, kemudian tambahkan
item baru dengan klik kanan pada project dalam Solution Explorer dan pilih
ADD - New Items....
Gambar 7.2| Menambah Item Baru Ke Dalam Project
Dari template item yang tersedia, pilih LINQ to SQL Classes, kemudian klik
tombol Add.
Gambar 7.3 | Menambah LINQ to SQL Classes
Setelah proses ini akan didapatkan sebuah file baru ber-extension .dbml
pada project, dan juga akan muncul sebuah layar kerja Object Relational
baru seperti gambar berikut ini.
61 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 7.4| Layar Kerja O/R Designer
Pada bagian kiri dapat diletakkan tabel database ke dalamnya, dan secara
otomatis Visual Studio 2012 akan membuatkan sebuah class objek baru dari
tabel yang diletakkan di dalamnya, berikut dengan gambar visualisasinya.
Pada bagian kanan dapat diletakkan method atau stored procedure yang
terdapat dalam database, dimana nantinya stored procedure tersebut dapat
dipanggil sebagai sebuah method dalam proses penggunaannya.
Latihan
ada contoh ini akan digunakan tabel Barang yang terdapat di dalam
database MShop yang telah dibuat sebelumnya di SQL Server 2012.
Untuk membuat class objek baru, hanya perlu membuka panel SQL Server
Object Explorer yang telah terkoneksi dengan database dan kemudian
melakukan drag and drop tabel yang akan dibuat Class Object-nya dari SQL
Server Object Explorer ke dalam area Object Relational. Hasil proses drag
and drop akan terbentuk class object baru yang bernama DataContext.
Gambar 7.5| Membuat Class Object Dengan O/R Designer
P
62 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Struktur class object DataContext yang terbentuk pada area Object
Relational akan benar-benar sama dengan struktur database yang di-drag
dari SQL Server Object Explorer.
Setelah DataContext terbentuk, class tersebut dapat digunakan pada form
kerja. Untuk itu, buka Code Editor untuk Form1 yang akan digunakan,
kemudian tambahkan deklarasi variabel baru yang mengambil struktur dari
DataContext pada bagian atas script setelah baris Public Class Form1.
Dim ds As New DataClasses1DataContext
Catatan
Kemudian, tambahkan sebuah DataGridView baru ke dalam form yang akan
digunakan dan tambahkan script proses berikut ke dalam event Load dari
Form1.
: Nama DataContext dapat dilihat pada Properties Window seperti
pada gambar di atas.
1. Sub tampil()
2. Dim LINQ = From brg In ds.Barangs _
3. Select brg
4.
5. Dim kolom(3) As String
6. DGVBarang.Rows.Clear()
7. For Each brg In LINQ
8. kolom(0) = brg.Kode_Barang
9. kolom(1) = brg.Nama_Barang
10. kolom(2) = FormatCurrency(brg.Harga)
11. kolom(3) = CInt(brg.Jumlah)
12. DGVBarang.Rows.Add(kolom)
13. Next
14. End Sub
15.
16. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
17. tampil()
18. End Sub
Baris 2 dan 3 : Merupakan proses LINQ yang mengambil data barang
dalam DataContext barang yang telah dibentuk
sebelumnya pada file DataClasses1DataContext.dbml.
Baris 5 s.d. 13 : Setelah selesai melakukan proses query, selanjutnya
proses akan menampilkan data yang didapatkan ke
dalam sebuah DataGridView.
Hasil dari perintah yang telah dijalankan di atas dapat dilihat pada gambar
berikut ini.
Gambar 7.6| Hasil Menampilkan Data Barang Menggunakan LINQ
63 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Meng-insert Data
ntuk menambah data baru ke database dari LINQ to SQL, terlebih
dahulu harus dibuat instance objek dari class yang merupakan
mapping terhadap tabel yang akan digunakan. Misalnya, akan
ditambahkan data barang baru, sehingga harus dibuat terlebih dahulu
instance dari class barang tersebut.
LINQ to SQL menyediakan method InsertOnSubmit() untuk menambahkan
data baru lewat class yang bersangkutan dengan melakukan passing input
parameter berupa instance class yang telah dibuat sebelumnya. Untuk
membuat perubahan tersebut, persistent LINQ to SQL menyediakan method
SubmitChanges() dari instance class DataContext untuk semua perubahan,
baik Insert, Update, maupun Delete.
Berikut ini adalah contoh kode program untuk menambahkan data barang
baru ke tabel barang.
1. Private Sub BtnTambah_Click(sender As Object, e As EventArgs) Handles
BtnTambah.Click
2. Dim brg As New Barang
3.
4. brg.Kode_Barang = TxtKode.Text
5. brg.Nama_Barang = TxtNama.Text
6. brg.Harga = TxtHarga.Text
7. brg.Jumlah = TxtJumlah.Text
8.
9. ds.Barangs.InsertOnSubmit(brg)
10. ds.SubmitChanges()
11.
12. tampil()
13. End Sub
Gambar 7.7| Meng-input Data Barang
U
64 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 7.8| Hasil Proses Meng-input Data Barang
Meng-update Data
ara yang digunakan untuk melakukan update data agak berbeda jika
dibandingkan dengan meng-insert data baru. Untuk melakukan
update harus terlebih dahulu mencari data yang sesuai dengan
kriteria yang diinginkan. Apabila data yang diinginkan merupakan data
tunggal, maka dapat dicari dengan perintah Single. Setelah itu, ubah value
dari properti yang ingin diubah nilainya.
Berikut ini adalah contoh penggunaan method update data terhadap data
barang dengan kriteria spesifik sehingga hanya data tunggal yang
dikembalikan.
1. Private Sub DGVBarang_MouseClick(sender As Object, e As MouseEventArgs)
Handles DGVBarang.MouseClick
2. TxtKode.Text = DGVBarang.CurrentRow.Cells(0).Value
3. TxtNama.Text = DGVBarang.CurrentRow.Cells(1).Value
4. TxtHarga.Text = DGVBarang.CurrentRow.Cells(2).Value
5. TxtJumlah.Text = DGVBarang.CurrentRow.Cells(3).Value
6. End Sub
7.
8. Private Sub BtnUbah_Click(sender As Object, e As EventArgs) Handles
BtnUbah.Click
9. Dim LINQ = (From brg In ds.Barangs _
10. Where brg.Kode_Barang = TxtKode.Text
11. Select brg).Single
12.
13. LINQ.Nama_Barang = TxtNama.Text
14. LINQ.Harga = TxtHarga.Text
15. LINQ.Jumlah = TxtJumlah.Text
16. ds.SubmitChanges()
17. tampil()
18. End Sub
C
65 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
Gambar 7.9| Mengubah Data Barang
Gambar 7.10| Hasil Proses Mengubah Data Barang
Men-delete Data
ntuk menghapus data telah disediakan method DeleteOnSubmit dari
class yang digunakan, sedangkan untuk membuat perubahannya
persistent digunakan method SubmitChanges() dari instance
DataContext class. Hal ini mirip dengan teknik untuk melakukan insert data
baru.
Berikut ini adalah contoh simulasi untuk melakukan delete data terhadap
tabel barang.
1. Private Sub BtnHapus_Click(sender As Object, e As EventArgs) Handles
BtnHapus.Click
2. Dim LINQ = (From brg In ds.Barangs _
3. Where brg.Kode_Barang = TxtKode.Text
4. Select brg).Single
5.
U
66 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
6. ds.Barangs.DeleteOnSubmit(LINQ)
7. ds.SubmitChanges()
8.
9. tampil()
10. End Sub
Gambar 7.11| Menghapus Data Barang
Gambar 7.12| Hasil Proses Menghapus Data Barang
TUGAS
1. Dengan menggunakan tabel pemasok pada database MShop, buatlah
sebuah aplikasi pengolahan data pemasok dengan
mengimplementasikan LINQ to SQL (duplikasi form pemasok pada
Modul 4).
2. Dengan menggunakan tabel pelanggan pada database MShop, buatlah
sebuah aplikasi pengolahan data pelanggan dengan
67 | M O D U L 7 : L I N Q T O S Q L
G U N A W A N , R I N R I N , H A N E S | B A H A S A P E M R O G R A M A N I I
mengimplementasikan LINQ to SQL (duplikasi form pelanggan pada
Modul 5).
3. Dengan menggunakan tabel Header_Penjualan dan tabel
Detail_Penjualan pada database MShop, buatlah sebuah aplikasi
pengolahan data penjualan dengan mengimplementasikan LINQ to SQL
(duplikasi form penjualan pada Modul 4).