Database
2.1 Menciptakan Database Pada Visual Studio
KONSEP:
Aplikasi .NET menggunakan sejumlah komponen, yang ditata dalam tingkat-tingkat,
untuk terhubung ke suatu database. Visual Studio menyediakan sejumlah perangkat
yang dapat Anda pakai untuk menciptakan database dan untuk mengkonfigurasi
sejumlah komponen yang diperlukan aplikasi untuk terhubung ke database.
Menghubungkan Aplikasi Ke Database
Aplikasi .NET memerlukan sejumlah komponen
yang dapat dipakai untuk menghubungkannya dengan dan memanipulasi suatu
database. Komponen-komponen tersebut ditempatkan pada lapisan-lapisan seperti
ditunjukkan pada Gambar 2.1.
Gambar 2.1 Komponen-komponen yang digunakan oleh suatu
aplikasi untuk terhubung ke sebuah database
Berikut adalah simpulan dari lapisan-lapisan
yang ditunjukkan pada gambar tersebut:
·
Data Source: Seperti diimplikasikan dari namanya, ia merupakan sebuah
sumber data yang dapat dipakai oleh aplikasi. Sumber data biasanya adalah
database, tetapi ia bisa pula berupa spreadsheet Excel, data XML, file teks,
atau layanan Web.
·
Table Adapter: Table adapter menghubungkan sumber data dan membaca data
dari suatu tabel di dalam sumber data. Table adapter juga dapat memperbarui
tabel di dalam sumber data.
· Dataset: Ia menyalin suatu
tabel dari table adapter dan menempatkan salinan tabel tersebut di dalam
memori. Daripada bekerja langsung dengan database, aplikasi bekerja dengan dataset,
memodifikasi baris, menghapus baris, menambahkan baris baru, dan lainnya.
Kemudian, dataset dapat menginstruksikan table adapter untuk menulis perubahan
yang ada ke dalam database.
· Binding Source: Ia merupakan sebuah komponen yang dapat menghubungkan kontrol-kontrol
pada antarmuka use secara langsung ke suatu dataset.
Visual Studio menyediakan sejumlah wizard
yang mempermudah dalam menciptakan dan mengkonfigurasi komponen-komponen yang
diperlukan. Pada Tutorial 2.1, Anda akan membuat sebuah projek C# baru dan
menggunakan Visual Studio untuk melakukan hal-hal berikut:
·
Menciptakan sebuah database SQL Server
·
Merancang suatu tabel di dalam database.
·
Menambahkan data ke dalam tabel
Tutorial 2.1: Mengawali Aplikasi Buku Telepon dan
Menciptakan Database Telepon.mdf
Pada dua
tutorial ke depan, Anda menciptakan sebuah aplikasi yang menggunakan suatu
database untuk menyimpan sejumlah nama dan nomor telepon. Pada tutorial ini,
Anda akan mengawali aplikasi dengan menciptakan database. Pada tutorial
berikutnya, Anda akan menghubungkan aplikasi dengan database, menambahkan suatu
dataset, dan menambahkan sebuah kontrol pada form yang dapat dipakai user untuk
berinteraksi dengan database.
Langkah 1: Awali Visual Studio. Ciptakan sebuah projek Windows Forms Application dengan nama Buku Telepon.
Langkah 2: Ubah properti Text
dari Form1 menjadi Buku Telepon.
Langkah 3: Selanjutnya, Anda menciptakan sebuah database baru dan
menambahkannya pada projek. Klik PROJECT
pada batang menu dan kemudian pilih Add
New Item….
Langkah 4: Jendela Add New
Item akan ditampilkan. Gulung ke bawah dan pilih Service-based Database, seperti ditunjukkan pada Gambar 2.2. Anda
juga perlu menetapkan nama database pada kotak teks Name di bawah jendela. Nama default, seperti Database1.mdf, akan ditampilkan di situ. Ubah nama tersebut menjadi
DaftarTelepon.mdf. (Pastikan untuk
tetap mempertahankan ekstensi file .mdf).
Langkah 6: Klik tombol Add
pada jendela Add New Item. Ini akan
menambahkan sebuah database SQL Server kosong dengan nama DaftarTelepon.mdf pada projek Anda.
Langkah 7: Jendela Data
Source Configuration Wizard, seperti ditunjukkan pada Gambar 2.3, akan
ditampilkan. Klik tombol Cancel.
(Anda membatalkan proses pada titik ini karena database yang telah Anda
ciptakan sekarang masih kosong. Anda tidak dapat mengkonfigurasi suatu sumber
data sampai Anda menciptakan suatu tabel di dalamnya).
Langkah 7: Lihat pada jendela Solution
Explorer, seperti ditunjukkan pada Gambar 2.4, dan perhatikan bahwa ia
sekarang memuat suatu entri untuk database DaftarTelepon.mdf.
Klik ganda pada entri tersebut. Perhatikan bahwa sebuah jendela baru dengan nama
Server Explorer sekarang dibuka pada area di mana Toolbox ditempatkan. (Jendela tersebut diberi nama Server Explorer pada Visual Studio. Jika Anda menggunakan Visual Studio
Express, jendela itu diberi nama Database
Explorer). Jendela Server Explorer ditampilkan pada Gambar 2.5.
Langkah 8: Sekarang Anda menambahkan sebuah tabel ke dalam
database DaftarTelepon.mdf. Pada
jendela Server Explorer (atau Database Explorer), pastikan bahwa entri DaftarTelepon.mdf diekspansi, seperti
ditunjukkan pada Gambar 2.5. Klik kanan pada Tables, dan seperti ditunjukkan pada Gambar 2.6, klik Add New Table pada menu yang
ditampilkan.
Ini akan
menampilkan Table Designer, seperti
ditunjukkan pada Gambar 2.7. Anda menggunakan Table Designer untuk
menetapkan nama-nama dan tipe data dari tiap kolom tabel.
Langkah 9: Amati Table Designer dan perhatikan bahwa suatu
kolom dengan nama Id secara otomatis
ditambahkan pada tabel. Gambar 2.8 menunjukkan bagaimana membaca informasi
tentang kolom pada Table Designer:
·
Ikon kunci (
) yang ditampilkan di sisi kiri dari nama mengindikasikan
bahwa kolom tersebut adalah kunci primer dari tabel.
·
Nama dari kolom adalah Id.
·
Tipe data kolom adalah int.
·
Kotak periksa Allow Nulls tidak dicentang. Ini berarti
bahwa kolom tersebut harus memiliki sebuah nilai (tidak bisa null).
Anda akan
mempertahankan kolom ini, tetapi Anda akan melakukan sedikit perubahan. Pada
langkah selanjutnya, Anda akan mengubah nama kolom menjadi IDOrang, dan Anda akan membuatnya sebagai kolom identitas (sehingga
database akan secara otomatis membangkitkan nilai-nilai integer unik untuknya).
Langkah 10: Klik pada kolom Name
(Id) pada Table Designer, dan ubah
namanya menjadi IDOrang. Tekan kunci
Tab. Tabel Designer sekarang
akan ditampilkan seperti pada Gambar 2.9.
Langkah 11: Dengan kolom masih diseleksi, perhatikan bahwa jendela Properties menampilkan
properti-properti dari kolom. Gulung ke bawah sampai Anda melihat Identity Spesification. Klik ganda pada Identity
Spesification, dan Anda akan melihat properti (Is Identity), Identity Increment, dan Identitity Seed di
bawahnya, seperti ditunjukkan pada Gambar 2.10.
Langkah 12: Ubah properti (Is
Identity) menjadi True. Ini akan menandari kolom IDOrang sebagai sebuah kolom identitas.
Perhatikan bahwa properti Identity Increment dan Identity Seed keduanya
sekarang ditetapkan menjadi 1, seperti ditunjukkan pada Gambar 2.14.
Langkah 13: Pada Table Designer, tambahkan kolom lain dengan
nama Nama. Pilih nvarchar(50) sebagai tipe datanya dan
hapus centang pada Allow Nulls.
Langkah 14: Tambahkan kolom lain dengan nama Telepon. Pilih nvarchar(50)
sebagai tipe datanya dan hapus centang pada Allow Nulls. Table Designer akan ditampilkan seperti pada Gambar 2.12.
Langkah 15: Anda selesai dalam merancang tabel, tetapi Anda masih
perlu mengubah nama tabel. Ketika Anda menciptakan sebuah tabel baru pada
jendela Server Explorer, ia diberi nama default, dengan nama Table. Perhatikan di bawah jendela Table Designer, Anda
dapat melihat area dengan label T-SQL. Seperti ditunjukkan pada Gambar 2.13,
statemen pertama pada jendela ini menunjukkan nama tabel. Ubah statemen pertama
tersebut sehingga dibaca berikut:
CREATE TABLE [dbo].[Orang]
Jendela T-SQL
sekarang ditampilkan seperti pada Gambar 2.14.
Gambar 16: Meskipun Anda telah mengubah nama tabel pada jendela
T-SQL, perubahan tersebut tidak akan terjadi sampai Anda memperbarui database.
Klik pada tombol Update yang ada di
pojok kiri atas dari Table Designer, seperti ditunjukkan pada
Gambar 2.15.
Langkah 17: Jendela Preview
Database Updates, seperti ditunjukkan pada Gambar 2.16, akan ditampilkan.
Klik pada tombol Update Database. Tunggu sebentar sampai Anda
melihat konfirmasi bahwa pembaruan telah berhasil dilakukan, seperti
ditunjukkan pada Gambar 2.20. Tutup jendela Table Designer.
Langkah 18: Langkah selanjutnya adalah memasukkan data ke dalam
tabel. Pada Server Explorer (atau Database Explorer),
ekspansi entri Tables dan kemudian
klik kanan pada entri Orang. Anda
akan melihat menu seperti ditunjukkan pada Gambar 2.18. Klik Show Table Data pada menu.
Langkah 19: Tabel sekarang akan terbuka dan siap untuk menerima
masukan, seperti ditunjukkan pada Gambar 2.19. Masukkan beberapa nama dan nomor
telepon ke dalam kolom Nama dan
kolom Telepon. Ketika Anda
memasukkan data, ingat beberapa hal berikut:
·
Jangan masukkan nilai-nilai untuk kolom IDOrang. Sistem akan secara otomatis membangkitkan sebuah nilai
untuk kolom IDOrang setiap kali Anda
menambahkan sebuah baris baru.
·
Anda harus memasukkan nilai-nilai untuk kolom Nama dan kolom Telepon.
Ingat bahwa Anda menghapus centang dari Allow
Nulls untuk kedua kolom ini ketika
Anda merancang tabel. Jika Anda pindah ke baris lain tanpa menetapkan
nilai-nilai untuk kolom-kolom ini, Anda akan menerima pesan error.
·
Tanda seru akan ditempatkan di samping kolom ketika Anda memasukkan
data. Ini hanya berarti bahwa data belum disimpan ke dalam database. Ketika
Anda pindah dari baris tertentu, data akan disimpan dan tanda seru tersebut
akan menghilang.
Langkah 20: Setelah Anda memasukkan semua data, klik FILE pada menu Visual Studio dan
kemudian klik Save All. Baris-baris data akan disimpan ke
dalam database DaftarTelepon.mdf.
Langkah 21: Tutup tabel sehingga form Form1 ditampilkan pada jendela Designer.
Ingat kembali apa yang telah Anda lakukan sejauh ini:
·
Anda telah menciptakan sebuah database SQL Server dengan nama DaftarTelepon.mdf.
·
Anda telah menciptakan sebuah tabel dengan nama Orang.
·
Anda telah memasukkan sejumlah data ke dalam tabel Orang.
Pada tutorial
selanjutnya, Anda akan menghubungkan database DaftarTelepon.mdf ke form aplikasi dan menambahkan sebuah kontrol
pada form sehingga user dapat berinteraksi dengan database.
Lokasi File Database
Ketika Anda menggunakan Visual Studio untuk
menciptakan sebuah database, seperti yang telah Anda lakukan pada Tutorial 2.1,
file database akan diciptakan pada folder projek. Sebagai contoh, Gambar 2.21
menunjukkan bagaimana file database DaftarTelepon.mdf
diciptakan pada folder projek aplikasi Buku
Telepon.
PERHATIKAN: Ketika Anda menciptakan sebuah database SQL
Server, Anda juga akan melihat sebuah file yang diakhiri dengan ekstensi .LDF. Sebagai contoh, seperti pada
Gambar 2.21, Anda akan melihat sebuah file dengan nama DaftarTelepon_log.LDF. SQL Server DBMS akan menggunakannya untuk
menyimpan semua catatan operasi yang Anda lakukan pada database.
2.2 Kontrol DataGridView
KONSEP:
Kontrol DataGridView dapat menampilkan sebuah tabel database.
Kontrol datab-bound adalah sebuah kontrol
antarmuka user yang terhubung ke suatu sumber data. Sebagai contoh, sebuah
kontrol data-bound dapat dihubungkan ke sebuah kolom pada suatu tabel database.
Kontrol data-bound secara otomatis menampilkan data dari sumber data dan dapat
dipakai untuk mengubah data. Salah satu kontrol yang paling sederhana adalah
kontrol DataGridView. Kontrol ini
dapat menampilkan isi tabel di dalam database yang ditempatkan pada suatu form.
Pada Tutorial 2.2, Anda akan melanjutkan aplikasi
Buku Telepon yang telah Anda mulai pada Tutorial 2.1. Anda menghubungkan
form aplikasi ke database DaftarTelepon.mdf
dan menambahkan sebuah kontrol DataGridView
yang dapat dipakai untuk melihat dan memperbarui tabel Orang.
Tutorial 2.2: Menyempurnakana Aplikasi Buku Telepon
Pada tutorial
ini, Anda menyempurnakan aplikasi Buku
Telepon. Anda menambahkan database DaftarTelepon.mdf pada projek sebagai
sebuah sumber data, menciptakan sebuah dataset yang terhubung ke tabel Orang, dan menambahkan sebuah kontrol DataGridView sehingga user dapat
berinteraksi dengan database.
Langkah 1: Pastikan projek Buku
Telepon terbuka pada Visual Studio
(atau Visual Studio Express).
Langkah 2: Klik PROJECT
pada menu Visual Studio dan kemudian klik Add
New Data Source…. Anda akan melihat jendela Data Source Configuration Wizard, seperti ditunjukkan pada Gambar 2.22.
Langkah 3: Sumber data yang Anda tambahkan adalah sebuah database,
jadi Anda perlu memastikan bahwa Database
diseleksi dan kemudian klik Next >.
Jendela sekarang ditampilkan, seperti ditunjukkan pada Gambar 2.23.
Langkah 4: Pastikan bahwa Dataset
diseleksi, dan klik Next>.
Jendela sekarang ditampilkan, seperti ditunjukkan pada Gambar 2.24.
Langkah 5: Pada jendela ini, Anda akan diminta untuk memilih
sebuah koneksi data, dan database DaftarTelepon.mdf
secara otomatis diseleksi, seperti ditunjukkan pada Gambar 2.24. Klik tombol Next>. Jendela sekarang ditampilkan
seperti pada Gambar 2.25.
Langkah 6: Pada jendela ini, Anda akan diminta apakah Anda ingin
menyimpan sebuah string koneksi. Biarkan centang pada kotak periksa Yes dan klik tombol Next>.
Langkah 7: Pada jendela yang ditampilkan sekarang, Anda akan
diminta untuk memilih objek-objek database yang ingin Anda cantumkan di dalam
dataset. Ekspansi entri Tables, dan
tempatkan centang di samping Orang,
seperti ditunjukkan pada Gambar 2.26.
Di bawah
jendela, Anda dapat menetapkan nama untuk dataset. Nama defaultnya adalah DaftarTeleponDataSet yang telah
disediakan. Karena Anda menyeleksi tabel Orang
sebagai objek database, ubah nama dataset menjadi OrangDataSet. Klik tombol Finish.
Berikut adalah simpulan dari apa yang telah Anda lakukan:
· Anda telah menambahkan database DaftarTelepon.mdf
sebagai suatu sumber data pada aplikasi.
· Anda telah menciptakan sebuah komponen dataset yang dihubungkan ke tabel
Orang. Nama dari komponen dataset
tersebut adalah OrangDataSet.
Langkah 8: Visual Studio menyediakan sebuah jendela Data Source yang dapat Anda pakai untuk melihat semua sumber data di
dalam projek. Klik menu VIEW pada
batang menu Visual Studio, kemudian pilih Other
Windows, kemudian klik Data Sources. Jendela Data Sources akan ditampilkan, seperti
ditunjukkan pada Gambar 2.27. Perhatikan bahwa jendela tersebut menunjukkan
nama dari dataset, yaitu OrangDataSet,
dan nama tabel yang terkoneksi dengan dataset (tabel Orang).
Langkah 9: Selanjutnya, Anda memilih DataGridView sebagai kontrol data-bound default untuk tabel Orang. Pada jendela Data Sources, klik entri untuk tabel Orang, seperti ditunjukkan di sisi
kiri pada Gambar 2.28. Kemudian, klik anak panah ke bawah dan pilih
DataGridView, seperti ditunjukkan di sisi kanan pada Gambar 2.28.
Langkah 10: Sekarang Anda menambahkan kontrol DataGridView pada form. Seperti ditunjukkan pada Gambar 2.29, klik
dan geret tabel Orang dari jendela Data Sources ke dalam form.
Seperti
ditunjukkan pada Gambar 2.30, ini akan menciptakan sebuah kontrol DataGridView dan sebuah batang navigasi
pada form. (Jika diperlukan, perbaiki ukuran form dan ukuran dan posisi dari
kontrol DataGridView sehingga
ditampilkan seperti pada Gambar 2.30). Perhatikan bahwa component tray di bawah
form sekarang memuat beberapa item. Item-item tersebut adalah komponen-komponen
yang secara otomatis diciptakan ketika Anda menempatkan kontrol DataGridView pada form. Berikut adalah
simpulan dari komponen-komponen tersebut:
· orangTableAdapter: Ini adalah sebuah
table adapter. Ia membaca data secara langsung dari sumber data, pada kasus ini
adalah tabel Orang dari database DaftarTelepon.mdf.
· tableAdapterManager: Pada banyak
aplikasi, database memiliki beberapa tabel. Sebuah table adapter manager adalah
komponen yang mengelola tabel-tabel tersebut.
· orangDataSet: Ini adalah komponen
dataset. Ia mendapatkan salinan tabel dari table adapter dan menempatkannya ke
dalam memori. Aplikasi akan bekerja dengan dataset, bukan bekerja secara
langsung pada database.
·
orangBindingSource: Ini adalah batang
navigasi.
Langkah 11: Simpan dan jalankan aplikasi. Form akan ditampilkan
seperti ditunjukkan pada Gambar 2.31, dengan baris-baris dari tabel Orang ditampilkan pada kontrol DataGridView. Anda dapat menggunakan
kontrol DataGridView dengan
cara-cara berikut:
· Untuk mengubah nilai sel, klik sel tersebut dengan mouse dan kemudian
ubah datanya jika diperlukan.
· Untuk memilih sebuah baris, klik tombol yang ada di sampingnya.
· Untuk menghapus sebuah baris, pilih baris tersebut; kemudian klik tombol
Delete pada batang navigasi atau telah
kunci Delete pada keyboard.
· Untuk menambahkan sebuah baris bari, gulung grid ke bawah, dimana Anda
akan melihat sebuah baris kosong. Masukkan data baru pada baris kosong
tersebut.
·
Perubahan-perubahan yang Anda lakukan hanya berpengaruh pada salinan tabel
di dalam memori yang ditampung di dalam dataset. Untuk menyimpan perubahan ke
dalam database, klik tombol Save
pada batang navigasi.
·
Untuk mengurutkan baris-baris pada sebuah kolom, klik kepala kolom.
Langkah 12: Gunakan kontrol DataGridView
untuk membuat beberapa perubahan pada dataset. Sebagai contoh, ubah sebuah
nilai pada suatu baris, tambahkan sebuah baris baru, dan hapus baris. Pastikan
untuk mengklik tombol Save pada
batang navigasi untuk menyimpan perubahan Anda.
Langkah 13: Tutup aplikasi dan kemudian jalankan kembali aplikasi
untuk memverifikasi bahwa perubahan telah disimpan. Ketika selesai, tutup
aplikasi.
Kode Oto-Generasi
Ketika Anda menempatkan sebuah kontrol
data-bound, seperti DataGridView,
pada sebuah form, Visual Studio melakukan banyak hal di balik layar untuk
membuat kontrol itu berfungsi. Pada dasarnya, Anda telah menyelesaikan aplikasi
pada Tutorial 2.2 tanpa menuliskan sebaris kodepun. Jika Anda membuka editor
kode, Anda akan melihat bahwa Visual Studio telah membangkitkan sejumlah kode,
yang ditunjukkan pada Gambar 2.1.
Program 2.1 Kode Form1
pada aplikasi Buku Telepon
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Buku_Telepon
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
private void
orangBindingNavigatorSaveItem_Click(object
sender, EventArgs e)
{
this.Validate();
this.orangBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.orangDataSet);
}
private void
Form1_Load(object sender, EventArgs e)
{
// TODO: This line
of code loads data into …
this.orangTableAdapter.Fill(this.orangDataSet.Orang);
}
}
}
|
Visual Studio menambahkan sebuah event
handler pada baris 20-26 yang dieksekusi ketika user mengklik tombo Save pada batang navigasi.
Statemen-statemen di dalam metode ini menerapkan setiap perubahan yang
dilakukan pada kontrol DataGridView
pada dataset dan kemudian menyimpan dataset tersebut ke dalam database.
Visual Studio juga menambahkan sebuah event
handler Load untuk form, pada baris
28-33. Pada baris 31, event handler ini memanggil metode Fill dari table adapter, melewatkan sebuah referensi yang menunjuk
ke tabel Orang (yang dimuat di dalam
dataset) sebagai argumen. Statemen ini menyebabkan table adapter memuat data
dari database ke dalam dataset.
2.3 Membuat Hubungan Ke Database Yang Telah
Ada dan Menggunakan Kontrol Details View
KONSEP: Anda
dapat dengan mudah menghubungkan suatu aplikasi dengan sebuah database yang
telah ada. Kontrol Details merupakan cara alternatif pada kontrol DataGridView
untuk berinteraksi dengan sebuah database.
Pada Tutorial 2.1, Anda telah menggunakan
Visual Studio untuk menciptakan sebuah database dari nol dan mengisi tabel
dengan data tertentu. Seringkali ditemukan bahwa programer harus menciptakan
aplikasi yang terhubung ke database yang telah ada. Pada Tutorial 2.3, Anda
menciptakan sebuah aplikasi dan menghubungkannya ke suatu database yang telah
ada. Database itu memiliki nama ProdukDB.mdf,
dan Anda akan menemukannya di dalam folder Database
di dalam CD. Database tersebut hanya memuat satu tabel, dengan nama Produk. Gambar 2.32 menunjukkan data
yang disimpan di dalam tabel Produk.
Berikut adalah beberapa hal yang perlu Anda
ketahui tentang kolom-kolom pada tabel Produk:
· Kolom Nomor_Produk adalah
kunci primer. Tipe datanya adalah nchar(5),
dan null tidak diperbolehkan.
·
Tipe data dari kolom Deskripsi
adalah nvarchar(50), dan null tidak
diperbolehkan.
·
Tipe data dari kolom Unit_Tersedia
adalah int, dan null tidak
diperbolehkan.
·
Tipe data dari kolom Harga
adalah int, dan null tidak
diperbolehkan.
Pada tutorial ini, Anda juga akan belajar
bagaimana menciptakan sebuah Details
view, yang merupakan sejumlah kontrol yang terikat pada kolom-kolom pada
suatu baris tertentu. Tidak menampilkan beberapa baris sekaligus, Details view dapat dipakai user untuk
melihat satu baris per waktu. Gambar 2.33 menunjukkan sebuah contoh dari form
dengan sejumlah kontrol Details view. Pada gambar tersebut,
kontrol-kontrol TextBox diikat ke
kolom-kolom pada tabel Produk. Perhatikan pula bahwa form juga memiliki sebuah
batang navigasi. Batang navigasi bekerja seperti yang ditampilkan dengan
kontrol DataGridView. Ia dapat
dipakai untuk menggeser maju dan mundur, menambahkan baris baru, menghapus
baris, dan menyimpan perubahan yang telah dilakukan.
Perhatikan pada Gambar 2.33 bahwa setiap
kontrol TextBox memiliki sebuah
kontrol Label di sampingnya, yang
mengindentifikasi kolom. Ketika Anda menciptakan sebuah Details view,
kontrol-kontrol Label tersebut akan
diciptakan secara otomatis. Seperti yang Anda lihat pada gambar, garis-bawah
pada nama kolom diganti oleh spasi pada kontrol Label.
Tutorial 2.3: Menciptakan Aplikasi Produk dan Menggunakan
Details View
Langkah 1: Awali Visual Studio (atau Visual Studio Express).
Ciptakan sebuah projek Windows Forms Application dengan nama Produk.
Langkah 2: Ubah properti Text
dari form Form1 menjadi Produk.
Langkah 3: Klik PROJECT
pada batang menu Visual Studio dan kemudian klik Add New Data Source…. Anda akan melihat jendela Data Source Configuration Wizard,
seperti ditunjukkan pada Gambar 2.34. Pastikan Database diseleksi dan kemudian klik tombol Next >.
Langkah 4: Jendela sekarang ditampilkan seperti ditunjukkan pada
Gambar 2.35. Pastikan bahwa Dataset
diseleksi, dan klik Next >.
Langkah 5: Jendela sekarang ditampilkan seperti ditunjukkan pada
Gambar 2.36. Pada jendela ini, Anda akan diminta untuk memilih sebuah koneksi
data. Karena Anda belum menciptakan sembarang koneksi data untuk projek ini,
tidak ada variabel yang disediakan untuk dipilih. Jadi, Anda akan menciptakan
sebuah koneksi data baru. Klik tombol New
Connection.
Langkah 6: Anda akan melihat kotak dialog Add Connection, seperti
ditunjukkan pada Gambar 2.37. (Penting:
Layar yang ditampilkan pada Gambar 2.37 dan Gambar 2.38 diambil dari Visual
Studio. Jika Anda menggunakan Visual Studio Express, kotak dialog akan ditampilkan
sedikit berbeda.)
Lakukan
hal-hal berikut:
· Lihat pada sumber data terseleksi. Pastikan Microsoft SQL Server Database File (SqlClient) diseleksi. Jika
tidak, klik pada tombol Change… dan
pilih Microsoft SQL Server Database File.
(Anda perlu melakukan ini ketika Anda menggunakan Visual Studio Express).
· Seperti ditunjukkan pada gambar, klik tombol Browse…. Navigasi ke folder Database
dan pilih file ProdukDB.mdf.
Gambar 2.38
menunjukkan bagaimana kotak dialog ditampilkan sekarang. Pada titik ini, Anda
secara opsional dapat mengklik tombol Test
Connection untuk menguji koneksi ke database. Anda akan melihat pesan Test Connection Succeeded.
Langkah 7: Klik tombol OK pada kotak dialog Add Connection untuk menutup kotak dialog tersebut.
Langkah 8: Anda akan kembali ke Data Source Configuration Wizard, seperti ditunjukkan pada Gambar 2.39.
Seperti ditunjukkan pada gambar tersebut, ProdukDB.mdf
akan terseleksi sebagai koneksi data. Klik tombol Next > untuk melanjutkan.
Langkah 9: Anda akan melihat kotak dialog seperti ditunjukkan pada
Gambar 2.40. Pesan tersebut memberitahu Anda bahwa file database berada di luar
folder projek, dan Anda akan ditanya apakah Anda ingin menyalin database
tersebut ke dalam projek. Klik Yes.
Ini akan mempermudah Anda untuk menyalin projek nantinya.
Langkah 10: Jendela Data
Source Configuration Wizard sekarang ditampilkan seperti pada Gambar 2.41.
Klik tombol Next > untuk
melanjutkan.
Langkah 11: Jendela Data
Source Configuration Wizard sekarang ditampilkan seperti pada Gambar 2.42.
Anda akan diminta untuk memilih objek-objek database yang ingin Anda cantumkan
ke dalam dataset. Ekspansi entri Tables
dan tempatkan sebuah centang di samping Produk,
seperti ditunjukkan pada Gambar 2.42.
Di bawah
jendela, Anda dapat menetapkan sebuah nama untuk dataset. Nama default ProdukDBDataSet telah disediakan.
Karena Anda menyeleksi tabel Produk
sebagai objek dataset, ubah nama dataset menjadi ProdukDataSet. Klik tombol Finish.
Berikut
merupakan simpulan dari apa yang telah Anda lakukan:
·
Anda telah menambahkan database ProdukDB.mdf
sebagai suatu sumber data pada aplikasi.
· Anda telah menciptakan sebuah komponen dataset yang terhubung ke tabel Produk. Nama dari komponen dataset
adalah ProdukDataSet.
Langkah 12: Selanjutnya, Anda menampilkan jendela Data Source. Klik menu VIEW
pada batang menu Visual Studio, kemudian pilih Other Windows, kemudian
klik Data Sources. Jendela Data Sources akan ditampilkan, seperti
ditunjukkan pada Gambar 2.43. Perhatikan bahwa jendela ini menampilkan nama
dari dataset, yaitu ProdukDataSet,
dan nama tabel yang terkoneksi dengan dataset, yaitu Produk.
Langkah 13: Sekarang Anda menyeleksi Details sebagai kontrol data-bound default untuk tabel Produk. Pada jendela Data Sources, klik entri untuk tabel Produk, seperti ditunjukkan pada gambar
di sisi kiri pada Gambar 2.44. Kemudian klik pada anak panah bawah, dan pilih Details, seperti ditunjukkan pada
gambar di sisi kanan pada Gambar 2.44.
Langkah 14: Selanjutnya, Anda menambahkan sebuah Details view pada form. Seperti
ditunjukkan pada Gambar 2.45, klik dan geret tabel Produk dari jendela Data
Sources ke dalam form. Seperti
ditunjukkan pada Gambar 2.46, ini akan menciptakan sejumlah kontrol Details view, berikut dengan sebuah batang navigasi, pada form. (Perbaiki
ukuran form dan ukuran dan posisi dari tiap kontrol seperti ditampilkan pada
Gambar 2.46).
Langkah 15: Simpan dan jalankan aplikasi. Form akan ditampilkan
seperti pada Gambar 2.47, dengan data dari baris pertama dari tabel Produk
ditampilkan. Anda dapat menggunakan batang navigasi untuk memajukan dan
memundurkan baris data yang akan ditampilkan. Anda juga dapat menambah baris,
menghapus, dan memasukkan data baru. Untuk menyimpan perubahan ke dalam
database, klik tombol Save pada
batang navigasi.
2.4 Lebih Lanjut Dengan Kontrol Data-Bound
KONSEP:
Kontrol DataGridView dan Details view dapat dimodifikasi dengan sejumlah cara. Kontrol-kontrol
lain, seperti kotak list, dapat djadikan data-bound untuk berinteraksi dengan
database.
Memodifikasi Kontrol DataGridView
Pada mode Designer, jika Anda menyeleksi kontrol DataGridView, Anda akan melihat sebuah anak panah kecil di pojok
kanan-atas dari kotak pembatas kontrol. Gambar 2.48 menunjukkan salah satu
contoh. Anak panah tersebut dikenal dengan smart
tag. Ketika Anda mengklik pada smart
tag itu, sebuah panel akan dimunculkan, yang memberikan Anda sejumlah opsi yang
dapat Anda gunakan pada kontrol DataGridView.
Gambar 2.49 menunjukkan sebuah contoh dari panel tersebut.
Perhatikan pada gambar tersebut bahwa panel
memiliki beberapa kotak periksa:
· Enable Adding: Ketika item ini dicentang, user dapat menambah baris-baris
pada kontrol DataGridView. Item ini
tercentang secara default.
· Enable Editing: Ketika item ini dicentang, user dapat mengubah isi dari
baris-baris pada kontrol DataGridView.
Item ini tercentang secara default.
· Enable Deleting: Ketika item ini dicentang, user
dapat menghapus baris-baris pada kontrol DataGridView.
Item ini tercentang secara default.
· Enable Column
Reordering: Ketika item ini
dicentang, user dapat mengklik dan menggeret kolom-kolom untuk ditata-ulang
pada kontrol DataGridView. Item ini
tidak tercentang secara default.
Jika Anda tidak ingin user dapat menghapus,
mengedit, atau menghapus baris pada kontrol DataGridView, Anda bisa menghapus tanda centang yang diinginkan.
Anda perlu mengingat bahwa batang navigasi
memiliki sejumlah tombol yang dapat dipakai user untuk menambahkan, menghapus,
dan menyimpan data pada kontrol DataGridView.
Tombol-tombol ini dapat digunakan, meski jika Anda telah menonaktifkan
(menghapus centang) penambahan, pengeditan, dan penghapusan pada panel dari
kontrol DataGridView. Untuk
menonaktifkan sebuah tombol pada batang navigasi, klik kanan pada mode Designer. Ini akan menampilkan menu
seperti pada Gambar 2.50. Perhatikan pada gambar bahwa Enabled dicentang. Klik pada Enabled
untuk menghapus tanda centang, yang menonaktifkan tombol tersebut. Ketika
sebuah tombol dinonaktifkan, ia akan ditampilkan abu-abu pada batang navigasi.
Gambar 2.51 menunjukkan sebuah contoh dengan tombol Add, Delete, dan Save dinonaktifkan.
Memodifikasi Details View
Pada Tutorial 2.3, Anda telah melihat
bagaimana sejumlah kontrol diciptakan secara otomatis ketika Anda menciptakan Details view untuk sebuah tabel. Sebagai contoh, beberapa TextBox diciptakan dan diikat pada
kolom-kolom secara individual. Kontrol-kontrol Label yang mengidentifikasi kolom-kolom juga diciptakan, berikut
dengan batang navigasi.
Ketika Anda menciptakan sebuah Details view, jenis kontrol yang diikat secara otomatis ke sebuah kolom
ditentukan oleh tipe data kolom, sebagai berikut:
·
Kolom yang memuat data karakter akan diikat ke kontrol TextBox secara default.
·
Kolom numerik akan diikat ke kontrol TextBox secara default.
·
Kolom bit akan diikat ke kontrol CheckBox.
· Kolom DateTime akan diikat ke
kontrol DateTimePicker, yang dapat
dipakai user untuk memilih sebuah tanggal dari kalender.
Adalah dimungkinkan untuk mengubah jenis
kontrol yang diikatkan pada sebuah kolom. Sebagai contoh, ingat bahwa tabel Produk pada Tutorial 2.3 memiliki
sebuah kolom dengan nama Nomor_Produk.
Kolom Nomor_Produk memuat data
karakter, sehingga kontrol TextBox
diciptakan untuknya ketika Anda menempatkan Details view pada form. Namun, kolom Nomor_Produk merupakan kunci primer untuk tabel, jadi Anda tidak
ingin user dapat mengubahnya. Sebuah kontrol Label menjadi opsi yang lebih baik. Dengan cara itu, user dapat
melihat nomor produk tetapi tidak dapat mengubahnya.
Sebelum Anda menempatkan Detail view pada sebuah
form, Anda dapat menyeleksi jenis kontrol yang akan diikat ke tiap kolom. Pada
jendela Data Sources, ekspansi entri tabel seperti ditunjukkan pada gambar di
sisi kiri pada Gambar 2.52. Kemudian, klik sebuah kolom dan klik anak panah bawah
yang ada di sampingnya, seperti ditunjukkan pada gambar di sisi kanan pada
Gambar 2.52. Sebuah menu akan ditampilkan yang menunjukkan jenis-jenis kontrol
yang Anda seleksi. Pada gambar di sisi kanan pada Gambar 2.52, Anda menyeleksi
kontrol Label untuk kolom Nomor_Produk. Kemudian, Anda
menciptakan Detils view, yang ditampilkan seperti pada
Gambar 2.53.
Ketika Anda menggeret keseluruhan tabel dari
jendela Data Source dan menempatkannya ke dalam sebuah form, Details view yang diciptakan memuat kontrol-kontrol untuk semua kolom.
Kadangkala Anda tidak ingin semua kolom ditampilkan. Jadi, Anda dapat menggeret
kolom secar individual, satu per satu, dari jendela Data Source ke dalam
form. Gambar 2.54 menampilkan sebuah contoh dari sebuah Details view yang hanya
menampilkan nomor produk dan deskripsi. Anda menciptakan Details view ini dengan menggeret kolom Nomor_Produk dan kemudian kolom Deskripsi dari jendela Data
Sources ke dalam form.
Mengikat Kolom Ke Kontrol ListBox
Sebuah kotak list dapat dipakai sebagai cara
efektif untuk menampilkan data. Anda dapat mengikat sebuah kolom ke suatu
kontrol ListBox, yang menyebabkan
semua nilai di dalam kolom itu ditampilkan pada kotak list. Ketika user
menyeleksi sebuah item dari kotak list, kolom-kolom lain dari baris terseleksi
akan ditampilkan.
Untuk mengikat sebuah kontrol ListBox dengan suatu kolom, Anda perlu
menetapkan dua properti kontrol: DataSource
dan DisplayMember. Properti DataSource mengidentifikasi tabel dari
mana ListBox akan membaca datanya.
Properti DisplayMember
mengidentifikasi kolom. Pada Tutorial 2.4, Anda menggunakan teknik ini untuk
menciptakan sebuah form untuk database ProdukDB.mdf.
Tutorial 2.4: Menciptakan Aplikasi Lookup Produk
Langkah 1: Awali Visual Studio (atau Visual Studio Express).
Ciptakan sebuah projek Windows Forms
Application dengan nama Lookup Produk.
Langkah 2: Ubahlah properti Text
dari form Form1 menjadi Lookup Produk.
Langkah 3: Lakukan langkah-langkah berikut untuk menghubungkan
aplikasi ke database ProdukDB, dan
pilih tabel Produk sebagai dataset:
·
Dari menu PROJECT, pilih Add New Data Source….
·
Pilih Database dan klik
tombol Next >.
·
Pilih Dataset dan klik tombol
Next >.
·
Klik New Connection….
· Pada jendela Add Connection,
pastikan bahwa Microsoft SQL Server
Database File (SqlClient) sebagai sumber data.
·
Pada jendela Add Connection,
klik Browse, dan jelajah ke folder Database. Pilih file ProdukDB.mdf. Klik OK.
·
Klik tombol Next >, dan
ketika ditanya apakah Anda ingin menyalin file ke dalam projek, klik Yes.
·
Klik Next >.
·
Pilih tabel Produk sebagai
objek database, dan ubah nama dari dataset menjadi ProdukDataSet. Klik Finish.
Langkah 4: Ciptakanlah sebuah kontrol ListBox dengan nama nomorProdukListBox.
Tepat di atas ListBox tersebut,
tempatkan sebuah kontrol Label yang
menampilkan “Pilih Nomor Produk”.
Form akan ditampilkan seperti Gambar 2.55.
Langkah 5: Pilih kontrol ListBox.
Pada jendela Properties, pilih
properti DataSource dan kemudian
klik anak panah yang ada di sampingnya. Pada list yang ditampilkan, ekspansi Other Data Sources, kemudian
ekspansi Project Data Sources,
kemudian ekspansi ProdukDataSet, dan
kemudian pilih Produk. Ini
ditampilkan pada Gambar 2.56.
Langkah 6: Pilih properti DataMember
dari ListBox dan klik pada anak
panah yang ada di sampingnya. Pada list yang ditampilkan, pilih Nomor_Produk.
Langkah 7: Pada jendela Data
Sources, tetapkan Details pada
tabel Produk, seperti ditunjukkan
pada Gambar 2.57.
Langkah 8: Pada jendela Data
Sources, ekspansi tabel Produk sehingga nama-nama kolom
ditampilkan, seperti ditunjukkan pada Gambar 2.58.
Langkah 9: Satu per satu, geret kolom Deskripsi, Unit_Tersedia,
dan Harga dari jendela Data Sources ke dalam form. Tempatkan mereka seperti ditunjukkan pada
Gambar 2.59. Ubah ukuran form sehingga ia ditampilkan seperti pada gambar.
Langkah 10: Simpan projek dan jalankan aplikasi. Form aplikasi akan
ditampilkan seperti pada Gambar 2.60. Perhatikan bahwa kotak list memuat semua
nomor produk di dalam tabel Produk.
Ketika Anda memilih sebuah nomor produk di dalam kotak list, deskripsi produk,
unit tersedia, dan harganya akan ditampilkan pada kontrol-kontrol TextBox. Setelah selesai, keluar dari
aplikasi.
Kontrol Data-Bound Pada Sejumlah Form
Anda telah melihat bahwa ketika Anda
menempatkan sebuah kontrol data-bound pada suatu form, Visual Studio secara
otomatis akan menciptakan sejumlah komponen agar form dapat terhubung ke
database. Komponen-komponen ini mencakup suatu dataset. Ketika Anda menempatkan
kontrol-kontrol data-bound pada sejumlah form, Anda perlu mengingat bahwa
setiap form memiliki datasetnya sendiri. Ketika Anda melakukan perubahan pada
dataset pada suatu form, perubahan itu tidak secara otomatis ditampilkan pada
form-form lain yang memiliki datasetnya sendiri. Perhatikan skenario berikut:
·
Form1 menampilkan isi dari
sebuah database, menggunakan kontrol DataGridView.
·
Suatu kode di dalam Form1
menampilkan Form2.
·
Form2 juga menampilkan isi
dari database yang sama, sehingga user dapat melakukan perubahan dan
menyimpannya ke dalam database. User menutup Form2.
· Form1 masih menampilkan isi semula dari data.
Datasetnya tidak secara otomatis diperbarui, sehingga Form1 tidak menunjukkan perubahan yang telah dilakukan oleh Form2.
Untuk memastikan bahwa sebuah dataset memuat
salinan terkini dari data, Anda perlu menuliskan kode yang menyebabkan table
adapter membaca tabel database dan mengisi dataset. Anda melakukan hal ini
dengan memanggil metode Fill dari
table adapter. Pada Tutorial 2.5, Anda akan belajar bagaimana melakukannya
dengan menciptakan sebuah aplikasi yang secara tepat menangani skenario yang
baru saja dijelaskan.
Tutorial 2.5: Menciptakan Aplikasi Produk Multiform
Langkah 1: Awali Visual Studio (atau Visual Studio Express).
Ciptakan sebuah projek Windows Forms
Application dengan nama Produk
Multiform.
Langkah 2: Ubahlah properti Text
dari form Form1 menjadi Produk.
Langkah 3: Pada jendela Solution
Explorer, ubah nama dari Form1 menjadi FormUtama.cs. Ini akan mengubah nama dari Form1 menjadi FormUtama.
Langkah 4: Lakukan langkah-langkah berikut untuk menghubungkan
aplikasi ke database ProdukDB, dan
pilih tabel Produk sebagai dataset:
·
Dari menu PROJECT, pilih Add New Data Source….
·
Pilih Database dan klik
tombol Next >.
·
Pilih Dataset dan klik tombol
Next >.
·
Klik New Connection….
·
Pada jendela Add Connection,
pastikan bahwa Microsoft SQL Server
Database File (SqlClient) sebagai sumber data.
·
Pada jendela Add Connection,
klik Browse, dan jelajah ke folder Database. Pilih file ProdukDB.mdf. Klik OK.
·
Klik tombol Next >, dan
ketika ditanya apakah Anda ingin menyalin file ke dalam projek, klik Yes.
·
Klik Next >.
·
Pilih tabel Produk sebagai
objek database, dan ubah nama dari dataset menjadi ProdukDataSet. Klik Finish.
Langkah 5: Buka jendela Data
Source, dan, seperti ditunjukkan
pada Gambar 2.61, geret sebuah kontrol DataGridView
ke dalam form, diikat dengan tabel Produk.
Setelah menciptakan kontrol DataGridView,
ubah ukuran form dan ukuran kontrol seperti ditunjukkan pada Gambar 2.62.
Langkah 6: Ciptakan kontrol-kontrol Button seperti ditunjukkan pada Gambar 2.63. (Anda mengklik
event-event handler Click untuk
tombol-tombol ini nantinya).
Langkah 7: Tambahkan sebuah form lain dengan nama FormDetil pada projek. Sebagai
pengingat, berikut adalah langkah-langkah yang perlu Anda lakukan:
·
Klik PROJECT pada batang menu
Visual Studio dan kemudian seleksi Add
Windows Form….
·
Pada jendela Add New Item,
masukkan FormDetil.cs sebagai nama
form dan klik Add.
Langkah 8: Ubah properti Text
dari form ini menjadi Detil.
Langkah 9: Pada jendela Data
Sources, ubah view default dari tabel Produk
menjadi Details, seperti ditunjukkan
pada Gambar 2.64. Kemudian, seperti ditunjukkan pada Gambar 2.65, geret Details view ke dalam form.
Langkah 10: Sesuaikan ukuran form FormDetil dan ciptakan kontrol Button
seperti ditunjukkan pada Gambar 2.66.
Langkah 11: Klik ganda pada kontrol tombolTutup, dan sempurnakan event handler Click-nya, seperti ditunjukkan pada baris 37-38 dari Program 2.2.
Langkah 12: Kembali ke form FormUtama
pada mode Designer. Klik ganda pada
kontrol tombolTampil, dan
sempurnakan event handler Click-nya,
seperti ditunjukkan pada Gambar 37-44 pada Program 2.3. Amati kode lebih dekat:
Baris 38: Statemen ini menciptakan sebuah objek dari
kelas FormDetil, yang direferensi
oleh variabel detil.
Baris 41: Statemen ini menampilkan form FormDetil. User akan bisa melakukan perubahan pada data produk
menggunakan FormDetil dan menyimpan
perubahan yang ada pada database.
Baris 44: Statemen ini memanggil metode Fill dari table adapter, melewatkan dataset sebagai argumennya.
Hasilnya, dataset akan diisi dengan isi terkini dari tabel Produk, dan isi dari kontrol DataGridView
akan diperbarui.
Langkah 13: Kembali ke form FormUtama
pada mode Designer. Klik ganda pada
kontrol tombolKeluar, dan
sempurnakan event handler Click-nya,
seperti ditunjukkan pada baris 49-50 pada Program 2.3.
Langkah 14: Simpan projek dan jalankan aplikasi. FormUtama akan menampilkan tabel Produk
pada kontrol DataGridView. Klik
tombol Tampilkan Detil untuk menampilkan FormDetil.
Pada FormDetil, lakukan sejumlah perubahan
pada data. Sebagai contoh, ubah nilai dari potongan data, sisipkan sebuah baris
baru, atau hapus sebuah baris yang ada. Setelah melakukan perubahan, pastikan
Anda untuk mengklik tombol Save pada
batang navigasi. Kemudian, klik tombol Tutup
untuk menutup FormDetil.
Kembali ke FormUtama, jelajah data pada kontrol DataGridView untuk memastikan bahwa ia
menunjukkan perubahan yang baru saja Anda lakukan. Ketika selesai, keluar dari
aplikasi.
Program 2.2 Kode untuk FormDetil
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Produk_Multiform
{
public partial class
FormDetil : Form
{
public FormDetil()
{
InitializeComponent();
}
private void produkBindingNavigatorSaveItem_Click(…)
{
this.Validate();
this.produkBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.produkDataSet);
}
private void
FormDetil_Load(object sender, EventArgs e)
{
// TODO: This line
of code loads...
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
private void
tombolTutup_Click(object sender, EventArgs e)
{
//menutup form.
this.Close();
}
}
}
|
Program 2.3 Kode untuk FormUtama
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Produk_Multiform
{
public partial class
FormUtama : Form
{
public FormUtama()
{
InitializeComponent();
}
private void
produkBindingNavigatorSaveItem_Click(…)
{
this.Validate();
this.produkBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.produkDataSet);
}
private void
FormUtama_Load(object sender, EventArgs e)
{
// TODO: This line
of …
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
private void
tombolTampil_Click(object sender, EventArgs e)
{
//menciptakan sebuah objek dari FormDetil
FormDetil detil = new
FormDetil();
//menampilkan form
detil.ShowDialog();
//memperbarui dataset
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
private void tombolKeluar_Click(object
sender, EventArgs e)
{
//menutup form.
this.Close();
}
}
}
|
2.5 Memilih Data Dengan Statemen Select SQL
KONSEP: SQL
adalah sebuah bahasa standar yang didukung oleh DBMS. Statemen Select dipakai di
dalam SQL untuk membaca data dari suatu database.
SQL, yang merupakan singkatan dari structured query language, merupakan
suatu bahasa standar untuk bekerja dengan sistem manajemen database. Bahasa ini
awalnya dikembangkan oleh IBM pada tahun 1970an. Sejak itu, SQL telah diadopsi
oleh hampir semua vendor perangkat lunak database sebagai bahasa pilihan untuk
berinteraksi dengan DBMS.
SQL memuat sejumlah katakunci. Anda
menggunakan katakunci untuk mengkonstruksi statemen, yang juga dikenal dengan
query. Statemen ini, atau query ini, yang dikirim ke DBMS, merupakan instruksi
yang meminta DMBS untuk melakukan operasi tertentu pada datanya. Pada bagian
ini, Anda akan belajar bagaimana mengkonstruksi statemen-statemen SQL sederhana
dan kemudian melewatkannya kepada SQL Server DBMS.
CATATAN: Meskipun SQL adalah sebuah bahasa, Anda
tidak menggunakannya untuk menuliskan aplikasi. Ia hanya dimaksudkan sebagai
cara standar untuk berinteraksi dengan suatu DBMS. Anda tetap memerlukan bahasa
pemrograman umum, seperti C#, untuk menuliskan aplikasi.
Pada SQL, Anda menggunakan statemen Select untuk membaca baris-baris pada
sebuah tabel. Seperti diimplikasikan dari namanya, statemen Select dapat Anda pakai untuk memilih
baris-baris spesifik. Anda akan mempelajarinya dengan bentuk sederhana dari
statemen ini, seperti berikut:
Select
Kolom From Tabel
Pada bentuk umum ini, Kolom adalah satu atau lebih nama kolom, dan Tabel adalah nama tabel. Berikut adalah sebuah contoh statemen Select yang dapat dieksekusi pada
database ProdukDB.mdf:
Select
Deskripsi From Produk
Statemen ini membaca kolom Deskripsi untuk setiap baris pada tabel
Produk. Anda dapat menetapkan lebih
dari satu kolom pada suatu statemen Select
dengan memisahkan nama-nama kolom dengan koma. Berikut adalah salah satu
contohnya:
Select
Deskripsi, Harga From Produk
Statemen ini membaca kolom Deskripsi dan kolom Harga untuk setiap baris pada tabel Produk. Jika Anda ingin membaca setiap
kolom pada sebuah tabel, Anda dapat menggunakan karakter * menggantikan pencantuman
nama dari tiap kolom. Berikut adalah salah satu contohnya:
Select
* From Produk
Statemen ini membaca setiap kolom untuk
setiap baris pada tabel Produk.
Statemen SQL merupakan statemen bebas bentuk, yang berarti bahwa tab,
garis-baru, dan spasi yang ada di antara katakunci akan diabaikan. Sebagai
contoh, statemen
Select
* From Produk
akan bekerja seperti dengan:
Select
*
From
Produk
Selain itu, katakunci SQL dan nama tabel tidak
dipengaruhi huruf kecil atau huruf besar. Statemen sebelumnya dapat pula
dituliskan sebagai:
SELECT *
FROM PRODUK
Menetapkan Kriteria Pencarian dengan
Klausa Where
Kadangkala Anda ingin membaca setiap baris
pada sebuah tabel. Pada banyak situasi, Anda ingin mempersempit pencarian hanya
untuk sejumlah baris tertentu di dalam tabel. Inilah di mana klausa Where dapat digunakan. Klausa Where dapat dipakai dengan statemen Select untuk menetapkan kriteria
pencarian. Ketika Anda menggunakan klausa Where,
hanya baris-baris yang memenuhi kriteria pencarian yang akan dihasilkan. Bentuk
umum dari sebuah statemen Select
dengan klausa Where diberikan
berikut:
Select
Kolom From Tabel Where Kriteria
Pada bentuk umum ini, Kriteria adalah sebuah ekspresi kondisional. Berikut adalah sebuah
contoh dari statemen Select yang
menggunakan klausa Where:
Select
* From Produk Where Harga > 100000
Bagian pertama dari statemen, Select * From Produk, menetapkan bahwa
Anda ingin melihat setiap kolom. Klausa Where
menetapkan bahwa Anda hanya menginginkan baris-baris dimana di dalamnya isi
dari kolom Harga lebih besar dari
100000. Hasilnya, statemen Select hanya membaca baris-baris dimana di dalamnya
Harga lebih besar dari 100000.
SQL mendukung operator-operator relasional
seperti yang dicantumkan pada tabel 2.1 untuk menuliskan ekspresi kondisional
di dalam sebuah klausa Where.
Tabel 2.1 Operator-operator relasional SQL
Operator
|
Arti
|
>
<
>=
<=
=
<>
|
Lebih besar dari
Lebih kecil dari
Lebih besar dari atau sama dengan
Lebik kecil dari atau sama dengan
Sama dengan
Tidak sama dengan
|
Perhatikan bahwa tanda sama dengan atau tidak
sama dengan pada SQL berbeda dari yang digunakan pada C#. Operator sama dengan
menggunakan satu tanda sama dengan, bukan dua tanda sama dengan. Operator tidak
sama dengan adalah <>.
Lihat sejumlah contoh berikut dari statemen Select. Statemen berikut dapat dipakai
untuk membaca nomor-nomor produk dan harga-harga dari semua item yang dihargai
Rp.28950:
Select
Nomor_Produk, Harga From Produk Where Harga = 28950
Statemen Select
berikut membaca semua kolom hanya dari baris-baris dimana deskripsi adalah
“Jins Denim”:
Select
* From Produk Where Deskripsi = ‘Jins Denim’
Jika Anda melihat secara hati-hati pada
statemen tersebut, Anda akan memerhatikan perbedaan lain antara sintaksi SQL
dan sintaksis C#. Pada SQL, literal string diapit oleh kutip tunggal, bukan
kutip ganda.
TIP: Jika Anda ingin mencantumkan kutip tunggal
sebagai bagian dari sebuah string, Anda hanya perlu menuliskan dua kutip
tunggal pada tempatnya. Sebagai contoh, dimisalkan Anda ingin melakukan
pencarian pada tabel Produk untuk
mencari Baju ‘Wool. Anda dapat
menggunakan statemen berikut:
Select *
From Produk Where Deskripsi = ‘Baju ‘’Wool’
Perbandingan string pada SQL tergantung pada
besar kecilnya huruf. Jika Anda menjalankan statemen berikut pada tabel Produk,
Anda tidak akan mendapatkan hasil apapun:
Select
* From Produk Where Deskripsi = ‘jins denim’
Namun, Anda dapat menggunakan fungsi Lower() untuk mengkonversi sebuah
string menjadi huruf kecil. Berikut adalah salah satu contohnya:
Select
* From Produk Where Lower(Deskripsi) = ‘jins denim’
Statemen ini mengkonversi kolom Deskripsi menjadi semua huruf kecil
sebelum melakukan perbandingan. Hasilnya, ia akan menghasilkan semua baris
dimana Deskripsi sama dengan “jins denim” tanpa memandang besar kecilnya huruf.
Anda dapat pula menggunakan fungsi Upper(),
yang mengkonversi sebuah string menjadi semua huruf besar, untuk mendapatkan
hasil yang sama:
Select
* From Produk Where Upper(Deskripsi) = ‘jins denim’
Menggunakan Operator Like
Ada kalanya pencarian terhadap string yang
persis sama tidak menghasilkan apa yang Anda inginkan. Sebagai contoh,
dimisalkan tabel Produk memuat
baris-baris seperti ditunjukkan pada Gambar 2.67 dan Anda menginginkan sebuah
daftar yang berisi semua kemeja. Statemen berikut tidak akan membuahkan hasil.
Dapatkah Anda menjawabnya mengapa?
Select
* From Produk Where Deskripsi = ‘Kemeja’
Statemen ini akan melakukan pencarian
terhadap baris-baris dimana kolom Deskripsi
sama dengan string “Kemeja”. Sayangnya, ia tidak akan menemukannya karena tidak
ada satu barispun dimana di dalamnya kolom Deskripsi
bernilai sama dengan “Kemeja”. Namun, kata “Kemeja” ditemukan pada kolom Deskripsi pada sejumlah baris. Sebagai
contoh, pada Gambar 2.67, kolom Deskripsi
pada baris pertama adalah “Kemeja Oxford”, kolom Deskripsi pada baris kedua adalah “Kemeja Poplin”, dan seterusnya.
Untuk menemukan semua kemeja, Anda perlu
melakukan pencarian terhadap baris-baris dimana “Kemeja” muncul sebagai suatu
substring di dalam kolom Deskripsi.
Anda dapat melakukan pencarian semacam itu menggunakan operator Like. Berikut adalah sebuah contoh
dalam menggunakannya:
Select
* From Produk Where Deskripsi Like ‘%Kemeja%’
Operator Like
diikuti oleh sebuah string yang memuat pola karakter. Pada contoh ini, pola
karakter adalah ‘%Kemeja%’. Simbol % dipakai sebagai karakter kartu-liar. Ia
merepresentasikan sembarang runtun yang memuat nol atau lebih karakter. Pola
‘%Kemeja%’ menetapkan bahwa string “Kemeja” harus ditampilkan dengan sembarang
karakter sebelum atau sesudahnya. Jadi, statemen tersebut akan menghasilkan
semau baris dimana di dalamnya kolom Deskripsi
memuat string “Kemeja”.
Sama halnya, statemen berikut akan
menghasilkan semua baris dimana di dalamnya kolom Deskripsi diawali dengan kata “Celana”:
Select *
From Produk Where Deskripsi Like ‘Celana%’
Karakter garis-bawah (_) juga dapat dipakai
sebagai kartu liar. Tidak seperti karakter %, garis-bawah merepresentasikan
satu karakter. Sebagai contoh, lihat pada statemen berikut:
Select
* From Produk Where Nomor_Produk Like ‘2_-0_’
Statemen ini akan menghasilkan semua baris
dimana kolom Nomor_Produk diawali
dengan “2” yang diikuti oleh satu karakter, diikuti dengan “-0”, yang diikuti
satu karakter lagi.
Anda dapat menggunakan operator Not untuk mendiskualifikasi suatu pola
karakter pada sebuah kriteria pencarian. Sebagai contoh, dimisalkan bahwa Anda
ingin mendapatkan semua item yang bukan kemeja. Statemen berikut akan
menghasilkannya:
Select *
From Produk Where Deskripsi Not Like ‘%Kemeja%’
Menggunakan And dan Or
Anda dapat menggunakan operator And dan Or untuk menetapkan beberapa kriteria pencarian di dalam klausa Where. Sebagai contoh, perhatikan
statemen berikut:
Select * From Produk Where Harga > 20000 And Harga < 30000
Operator And
mensyaratkan bahwa kedua kriteria harus dipenuhi agar sebuah baris
dikualifikasi sebagai kecocokan. Baris-baris yang dihasilkan dari statemen ini
adalah mereka yang kolom Harga-nya
memuat sebuah nilai yang lebih besar dari 20000 dan kurang dari 30000.
Berikut adalah sebuah contoh yang menggunakan
operator Or:
Select * From Produk
Where Deskripsi Like ‘%Kemeja%’ or Nomor_Produk Like ‘10-%’
Operator Or
mensyaratkan bahwa salah satu kriteria pencarian harus dipenuhi agar sebuah
baris dikualifikasi sebagai kecocokan. Statemen ini melakukan pencarian
baris-baris dimana kolom Deskripsi
memuat string “Kemeja” pada posisi sembarang atau dimana kolom Nomor_Produk diawali dengan “10-“.
Mengurutkan Hasil dari Query Select
Jika Anda ingin mengurutkan hasil dari sebuah
query Select, Anda dapat menggunakan
klausa Order By. Berikut adalah salah satu contohnya:
Select * From Produk Order By Harga
Statemen ini menghasilkan semua baris di
dalam tabel Produk, yang diurutkan
berdasarkan kolom Harga. Apa yang
dihasilkan diurutkan dengan tatanan menaik pada kolom Harga, yang berarti bahwa produk dengan harga terendah akan
ditampilkan pertama.
Berikut adalah sebuah query Select yang menggunakan klausa Where dan sebuah klausa Order By:
Select
* From Produk
Where Harga > 30000
Order By Harga
Statemen ini menghasilkan semua baris di
dalam tabel Produk dimana kolom Harga memuat sebuah nilai yang lebih
besar dari 30000, yang diurutkan secara menaik berdasarkan harga.
Jika Anda ingin menghasilkan sebuah daftar
yang diurutkan secara menurun (dari tertinggi ke terendah), Anda bisa
menggunakan operator Desc, seperti
ditunjukkan di sini:
Select
* From Produk
Where Harga > 30000
Order By Harga Desc
Table Adapter Query
Table adapter
query adalah sebuah statemen SQL yang
disimpan di dalam suatu table adapter dan dapat dieksekusi dengan cara
memanggil sebuah metode. Sebagai contoh, semua table adapter memuat sebuah
query yang mengisi dataset dengan data dari tabel. Query itu dapat dieksekusi
dengan memanggil metode Fill dari
table adapter. Ketika Anda menempatkan sebuah kontrol data-bound, seperti
kontrol DataGridView, pada sebuah
form, event handler Load dari form
itu yang memanggil metode Fill dari
table adapter akan diciptakan secara otomatis untuk form tersebut.
Lihat pada sebuah contoh berikut. Pada Visual
Studio, buka projek Produk Multiform yang Anda ciptakan pada
Tutorial 2.5, dan buka kode sumber untuk form FormUtama. Lihat pada event handler Load dari form, yang ditunjukkan di sini (komentar yang ada pada
baris 3 diperpendek):
1
2
3
4
5
6
|
private void FormUtama_Load(object sender, EventArgs e)
{
// TODO: This line of code
loads data into …
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
|
Statemen pada baris 4 memanggil metode Fill dari produkTableAdapter, melewatkan tabel Produk dari dataset sebagai argumennya. Metode Fill mengisi tabel dataset dengan baris-baris yang dihasilkan dari
sebuah statemen SQL. Sekarang, lihat pada statemen SQL yang dieksekusi oleh
metode Fill. Pada jendela Solution Explorer, Anda akan melihat sebuah entri dengan nama ProdukDataSet.xsd, seperti ditunjukkan
pada Gambar 2.68. Ini adalah file
definisi skema yang menjelaskan isi dari produkDataSet. Klik ganda pada entri ProdukDataSet.xsd untuk membukanya pada sebuah jendela editor,
seperti ditunjukkan pada Gambar 2.69. Area di atas diagram menunjukkan
kolom-kolom yang dicantumkan di dalam dataset, dan area di bawah menunjukkan
metode-metode table adapter query.
Klik kanan pada area yang terdapat Fill, GetData() dan, seperti
ditunjukkan pada Gambar 2.70, pilih Configure
dari menu yang ditampilkan. Ini akan menampilkan jendela TableAdapter Configuration Wizard seperti ditunjukkan pada Gambar 2.71.
Perhatikan query SQL yang ada di dalam jendela TableAdapter Configuration Wizard. Dataset diisi dengan baris-baris
yang dihasilkan oleh statemen Select
ini. Jika Anda mengubah statemen Select
ini, misalnya, dengan menambahkan sebuah klausa Where dan kemudian mengklik tombol Finish, maka data yang awalnya ditampilkan pada kontrol DataGridView
akan berubah. Ketika Anda selesai memeriksa jendela ini, klik tombol Cancel untuk menutupnya.
Menambahkan Table Adapter Query Baru
Anda dapat menambahkan query SQL sendiri pada
suatu table adapter dan memanggilnya dari kode C# Anda. Pada Tutorial 2.6, Anda
akan menambahkan beberapa query pada table adapter, dan kemudian menciptakan
tombol-tombol pada form aplikasi yang mengeksekusi query-query tersebut.
Tutorial 2.6: Menciptakan Aplikasi Query Produk
Pada tutorial
ini, Anda akan menciptakan suatu aplikasi yang menampilkan tabel Produk dari database ProdukDB.mdf pada sebuah kontrol DataGridView. Anda juga menambahkan dua
query SQL pada table adapter. Kedua query ini melakukan berikut:
·
Menghasilkan semua baris, diurutkan berdasarkan harga dengan tatanan
menaik
·
Menghasilkan hanya baris-baris dengan lebih 100 unit tersedia
Kemudian,
Anda menciptakan tombol-tombol pada form aplikasi yang mengeksekusi kedua query
tersebut.
Langkah 1: Awali Visual Studio (atau Visual Studio Express).
Ciptakan sebuah projek Windows Forms
Application dengan nama Query Produk.
Langkah 2: Ubah properti Text
dari form Form1 menjadi Query Produk.
Langkah 3: Lakukan langkah-langkah berikut untuk menghubungkan
aplikasi ke database ProdukDB, dan
pilih tabel Produk sebagai dataset:
·
Dari menu PROJECT, pilih Add New Data Source….
·
Pilih Database dan klik
tombol Next >.
·
Pilih Dataset dan klik tombol
Next >.
·
Klik New Connection….
·
Pada jendela Add Connection,
pastikan bahwa Microsoft SQL Server
Database File (SqlClient) sebagai sumber data.
·
Pada jendela Add Connection,
klik Browse, dan jelajah ke folder Database. Pilih file ProdukDB.mdf. Klik OK.
·
Klik tombol Next >, dan
ketika ditanya apakah Anda ingin menyalin file ke dalam projek, klik Yes.
·
Klik Next >.
·
Pilih tabel Produk sebagai
objek database, dan ubah nama dari dataset menjadi ProdukDataSet. Klik Finish.
Langkah 4: Buka jendela Data
Source dan geret sebuah kontrol DataGridView ke dalam form, diikat ke
tabel Produk. Setelah menciptakan
kontrol DataGridView, sesuaikan
ukuran form dan kontrol, seperti ditunjukkan pada Gambar 2.72.
Langkah 5: Sekarang Anda menambahkan query pertama, yang
mengurutkan data di dalam dataset berdasarkan harga. Pada jendela Solution Explorer, klik ganda pada entri ProdukDataSet.xsd. Ini akan membuka deskripsi skema dataset. Klik
kanan di luasan yang tertulis ProdukTableAdapter.
Seperti ditunjukkan pada Gambar 2.73, pilih Add, dan kemudian klik Query….
Langkah 6: Jendela TableAdapter
Query Configuration Wizard akan ditampilkan, seperti pada Gambar 2.74.
Pastikan Use SQL Statements
diseleksi, dan kemudian klik Next >.
Langkah 7: Wizard sekarang meminta Anda untuk memilih sebuah jenis
query, seperti ditunjukkan pada Gambar 2.75. Pastikan SELECT which returns rows diseleksi, dan kemudian klik Next >.
Langkah 8: Wizard sekarang meminta Anda untuk menetapkan Specify a SQL SELECT statement. Sebuah statemen telah
ditunjukkan yang menghasilkan setiap baris di dalam tabel Produk. Tambahkan klausa Order
By Harga di akhir statemen, seperti ditunjukkan pada Gambar 2.76. Klik Next >.
Langkah 9: Wizard sekarang meminta Anda untuk memilih metode yang
akan dihasilkan (Choose Methods to
Generate). Pada kasus ini, Anda hanya ingin menghasilkan sebuah metode
untuk mengisi dataset dengan hasil dari statemen query. Lakukan seleksi-seleksi
berikut:
·
Pastikan Fill a DataTable
dicentang.
· Di bawah Fill a DataTable,
masukkan FillByHarga sebagai nama
metode. Ini akan menjadi nama dari metode yang mengeksekusi statemen SQL ini.
·
Pastikan Return a DataTable
tidak dicentang.
Jendela
sekarang ditampilkan seperti pada Gambar 2.77. Klik Next >.
Langkah 10: Wizard sekarang menampilkan hasil, seperti ditunjukkan
pada Gambar 2.78. Klik tombol Finish.
File definisi
skema (ProdukDataSet.xsd) sekarang
ditampilkan seperti pada Gambar 2.79. Perhatikan bahwa metode FillByHarga sekarang ditampilkan di
area bawah dari diagram.
Langkah 11: Selanjutnya, Anda menambahkan query kedua, yang
menghasilkan hanya baris-baris dengan jumlah unit tersedia lebih besar dari
100. Lakukan langkah-langkah berikut (hampir semua sama dengan apa yang telah
Anda lakukan untuk menambahkan query sebelumnya):
·
Pada definisi skema, klik kanan luasan yang tertulis ProdukTableAdapter.
·
Pada menu yang dimunculkan, pilih Add,
dan kemudian klik Query…. (Atau,
jika Anda melihat Add Query…, pilih
itu).
·
Jendela TableAdapter Query
Configuration Wizard akan ditampilkan. Pastikan Use SQL Statements diseleksi dan kemudian klik tombol Next >.
·
Wizar sekarang ditampilkan dan meminta Anda untuk memilih jenis query.
Pastikan SELECT which returns rows
diseleksi dan kemudian klik Next >.
·
Wizard sekarang meminta Anda untuk menetapkan statemen SELECT SQL (Specify a SQL SELECT statement). Sebuah
statemen telah ditampilkan yang menghasilkan setiap baris di dalam tabel Produk. Tambahkan klausa WHERE Unit_Tersedia > 100 di akhir
statemen, seperti ditunjukkan pada Gambar 2.80. Klik Next >.
· Wizard sekarang meminta Anda untuk memilih metode yang akan dibangkitkan
(Choose Methods to Generate).
Pastikan seleksi-seleksi berikut: Pastikan Fill
a DataTable dicentang, di bawah Fill
a DataTable masukkan FillByUnit
sebagai nama metode. Nama itu akan menjadi nama metode yang mengeksekusi
statemen SQL. Pastikan Return a
DataTable tidak dicentang.
·
Jendela akan ditampilkan seperti ditunjukkan pada Gambar 2.81. Klik Next >.
·
Wizard sekarang menampilkan hasil. Klik tombol Finish.
File definisi
skema (ProdukDataSet.xsd) akan
ditampilkan seperti pada Gambar 2.82. Perhatikan bahwa dua metode yang telah
Anda ciptakan FillByHarga() dan FillByUnit(), sekarang ditampilkan di
luasan bawah dari diagram.
Langkah 12: Sekarang Anda menambahkan kontrol-kontrol Button pada form aplikasi yang
mengeksekusi query-query SQL. Buka Form1
pada mode Designer dan tambahkan dua
kontrol Button seperti ditunjukkan
pada Gambar 2.83.
Langkah 13: Klik ganda pada kontrol tombolUrut. Sempurnakan event handler tombolUrut_Click dengan menuliskan kode pada baris 37 pada Program 2.4.
Statemen ini memanggil metode FillByHarga
dari table adapter.
Langkah 14: Kembali ke Form1
pada mode Designer dan klik ganda
pada kontrol tombolProduk.
Sempurnakan event handler tombolProduk_Click
dengan menuliskan kode pada baris 42 pada Program 2.4. Statemen ini memanggil
metode FillByUnit dari table
adapter.
Langkah 15: Simpan projek, dan kemudian jalankan aplikasi. Ketika
form ditampilkan, ia akan menampilkan semua baris di dalam tabel Produk pada kontrol DataGridView. Ketika Anda mengklik
tombol Urut Berdasarkan Harga, data
akan ditampilkan dengan diurutkan berdasarkan harga. Ketika Anda mengklik
tombol Produk Dengan Lebih 100 Unit,
Anda akan hanya melihat baris-baris dimana Unit_Tersedia
lebih besar dari 100. Ketika selesai, tutup form untuk keluar.
Program 2.4 Kode untuk Form1 pada aplikasi Query
Produk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Query_Produk
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
private void
produkBindingNavigatorSaveItem_Click(…)
{
this.Validate();
this.produkBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.produkDataSet);
}
private void Form1_Load(object
sender, EventArgs e)
{
// TODO: This line
of code loads …
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
private void
tombolUrut_Click(object sender, EventArgs e)
{
this.produkTableAdapter.FillByHarga(this.produkDataSet.Produk);
}
private void
tombolProduk_Click(object sender, EventArgs e)
{
this.produkTableAdapter.FillByUnit(this.produkDataSet.Produk);
}
}
}
|
Fungsi-Fungsi Matematika SQL
SQL menyediakan sejumlah fungsi untuk
melakukan perhitungan-perhitungan. Sebagai contoh, fungsi Avg menghitung nilai rerata pada kolom tertentu. Berikut adalah
sebuah contoh statemen Select yang
menggunakan fungsi Avg:
Select Avg(Harga) From Produk
Statemen ini menghasilkan sebuah nilai
tunggal: rerata dari semua nilai pada kolom Harga. Karena Anda tidak menggunakan klausa Where, ia menggunakan semua baris pada tabel Produk pada perhitungan. Berikut adalah salah satu contoh yang
menghitung harga rerata dari semua item yang memiliki nomor produk yang diawali
dengan “20”:
Select Avg(Harga)From Produk Where Nomor_Produk LIKE '20%'
Fungsi matematika lain adalah Sum, yang menghitung penjumlahan atas
nilai-nilai pada suatu kolom. Statemen berikut, yang bisa saja tidak berguna,
menghitung penjumlahan atas nilai-nilai pada kolom Harga:
Select
Sum(Harga) From Produk
Fungsi Min
dan Max menentukan nilai minimum dan
nilai maksimum yang ada pada suatu kolom. Statemen berikut menghasilkan nilai
minimum pada kolom Harga:
Select
Min(Harga) From Produk
Statemen berikut menghasilkan nilai maksimum
pada kolom Harga:
Select
Max(Harga) From Produk
Fungsi Count
dapat dipakai untuk menentukan banyak baris pada sebuah tabel, seperti
didemonstrasikan oleh statemen berikut:
Select
Count(*) From Produk
Karakter * mengindikasikan bahwa Anda ingin
menghitung keseluruhan baris. Berikut adalah contoh lain, yang menghasilkan
banyak item dengan harga lebih besar dari 100000:
Select
Count(*) From Produk Where Harga > 100000
Pada Tutorial 2.7, Anda akan menambahkan
query lain pada table adapter pada aplikasi Query Produk. Query baru ini akan menampilkan harga rerata dari semua
item di dalam database.
Tutorial 2.7: Menciptakan Aplikasi Query Produk
Pada tutorial
ini, Anda akan menambahkan sebuah query pada aplikasi Query Produk yang
menghasilkan harga rerata dari semua item di dalam tabel Produk. Anda juga akan menambahkan sebuah tombol pada form aplikasi
yang mengeksekusi query dan menampilkan hasilnya.
Langkah 1: Pastikan projek Query
Produk dibuka pada Visual Studio (atau Visual Studio Express) dari tutorial
sebelumnya.
Langkah 2: Pada jendela Solution
Explorer, klik ganda pada entri ProdukDataSet.xsd. Ini akan membuka
deskripsi skema dataset. Klik kanan pada luasan yang tertulis ProdukTableAdapter. Pada menu yang
dimunculkan, pilih Add dan kemudian klik Query….
(Atau, jika Anda melihat Add Query…
pada menu, pilih itu).
Langkah 3: Pada jendela TableAdapter
Query Configuration Wizard, pastikan Use
SQL Statements diseleksi dan kemudian pilih Next >.
Langkah 4: Wizard sekarang meminta Anda untuk memilih jenis query.
Pastikan SELECT which returns a single
value diseleksi dan kemudian klik Next
>.
Langkah 5: Wizard sekarang meminta Anda untuk menetapkan statemen
SELECT SQL. Hapus statemen yang ditunjukkan pada jendela dan ganti dengan
berikut:
Select Avg(Harga) From Harga
Jendela
sekarang akan ditampilkan seperti pada Gambar 2.84. Klik Next >.
Langkah 6: Wizard sekarang meminta Anda untuk memilih nama fungsi (Choose
Function Name). Nama yang Anda tetapkan pada jendela ini akan menjadi nama
metode yang mengeksekusi query. Seperti ditunjukkan pada Gambar 2.85, ubah nama
menjadi HargaRerata dan kemudian
klik Next >.
Langkah 7: Wizard sekarang menampilkan hasil. Klik tombol Finish. File definisi skema (ProdukDataSet.xsd) sekarang ditampilkan
seperti pada Gambar 2.86. Perhatikan bahwa metode HargaRerata sekarang ditampilkan, berikut dengan metode-metode lain
yang sebelumnya telah Anda ciptakan.
Langkah 8: Selanjutnya, Anda menambahkan sebuah kontrol Button pada form aplikasi yang
mengeksekusi metode HargaRerata dari
table adapter. Buka Form1 pada mode Designer dan kontrol tombolHargaRerata ditampilkan pada
Gambar 2.87a.
Langkah 9: Klik ganda pada kontrol tombolHargaRerata. Sempurnakan event handler tombolHargaRerata_Click dengan menuliskan kode pada baris 47-55
pada Program 2-5. Amati kode lebih dekat:
Baris 48: Statemen ini mendeklarasikan sebuah variabel decimal lokal dengan nama hargaRerata.
Baris 51: Statemen ini memanggil metode HargaRerata dari table adapter, yang memberikan hasil dari statemen
Select yang telah Anda tuliskan pada
Langkah 4. Nilai yang dihasilkan ditugaskan kepada variabel hargaRerata. Perhatikan bahwa Anda
perlu menggunakan operator cast untuk secara eksplisit mengkonversi nilai
menjadi sebuah decimal.
Baris 54-55: Statemen ini menampilkan sebuah kotak pesan yang
menunjukkan harga rerata dari semua item pada tabel.
Langkah 10: Simpan projek dan kemudian jalankan aplikasi. Klik
tombol Harga Rerata Dari Semua Item.
Anda akan melihat sebuah kotak pesan yang menampilkan harga rerata dari semua
item pada tabel. Lihat Gambar 2.87b.
Program 2.5 Kode untuk Form1 pada aplikasi Query
Produk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Query_Produk
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
private void
produkBindingNavigatorSaveItem_Click(…)
{
this.Validate();
this.produkBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.produkDataSet);
}
private void Form1_Load(object
sender, EventArgs e)
{
// TODO: This line
of code …
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
private void
tombolUrut_Click(object sender, EventArgs e)
{
this.produkTableAdapter.FillByHarga(this.produkDataSet.Produk);
}
private void
tombolProduk_Click(object sender, EventArgs e)
{
this.produkTableAdapter.FillByUnit(this.produkDataSet.Produk);
}
private void
tombolHargaRerata_Click(object sender, EventArgs e)
{
//mendeklarasikan sebuah variabel untuk memuat harga rerata
decimal hargaRerata;
//mendapatkan harga rerata
hargaRerata = (decimal)
this.produkTableAdapter.HargaRerata();
//menampilkan harga rerata
MessageBox.Show("Harga
rerata dari semua item: Rp. " +
hargaRerata.ToString());
}
}
}
|
Parameter-Parameter Query
Query SQL dapat menerima argumen. Sama
seperti metode biasa, argumen dilewatkan kepada variabel parameter. Pada
statemen SQL, variabel parameter diawali dengan simbol @. Statemen berikut
menunjukkan salah satu contohnya:
Select * From Produk Where Harga < @nilaiHarga
Statemen ini membaca semua baris dimana di
dalamnya kolom Harga bernilai kurang
dari nilai dari parameter nilaiHarga.
Berikut adalah sebuah contoh lain:
Select * From Produk
Where Harga < @nilaiHarga And Unit_Tersedia < @nilaiUnit
Statemen ini membaca semua baris dimana di
dalamnya kolom Harga bernilai kurang
dari nilai dari parameter @nilaiHarga
dan kolom Unit_Tersedia bernilai
kurang dari nilai dari parameter @nilaiUnit.
Ketika Anda memanggil metode table adapter
untuk sebuah query SQL, Anda perlu melewatkan argumen-argumen untuk setiap
parameter yang dipakai di dalam query. Pada Tutorial 2.8, Anda akan menciptakan
sebuah aplikasi yang mendapatkan suatu nilai dari user dan melewatkan nilai itu
sebagai argumen kepada sebuah query SQL.
Tutorial 2.8: Menciptakan Aplikasi Pencarian Produk
Pada tutorial ini, Anda akan menciptakan
sebuah aplikasi yang menampilkan tabel Produk
dari database ProdukDB.mdf pada
sebuah kontrol DataGridView. User
akan dapat memasukkan suatu nilai ke dalam sebuah kotak teks dan melakukan
pencarian semua item yang memuat nilai itu.
Langkah 1: Awali Visual Studio (atau Visual Studio Express).
Ciptakan sebuah projek Windows Forms
Application dengan nama Pencarian
Produk.
Langkah 2: Ubah properti Text
dari form Form1 menjadi Pencarian Produk.
Langkah 3: Lakukan langkah-langkah berikut untuk menghubungkan
aplikasi ke database ProdukDB, dan
pilih tabel Produk sebagai dataset:
·
Dari menu PROJECT, pilih Add New Data Source….
·
Pilih Database dan klik
tombol Next >.
·
Pilih Dataset dan klik tombol
Next >.
·
Klik New Connection….
· Pada jendela Add Connection,
pastikan bahwa Microsoft SQL Server
Database File (SqlClient) sebagai sumber data.
·
Pada jendela Add Connection,
klik Browse, dan jelajah ke folder Database. Pilih file ProdukDB.mdf. Klik OK.
·
Klik tombol Next >, dan
ketika ditanya apakah Anda ingin menyalin file ke dalam projek, klik Yes.
·
Klik Next >.
·
Pilih tabel Produk sebagai
objek database, dan ubah nama dari dataset menjadi ProdukDataSet. Klik Finish.
Langkah 4: Buka jendela Data
Sources dan geret sebuah kontrol DataGridView ke dalam form, yang diikat
dengan tabel Produk.
Langkah 5: Sesuaikan ukuran form dan ukuran kontrol DataGridView, seperti ditunjukkan pada
Gambar 2.88. Kemudian, tempatkan kotak grup, kotak teks, dan tombol-tombol
seperti ditunjukkan pada gambar. Berikut adalah simpulan dari apa yang akan
dilakukan kontrol-kontrol Button
ketika aplikasi dijalankan:
·
Kontrol tombolCari akan
mendapatkan nilai yang dimasukkan ke dalam kotakTeksCari
dan melewatkannya sebagai argumen kepada sebuah query SQL. Query akan
menghasilkan semua baris pada tabel Produk
yang memuat nilai yang dilewatkan sebagai argumen itu. Baris-baris itu akan
ditampilkan pada kontrol DataGridView.
·
Kontrol tombolTampilSemua
akan menampilkan semua baris dari tabel Produk
pada kontrol DataGridView.
Langkah 6: Pada jendela Solution
Explorer, klik ganda pada entri ProdukDataSet. Ini akan membuka
deskripsi skema dataset. Klik kanan pada luasan yang bertuliskan ProdukTableAdapter. Pada menu yang
dimunculkan, pilih Add dan kemudian klik Query…
(Atau, jika Anda melihat Add Query…
pada menu, pilih itu).
Langkah 7: Jendela TableAdapter
Query Configuration Wizard akan ditampilkan. Pastikan Use SQL Statements diseleksi dan kemudian klik Next >.
Langkah 8: Wizard sekarang meminta Anda untuk memilih jenis query.
Pastikan SELECT which returns rows diseleksi
dan kemudian klik Next >.
Langkah 9: Wizard sekarang meminta Anda untuk menetapkan statemen
SELECT SQL (Specify a SQL SELECT
statement). Modifikasi statemen default yang disediakan di sini:
Select Nomor_Produk, Deskripsi,
Unit_Tersedia, Harga
From Produk
Where Deskripsi Like '%' + @nilai + ‘%’
Perhatikan
bahwa sebuah parameter query dengan nama @nilai
digunakan pada klausa Where. Selain
itu, perhatikan kegunaan operator + untuk penyambungan string. Ketika query ini
dieksekusi, ia akan menghasilkan semua baris dimana di dalamnya kolom Deskripsi memuat nilai yang ditetapkan
oleh parameter @nilai. Jendela pada
titik ini akan ditampilkan seperti pada Gambar 2.89. Klik Next >.
Langkah 10: Wizard sekarang meminta Anda untuk memilih metode yang
akan dihasilkan (Choose Methods to
Generate). Lakukan seleksi-seleksi berikut:
·
Pastikan Fill a DataTable
dicentang.
·
Di bawah Fill a DataTable,
masukkan CariDesc sebagai nama
metode. Ini akan menjadi nama dari metode yang mengeksekusi statemen SQL ini.
·
Pastikan Return a DataTable
tidak dicentang.
Jendela
sekarang ditampilkan seperti pada Gambar 2.90. Klik Next >.
Langkah 11: Wizard sekarang menampilkan hasil. Klik tombol Finish. File definisi skema (ProdukDataSet.xsd) sekarang ditampilkan
separti pada Gambar 2.91. Perhatikan bahwa CariDesc(@nilai)
sekarang ditampilkan pada luasan di bawah dari diagram.
Langkah 12: Buka Form1
pada mode Designer dan klik ganda
pada kontrol tombolCari. Sempurnakan
event handler tombolCari_Click
dengan menuliskan kode yang ditunjukkan pada baris 37 dan 38 pada Program 2.6.
Statemen-statemen
pada kedua baris itu memanggil metode CariDesc
dari table adapter. Argumen pertama adalah tabel Produk dari dataset, dan argumen kedua adalah properti Text dari kontrol kotakTeksCari. Argumen kedua akan dilewatkan kepada parameter query
@nilai.
Langkah 13: Kembali ke Form1
pada mode Designer dan klik ganda
pada kontrol tombolTampilSemua.
Sempurnakan event handler tombolTampilSemua_Click
dengan menuliskan kode pada baris 43 pada Program 2.6. Statemen pada baris ini
memanggil metode Fill dari table
adapter. Ingat bahwa metode Fill
mengisi tabel dataset dengan semua baris dari tabel.
Langkah 14: Simpan projek dan kemudian jalankan aplikasi. Masukkan
suku pencarian, seperti Kemeja atau Celana, pada kotak teks dan klik tombol Cari. Anda akan melihat semua baris
yang memuat suku pencarian yang ditampilkan pada kontrol DataGridView. Untuk mereset kontrol DataGridView sehingga ia menampilkan semua baris, klik tombol Tampilkan Semua Item. Lihat Gambar 2.92
dan Gambar 2.93.
Program 2.6 Kode untuk Form1 pada aplikasi Pencarian
Produk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pencarian_Produk
{
public partial class Form1 :
Form
{
public Form1()
{
InitializeComponent();
}
private void
produkBindingNavigatorSaveItem_Click(…)
{
this.Validate();
this.produkBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.produkDataSet);
}
private void
Form1_Load(object sender, EventArgs e)
{
// TODO: This line
of code …
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
private void
tombolCari_Click(object sender, EventArgs e)
{
this.produkTableAdapter.CariDesc(
this.produkDataSet.Produk, kotakTeksCari.Text);
}
private void
tombolTampilSemua_Click(object sender, EventArgs e)
{
this.produkTableAdapter.Fill(this.produkDataSet.Produk);
}
}
}
|
Logika Pemrograman: Bab 2: Pemrograman C.Net: Database Dan Web >>>>> Download Now
ReplyDelete>>>>> Download Full
Logika Pemrograman: Bab 2: Pemrograman C.Net: Database Dan Web >>>>> Download LINK
>>>>> Download Now
Logika Pemrograman: Bab 2: Pemrograman C.Net: Database Dan Web >>>>> Download Full
>>>>> Download LINK