Anda di halaman 1dari 95

PROGRAM STUDI SISTEM INFORMASI

FAKULTAS TEKNOLOGI INFORMASI


UNIVERSITAS KRISTEN DUTA WACANA

MODUL PRAKTIKUM
APLIKASI BERBASIS DESKTOP

27 Agustus 2018

1 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


MODUL PRAKTIKUM
APLIKASI BERBASIS DESKTOP

Penyusun:
Katon Wijana, S.Kom., M.T.

©2018 oleh Program Studi Sistem Informasi Fakultas Teknologi Informasi


Universitas Kristen Duta Wacana Yogyakarta

2 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


DAFTAR ISI

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

3 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 1

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.

Gambar 1.1 Penggolongan perintah-perintaherintah SQL

Data Definition Language


Data Definition Language adalah bahasa SQL yng dipergunakan untuk membuat objek
database, perintah ini diawali dengan kata CREATE atau ALTER atau DROP, seperti
penjelasan pada Gambar 1.2 di bawah ini.

Gambar 1.2 Arti dari CREATE, ALTER dan DROP

Bentuk umum : CREATE TABLE <nama_tbl>(<nm_kolom1> <tipe> [<atribut>],


<nm_kolom2> <tipe> [<atribut>],...);

4 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Keterangan :

<attribute> bisa berupa Primary Key, not null, identity, default
Contoh 1:
CREATE TABLE mhs(nim char(8) Primary Key, nama varchar(30),
kota varchar(25));

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.

Data Manipulation Language


Data Manipulation Language adalah bahasa SQL yang digunakan untuk
menambah, mengubah atau menghapus data dalam tabel.

Gambar 1.3 Arti dari INSERT, UPDATE dan DELETE

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');

b. Mengubah Baris Tabel (UPDATE) :


Bentuk umum : UPDATE <nama_tbl> SET <nama_kol_1>=<nilai_1>, ...
WHERE <kriteria>;

5 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Catatan :
Kalusa WHERE harus digunakan, apabila tidak ditulis maka perintah UPDATE akan
dikerjakan untuk seluruh baris pada tabel tersebut. Biasanya klausa WHERE mengacu
pada kolom yang digunakan sebagai Primary Key supaya yang berubah dipastikan
hanya satu baris saja.
Contoh :
UPDATE mhs SET nama='Dr. Katon Wijana' WHERE nim='22870137';

c. Menghapus Baris Tabel (DELETE) :


Bentuk umum : DELETE FROM <nama_tbl> WHERE <kriteria>;

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

Data Query Language


Data Query Language adalah bahasa SQL untruk mengambil/ membaca isi tabel yang ada di
dalam database.

Gambar 1.4 Arti dari perintah SELECT


Bentuk umum : SELECT [<nama_kolom1>, ...] | * FROM <nama_tabel>;

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;

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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".

6 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


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 "Praktikum01_ABD_[NIM].doc"
5. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.

PENDALAMAN MATERI
NAMA : _______________________
PRAKTIKUM 1

NIM : __________________

Untuk semua percobaan di bawah ini buatlah laporan cara membuat


(langkah-langkah dilengkapi dengan screen shoot) dengan pertintah tertulis
(dengan perintah SQL) maupun dengan menu antarmuka grafis SSMS.
1. Buatlah database Inventory, kemudian buatlah table-tabel sebagai berikut di dalam
database tersebut (Sebagian memakai perintah SQL dan sebagian memakai antarmuka
grafis SSMS) :

7 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


2. Isilah tebel Barang dan Supplier dengan perintah SQL (INSERT INTO) seperti berikut :

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

8 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 2

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

9 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018



tidak sah 30 Februari 2014) . Dengan adanya domain constraint ini maka kesalahan yang
mungkin terjadi pada saat dilakukan proses dapat diminimalkan. Sebagai contoh misalnya
suatu kolom hanya boleh diisi nilai berupa huruf sebanyak 5, maka tipe datanya dapat diatur
menjadi Char(5) seperti Gambar 2.2 di bawah ini

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:

Gambar 2.3 Menambahkan konstrain Primary Key pada kolom kodeBarang

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.

10 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 2.4 Membuat kolom Identity

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

Membuat Integritas Relasi Barang dengan ItemNotaBeli


Dengan bahasa SQL sebenarnya kita bisa langsung membuat kolom kodeBarang pada tabel
ItemNotaBeli mempunyai konstrain Foreign key terhadap Primary key kolom KodeBarang
pada tabel Barang. Atau bisa juga apabila pada saat membuat tabel itemNotaBeli konstrain
tersebut belum diberikan, tabel tersebut bisa kita ubah memakai perintah DDL SQL ALTER.

11 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Pada praktikum ini kita akan
menambahkan konstrain Foreign Key
pada tebel itemNotaBeli tersebut bukan
memakai perintah DDL SQL ALTER namun
memakai menu antarmuka grafis yang
disediakan oleh SSMS. Pertama bukalah
desain tabel itemNotaBeli, kemudian klik
kanan pada kolom kodeBarang lalu pilih
menu Relationship seperti tampak pada
Gambar 2.6.

Relasi itemNotaBeli.kodeBarang ini akan


dibuat ke kolom Primary key pada
barang.kodeBarang seperti tampak Gambar 2.6 Langkah-langkah membuat
konstrain integritas tabel itemNotaBeli
Skema Diagram pada Gambar 2.5 di atas.

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:

Gambar 2.7 Mengubah spesifikasi kolom menjadi Foreign key

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.

12 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 2.8 Membuat relasi Barang.kodeBarang dengan itemNotaBeli.kodeBarang

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

Aturan Bisnis Delete dan Update


Aturan bisnis yang berlaku pada tabel anak (yang memiliki konstrain Foreign key) adalah
dilarang melakukan penambahan baris pada tabel anak apabila nilai kolom Foreign key yang
dimasukkan belum terdapat pada kolom Primary key tabel induk. Sedangkan pada tabel
induk yang kali ini kita memakai aturan bisnis default yaitu No Action, artinya pada tabel
Induk nilai baris pada kolom Primary key dilarang diubah apalagi dihapus apabila nilai
tersebut sedang digunakan pada tabel anak, dengan demikian maka integritas data (Pk - Fk)
akan selalu terjamin.

13 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Aturan bisnis lainnya apabila terjadi UPDATE atau DELETE pada tabel Induk sedangkan nilai
kolom Pk tabel Induk tersebut sedang digunakan untuk menjadi referensi dari tabel anak
maka ada 4 pilihan aturan bisnis yang dapat diberlakukan seperti tampak pada Gambar 2.10
aturan-aturan bisnis yang terdapat apada SQL Server adalah sebagai berikut:

Gambar 2.10 Aturan bisnis pada RDBMS SQL Server

SELECT Multiple table


Tabel-tabel yang sudah dirancang dalam bentuk normal akan menghindari redundansi data
(data yang disimpan berulang-ulang), namun pada penampilan data diperlukan data yang
lengkap. Oleh karena itu RDBMS mempunyai cara untuk menampilkan data dari tabel-tabel
yang berelasi. Sebagai contoh pada data pembelian (ItemNotaBeli) tidak tersimpan data
mengenai nama barang, namun dengan SELECT multiple table dapat ditampilkan data
seperti Gambar 2.11 i bawah ini.

Gambar 2.11 Hasil Query SELECT Multiple table

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.

14 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


• Pada klausa WHERE sebutkan nama-nama field yang membuat tabel-tabel tersebut
berelasi memakai operator = contoh: WHERE itemNotaBeli.kodeBarang =
barang.kodeBarang.
• Nilai kolom bisa diperoleh juga dari ekspresi, berikan judul kolom baru untuk
ekspresi tersebut. Judul kolom akan memakai nama kolom, jika dikehendaki bisa
diubah dengan cara menyebutkan judul yang diinginkan disamping ekspresi tsb.
Contoh :

Gambar 2.12 Perintah SQL SELECT tabel itemBeli dengan tabel barang

Menyederhanakan SELECT Multiple Table


Untuk menyederhanakan perintah SELECT Multiple table seperti Gambar 2.12 dapat
dilakukan dengan pemakian alias, yaitu nama lain dari tabel yang di tulis di sebelah kanan
nama tabel aslinya. Biasanya nama alias merupakan bentuk singkat dari nama tabel,
sehingga untuk kolom-kolom yang biasanya disebutkan beserta nama tabelnya sekarang
tinggal menyebutkan nama aliasnya saja sehingga pertintah SQL menjadi lebih sederhana
seperti Gambar 2.13 di bawah ini:

Gambar 2.13 Perintah SQL SELECT memakai alias

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

Fungsi Agregasi dan Pengelompokan


RDBMS juga mempunyai kemampuan untuk melakukan pengelompokan baris data dan
dapat melakukan proses perhitungan memakai fungsi penjumlahan, rata-rata, terbesar,

15 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


terkecil dan mencacah berdasarkan kelompok yang dikehendaki. Sebagai contoh misalnhya
akan dilakukan penjumlahan salary untuk tiap departement, maka dengan perintah
pengelompokan dan memakai fungsi sum() dapat diperoleh hasil seperti Gambar 2.15 di
bawah ini:

Gambar 2.15 Pengelompokan berdasarkan departemen dan kolom salary dijumlahkan (sum)

Perintah SQL SELECT untuk menghasilkan tabel di atas adalah :


SELECT departement_id, SUM(salary) FROM employee GROUP BY
departement_id;

Fungsi-fungsi agregasi diperlukan untuk melakukan proses rekapitulasi perhitungan, fungsi


tersebut meliputi :
– SUM()Penjumlahan/ summary
– AVG()Rata-rata/ average
– MAX()Data terbesar/ maximum
– MIN()Data terkecil/ minimum

– COUNT() Cacah data/ count

Fungsi-fungsi tersebut di atas digunakan bersama dengan perintah SELECT dengan


pengelompokan (GROUP BY), klausa GROUP BY juga bisa digunakan bersama SELECT
multiple table dan juga bisa disaring memakai klausa WHERE.

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

16 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


GROUP BY dengan catatan semua nama kolom yang disebutkan di sebelah kanan perintah
SELECT juga harus disebutkan di sebelah kanan klausa GROUP BY (kolom yang dikenati
fungsi tidak disebutkan pada klausa GROUP BY. Gambar 2.16 adalah contoh pengelompokan
dengan fungsi penjumlahan.
Contoh:

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.

Gambar 2.17 Pengelompokan pada SELECT multiple table

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.

17 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Dengan adanya View, sebuah perintah Query SELECT yang rumit dapat diperlakukan seolah-
olah hanya sebuah tabel. View bukan merupakan skema fisik basis data, view berupa tabel
virtual yang dikalkulasi atau direkapitulasi secara dinamis berdasarkan tabel-tabel
sumbernya. View menyembunyikan kompleksitas data, yang dihasilkan oleh view bisa
berupa ringkasannya saja. View memakan tempat yang sangat kecil, karena yang disimpan
adalah definisi dari view bukan salinan data.

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 :

Gambar 2.18 Membuat VIEW pada query SELECT multiple table

View adalah objek database, setelah pembu-


atan VIEW tersebut di atas sukses, maka pada
Object explorer dapat dilihat adanya
penambahan objek view seperti Gambar 2.19 di
samping kanan ini:

Selanjutnya apabila diperlukan SELECT multiple


table seperti di atas kita tidak perlu menulis
perintah tersebut kembali, tetapi tinggal
memakai VIEW daftarBeli yang dapat kita
perlakukan seolah-olah seperti objek tabel
biasa.

Untuk membuat view, SSMS juga menyediakan


antarmuka grafis VIEW Designer dengan cara
klik kanan pada folder Views kemudian pilih
Gambar 2.19 VIEW daftarBeli
New View kemudian lakukan desain secara
grafis.
18 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
Back Up dan Restore
Untuk membuat salinan database dapat dilakukan dengan cara membuat Back up,
sedangkan untuk mengambil kembali hasil back up dapat dilakukan dengan cara restore.
Untuk melakukan backup klik kanan pada nama database yang akan dibackup kemudian
pilih menu Task lalu pilih menu Back Up. Untuk melakukan Restore, klik kanan pada
databases lalu pilih menu Restore Database.

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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 :

19 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


2. Isilah tebel Barang dan Supplier seperti pada praktikum sebelumnya

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.

5. Tunjukkan langkah-langkah membuat semua konstrain Foreign Key sesuai dengan


Skema Diagram Gambar 2.5 di atas.

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

20 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 3

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.

Membuat Trigger Trigger


Untuk membuat Trigger dapat dilakukan dengan perintah SQL CREATE TTRIGGER seperti di
bawah ini:

21 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


CREATE TRIGGER <NamaTrigger> ON <NamaTable> FOR | AFTER {DELETE |
INSERT | UPDATE}
AS
{
SQL Statement
}

Menghapus Trigger
Untuk menghapus Trigger dapat dilakukan dengan perintah SQL DROP TTRIGGER seperti di
bawah ini:

DROP TRIGGER <Nama_Trigger>

Mengubah Trigger
Untuk mengubah Trigger dapat dilakukan dengan perintah SQL ALTER TTRIGGER seperti di
bawah ini:

ALTER TRIGGER {NamaTrigger} ON<NamaTable> FOR | AFTER {DELETE | INSERT |


UPDATE}
AS
{
SQL Statement
}

Syntax untuk mendapatkan informasi mengenai trigger :


sp_helptext <NamaTrigger>
sp_help <NamaTrigger>
sp_columns <NamaTrigger>

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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.

22 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


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
"Praktikum03_ABD_[NIM].doc"
6. Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.

PENDALAMAN MATERI
NAMA : ______________________________
PRAKTIKUM 3

NIM : __________________

Studi kasus : Database Inventory

Hasil akhir Praktikum ini adalah berupa trigger-trigger yang menjaga


integritas data stok pada tebel Barang dengan tabel-tabel yang
mempengaruhinya, yaitu tabel ItemNotaBeli dan ItemNotaJual.

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.

23 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


3. Screen shoot Daftar Barang beserta stok mula-mula (semua stok = 0), sebelum ada
transaksi apapun.
4. Buat transaksi sebuah Pembelian dengan beberapa barang yang dibeli. Screen shoot isi
tabel transaksi tersebut (notaBeli dan itemNotaBeli), berikan penjelasan seharusnya stok
mana saja yang berubah dan menjadi berapa seharusnya stok tersebut.
5. Screen shoot Daftar Barang beserta stok sekarang (setelah transaksi soal nomor 4 di
atas), jelaskan apakah hasilnya sesuai dengan yang diharapkan? Jelaskan bagaimana ini
bisa terjadi?
6. Tambahkan lagi beberapa transaksi Pembelian (beberapa baris baru notaBeli) dan tiap
notaBeli tersebut ada beberapa barang yang dibeli (bebas, sebaiknya barang yang
pernah dibeli pada nota sebelumnya dibeli lagi).
a. Screen shoot isi tabel transaksi tersebut (notaBeli dan itemNotaBeli), berikan
penjelasan seharusnya stok mana saja yang berubah dan menjadi berapa
seharusnya stok tersebut.
b. Tampilkan rangkuman pembelian : kodeBarang, namaBarang, totalQty dengan
pengelompokan (GROUP BY) sehingga dapat dilihat rangkuman jumlah Qty
pembelian per barang. Screen shoot hasil query ini.
7. Screen shoot Daftar Barang beserta stok sekarang (setelah transaksi soal nomor 6 di
atas), jelaskan apakah hasilnya sesuai dengan yang diharapkan (no. 6.b.)? Jelaskan
bagaimana ini bisa terjadi?
8. Screen shoot isi tabel itemNotaBeli, kemudian lakukan UPDATE perubahan KodeBarang
dan QTY pada salah satu baris (satu baris saja) pada tabel itemNotaBeli Screen shoot
juga ini tabel hasil perubahannya. Jelaskan terlebih dahulu seharusnya stok yang
berubah barang apa saja dan berapa masing-masing stoknya, kemudian tampikan
Screen shoot Daftar Stok barang apakah sesuai dengan harapan. Jelaskan bagaimana ini
bisa terjadi?
9. Screen shoot isi tabel itemNotaBeli (sekarang), kemudian lakukan DELETE pada salah
satu baris (satu baris saja) pada tabel itemNotaBeli Screen shoot juga ini tabel hasil
perubahannya. Jelaskan terlebih dahulu seharusnya stok yang berubah barang apa saja
dan berapa masing-masing stoknya, kemudian tampikan Screen shoot Daftar Stok
barang apakah sesuai dengan harapan. Jelaskan bagaimana ini bisa terjadi?
10. Buat 3 buah View berikut ini untuk memverifikasi Stok:
a. ViewPembelian yang merangkum itemNotaBeli dengan mengelompokkan
berdasarkan kodeBarang dan menjumlah Qty-nya (kodeBarang, Total_qty_beli)
b. ViewPenjualan yang merangkum itemNotaJual dengan mengelompokkan
berdasarkan kodeBarang dan menjumlah Qty-nya (kodeBarang, Total_qty_jual)
c. ViewLaporanBeliJualStok yang menampilkan mirip seperti Gambar di bawah ini:

Memeriksa Kebenaran Stok


ScreenShoot ViewLaporanBeliJualStokkemudian jelaskan apakah stok = beli – jual?
24 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
Trigger Penjualan
11. Jelaskan terlebih dahulu, apabila terjadi transaksi penjualan tabel-tabel apa yang akan
terlibat untuk merekam kejadian (porses) tersebut.
12. Berikan Screen shoot dari Trigger yang berkaitan dengan pemutakhiran stok karena
transaksi penjualan, 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.
13. Screen shoot Daftar Barang beserta stok sekarang, yaitu kondisi setelah ada transaksi
pada percobaan no 1 - 9 di atasun.
14. Buat transaksi sebuah Penjualan dengan beberapa barang yang dibeli. Screen shoot isi
tabel transaksi tersebut (notaJual dan itemNotaJual), berikan penjelasan seharusnya
stok mana saja yang berubah dan menjadi berapa seharusnya stok tersebut.
15. Screen shoot Daftar Barang beserta stok sekarang (setelah transaksi soal nomor 13 di
atas), jelaskan apakah hasilnya sesuai dengan yang diharapkan? Jelaskan bagaimana ini
bisa terjadi?
16. Tambahkan lagi beberapa transaksi Penjualan (beberapa baris baru notaJual) dan tiap
notaJualtersebut ada beberapa barang yang dijual (bebas, sebaiknya barang yang
pernah dijual pada nota sebelumnya dijual lagi).
a. Screen shoot isi tabel transaksi tersebut (notaJual dan itemNotaJual), berikan
penjelasan seharusnya stok mana saja yang berubah dan menjadi berapa
seharusnya stok tersebut.
b. Tampilkan rangkuman penualan (itemNotaJual): kodeBarang, namaBarang,
totalQty dengan pengelompokan (GROUP BY) sehingga dapat dilihat rangkuman
jumlah Qty penjualan per barang. Screen shoot hasil query ini.
17. Screen shoot Daftar Barang beserta stok sekarang (setelah transaksi soal nomor 15 di
atas), jelaskan apakah hasilnya sesuai dengan yang diharapkan (no. 6.b.)? Jelaskan
bagaimana ini bisa terjadi?
18. Screen shoot isi tabel itemNotaJual, kemudian lakukan UPDATE perubahan KodeBarang
dan QTY pada salah satu baris (satu baris saja) pada tabel itemNotaJual Screen shoot
juga ini tabel hasil perubahannya. Jelaskan terlebih dahulu seharusnya stok yang
berubah barang apa saja dan berapa masing-masing stoknya, kemudian tampikan
Screen shoot Daftar Stok barang apakah sesuai dengan harapan. Jelaskan bagaimana ini
bisa terjadi?
19. Screen shoot isi tabel itemNotaJual (sekarang), kemudian lakukan DELETE pada salah
satu baris (satu baris saja) pada tabel itemNotaBeli Screen shoot juga ini tabel hasil
perubahannya. Jelaskan terlebih dahulu seharusnya stok yang berubah barang apa saja
dan berapa masing-masing stoknya, kemudian tampikan Screen shoot Daftar Stok
barang apakah sesuai dengan harapan. Jelaskan bagaimana ini bisa terjadi?

Memeriksa Kebenaran Stok


20. ScreenShoot ViewLaporanBeliJualStokkemudian jelaskan apakah stok = beli – jual?

25 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 4

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 :

26 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


string connectionString = "Data Source=.\\SQLEXPRESS;
Initial Catalog=inventory;integrated security=true";

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.:

SqlConnection con = new SqlConnection(<string>);

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:

SqlConnection con = new SqlConnection(connectionString);

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:

SqlCommand cmd = new SqlCommand(<query>, <objek_koneksi>);

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:

SqlCommand cmd = new SqlCommand("SELECT * FROM barang",con);

DataTable

27 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Objek DataTable merupakan suatu struktur data dua dimensi yang telah disediakan oleh
lingkungan .NET. Objek DataTable sudah dirancang sedemikian rupa agar kompatibel
dengan objek-objek lainnya, sehingga pilihan menampung data di dalam objek DataTable
merupakan cara yang paling mudah untuk membuat program antarmuka grafis. Untuk
contoh pertama objek ini akan diumpankan ke kontrol form DataGridView, sehingga isi dari
objek DataTable bisa langsung terlihat di atas form. Cara mengumpankan objek DataTable
ke kontrol form DataGridView adalah memakai propserty DataSource sebagai berikut:

<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

Maka untuk mengumpankannya dapat diberikan perintah :


dgvBarang.DataSource = dt;

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.

28 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Pertama pada objek SqlDataAdapter harus disertakan perintah (objek SqlCommand) yang
akan dikirim ke database server, kemudian melalui metode fill() nilai respond dari database
server akan dimasukkan ke dalam objek DataTable. Jadi secara umum perintah untuk
SqlDataAdapter ini ada 3 langkah yaitu :

SqlDataAdapter <var> = new SqlDataAdapter();


<var>.SelectCommand = <objek_SqlCommand>;
<var>.Fill(objek_DataTable);

Dengan demikian, melanjutkan objek-objek yang telah dibuat di atas, maka perintah untuk
mengisi objek DataTable adalah seperti berikut:

SqlDataAdapter da = new SqlDataAdapter();


da.SelectCommand = <cmd>; da.Fill(dt);

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

Gambar 4.4. di bawah ini merupakan hasil eksekusi form tersebut:

29 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 4.4. Hasil eksekusi program

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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.

30 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Studi kasus : Tabel barang dalam database Inventory
PENDALAMAN MATERI
NAMA : ____________________________
PRAKTIKUM 4

NIM : __________________
PEMROGRAMAN ANTARMUKA GRAFIS

Gambar 4.1 Tabel Barang pada database Inventory

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:

Gambar 4.2 Kelas-kelas yang dibutuhkan untuk memindahkan data ke DataTable

31 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Buatlah percobaan untuk tiap soal di bawah ini, kemudian jelaskan dengan disertai
screen shoot percobaan yang kamu lakukan.

Menampilkan tabel barang ke DataGridView


1. Buatlah antarmuka grafis (bebas) yang dapat menampilkan isi tabel barang (seperti
Gambar 4.1) ke DataGridView. Berikan Screenshoot hasil eksekusi antarmuka grafis
kamu yang menampilkan data barang tersebut.
2. Berikan pembahasan disertai screen shoot program yang kamu buat :
a. Apa gunanya DataTable dan bagaimana cara mempersiapkannya
b. Bagaimana langkah pertama agar client bisa terhubung ke Server? Ada 3 buah
parameter yang dibutuhkan untuk melakukan koneksi tersebut (connection
string), jelaskan satu persatu.
c. RDBMS Server hanya dapat merespon bahasa SQL, jelaskan kelas apa yang
dibutuhkan dan bagaimana cara membuatnya pada kasus ini.
d. Jelaskan bagaimana cara memakai objek DataTable secara manual (dibuat
sendiri)
i. Cara Mempersiapkan kolom-kolomnya
ii. Cara Menambahkan datanya
e. Jelaskan apa peran SQLDataAdapter pada percobaan yang kamu buat dan
bagaimana caranya supaya dapat digunakan untuk memindahkan data dari tabel
barang (ada di database Server) ke DataTable yang ada di komputer Client.
f. Jelaskan bagaimana DataGRidView dapat menampilkan isi tabel barang?

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) :

4. Buatlah program memakai BindingSource sedemikian rupa sehingga Navigasi Record


(memilih record) dapat dilakukan dengan cara memilih baris yang ada pada
DataGridView (klik pada DataGridView), screen shoot program kamu dan jelaskan
langkah-langkahnya.
5. Lengkapi program di atas supaya Form ini dapat melakukan manipulasi data (Insert,
Update dan Delete) dan berikan pembahasannya.

32 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 5

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

33 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


karena ini adalah antarmuka grafis maka ada birokrasi cara penyimpanan dengan
tombol Save.
 Pembatalan (Undo)

Sesuai dengan prinsip Forgiveness tombol ini digunakan untuk membatalkan
perubahan atau penambahan, tentu saja tombol ini hanya bisa digunakan sebelum
tombol Save ditekan.

Studi kasus : Tabel barang dan Supplier dalam database Inventory


Pada praktikum ini kita akan membuat antarmuka grafis yang baik untuk mengelola sebuah
tabel yaitu tabel Barang dan tabel Supplier, Gambar 5.1 di bawah ini adalah contoh
antarmuka grafis untuk mengelola tabel Barang:

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.

Gambar 5.2 Kelas-kelas yang dibutuhkan untuk memindahkan data ke DataTable


34 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
ALAT DAN BAHAN
1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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.

Membuat Antarmuka Grafis untuk tabel BARANG


1. Buatlah antarmuka grafis untuk mengelola tabel barang (seperti Gambar 5.1), jangan
lupa ada 2 tombol yang tidak terlihat pada Gambar 5.1 di atas, yaitu btnSave dan
btnUndo. Berikan nama-nama kontrol form sesuai dengan prinsip pemrograman yang
baik, misalnya TxtKodeBarang, TxtNamaBarang, BtnTop, BtnBack, dan seterusnya.
Berikan Screenshoot hasil rancangan antarmuka grafis kamu untuk data barang
tersebut.
--- berikan pembahasan di sini ---
2. Buatlah program sedemikian rupa sehingga ketika antarmua grafis dijalankan, maka
TextBox akan menampilkan entitas baris pertama dari tabel barang, DataGridView akan
menampilkan beberapa baris pertama dari tabel Barang, semua TextBox disabled dan
BtnSave dan BtnUndo tersembunyi. Screen shoot hasil eksekusi pertama antarmuka
grafis yang kamu buat ini kemudian berikan pembahasan :

35 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


a. Jelaskan kriteria User is in control pada antarmuka grafis yang kamu buat
tersebut
--- berikan pembahasan di sini ---
b. Jelaskan kriteria Simplicity pada antarmuka grafis yang kamu buat tersebut
--- berikan pembahasan di sini ---
c. Screen shoot pada bagian metode untuk mengisi DataTable, berikan
pembahasan cara kerjanya
--- berikan pembahasan di sini ---
d. Screen shoot pada bagian-bagian yang menyebabkan DataTable diambil alih
oleh BindingSource, berikan pembahasan :
i. Bagaimana cara membuat BindingSource
--- berikan pembahasan di sini ---
ii. Bagaimana cara menghubungkan dengan DataTable
--- berikan pembahasan di sini ---
iii. Bagaimana cara menghubungkan dengan TextBox
--- berikan pembahasan di sini ---
iv. Bagimana cara supaya DataGridView dapat mengontrol record
pointer BindingSource
--- berikan pembahasan di sini ---

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

Mekanisme Antarmuka Grafis


4. Berikan screen shoot metode-metode yang mengatur mekanisme antarmuka grafis
(modeSave dan modeEdit), berikan penjelasan cara kerjanya :
a. Kapan metode-metode tersebut dipanggil?
--- berikan pembahasan di sini ---
b. Jelaskan bagaimana mekanisme antarmuka seperti ini dapat memenuhi
kriteria User is in Control?
--- berikan pembahasan di sini ---

Tombol New dan Edit


5. Cara kerja antarmuka grafis tombol New dan Edit mempunyai perbedaan oleh karena
antarmuka grafis dipersiapkan untuk tujuan yang berbeda, yaitu New adalah antarmuka
grafis untuk menambah data baru, sedangkan Edit adalah untuk mengubah data yang
sudah ada. Berikan screen shoot programnya dan berikan penjelasan untuk :
a. Buatlah metode dalam Form untuk mengeksekusi Query SQL yang bisa
digunakan untuk melakukan INSERT atau UPDATE maupun DELETE yang akan
dimanfaatkan pada tombol Save di bawah ini.
--- berikan pembahasan di sini ---
36 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
b. Bagaimana caranya supaya tombol Save tahu apakah yang harus dikrimkan
perintah SQL INSERT INTO atau UPDATE? (screen shoot program dalam
tombol Save)
--- berikan pembahasan di sini ---
c. Bagaimana caranya menyimpan nilai KodeBarang sebelum mengalami
perubahan (diedit) (Screen shot program dalam tombol Edit dan deklarasi
variabel globalnya)
--- berikan pembahasan di sini ---

Tombol Delete dan Undo


6. Bagaimana caranya supaya penghapusan memenuhi kriteria Forgiveness? Screen shoot
ini program tombol Delete dan berikan pembahasan cara membuat MessageBox secara
lengkap.
--- 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 ---

37 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 6

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

Gambar 6.1. Diagram Kelas Tabel dengan 3 atribut dan 3 metode

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

38 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 6.2 Form data 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.

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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.

39 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Studi kasus : Form Supplier
PENDALAMAN MATERI
NAMA : ____________________________
PRAKTIKUM 6 NIM : __________________
Mengorganisasikan Program

Gambar 6.1 Form data 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.

Kelas Untuk Mengorganisasikan Program


Kelas merupakan tempat untuk mengorganisasikan data dan program, dengan memakai
kelas yang sama program yang serupa dapat dibuat hanya dengan membuat instan dari
kelas tersebut. Pengolahan data tabel ecara Client/ Server juga dapat dibuat kelasnya
seperti berikut:

Gambar 6.2 Kelas Tabel

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 :

40 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


a. Pada diagram kelas Gambar 6.2 di depan nama anggota kelas ada tanda + dan -,
jelaskan apa maksudnya? Jelaskan untuk masing-masing anggota tersebut
mengapa + dan mengapa -.
--- berikan pembahasan di sini ---
b. Apa manfaat field namaTabel? Mengapa nama tabel dijadikan field, bukan
parameter saja?
--- berikan pembahasan di sini ---
c. Tambahkan konstruktor untuk setting awal objek supaya nama tabelnya sudah
ditentukan sejak instansiasi. Berikan pembahasan apa manfaat konstruktor ini.
--- berikan pembahasan di sini ---

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

41 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


5. Sekarang semua TextBox dan DataGridView tersambung ke DataTable yang berisi
rekaman tabel Supplier yang ada di Database Server.
a. Berikan penjelasan, bagaimana demikian, bukankah yang dapat diakses hanyalah
BindingSource yang ada dalam kelas Tabel?
--- berikan pembahasan di sini ---
b. Jelaskan, setelah kamu melakukan percobaan nomor 4 di atas, akibatnya jika kita
merubah isi TextBox atau isi DataGridView menyebabkan berubahnya data yang
ada di dalam DataTable yang ada dalam objek Tabel sehingga merusak
konsistensi antara data yang ada di DataTable dengan data yang ada pada tabel
Supplier pada Database Server?
--- berikan pembahasan di sini ---
c. Bagaimana cara mengatasi supaya tidak terjadi inskosistensi data (percobaan
5.b) karena pemakai tidak sengaja mengakses kontrol form TextBox atau
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 ---

42 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


8. Berikan kesimpulanmu, apakah Pemrograman Berorientasi Objek membuat program
lebih mudah dipahami dan dipelihara, berikan alasan kamu dengan cara
membandingkan Praktikum Percobaan 6 ini (Mengorganisasikan Program memakai
Kelas) dengan Praktikum percobaan sebelumnya.
--- berikan pembahasan di sini ---

43 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 7

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.

Microsoft reporting technology


Microsoft Visual Studio menyediakan alat untuk membuat laporan, yang dapat dibuat
dengan cara membuat item baru dalam projek dengan cara mengkik kanan nama projek
kemudian pilih Add dan New Item seperti Gambar 7.1 berikut ini:

Gambar 7.1 Menambahkan item baru pada projek

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:

44 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 7.2 Menambahkan laporan memakai Microsoft reporting technology

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:

Gambar 7.3 Menambahkan komponen Table ke lembar laporan


Menampilkan Laporan
Laporan yang dibuat adalah dalam bentuk file rdlc, untuk menampilkan laporan maupun
mencetaknya ke printer perlu dibuat sebuah form (antarmuka grafis) dengan memakai
kontrol form ReportViewer. Untuk itu tambahkan sebuah Windows Form baru di dalam
projek, berilah nama misalnya LaporanStok, lalu tambahkan kontrol form ReportViewer
kemudian pilihlah laporan (Choose Report) : LaporanStok.rdlc seperti Gambar 7.4.

Gambar 7.4 Memilih Exproession yang akan ditampilkan

45 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Kemudian supaya ukuran laporan menyesuaikan dengan ukuran form, pilihlah menu "Dock
in Parent Container". Untuk Form aturlah property WindowState : Maximized agar ketika
form dijalankan dalam keadaan tertampil penuh di seluruh layar. Untuk menampilkan
laporan adalah dengan cara menampilkan (menjalankan) Form ini seperti Gambar 7.5.

Gambar 7.5 Hasil keluaran Laporan Melalui Form


Menyaring Laporan
Pada waktu kita menambahkan kontrol form ReportViewer pada Form, sistem akan
menambahkan beberapa komponen antara lain yaitu BindingSource seperti terlihat pada
Gambar 7.6.

Gambar 7.6 ReportViewer membutuhkan komponen BindingSource

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.

Supaya komponen BarangBindingSource dapat diakses dari luar form LaporanStok,


tambahkan metode publik di dalam kelas ini untuk mengembalikan BarangBindingSource
seperti berikut:

46 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


public BindingSource getBarangBindingSource()
{
return BarangBindingSource;
}

Sebagai contoh misalnya untuk penyaringan laporan stok berdasarkan kode barang, maka
perlu dibuat form penyaring dengan antarmuka grafis seperti Gambar 7.7. berikut ini:

Gambar 7.7 Form Penyaring Laporan

Untuk mencetak pada tombol Preview dapat dituliskan program seperti berikut:

private void btnPreview_Click(object sender, EventArgs e)


{
LaporanStok formLaporanStok = new LaporanStok();
String kd1, kd2;
kd1 = cbKodeBarang1.Text;
kd2 = cbKodeBarang2.Text;
formLaporanStok.getBarangBindingSource().Filter = "kodeBarang >= " + kd1 +
" AND " + "kodeBarang <= " + kd2;
formLaporanStok.ShowDialog();
formLaporanStok.Dispose();
}

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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)

Gambar 7.1 Form data Barang

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

Lakukan percobaan di bawah ini, berikan screen shoot untuk memberikan


penjelasan 1. Tambahkan Report ke dalam projek :

48 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


a. Bagaimanakah cara membuat laporan berbentuk Tabel? Jelaskan langkah-
langkahnya disertai screen shoot
--- berikan pembahasan di sini ---
b. Buatlah desain laporan dengan bentuk seperti di bawah ini, screen shoot
desain kamu untuk mengganti gambar contoh di bawah ini, berikan
penjelasan cara secara detail membuatnya, termasuk cara memberikan
nomor halaman maupun total halamannya:

--- gantilah dengan screen shoot rancangan report kamu ---


Simpanlah dengan nama LaporanStok.rdlc

2. Cara menampilkan Laporan (LaporanStok.rdlc) yang sudah dibuat adalah dngan


membuat FormLapStok dan menambahkan kontrol ReportViewer.
a. Jelaskan property Form yang perlu diubah supaya pemakai dapat melihat
hasil tampilannya secara maksimal (seukuran layar penuh)
--- berikan pembahasan di sini ---
b. Jelaskan cara membuat ReportViewer yang akan menampilkan
LaporanStok.rdlc
--- berikan pembahasan di sini ---

3. Menyaring Laporan, buat form penyaring (FormSaringLapStok) seperti di bawah ini,


gantilah gambar di bawah ini dengan screen shoot form penyaring buatan kamu:

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

49 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


b. Penyaringan dapat dilakukan dengan memakai property Filter pada Objek
BindingSource yang ada pada FormLapStok (BarangBindingSource), namun
objek ini bersifat private, hanya bisa dibaca pada FormLapStok.
Bagaimanakah caranya supaya BarangBindingSource ini dapat dibaca dari
FormSaringLapStok? Berikan screen shot program kamu dan berikan
penjelasan.
--- berikan pembahasan di sini ---
c. Berikan screen shoot program yang kamu buat untuk menampilkan laporan,
jelasakn cara kerja penyaringan laporan tersebut.
--- berikan pembahasan di sini ---

4. Buatlah supaya FormSaringLapStok dapat dipanggil dari btnPrint pada FormDataBarang.


Berikan screen shoot program kamu dan berikan penjelasan cara kerjanya.
--- 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 ---

50 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 8

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

Gambar 8.1 Antarmuka Grafis Transaksi Pembelian

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

51 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


transaksi (rekaman riwayat atau histori transaksi) pada umumnya akan melibatkan banyak
tabel, seperti Transaksi Pembelian ini akan melibatkan 4 tabel seperti Gambar 8.2 berikut
ini:
ItemNotaBeli Barang
Supplier NotaBeli idNotaBeli * kodeBarang *
kodeSupplier * noNotaBeli * noNotaBeli ** namaBarang
namaSupplier kodeSupplier ** kodeBarang ** hargaBeli
alamat tanggal qty hargaJual
telpon harga stok
kota satuan

Gambar 8.3 Skema Diagram yang terlibat pada Transaksi Pembelian

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.

Menampilkan Bagian Master


Master dan Detail yang secara teknis data tersebut sudah kita sederhanakan memakai objek
View_Nota_Beli dan View_Detail_Beli. Berikut ini kita akan membahas cara menampilkan
informasi transaksi pembelian pada bagian Master terlebih dahulu.

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:

Membuat objek Tabel berisi View_Nota_beli

Gambar 8.4 Membuat objek master


Sebenarnya prinsip menampilkan data bagian Master ini masih sama dengan cara
menampilkan data pada antarmuka grafis tabel tunggal, yaitu dengan cara mengikatkan

52 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


semua kontrol-kontrol form TextBox dengan BindingSource yang ada pada objek Tabel
tersebut. Oleh karena itu buatlah metode ikat seperti Gambar 8.5 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.

Gambar 8.6 Metode ikat dipanggil pada saat FormNotaBeli_Load

Setelah program-program tersebut di atas dibuat, apabila Form dijalankan maka akan
menampilkan informasi transaksi pembelian bagian Master seperti Gambar 8.7 berikut ini:

Gambar 8.17 Informasi transaksi pembelian bagian Master

Untuk memindahkan tampilan ke nota pembelian yang lain digunakan tombol-tombol


navigasi dengan memanfaatkan metode-metode yang dimiliki oleh BindingSource seperti
pada Gambar 8.8 berikut ini:

53 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 8.8 Program untuk navigasi rekaman nota pembelian

Menampilkan Bagian Detail


Untuk menampilkan bagian detail, pertama persiapkan terlebih dahulu format dari kontrol
form DataGridView supaya ukuran maupun jenis data yang ditampilkan pada setiap kolom
sesuai.

Mempersiapkan Kontrol Form DataGridView


Berikut ini adalah langkah-langkah untuk mengatur format DataGridView, pertama klik
kanan pada DataGridVeiw kemudian pilih Edit Columns... seperti Gambar 8.9.

Pilih ini

Gambar 8.9 Mengatur format DataGridView

Kemudian tekan tombol Add untuk menambahkan kolom ke dalam DataGridView seperti
Gambar 8.10 berikut ini:

54 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Klik ini

Gambar 8.20. Menambah kolom ke dalam DataGridView

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:

Tulis judul kolom

Klik ini

Gambar 8.11 Memberi judul-judul kolom ke dalam DataGridView

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.

55 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Pilih kolom

Pilih False

Gambar 8.12 Menyembunyikan kolom pada DataGridView

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.13 Menyembunyikan kolom pada DataGridView


Supaya data yang ditampilkan pada kolom sesuai dengan nama-nama kolom yang ada,
aturlah property "DataPropertyName" untuk setiap kolom sesuai dengan nama-nama kolom
pada View_Detail_Beli seperti Gambar 8.14

56 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Tulis nama kolom
Pilih kolom yang sesuai

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

Gambar 8.15 Mengatur format tampilan nilai bilangan

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:

57 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Pilih Format Bilangan

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:

Tanpa nilai desimal


Pilih Format
Numeric

Gambar 8.17 Mengatur format rata kanan dan memilih Format bilangan

Demikian juga untuk kolom Jumlah aturlah format bilangan dengan cara yang sama.

58 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Program Menampilkan Bagian Detail
Seperti program untuk menampilkan bagian Master, pada kelas FormNotaBeli juga perlu
ditambahkan objek Tabel dengan isi "View_Detail_Beli" seperti Gambar 8.18 berikut ini:

Tambahkan Objek Tabel

Gambar 8.18 Menambahkan objek Tabel yang berisi View_Detail_Beli

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

Gambar 8.19 Mengaitkan DataGridView dengan BindingSource data detail

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:

Gambar 8.20 Hasil eksekusi program menampilan Master dan Detail

59 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Untuk mengatasi masalah ini tambahkan metode tampil untuk menyaring BindingSource
pada bagian detail sesuai dengan noNotaBeli yang ditampilkan pada TxtNoNotaBeli seperti
Gambar 8.21 berikut ini:

Gambar 8.21 Metode untuk menyaring bagian detail

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).

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

60 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


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
"Praktikum08_ABD_[NIM].doc"
Setelah selesai praktikum, pastikan Asisten sudah mengambil (collect) Laporan
Praktikum Anda untuk mendapatkan nilai.

Studi kasus : FormNotaBeli

PENDALAMAN MATERI
NAMA : ____________________
PRAKTIKUM 8
NIM : __________________
Menampilkan Transaksi Pembelian
Dengan Antarmuka Grafis MASTER-DETAIL

Gambar 8.1 Form untuk transaksi pembelian

Gambar 8.1 Form untuk transaksi pembelian

61 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Lakukan percobaan di bawah ini, berikan screen shoot untuk memberikan penjelasan
1. Tambahkan Windows Form ke dalam projek, beri nama FormNotaBeli :
a. Identitas nota (No. Nota Beli dan Tanggal) memakai TextBox dan Enaabled = False
b. Identitas pemasok (supplier) berada di dalam GroupBox, ukuran TextBox disesuaikan
dengan ukuran data (lihat Gambar 8.1), semua TextBox Enabled = False.
c. GroupBox Item Data Entry adalah kontrol form yang disediakan untuk mengisi detail
pembelian, jadi hanya ditampilkan pada saat "New" dan "Edit" pada kondisi normal
(mode save) GroupBox ini ditutupi oleh DataGridView yang pada saat desain
diletakkan di bawahnya (lihat Gambar 8.1). Semua TextBox Enabled = True kecuali
txtNamaBarang dan txtJumlah Enabled = False. Beri nama DataGridView ini dengan
dgvDetailBeli.

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

2. Buatlah mekanisme antarmuka grafis (metode modeSave() dan modeEdit()) :


a. Mode save (mode lihat)
Pada mode ini semua TextBox tidak boleh diedit (Enabled = false), btnSave dan
btnUndo tersembunyi (Visible = False) yang terlihat btnNew dan btnEdit, semua
button bisa diakses (Ebabled = True) secara visual akan terlihat seperti Gambar 8.2
berikut ini:

Gambar 8.2 Form untuk transaksi pembelian pada mode save


62 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
--- Screen shoot metode modeSave() buatan kamu yang bisa membuat antarmuka
grafis dalam rupa seperti Gambar 8.2 di atas. Screen shoot juga hasil eksekusi program
dalam mode save tersebut (Gantilah Gambar 8.2 di atas dengan antarmuka grafis mode
save milik kamu) ---

b. Mode edit (mode ubah)


Pada mode ini mengijinkan pemakai program untuk memasukkan data pembelian, yaitu:
 txtKodeSupplier Enabled = True

 GroupBox ItemDataEntry terlihat karena dgvDetailBeli ukurannya tingginya
dikurangi dan digeser ke bawah seperti Gambar 8.3 di bawah ini:

Gambar 8.3 Form untuk transaksi pembelian pada mode edit


--- Screen shoot metode modeEdit() buatan kamu yang bisa membuat antarmuka grafis
dalam rupa seperti Gambar 8.3 di atas. Screen shoot juga hasil eksekusi program dalam
mode edit tersebut (Gantilah Gambar 8.3 di atas dengan antarmuka grafis mode edit
milik kamu)---

3. Persiapan Data Untuk Menampilkan Transaksi Pembelian


a. MEMBUAT DATA CONTOH
Buatlah terlebih dahulu 5 transaksi pembelian (beberapa baris data pada tabel
NotaBeli), tiap nota beli mempunyai data pemasok yang berbeda-beda. Tiap
transaksi pembelian mempunyai item pembelian yang berbeda-beda.
--- Screen shoot metode isi tabel NotaBeli dan ItemNotaBeli milik kamu sesuai dengan
permintaan percobaan nomor 3 a ini---

b. MEMBUAT VIEW MASTER


Pada antarmuka grafis bagian Master, terdiri dari 2 tabel utama, yaitu : NotaBeli dan
ItemNotaBeli, yang secara visual akan terlihat seperti Gambar 8.4 di bawah ini:

63 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 8.4 Tampilan pada bagian Master

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

c. MEMBUAT VIEW DETAIL


Pada antarmuka grafis bagian Detail, terdiri dari 2 tabel utama, yaitu : ItemNotaBeli
dan Barang, yang secara visual akan terlihat seperti Gambar 8.5 di bawah ini:

Gambar 8.5 Tampilan pada bagian Detail

Dengan SSMS persiapkan terlebih dahulu view_detail_beli yang akan digunakan untuk
menampilkan tersebut, screen shoot isi data view_detail_beli milik kamu.

64 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


--- Screen shoot isi view buatan kamu gantilah gambar di atas dengan milik kamu.
Berikan pembahasan bagaimana cara membuat view_detail_beli tersebut---

4. Antarmuka Grafis Menampilkan Transaksi Pembelian


a. MEMBUAT Tabel di Client
Untuk menampilkan Transaksi Pembelian akan memakai view_nota_beli dan
view_detail_beli yang sudah dibuat di atas. Dengan memanfaatkan kelas Tabel yang
sudah kita buat sendiri, tambahkan di dalam kelas FormNotaBeli 2 buah variabel,
yaitu :
  master bertipe Tabel dengan konten view_nota_beli
 detailbertipe Tabel dengan konten view_item_beli

--- Screen shoot isi kelas FormNotaBeli buatan kamu yang mempersiapkan kedua
variabel anggota tersebut. Berikan penjelasan bagaimana cara membuatnya dan apa
manfaatnya---

b. MENAMPILKAN DATA master KE ANTARMUKA GRAFIS


Buatlah metode bernama bindMaster(), supaya semua TextBox yang tampak pada
gambar 8.4 dapat menampilkan data pada variabel master yang dibuat pada
percobaan 4.a. Kemudian buatlah supaya metode ini dipanggil ketika FormNotaBeli
pertama kali dijalankan.

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

c. MENAMPILKAN DATA DETAIL ke ANTARMUKA GRAFIS (dgvDetailBeli)


Buatlah metode tampilDetail() yang membuat dgvDetailBeli menampilkan data
seperti tampak pada gambar 8.5 ketika FormNotaBeli pertama kali dijalankan, yaitu
data yang diambil dari variabel detail yang dibuat pada percobaan 4.a. Saringlah
supaya yang ditampilkan hanya data yang noNotaBeli-nya samja dengan yang
sedang ditampilkan pada txtNoNotaBeli. Kemudian buatlah supaya metode ini
dipanggil ketika FormNotaBeli pertama kali dijalankan.

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

d. NAVIGASI REKAMAN TRANSAKSI PEMBELIAN


Untuk membaca transaks-transaksi pembelian yang sudah dilakukan, navigasi
dilakukan pada master, yaitu data view_nota_beli, kemudian berdasarkan
65 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
noNotaBeli yang ditampilkan pada txtNoNotaBeli akan disaring view_item_beli
untuk ditayangkan pada dgvDetailBeli. Pada antarmuka grafis proses navigasi
dilakukan pada tombol-tombol navigasi seperti Gambar 8.6 di bawah ini:

Gambar 8.6 Tombol Navigasi untuk melihat transaksi pembelian

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

66 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 9
Manipulasi Data Master (kode Supplier)

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:

Gambar 9.2 Struktur data tabel NotaBeli

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:

67 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Klik kanan

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:

Gambar 10.9. Database server diakses banyak pemakai secara bersama

Gambar 9.5 Program untuk menjaga keabsahan data kodeSupplier

68 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Supaya dapat mendeteksi setelah diketik 3 huruf atau ditekan tombol ENTER, tuliskan
program pada event KeyUp seperti Gambar 9.6 berikut ini:

Gambar 9.6 Program untuk mendeteksi penulisan kode supplier selesai

Dengan demikian maka antarmuka grafis transaksi pembelian sekarang sudah dapat untuk
melakukan CRUD (Create, Read, Update, Delete) pada antarmuka grafis Master-Detail.

ALAT DAN BAHAN


1. PC dengan Sistem Operasi Windows
2. Software Visual Studio 2010 dengan SQL Server Express
3. Software SQL Server Managementt Studio 2008 atau lebih baru

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.

69 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PENDALAMAN MATERI
NAMA : __________________
PRAKTIKUM 9
Memperbaiki (Update) Transaksi Pembelian NIM : __________________
Mengganti Supplier
Dengan Antarmuka Grafis MASTER-DETAIL
Lakukan percobaan di bawah ini, berikan screen shoot untuk memberikan penjelasan
1. Berikan penjelasan mengenai view_nota_beli yang barisnya tidak tampil ketika
kodeSuppliernya berisi null dan bagaimana cara mengatasinya.
2. Tambahkan program pada Event txtKode_supp_Validated pada FormNotaBeli seperti
berikut:

a. Screen shoot program punya kamu pada metode terseut.


b. Jelaskan maksud dari program tersebut.
c. Jelaskan risiko terjadinya pelanggaran konstrain Foreign Key, pada tabel apa
dan mengapa, berikan contoh screen shootnya ketika kodeSupplier yang
dimasukkan salah dan ada pesan kesalahan, apa pesan kesalahannya?
d. Berikan penjelasan bagaimana seharusnya program dibuat untuk
menghindari kesalahan dat aseperti ini.

3. Buatlah FormCariSupplier seperti berikut :

--- 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.

b. Mengetahui Baris Yang Dipilih Pada DataGridView


Berikan penjelasan secara tertulis, bagaimana program tahu supplier yang
dimaksud pemakai, kemudian tuliskan programnya di bawah ini:
  Ditulis pada Event apa objek apa?
 Programnya seperti apa?
o Bagaimana mengetahui baris yang dipilih pada DataGridView
o Bagaimana mengetahui kodeSupplier yang dipilih pada
DataGridView

c. Menyediakan kodeSupplier Yang Dipilih Pemakai


FormCariSupplier ini akan menghasilkan kodeSupplier yang dipilih oleh pmakai,
berikan penjelasan :
 Data kodeSupplier yang dipilih pemakai diletakkan di mana supaya bisa
 diambil pemakai.
 Bagaimana caranya nanti pemakai mendapatkan nilai tersebut?

4. Mencegah kesalahan data kodeSupplier
Pada percobaan soal nomor 1 ada kemungkinan akan terjadi kesalahan kodeSupplier.
Sekarang manfaatkan FormCariSupplier supaya kesalahan tidak lagi mungkin terjadi,
screen shoot program kamu dan jelaskan cara kerjanya.

71 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 10
Manipulasi Data Detail (insert)

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:

Gambar 10.1 Struktur tabel itemNotaBeli


Data yang dibutuhkan oleh tabel itemNotaBeli hanya 4 kolom karena kolom idNotaBeli
merupakan "identity" yang kita buat nilainya akan diberikan secara otomatis oleh RDBMS
yaitu berupa nilai int yang berurutan (auto increment). Untuk itu perlu disediakan kontrol-
kontrol form seperti tampak pada Gambar 10.2.

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:

72 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


TxtNoNotaBeli

TxtKodeBarang TxtQty TxtHarga

Gambar 10.2 Sumber data yang akan disimpan pada tabel itemNotaBeli

Menjaga Keabsahan Data Antarmuka Grafis


Untuk kebutuhan pengecekan kodeBarang pada TxtKodeBarang ini akan lebih tepat apabila
kita berikan pada event validated, yaitu ketika data pada text box sudah divalidasi (sudah
sah) karena ditinggalkan oleh kursor yang berpindah ke kontrol form lain. Untuk itu pilihlah
TxtKodeBarang, kemudian pada jendela property pilihlah simbol kilat (event), pilih event
validated dengan cara melakukan dobel klik pada event tersebut seperti Gambar 10.3 di
bawah ini:

Pilih
TxtKodeBarang

Pilih Events

Dobel klik Validated

Gambar 10.3 Memilih event yang akan menjalankan program

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:

Gambar 10.4 Menghapus tampilan barang

73 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Pada program pencarian kodeBarang ini membutuhkan BindingSource yang sudah
terkoneksi dengan DataTable yang berisi data barang yang ada di tabel barang pada
database server, untuk keperluan itu kita bisa memanfaatkan kelas Tabel dan kita buat
objek tabel yang isinya diambil dari tabel barang, jadi bisa kita tuliskan program seperti
Gambar 10.5 di bawah ini:

Gambar 10.5 Program untuk memastikan keabsahan nilai pada TxtKodeBarang


Program di atas akan dijalankan ketika kursor meninggalkan kontrol form TxtKodeBarang
dalam kondisi tidak kosong, yaitu ketika pemakai menekan tombol Tab atau memakai
mouse untuk meng-klik kontrol form lain. Pada antarmuka grafis ini diharapkan setelah
selesai pengisian TxtKodeBarang kursor pindah ke TxtQty, sedangkan secara default apabila
pemakai menekan tombol Tab kursor akan berpindah ke TxtNamaBarang. Untuk mengatasi
masalah ini kita bisa menuliskan program supaya ketika TxtKodeBarang ditinggalkan (leave)
dan TxtKodeBarang sudah terisi 5 karakter maka kursor berpindah ke txtQty, yaitu dengan
cara memilih event Leave pada TxtKodeBarang dan menuliskan program seperti Gambar
10.6. berikut ini:

Gambar 10.6 Program untuk memastikan perpindah kursor ke txtQty

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:

74 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 10.7 Program memindah fokus secara otomatis bila sudah dimasukkan 5 karakter

Sampai di sini keabsahan data pada TxtKodeBarang yang akan kita kirimkan ke kolom
kodeBarang tabel itemNotaBeli sudah terjamin keabsahannya.

Data Qty dan Harga


Data pada text box txtQty dan TxtHarga diisi oleh pemakai secara bebas dengan konstrain
bertipe data int (bilangan bulat), maka bisa kita buat program pada event KeyPressed pada
txtQty dan TxtHarga seperti Gambar 10.8. berikut ini:

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

75 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


TxtJumlah bisa dipicu oleh tombol ENTER bisa dituliskan program seperti Gambar 10.10. dan
Gambar 10.11 di bawah ini:

Gambar 9.10. Program untuk berpindah ke TxtHarga jika ditekan ENTER

Gambar 10.11 Program untuk berpindah ke TxtJumlah jika ditekan ENTER

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.

Menambah Data Detail


Setelah semua program di atas dibuat, maka sekarang kontrol-kontrol form sudah siap
digunakan untuk mengirimkan data ke database server. Yang harus dilakukan pertama
adalah membuat perintah dalam bahasa SQL, kemudian mengirimkan perintah tersebut ke
database server ketika pemakai menekan ENTER pada TxtJumlah seperti Gambar 10.12
berikut ini:

Gambar 10.12 Program untuk menambah data detail


76 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
Menampilkan Total
Untuk menampilkan total seperti tampak pada Gambar 10.13 dapat dilakukan dengan cara
mengakumulasi kolom nomor 6 pad DataGridView.

kolom 6
Total
ditampilkan

Gambar 10.13 Antarmuka grafis menampilkan Total

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:

Gambar 10.14 Program untuk menghitung total dan menampilkannya

Dengan demikian manipulasi data pada bagian detail untuk antarmuka grafis transaksi
pembelian sudah selesai.

77 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Studi kasus : FormNotaBeli
PENDALAMAN MATERI
NAMA : ______________________
PRAKTIKUM 10
NIM : __________________
Manipulasi Transaksi Detail Pembelian
(Bagian 1 : Menambah Detail)
Dengan Antarmuka Grafis MASTER-DETAIL

Mempersiapkan Data Barang


Pada proses penambahan data barang, bagian form yang berperan adalah Item Data Entry
seperti berikut :

Kontrol form untuk mengisi transaksi detail pembelian

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

2. Buatlah program supaya punya member variabel kodeBarang, namaBarang dan


hargaBarang bertipe String dan nilainya nanti diambilkan dari dgvBarang ketika pemakai
memilih salah satu baris dari dgvBarang (double klik atau menekan ENTER pada baris
yang dipilih)
-- Screen shoot program buatan kamu tampilkan di sini–
-- Berikan pembahasan cara kerja program kamu tersebut --

78 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


3. Program pada txtNamaBarang pada event Validated :

-- 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) --

4. Program pada txtQty pada event Validated

-- Screen shoot program buatan kamu dan gantilah program di atas dengan program
buatan kamu –
-- Berikan pembahasan cara kerja program di atas --

5. Program pada txtHarga pada event Validated

79 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


-- 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 –

7. Buatlah metode total digunakan untuk menjumlah kolom Jumlah :

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

80 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


-- Screen shoot program buatan kamu dan gantilah program di atas dengan program
buatan kamu –
-- Berikan pembahasan cara kerja program di atas --

9. Berikan kesimpulan kamu, bagaimana cara mengisi detail pembelian. Apa saja yang
harus diperhatikan agar data yang masuk ke tabel itemNotaBeli adalah valid.

81 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 11
Manipulasi Data Detail (update & Delete)

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.

Menghapus dan Mengubah Data Detail


Skenario pertama dari penghapusan (DELETE) dan pengubahan (UPDATE) data detail adalah
membaca idNotaBeli yang ada pada DataGridView terlebih dahulu, seperti kita ketahui
bahwa DgvDetailBeli juga menampung nilai idNotaBeli pada kolom pertama (nomor 0)
namun kita atur property : Visible=False sehingga tidak ditampilkan. Nilai tersebut sekarang
sangat kita butuhkan untuk melakukan UPDATE maupun DELETE pada tabel itemNotaBeli
karena kolom idNotaBeli merupakan kunci utama (primary key) dari tabel tersebut.

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.

82 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Apabila yang ditekan adalah tombol Backspace, maka kita asumsikan pemakai akan
mengubah data detal tersebut, sehingga yang dilakukan program adalah menyalin terlebih
dahulu nilai kolom-kolom pada baris tersebut kemudian kursor fokus ke TxtKodeBarang.

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:

Gambar 11.1 Program untuk mengubah dan menghapus data detail

Mempersiapkan Data Detail Pembelian


Supaya tabel ItemNotaBeli dapat di-Update maupun Delete dengan mudah, maka pada
DataGridView harus menyediakan data identitas (field idNotaBeli), maka perelu disediakan
view yang dapat menampilkan seperti Gambar 11.2 seperti berikut ini:

Gambar 11.2 View_Detail_Beli mempunyai idNotaBeli supaya bisa diupdate

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:

83 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Gambar 11.3 Menyembunyikan kolom IdNotaBeli

Melakukan Perubahan (Edit) Baris Detail Pembelian


Untuk mengubah data detail pembelian, pertama kita akan memindahkan baris yang akan
diedit ke kontrol form (editor) item nota beli seperti Gambar 11.4 di bawah ini.

Gambar 11.4 Kontrol Form untuk mengubah detail pembelian

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.

84 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PENDALAMAN MATERI
NAMA : _____________________
PRAKTIKUM 11 NIM : __________________
Manipulasi Transaksi Detail Pembelian
(Bagian 2 : Mengubah dan Menghapus Detail)
Dengan Antarmuka Grafis MASTER-DETAIL
Studi kasus : FormNotaBeli

Gambar 11.1 Form untuk transaksi pembelian

Mempersiapkan Data Detail Pembelian


1. Supaya tabel ItemNotaBeli dapat di-Update maupun Delete dengan mudah, maka pada
DataGridView harus menyediakan data identitas (field idNotaBeli), Screen Shoot isi
View_Detail_Beli punya kamu, gantilah Gambar di bawah ini dengan View punya kamu
tersebut:

2. Walaupun tidak semua kolom View_Detail_Beli akan ditampilkan pada DataGridView


(Lihat bagaian DataGridView pada Gambar 11.1), namun sebenarnya semua kolom
tersebut ada pada DataGridView tetapi tersembunyi (hidden). Lakukan Edit Column
pada DataGridView di program yang kamu buat, Screen Shoot dan gantilah gambar di
bawah ini dengan data kolom DataGridView kamu tersebut.

85 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


a. Jelaskan field mana saja yang ditampilkan dan mana yang tidak?
b. Jelaskan bagaimana cara menampilkan atau tidak menampilkan kolom
tertentu?
c. Jelaskan posisi nomor kolom untuk field idNotaBeli, mengapa kita harus tahu
kolom ini di posisi kolom nomor berapa.

Melakukan Perubahan (Edit) Baris Detail Pembelian


3. Langkah-langkah (Algoritma) untuk melakukan perubahan data baris ItemNotaBeli di
bawah ini belum sempurna (masih salah), sempurnakanlah:
Langkah 01 : Tekan Edit supaya Antarmuka Grafis beralih ke mode Edit
Langkah 02 : Pilih salah satu baris pada DataGridView
Langkah 03 : Jika ada tombol ditekan

baris nomor baris pada DataGridView
Jika yang ditekan tombol Back Space
txtKodeBarang.Text

DgvDetailBeli.Rows[baris].Cells[2].Value.ToString();
Jika yang ditekan tombol Back Space atau Delete

idNotaBeli
DgvDetailBeli.Rows[baris].Cells[0].Value.ToString();
strSQL "DELETE FROM ItemNotaBeli WHERE idNotaBeli=" +
idNotaBeli;
Langkah 04 : Hitung ulang Total
Langkah 05 : Selesai
4. Ceritakan langkah-langkah pada Algoritma tersebut, mengapa pada program yang kita
buat ini untuk melakukan perubahan tidak memakai perintah UPDATE sama sekali?
5. Jelaskan apakah perubahan ini dapat memperbarui data stok sesuai dengan perubahan
yang kita lakukan pada tabel ItemNotaBeli? Bagaimana ini bisa terjadi?
6. Gambarkan Flowchart untuk langkah-langkah pengeditan Detail Pembelian tersebut.
86 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018
7. Buat implementasi programnya, Screen Shoot program untuk Algoritma yang kamu buat
pada nomor 3 di atas, tampilkan di bawah ini kemudian berikan penjelasan cara
kerjanya.
8. Buatkan User Manual (cara memakai program) dilengkapi dengan Screen Shoot tiap
tampilan, cara melakukan perubahan data pada Detail Pembelian.
9. FormNotaBeli sudah dapat melakukan Insert, Update dan Delete pada Detail
Pembelian. Sekarang buatlah FormNotaJual, sama seperti FormNotaBeli, berikan Screen
Shoot langkah-langkah cara pembuatannya sejak awal, yaitu mulai menambahkan
WindowsAplicationForm hingga FormNotaJual dapat melakukan Insert, Update dan
Delete pada Detail Pembelian seperti FormNotaBeli ini.

87 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


PRAKTIKUM 12
Menambah dan
Menghapus Transaksi

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:

Gambar 12.2 Struktur data tabel NotaBeli

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

88 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


noNotaBeli tidak boleh diisi karena akan secara otomatis diberikan nomor yang sudah pasti
unik dan berurutan.

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.

Menambah Baris NotaBeli


Untuk menambah bagian Master dilakukan dengan memberikan perintah INSERT pada tabel
NotaBeli, kolom kodeSupplier pertama kali akan dikosongkan (berisi nilai null), karena
kolom ini akan diisi oleh pemakai program melalui kontrol form TxtKodeSupplier (sudah di
bahas pada Praktikum 9), sedangkan kolom NoNotaBeli akan diisi secara otomatis oleh
sistem (auto increment), maka perintah SQL yang akan diberikan adalah seperti Gambar
12.3 di bawah ini:

Gambar 12.3 Perintah SQL menambah baris pada tabel NotaBeli

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:

Gambar 12.4 Baris baru berhasil ditambahkan pada tabel NotaBeli

Menemukan Nomor noNotaBeli


Aplikasi Bisnis Desktop ini mendukung cara pengaksesan secara bersama-sama (multiuser),
artinya pada waktu yang bersamaan diijinkan ada banyak pemakai menjalankan program
aplikasi termasuk transaksi pembelian seperti ilustrasi Gambar 12.5 di bawah ini

89 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Database Server

User 01 User 02 User 03


Gambar 12.5 Penambahan transaksi pada aplikasi multi user

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:

Gambar 12.6 Metode eksekusiSQL_getID mengembalikan nilai "identity"

90 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Dengan adanya metode tersebut sekarang kita bisa mengetahui nomor "identity" yang
diberikan oleh sistem ketika kita memberikan perintah INSERT pada tabel NotaBeli. Dengan
bekal nomor tersebut kita bisa memindahkan posisi record pointer dari BindingSource
kemuidan menampilkan transaksi pembelian (Master-Detail) untuk nomor nota pembelian
baru tersebut. Program antarmuka grafis selengkapnya adalah seperti Gambar 12.7 di
bawah ini:

Gambar 12.7 Program pada tombol "New"

Menghapus Nota Pembelian


Seperti yang sudah di bahas sebelumnya, FormNotaBeli ini melakukan proses terhadap tabel
NotaBeli dan itemNotaBeli, yang artinya apabila kita akan menghapus nota pembelian maka
yang kita hapus adalah baris-baris data yang ada di dalam kedua tabel tersebut.

Gambar 12.8 Program untuk menghapus transaksi pembelian

91 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Karena ada relasi Primary Key - Foreign Key antara kedua tabel tersebut, maka yang harus
dihapus terlebih dahulu adalah tabel yang mempunyai Foreign Key, jika yang dihapus adalah
tabel yang mempunyai Primary Key terlebih dahulu akan mengakibatkan konstrain Foreign
Key pada tabel detail dilanggar dan menyebabkan DBMS memberikan pesan kesalahan
(tidak dapat dihapus). Gambar 12.8 di atas adalah program untuk menghapus transaksi
pembelian.

92 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


Studi kasus : FormNotaBeli

PENDALAMAN MATERI
NAMA : _____________________
PRAKTIKUM 12
NIM : __________________
Manipulasi Transaksi Pembelian
Dengan Antarmuka Grafis MASTER-DETAIL

Gambar Form untuk transaksi pembelian

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.

93 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018


2. Screen shoot program kamu dan jelaskan program yang dapat digunakan untuk
mengetahui nomor nota baru (noNotaBeli).
a. Mengapa nomor nota yang baru harus diketahui?
b. Setelah diketahui apa gunanya pada antarmuka grafis Form Nota Pembelian
ini?
c. Jelaskan Cara kerja program yang ada pada tombol "New".
3. Jelaskan pengaturan antarmuka grafis setelah tombol "New" ditekan, screen shoot
tampilan yang kamu buat dan berikan penjelasan cara memakai antarmuka grafisnya.
4. Bagaimana cara menghapus nota pembelian? Berikan penjelasan mengenai urutan
langkah supaya tidak terjadi kesalahan.

94 Program Studi Sistem Informasi Fakultas Teknologi Informasi | UKDW 2018

Anda mungkin juga menyukai