MODUL PRAKTIKUM
APLIKASI BERBASIS DESKTOP
27 Agustus 2018
Penyusun:
Katon Wijana, S.Kom., M.T.
Halaman
Praktikum Modul
Sampul 1
Daftar Isi 3
1. SQL - SELECT, INSERT, UPDATE dan DELETE 4
Pendalaman Materi Praktikum 1 7
2 SQL - Domain Constraint, Entity Constraint, Integrity 9
Constraint, SELECT Multiple Table, GROUP BY, VIEW, Backup
dan Restore
Pendalaman Materi Praktikum 2 19
3. SQL - TRIGGER 21
Pendalaman Materi Praktikum 3 23
4. Antarmuka Grafis Untuk Mengelola Basis Data 26
Pendalaman Materi Praktikum 4 31
5. Manipulasi Data dan GUI Programming 33
Pendalaman Materi Praktikum 5 35
6. Mengorganisasikan Program 38
Pendalaman Materi Praktikum 6 40
7. Laporan (Report) 44
Pendalaman Materi Praktikum 7 48
8. Menampilkan Transaksi 51
Antarmuka Grafis Master - Detail
Pendalaman Materi Praktikum 8 61
9. Manipulasi Data Master (kode Supplier) 67
Antarmuka Grafis Master - Detail
Pendalaman Materi Praktikum 9 70
10. Manipulasi Data Detail (insert) 72
Antarmuka Grafis Master - Detail
Pendalaman Materi Praktikum 10 78
11. Manipulasi Data Detail (update & Delete) 82
Antarmuka Grafis Master - Detail
Pendalaman Materi Praktikum 11 85
12. Menambah dan Menghapus Transaksi 88
Antarmuka Grafis Master - Detail
Pendalaman Materi Praktikum 12 93
TUJUAN PRAKTIKUM
1. Memahami cara membuat tabel dengan perintah SQL maupun antarmuka grafis.
2. Memahami cara menampilkan isi tabel.
3. Memahami cara mengubah data dan menghapus entitas dalam tabel.
4. Mampu melakukan pengolahan basis data untuk kasus-kasus lain.
PENGANTAR
SQL adalah singkatan dari Structured Query Language, yaitu satu-satunya bahasa yang dapat
dimengerti oleh mesin-mesin database. Perintah SQL dapat digolongkan menjadi DQL, DDL,
DCL dan DML seperti Gambar 1.1 di bawah ini.
Pada contoh ini, ketika mengisi tabel (menambahkan baris) maka isi dari kolom nim harus
bersifat unik, jika tidak maka RDBMS akan menolak dan menampilkan pesan kesalahan.
Contoh 2:
CREATE TABLE barang(kode int identity, nama varchar(30) not
null, harga int default 0);
Pada contoh ini, ketika mengisi tabel (menambahkan baris) maka isi dari kolom kode tidak boleh
diisi, RDBMS akan memberikan identity berupa nomor urut secara otomatis, tipe data kolom
untuk identity hatus int.
a. Menambah (Insert) :
Bentuk umum : INSERT INTO <nama_tabel>[(<nama_kolom>, . . .)]
VALUES(<nilai_1>,...)
Keterangan :
Jika yang akan diisi semua kolom, maka nama kolom tidak perlu disebutkan.
Jika nama kolom tidak disebutkan, maka nilai (values) yang dimasukkan harus
mempunyai urutan yang sama seperti tabel strukturnya.
Contoh :
INSERT INTO mhs(nim,nama,kota)
VALUES('22870137','Katon Wijana','Yogyakarta');
Catatan :
Kalusa WHERE pada perintah DELETE juga wajib digunakan, apabila tidak ditulis
maka penghapusan akan dikerjakan untuk seluruh baris pada tabel tersebut.
Contoh :
DELETE FROM mhs WHERE nim='22870137';
Keterangan :
Jika kolom disebutkan, yang akan ditampilkan hanya kolom-kolom yang disebutkan
tersebut. Jika tidak disebutkan maka harus digantikan dengan karakter asterik (*) dan
hasilnya semua kolom akan ditampilkan.
Contoh :
SELECT * FROM mhs;
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
PENDALAMAN MATERI
NAMA : _______________________
PRAKTIKUM 1
NIM : __________________
supplier
3. Jelaskan cara mengubah data apabila terjadi kesalahan memasukkan data dengan perintah
SQL (UPDATE).
4. Jelaskan cara menghapus data (baris) tertentu data apabila dikehendaki mengurangi data
dengan perintah SQL (DELETE).
5. Jelaskan cara membaca (mengambil) data yang tersimpan dalam tabel menggunakan
perintah SQL (SELECT)
Laporan Praktikum ditulis memakai Microsoft Word Program yang telah dibuat bisa di
Screen shoot (print Screen) atau di copy-paste kemudian diatur yang rapi untuk dibahas.
Jangan lupa memberikan header seperti kotak di atas sebagai identitas tugas dan identitas
praktikan
TUJUAN PRAKTIKUM
1. Memahami cara membuat dan cara kerja domain constraint, entity constraint dan
integrity constraint dengan antarmuka grafis SQL Server Management Studio
(SSMS).
2. Memahami cara mengambil data dari beberapa tabel yang berelasi.
3. Memahami cara mengelompokkan baris-baris tabel dan fungsi-fungsi aggregasi.
4. Memahami cara membuat View.
5. Memahami cara melakukan Backup dan Restore database SQL Server.
6. Mampu melakukan pengolahan basis data untuk kasus-kasus lain.
PENGANTAR
Konstrain merupakan bagian dari pekerjaan Database Management System untuk
mempertahankan keabsahan atau validitas suatu data, dengan adanya konstrain kualitas
dari data lebih terjamin. Secara umum ada 3 macam konstrain yang dapat dibuat pada suatu
tabel, yaitu :
Konstrain Keterangan
Domain Constraint Batasan nilai suatu field, yaitu tipe data (int, double, date, dsb.) atau
range nilai yang dapat diatur dengan batasan tertentu.
Entity Constraint Batasan ini membuat suatu data menjadi absah sebagai entitas, yaitu
dapat dibedakan dengan data yang lain (unik). Konstrain ini dikenal
dalam bentuk kunci utama (Primary Key).
Integrity Constraint Batasan ini berguna untuk menjaga integritas data, yaitu kesamaan
data antara tabel-tabel yang mempunyai relasi. Konstrain ini dikenal
dalam bentuk kunci tamu (Foreign Key)
Gambar 2.1 Konstrain-konstrain dalam Basis Data
Domain Constraint
Domain konstrain adalah aturan/batasan dari jenis data yang dapat diterima suatu kolom,
baik itu berupa tipe data maupun ukurannya. Sebagai contoh misalnya kolom tanggalLahir
yang bertipe Date (tanggal), maka hanya dapat menerima nilai tanggal yang sah (contoh
Gambar 2.2 Domain konstrian (tipe data) ditentukan ketika tabel dibuat
Entity Constraint
Entity Constraint merupakan aturan/batasan dari data yang dapat diterima suatu kolom
harus unik (Primary Key), artinya apabila suatu baris pada kolom yang mempunyai entity
constaint sudah menyimpan suatu nilai dan pemakai menambahkan baris baru dengan nilai
yang sama pada kolom tersebut, maka RDBMS akan menolak baris baru tambahan tersebut.
Jadi konstraint ini kan menjamin keabsahan suatu entitas (entitas adalah segala sesuatu
yang mempunyai keunikan), sehingga tiap-tiap baris dari suatu tabel pasti dapat dibedakan
satu dengan yang lainnya. Sebagai contoh misalnya supaya barang yang satu dapat
dibedakan dengan barang yang lain maka ditambahkan kolom bernama kodeBarang,
kemudian untuk menjamin keabsahannya sebagai kunci utama (Primary Key) maka dapat
diatur dengan cara klik kanan pada kolom tersebut kemudian pilih menu "Set Primary Key"
seperti Gambar 2.3 di bawah ini:
Penomoran Otomatis
Penomoran otomatis (auto increment) biasanya diberikan pada kolom kunci utama,
penomoran otomatis ini sangat bermanfaat untuk memberikan identitas yang unik
pada suatu baris. Pada SQL Server penomoran otomatis ini dibuat dengan cara
mengatur suatu kolom bertipe int menjadi identitas (identity) seperti Gambar 2.4 di
bawah ini.
Integrity Constraint
Integrity constrain adalah aturan dari data yang dapat diterima suatu kolom harus sudah
terdaftar pada kolom yang berelasi dengan kolom tersebut (Foreign Key). Dengan demikian
maka integrasi antar tabel dapat selalu dijamin keabsahannya. Aturan bisnis untuk Insert
pada tabel anak (yang mempunyai konstrain Foriegn key) adalah Restrict atau Ignore,
sedangkan untuk Update dan Delete pada tabel induk (yang mempunyai konstrain Primary
key) adalah Restrict, Cascade atau Ignore.
Integrity Constraint (Foreign Key) baru bisa dibuat setelah Entity Constraint dibuat karena
Integrity Constraint akan mengacu pada kunci utama (Primary Key), sebagai contoh misalnya
akan dibuat Integrity Constraint untuk skema diagram seperti Gambar 2.5 di bawah ini:
ItemNotaBeli
Supplier Pk NotaBeli idNotaBeli *
kodeSupplier * Fk noNotaBeli * Fk noNotaBeli ** Fk
namaSupplier kodeSupplier ** Pk kodeBarang **
Barang
alamat tanggal qty
telpon harga Pk kodeBarang *
kota ItemNotaJual namaBarang
NotaJual hargaBeli
Fk idNotaJual * hargaJual
noNotaJual * Pk noNotaJual ** Fk stok
tanggal kodeBarang ** satuan
qty
harga
Gambar 2.5 Skema Diagaram Sistem Informasi Persediaan Barang
Pada kotak menu pilih Relationships, klik tombol Add kemudian pada list box di sebelah
kanan pilihlah Tables And Columns Specification lalu klik pada tombol Eclipse di sebelah
kanannya seperti padea Gambar 2.7 di bawah ini:
Langkah berikutnya akan tampil kotak dialog Tables and Columns seperti Gambar 2.8 di
bawah ini. Pada sisi Primary key table pilihlah tabel Barang, kemudian pilihlah field
kodeBarang, sedangkan pada sisi Foreign key table secara otomatis terpilih tabel
ItemNotaBeli lalu di bawahnya pilihlah field kodeBarang dan tekan tombol OK.
Selanjutnya pada menu INSERT And UPDATE Spesification pilih aturan bisnis pada Delete
Rule dan Update Rule adalah No Action seperti pada Gambar 2.9 di bawah ini, kemudian
tekan tombol Close kemudian tekan tombol Save.
Gambar 2.9 Menentukan aturan bisnis pada konstrain yang sedang dibuat
Cara melakukan penggabungan tabel adalah dengan memakai perintah SQL SELECT multiple
table sebagai berikut:
• Sebutkan nama-nama kolom (field) yang hendak ditampilkan pada bagian setelah
SELECT
• Karena ada nama-nama kolom yang ambigu (ada di kedua tabel), sebelum
menyebutkan nama field sebutkan nama tabel pemilik field yang akan ditampilkan
tersebut lebih dahulu, misalnya itemNotaBeli.kodeBarang.
• Pada klausa FROM sebutkan semua nama-nama tabel yang terlibat pisahkan dengan
tanda koma untuk tiap nama tabel.
Gambar 2.12 Perintah SQL SELECT tabel itemBeli dengan tabel barang
Bentuk di atas bisa lebih disederhanakan lagi dengan tanpa meyebutkan nama alias untuk
kolom yang tidak ambigu (nama kolom hanya ada di salah satu tabel) seperti Gambar 2.14 di
bawah ini:
Gambar 2.14 Perintah SQL SELECT memakai alias hanya pada nama kolom yang ambigu
Gambar 2.15 Pengelompokan berdasarkan departemen dan kolom salary dijumlahkan (sum)
Untuk melakukan perintah SELECT dengan pengelompokan bisa dilakukan dengan cara
menyebutkan nama-nama kolom yang akan dikelompokkan, kemudian untuk kolom-kolom
yang akan dihitung memakai fungsi tuliskan fungsi-fungsi agregasi untuk kolom yang akan
direkapitulasi, gunakan klausa FROM seperti biasa dan yang terakhir tambahkan klausa
Gambar 2.16 Pengelompokan berdasarkan kodeBarang dan kolom qty dijumlahkan (sum)
Pada contoh Gambar 2.17 informasi yang dihasilkan masih kurang lengkap, untuk
melengkapinya diperlukan perintah SELECT multiple table, Gambar 2.17 di bawah ini adalah
contoh SELECT multiple table yang dikelompokkan memakai klausa GROUP BY.
VIEW
View adalah query yang disimpan dalam suatu objek, View mempunyai bentuk yang
menyerupai tabel walaupun sebenarnya berupa perintah SELECT bentuk apapun termasuk
multiple table, GROUP BY maupun gabungannya yang disimpan dalam bentuk objek View.
Cara membuat view adalah dengan membuat query-nya secara lengkap terlebih dahulu,
perintah SELECT maupun kombinasinya dengan GROUP BY diuji coba terlebih dahulu untuk
dijalankan kemudian tinggal menambahkan perintag SQL CREATE VIEW sebagai berikut:
CREATE VIEW <nama_view> AS <perintah_SELECT>
Gambar 2.18 di bawah ini adalah contoh perintah pembuatan VIEW daftarBeli :
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
4. Buat Laporan Praktikum menggunakan template yang sudah disediakan, gantilah nama
file menjadi "Praktikum02_ABD_[NIM].doc"
5. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.
PENDALAMAN MATERI
NAMA : ______________________________
PRAKTIKUM 2
NIM : __________________
Untuk semua percobaan di bawah ini buatlah laporan cara membuat dengan
pertintah tertulis maupun menu antarmuka grafis SSMS.
1. Buatlah atau bukalah database Inventory yang sudah dibuat pada praktikum minggu
yang lalu, yang berisi table-tabel dengan struktur sebagai berikut :
3. Jelaskan mana yang dimaksud dengan Domain Constraint dan demonstrasikan reaksi
RDBMS apabia konstrain tersebut tidak dipatuhi.
4. Jelaskan mana yang dimaksud dengan Entity Constraint dan demonstrasikan reaksi
RDBMS apabia konstrain tersebut tidak dipatuhi.
6. Jelaskan mana yang dimaksud dengan Integrity Constraint dan demonstrasikan reaksi
RDBMS apabia konstrain tersebut tidak dipatuhi.
Laporan Praktikum ditulis memakai Microsoft Word Program yang telah dibuat bisa di
Screen shoot (print Screen) atau di copy-paste kemudian diatur yang rapi untuk dibahas.
Jangan lupa memberikan header seperti kotak di atas sebagai identitas tugas dan identitas
praktikan
TUJUAN PRAKTIKUM
1. Memahami cara membuat Trigger.
2. Memahami manfaat Trigger.
3. Memahami cara kerja Trigger.
4. Mampu membuat Trigger untuk menjaga konsistensi perhitungan stok barang.
PENGANTAR
Trigger adalah program (kode prosedural) dalam RDBMS yang akan secara otomatis
dieksekusi akibat dipicu oleh suatu event/ kejadian (transaksi) pada suatu Tabel. Trigger
dapat digunakan untuk mencegah akses terhadap data tertentu, melakukan logging atau
melakukan audit perubahan terhadap data. Trigger digunakan untuk memonitor
pemrosesan statemen DML (Data Manipulation Language) seperti INSERT, DELETE dan
UPDATE, namun trigger tidak dapat dipicu (bekerja) pada statemen SELECT.
Terdapat tiga kejadian (event) umum yang dapat menyebabkan trigger dipicu :
– INSERT, berarti trigger dijalankan ketika terdapat sejumlah data baru yang diinput
– UPDATE, berarti trigger dijalankan ketika terdapat data / record yang diubah
– DELETE, berarti trigger dijalankan ketika terdapat data / record yang dihapus
Manfaat Trigger
Trigger merupakan salah satu mekanisme untuk menjalankan aturan bisnis dan menjaga
integritas data dalam sebuah basis data. Mekanisme yang lainnya adalah penggunaan
Constraint seperti sudah di bahas pada praktikum sebelumnya.
Trigger dapat mengevaluasi status/ kondisi dari suatu tabel, baik sebelum maupun sesudah
terjadi perubahan (transaksi) data dan melakukan aksinya sesuai perbedaan yang terjadi.
Trigger dapat melakukan perubahan secara cascade melalui melalui relasi tabel pada
database, akan tetapi perubahan ini akan lebih efisien jika dieksekusi menggunakan
referential integrity constraints. Trigger dapat melakukan pencegahan akses atas data yang
kompleks dibanding dengan menggunakan CHECK CONSTRAINT, tidak seperti pada Check
Constraint, Trigger dapat mereferensikan kolom/ field dalam tabel yang berbeda.
Menghapus Trigger
Untuk menghapus Trigger dapat dilakukan dengan perintah SQL DROP TTRIGGER seperti di
bawah ini:
Mengubah Trigger
Untuk mengubah Trigger dapat dilakukan dengan perintah SQL ALTER TTRIGGER seperti di
bawah ini:
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
PENDALAMAN MATERI
NAMA : ______________________________
PRAKTIKUM 3
NIM : __________________
Untuk semua percobaan di bawah ini buatlah laporan cara membuat yaitu
berupa langkah-langkah yang dilengkapi dengan screen shoot.
Trigger Pembelian
1. Jelaskan terlebih dahulu, apabila terjadi transaksi pembelian tabel-tabel apa yang akan
terlibat untuk merekam kejadian (porses) tersebut.
Contoh jawaban (kamu harus buat sendiri): Jika ada transaksi pembelian, maka tabel-tabel yang mengalami perubahan yaitu :
notaBeli, itemNotaBeli dan Barang. Ketika ada pembelian maka dibuat baris pada tabel Nota Beli, kemudian pada
tabelitemNotaBeli dituliskan history transaksinya yaitu barang apa saja yang dibeli dan berapa quantitynya. Pada tabel Barang
akan terjadi update pada kolom stok sesuai dengan histori pada tabel itemNotaBeli tersebut.
2. Berikan Screen shoot dari Trigger yang berkaitan dengan pemutakhiran stok karena
transaksi pembelian, pada Trigger-Trigger ini harus ada Author (nim nama kamu), Create
Date (jam dan tanggal praktikum) dan Description (penjelasan singkat mengenai trigger
ini), jelaskan cara kerjanya.
TUJUAN PRAKTIKUM
1. Memahami cara membuat antarmuka grafis.
2. Memahami manfaat antarmuka grafis.
3. Memahami cara menghubungkan antarmuka grafis dengan RDBMS.
4. Mampu membuat antarmuka grafis untuk mengelola Basis Data.
PENGANTAR
Antarmuka grafis merupakan bagian yang digunakan untuk penghubung (interface) antara
pemakai dengan sistem komputer. Dengan SSMS (Sql Server Management Studio)
komunikasi dengan sistem basis data dapat dilakukan baik dengan bahasa SQL secara
tertulis maupun antarmuka grafis, namun alat tersebut bersifat terlalu umum dan terlalu
teknis sehingga hanya dapat dioperasikan oleh pemakai pada level programmer.
Microsoft Visual Studio mempunyai peralatan untuk membuat antarmuka grafis dan
menyediakan frame fork ADO.NET untuk berkomunikasi dengan Basis Data. Satu-satunya
cara untuk bisa berkomunikasi dengan database server adalah memakai bahasa SQL. Oleh
karena itu harus ada infrastruktur yang mendukung agar query SQL dalam bentuk string
tersebut dapat diterima oleh RDBMS SQL Server dan responnya dapat ditampung pada
struktur data yang ada di client. Microsoft .NET menyediakan kelas-kelas yang dapat
digunakan untuk membangun koneksi dengan database server tersebut, yaitu yang terdapat
pada namespace System.Data.SqlClient, seperti terlihat pada Gambar 4.1. berikut ini:
Server Client
DataTable
SqlConnection
RDBMS SqlDataAdapter
SqlCommand
Gambar 4.1. Objek-objek yang terkait koneksi, komunikasi dan penampungan data
String Koneksi
String koneksi dibutuhkan sebagai parameter (argumen) saat instansiasi objek
SqlConnection, pada kasus yang kita bahas, parameter-parameter yang diisi adalah :
"data source=.\SQLEXPRESS", "initial catalog=inventory" dan "integrated security=
true", jadi bisa dituliskan baris program :
Perhatikan bahwa dalam pemrograman C#, karakter "\" digunakan sebagai pembangkit
escape character seperti misalnya \n berarti ENTER, \t berarti Tab dan sebagainya, oleh
karena itu pada waktu menuliskan nama instan database karakter \ harus ditulis dua kali
seperti di atas.
Objek Koneksi
Objek koneksi dibutuhkan untuk membuat jalur sambungan antara Client dan Sever, objek
ini dibuat dari kelas SqlConnection yang membutuhkan parameter bertipe string yang isinya
berupa data nama instan database, nama database dan sistem keamanan yang dipilih.
Secara umum cara melakukan instansiasi SqlConnection adalah sbb.:
Parameter <string> yang dibutuhkan di sini adalah string koneksi (connection string) yaitu
yang pada kasus kita nilainya seperti yang sudah disimpan pada variabel connectionString di
atas. Dengan demikian, untuk membangun hubungan Client/Sever dapat dilakukan dengan
memberikan perintah:
Command
RDBMS membutuhkan request dalam bentuk string dengan aturan yang sesuai dengan
bahasa SQL, namun objek koneksi yang dibuat di atas tidak dapat langsung menerima string
(plain text) untuk dikirimkan ke database server, sehingga diperlukan pembuatan objek
SqlCommand sebagai objek yang akan menampung query yang hendak dikirimkan ke
database server, untuk memakai objek koneksi sebagai jalan menuju server, objek koneksi
yang telah berhasil dibuat tadi dipakai sebagai parameter objek SqlCommand. Berikut ini
adalah bentuk umum pembuatan objek SqlCommand:
Dengan demikian, misalnya untuk mengirimkan query permintaan data tabel barang dengan
server tujuan adalah objek koneksi yang sudah di buat di atas (con) adalah sebagai berikut:
DataTable
<nama_objek_dataGridView>.DataSource = <objek_DataTable>;
Dengan demikian, jika pada antarmuka grafis form diletakkan kontrol form DataGridView
dan nama objek DataGridView tersebut adalah dgvBarang seperti Gambar 4.2. di bawah ini:
Gambar 4.2. Desain form dengan sebuah kontrol form DataGridView bernama dgvBarang
Data Adapter
Apabila query yang dikirimkan menghasilkan respon, seperti misalnya perintah SELECT di
atas, maka dibutuhkan sebuah objek SqlDataAdapter yang dapat secara otomatis
menangkap nama-nama kolom beserta isi tiap-tiap baris agar siap dipindahkan ke struktur
data DataTable. Dengan adanya objek SqlDataAdapter ini maka DataTable secara otomatis
akan diatur struktur datanya sesuai dengan struktur data yang ada pada tabel yang
dipanggil. Memang tidak semua tipe data yang ada pada tabel SQL Server ada pada bahasa
pemrograman C#, oleh karena itu perlu disesuaikan dengan lingkungan bahasa C#, sebagai
contoh misalnya tipe data varchar pada tabel SQL Server akan diterima di lingkungan C#
sebagai tipe data string. Oleh karena adanya penyesuaian-penyesuaian inilah maka objek ini
dinamakan Data Adapter.
Dengan demikian, melanjutkan objek-objek yang telah dibuat di atas, maka perintah untuk
mengisi objek DataTable adalah seperti berikut:
Berikut ini contoh program yang ditulis pada Form_load, sehingga ketika form dijalankan
maka secara otomatis kontrol form DataGridView akan berisi data dari tabel barang.
Gambar 4.3. Contoh program mengambil data barang untuk ditampilkan pada DataGridView
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
4. Gunakan database Inventory yang sudah dikerjakan dengan benar pada praktikum
sebelumnya.
5. Lakukan penelitian mengenai Trigger dan buat Laporan Praktikum menggunakan
template yang sudah disediakan, gantilah nama file menjadi
"Praktikum04_ABD_[NIM].doc"
6. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.
NIM : __________________
PEMROGRAMAN ANTARMUKA GRAFIS
Tampak pada Gambar di atas bahwa Database instant yang sedang dibuka adalah bernama
“SQLEXPRESS” dan tabel barang berada di dalam database Inventory. Pada kasus ini tebel
barang berisi 5 baris data seperti terlihat pada gambar di atas. Ini adalah kondisi yang ada di
dalam RDBMS SQL Server yang sedang kita teliti.
Untuk memindahkan data dari Server ke Client dibutuhkan Struktur Data yang sesuai, dalam
hal ini digunakan DataTable. Untuk dapat mengambil data dari Server kemudian
dipindahkan ke DataTable dibutuhkan beberapa objek dari kelas-kelas yang ada pada
namespace System.Data.SqlClient seperti berikut:
BindingSource
BindingSource dapat menyambungkan DataTable ke DataGridView mauoun TextBox.
3. Buatlah antarmuka grafis seperti berikut (Ganti/hapus gambar di bawah ini dengan
Screen Shoot Form buatan kamu) :
TUJUAN PRAKTIKUM
1. Memahami cara membuat antarmuka grafis untuk manipulasi data.
2. Memahami manfaat antarmuka grafis dalam mengelola data.
3. Memahami cara membuat antarmuka grafis yang baik.
4. Mampu membuat antarmuka grafis untuk mengelola Basis Data secara lebih
lengkap.
PENGANTAR
Antarmuka grafis ini adalah antarmuka grafis yang bekerja pada platform desktop (bukan
aplikasi internet), yang merupakan bagian sangat penting dalam menjembatani
pengetahuan (Knowledge) untuk dijadikan informasi yang dari sana kemudian bisa
didefinisikan ke dalam bentuk data, sehingga data tersebut nantinya dapat disatukan,
disaring dan diakses (diproses) untuk dijadikan informasi kembali yang lebih komprehensif
dan terintegrasi.
Peran dari Form Data Barang adalah sebagai antarmuka (user interface) bagi pemakai dalam
mengelola tabel Barang. Oleh karena itu desain antarmuka grafis ini sesuai dengan prinsip
User is in Control, Consistency, Directness, forgiveness, feed back, Aestetic dan Simplicity
seperti yang dibahas di atas, harus menyediakan berbagai macam kebutuhan sehubungan
dengan pengelolaan tabel barang, yaitu antara lain :
Record Navigator
Digunakan untuk menelusuri baris-baris dari tabel. Sesuai dengan prinsip
Consistency letak maupun icon yang digunakan untuk semua form nanti harus
seragam seperti form ini. Tombol ini terdiri dari 4 macam arah, yaitu ke record
pertama, ke record sebelumnya, ke record sesudahnya dan ke record terakhir.
Pencetakan (Print)
Sesuai prinsip Directness sediakan fitur pembuatan daftar Barang dalam bentuk
tercetak, sehingga pemakai tidak perlu keluar dari form kemudian menuju menu
Laporan Stok Barang untuk mencetak Daftar Barang.
Pencarian (Find)
Tombol ini adalah alternatif dari tombol-tombol record navigator, bisa dipergunakan
untuk mempercepat penemuan baris.
Manipulasi Data (New, Edit, Delete, Save)
Ini adalah tombol-tombol standard yang diperlukan dalam pengelolaan tabel, sesuai
dengan manipulasi data pada database, yaitu insert, update dan delete. Hanya saja
Gambar 5.1 Antarmuka grafis untuk mengelola data Barang pada database Inventory
Tampak pada Gambar contoh antarmuka grafis untuk mengelola tabel Barang. Pada
praktikum ini lakukan percobaan untuk mebuat antarmuka grafis untuk mengelola data
Barang dan data Supplier.
BindingSource
BindingSource merupakan objek yang sangat berguna khususnya untuk melakukan navigasi
rekaman, bahkan Navigasi rekaman dapat dilakukan melalui DataGridView. TextBox akan
berasosiasi dengan baris-baris rekaman, dengan cara mengatur property DataBindings pada
tiap TextBox yang akan digunakan untuk menampilkan.
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
4. Gunakan database Inventory yang sudah dikerjakan dengan benar pada praktikum
sebelumnya.
5. Lakukan penelitian mengenai Trigger dan buat Laporan Praktikum menggunakan
template yang sudah disediakan, gantilah nama file menjadi
"Praktikum05_ABD_[NIM].doc"
6. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.
PENDALAMAN MATERI
NAMA :
PRAKTIKUM 5
____________________________
PEMROGRAMAN ANTARMUKA GRAFIS YANG
NIM : __________________
MENGUTAMAKAN PEMAKAI (User Centered Design)
Buatlah percobaan untuk tiap soal di bawah ini, kemudian jelaskan dengan disertai
screen shoot percobaan yang kamu lakukan.
Navigasi Rekaman
3. Bagaimana caranya supaya BtnTop, BtnBack, BtnNext dan BtnEnd dapat digunakan
untuk melakukan navigasi rekaman memakai BindingSource ? Berikan Screen shoot
program kamu dan berikan pembahasan cara kerjanya.
--- berikan pembahasan di sini ---
7. Berikan screen shoot program yang ada pada tombol Undo. Jelaskan kapan tombol
Undo ini dimanfaatkan oleh pemakai dan jelaskan bagaimana tombol Undo ini bisa
bekerja seperti itu.
--- berikan pembahasan di sini ---
8. Buat juga Form untuk mengelola data Supplier, berikan screen shoot antarmuka
grafisnya dan copy-kan di sini semua listing programnya.
--- berikan pembahasan di sini ---
TUJUAN PRAKTIKUM
1. Memahami cara mengorganisasikan prgram dalam Kelas.
2. Memahami manfaat pengorganisasian program.
3. Memahami cara membuat kelas yang baik.
4. Mampu membuat antarmuka grafis yang programnya terpisah pada suatu Kelas.
PENGANTAR
Pada proses pengaksesan data yang ada pada database server selalu dibutuhkan koneksi,
perintah SQL, data adapter, data table dan binding source. Seperti sudah dijelaskan pada
bab sebelumnya, pengolahan data yang kita lakukan bersifat disconnected data source, jadi
segala macam yang dibutuhkan ketika proses transfer data seperti misalnya objek-objek
SqlConnection, SqlCommand dan SqlDataAdapter, boleh dihapus apabila data sudah
dipindahkan ke Client yaitu di dalam objek DataTable, sedangkan dalam pengaksesan data
di data table kita menggunakan fitur-fitur yang tersedia pada kelas BindingSource, oleh
karena itu kedua objek ini harus tetap hidup (tetap ada) selama antarmuka grafis sedang
bekerja.
Supaya kelas Tabel dapat digunakan untuk berbagai macam nama tabel, maka diperlukan
sebuah atribut namaTabel pada kelas ini, sehingga desain diagram kelas Tabel adalah
seperti Gambar 6.1. berikut ini:
Tabel
- namaTabel : String
- dt : DataTable
- bs : BindingSource
- isiDataTable() : void
+ getBs() : BindingSource
+ eksekusiSQL(String) : void
Pada praktikum ini akan memakai studi kasus Form Supplier yang programnya akan
dipisahkan ke dalam kelas Tabel. Gambar 6.2 berikut ini adalah antarmuka grafis untuk
Supplier
Pada praktikum Percobaan 5 yang lalu program antarmuka grafis untuk mengelola tabel
Barang diletakkan di dalam Form, akibatknya ketika akan dibuat program yang serupa, yaitu
Form Supplier maka di dalamnya ditulis program yang sama hanya berbeda tabel yang
dikelola. Pada praktikum ini kita akan mebuat kelas Tabel seperti Gambar 6.1 di atas
kemudian kita implementasikan pada Form Supplier seperti Gambar 6.2.
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
4. Gunakan database Inventory yang sudah dikerjakan dengan benar pada praktikum
sebelumnya.
5. Lakukan penelitian mengenai Trigger dan buat Laporan Praktikum menggunakan
template yang sudah disediakan, gantilah nama file menjadi
"Praktikum06_ABD_[NIM].doc"
6. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.
Pada praktikum Percobaan 5 yang lalu program antarmuka grafis untuk mengelola tabel
Barang diletakkan di dalam Form, akibatknya ketika akan dibuat program yang serupa, yaitu
Form Supplier maka di dalamnya ditulis program yang sama hanya berbeda tabel yang
dikelola.
Lakukan percobaan di bawah ini, berikan screen shoot untuk memberikan penjelasan
1. Buat kelas Tabel seperti diagram kelas pada Gambar 6.2 tersebut, berikan screen shott
dan bahaslah :
2. Gunakan kelas pada Form Supplier yang sudah dibuat kemarin, hapus semua kode
program yang ada di dalamnya, atau buat baru Form Supplier Gambar 6.1
--- berikan screen shoot formDataSupplier milik kamu di sini ---
3. Kode program untuk urusan berkomunikasi dengan Database Server sudah ada dalam
kelas "Tabel" yang kamu buat pada percobaan nomor 1. Sebutkan kelas apa saja
diantara kelas yang dulu kita pakai (SqlConnection, SqlCommand, SqlDataAdapter,
DataTable, BindingSource, FormDataSupplier, dsb.) yang tidak dibutuhkan lagi untuk
dibuat (dideklarasikan) di dalam FormDataSupplier ini dan jelaskan bagaimana itu
semua dapat "diringkas" dalam sebuah kelas :
a. Sebutkan kelas-kelas yang tidak perlu dibuat dalam kelas FormDataSupplier dan
jelaskan alasannya mengapa.
--- berikan pembahasan di sini ---
b. Berikan screen shoot dalam kode program di dalam Form, bagaimana cara
memakai kelas "Tabel" yang kamu buat pada percobaan nomor 1 di atas?
--- berikan pembahasan di sini ---
c. Jelaskan sekarang yang dikelola dalam Form objek bertipe apa dan apa yang
sudah terkandung di dalamnya.
--- berikan pembahasan di sini ---
4. Setelah objek "Tabel" dibuat pada percobaan nomor 3 di atas, bagaimana cara
menampilkan pada FormDataSupplier, berikan screen shoot program kamu dan berikan
penjelasan mengenai cara memakainya :
a. Cara menampilkan pada TextBox
--- berikan pembahasan di sini ---
b. Cara menampilkan pada DataGridView
--- berikan pembahasan di sini ---
c. Cara melakukan Navigasi rekaman melalui 4 tombol Navigasi
--- berikan pembahasan di sini ---
d. Jelaskan bagaimana Navigasi dapat dilakukan secara interaktif melalui
DataGridView
--- berikan pembahasan di sini ---
6. Pada saat kita melakukan penambahan data baru (New) atau mengubah data yang
sudah ada (Edit) melalui antarmuka grafis, kita terpaksa (harus) mengubah data yang
ada pada TextBox untuk memasukkan data, padahal sesuai percobaan nomor 5 dapat
menyebabkan inskonsistensi data antara DataTable dengan tabel Supplier pada
Database Server.
a. Apa yang harus dilakukan ketika proses penambahan dan perubahan data pada
antarmuka grafis untuk mencegah inskonsistensi tersebut? Berikan screen shoot
program (metode) yang kamu buat untuk keperluan tersebut termasuk kapan
metode-metode tersebut dipanggil (cara memakai.
--- berikan pembahasan di sini ---
b. Jelaskan lagi secara lebih detail pada kode program, kapan dan bagaimana cara
kerjanya mekanisme itu dilakukan (berikan screen shoot kode program yang
memanggil metode pada percobaan 6.a).
--- berikan pembahasan di sini ---
7. Bagaimana cara melakukan manipulasi data pada tabel Supplier pada Database server?
a. Jelaskan cara merangkai perintah SQL (INSERT dan UPDATE) memakai antarmuka
grafis FormDataSupplier ini. (Berikan Screen shoot kode programnya)
--- berikan pembahasan di sini ---
b. Jelaskan cara memakai metode yang ada dalam kelas Tabel sehubungan dengan
keperluan ini
--- berikan pembahasan di sini ---
c. Berikan Screen shoot metode tersebut dan jelaskan cara kerjanya mulai dari
proses pemanggilan metode dari tombol Save hingga baris-baris program dalam
metode yang dieksekusi.
--- berikan pembahasan di sini ---
TUJUAN PRAKTIKUM
1. Memahami cara membuat tabel tunggal laporan tercetak.
2. Memahami manfaat laporan tercetak.
3. Memahami cara membuat menyaring laporan.
4. Mampu membuat laporan untuk tabel tunggal.
PENGANTAR
Laporan (report) pada sebuah program aplikasi bisnis adalah dokumen yang menyampaikan
informasi mengenai hasil transaksi, agregasi data, penyaringan, maupun hasil rangkuman
kalkulasi lainnya. Berbeda dengan Form (antarmuka grafis), laporan bersifat searah yaitu
berupa keluaran (output) yang dapat dicetak memakai printer.
Kemudian pada bagian Installed Templates kita pilih Reporting, pada bagian engah kita pilih
Report dan pada bagian bawah kita beri nama laporan misalnya "LaporanStok.rdlc"
kemudian tekan tombol Add seperti Gambar 7.2 di bawah ini:
Setelah tombol Add dipilih maka akan ditampilkan tempat untuk mendesain laporan (report
designer), pertama tampilkan terlebih dahulu tool box yang ada di bagian sebelah kiri layar,
kemudian drag-lah komponen tabel ke dalam lembar laporan seperti Gambar 7.3 berikut ini:
Pada form ini BindingSource dibuat dengan nama "BarangBindingSource" seperti tampak
pada gambar di atas pada bagian tengah bawah. Komponen inilah yang dapat kita
manfaatkan untuk penyaringan, seperti yang sudah kita ketahui komponen BindingSource
mempunyai property "Filter" yang dapat dimanfaatkan untuk menyaring data.
Sebagai contoh misalnya untuk penyaringan laporan stok berdasarkan kode barang, maka
perlu dibuat form penyaring dengan antarmuka grafis seperti Gambar 7.7. berikut ini:
Untuk mencetak pada tombol Preview dapat dituliskan program seperti berikut:
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
4. Gunakan database Inventory yang sudah dikerjakan dengan benar pada praktikum
sebelumnya.
5. Lakukan penelitian mengenai Trigger dan buat Laporan Praktikum menggunakan
template yang sudah disediakan, gantilah nama file menjadi
"Praktikum07_ABD_[NIM].doc"
6. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.
47 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
Studi kasus : btnPrint pada Form barang
PENDALAMAN MATERI
NAMA : ____________________________
PRAKTIKUM 7
NIM : __________________
Laporan (Report)
Prinsip Directness pada User Centered Design diimplementasikan pada antarmuka grafis
FormDataBarang yang menyediakan tombol btnPrint untuk mencetak laporan seperti
Gambar 6.2 berikut ini:
Gambar 7.2 Laporan data Barang tercetak pada layar siap dicetak pada kertas
a. Kita akan mengisi ComboBox yang kiri dengan kode barang paling kecil dan
ComboBox yang kanan dengan kode barang yang paling besar. Selain itu
nanti dalam ComboBox akan tersedia semua kode barang yang bisa dipilih
secara urut ascending. Berikan screen shooot kode program kamu untuk
keperluan ini.
--- berikan pembahasan di sini ---
5. Buat juga laporan untuk daftar supplier, buat juga form penyaringnya serta dapat
dipanggil dari btnPrint pada FormDataSupplier.
--- berikan pembahasan di sini ---
TUJUAN PRAKTIKUM
1. Memahami cara menampilkan informasi dari Banyak Tabel.
2. Memahami manfaat antarmuka grafis Master - Detail.
3. Memahami cara membuat tampilan informasi Master - Detail.
4. Mampu membuat form untuk menampilkan riwayat transaksi.
PENGANTAR
Transaksi Pembelian dan Penjualan merupakan antarmua grafis yang melibatkan banyak
tabel. Sebagai contoh misalnya pada antarmuka grafis Transaksi Pembelian, mempunyai
tampilan seperti Gambar 8.1 berikut ini:
Bagian
MASTER
Bagian
DETAIL
Pada kasus ini transaksi pembelian mempunyai model antarmuka grafis Master-Detail, yaitu
pada sebuah identitas Nota Pembelian (nomor, tanggal dan informasi Supplier) terdiri dari
banyak barang yang dibeli, dalam hal ini identitas Nota Pembelian merupakan Master dari
antarmuka Grafis, yaitu entitas kuat yang merupakan penyimpan data utama transaksi
pembelian sedangkan barang-barang yang terlibat di dalam nota tersebut merupakan Detail
dari antarmuka grafis ini.
Tampak pada tampilan antarmuka grafis di atas melibatkan data-data yang tersimpan pada
tabel Supplier, NotaBeli, ItemNotaBeli dan Barang karena berbeda dengan antarmuka
grafis untuk tabel Barang dan Supplier, tabel-tabel yang digunakan untuk menyimpan data
Pada transaksi pembelian entitas utamanya adalah NotaBeli, namun sebelum dapat
diciptakan (insert) baris pada entitas NotaBeli sebelumnya harus terlebih dahulu
dipersiapkan entitas Supplier. Untuk sebuah entitas NotaBeli bisa terdiri dari banyak
macam barang yang dibeli, yaitu yang tersimpan dapa tabel ItemNotaBeli, namun seperti
terlihat pada Skema Diagram di atas, sebelum dapat diciptakan (insert) baris pada entitas
ItemNotaBeli harus terlebih dahulu dipersiapkan entitas NotaBeli dan Barang.
Seperti yang kita ketahui antarmuka grafis berperan untuk dapat melakukan Create-Read-
Update-Delete (CRUD), untuk keperluan pembuatan antarmuka grafis Master-Detail ini,
pertama kita akan membahas mengenai Read, yaitu menampilkan transaksi-transaksi
pembelian.
Pertama siapkan sebuah form dengan kontrol-kontrol form seperti Gambar 8.1 di atas,
kemudian di dalam kelas FormNotaBeli tersebut tambahkan sebuah objek Tabel dengan isi
tabel berupa "View_Nota_Beli" seperti Gambar 8.4 berikut ini:
Gambar 8.5 Metode untuk mengaitkan TextBox dengan BindingSource data Master
Kemudian pada Form_Load panggil metode ikat supaya ketika form dijalankan TextBox akan
berisi dengan nilai-nilai yang ada di dalam BidingSource.
Setelah program-program tersebut di atas dibuat, apabila Form dijalankan maka akan
menampilkan informasi transaksi pembelian bagian Master seperti Gambar 8.7 berikut ini:
Pilih ini
Kemudian tekan tombol Add untuk menambahkan kolom ke dalam DataGridView seperti
Gambar 8.10 berikut ini:
Ketikkan pada bagian Header text judul-judul (header) kolom yang diinginkan secara
berurutan kemudian tekan tombol Add sampai semua judul kolom dibuat, yaitu : IdNotaBeli,
NoNotaBeli, Kode, Nama Barang, Qty, Harga dan Jumlah (ada 7 kolom) seperti Gambar 8.11
di bawah ini:
Klik ini
Perhatikan bahwa kolom IdNotaBeli wajib kita tambahkan di sini walaupun nanti kita
sembunyikan (dibuat tidak kelihatan), karena kolom ini yang menyimpan ID dari baris tabel
ItemNotaBeli yang nanti dapat kita manfaatkan untuk menghapus bagian Detail. Sedangkan
kolom NoNotaBeli sebenarnya bisa tidak disertakan karena tidak kita pergunakan, namun
apabila swaktu-waktu dibutuhkan untuk keperluan pemeriksaan pemrograman kolom ini
dapat ditampilkan. Untuk menyembunyikan kolom IdNotaBeli dan NoNotaBeli, pilihlah
kolom IdNotaBeli kemudian pada bagian "Bound Column Properties" aturlah property
"Visible" menjadi "False" seperti Gambar 8.12 kemudian juga lakukan dengan cara yang
sama untuk kolom NoNotaBeli.
Pilih False
Untuk memenuhi kriteria Aesthetic (estetika), aturlah lebar kolom sesuai dengan data yang
akan ditampilkan dengan cara mengatur property Width, misalnya untuk mengatur lebar
kolom Kode seperti Gambar 8.13 di bawah ini:
Pilih kolom
Tulis lebar
yang diinginkan
Gambar 8.14 Menempatkan data sesuai dengan kolom yang sudah dipersiapkan
Berikutnya adalah mengatur format tampilan untuk nilai mata uang, yaitu kolom Harga dan
Jumlah dibuat rata kanan dan diberi pemisah ribuan. Untuk melakukan itu pilihlah kolom
Harga kemudian tekan tambol eclipse pada property "DefaultCellStyle" seperti Gambar
8.15 berikut ini:
Klik eclipse
Pilih kolom
Pertama atur terlebih dahulu supaya data ditampilkan secara rata kanan dengan cara
memilih property "Alignment" dan memilih model "MiddleRight", setelah itu tekan tombol
eclipse pada property "Format" untuk memilih format bilangan dengan pemisah ribuan
seperti Gambar 8.16 berikut ini:
Pilih MiddleRight
Gambar 8.16 Mengatur format rata kanan dan memilih Format bilangan
Untuk format bilangan "Numeric" dengan "Decimal places" diberi nilai 0 (tanpa nilai di
belakang koma) seperti Gambar 8.17 berikut ini:
Gambar 8.17 Mengatur format rata kanan dan memilih Format bilangan
Demikian juga untuk kolom Jumlah aturlah format bilangan dengan cara yang sama.
Kemudian pada metode ikat, tambahkan baris perintah untuk mengaitkan DataGridView
dengan BindingSource objek Tabel yang berisi "View_Detail_Beli" tersebut seperti Gambar
8.19 berikut ini:
Tambahkan
perintah ini
Sampai di sini bagian detail sudah dapat tampil tetapi data yang ditampilkan masih data
detail secara keseluruhan, yaitu detail untuk semua transaksi pembelian seperti Gambar
8.20 berikut ini:
Kemudian panggillah metode tampil tersebut pada akhir perintah metode ikat dan di akhir
setiap perintah navigasi rekaman (setelah moveFirst, movePrevious, moveNext dan
moveLast). Deengan demikian sekarang informasi yang ditampilkan oleh FormNotaBeli
sudah sesuai dengan data yang ada seperti Gambar 8.22 berikut ini:
Nota nomor : 2
Untuk
berpindah Nota
Gambar 8.22 Menampilkan data transaksi pembelian untuk nota beli nomor 2
Sampai di sini pemrograman untuk bagian Read (membaca/ menampilkan) sudah selesai,
yaitu menampilkan bagianMaster dan bagian Detail. Berikutnya akan kita bahas cara
membuat program untuk bagian Create (menulis/ menambahkan baris/ insert) pada
transaksi pembelian, yang tentu saja juga ada 2 macam penambahan data yaitu menambah
bagian Master (tabel NotaBeli) dan menambah bagian Detail (tabel itemNotaBeli).
PENDALAMAN MATERI
NAMA : ____________________
PRAKTIKUM 8
NIM : __________________
Menampilkan Transaksi Pembelian
Dengan Antarmuka Grafis MASTER-DETAIL
d. Di bawah DataGridView
e. Tombol-tombol standard (ada 12 tombol) dengan gambar icon standard, posisi
btnSave dan btnUndo menutupoi btnNew dan btnEdit (lihat Gambar 8.1). Semua
tombol dalam kondisi Endabled = True. Khusus btnSave dan btnUndo Visible = False
(bukan Enabled !).
--- Screen Shoot antarmuka grafis desain kamu, berikan pembahasan di sini hal-hal yang
perlu diketahui cara membuat antarmuka grafis seperti Gambar 8.1 ---
Dengan SSMS persiapkan terlebih dahulu view_nota_beli yang akan digunakan untuk
menampilkan tersebut, screen shoot isi data view_nota_beli milik kamu.
--- Screen shoot isi view buatan kamu gantilah gambar di atas dengan milik kamu.
Berikan pembahasan bagaimana cara membuat view_nota_beli tersebut---
Dengan SSMS persiapkan terlebih dahulu view_detail_beli yang akan digunakan untuk
menampilkan tersebut, screen shoot isi data view_detail_beli milik kamu.
--- Screen shoot isi kelas FormNotaBeli buatan kamu yang mempersiapkan kedua
variabel anggota tersebut. Berikan penjelasan bagaimana cara membuatnya dan apa
manfaatnya---
--- Screen shoot isi kelas FormNotaBeli buatan kamu yang ada metode bindMaster()
tersebut. Screen shoot juga bagaimana caranya supaya metode ini dipanggil pada saat
FormNotaBeli ditayangkan. Berikan penjelasan bagaimana cara membuatnya dan
bagaimana cara kerjanya---
--- Screen shoot isi kelas FormNotaBeli buatan kamu yang membuat ketika
FormNotaBeli ditayangkan dgvDetailBeli berisi data view_detail_beli yang sudah
disaring (Filter), yaitu yang ditampilkan hanya yang noNotaBeli-nya sama dengan yang
sedang ditampilkan pada txtNoNotaBeli. Berikan penjelasan bagaimana cara
membuatnya & bagaimana cara kerjanya---
--- Screen shoot isi kelas FormNotaBeli buatan kamu yang dapat memindah-mindah
tampilan baris master dan menyaring tampilan dgvDetailBeli ketika ditekan tombol
Navigasi (moveFirst(), movePrevious(), moveNext(), moveLast()). Berikan penjelasan
bagaimana cara kerjanya---
TUJUAN PRAKTIKUM
1. Memahami cara memanipulasi data bagian Master.
2. Memahami teknik pemrograman untuk mengupdate data Master.
3. Memahami cara membuat antarmuka grafis mengubah data pada bagian Master.
4. Mampu membuat form Master - Detail yang dapat digunakan
untuk memanipulasi data Master.
PENGANTAR
Manipulasi bagian Master hanya melibatkan 3 kolom, yaitu noNotabeli, tanggal dan
kodeSupplier dan datanya bisa diambil dari TxtNoNotaBeli, TxtTanggal dan
TxtKodeSupplier seperti tampak pada Gambar 9.1 di bawah ini:
TxtNoNotaBeli
TxtKodeSupplier TxtTanggal
Gambar 9.1 Sumber data yang akan disimpan pada tabel NotaBeli
Sedangkan tabel NotaBeli mempunyai struktur tabel seperti Gambar 9.2 berikut ini:
Masalah View_Nota_Beli
Untuk mengatasi maslah data yang tidak tampil pada view_nota_beli, kita akan memakai
relasi "LEFT OUTTER JOIN" pada query multiple table yang ada pada View_Nota_Beli, yaitu
dengan cara melakukan klik kanan pada garis relasi antara tabel NotaBeli dan Supplier yang
ada pada View Designer kemudian pilih "Select All Rows from NotaBeli, seperti pada
Gambar 9.3 berikut ini:
Gambar 9.3 Menampilkan semua baris pada tabel NotaBeli walaupun tidak ada relasinya
Dengan demikian maka sekarang relasi yang digunakan pada query multiple table adalah
memakai "LEFT OUTTER JOIN" dan data yang akan ditampilkan adalah semua baris yang ada
pada tabel NotaBeli walaupun tidak ada relasinya dengan tabel Supplier seperti Gambar 9.4
di bawah ini:
Gambar 9.4 Relasi "LEFT OUTTER JOIN" dan hasil query View_Nota_Beli
Mengisi Kode Supplier
Kode Supplier yang diisikan pada TxtKodeSupplier akan dikirimkan ke kolom kodeSupplier
tabel NotaBeli yang mempunyai konstrain kunci tamu (Foreign Key), maka nilai yang ditulis
pada TxtKodeSupplier harus dijaga kebsahannya seperti Gambar 9.5 di bawah ini:
Dengan demikian maka antarmuka grafis transaksi pembelian sekarang sudah dapat untuk
melakukan CRUD (Create, Read, Update, Delete) pada antarmuka grafis Master-Detail.
CARA KERJA
1. Pastikan SQL Server Express sudah bekerja (running) dengan melihat pada bagian
"Services" di sistem operasi Windows.
2. Jalankan SQL Server Management Studio (SSMS), lakukan Login dengan memakai
otentikasi "Windows Authentication".
3. Gunakan Jendela Query untuk percobaan perintah SQL secara tertulis (teks), gunakan
menu-menu yg tersedia pada SSMS untuk melakukan pengaturan dng antarmuka grafis.
4. Gunakan database Inventory yang sudah dikerjakan dengan benar pada praktikum
sebelumnya.
5. Lakukan penelitian mengenai Trigger dan buat Laporan Praktikum menggunakan
template yang sudah disediakan, gantilah nama file menjadi
"Praktikum09_ABD_[NIM].doc"
Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.
--- Screen Shoot Form buatan kamu, gantilah gambar di atas dengan Form
buatan kamu tersebut ---
a. Menyaring tabel Supplier
Buatlah program sedemikian rupa supaya ketika pemakai mengetikkan karakter
di dalam txtNamaSupplier maka seketika itu juga baris-baris pada DataGridView
akan tersaring dengan kata yang mengandung kata yang diketik pada TextBox
70 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
tersebut. Screen shoot kode program kamu di sini dan berikan m=pembahasan
cara kerjanya.
TUJUAN PRAKTIKUM
1. Memahami cara memanipulasi data dari Banyak Tabel.
2. Memahami teknik pemrograman untuk menambah data detail.
3. Memahami cara membuat antarmuka grafis menambah data.
4. Mampu membuat form Master - Detail yang dapat digunakan
untuk memanipulasi data.
PENGANTAR
Pada praktikum sebelumnya, form (antarmuka grafis Master-Detail) hanya dapat
menampilkan informasi dari banyak tabel. Pada praktikum ini akan dilakukan penelitian
mengenai cara memanipulasi data (menambah) pada bagian detail, yaitu pada informasi
yang tampil di DataGridView.
Menambah Detail
Menambah bagian detail berarti melakukan insert pada tabel itemNotaBeli yang
mempunyai struktur tabel seperti Gambar 10.1 di bawah ini:
Melalui kontrol form tersebut data untuk kolom noNotaBeli bisa diambil dari
TxtNoNotaBeli, kodeBarang dari TxtKodeBarang, qty dari TxtQty dan harga dari TxtHarga
seperti tampak pada Gambar 10.2 di bawah ini:
Gambar 10.2 Sumber data yang akan disimpan pada tabel itemNotaBeli
Pilih
TxtKodeBarang
Pilih Events
Ada kemungkinan pemakai akan memasukkan data yang tidak valid, maka tampilan
antarmuka grafis perlu dihapus, oleh karena itu persiapkan terlebih dahulu program untuk
menghapus seperti Gambar 10.4 berikut ini:
Untuk mempersingkat waktu, bisa juga kita tambahkan program untuk medeteksi panjang
kode barang yang sudah dimasukkan, apabila sudah 5 huruf maka TxtKodeBarang
ditinggalkan dan pindah ke txtQty. Untuk keperluan itu kita bisa menambahkan program di
event KeyUp pada TxtKodeBarang seperti Gambar 10.7 berikut ini:
Sampai di sini keabsahan data pada TxtKodeBarang yang akan kita kirimkan ke kolom
kodeBarang tabel itemNotaBeli sudah terjamin keabsahannya.
Gambar 10.8 Program untuk membatasi nilai numerik saja yang dapat diterima
Program yang ditulis pada kontrol form ini hanyalah untuk mengisi hasil perkalian antara
Qty dan Harga yang kemudian disimpan ke dalam TxtJumlah seperti pada Gambar 10.9 di
bawah ini:
Gambar 10.9 Program untuk menyesuaikan nilai yang tampil pada TxtJumlah
Pada umumnya pemakai akan menekan tombol ENTER setelah selesai mengisi Qty dan
Harga, maka supaya perpindahan kursor dari txtQty ke TxtHarga dan dari TxtHarga ke
Perhatikan bahwa pada program di atas, perpindahan kursor hanya dilakukan apabila text
box tidak dalam kondisi kosong dan nilainya harus lebih dari 0, jika itu dipenuhi dan ditekan
tombol ENTER pada text box tersebut maka perpindahan kursor baru terjadi.
kolom 6
Total
ditampilkan
Untuk menghitung total dari jumlah ini bisa kita tambahkan metode total kemudian pada
metode tampil kita tambahkan pemanggilan metode tersebut seperti tampak pada Gambar
10.14 di bawah ini:
Dengan demikian manipulasi data pada bagian detail untuk antarmuka grafis transaksi
pembelian sudah selesai.
Yang akan diisi oleh pemakai adalah txtKodeBarang, txtQty dan txtHarga, sedangkan
txtNamaBarang dan txtJumlah akan diisi secara otomatis oleh program seperti di bawah ini:
1. Buatlah FormCariBarang seperti berikut :
-- Screen shoot GUI buatan kamu dan gantilah Gambar di atas dengan GUI buatan kamu
-- Berikan penjelasan cara mempersiapkan DataGridView agar tampilan bisa
diatur seperti di atas --
-- Screen shoot program buatan kamu dan gantilah program di atas dengan program
buatan kamu –
-- Berikan pembahasan cara kerja program di atas (pakai algoritma atau flowchart atau
apapun) --
-- Screen shoot program buatan kamu dan gantilah program di atas dengan program
buatan kamu –
-- Berikan pembahasan cara kerja program di atas --
6. Buatlah metode hapus digunakan untuk mempersiapkan detail pembelian yang baru :
-- Screen shoot program buatan kamu dan gantilah program di atas dengan program
buatan kamu –
-- Berikan pembahasan cara kerja program di atas –
-- Screen shoot program buatan kamu dan gantilah program di atas dengan program
buatan kamu –
-- Berikan pembahasan cara kerja program di atas –
8. TextBox txtJumlah adalah ReadOnly. Program pada txtJumlah pada event Validated
9. Berikan kesimpulan kamu, bagaimana cara mengisi detail pembelian. Apa saja yang
harus diperhatikan agar data yang masuk ke tabel itemNotaBeli adalah valid.
TUJUAN PRAKTIKUM
1. Memahami cara memanipulasi data dari Banyak Tabel.
2. Memahami teknik pemrograman untuk mengupdate data detail.
3. Memahami cara membuat antarmuka grafis mengubah data.
4. Mampu membuat form Master - Detail yang dapat digunakan
untuk memanipulasi data.
PENGANTAR
Pada praktikum sebelumnya, form (antarmuka grafis Master-Detail) sudah dapat
menambahkan data detail pembelian. Pada praktikum ini akan dilakukan penelitian
mengenai cara memanipulasi data (mengubah/ menghapus) pada bagian detail, yaitu pada
informasi yang tampil di DataGridView.
Skenario kedua adalah cara interaksi penghapusan dan pengubahan data detail. Supaya
pemrograman lebih praktis, baik penghapusan maupun pengubahan data detail akan
dilakukan penghapusan data detail terlebih dahulu, tetapi bedanya antara penghapusan dan
pengubahan adalah jika yang diinginkan adalah pengubahan data detail maka sebelum
dihapus data detail yang dipilih tersebut disalin terlebih dahulu ke text box editor data
detail, baru kemudian data detail yang dipilih dihapus dari tabel itemNotaBeli, sedangkan
jika yang diinginkan adalah penghapusan maka cukup dilakukan penghapusan baris pada
tabel itemNotaBeli pada baris yang dipilih.
Untuk mewujudkan skenario tersebut, program ditulis pada event KeyDown pada
DgvDetailBeli, setiap ada penekanan tombol apapun pada DgvDetailBeli posisi baris saat
tombol tersebut ditekan dicatat yang nanti digunakan untuk membaca nilai kolom-kolom
pada baris tersebut.
Kemudian apabila yang ditekan tombol Delete atau Backspace, maka kita buat perintah SQL
untuk menghapus baris pada tabel itemNotaBeli, dengan identitas penghapusan memakai
baris yang dipilih pada sel nomor 0 (sel ini tiddak kelihatan), setelah itu perintah SQL dikirim
ke database server untuk dieksekusi. Gambar 11.1 berikut ini adalah program selengkapnya:
Tidak semua kolom View_Detail_Beli, namun sebenarnya semua kolom tersebut ada pada
DataGridView hanya saja dalam kondisi tersembunyi (visible = false). Untuk itu Edit Column
pada DataGridView di program, sembunyikan kolom IdNotaBeli seperti gambar di bawah
ini:
Pertama pemakai akan memilih baris yang akan diubah pada DataGridView, kemudian
pemakai bisa menekan tombol Delete (untuk menghapus) atau Back space (untuk
mengubah). Keduanya akan menghapus baris pada IetmNotaBeli secara permanen, bedanya
apabila tombol yang ditekan adalah Back space maka sebelum dihapus data akan
dipindahkan terlebih dahulu ke editor (Item Data Entry) Gambar 11.4, selanjutnya pemakai
akan mengubah data dan proises berikutnya adalah sama seperti melakukan penambahan
(insert) pada tebel ItemNotaBeli seperti yang sudah dibahas pada praktikum sebelumnya.
TUJUAN PRAKTIKUM
1. Memahami cara menyimpan transaksi baru.
2. Memahami teknik pemrograman untuk menyimpan transaksi baru.
3. Memahami cara membuat antarmuka grafis transaksi pembelian.
4. Mampu membuat form Master - Detail yang dapat digunakan
untuk memanipulasi data.
PENGANTAR
Untuk membuat antarmuka grafis Transaksi pembelian diperlukan beberpa hal, yaitu :
menampilkan (Praktikum 8), manipulasi data master (Praktikum 9), menambah data detail
(praktikum 10) dan memanipulasi data detail (Praktikum 11). Pada Praktikum ini akan
dilakukan penelitian mengenai cara menambahkan transaksi baru (nota baru).
Pada prinsipnya pembuatan transaksi baru dimulai dari penambahan baris pada tabel master,
dalam hal ini adalah tabel NotaBeli yang hanya melibatkan 3 kolom, yaitu noNotabeli,
tanggal dan kodeSupplier dan datanya bisa diambil dari TxtNoNotaBeli, TxtTanggal dan
TxtKodeSupplier seperti tampak pada Gambar 12.1 di bawah ini:
TxtNoNotaBeli
TxtKodeSupplier TxtTanggal
Gambar 12.1 Sumber data yang akan disimpan pada tabel NotaBeli
Sedangkan tabel NotaBeli mempunyai struktur tabel seperti Gambar 12.2 berikut ini:
Yang pertama perlu kita perhatikan adalah bahwa kolom noNotaBeli merupakan kolom
yang mempunyai konstrain kunci utama (primary key) dan bersifat identity yaitu auto
increment, artinya ketika kita melakukan penambahan baris (INSERT) pada tabel ini, kolom
Adanya kolom auto increment ini sangat menguntungkan, karena ketika aplikasi ini
dijalankan secara bersama sama oleh banyak client (multiuser) maka noNotaBeli yang
diberikan pada tiap-tiap Client pasti unik sehingga tidak mungkin akan terjadi tabrakan/
pelanggaran konstrain kunci utama.
Namun akibatnya, kita tidak bisa membatalkan (undo) penambahan transaksi pembelian
seperti form-form antarmuka grafis tabel tunggal sebelumnya. Oleh karena itu tombol Undo
pada antarmuka grafis transaksi pembelian ini tidak kita gunakan (tidak bisa di-Undo), nanti
satu-satunya cara untuk membatalkan adalah dengan cara menghapus transaksi pembelian.
Secara teknis jika data yang dimasukkan sudah benar dan berhasil, akan tampak data baru
seperti yang dapat dilihat pada Gambar 11.4. di bawah ini:
Sebagai contoh misalnya User 01 dan User 03 secara bersama-sama menambahkan sebuah
transaksi pembelian baru yaitu mengirim perintah seperti Gambar 10.3. maka pada tabel
NotaBeli akan ada 2 buah baris baru dengan kolom noNotaBeli yang berbeda. Yang menjadi
masalah adalah berapakah noNotaBeli untuk User 01 dan berapa noNotaBeli untuk User
03?
Hal ini penting untuk diketahui sebab baris baru tersebut akan ditampilkan pada antarmuka
grafis bagian Master dan noNotaBeli yang tampil pada kontrol form TxtNoNotaBeli akan
menjadi acuan data transaksi pada bagian Detail pada masing-masing pemakai.
Untuk mengatasi masalah ini, SQL Server menyediakan parameter "@@identity" pada
perintah SELECT untuk mengambil nilai yang dihasilkan oleh kolom identity (auto
increment), yaitu dengan memberikan perintah "SELECT @@IDENTITY" setelah perintah SQL
"INSERT INTO . . . " dieksekusi. Untuk keperluan itu pada kelas Tabel bisa kita tambahkan
metode eksekusiSQL_getID seperti Gambar 12.6 berikut ini:
PENDALAMAN MATERI
NAMA : _____________________
PRAKTIKUM 12
NIM : __________________
Manipulasi Transaksi Pembelian
Dengan Antarmuka Grafis MASTER-DETAIL
Buatlah laporan penelitian mengenai cara membuat transaksi baru pada Form Pembalian
Barang di atas.
1. Jelaskan langkah-langkah untuk membuat sebuah nota baru secara manual (tanpa
antarmuka grafis), yaitu memakai perintah SQL. Screen Shoot dan jelaskan :
a. Kolom apa saja yang harus diisi
b. Kolom mana yang otomatis diisi oleh sistem, jelaskan bagaimana itu bisa diisi
secara otomatis
c. Kolom mana yang akan berisi null dan bagaimana nanti dapat ditampilkan
melalui view_nota_beli.