Anda di halaman 1dari 14

Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

JOBSHEET PRAKTIKUM BASIS DATA


“SQL”

A. Dasar Teori
a. Pengertian Database
Dikutip dari wikipedia 1: “A database is an organized collection of data”. Sebuah database adalah
kumpulan data yang terorganisasi. Dalam bahasa Indonesia, database ini dikenal juga dengan sebutan
Basis Data.

Secara tradisional, data tidak harus berada di komputer. Masih banyak kantor dan perusahaan yang
menyimpan catatan absen, penjualan serta laporan bulanan menggunakan kertas. Jika datadata ini
dikelompokkan dan disusun menggunakan sebuah cara tertentu, itu juga sudah bisa dikatakan sebagai
database.

Terdapat berbagai kelemahan jika menyimpan data di media kertas. Mulai dari mudah tercecer,
membutuhkan tempat yang besar (jika data tersebut banyak), hingga susahnya mencari informasi yang
dibutuhkan dengan cepat.

Perkembangan teknologi, khususnya komputer menyediakan solusi untuk menyimpan data-data ini.
Daripada menulis di kertas, data tersebut bisa disimpan ke dalam komputer. Bagaimana caranya?

Salah satu solusi adalah menggunakan aplikasi spreadsheet seperti Microsoft Excel. Data hasil penjualan
bisa di-input ke dalam tabel excel dengan mudah. Untuk data lain, kita tinggal membuat file excel baru.
Solusi ini sangat praktis dan mudah untuk dipelajari.

Solusi kedua adalah menyimpan data di aplikasi khusus database seperti MySQL. Menyimpan data di
Microsoft Excel dan MySQL memiliki tujuan yang berbeda. Untuk data yang sederhana, tabel di excel
sudah mencukupi. Namun jika data tersebut cukup kompleks, saling berhubungan, serta harus diakses
banyak orang sekaligus, menyimpan data di MySQL akan lebih pas.

Alasan lain yang tak kalah penting adalah, aplikasi seperti MySQL bisa digabung dengan bahasa
pemrograman. Bahasa pemrograman ini nantinya berfungsi untuk membuat interface atau tampilan
aplikasi, sedangkan datanya disimpan ke dalam MySQL.

Di dalam web programming, bahasa pemrograman yang dimaksud adalah HTML, CSS, PHP
dan JavaScript. Ke empat bahasa ini digunakan untuk membuat tampilan form. Setelah itu PHP
akan memproses data yang disimpan ke dalam dabatase MySQL. Inilah alur lengkap pemrosesan
form di sebuah website.

b. Pengertian Database Model


MySQL merupakan sebuah aplikasi RDBMS, singkatan dari Relational Database Management
System. Pengertian sederhana dari RDBMS adalah: aplikasi database yang menggunakan prinsip
relasional. Mari kita bahas pengertian dari “Relational Database” terlebih dahulu.

Dalam teori database, banyak cara yang dikembangkan untuk menyimpan data di komputer,
mulai dari flat model, hierarchical model, network model, relational model, hingga object
oriented model.

Flat model adalah istilah lain dari tabel sederhana seperti di Microsoft Excel, yakni menyimpan
data tanpa aturan dan cara penulisan tertentu.

Dalam hierarchical model, data disusun seperti pohon terbalik, dimana data terorganisasi dari
atas ke bawah. Model database ini digunakan pada sistem database awal, seperti Information
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Management System (IMS) oleh IBM pada tahun 1966. Sedangkan network model merupakan
pengembangan dari hierarchical model.

Relation model menyusun data ke dalam bentuk tabel yang saling terhubung. Tabel-tabel inilah
yang nantinya menjadi sebuah database.

Object oriented model menggunakan pendekatan object dalam meyimpan data. Setiap data
dianggap sebagai object yang memiliki berbagai property. Kurang lebih mirip seperti konsep
OOP dalam bahasa pemrograman berbasis object.

c. RDMS : Relational Database Management Systems


Relational Database Management Systems (RDBMS) adalah software/aplikasi yang menggunakan
relational database model sebagai dasarnya.

Sejak 1970an, RDBMS sudah banyak digunakan. Dua RDBMS pertama adalah System R, yang
dikembangkan oleh IBM, dan INGRES (Interactive Graphics Retrieval System) yang dikembangkan oleh
University of California di Berkeley. Keduanya pada awal 1970an.

Setelah keunggulan Relational Database banyak dikenal, berbagai perusahaan mulai berlalih dari
hierarchical dan network database model ke relational database model. Pada tahun 1980an, Oracle
RDBMS lahir, dan diikuti oleh pesaingnya saat itu, IBM DB2 RDBMS.

Jika pada tahun 1980an RDBMS hanya dapat digunakan dalam sistem mainframe perusahaan besar
(sejenis “super komputer”), saat ini dengan semakin majunya perkembangan teknologi di sisi hardware,
PC-based RDBMS sudah banyak tersedia, seperti MySQL yang bisa diinstall di komputer / laptop biasa.

d. Pengantar Teori Database dan SQL


 Database, Attribute, dan Tuple
Dalam relational database model, sebuah database adalah kumpulan relasi yang saling terhubung satu
sama lain. Relasi merupakan istilah dalam relational database, tapi kita lebih familiar menyebutnya
sebagai tabel.

Setiap tabel terdiri dari baris dan kolom. Dalam relational database, kolom atau column disebut jug
sebagai attribute, sedangkan baris atau row disebut sebagai tuple. Istilah ini hanya sekedar penamaan.
Agar lebih mudah, saya tetap menggunakan istilah tabel, kolom dan baris pada pembahasan sepanjang
buku ini.

Selain itu terdapat juga record dan field. Record adalah satu baris tabel (sama artinya dengan row atau
tuple), sedangkan field merujuk kepada satu data di dalam sel tabel.

Perhatikan contoh tabel berikut:


Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Tabel diatas berisi 6 nama provinsi di Indonesia. Nama-nama kolom yakni ID Prov, Nama Provinsi, Ibu
Kota Provinsi, Luas Wilayah, Populasi dan Tanggal Diresmikan adalah column atau tuple.

Setiap baris provinsi beserta datanya merupakan sebuah record atau row, seperti 3, Kalimantan Selatan,
Banjarmasin, 36.805, 3.922.790, 7 Desember 1956. Yakni seluruh data di baris ke-3.

Sedangkan 1 data sel tabel seperti Manokwari, 11704877 atau 4 Oktober 2000 adalah sebuah
field.

Di dalam MySQL, setiap data memiliki karakteristik masing-masing yang dikenal sebagai tipe data.
Untuk kolom Nama Provinsi dan Ibu Kota Provinsi, bisa disimpan ke dalam tipe data teks (CHAR). Untuk
kolom ID Prov, Luas Wilayah dan Populasi bisa disimpan ke dalam tipe data angka bulat (INTEGER).
Sedangkan untuk kolom Tanggal Diresmikan bisa disimpan ke dalam tipe data tanggal (DATE).

 Candidate Key, Primary Key dan Foreign Key

Kekuatan dari relational database ada di kemampuan menggabungkan berbagai tabel. Untuk aplikasi
sederhana kadang ada yang hanya perlu satu tabel saja, tapi dalam kebanyakan aplikasi kita butuh
beberapa tabel.

Sebagai contoh, tabel sebelumnya berisi nama-nama provinsi. Bagaimana dengan daftar nama kota dan
kabupaten? Ini layak menjadi tabel kedua. Daftar kecamatan menjadi tabel ketiga, serta daftar kelurahan
menjadi tabel keempat. Tanpa pemisahan seperti ini, tabel kita menjadi sangat besar dan susah dikelola.

Setiap baris di dalam tabel setidaknya harus memiliki sebuah kolom unik. Unik disini maksudnya tidak
boleh ada data yang berulang (data yang sama). Kolom ID Prov, Nama Provinsi dan Ibu

Kota Provinsi adalah kolom yang unik. Sangat kecil kemungkinan (dan sepertinya tidak akan pernah ada)
terdapat nama provinsi dan nama ibu kota provinsi yang sama.

Kolom tabel yang memenuhi syarat ini (tidak memiliki data yang berulang), dikenal sebagai candidate
key (kunci kandidat).

Candidate key adalah satu atau beberapa kolom di dalam tabel yang bisa mengidentifikasi tiap baris dari
tabel tersebut. Selain tidak boleh ada data yang sama, kolom yang dikategorikan sebagai candidate key
juga tidak boleh memiliki data kosong.

Dalam sebuah tabel, bisa jadi terdapat beberapa candidate key. Dari daftar candidate key ini, dipilih salah
satu yang berfungsi sebagai primary key (kunci utama). Primary key adalah kolom yang akan menjadi
identitas dari setiap baris tabel.

Pemilihan kolom mana yang akan menjadi primary key bisa mempertimbangkan beberapa aspek, karena
inilah kolom yang akan berfungi sebagai penghubung satu tabel dengan tabel lain. Dalam tabel nama
provinsi sebelumnya, kolom ID Prov lebih cocok dijadikan sebagai primary key.

Bagaimana dengan kolom Nama Provinsi? Ini pun bisa dijadikan primary key, tergantung keputusan kita
mana yang dirasa paling pas selama syarat-syaratnya dipenuhi. Yakni tidak boleh ada data yang sama dan
tidak boleh kosong.

Istilah key berikutnya yakni foreign key. Foreign key (kunci tamu) adalah primary key dari tabel
lain yang berada di tabel saat ini. Untuk bisa memahaminya, saya akan tambah satu tabel lagi:
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Sekarang terdapat tambahan tabel baru yang berisi nama kota dan kabupaten. Dapatkah anda menebak
kota Cilegon itu berada di provinsi mana?

Perhatikan kolom ID Prov di sisi paling kanan tabel kota dan kabupaten. Untuk baris kota Cilegon, kolom
ID Prov bernilai 2. Sekarang, kita tinggal lihat di tabel provinsi, provinsi mana
yang juga memiliki ID Prov 2. Hasilnya adalah Banten.

Inilah mekanisme relasi di dalam relational database. Kolom ID Prov yang terdapat di tabel kota dan
kabupaten bertindak sebagai foreign key untuk tabel tersebut. Kemudian, kolom manakah yang menjadi
primary key dari tabel kota dan kabupaten? Yup, kolom ID Kota. Prinsip yang sama juga bisa digunakan
untuk membuat tabel kecamatan serta tabel kelurahan. Setiap tabel akan memiliki primary key dan juga
foreign key (apabila dibutuhkan).

e. Normalisasi Database
Normalisasi database (database normalization) adalah proses penyusunan kolom dan tabel untuk
meminimalkan redundansi data (data yang berulang). Normalisasi akan membagi tabel besar menjadi
beberapa tabel kecil yang saling terhubung. Hal ini dilakukan agar mudah dalam mengatur, serta
mengorganisasi data.

Materi tentang normalisasi database sebenarnya cukup penting. Karena disinilah akan dibahas bagaimana
cara mendesain struktur tabel untuk membuat database yang efisien.

f. Entity Relationship Diagram (ERD)


ERD (Entity Relationship Diagram) adalah sebuah diagram yang menggambarkan bagaimana struktur
design database yang akan dibuat. Dengan kata lain, ERD adalah blueprint dari database. Ibarat arsitek,
ERD merupakan gambar rumah yang akan dibangun.

Di dalam ERD bisa terlihat semua tabel yang menyusun suatu database, termasuk primary key masing-
masing tabel, foreign key, serta kolom apa saja yang tersedia di setiap tabel.

Sama seperti normalisasi database, teori seputar ERD juga tidak akan saya bahas dalam buku ini. Jika
anda tertarik, bisa cari buku yang khusus membahas teori database (kita hanya fokus ke praktek
penggunaan aplikasi database dengan MySQL).
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

g. Table Index
Di dalam database, index adalah sebuah struktur data yang diimplementasikan oleh RDBMS (seperti
MySQL) untuk mempercepat proses pembacaan data.

Untuk membuat index, kita tinggal memanggil perintah tertentu dan selesai. MySQL akan mengurus
sisanya.

Index menggunakan algoritma tertentu dan “menempel” ke sebuah kolom dari suatu tabel. Di dalam
MySQL, kolom yang ditetapkan sebagai primary key akan otomatis di-index.

Di dalam satu tabel, bisa saja terdapat beberapa kolom yang di index, bahkan semua kolom bisa di-index.
Pertanyaannya, jika index bisa mempercepat proses pembacaan, kenapa tidak semua kolom saja kita
index?

Index mempercepat proses pembacaan data namun memperlama proses perubahan dan penambahan data.
Ini karena untuk setiap data yang ditambah atau diubah, index harus ditulis ulang oleh MySQL. Lebih
jauh tentang index akan saya bahas kembali saat kita praktek dengan MySQL nanti.

h. Pengertian Structured Query Language (SQL)


SQL (Structured Query Language) adalah bahasa pemrograman khusus yang digunakan untuk
berkomunikasi dengan aplikasi RDBMS (seperti MySQL). Bahasa SQL terlihat seperti perintah
sederhana yang berisi instruksi dalam bahasa inggris, seperti "SELECT nama_provinsi, populasi FROM
provinsi".

Bahasa SQL yang akan kita praktekkan dalam buku ini tidak hanya dipakai oleh MySQL atau MariaDB
saja, tetapi juga oleh aplikasi RDBMS lain seperti Oracle, Microsoft SQL Server, PostgreSQL, dll.
Perintah SQL ini sering juga disingkat dengan sebutan ‘query’. Sekitar 90% dari materi yang akan kita
pelajari, berisi berbagai perintah bahasa SQL.

a) Jenis – jenis Perintah Bahasa SQL


Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Perintah atau instruksi dalam bahasa SQL dapat dikelompokkan berdasarkan jenis dan fungsinya.
Terdapat 3 kelompok perintah dasar SQL: Data Definition Language, Data Manipulation
Language dan Data Control Language.
 Data Definition Language (DDL) adalah jenis instruksi SQL yang berkaitan dengan pembuatan
struktur tabel dan database. Termasuk diantaranya CREATE, DROP, ALTER, dan RENAME.
 Data Manipulation Language (DML) adalah jenis instruksi SQL yang berkaitan dengan data yang ada
dalam tabel. Yakni bagaimana cara menginput data, menghapus data, update data serta membaca data
yang tersimpan di dalam database. Contoh perintah SQL untuk DML adalah SELECT, INSERT,
DELETE, dan UPDATE.
 Data Control Language (DCL) adalah jenis instruksi SQL yang berkaitan dengan manajemen hak
akses dan pengguna (user). Perintah ini digunakan untuk membatasi siapa saja yang dapat mengakses
database dan tabel. Perintah SQL yang termasuk ke dalam kategori DCL adalah GRANT dan
REVOKE.

Selain ketiga jenis perintah SQL diatas, terdapat juga 2 kategori tambahan: Transaction Control
Language, dan Programmatic SQL.
 Transaction Control Language (TCL) adalah perintah SQL untuk proses transaksi. Proses transaksi
ini pada dasarnya digunakan untuk membuat beberapa perintah query yang dianggap sebagai satu
kesatuan. Jika ada masalah, seluruh proses bisa dibatalkan. Termasuk ke dalam TCL adalah query
COMMIT, ROLLBACK, dan SET TRANSACTION.
 Programmatic SQL berkaitan dengan sub program (stored procedure) maupun penjelasan mengenai
struktur database (meta data table). Contoh perintah seperti adalah DECLARE, EXPLAIN,
PREPARE, dan DESCRIBE.

i. Instalasi XAMPP

XAMPP adalah salah satu aplikasi yang dikenal sebagai AMP Stack. AMP merupakan singkatan
dari Apache Web Server, MySQL Database Server, dan PHP. Dalam pengembangan web, ketiga
aplikasi ini sangat populer digunakan.

Di dalam XAMPP, sudah tersedia satu paket lengkap aplikasi pemrograman web, yang diwakili dari
namanya. X (berarti cross-platform, maksudnya tersedia dalam berbagai sistem operasi), Apache Web
Server, MySQL Database Server, PHP dan Perl. Tanpa menggunakan XAMPP, kita harus menginstall
setiap aplikasi secara terpisah.

Karena di dalam XAMPP sudah tersedia juga database MySQL, maka kita tidak perlu lagi menginstall
MySQL secara terpisah. Silahkan download XAMPP dari website resminya di apachefriends.org. Pada
halaman awal website apachefriends, terdapat judul besar: XAMPP - Apache + MariaDB + PHP + Perl.

Proses Instalasi
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Jendela awal instalasi akan muncul, klik saja tombol Next

Jendela berikutnya adalah “Select Component”. Pada bagian ini kita bisa memilih aplikasi apa
saja yang akan diinstall. Dalam tahap ini saya membiarkan semua pilihan. Klik tombol Next
untuk melanjutkan.

Pada jendela “Installation Folder” kita bisa menentukan folder tempat file XAMPP akan diinstall. Secara
default, lokasinya di C:\xampp, anda bebas jika ingin mengubahnya. Sebagai contoh, jika anda ingin
menginstall beberapa aplikasi XAMPP, bisa memisahkannya di folder yang berbeda, seperti C:\xampp_7
untuk XAMPP 7 dan C:\xampp_5 untuk XAMPP 5.6
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Tampilan berikutnya adalah jendela “Bitnami for XAMPP”. Bitnami adalah aplikasi AMP stack
yang juga menjadi sponsor XAMPP. Saat ini kita tidak memerlukannya. Hapus pilihan “learn
more about Bitnami for XAMPP”, kemudian klik tombol Next.

Jendela “Ready to Install” berisi konfirmasi untuk mulai menginstall XAMPP. Langsung saja
klik tombol Next dan XAMPP akan memulai proses instalasi.
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Jika jendela “Completing the XAMPP Setup Wizard” telah tampil, berarti proses instalasi XAMPP sudah selesai.
Pada bagian ini kita akan langsung mencoba aplikasi XAMPP, sehingga biarkan pilihan check list “Do you want
to start the Control Panel now? ”, kemudian klik tombol Finish.

Jika anda membiarkan pilihan “Do you want to start the Control Panel now? ” pada jendela terakhir proses instalasi
XAMPP, akan tampil jendela XAMPP Control Panel.

Sesuai dengan namanya, jendela XAMPP Control Panel adalah jendela yang digunakan untuk mengontrol apa
saja modul XAMPP yang akan atau sedang berjalan. Jika jendela ini tidak tampil, anda bisa mengaksesnya dari
menu START->All Programs->XAMPP->XAMPP Control Panel.

Untuk menguji instalasi XAMPP, silahkan klik tombol START pada modul Apache dan MySQL. Jika tidak ada
masalah, akan tampil warna hijau pada kolom module, seperti gambar berikut:

Tombol START akan berubah menjadi tombol STOP. Tombol stop digunakan untuk mematikan Apache web
server dan MySQL database server. Untuk mengujinya, silahkan buka web browser dan ketik alamat
http://localhost di address bar, kemudian tekan enter. Jika yang tampil adalah jendela pembuka XAMPP, maka
semuanya telah terinstall dengan baik.

j. Proses Instalasi Client – Server MySQL


Dalam operasionalnya, MySQL menggunakan konsep arsitektur client-server. Arsitektur ini mirip seperti yang
ada pada web browser dan web server.
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Salah satu komputer bertindak sebagai server. Di dalam server inilah seluruh database MySQL disimpan.
Kemudian komputer lain berperan sebagai client. Client berinteraksi dengan server agar bisa mengakses
database. Jumlah client yang mengakses server bisa 1 komputer, 100, atau bahkan 1000 komputer pada saat
yang bersamaan.

Sepanjang praktek dalam buku ini, kita akan menjalankan kedua proses ini dalam satu komputer
saja. Sehingga di dalam komputer yang sama akan terdapat MySQL server, sekaligus MySQL
client yang jalan bersamaan.

k. Menjalankan MySQL Server (mysqld.exe)


Untuk menjalankan MySQL server, kita harus mengakses file mysqld.exe yang berada di folder bin. Akhiran
“d” dari mysqld.exe berarti “daemon”, suatu istilah dalam sistem UNIX untuk aplikasi yang terus berjalan di
background.

Terdapat beberapa cara menjalankan mysqld.exe. Jika anda menggunakan XAMPP, tinggal klik
tombol Start pada baris MySQL dari XAMPP Control Panel.

Menghentikan MySQL server bawaan XAMMP juga cukup mudah, tinggal klik tombol Stop dari
XAMPP Control Panel.
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

l. Menjalankan MySQL Client


MySQL client digunakan untuk berkomunikasi dengan MySQL server. MySQL client hadir
dengan berbagai bentuk. Ada yang diakses dari cmd, berbasis web, maupun yang berbasis
aplikasi desktop.

XAMPP menyediakan halaman phpMyAdmin sebagai MySQL client. phpMyAdmin adalah


bentuk MySQL client yang berbasis web. Jika anda menginstall MySQL secara terpisah, ada
pilihan untuk menginstall aplikasi MySQL Workbench, ini adalah MySQL client yang berbentuk
aplikasi desktop.

MySQL client yang paling sederhana (dan yang akan saya pakai sepanjang buku ini) adalah
berbasis cmd (command prompt). Dimana kita mengetik perintah-perintah SQL secara manual
untuk berkomunikasi dengan MySQL server.

Jika penulisannya benar, akan tampil teks “welcome” dari MariaDB:

m. Query dalam Database

DDL (Data Definition Language)


 Membuat dan Menghapus Database
Untuk membuat database, format penulisan querynya adalah sebagai berikut:

 Melihat Database yang telah dibuat


Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

 Menggunakan suatu database / Memilih database

 Membuat Table

Contoh :

 Melihat Table dari suatu database

 Melihat Struktur Table

 Mengahapus Table
DROP TABLE nama_table;
contoh

 Cara Merubah Tabel MySQL (ALTER TABLE)


ALTER TABLE untuk mengubah struktur tabel MySQL

 Cara Merubah Tipe Data Kolom MySQL

ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru;

 Cara Merubah Nama Kolom Tabel MySQL


Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

ALTER TABLE nama_tabel CHANGE nama_kolom nama_kolom_baru tipe_data;

 Cara Merubah Nama Tabel MySQL

ALTER TABLE nama_tabel_lama RENAME TO nama_tabel_baru;

 Cara Menambahkan Kolom Baru pada Tabel MySQL

ALTER TABLE nama_tabel ADD nama_kolom_baru tipe_data;

 Cara Menghapus Kolom Tabel MySQL

ALTER TABLE nama_tabel DROP nama_kolom;

 Cara Merubah Tipe Data Table (Table Engine) MySQL

ALTER TABLE nama_tabel ENGINE = tipe_tabel;

DML (Data Manipulation Language)

 Menambahkan Data ke Table

Contoh:

 Mengubah Data Table


Ada saatnya kita ingin mengkoreksi data yang salah atau ingin meng-update data lama. Untuk
keperluan mengubah data yang sudah ada di tabel, tersedia query UPDATE.
Berikut format dasar query UPDATE MySQL:

Contoh :

 Menghapus Data Table


Untuk menghapus data yang ada di dalam sebuah tabel, tersedia query DELETE. Berikut format
dasarnya:
Jobsheet Praktikum Basis Data SMK SEMEN GRESIK

Contoh:

 Menyeleksi Data Table


Lebih lengkapnya dijelaskan dalam jobsheet Statement Select

Sumber : Pratama, Andi. 2017. MySQL Uncover: Panduan Belajar MySQL dan MariaDB untuk Pemula.
Jakarta : Duniailkom

Anda mungkin juga menyukai