Anda di halaman 1dari 50

PRAKTIKUM BASIS DATA

MODUL 1
Pembuatan dan Pengolahan
Basis Data

Teknik Industri
Institut Teknologi Sumatera
Praktikum Sistem Basis Data | MODUL 1

Praktikum Sistem Basis Data

PART A
Membuat Basis Data Sederhana
Praktikum Sistem Basis Data | MODUL 1


We are
changing the
world with
technology. “
(Bill Gates)

:)
Praktikum Sistem Basis Data | MODUL 1

Daftar Isi
Tujuan Praktikum........................................................................................................................................................ 5
Tujuan ....................................................................................................................................................................... 5
Kompetensi ............................................................................................................................................................. 5
Kata Penting ................................................................................................................................................................ 5
1 Pendahuluan ...................................................................................................................................................... 6
1.1 Relational Database Management System (RDMS) ............................................................................ 6
1.2 Query dan Perintah SQL ........................................................................................................................ 6
1.3 Mengelola Data dalam RDBMS ........................................................................................................... 6
1.4 Hubungan Antara Tabel ........................................................................................................................ 8
1.5 Tipe Data .................................................................................................................................................... 9
1.6 SQL Statement Rules ............................................................................................................................ 12
2 Memulai Program SQL Server 2012 Express ............................................................................................13
3 Membuat, Memodifikasi, dan Menghapus Tabel ...................................................................................15
3.1 Membuat Basis data ............................................................................................................................. 15
3.2 Membuat Tabel ...................................................................................................................................... 15
3.3 Memodifikasi Tabel ............................................................................................................................... 17
3.4 Menghapus Tabel ..................................................................................................................................20
4 Manipulasi Data dalam SQL..........................................................................................................................21
4.1 Menyisipkan (INSERT) ........................................................................................................................... 21
4.2 Memodifikasi (UPDATE) .......................................................................................................................23
4.3 Menghapus (DELETE) ...........................................................................................................................23
5 Menampilkan Data ......................................................................................................................................... 24
Praktikum Sistem Basis Data | MODUL 1
Praktikum Sistem Basis Data | MODUL 1

Tujuan Praktikum
Tujuan
Membuat basis data sederhana menggunakan Software Relational Database Management System
(RDBMS)

Kompetensi
Pada praktikum ini Anda akan diharapkan untuk menguasai poin-poin berikut ini. *)

1. Memahami penggunaan Relational Database Management System (RDBMS) Microsoft


SQL 2012
2. Mampu membuat Entity Relationship Diagram (ERD) sebagai dasar pembuatan basis
data
3. Memahami jenis-jenis tipe data pada RDBMS
4. Mampu mengolah data dalam RDBMS melalui penggunaan query
-------------------------------------------------------------------------------------
*) beri tanda ✓ pada kotak di samping jika Anda sudah menguasai.

Kata Penting
Query Variabel Database Tipe Data Table Record NULL NOT NULL Select
ERD Select Insert Update Delete Drop
Entitas Relasi Atribut Create Alter

Rename Primary Key Foreign Key

Selamat Belajar! Semangat !


Praktikum Sistem Basis Data | MODUL 1

1 Pendahuluan
Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer
yang dapat diolah dan dimanipulasi untuk menghasilkan suatu informasi yang berguna atau dalam
definisi lainnya berarti kumpulan data yang saling berkaitan yang membentuk suatu bangunan data
yang dapat dijadikan informasi pada instansi tertentu. Contoh penggunaan basis data dalam
kehidupan sehari-hari yaitu pendafaran kelas yang dilakukan oleh mahasiswa. Pada pendaftaran
kelas akan ada data-data terkait yang menjelaskan tentang mahasiswa, kelas, serta tentang
pendaftaran kelas oleh mahasiswa. Basis data akan berguna dalam menghubungkan ketiga data ini
jika kita ingin mengetahui mahasiswa A mendaftar kelas apa, pada jam berapa dan tanggal berapa
ia mendaftar, serta jumlah pendaftar untuk setiap kelas.

1.1 Relational Database Management System (RDMS)


Dalam merancang suatu basis data, Anda perlu mengenal diagram ERD (entity relationship
diagram). Pada modul praktikum kali ini, Anda akan belajar bagaimana mengimplementasikan
rancangan basis data yang sudah dibuat dalam diagram ERD, dengan membangun basis data hasil
rancangan ke dalam sebuah software. Software yang akan kita gunakan untuk membangun basis
data adalah software RDBMS (Relational Database Management System). Di pasaran, software
RDBMS yang populer digunakan misalnya Microsoft Access, Microsoft SQL Server, Oracle Database,
dan MySQL. Pada praktikum mata kuliah ini, kita akan menggunakan Microsoft SQL Server 2012
Express Edition sebagai software yang akan kita gunakan untuk mengimplementasikan rancangan
basis data.

1.2 Query dan Perintah SQL


Dalam mengimplementasikan suatu basis data dengan menggunakan software RDMBS, Anda akan
berkutat dengan bagaimana membuat entitas dalam bentuk tabel, mendefinisikan atribut entitas
(column), menambahkan data (record) ke tabel, menghapus record, dan meng-update record.
Aktivitas pembuatan dan pengolahan data ini dilakukan melalui query (dalam bahasa Inggris artinya
permintaan atau pertanyaan). Query ini berwujud sebagai kumpulan syntax-syntax yang isinya
perintah-perintah untuk membuat basis data baru dan/atau mengolah basis data yang sudah ada.
Pada praktikum ini, kita akan menggunakan bahasa SQL sebagai query.

1.3 Mengelola Data dalam RDBMS


• SQL (Structured Query Language) adalah bahasa pemrograman yang dirancang khusus
untuk mengelola data dalam Relational Database Management System (RDBMS) (Beaulieu,
2009). Dalam RDBMS data direpresentasikan dalam bentuk tabel dan relasi. SQL merupakan
bahasa “permintaan", yaitu permintaan untuk membuat, menghapus, mengubah, dan
mengolah data pada RDBMS.
• SQL berbeda dengan bahasa pemrograman yang kita gunakan pada saat kita membuat
program di C++. Kita menggunakan C++ untuk membuat suatu program yang dieksekusi
kapan saja dan dapat dieksekusi berulang-ulang ketika dibutuhkan, sedangkan SQL
hanyalah kumpulan perintah yang digunakan untuk memanipulasi data saja, bukan untuk
membuat program “berwujud” seperti di C++, Efek dari perintah SQL juga bersifat
permanen, sehingga kadang suatu perintah tidak bisa di- eksekusi lebih dari 1 kali, misalnya
perintah untuk membuat tabel.
Praktikum Sistem Basis Data | MODUL 1

• SQL Server tidak mengizinkan kita untuk membuat 2 tabel dengan nama yang sama. Ketika
perintah untuk membuat sebuah tabel sudah di-eksekusi, maka kita tidak dapat
mengeksekusinya perintah yang sama untuk kedua kalinya karena tabel sudah pernah
dibuat. Jadi, berhati-hatilah ketika mengetikkan perintah SQL.
• Dalam konsep basis data, sebuah entitas memiliki banyak atribut yang mendeskripsikan
entitas tersebut. Dalam SQL Server, sebuah entitas direpresentasikan ke dalam suatu tabel
dan atribut- atributnya direpresentasikan ke kolom-kolom dari tabel tersebut. Data yang
ada pada tabel tersebut, kita sebut sebagai record.
• Sebuah tabel dapat berisikan satu kolom atau lebih. Sebuah kolom memiliki nama kolom
dan tipe data tertentu. Struktur dari tabel disebut dengan relation schema dan didefinisikan
melalui atribut-atributnya. Jadi setiap informasi yang akan disimpan harus sesuai dengan
tipe data atribut pada saat pertama kali dibuat.
• Sebuah tabel yang akan dibuat dalam SQL harus berdasarkan pada ERD. ERD menjelaskan
hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang
mempunyai hubungan antar relasi. ERD inilah yang membantu kita dalam merancang basis
data yang akan kita buat pada SQL Server.

Sekedar mengingat kembali, dalam ERD, terdapat 3 komponen dasar, yaitu:

Notasi Keterangan

Entitas, merupakan objek yang mewakili


sesuatu yang nyata dan dapat dibedakan dari
sesuatu yang lain. Dalam SQL Server, entitas
direpresentasikan ke dalam tabel.

Atribut, yaitu elemen dari entitas yang


mempunyai fungsi untuk mendeskripsikan
karakteristik dari entitas tersebut. Isi dari atribut
mempunyai sesuatu yang dapat
mengidentifikasikan isi elemen satu dengan
yang lain. Dalam SQL Server, sebuah atribut
direpresentasikan ke dalam suatu kolom.

Relasi, yaitu hubungan antara sejumlah entitas


yang berasal dari himpunan entitas yang
berbeda.
Praktikum Sistem Basis Data | MODUL 1

Berikut merupakan contoh dari ERD Pendaftaran Kelas:

ID_Pendaftaran
ID_Mahasiswa Biaya ID_Kelas (PK)
(PK)
Nama (PK)
Nama_Matkul

Mahasiswa 1 M Pendaftaran M 1 Kelas

Nama_Dosen
Waktu_daftar
Alamat
ID_Kelas (FK)
No_Telepon Kuota
ID_Pendaftaran (FK)

1.4 Hubungan Antara Tabel


1.4.1 Primary dan Foreign Key
Key dalam basis data merupakan suatu cara untuk mengidentifikasi dan menghubungkan satu tabel
data dengan tabel yang lain. Terdapat enam macam key dalam SQL, namun dalam praktikum ini
hanya dipelajari dua macam key saja yaitu:

❖ Primary Key
Merupakan suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris
dalam tabel. Nilai ini bersifat unik untuk setiap record. Dalam satu tabel, anda tidak dapat
menambahkan 2 record dengan primary key yang sama.

❖ Foreign Key
Merupakan key yang menghubungkan antara dua tabel. Foreign key adalah atribut dalam
satu tabel yang mengacu pada primary key didalam tabel lainnya.

Pada contoh sebelumnya, pada tabel Mahasiswa yang akan menjadi primary key adalah
ID_Mahasiswa, sedangkan pada tabel Kelas yang menjadi primary key adalah ID_Kelas.
ID_Mahasiswa dan ID_Kelas akan menjadi foreign key pada tabel Pendaftaran.

1.4.2 Jenis-Jenis Hubungan Antara Tabel dan Normalisasi


Dalam kasus pendaftaran kelas pada contoh sebelumnya, kita asumsikan bahwa satu mahasiswa
dapat mendaftar lebih dari satu kelas dan lebih dari satu mahasiswa dapat mendaftar pada satu
kelas. Maka bila dibuat ERD-nya akan menjadi seperti :

M M
Mahasiswa Mendaftar Kelas

Hubungan antara tabel Mahasiswa dengan tabel Kelas menjadi Many-to-Many (M-M). Relasi ini
terjadi pada tabel Mahasiswa dan tabel Kelas. Relasi M-M pada ERD harus disederhanakan menjadi
Praktikum Sistem Basis Data | MODUL 1

M-1 dengan menambahkan tabel yang menghubungkan aktivitas yang terjadi di antara mahasiswa
dan kelas. Maka dapat dikatakan adanya aktivitas pendaftaran dan sebaiknya dibuat rekap datanya
dalam bentuk tabel. Maka ERD yang telah dinormalisasikan menjadi sebagai berikut:

1 M M 1
Mahasiswa Pendaftaran Kelas

Hubungan antara ketiga entitas menjadi seperti berikut:

▪ Satu mahasiswa (1) dapat melakukan banyak pendaftaran (M), namun setiap pendaftaran
hanya terdapat satu kelas. Jika mahasiswa ingin mendaftar banyak kelas, maka ia harus
melakukan beberapa kali pendaftaran.
▪ Satu kelas (1) bisa terdiri dari beberapa pendaftaran (M).

Setelah penambahan tabel pendaftaran, maka di antara tabel mahasiswa dan tabel pendaftaran
dan tabel pendaftaran dengan tabel kelas ada relasi. Kedua relasi ini diwujudkan dalam foreign key.
ID_Mahasiswa pada tabel Pendaftaran menjadi foreign key yang menghubungkan tabel Mahasiswa
dengan tabel Pendaftaran dan ID_Kelas pada tabel Pendaftaran menjadi foreign key yang
menghubungkan tabel Pendaftaran dengan tabel Kelas.

1.5 Tipe Data


Dalam mendefinisikan kolom, terdapat beberapa tipe data yang digunakan. Sebuah tabel dapat
terdiri dari banyak kolom dengan berbagai tipe data. Berikut adalah beberapa contoh tipe data
yang dikenal oleh Microsoft SQL Server.

1.5.1 Numbering Numerics


63 63
1. BIGINT, angka dengan jangkauan nilai dari -2 (- 9,223,372,036,854,775,808) sampai 2 - 1
(9,223,372,036,854,775,807) dan membutuhkan tempat penyimpanan 8 byte.

31 31
2. INT, angka dengan jangkauan nilai dari -2 (-2,147,483,648) sampai 2 - 1 (2,147,483,647) dan
membutuhkan tempat penyimpanan 4 byte.

15 15
3. SMALLINT, angka dengan jangkauan nilai dari -2 (-32,768) sampai 2 - 1 (32,767) dan
membutuhkan tempat penyimpanan 2 byte.

4. TINYINT, angka dengan jangkauan nilai dari 0 sampai 255 dan membutuhkan tempat
penyimpanan 1 byte.

5. BIT, angka dengan jangkauan nilai dari 0 sampai 1 dan membutuhkan tempat penyimpanan 1
byte untuk tabel yang berisi 8 baris dan seterusnya.

6. DECIMAL [(p[, s])] dan NUMERIC [(p[, s])], presisi dan angka skala yang tetap dengan jangkauan
nilai dari -1038 + 1 sampai 1038 – 1 membutuhkan tempat penyimpanan dari 5 sampai 17 byte.

7. p (presisi), total angka maksimum dari digit desimal yang dapat disimpan di sisi kiri dan kanan
Praktikum Sistem Basis Data | MODUL 1

tanda desimal. Jangkauan nilai presisi adalah mulai dari 1 sampai 38, dengan nilai default 18.
8. s (skala), angka maksimum dari digit desimal yang dapat disimpan di sebelah kanan tanda
\desimal dengan jangkauan nilai dari 0 sampai p, dengan nilai default 0 sehingga 0 <= s <= p.
Skala hanya dapat didefinisikan jika p sudah didefinisikan.

9. MONEY, angka mata uang dengan jangkauan nilai dari -922,337,203,685,477.5808 sampai
922,337,203,685,477.5807 dan membutuhkan tempat penyimpanan 8 byte.

10. SMALLMONEY, angka mata uang dengan jangkauan nilai dari -214,748.3648 to 214,748.3647
dan membutuhkan tempat penyimpanan 4 byte.

1.5.2 Approximate Numerics


1. FLOAT(n), angka aproksimasi dengan jangkauan nilai dari -1.79E+38 sampai -2.23E-38, 0 dan
2.23E-38 sampai 1.79E+38 dan membutuhkan tempat penyimpanan dari 4 dan 8 byte. Nilai n
memiliki jangkauan dari 1 sampai 53.

2. REAL, angka aproksimasi dengan jangkauan nilai dari -1.18E-38, 0, dan 1.18E-38 sampai 3.40E+38
dan membutuhkan tempat penyimpanan 4 byte.

1.5.3 Date and Time


1. DATE, tanggal dengan jangkauan nilai dari 1 Januari 0001 sampai 31 Desember 9999 dan memiliki
presisi 1 hari. Input data berbentuk DATE dilakukan dengan format YYYY-MM-DD.

2. DATETIME, tanggal dan waktu dengan jangkauan nilai dari 1 Januari 1753 sampai 31 Desember
9999 dan memiliki presisi 3.33 milidetik. Input data berbentuk DATETIME dilakukan dengan
format YYYY-MM-DD HH:MI:SS.

3. SMALLDATETIME, tanggal dan waktu dengan jangkauan nilai dari 1 Januari 1900 sampai 6 Juni
2079 dan memiliki presisi 1 menit. Input data berbentuk SMALLDATETIME dilakukan dengan
format YYYY-MM-DD HH:MI:SS.

1.5.4 Character Strings


1. CHAR (n), karakter non-Unicode yang panjangnya bersifat tetap terhadap kapasitas
penyimpanan yang didefinisikan oleh n dan membutuhkan tempat penyimpanan sebesar n byte.
Nilai n memiliki jangkauan dari 1 sampai 8,000.

2. VARCHAR (n atau max), karakter non-Unicode yang panjangnya bersifat variabel terhadap
kapasitas penyimpanan yang didefinisikan oleh n dan membutuhkan tempat penyimpanan
sebesar [jumlah karakter yang disimpan + 2] byte. Nilai n memiliki jangkauan dari 1 sampai 8,000
dan max bernilai 231 – 1 byte.

3. TEXT, karakter non-Unicode yang panjangnya bersifat variabel dengan jumlah karakter
maksimum sebesar 231 - 1 (2,147,483,647) dan membutuhkan tempat penyimpanan sebesar
[jumlah karakter yang disimpan] byte.

1.5.5 Unicode Character Strings


1. NCHAR, karakter Unicode yang panjangnya bersifat tetap terhadap kapasitas penyimpanan yang
Praktikum Sistem Basis Data | MODUL 1

didefinisikan oleh n dan membutuhkan tempat penyimpanan sebesar 2 kali n byte. Nilai n
memiliki jangkauan dari 1 sampai 4,000.

2. NVARCHAR (n atau max), karakter Unicode yang panjangnya bersifat variabel terhadap kapasitas
penyimpanan yang didefinisikan oleh n dan membutuhkan tempat penyimpanan sebesar 2 kali
jumlah karakter yang disimpan + 2 byte. Nilai n memiliki jangkauan dari 1 sampai 4,000 dan max
bernilai 230 – 1 byte.

3. NTEXT, karakter Unicode yang panjangnya bersifat variabel dengan jumlah karakter maksimum
sebesar 230 - 1 (1,073,741,823) dan membutuhkan tempat penyimpanan sebesar [2 kali jumlah
karakter yang disimpan] byte.

1.5.6 Binary Strings


1. BINARY (n), data biner yang panjangnya bersifat tetap terhadap kapasitas penyimpanan yang
didefinisikan oleh n dan membutuhkan tempat penyimpanan sebesar n byte. Nilai n memiliki
jangkauan dari 1 sampai 8,000.

2. VARBINARY (n atau max), data biner yang panjangnya bersifat variabel terhadap kapasitas
penyimpanan yang didefinisikan oleh n dan membutuhkan tempat penyimpanan sebesar
[jumlah data yang disimpan + 2] byte. Nilai n memiliki jangkauan dari 1 sampai 8,000 dan max
bernilai 231 – 1 byte.

3. IMAGE, data biner yang panjangnya bersifat variabel dengan jumlah data maksimum sebesar 231
- 1 (2,147,483,647) dan membutuhkan tempat penyimpanan sebesar [jumlah karakter yang
disimpan] byte.

1.5.7 Tipe Data Lain


1. TIMESTAMP, angka biner yang unik, yang secara otomatis dihasilkan ketika terjadi perubahaan
dalam suatu row pada suatu tabel dan membutuhkan tempat penyimpanam sebesar 8 byte.

2. UNIQUEIDENTIFIER, data globally unique indentifier (GUID) yang membutuhkan tempat


penyimpanan sebesar 16 byte. Contoh: 6F9619FF-8B86-D011-B42D-00C04FC964FF.
Praktikum Sistem Basis Data | MODUL 1

1.6 SQL Statement Rules


Dalam SQL, terdapat 8 perintah dasar yang sering digunakan dalam memanipulasi basis data.
SQL STATEMENTS
CREATE
ALTER
Data Definition Language
DROP
RENAME
SELECT Data Retrieval
INSERT
Data Manipulation
UPDATE
Language
DELETE

Catatan:

• SQL Statement tidak bergantung pada huruf besar atau kecil, yang terpenting adalah
konsisten dalam penulisannya. Konvensi yang disepakati adalah keyword menggunakan
UPPER CASE dan nama-nama tabel/kolom menggunakan Pascal Case.
• SQL Statement dapat terdiri dari lebih dari satu baris, dan harus diakhiri tanda titik koma (;).
• Tabulasi dan indentasi digunakan untuk memudahkan pembacaan.
• Setiap query yang sudah dimasukkan tidak dapat di-undo.
Praktikum Sistem Basis Data | MODUL 1

2 Memulai Program SQL Server 2012 Express


• jika Anda menggunakan Windows XP/Vista/7/10, pada start menu cari Microsoft SQL Server
2012, lalu klik SQL Server Management Studio.
• Jika Anda menggunakan Windows 8, buka Start Sreen. Ketik “SQL” lalu klik SQL Server
Management Studio.

Tampilan Program:
Praktikum Sistem Basis Data | MODUL 1

• Isi “server name” dengan Nama PC Anda, diikuti tanda “ \ “ , lalu diikuti “SQLEXPRESS”.
Kemudian klik Connect. Jika koneksi server berhasil, maka di Object Explorer akan muncul
tampilan berikut:

Microsoft SQL Server 2012 siap digunakan.

• klik “New Query” untuk memulai menulis syntax pada Microsoft SQL Server 2012. Seperti
tampilan di bawah ini:

• Setelah itu, Anda bisa menuliskan syntax pada Microsoft SQL Server 2012 ini. Setelah
menuliskan syntax, jangan lupa untuk meng-execute dengan menekan tombol F5. Setiap
menulis syntax, Anda harus menekan tombol F5 untuk meng-execute syntax tersebut.
Praktikum Sistem Basis Data | MODUL 1

3 Membuat, Memodifikasi, dan Menghapus Tabel


3.1 Membuat Basis data
Perintah SQL untuk membuat basis data baru adalah:

CREATE DATABASE <database_name>;

Sebagai contoh:

CREATE DATABASE Pendaftaran_Kelas;

3.2 Membuat Tabel


Perintah SQL untuk membuat suatu tabel baru yang kosong adalah sebagai berikut:

CREATE TABLE <Table_name>

<column_name 1> <data_type> [NULL/NOT NULL],

......,

<column_name n> <data_type> [NULL/NOT NULL]

);

Catatan:

• Untuk setiap kolom, nama kolom dan tipe data harus ditentukan dan setiap nama kolom
harus unik.

• Definisi kolom dipisahkan dengan tanda koma.

• Tidak ada perbedaan huruf besar maupun huruf kecil dalam pemberian nama. Penggunaan

perbedaan huruf besar kecil hanya pada operasi pembanding string.

• Jika kondisi NOT NULL tidak ditentukan untuk sebuah kolom, maka nilai atribut null
diperbolehkan dan dua buah record yang memiliki nilai atribut null untuk kolom tersebut
tidak melanggar konstrain.

• Jika nama kolom atau nama tabel tidak menggunakan spasi, nama ditulis langsung apa

adanya. Contoh: ID_Mahasiswa

• Jika nama kolom atau nama tabel memakai spasi, nama kolom harus diapit oleh tanda “[“
dan “]”. Contoh: [ID Mahasiswa]
Praktikum Sistem Basis Data | MODUL 1

Bentuk dasar tabel yang dibuat pada SQL Server adalah sebagai berikut:

NAMA TABEL
Kolom 1 Kolom 2 Kolom 3 ......... Kolom n
Isi Kolom Isi Kolom Isi Kolom Isi Kolom Isi Kolom

Sebagai contoh:

1) Tabel Mahasiswa
Membuat tabel Mahasiswa dengan spesifikasi kolom-kolom sebagai berikut:
Nama Kolom Tipe Allow Nulls
ID_Mahasiswa NVARCHAR(10) No
Nama NVARCHAR(30) No
Alamat NVARCHAR(30) No
No_Telepon INT Yes

CREATE TABLE Mahasiswa

ID_Mahasiswa NVARCHAR (10) NOT NULL,

Nama NVARCHAR (30) NOT NULL,

Alamat NVARCHAR (30) NOT NULL,

No_Telepon NVARCHAR (15) NULL

);

2) Tabel Kelas
Membuat tabel Kelas dengan spesifikasi kolom-kolom sebagai berikut:
Nama Kolom Tipe Allow Nulls
ID_Kelas NVARCHAR(10) No
Nama_Matkul NVARCHAR(30) No
Nama_Dosen NVARCHAR(30) No
Kuota INT No

CREATE TABLE Kelas

ID_Kelas NVARCHAR (10) NOT NULL,

Nama_Matkul NVARCHAR (30) NOT NULL,

Nama_Dosen NVARCHAR (30) NOT NULL,

Kuota INT NOT NULL

);
Praktikum Sistem Basis Data | MODUL 1

3) Tabel Pendaftaran
Membuat tabel Pendaftaran dengan spesifikasi kolom-kolom sebagai berikut:
Nama Kolom Tipe Allow Nulls
ID_Pendaftaran NVARCHAR(10) No
ID_Mahasiswa NVARCHAR(10) No
ID_Kelas NVARCHAR(10) No
Biaya NVARCHAR(20) No
Waktu_Daftar DATETIME No

CREATE TABLE Pendaftaran

ID_Pendaftaran NVARCHAR (10) NOT NULL,

ID_Mahasiswa NVARCHAR (10) NOT NULL,

ID_Kelas NVARCHAR (10) NOT NULL,

Biaya NVARCHAR (20) NOT NULL,

Waktu_Daftar DATETIME NOT NULL

);

Apabila primary dan foreign key sudah didefinisikan saat membuat tabel, maka query yang
digunakan sebagai berikut:

CREATE TABLE Pendaftaran

ID_Pendaftaran NVARCHAR (10) NOT NULL,

ID_Mahasiswa NVARCHAR (10) NOT NULL,

ID_Kelas NVARCHAR (10) NOT NULL,

Biaya NVARCHAR (20) NOT NULL,

Waktu_Daftar DATETIME NOT NULL,

primary key (ID_Pendaftaran),

foreign key (ID_Mahasiswa)references Mahasiswa,

foreign key (ID_Kelas)references Kelas,

);

3.3 Memodifikasi Tabel


Modifikasi tabel seperti mengubah tipe data kolom, menambah kolom, menambah constraint
primary key dan foreign key dimungkinkan dalam SQL. Perintah yang digunakan adalah ALTER
TABEL.
Praktikum Sistem Basis Data | MODUL 1

3.3.1 Menambahkan Kolom


Perintah SQL untuk menambahkan kolom adalah:

ALTER TABLE <table_name>

ADD <column_name> <column_data_type>;

Contoh : Tambahkan kolom Keterangan pada tabel Mahasiswa.

ALTER TABLE Mahasiswa

ADD Keterangan NVARCHAR(50);

Query di atas akan mengubah tabel Mahasiswa dengan menambah kolom baru yakni kolom
Keterangan dengan tipe nvarchar (256 karakter).

Catatan :

• Kolom yang baru ditambahkan tidak boleh memiliki tipe data NOT NULL.
• Penggunaan syntax penambahan kolom di atas akan menambahkan kolom sebagai
kolom terakhir.

3.3.2 Menambahkan Primary Key


Perintah SQL untuk menambahkan konstrain primary key adalah:

ALTER TABLE <table_name>

ADD CONSTRAINT <constraint_name> PRIMARY KEY


<(column_constraint)>;

Contoh : Tambahkan konstrain primary key bernama PK_ID_Mahasiswa untuk kolom


ID_Mahasiswa pada tabel Mahasiswa.
ALTER TABLE Mahasiswa

ADD CONSTRAINT PK_ID_Mahasiswa PRIMARY KEY (ID_Mahasiswa);

Query di atas akan mengubah tabel Mahasiswa dengan menambahkan konstrain


PK_ID_Mahasiswa berjenis primary key untuk kolom ID_Mahasiswa.

3.3.3 Menambahkan Foreign Key


Perintah SQL untuk menambahkan Konstrain foreign key adalah:

ALTER TABLE <table_name>

ADD CONSTRAINT <constraint_name> FOREIGN KEY


<(column_constraint)> REFERENCES <table_reference>;

Contoh : Tambahkan konstrain foreign key bernama FK_ID_Mahasiswa pada tabel Pendaftaran.
foreign key tersebut adalah kolom ID_Mahasiswa dari tabel Mahasiswa.
Praktikum Sistem Basis Data | MODUL 1

ALTER TABLE Pendaftaran

ADD CONSTRAINT FK_ID_Mahasiswa FOREIGN KEY (ID_Mahasiswa)


REFERENCES Mahasiswa;

Query di atas akan mengubah tabel Pendaftaran dengan menambahkan konstrain


FK_ID_Mahasiswa berjenis foreign key untuk kolom ID_Mahasiswa yang akan dihubungkan dengan
tabel Mahasiswa.

3.3.4 Memodifikasi Konstrain


Perintah SQL untuk memodifikasi konstrain yang semula bernilai NULL menjadi NOT NULL adalah
:
ALTER TABLE <table_name>

ALTER COLUMN <column_name> <column_data_type> NOT NULL;

Contoh : Modifikasi kolom keterangan pada tabel Mahasiswa yang sebelumnya memiliki konstrain
NULL menjadi NOT NULL.

ALTER TABLE Mahasiswa

ALTER COLUMN Keterangan NVARCHAR(50) NOT NULL;

Query di atas akan mengubah tabel Mahasiswa dengan memodifikasi kolom Keterangan dengan
tipe data NVARCHAR(50) dan konstrain NOT NULL.

3.3.5 Menghapus Kolom


Perintah SQL untuk menghapus kolom adalah:

ALTER TABLE <table_name>

DROP COLUMN <column_name>;

Contoh : Hapus kolom Keterangan dari tabel Mahasiswa.

ALTER TABLE Mahasiswa

DROP COLUMN Keterangan;

Query di atas akan mengubah tabel Mahasiswa dengan menghapus kolom Keterangan.

3.3.6 Menghapus Konstrain


• Perintah SQL untuk menghapus konstrain primary key adalah:

ALTER TABLE <table_name>

DROP CONSTRAINT <column_name>;

Contoh : Hapus konstrain primary key pada tabel Mahasiswa.

ALTER TABLE Mahasiswa

DROP CONSTRAINT PK_ID_Mahasiswa;


Praktikum Sistem Basis Data | MODUL 1

Query di atas akan mengubah tabel Mahasiswa dengan menghapus konstrain primary key
yang bernama PK_ID_Mahasiswa.

• Perintah SQL untuk menghapus konstrain foreign key adalah:


ALTER TABLE <table_name>

DROP CONSTRAINT <column_name>;

Contoh : Hapus konstrain foreign key pada tabel Pendaftaran.

ALTER TABLE Pendaftaran

DROP CONSTRAINT FK_ID_Mahasiswa;

Query di atas akan mengubah tabel Pendaftaran dengan menghapus konstrain foreign
key yang bernama FK_ID_Mahasiswa.

3.4 Menghapus Tabel


Perintah SQL untuk menghapus kolom adalah:

DROP TABLE <table_name>;

Contoh : Hapus tabel Kelas.

DROP TABLE Kelas;

Query di atas akan menghapus tabel Kelas dari basis data Pendaftaran_Kelas.
Praktikum Sistem Basis Data | MODUL 1

4 Manipulasi Data dalam SQL


Setelah suatu tabel terbentuk dengan menggunakan perintah CREATE TABLE, record-record dapat
disisipkan dalam tabel (insert), dimodifikasi (update), dan dihapus (delete).

4.1 Menyisipkan (INSERT)


Cara paling sederhana untuk menyisipkan sebuah record ke dalam tabel adalah dengan
menggunakan perintah INSERT.

INSERT INTO <table_name>

(<column i, ..., column j>)

VALUES (<value i, ..., value j>);

Perhatikan informasi tentang pengisian statement INSERT ini:

• Statement ini hanya berfungsi untuk pengisian satu baris pada sebuah tabel.
• Urutan nilai (value) harus mengikuti default dari urutan kolom yang dituliskan.
• Nilai karakter dan tanggal, harus diapit oleh tanda kutip (‘...’).
• Kolom yang memiliki constraint NOT NULL harus memiliki value.
• Beberapa record dapat disisipkan ke dalam tabel dalam satu statement INSERT.

Contoh 1 : Mengisi data – data pada tabel Mahasiswa.

INSERT INTO Mahasiswa


(ID_Mahasiswa,Nama,Alamat,No_Telepon)
VALUES ('13415066','Nindya Putri F','Kanayakan','02276453');

INSERT INTO Mahasiswa


(ID_Mahasiswa,Nama,Alamat,No_Telepon)
VALUES ('13415093','Kiendl Valavani','Cisitu','02271295');

INSERT INTO Mahasiswa


(ID_Mahasiswa,Nama,Alamat,No_Telepon)
VALUES ('13415035','Afiyah Dalimunthe','Dago Asri','02271548');

INSERT INTO Mahasiswa


(ID_Mahasiswa,Nama,Alamat,No_Telepon)
VALUES ('13415012','Muhammad Umar','Tubis','02279064');
Praktikum Sistem Basis Data | MODUL 1

atau
INSERT INTO Mahasiswa
(ID_Mahasiswa,Nama,Alamat,No_Telepon)
VALUES ('13415066','Nindya Putri F','Kanayakan','02276453'),
('13415093','Kiendl Valavani','Cisitu','02271295'),
('13415035','Afiyah Dalimunthe','Dago Asri','02271548'),
('13415012','Muhammad Umar','Tubis','02279064');

Contoh 2 : Mengisi data – data pada tabel Pendaftaran.

INSERT INTO Pendaftaran


(ID_Pendaftaran,ID_Mahasiswa,ID_Kelas,Biaya,Waktu_Daftar)
VALUES ('P2201901','13415066','K001','250000','2019-01-01 07:07:07');

INSERT INTO Pendaftaran


(ID_Pendaftaran,ID_Mahasiswa,ID_Kelas,Biaya,Waktu_Daftar)
VALUES ('P2201902','13415093','K002','250000','2019-01-02 08:08:08');

INSERT INTO Pendaftaran


(ID_Pendaftaran,ID_Mahasiswa,ID_Kelas,Biaya,Waktu_Daftar)
VALUES ('P2201903','13415035','K002','250000','2019-01-02 09:09:09');

atau

INSERT INTO Pendaftaran


(ID_Pendaftaran,ID_Mahasiswa,ID_Kelas,Biaya,Waktu_Daftar)
VALUES ('P2201901','13415066','K001','250000','2019-01-01 07:07:07'),
('P2201902','13415093', 'K002','250000','2019-01-02 08:08:08''),
('P2201903','13415035', 'K002','250000','2019-01-02 09:09:09');

Query pada contoh 1 memasukkan data pada tabel Mahasiswa dengan menambah 4 baris baru
sedangkan pada contoh 2 menambahkan 3 baris baru pada tabel Pendaftaran.

Hasil tabel Mahasiswa yang didapat dari perintah INSERT yang telah dibuat pada contoh 1:
Praktikum Sistem Basis Data | MODUL 1

Hasil tabel Pendaftaran yang telah disisipkan record (contoh 2):

Berikut merupakasj hasil penyisipan data pada tabel Kelas:

Sebagai catatan, untuk mengisi tabel pendaftaran, tabel Kelas harus sudah memiliki record. Hal ini
dikarenakan, pada tabel Pendaftaran terdapat foreign key dari tabel Kelas.

4.2 Memodifikasi (UPDATE)


Perintah UPDATE dapat digunakan untuk mengubah nilai suatu record yang berada dalam suatu
tabel.

UPDATE <table_name> SET

<column i> = <expression i>

<expression j>

WHERE <condition>;

“expression” dapat berisi konstan (sebuah nilai baru), operasi string atau aritmetik atau sebuah SQL
query. Perhatikan bahwa nilai baru yang di-assign pada setiap kolom harus mengikuti tipe data
kolom tersebut.

Contoh: seorang mahasiswa dengan ID_Mahasiswa = 13415110 berpindah alamat menjadi di Dago
dan memiliki nomor telepon baru yaitu 02278905. Maka dapat dimodifikasi dengan cara berikut:

UPDATE Mahasiswa SET

Alamat = ‘Dago’ , No_Telepon = 02278905

WHERE ID_Mahasiswa = ‘13415110’;

4.3 Menghapus (DELETE)


4.3.1 Menghapus Seluruh Record
Contoh : Hapuslah seluruh record yang ada dalam tabel Mahasiswa.
Praktikum Sistem Basis Data | MODUL 1

DELETE FROM Mahasiswa;

4.3.2 Menghapus Record Tertentu


Contoh : Hapuslah seluruh Kelas yang memiliki kuota <20.

DELETE FROM Kelas

WHERE Kuota < 20;

Hapuslah seluruh Mahasiswa beralamat di Tubis.

DELETE FROM Mahasiswa

WHERE Alamat = ‘Tubis’;

5 Menampilkan Data
Untuk menampilkan data suatu tabel, kita menggunakan perintah SELECT. Berikut ini adalah
perintah yang digunakan untuk menampilkan tabel Mahasiswa.

SELECT *

FROM Mahasiswa;
Praktikum Sistem Basis Data | MODUL 1

a.

“ A dream
doesn't
become reality
through magic;
it takes sweat,
determination
and hard work”
(Colin Powell)

Selamat Belajar! :)
Praktikum Sistem Basis Data

PART B
Pengolahan Basis Data
Praktikum Sistem Basis Data | MODUL 1

Programming is breaking of one


big impossible task into several
very small possible tasks.”
(Jazzwants)

:)
2|Page
Praktikum Sistem Basis Data | MODUL 1

Daftar Isi
Tujuan Praktikum............................................................................................................................................................... 5
Tujuan .............................................................................................................................................................................. 5
Kompetensi.................................................................................................................................................................. 5
Kata Penting ....................................................................................................................................................................... 5
1 Menampilkan Data .................................................................................................................................................. 6
1.1 Menampilkan Seluruh Kolom ........................................................................................................................... 7
1.2 Menampilkan Kolom Tertentu..................................................................................................................... 7
1.3 Menampilkan Kolom dengan Eliminasi Duplikasi .................................................................................. 8
1.4 Menampilkan Kolom dengan Nama Lain ................................................................................................ 9
1.5 Menampilkan Data Bersyarat .................................................................................................................... 10
2 Pengolahan Data dengan Fungsi Aritmatika dan Fungsi Agregat ........................................................... 11
2.1 Menampilkan dengan Operasi Aritmatika .............................................................................................. 11
2.2 Menampilkan dengan Fungsi Agregasi ................................................................................................... 11
2.2.1 COUNT ......................................................................................................................................................... 11
2.2.2 MAX dan MIN ........................................................................................................................................... 12
2.2.3 SUM.............................................................................................................................................................. 12
2.2.4 AVG ......................................................................................................................................................... 12
3 Pengurutan dan Pengelompokan Data ........................................................................................................... 13
3.1 Mengurutkan Data ....................................................................................................................................... 13
3.2 Mengelompokkan Data .............................................................................................................................. 14
4 Pencarian Data ....................................................................................................................................................... 16
5 Joining Tables ......................................................................................................................................................... 18
5.1 INNER JOIN .................................................................................................................................................... 18
5.2 OUTER JOIN ................................................................................................................................................... 19
5.2.1 Right Outer Join ........................................................................................................................................ 20
5.2.2 Left Outer Join........................................................................................................................................... 20
6 Sub Queries ............................................................................................................................................................. 22

3|Page
Praktikum Sistem Basis Data | MODUL 1

6.1 Scalar Sub Queries ....................................................................................................................................... 22


6.2 Correlated Sub Queries .............................................................................................................................. 22
6.3 Sub Queries with Not Exists ...................................................................................................................... 23

4|Page
Praktikum Sistem Basis Data | MODUL 1

Tujuan Praktikum
Tujuan
Mampu mengolah data pada basis data menjadi informasi yang berguna.

Kompetensi
Pada praktikum ini Anda akan diharapkan untuk menguasai poin-poin berikut ini. *)

1. Menampilkan data dan data bersyarat (SELECT, WHERE)


2. Fungsi aritmatika dan fungsi agregat (AVG, SUM, COUNT, MIN, MAX)
3. Mengurutkan dan mengelompokkan data (ORDER BY, GROUP BY)
4. Pencarian data dari database (LIKE)
5. Joining Tables (INNER JOIN, OUTER JOIN)
6. Sub Queries
-------------------------------------------------------------------------------------
*) beri tanda pada kotak di samping jika Anda sudah menguasai. ☺

Kata Penting
LIKE SELECT SubQuery EXIST WHERE JOIN
SQL SELECT ForeignKey

JoinCondition GROUPBY Function INNER-OUTERJOIN

ASCENDING For ORDERBY Descending PrimaryKey


Exit MathematicalFunction AggregateFunction Query AND OR
SubQuery NOT EXISTS

Selamat Belajar!

5|Page
Praktikum Sistem Basis Data | MODUL 1

Pada modul praktikum basis data Part A, Anda telah mempelajari bagaimana membangun basis data
dengan menggunakan SQL Server 2008. Pada modul Part B ini, kita akan fokus pada bagaimana
mengolah data-data pada basis data yang sudah dibuat menjadi informasi yang berguna. Bahasa SQL
menyediakan berbagai macam teknik pengolahan data yang dapat kita gunakan. Pada praktikum ini,
kita akan menggunakan bermacam-macam perintah SELECT mulai dari perintah SELECT sederhana,
perintah SELECT dengan berbagai klausa seperti WHERE, DISTINCT, ORDER BY, GROUP BY, LIKE,
perintah SELECT yang dipadukan dengan operasi aritmatika dan fungsi agregat, hingga joinning table,
dan subquery.

1 Menampilkan Data
Perintah SQL yang digunakan pada query untuk menampilkan data adalah SELECT.

Untuk memudahkan pembelajaran topik pada modul Part B ini, digunakan tiga tabel sebagai ilustrasi,
yaitu:

Artis

Nama Manajemen Tahun Debut


EXO SM Entertainment 2011
Girls Generation SM Entertainment 2007
2NE1 YG Entertainment 2009
TWICE JYP Entertainment 2015
BTOB Cube Entertainment 2012
Miss A JYP Entertainment 2010
Park Jae Bum 2009
BIG BANG YG Entertainment 2012
HyunA Cube Entertainment 2007
Red Velvet SM Entertainment 2014
2PM JYP Entertainment 2008
Park Shin Hye YG Entertainment 2011

Perusahaan

Penjualan Pendapatan Bersih


Nama Situs (juta US dollar) (juta US dollar)
SM Entertainment www.smtown.com 357 16
YG Entertainment www.ygfamily.com 295 35
JYP Entertainment www.jype.com 69 9
FNC Entertainment www.fncent.com 88 1
Cube Entertainment www.cubeent.co.kr 22 1

6|Page
Praktikum Sistem Basis Data | MODUL 1

K-Pop Billboard

Urutan Judul Jenis Musik Artis Tahun Rilis


1 Monster Pop EXO 2012
2 TT Pop TWICE 2016
Girls
3 Genie Trot Generation 2011
4 HaruHaru Pop BIG BANG 2013
5 Knock Knock Trot TWICE 2016
6 You're So Fly Pop BTOB 2015
7 Only You Trot Miss A 2014
8 Fantastic Baby Techno BIG BANG 2010
9 Bubble Pop! Pop HyunA 2009
10 Ice Cream Cake Pop Red Velvet 2016
11 Hands Up Pop 2PM 2012
12 Cheer Up Pop TWICE 2016

1.1 Menampilkan Seluruh Kolom


Untuk menampilkan seluruh kolom dan baris dalam suatu tabel, dapat digunakan simbol “*” setelah
perintah SELECT. Perhatikan format penulisan query di bawah ini.
SELECT *
FROM <table_name>;

Contoh: menampilkan keseluruhan isi tabel Perusahaan.

1.2 Menampilkan Kolom Tertentu


Untuk menampilkan kolom tertentu yang terdapat pada suatu tabel, penulisan SELECT harus diikuti
dengan nama kolom yang diinginkan. Apabila terdapat lebih dari 1 kolom, nama kolom dipisahkan
dengan tanda koma “,”. Perhatikan format penulisan query di bawah ini.

7|Page
Praktikum Sistem Basis Data | MODUL 1

SELECT <column_name1>, <column_name2>


FROM <table_name>;

Contoh: menampilkan kolom ‘Urutan’ dan ‘Judul’ dari tabel ‘K-Pop Billboard’.

1.3 Menampilkan Kolom dengan Eliminasi Duplikasi


Ada kalanya dalam menyajikan data, diperlukan eliminasi data yang berulang. Dengan menambahkan
klausa DISTINCT setelah SELECT, SQL akan menyortir dan menampilkan record tanpa duplikasi data.
Perhatikan format penulisan query di bawah ini.

SELECT DISTINCT <column_name1>, <column_name2>


FROM <table_name>;

Contoh 1: menampilkan kolom ‘Artis’ dari tabel ‘K-Pop Billboard’ tanpa duplikasi.

8|Page
Praktikum Sistem Basis Data | MODUL 1

Contoh 2: menampilkan kolom ‘Nama’ dan ‘Manajemen’ dari tabel ‘Artis‘ tanpa duplikasi.

Dapat dilihat bahwa pada contoh yang kedua, record “2NE1 – YG Entertainment” dan “BIG BANG – YG
Entertainment” tidak termasuk duplikasi karena meskipun record pada ‘Management’ sama, record pada
‘Nama’ berbeda.

1.4 Menampilkan Kolom dengan Nama Lain


Nama kolom dapat dimanipulasi dengan nama alias pada bagian ‘Results’. Hal ini terkadang diperlukan
untuk memudahkan pembaca dalam mengerti isi tabel. Untuk melakukannya, kita menggunakan klausa
AS. Perhatikan format penulisan query di bawah ini.

SELECT <column_name1> AS <alias1>, <column_name2> AS <alias2>


FROM <table_name>;

Contoh: menampilkan nama kolom ‘Manajemen’ dan ‘Penjualan (juta US dollar)’ dari tabel ‘Perusahaan’
dengan menambahkan informasi tahun Penjualan.

9|Page
Praktikum Sistem Basis Data | MODUL 1

1.5 Menampilkan Data Bersyarat


Jika record yang diinginkan memiliki kondisi tertentu, maka klausa WHERE dapat digunakan. Operator
pembanding seperti =, !=, <>, <, >, <=, atau => dan operator logika AND, OR, serta NOT dapat
digunakan untuk pengondisian klausa WHERE. Perhatikan format penulisan query di bawah ini.
SELECT <column_name>
FROM <table_name>
WHERE <condition>;

Contoh 1: menampilkan nama artis dari SM Entertainment.

Contoh 2: menampilkan nama perusahaan yang memiliki pendapatan bersih (juta US dollar) lebih dari
10 juta dollar.

Contoh 3: menampilkan nama artis yang tidak memiliki manajemen.

10 | P a g e
Praktikum Sistem Basis Data | MODUL 1

2 Pengolahan Data dengan Fungsi Aritmatika dan


Fungsi Agregat
2.1 Menampilkan dengan Operasi Aritmatika
Klausa SELECT juga dapat berisi ekspresi aritmatika yang melibatkan operator aritmatika. Operasi
aritmatika akan berlaku untuk setiap record.

Contoh: menampilkan nama perusahaan dan pendapatan kotor (hasil pengurangan penjualan dengan
pendapatan bersih).

Operator dan fungsi lain untuk data numerik yang didukung oleh SQL antara lain: ABS, COS, SIN, EXP,
LOG10, POWER, SQRT, +, -, *, /, dll.

2.2 Menampilkan dengan Fungsi Agregasi


Berbeda dengan operasi aritmatika yang berlaku di setiap record, fungsi agregasi akan mengolah
seluruh record atau record tertentu yang memenuhi kondisi yang didefinisikan hingga menghasilkan
sebuah nilai. Misalnya nilai rata-rata, maksimum, jumlah, dan sebagainya.

Fungsi agregasi yang akan dipelajari adalah fungsi COUNT, MAX, MIN, SUM, dan AVG. Perhatikan
bahwa perintah AVG, MIN, dan MAX mengabaikan record dengan nilai null (null value) untuk atribut
terkait, tetapi COUNT mengikutkan nilai null (Masha dkk., 2018). Perhatikan format penulisan query di
bawah ini.
SELECT AGGREGATE_FUNCTION (<column_name>)
FROM <table_name>;

2.2.1 COUNT
Fungsi ini digunakan untuk menghitung jumlah baris dari perintah SELECT. Keyword ini dapat
dikombinasikan dengan DISTINCT.

Contoh: menampilkan hasil perhitungan jumlah baris yang berada dalam tabel Perusahaan.

11 | P a g e
Praktikum Sistem Basis Data | MODUL 1

2.2.2 MAX dan MIN


Fungsi MIN digunakan untuk menghitung nilai minimum dari sebuah kolom. Sedangkan fungsi MAX
digunakan untuk menghitung nilai maksimum dari sebuah kolom.

Contoh : menampilkan nilai minimum dari kolom ‘Sales (juta US dollar)’ dengan nama alias
‘MIN_SALES’ dan nilai maksimum dari kolom Sales dengan nama alias ‘MAX_SALES’.

2.2.3 SUM
Fungsi SUM digunakan untuk menghitung jumlah dari sekumpulan nilai (hanya berlaku untuk tipe
data number).

Contoh : menampilkan nilai jumlah data pada kolom ‘Penjualan (juta US dollar)’ dengan nama alias
‘Total Penjualan.

2.2.4 AVG
Fungsi AVG digunakan untuk menghitung nilai rata-rata dari sebuah kolom (hanya berlaku untuk tipe
data number).

Contoh : menampilkan nilai rata-rata data pada kolom ‘Penjualan (juta US dollar)’.

12 | P a g e
Praktikum Sistem Basis Data | MODUL 1

3 Pengurutan dan Pengelompokan Data

3.1 Mengurutkan Data


Untuk mengurutkan data, kita memadukan perintah SELECT dengan klausa ORDER BY. Perhatikan
format penulisan query di bawah ini.
SELECT <column_name1>, <column_name2>
FROM <table_name>
ORDER BY <column_name>;

Secara default, ORDER BY didefinisikan sebagai pengurutan dari yang terkecil sampai yang terbesar
(ascending). Apabila diperlukan pengurutan secara sebaliknya (descending), maka ditambahkan
keyword DESC.
SELECT <column_name1>, <column_name2>
FROM <table_name>
ORDER BY <column_name> DESC;

Contoh: menampilkan kolom ‘Nama’ dari tabel ‘Artis’ dengan pengurutan data, baik secara ascending
atau descending.

13 | P a g e
Praktikum Sistem Basis Data | MODUL 1

3.2 Mengelompokkan Data


Pengelompokan dapat dilakukan dengan menggunakan klausa GROUP BY. GROUP BY akan
mengelompokkan baris berdasarkan kesamaan data dalam kolom yang Anda tentukan. GROUP BY
juga memungkinkan penerapan fungsi agregasi terhadap satu kolom atau lebih. Perhatikan format
penulisan query di bawah ini.
SELECT <column_name1>, AGGREGATE_FUNCTION (<column_name2>)
FROM <table_name>
GROUP BY <column_name1>;

Dengan menggunakan perintah di atas, kita menerapkan fungsi agregasi AGGREGATE_FUNCTION


kepada kolom <column_name2> untuk setiap nilai <column_name1>.

Contoh 1:

Mengetahui jumlah artis dari setiap manajemen.

Dari hasil tersebut, kita lihat bahwa query di atas menghitung jumlah artis setiap manajemen, termasuk
yang bernilai NULL. Kita mengaplikasikan fungsi agregat COUNT pada kolom ‘Jumlah Artis’ untuk setiap
data ‘Manajemen’, lalu memberikan nama ‘Jumlah Artis’ sebagai nama alias terhadap hasil fungsi
agregat tersebut.

Contoh 2:

Menampilkan jumlah lagu dan sekaligus menampilkan tahun rilis terbaru untuk masing-masing genre
dari tabel ‘K-Pop Billboard’.

14 | P a g e
Praktikum Sistem Basis Data | MODUL 1

Contoh 3:

Kita dapat menampilkan hasil dari GROUP BY yang memenuhi kondisi tertentu saja dengan
menambahkan klausa HAVING dan operator relasional (<, >, = <=, >=).

Untuk menampilkan nama manajemen yang memiliki 3 artis, dapat digunakan query berikut:

Contoh 4:

Menampilkan jenis musik yang hanya memiliki kurang dari 5 lagu.

15 | P a g e
Praktikum Sistem Basis Data | MODUL 1

4 Pencarian Data
Selain menampilkan, mengolah, mengurutkan, dan mengelompokkan data, Anda juga dapat
melakukan pencarian data dengan memadukan perintah SELECT yang disertai klausa WHERE dengan
klausa LIKE. Klausa LIKE sangat berguna karena memungkinkan Anda untuk memilih baris-baris yang
menyerupai apa yang Anda tentukan. Tanda “%”dapat digunakan sebagai wildcard untuk mewakili
semua karakter yang mungkin muncul sebelum atau sesudah karakter yang Anda tentukan.

Misalnya Anda hanya ingin menampilkan record dengan nama artis yang diawali dengan kata “Park”.

Atau Anda ingin menampilkan record dengan judul lagu yang mengandung kata “You”.

Atau Anda ingin menampilkan record dengan judul lagu yang diakhiri dengan kata “Up”.

Selain menggunakan wildcard “%”, Anda juga dapat menggunakan wildcard “_” untuk mewakili sebuah
karakter saja, berbeda dengan wildcard “%” yang dapat mewakili banyak karakter.

Misalnya, Anda ingin menampilkan record dengan ‘Urutan’ yang diawali dengan “K0” dan diakhiri
dengan 1 karakter.

16 | P a g e
Praktikum Sistem Basis Data | MODUL 1

Atau Anda ingin menampilkan record dengan ‘Urutan’ yang diawali dengan “K” dan diakhiri dengan “2”
dengan 1 karakter di antara keduanya.

17 | P a g e
Praktikum Sistem Basis Data | MODUL 1

5 Joining Tables
Setelah Anda mempelajari tentang bagaimana menampilkan data, mengolah data, mengurutkan data,
mengelompokkan data, dan mencari data, pada bagian ini Anda akan menggabungkan dua tabel dengan
menggunakan klausa JOIN. Ada 2 jenis klausa JOIN yang akan dipelajari, yaitu INNER JOIN dan
OUTER JOIN.

5.1 INNER JOIN


Inner join, dikenal juga sebagai Equioin atau Simple Join. Tipe join ini digunakan bila ingin
menampilkan isi dari kolom tertentu pada suatu tabel dan menggabungkannya dengan kolom
tertentu pada tabel lainnya yang ditampilkan menurut kesamaan isi dari kolom yang sama-sama
dimiliki oleh kedua tabel tersebut yaitu Primary Key dan Foreign Key. Operator yang digunakan
adalah INNER JOIN dengan syntax query sebagai berikut.
SELECT <table_name1>.<column_name1>, <table_name2>.<column_name2>,...
FROM <main_name>
INNER JOIN <joined_table>
ON <connecting_column> = <conneting_column>;

Contoh 1: menampilkan joint table (tabel gabungan) antara kolom ‘Nama’ dari tabel ‘Artis dan kolom
‘Website’ dari tabel ‘Perusahaan.

Hal ini dimungkinkan karena adanya kolom penghubung, yakni kolom Foreign Key ‘Manajemen’ di tabel
‘Artis dan kolom Primary Key ‘Nama’ di tabel ‘Perusahaan’.

18 | P a g e
Praktikum Sistem Basis Data | MODUL 1

Contoh 2: Menampilkan kolom ‘Judul’ dan ‘Artis’ dari tabel ‘K-Pop Billboard’, ‘Management’ dari
tabel ‘Artis’, dan ‘Website’ dari tabel ‘Perusahaan’.

Penggabungan lebih dari dua tabel ini dimungkinkan karena adanya kolom penghubung, yakni kolom
Foreign Key ‘Artis’ di tabel ‘K-Pop Billboard’ dan kolom Primary Key ‘Nama’ di tabel ‘Artis’, lalu kolom
Foreign Key ‘Manajemen’ di tabel ‘Artis dan kolom Primary Key ‘Nama’ di tabel ‘Perusahaan’.

5.2 OUTER JOIN


Fungsi join condition yang digunakan untuk melihat semua baris yang terdapat pada tabel utama
yang dihubungkan dengan tabel lainnya. Berbeda dari fungsi inner join, fungsi outer join ini juga
menampilkan baris yang tidak memenuhi syarat join yang diberikan. Outer join dinyatakan dengan
operator OUTER JOIN.

Pada Microsoft SQL 2008, terdapat dua jenis statement Outer join, yaitu Right Outer Join dan Left Outer
Join. Perbedaannya adalah kolom yang menjadi acuan untuk tampilan eksekusi. Jika menggunakan
Right Outer Join, maka yang dijadikan acuan adalah tabel yang statemennya berada di sebelah kanan
statement Right Outer Join tersebut. Sebaliknya, jika menggunakan Left Outer Join, maka kolom yang
dijadikan acuan adalah tabel yang statemennya berada di sebelah kiri
statement Left Outer Join.

19 | P a g e
Praktikum Sistem Basis Data | MODUL 1

5.2.1 Right Outer Join


Syntax yang digunakan adalah sebagai berikut:
SELECT <column_name1>
FROM <main_name>
RIGHT OUTER JOIN <joined_table>
ON <connecting_column> = <conneting_column>;

Contoh: menampilkan kolom ‘Nama’ dari tabel ‘Artis’ dan kolom ‘Website’ dari tabel ‘Perusahaan’
dengan acuan tabel ‘Perusahaan’.

Terlihat ada sel yang nilainya null di kolom ‘Nama’. Hal ini hanya bisa terjadi jika menggunakan outer
join. Jika menggunakan inner join, maka baris dengan sel yang bernilai null di salah satu tabel tidak
akan ditampilkan.

5.2.2 Left Outer Join


Syntax yang digunakan adalah sebagai berikut:
SELECT <column_name1>
FROM <main_name>
LEFT OUTER JOIN <joined_table>
ON <connecting_column> = <conneting_column>;

20 | P a g e
Praktikum Sistem Basis Data | MODUL 1

Contoh: menampilkan kolom ‘Nama’ dari tabel ‘Artis’ dan kolom ‘Website’ dari tabel ‘Perusahaan’
dengan acuan tabel ‘Artis’.

Berbeda dengan saat menggunakan right outer join, muncul nilai null di kolom ‘Website’. Hal ini terjadi
karena acuan yang dipakai adalah tabel ‘Artis’, sehingga baris bernilai null di kolom ‘Website’ (tabel
‘Perusahaan’) namun memiliki isi di kolom ‘Nama’ (tabel ‘Artis’) akan tetap ditampilkan.

21 | P a g e
Praktikum Sistem Basis Data | MODUL 1

6 Sub Queries
Subquery merupakan query yang terdapat di dalam suatu query yang lain. Subquery ini disebut
juga inner query atau nested query. Subquery dapat digunakan pada suatu statement SELECT,
INSERT, UPDATE, atau DELETE. Subquery dapat digunakan di manapun suatu ekspresi
diperbolehkan. Pada modul Part B ini, terdapat 3 query yang akan dijelaskan, yaitu:

6.1 Scalar Sub Queries


Subquery ini digunakan untuk melakukan statement query (SELECT, INSERT, UPDATE, atau DELETE)
untuk record-record yang memiliki kesamaan nilai dengan kriteria yang diberikan. Untuk
memahami lebih jelas penggunaan query ini, dapat melihat contoh berikut:

Contoh: menampilkan nama artis yang memiliki manajemen dengan Net Income lebih dari 10 juta
US dollar.

6.2 Correlated Sub Queries


Terkadang user hanya ingin menampilkan atau melakukan statement query lainnya untuk record-
record pada suatu database yang nilai pada salah satu kolomnya memenuhi suatu kriteria tertentu.
Pada kondisi seperti itulah subquery ini digunakan, yaitu dengan membandingkan nilai pada suatu
kolom dari record tersebut dengan kriteria yang ditetapkan.

Contoh: menampilkan list manajemen yang Sales-nya lebih besar dari Sales rata-rata.

22 | P a g e
Praktikum Sistem Basis Data | MODUL 1

6.3 Sub Queries with Not Exists


Selain mencari query besyarat dengan operator logika, user juga dapat mencari record yang tidak ada
pada tabel. Hal ini biasanya digunakan untuk menampilkan data bersyarat, tetapi syaratnya adalah
record tertentu tidak ada pada tabel. Untuk melakukan hal ini maka dibutuhkan kombinasi klausa
WHERE dengan klausa tambahan yaitu NOT EXISTS.

Contoh: Menampilkan record tabel ‘Artis’ yang tidak memiliki korelasi dengan tabel ‘Perusahaan’.

23 | P a g e
Praktikum Sistem Basis Data | MODUL 1

Simplicity is
prerequisite for
reliability.”

(Edsger W. Dijkstra)

Selamat Belajar! :)

24 | P a g e

Anda mungkin juga menyukai