MODUL 1
Pembuatan dan Pengolahan
Basis Data
Teknik Industri
Institut Teknologi Sumatera
Praktikum Sistem Basis Data | MODUL 1
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. *)
Kata Penting
Query Variabel Database Tipe Data Table Record NULL NOT NULL Select
ERD Select Insert Update Delete Drop
Entitas Relasi Atribut Create Alter
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.
• 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.
Notasi Keterangan
ID_Pendaftaran
ID_Mahasiswa Biaya ID_Kelas (PK)
(PK)
Nama (PK)
Nama_Matkul
Nama_Dosen
Waktu_daftar
Alamat
ID_Kelas (FK)
No_Telepon Kuota
ID_Pendaftaran (FK)
❖ 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.
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
▪ 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.
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.
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.
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.
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.
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.
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.
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
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:
• 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
Sebagai contoh:
......,
);
Catatan:
• Untuk setiap kolom, nama kolom dan tipe data harus ditentukan dan setiap nama kolom
harus unik.
• 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
);
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
);
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
);
Apabila primary dan foreign key sudah didefinisikan saat membuat tabel, maka query yang
digunakan sebagai berikut:
);
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.
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
Contoh : Modifikasi kolom keterangan pada tabel Mahasiswa yang sebelumnya memiliki konstrain
NULL menjadi NOT NULL.
Query di atas akan mengubah tabel Mahasiswa dengan memodifikasi kolom Keterangan dengan
tipe data NVARCHAR(50) dan konstrain NOT NULL.
Query di atas akan mengubah tabel Mahasiswa dengan menghapus kolom Keterangan.
Query di atas akan mengubah tabel Mahasiswa dengan menghapus konstrain primary key
yang bernama PK_ID_Mahasiswa.
Query di atas akan mengubah tabel Pendaftaran dengan menghapus konstrain foreign
key yang bernama FK_ID_Mahasiswa.
Query di atas akan menghapus tabel Kelas dari basis data Pendaftaran_Kelas.
Praktikum Sistem Basis Data | MODUL 1
• 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.
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');
atau
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
Sebagai catatan, untuk mengisi tabel pendaftaran, tabel Kelas harus sudah memiliki record. Hal ini
dikarenakan, pada tabel Pendaftaran terdapat foreign key dari tabel Kelas.
<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:
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
:)
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
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. *)
Kata Penting
LIKE SELECT SubQuery EXIST WHERE JOIN
SQL SELECT ForeignKey
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
Perusahaan
6|Page
Praktikum Sistem Basis Data | MODUL 1
K-Pop Billboard
7|Page
Praktikum Sistem Basis Data | MODUL 1
Contoh: menampilkan kolom ‘Urutan’ dan ‘Judul’ dari tabel ‘K-Pop Billboard’.
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.
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
Contoh 2: menampilkan nama perusahaan yang memiliki pendapatan bersih (juta US dollar) lebih dari
10 juta dollar.
10 | P a g e
Praktikum Sistem Basis Data | MODUL 1
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.
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
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
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
Contoh 1:
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:
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.
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’.
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
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.
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:
Contoh: menampilkan nama artis yang memiliki manajemen dengan Net Income lebih dari 10 juta
US dollar.
Contoh: menampilkan list manajemen yang Sales-nya lebih besar dari Sales rata-rata.
22 | P a g e
Praktikum Sistem Basis Data | MODUL 1
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