modul prak. bahasa pemrograman ii, . . silahkan download :)
TRANSCRIPT
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
1/70
Penuntun PraktikBahasa Pemrograman IIProdi. 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 20212TELP. (061) 4573767 4533705 4533708FAX. (061) 4567789
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
2/70
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 ................................................................................................ 12. MENU, TOOLBAR, DAN STATUSBAR ............................................................................ 73. ADO .NET ................................................................................................................... 124. PEMROGRAMAN DATABASE DENGAN ADO .NET (MODEL CONNECTED) ................ 195. PEMROGRAMAN DATABASE DENGAN ADO .NET (MODEL DISCONNECTED) ........... 276. PEMBUATAN LAPORAN DATABASE ........................................................................... 377. LINQ TO SQL .............................................................................................................. 58
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
3/70
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
4/70
MODUL1
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
5/70
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
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
6/70
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
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 gerbanguntuk 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 yangdimaksud 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 jikatidak ada, maka akan dibuat file baru. Operasi tulis ke file dan baca dari
file dapat dilakukan.
FileMode.Create: untuk membuat file baru dan menimpa/menggantikanfile yang sudah ada dengan nama yang sama. Hanya operasi tulis yang
dapat dilakukan.
FileMode.CreateNew: untuk membuat file baru. Jika file tersebut sudahada, 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 BinaryWriterdan BinaryReader.
2. Menggunakan plain text dengan menggunakan objek StreamWriter danStreamReader.
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 stringTrue/False) ketika dituliskan ke file. Untuk mengambil informasi, dapat
C
O
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
7/70
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
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 isifile secara sengaja.
2. Penyimpanan biner memakan tempat lebih hemat daripadapenyimpanan 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 dandibaca 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 fileName Mengambil nama file saja
B
U
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
8/70
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
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 teksdengan menggunakan objek My.
3. Buatlah aplikasi untuk memanipulasi data supplier pada sebuah file tekssupplier.txt. Isi dari file tersebut akan ditampilkan pada sebuah ListBox.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
9/70
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
4. Sama seperti soal nomor 3 sebelumnya, hanya saja isi dari file akanditampilkan pada sebuah DataGridView.
5. Buatlah aplikasi untuk menampilkan daftar direktori dan file yangterdapat pada suatu drive tertentu.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
10/70
MODUL2
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
11/70
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-ikonperintah 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 padaarea editor. Hal ini juga dapat diimplementasikan pada aplikasi Windows
P
M
A
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
12/70
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 jugamenyediakan 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 danukuran form.
2. Buatlah aplikasi teks editor (menggunakan RichTextBox) yang berisitoolbar dan statusbar, dimana:
Toolbar memiliki fungsi untuk mengatur style tulisan, dan Statusbar memiliki fungsi untuk menampilkan jam sistem.
S
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
13/70
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 menuakan dikerjakan pada modul-modul selanjutnya Model Connected,
Model Disconnected, dan Crystal Report).
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
14/70
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 BarangData PelangganData PenggunaData Pemasok
PenjualanRetur PenjualanPembelianRetur Pembelian
Laporan BarangLaporan PelangganLaporan PemasokLaporan PenjualanLaporan Retur PenjualanLaporan PembelianLaporan Retur Pembelian
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
15/70
MODUL3
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
16/70
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 aksesyang 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 yangdibutuhkan, 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 side2. DataSet dan DataReader menggantikan RecordSet3. DataAdapter4. Penyimpanan data yang berbasiskan XML
S
P
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
17/70
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 dalamkondisi 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
18/70
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 objectMenyediakan koneksi aktual ke database.
b. Command objectDigunakan 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 menjalankanperintah di database:
ExecuteNonQuery, menjalankan perintah yang tidak memerlukanreturn value, seperti INSERT, UPDATE, atau DELETE.
ExecuteScalar, mengembalikan satu nilai dari hasil query database. ExecuteReader, mengembalikan result set melalui DataReader
objek.
c. DataReader objectMenyediakan connected recordset tipe forward-only, read-only.
DataReader dikembalikan sebagai hasil dari metoda ExecuteReader di
Command object.
d. DataAdapter objectMem-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 daridatabase. Perintah ini dieksekusi pada saat metoda Fill() dipanggil
dan mengisi DataTable atau DataSet.
InsertCommand, berisi teks atau objek yang memasukkan satu bariske tabel.
DeleteCommand, berisi teks atau objek yang menghapus baris daritabel.
UpdateCommand, berisi teks atau objek yang meng-update nilai kedatabase. 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
19/70
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 ODBCb. Data Provider untuk OLE DBc. Data Provider untuk SQL Serverd. 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.DataMengandung class-class dasar untuk mengatur data seperti DataSet danDataRelation.
b. System.Data.SqlClientMengandung class-class yang digunakan untuk mengkoneksikan dengan
database Microsoft SQL Server. Di dalamnya terdapat class-class seperti
SqlCommand dan SqlConnection.
c. System.Data.OracleMengandung class-class yang digunakan untuk mengkoneksikan dengan
database Oracle. Di dalamnya terdapat class-class seperti
OracleCommand dan OracleConnection.
d. System.Data.OleDbMengandung class-class yang digunakan untuk mengkoneksikan denganprovider 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
20/70
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 tigabagian informasi, yaitu:
Koneksi ke database SQL Server, baik komputer lokal ataupun komputerlain 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 accountWindows (Windows Authentication):
Contoh:
ImportsSystem.DataImportsSystem.Data.SqlClient
PublicClassForm1PrivateSubForm1_Load(sender AsObject, e As
EventArgs) HandlesMyBase.Load
Dimconstring AsString= "Data Source=localhost;
Initial Catalog=Northwind; Integrated Security=True"Dimcon AsNewSqlConnection(constring)
con.Open()
EndSub
EndClass
- Koneksi ke database SQL Server 2012 dengan menggunakan useraccount SQL Server (SQL Server Authentication) dengan menuliskan
user id dan password:
ImportsSystem.Data
ImportsSystem.Data.SqlClient
PublicClassForm1
PrivateSubForm1_Load(sender AsObject, e As
EventArgs) HandlesMyBase.LoadDimconstring AsString= "Data Source=localhost;
Initial Catalog=Northwind; User Id=sa; Password=1234"
Dimcon AsNewSqlConnection(constring)con.Open()
EndSub
EndClass
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
21/70
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
ImportsSystem.DataImportsSystem.Data.SqlClient
PublicClassForm1PrivateSubForm1_Load(sender AsObject, e AsEventArgs)
HandlesMyBase.LoadDimconstring AsString= "Data Source=localhost;
Initial Catalog=Northwind; Integrated Security=True"Dimcon AsNewSqlConnection(constring)
con.Open()EndSub
EndClass
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:
ImportsSystem.Data
ImportsSystem.Data.SqlClient
PublicClassForm1PrivateSubForm1_Load(sender AsObject, e AsEventArgs)
HandlesMyBase.Load
Dimconstring AsString= "Data Source=localhost;Initial Catalog=Northwind; User Id=sa; Password=1234"
Dimcon AsNewSqlConnection(constring)
con.Open()
DimsqlString AsString= "Select * from ORDERS where
OrderDate < '2014/01/01' and OrderDate > '1987/01/01'"Dimcmd AsNewSqlCommand(sqlString, con)
EndSub
EndClass
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
22/70
MODUL4
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
23/70
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 Masterdengan menggunakan model connected ADO .NET.
Database: MShop
Tabel: Barang
G
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
24/70
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 dataBarang yang telah disimpan ke tabel Barang pada sebuah ListBox.
b. Jika tombol Preview dengan ListView diklik, maka tampilkan dataBarang yang telah disimpan ke tabel Barang pada sebuah ListView.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
25/70
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 tampilkandata Barang yang telah disimpan ke tabel Barang pada sebuah
DataGridView.
2. Buatlah aplikasi untuk pengolahan data pelanggan pada menu Masterdengan 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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
26/70
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 menuTransaksi 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 sebuahDataGridView.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
27/70
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 menuTransaksi dengan menggunakan model connected ADO .NET.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
28/70
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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
29/70
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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
30/70
MODUL5
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
31/70
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 danmentransfernya 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 XMLke sebuah file.
d. Kemampuan menghubungkan data pada kontrol dalam form Windowsatau halaman web ASP .NET untuk tampilan langsung dan tidakmembutuhkan 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 berpindahantarbaris. 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
32/70
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 dariDataSet ke data source, serta me-refresh tabel DataSet.
a. Melakukan koneksi ke database dan mengisi record dari data source(SQL Server) ke DataSetcon = New SqlConnection(data source=/; initial catalog=; integrated
security=true)
ds = New DataSet
cmd = New SqlCommand(select * from , con)ad = New SqlDataAdapter(cmd)
ad.Fill(ds, )b. Menampilkan record ke DataGridView
Cara 1:Me.dgv1.ColumnCount =
For i = 0 To ds.Tables().Rows.Count 1
Dim dr As DataRowdr = ds.Tables().Rows(i)
Me.dgv1.Rows.Add(dr.Item())
Next
Cara 2:Me.dgv1.ColumnCount =
For Each x As DataRow in ds.Tables().RowsMe.dgv1.Rows.Add(x.Item())
Next
Cara 3:Me.dgv1.DataSource = ds.Tables()
c. Men-setting primary key (juga sebagai kunci pencarian)Dim dc(n) as DataColumn
dc(0) = ds.Tables().Columns()dc(1) = ds.Tables().Columns()
dc(n) = ds.Tables().Columns()ds.Tables().PrimaryKey = dc
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
33/70
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 recordDim dr As DataRowdr = ds.Tables().Rows.Find()
If dr Isnot Nothing Then
Else
End If
e. Menambah recordDim dr As DataRow
dr = ds.Tables().NewRow
dr() = ds.Tables().Rows.Add(dr)
f. Mengubah recordDim dr As DataRow
dr = ds.Tables().Rows.Find()
If dr Isnot Nothing Then
dr() =
End If
g. Menghapus recordDim dr As DataRow
dr = ds.Tables().Rows.Find()If dr Isnot Nothing Then dr.Delete()
h. Meng-update perubahan record dari DataSet ke data sourceDim cb As New SqlCommandBuilder(ad)
ad = cb.DataAdapterDim jum As Integer = ad.Update(ds, )
MsgBox(jum & record berhasil diupdate ke data source)
i. Me-refresh tabel di DataSetds.Tables().Clear()ad.Fill(ds, )
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 masukke dalam aplikasi dengan menggunakan model disconnected ADO .NET.
Tabel: Pengguna
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
34/70
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 datapengguna yang telah disimpan ke tabel Pengguna pada sebuah
ListBox.
b. Jika tombol Preview dengan ListView diklik, maka tampilkan datapengguna yang telah disimpan ke tabel Pengguna pada sebuah
ListView.
c. Jika tombol Preview dengan DataGridView diklik, maka tampilkandata pengguna yang telah disimpan ke tabel Pengguna pada sebuahDataGridView.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
35/70
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 Masterdengan 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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
36/70
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 Transaksidengan menggunakan model disconnected ADO .NET.
Tabel: Header_Pembelian
Tabel: Detail_Pembelian
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
37/70
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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
38/70
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 menuTransaksi 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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
39/70
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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
40/70
MODUL6
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
41/70
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 datasource langsung ataupun dari sumber data yang lain seperti DataSet.
2. CrystalReportParts Viewer menampilkan informasi strategis sepertisummary atau grafik.
3. Hierarchical Field Support mendukung hierarchical field seperti UserDefined 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
42/70
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 NamaProject|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 templateDataSet. Setelah itu, tekan tombol Add.
S1
2
3 2
1
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
43/70
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 adalahmembuat 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
44/70
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 judulDataTable, kemudian ubah nama tabelnya, misalkan diubah menjadi
Barang.
Gambar 6.7| Mengubah Nama DataTable
5. Langkah selanjutnya adalah membuat kolom/field dari tabel. Klik kananpada 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
45/70
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. Klikkanan pada DataColumn, kemudian pilih Add - Key.
Gambar 6.10| Mengatur Primary Key Pada DataTable
7. Akan muncul sebuah kotak dialog Unique Constraint. Centangkolom/field yang menjadi kunci. Pada tabel Barang yang dipraktikkan,
yang menjadi kunci adalah kode_barang, sehingga yang dicentangadalah kolom/field kode_barang. Tekan tombol OK.
1
2
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
46/70
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 mengklikpada 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 menjadiSystem.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 nomor3. Langkah-langkah pengerjaannya adalah sebagai berikut:
S
1
2
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
47/70
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 NamaProject|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, pilihCommon Items di bagian Reporting, kemudian pilih template Crystal
Reports. Setelah itu, tekan tombol Add.
Gambar 6.15| Pemilihan Item Crystal Report
12
3 2
1
1
2
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
48/70
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. Tekantombol 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 judullaporan, klik kanan dan pilih Insert - Text Object. Judul laporanditempatkan 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
49/70
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
12
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
50/70
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 padaDataSet dengan cara mengklik kanan pada Database Fields - Database
Expert.
1
2
3
1
2
3
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
51/70
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
52/70
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 adalahdengan 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 dandrag untuk membuat garis.
Gambar 6.27| Membuat Garis
1
2
1
2
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
53/70
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 klikkanan dan pilih Insert Summary....
Gambar 6.29| Menghitung Total Barang
12.Setelah kotak dialog Insert Summary tampil, untuk mendapatkan totalbarang, pada bagian Choose the field to summarize: pilih
Barang.kode_barang (karena menghitung total barang berdasarkan fieldkode_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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
54/70
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 klikkanan 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 pilihInsert - 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
55/70
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
56/70
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.ImportsSystem.Data.SqlClient
PublicClassFrmLapBarang
Dimcon AsSqlConnectionDimcmd AsSqlCommand
DimadBarang AsSqlDataAdapter
DimdsMShop AsDataSet
PrivateSubFrmLapBarang_Load(sender AsObject, e AsEventArgs) Handles
MyBase.Load
con = NewSqlConnection("Data source=localhost; Initial catalog=MShop;Integrated Security=true")
con.Open()
cmd = NewSqlCommand("Select * from Barang", con)adBarang = NewSqlDataAdapter(cmd)
dsMShop = NewDataSetadBarang.Fill(dsMShop, "Barang")
con.Close()
Dimrow AsDataRowForEachrow IndsMShop.Tables("Barang").Rows
cboDari.Items.Add(row(0))
cboSampai.Items.Add(row(0))Next
EndSub
PrivateSubbtnLapSeluruhBarang_Click(sender AsObject, e AsEventArgs)
HandlesbtnLapSeluruhBarang.Click
Dimcr AsNewCrystalReport1Dimpreview AsNewfrmCrystalReportViewer
cr.SetDataSource(dsMShop)
preview.CrystalReportViewer1.ReportSource = crpreview.WindowState = FormWindowState.Maximized
preview.Show()EndSub
PrivateSubbtnLaporan_Click(sender AsObject, e AsEventArgs) HandlesbtnLaporan.Click
Dimcr AsNewCrystalReport1
Dimpreview AsNewfrmCrystalReportViewer
btnLapSeluruhBarang
cboDari
cboSampai
btnLaporan
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
57/70
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}
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
58/70
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
59/70
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 databaseMShop untuk Laporan Pelanggan.
2. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Pemasok.
3. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Penjualan.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
60/70
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 databaseMShop untuk Laporan Retur Penjualan.
5. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Pembelian.
6. Ikuti petunjuk dosen praktik untuk membuat laporan dari databaseMShop untuk Laporan Retur Pembelian.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
61/70
MODUL7
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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
62/70
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 pengaksesandata, 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 EntityLINQ 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
63/70
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.
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
64/70
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 secaraotomatis 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
65/70
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.Dimds AsNewDataClasses1DataContext
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 sepertipada gambar di atas.
1. Subtampil()2. DimLINQ = Frombrg Inds.Barangs _3. Selectbrg4.5. Dimkolom(3) AsString6. DGVBarang.Rows.Clear()7. ForEachbrg InLINQ8. kolom(0) = brg.Kode_Barang9. kolom(1) = brg.Nama_Barang10. kolom(2) = FormatCurrency(brg.Harga)11. kolom(3) = CInt(brg.Jumlah)12. DGVBarang.Rows.Add(kolom)13. Next14. EndSub15.16. PrivateSubForm1_Load(sender AsObject, e AsEventArgs) HandlesMyBase.Load17. tampil()18. EndSubBaris 2 dan 3 : Merupakan proses LINQ yang mengambil data barang
dalam DataContext barang yang telah dibentuksebelumnya 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
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
66/70
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. PrivateSubBtnTambah_Click(sender AsObject, e AsEventArgs) Handles
BtnTambah.Click
2. Dimbrg AsNewBarang3.4.
brg.Kode_Barang = TxtKode.Text5. brg.Nama_Barang = TxtNama.Text
6. brg.Harga = TxtHarga.Text7. brg.Jumlah = TxtJumlah.Text8.9. ds.Barangs.InsertOnSubmit(brg)10. ds.SubmitChanges()11.12. tampil()13. EndSub
Gambar 7.7| Meng-input Data Barang
U
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
67/70
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. PrivateSubDGVBarang_MouseClick(sender AsObject, e AsMouseEventArgs)
HandlesDGVBarang.MouseClick2. TxtKode.Text = DGVBarang.CurrentRow.Cells(0).Value3. TxtNama.Text = DGVBarang.CurrentRow.Cells(1).Value4. TxtHarga.Text = DGVBarang.CurrentRow.Cells(2).Value5. TxtJumlah.Text = DGVBarang.CurrentRow.Cells(3).Value6. EndSub7.8. PrivateSubBtnUbah_Click(sender AsObject, e AsEventArgs) Handles
BtnUbah.Click
9. DimLINQ = (Frombrg Inds.Barangs _10.
Wherebrg.Kode_Barang = TxtKode.Text11. Selectbrg).Single
12.13. LINQ.Nama_Barang = TxtNama.Text14. LINQ.Harga = TxtHarga.Text15. LINQ.Jumlah = TxtJumlah.Text16. ds.SubmitChanges()17. tampil()18. EndSub
C
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
68/70
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. PrivateSubBtnHapus_Click(sender AsObject, e AsEventArgs) Handles
BtnHapus.Click
2. DimLINQ = (Frombrg Inds.Barangs _3. Wherebrg.Kode_Barang = TxtKode.Text4. Selectbrg).Single5.
U
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
69/70
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. EndSub
Gambar 7.11| Menghapus Data Barang
Gambar 7.12| Hasil Proses Menghapus Data Barang
TUGAS
1. Dengan menggunakan tabel pemasok pada database MShop, buatlahsebuah aplikasi pengolahan data pemasok dengan
mengimplementasikan LINQ to SQL (duplikasi form pemasok pada
Modul 4).
2. Dengan menggunakan tabel pelanggan pada database MShop, buatlahsebuah aplikasi pengolahan data pelanggan dengan
-
7/22/2019 Modul Prak. Bahasa Pemrograman II, . . silahkan download :)
70/70
67 | M O D U L 7 : L I N Q T O S Q L
mengimplementasikan LINQ to SQL (duplikasi form pelanggan pada
Modul 5).
3. Dengan menggunakan tabel Header_Penjualan dan tabelDetail_Penjualan pada database MShop, buatlah sebuah aplikasi
pengolahan data penjualan dengan mengimplementasikan LINQ to SQL
(duplikasi form penjualan pada Modul 4).