Anda di halaman 1dari 46

Sistem Basis Data

Disusun oleh :

Dr. Ema Utami, S.Si, M.Kom


Anggit Dwi Hartanto, M.Kom

2015
Modul 1
Pengenalan Ms. SQL Server 2008

Untuk praktikum pengolahan basis data, server database yang digunakan adalah
Microsoft SQL Server 2008. SQL Server 2008 merupakan paket lengkap yang terdiri
dari:
1. SQL Server Service Manager
Merupaakan fasilitas yang mempunyai kemampuan untuk melakukan pengaturan
seluruh objek dari SQL Server, SQL Server Agent, dan Distributed Transaction.
2. SQL Server Profiler
Utilitas ini mempunyai fungsi untuk memonitor, merekam aktivitas kegiatan pada
server database sehingga mempunyai kemampuan untuk melakukan analisa
terhadap aktivitas server database.
3. SQL Query Analyzer
Tool ini adalah fasilitas yang digunakan untuk mengeksekusi pernyataan Transact-
SQL secara interaktif, seperti membuat database, edit, insert dan menghapus data.
4. Data Transformation Service
Digunakan untuk mentransfer data dari format SQL server ke format database lain
seperti format database Acces, Excel, Paradox atau sebaliknya.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 2


Ketika membuat database, maka sistem akan membuat minimal 2 file yaitu:
1. File dengan ekstensi .mdf
File ini merupakan file data primer. Berfungsi untuk menyimpan data-data dari
database yang kita buat. Secara default, file ini akan tersimpan di C:\Program
Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
2. File dengan ekstensi .ldf
File ini digunakan untuk menyimpan log transaksi. File ini digunakan untuk
memulihkan database ketika kita melakukan perubahan atau transaksi terhadap
database
Jika file .mdf tidak cukup untuk menyimpan data dalam database, maka sistem secara
otomatis akan membuat sebuah file baru yang berekstensi .ndf

1.1 Praktikum Membuat Database


Misalkan kita akan membuat sebuah database yang digunakan untuk mengimpan data
transaksi barang, dengan satu tabel, yaitu tabel barang sebagai berikut ini:

Kolom Tipe Data Length


KodeBarang Char 5
NamaBarang Varchar 30
Stok Numeric 18
Harga Numeric 18

Langkah-langkah untuk membuat database sebagai berikut :


1. KIik kanan pada Folder Database kemudian pilih “New Database” :

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 3


2. Selanjutnya akan muncul wizard untuk membuat database baru, dari tab
General, pada bagian Name digunakan untuk memberi nama database kita,
ketikkan Penjualan sebagai nama database kita.

3. Pada kolom “Database Files” terdapat pengaturan yaitu :


a. File Name yang merupakan nama file database
b. File Group, merupakan jenis file database
c. Initial Size(MB), merupakan ukuran file .mdf database yang kita buat. Anda
bisa mengubah ukuran file ini, file ini dalam satuan MB (MegaByte).
d. Autogrowth, untuk pengaturan otomatisasi pertumbuhan ukuran file.
e. Location, merupakan lokasi penyimpanan database, anda bisa mengubah
lokasi database tersebut
4. Setelah selesai melakukan settingan, silahkan klik OK.

1.2 Attach dan Detach Database


Cara Attach database adalah sebagai berikut :
a) Klik kanan pada database kemudian pilih “Attach” seperti gambar berikut.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 4


b) Setelah itu akan muncul kotak dialog seperti gambar berikut dan tekan tombol
yang dilingkari merah.

c) Setelah itu pilih nama database dan tekan “OK” seperti gambar berikut.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 5


d) Setelah itu akan muncul kotak dialog berikut dan tekan “OK” dan “OK”
Sedangkan cara untuk detach database adalah sebagai berikut :
a) Klik kanan pada obyek database yang akan di detach kemudian pilih “All Tasks”
 “Detach Database”. Seperti gambar berikut.

b) Setelah itu akan muncul kotak dialog dan klik “OK”

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 6


1.3 Membuat Tabel
Selanjutnya kita akan membuat tabel barang. Langkah-langkahnya sebagai berikut:
1. Pilih database anda (Penjualan), kemudian klik kanan pada Tabel, pilih New
Table.

2. Untuk membuat tabel, silahkan isikan nama-nama kolom di bagian


Column Name. Setelah diisi semua, silahkan disimpan dengan nama
tabel Barang

Untuk memberi primary key, silahkan klik kanan pada kolom kemudian Pilih “Set
Primary Key”. Selanjutnya simpan tabel yang telah dibuat dengan klik simbol simpan.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 7


Selanjutnya adalah mengisi data ke dalam tabel, silahkan klik kanan pada tabel barang,
kemudian pilih “Edit Top 200 Rows”.

Silahkan mengiskan data ke dalam tabel. Berikut adalah contoh data-data yang
diinputkan ke dalam tabel.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 8


1.4 Praktikum

1. Buatlah database dengan nama Sekolah_xxxx  4 digit nim terakhir


2. Buat tabel seperti relasi dibawah ini, dan tambahkan nama tabel dengan nim masing
masing.

3. Isi dengan data berikut ini.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 9


Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 10
Modul 2
Pengantar SQL

SQL merupakan singkatan dari Structured Query Langauge. Ada orang menyebut SQL
dengan istilah sequel, namun ada juga yang menyebut SQL saja. Pada dasarnya SQL
merupakan bahasa komputer standar yang ditetapkan oleh ANSI(American National
Standard Institute) untuk mengakses dan memanipulasi sistem database. SQL bisa
bekerja dengan baik pada program-program database seperti MS.Access , DB2,
Infomix, MS SQL Server, Oracle, Sybase dan lain sebagainya. Versi-versi SQL sangat
banyak tetapi aturan yang dipakai tetap sama pada setiap sintaks-sintaksnya.

Sebuah database dapat berisi satu atau lebih tabel yang setiap tabel memiliki nama
tersendiri atau unik. Tabel-tabel tersebut memiliki minimal satu kolom/field atau lebih
dan memiliki baris/record.

Untuk mengolah database, kita menggunakan query yang merupakan tindakan yang
biasa dilakukan sebagai rutinitasnya. Query itu sendiri merupakan perintah untuk
mengakses database. Contoh sebuah query sederhana:

SELECT Nama_Barang FROM Data_Barang

Arti query di atas adalah” Pilih semua data Nama_Barang dari tabel Data_Barang”.
Bahasa query mengikuti standar bahasa Inggris yang mudah dimengerti.

Ada 2 jenis query utama dalam SQL, yaitu:


1. Data Definition Language (DDL)
Query ini digunakan untuk mendefinisikan dan mengatur semua object dalam
server database. Yang termasuk dalam DDL adalah
- CREATE, digunakan untuk membuat object database
- ALTER, digunakan untuk mengubah object database
- DROP, digunakan untuk menghapus object database
2. Data Manipulation Language (DML)

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 11


Query ini digunakan memanipulasi data dalam object database, antara lain untuk
memilih data, memasukkan data, mengubah data dan menghapus data. Yang
termasuk dalam DML antara lain:
- SELECT, digunakan untuk memilih/menampilkan data
- INSERT, digunakan untuk memasukkan data
- UPDATE, digunakan untuk mengubah data
- DELETE, digunakan untuk menghapus data

Dalam praktikum kali ini, kita menggunakan program MS SQL Server 2000. Untuk
menjalankan perintah SQL kita akan menggunakan Query Analyzer yang telah
disediakan oleh SQL Server 2000. Tampilan awal dari Query Analyzer adalah sbb :

KETIKKAN QUERY
DI SINI

Untuk mengeksekusi perintah SQL menggunakan tombol F5

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 12


Modul 3
Data Definition Language

Data Definition Language (DDL) merupakan perintah SQL yang digunakan untuk
mendefinisikan dan mendeklarasikan suatu objek database, menciptakan objek database
atau menghapus objek database. Objek database tersebut dapat berupa database dan
tabel.

DDL dapat juga digunakan untuk membuat koneksi antar tabel dalam database beserta
batasannya dengan menentukan kolom indeks sebagai kuncinya. DDL yang biasa
digunakan adalah CREATE, DROP dan ALTER.

3.1 Membuat database dan tabel


CREATE digunakan untuk membuat objek database baru. Sebagai contoh adalah untuk
membuat database baru, tabel baru, dan lain-lain.
Membuat database baru

CREATE DATABASE Nama_database


Contoh:
CREATE DATABASE PBD

Sedangkan untuk membuat basis data menggunakan parameter querynya adalah


sebagai berikut.

CREATE DATABASE Nama_Database


ON
(
NAME = 'Nama_File_Primer',
FILENAME = 'Lokasi_File_Primer',
SIZE = Ukuran,
MAXSIZE = Ukuran Maksimal,
FILEGROWTH = Pertambahan File
)
LOG ON
(
NAME = 'Nama_File_log',
FILENAME = 'Lokasi_File_Log',
SIZE = Ukuran,
MAXSIZE = Ukuran Maksimal,
FILEGROWTH = Pertambahan File
)

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 13


Contoh lain dengan tambahan parameter, membuat database Penjualan :

3.2 Mengaktifkan Basis Data


Sebelum membuat tabel maka anda harus mengaktifkan basis data yang akan dibuatkan
tabelnya dengan menggunakan perintah USE.

Sintaks :

USE DatabaseName

Contoh :

USE Penjualan

3.3 Attach dan Detach pada Query Analyzer


Script untuk attach database adalah sebagai berikut :

Keterangan :
 @dbname : adalah nama database yang akan di attach
 @filename1 : adalah letak file data yaitu yang berekstensi MDF
 @filename2 : adalah letak file log yaitu yang berekstensi LDF
Sedangakan Script untuk detach database adalah sebagai berikut :

Keterangan :
 Penjualan adalah nama database yang akan di detach

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 14


3.4 Membuat Tabel
Membuat tabel baru
CREATE TABLE nama_table(
Nama_field1 tipedata1 [ket1],
Nama_field2 tipedata2 [ket2],
. . . . . .
Nama_fieldN tipedataN [ketN])

Catatan:
 Sebelum membuat tabel maka anda harus mengaktifkan database yang akan
dibuat tabelnya dengan perintah USE.
Contoh:
USE PBD
 Tanda [ ] berarti bahwa perintah tersebut bersifat optional, artinya boleh
diikutsertakan atau boleh juga diabaikan, tergantung dari keperluan. Misalnya,
jika kita ingin membuat primary key pada table yang kita buat, maka kita harus
menyertakan kata kunci primary key.

Contoh :
CREATE TABLE dokter(
kd_dokter varchar(5) primary key not null,
nama varchar(30),
gender char(1) check(gender='L' or gender='P'),
alamat varchar(30),
gaji numeric
)

Catatan :
 Null tidak sama dengan nol, tetapi memiliki arti bahwa kolom atau field tersebut
tidak ada data yang dimasukkan.
 Not null menyatakan bahwa data pada kolom tersebut tidak boleh kosong dan
harus diisi.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 15


Contoh:
CREATE TABLE resep(
kd_resep int identity(1,1) primary key not null,
hari varchar(10) CHECK (hari IN ('senin','selasa','rabu','kamis',
'jumat','sabtu')),
tanggal datetime,
kd_pasien varchar(5) foreign key references pasien(kd_pasien),
kd_penyakit varchar(5) foreign key references penyakit(kd_penyakit),
kd_obat varchar(5) foreign key references obat(kd_obat),
kd_dokter varchar(5) foreign key references dokter(kd_dokter)
)

Identity atau yang biasa disebut dengan istilah autonumber adalah nilai yang dihasilkan
oleh sistem secara otomatis dan terurut sesuai dengan nilai urutan yang dimasukkan.
Contoh di atas kolom kode resep (kd_resep int identity(1,1)) akan terurut mulai
dari angka 1 dengan pertambahan pengurutan 1 nilai.

Bentuk umum dari identity adalah:

Nama_kolom tipe_data identity (m,n) [ket]

Dengan m adalah nilai awal sedangkan n adalah pertambahan nilainya.

3.5 Menghapus Obyek


DROP merupakan perintah SQL yang digunakan untuk menghapus objek database.

DROP Nama_objek
Contoh:

DROP DATABASE PBD


DROP TABLE dokter

3.6 Mengubah Obyek


ALTER digunakan untuk menambah kolom, mengubah kolom atau menghapus kolom
dari sebuah tabel. ALTER juga bisa digunakan untuk mengubah sebuah database.
Sintaks untuk mengubah tabel menggunakan perintah ALTER adalah:

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 16


ALTER TABLE nama_table <ACTION>

<ACTION> bisa berupa :


1. Manambah field
ADD nama_field tipe_data
2. Menghapus field
DROP nama_field
3. Memodifikasi field
ALTER nama_field tipe_data
4. Menambah constraint
ADD CONSTRAINT nama_constraint definisi_constraint
5. Menghapus constraint
DROP CONSTRAINT nama_constraint

Contoh:
Menambah kolom agama pada tabel dokter dengan type data varchar(10)

ALTER TABLE dokter ADD agama varchar(10)

Jika hanya ada 6 agama yang boleh dimasukkan ke dalam kolom agama, maka pada
tabel dokter maka kita bisa memakai perintah :

ALTER TABLE dokter


ADD CONSTRAINT cek_agama
CHECK (agama IN (‘islam’,’protestan’,’katolik’,’hindu’,’budha’,’konghuchu’))

Perintah IN mempunyai arti semua data dalam kurung adalah benar. IN merupakan
alternatif untuk mengganti perintah OR yang terlalu banyak. Seperti contoh yang sama
di bawah ini :

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 17


ALTER TABLE dokter
ADD CONSTRAINT cek_agama
CHECK (agama =‘islam’
OR agama=’protestan’
OR agama=’katolik’
OR agama=’hindu’
OR agama=’budha’
OR agama=’konghuchu’)

Menghapus constraint cek_agama

ALTER TABLE dokter


DROP CONSTRAINT cek_agama

3.7 Integritas Data


Suatu RDBMS mempunyai kemampuan data yang konsisten dengan menerapkan suatu
aturan pada saat perancangan database. Aturan ini sering disebut sebagai constraint
yang dibuat untuk membuat suatu integritas data. Constraint bisa dibuat pada saat
pembuatan table atau setelah tabel dibuat. Constraint yang sering digunakan adalah
primary key dan foreign key.

Sebuah tabel mempunyai sebuah kolom atau kombinasi beberapa kolom yang nilainya
secara urut mengidentifikasi sebuah baris dalam tabel. Kolom-kolom seperti ini disebut
dangan primary key. Sebuah tabel bisa terdiri dari beberapa primary key.

Sedangkan foreign key merupakan kolom atau kombiansi kolom yang dipakai unutk
menghubungkan sebuah table dengan table lainnya. Kolom yang didefinisikan sebuah
foreign key harus selalu merujuk kepada kolom primary key dari tabel asal baik tipe
data maupun isi datanya.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 18


4. Membuat Diagram Relasi
Setelah Semua Tabel Terbuat, Selanjutnya akan dibuat sebuah diagram relasi dari
beberapa tabel yang telah dibuat melalui fasilitas yang ad. Fungsi dari diagram
relasi ini adalah untuk melihat relasi antar tabel dengan jelas. Adapaun caranya
sebagai berikut :
a) Klik Kanan Mouse pada Database Diagram kemudian pilih New Database
Diagram

b) Pilih semua tabel dan klik add

b) Tampilan relasi tabel seperti gambar berikut.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 19


2.8 Praktikum
Membuat database dengan ketentuan sebagai berikut:

Tabel dokter
Kolom Tipe Data Keterangan
Kd_dokter Varchar(5) Primary key not null
Nama Varchar(30) Not null
Alamat Varchar(30)
Gender Char(1) Check(L/P)
Gaji Numeric

Tabel pasien
Kolom Tipe Data Keterangan
Kd_pasien Varchar(5) Primary key not null
Nama Varchar(30) Not null
Alamat Varchar(30)
Gender Char(1) Check(L/P)
Periksa Numeric

Tabel penyakit
Kolom Tipe Data Keterangan
Kd_penyakit Varchar(5) Primary key not null
Penyakit Varchar(30) Not null

Tabel obat
Kolom Tipe Data Keterangan
Kd_obat Varchar(5) Primary key not null
Obat Varchar(30) Not null

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 20


Tabel jadwal_dokter
Kolom Tipe data Keterangan
Kd_jadwal Varchar(5) Primary key not null
Hari Varchar(10) Check (senin,selasa,rabu,kamis,jumat,sabtu)
Shift Varchar(10) Check(pagi/sore)
Kd_dokter Varchar(5) Foreign key (dokter.kd_dokter)

Tabel resep
Kolom Tipe Data Keterangan
Kd_resep Int Identity (1,1) Primary key not null
Hari Varchar(10) Check (senin,selasa,rabu,kamis,jumat,sabtu)
Tanggal Datetime
Kd_pasien Varchar(5) Foreign key (pasien.kd_pasien)
Kd_penyakit Varchar(5) Foreign key (penyakit.kd_penyakit)
Kd_obat Varchar(5) Foreign key (obat.kd_obat)
Kd_dokter Varchar(5) Foreign key (dokter.kd_dokter)

CREATE TABLE dokter(


kd_dokter varchar(5) primary key not null,
nama varchar(30) not null,
gender char(1) check(gender='L' or gender='P'),
alamat varchar(30),
gaji numeric
)

CREATE TABLE pasien(


kd_pasien char(5) primary key not null,
nama varchar(30) not null,
gender char(1) check(gender='L' or gender='P'),
alamat varchar(30),
periksa numeric
)

CREATE TABLE penyakit(


kd_penyakit char(5) primary key not null,
penyakit varchar(30) not null
)

CREATE TABLE obat(


kd_obat char(5) primary key not null,
obat varchar(30) not null
)

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 21


CREATE TABLE jadwal_dokter(
kd_jadwal char(5) primary key not null,
hari varchar(10) CHECK (hari IN ('senin', 'selasa', 'rabu', 'kamis',
'jumat','sabtu')),
shift varchar(10) CHECK (shift='pagi' or shift='sore'),
kd_dokter varchar(5) foreign key references dokter(kd_dokter)
)

CREATE TABLE resep(


kd_resep int identity(1,1) primary key not null,
hari varchar(10) CHECK (hari IN ('senin', 'selasa', 'rabu', 'kamis',
'jumat','sabtu')),
tanggal datetime,
kd_pasien varchar(5) foreign key references pasien(kd_pasien),
kd_penyakit varchar(5) foreign key references penyakit(kd_penyakit),
kd_obat varchar(5) foreign key references obat(kd_obat),
kd_dokter varchar(5) foreign key references dokter(kd_dokter)
)

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 22


Modul 4
Data Manipulation Language

Data Manipulation Language (DML) merupakan query yang digunakan untuk


memanipulasi data seperti menampilkan data, mengubah data, atau mengisi data.

4.1 Memasukkan/Mengisi Data


Perintah DML INSERT digunakan untuk memasukkan data ke dalam table
Sintaks yang dipakai adalah :

INSERT INTO Nama_Tabel (Daftar_Kolom) VALUES (Daftar Nilai)

Yang harus diperhatikan dalam insert sebagai berikut :


1. Jika type data string (varchar, char, text) gunakan tanda petik tunggal untuk
mengapit data yang akan di-insertkan.
2. Jika type data numeric (int, numeric, decimal) tidak boleh menggunakan petik
tunggal.
3. Jika type data datetime gunakan petik tunggal jika settingan system adalah
tanggal dengan format inggris atau amerika maka insert data adalah „mm-dd-
yyyy‟
4. Jika data autonumber sebaiknya data tidak diisi.

Ada beberapa cara INSERT data,yaitu :


1. Tanpa menyebutkan daftar kolom, dengan ketentuan tidak ada kolom
autonumber dan autocompute dalam table itu dan data yang diisikan harus
terurut sesuai dengan urutan kolom dalam table.
2. Menyebutkan daftar kolom

Aktifkan database anda dengan perintah :


USE DATABASE pbd
Contoh :
Mengisi data Dokter

insert into dokter values('D0001','Ema Utami','P','Yogyakarta',2500000)

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 23


4.1.1 Praktikum INSERT
Gunakan perintah SQL untuk mengisi semua data berikut ini ke tabel masing-masing,

Dokter

Kd-dokter Nama Gender Alamat Gaji


D0001 Ema Utami P Yogyakarta 2500000
D0002 Suwanto Raharjo L Jakarta 2000000
D0003 Emi Susanti P Semarang 1500000
D0004 Andi Sunyoto L Bandung 2000000
D0005 Emha Taufik Luthfi L Yogyakarta 3000000

Pasien

Kd_pasien Nama Gender Alamat Periksa


P0001 Risa P Jakarta 1
P0002 Janu L Surabaya 2
P0003 Reva P Yogyakarta 4
P0004 Didi L Surakarta 3
P0005 Lativa P Purwokerto 1
P0006 Fanie L Cilacap 2
P0007 Putri P Yogyakarta 5
P0008 Randi L Jakarta 3
P0009 Daffa L Semarang 2
P0010 Vika P Bandung 4

Penyakit

Kd_penyakit Penyakit
K0001 Batuk
K0002 Panu
K0003 Kadas
K0004 Kurap
K0005 Konstipasi
K0006 Migrain
K0007 Tipus
K0008 Hepatitis
K0009 Diabetes
K0010 Hipertensi

Obat

Kd_obat Obat
M0001 Antalgin
M0002 Parasetamol
M0003 CTM
M0004 Antibiotik
M0005 Salep
M0006 Dulcolax
M0007 Pacepil
M0008 Imunolax
M0009 Hiposetamol
M0010 Metromex

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 24


Jadwal_Dokter

Kd_jadwal Hari Shift Kd_dokter


A0001 Senin Pagi D0001
A0002 Senin Sore D0002
B0001 Selasa Pagi D0004
B0002 Selasa Sore D0003
C0001 Rabu Pagi D0001
C0002 Rabu Sore D0005
D0001 Kamis Pagi D0003
D0002 Kamis Sore D0002
E0001 Jum’at Pagi D0004
E0002 Jum’at Sore D0001
F0001 Sabtu Pagi D0003

Resep

Hari Tanggal Kd_Pasien Kd_Penyakit Kd_Obat Kd_Dokter


Senin 2015/11/2 P0001 K0001 M0001 D0001
Senin 2015/11/2 P0002 K0001 M0001 D0002
Senin 2015/11/2 P0002 K0001 M0001 D0002
Lanjutkan isi sendiri sebanyak 10 record

4.2 Retrieving Data / Menampilkan Data


SELECT merupakan query yang digunakan untuk mengambil data atau
menampilkan data. Data yang telah diambil atau dipilh boleh saja ditampilkan dalam
aplikasi yang kita buat atau digunakan untuk kontrol program. Sintak umum dari
SELECT adalah sebagai berikut :

SELECT Daftar_Kolom FROM Nama_Tabel WHERE Kondisi ORDER BY Kolom

Contoh :
Menampilkan data-data dokter

SELECT * FROM Dokter

4.2.1 Praktikum SELECT


Sebagai latihan untuk perintah SELECT, kerjakan soal berikut ini :
1. Tampilkan semua data pasien
2. Tampilkan nama dan gaji dari tabel dokter

4.3 SELECT Dengan Kondisi

4.3.1 Klausa WHERE

WHERE Digunakan untuk menyatakan kondisi yang harus dipenuhi oleh sebuah record
data yang akan dipilih oleh perintah SELECT.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 25


Sintaks UMUM :

SELECT [Daftar_Kolom] FROM Tabel WHERE Kondisi

Operator yang digunakan untuk klausa WHERE adalah sebagai berikut :

Operator Pengertian
= Sama Dengan
<> Tidak Sama Dengan
> Lebih Besar
< Lebih Kecil
>= Lebih Besar atau Sama Dengan
<= Lebih Kecil atau Sama Dengan
BETWEEN Diantara Dua Nilai
LIKE Mencari Bagian yang sama
AND Menggabungkan Dua Kondisi
NOT Menolak Kondisi
OR Syarat Kondisi Untuk Setiap Pilihan

Operator logika terdiri dari AND, OR, dan NOT. Operator AND dan OR
digunakan membandingkan kondisi pada klausa WHERE. Operator NOT digunakan
untuk mencari nilai kebalikan dari kondisi yang dicari.

4.3.2 DISTINCT

Apabila kita ingin menampilkan data tetapi data yang sama tidak ditampilkan berulang-
ulang maka kita bisa menggunakan kata kunci DISTINCT. Perintah ini dilakukan jika
terdapat banyak data yang sama dalam satu kolom.

Sintaks UMUM :

SELECT DISTINCT [Kolom] FROM Tabel

4.3.3 BETWEEN

Perintah ini jika kita ingin mengambil beberapa data yang terletak antara nilai dalam
klausa BETWEEN. Hanya berlaku pada data yang bertipe numeric dan string.

Sintaks UMUM :

SELECT [Daftar_Kolom] FROM Tabel WHERE [Kondisi]


BETWEEN [Batas_Nilai_1] AND [Batas_Nilai_2]

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 26


4.3.4 TOP

Perintah ini digunakan untuk menampilkan beberapa data paling atas dari hasil
SELECT. Misalnya kita ingin menampilkan 3 data paling atas saja.

Sintaks UMUM :

SELECT TOP n [Daftar_Kolom] FROM Tabel [WHERE Kondisi]

Contoh :
Menampilkan 3 data saja dari urutan paling atas :

SELECT TOP 3 * FROM Dokter

4.3.5 IS NULL

NULL adalah nilai dari sebuah field atau kolom yang tidak memiliki data apapun.
NULL tidak sama dengan sebuah karakter spasi dan atau nilai 0 pada data numeric.

4.3.6 Sorting

Untuk mengurutkan data-data dari hasil SELECT, klausa yang digunakan ialah ORDER
BY. Proses pengurutan dapat dilakukan secara ascending maupun descending. Secara
default pengurutan dilakukan secara ascending.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 27


Modul 5
Klausa LIKE, UPDATE dan DELETE

5.1 LIKE
LIKE digunakan untuk mengambil data dengan pencarian data yang memiliki bagian
yang sama dalam klausa LIKE tersebut. Dengan menggunakan kondisi LIKE karakter
apapun dapat dicari, dapat berupa satu, dua, atau semua karakter yang ada didalam
string yang akan dicari. Ada beberapa hal yang harus diketahui dalam klausa LIKE,
diantaranya

Tanda % (percent)
Tanda % digunakan untuk mewakili semua karakter. Tanda ini bisa diletakkan di bagian
depan, tengah maupun belakang.

Contoh :
1. Menampilkan data dokter yang namanya memiliki karakter pertama huruf „E‟
SELECT * FROM dokter WHERE nama LIKE ‘E%’

2. Menampilkan data dokter yang namanya memiliki karakter terakhir huruf „O‟

SELECT * FROM dokter WHERE nama LIKE ‘%O’

Tanda _ (underscore)
Tanda _ digunakan untuk mewakili sebuah karakter. Tanda ini juga bisa diletakkan di
bagian depan, tengah maupun belakang.

Contoh :
Misalnya dari tabel dokter yang ada, apabila kita ingin menampilkan data dokter yang
memiliki nama dengan karakter kedua adalah „U‟, maka bisa digunakan perintah:

SELECT * FROM dokter WHERE nama LIKE ‘_U%’

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 28


5.2 Wildcard
Dalam memasukkan data ke tabel dalam database, sangat mungkin terjadi
kesalahan penulisan ataupun adanya perbedaan pelafalan. Sebagai contoh, ada yang
menyebut „November‟ dengan „Nopember‟, „Februari‟ dengan „Pebruari‟ atau
„Yogyakarta‟ dengan „Jogjakarta‟ atau bahkan hanya „Yogya‟ ataupun „Jogja‟.

Untuk menanggulangi permasalahan tersebut, kita bisa menggunakan wildcard


dimana semua elemen (yang mungkin digunakan untuk input data) dipakai melalui satu
sintaks. Untuk kasus di atas, berikut pemecahannya:

SELECT * FROM dokter WHERE alamat LIKE ‘[JY]og[jy]a%’

Perintah tersebut akan menghasilkan keluaran yang memuat semua


kemungkinan penulisan nama kota Yogyakarta. Permutasi akan menghasilkan
kemungkinan sebagai berikut :

Jogja%
Jogya%
Yogya%
Yogja%

Sementara % mewakili semua karakter sesudah huruf „a‟.

Beberapa hal yang harus diketahui dalam wildcard antara lain :


1. Karakter [ ].
Karakter [ ] digunakan untuk mempresentasikan karakter yang terdapat didalam
tanda [ ]. Data yang tampil akan mengikuti kondisi LIKE atau NOT LIKE.
2. Karakter [ ^ ].
Karakter [ ^ ] digunakan untuk menampilkan karakter yang tidak disebutkan
didalam tanda [ ]. Tanda ^ berguna sama seperti karakter NOT.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 29


5.3 UPDATE
UPDATE digunakan untuk melakukan perubahan pada data. Sintaks umum yang biasa
digunakan:

UPDATE nama_tabel SET kolom1=nilai1 ,…, kolomN=nilaiN


WHERE kondisi

Contoh:
Mengganti nama dan alamat dokter yang memiliki kode dokter D0001
UPDATE dokter SET nama=’Ema Utami Saja’, alamat=’Semarang’
WHERE kd_dokter=’D0001’

Catatan:
Hati-hati jika menggunakan perintah UPDATE yang tidak menyertakan klausa WHERE
akan mengakibatkan semua data dalam tabel yang dirujuk akan diganti dengan nilai
yang diisikan.

5.4 DELETE
DELETE digunakan untuk melakukan penghapusan pada data. Sintaks umum yang
biasa digunakan:
DELETE FROM nama_tabel WHERE kondisi

Contoh:
Menghapus data dokter yang mempunyai kode dokter D0003
DELETE FROM dokter WHERE kd_dokter=’D0003’

Catatan:
Hati-hati jika menggunakan perintah DELETE yang tidak menyertakan klausa WHERE
akan mengakibatkan semua data dalam tabel yang dirujuk akan terhapus.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 30


5.5 Praktikum
1. Buatlah perintah untuk menampilkan data dokter dengan nama yang memiliki
karakter huruf „i‟
2. Buatlah perintah untuk menampilkan nama dokter dengan alamat yang memiliki
akhiran klausa „karta‟
3. Buatlah perintah untuk menampilkan data dokter dengan nama yang memiliki
karakter kedua huruf „m‟
4. Buatlah perintah untuk mengubah alamat dokter yang beralamat „Jakarta‟
dengan „Semarang‟
5. Buatlah perintah untuk mengubah alamat dokter dengan nama berklausa
„Suwanto‟ menjadi „Semarang‟
6. Buatlah perintah untuk menghapus data dokter dengan nama berklausa „Susan‟
7. Buatlah perintah untuk menghapus data dokter dengan alamat „Bandung‟
8. Buatlah perintah untuk menghapus data dokter dengan kode „D0002‟

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 31


Modul 6
Latihan Kuis

Database Nasabah BankPlecit_xxxx

Nasabah_xxxx

Kd_nasabah
Nama Cabang_xxxx
Alamat
Rekening
Kd_cabang Kd_cabang
Saldo Nama
Alamat
Jml_nasabah

Buatlah database dengan ketentuan sbb:


Tabel cabang_xxxx
Kolom Tipe Data Keterangan
Kd_cabang Varchar(5) Primary key not null
Nama Varchar(30) Not null
Alamat Varchar(30) Not null
Jml_nasabah Numeric Not null

Tabel nasabah_xxxx
Kolom Tipe Data Keterangan
Kd_nasabah Varchar(5) Primary key not null
Nama Varchar(30) Not null
Alamat Varchar(30) Not null
Rekening Numeric Not null
Kd_cabang Varchar(5) Foreign key (cabang.kd_cabang) not null
Saldo Numeric Not null

Inputkan data seperti dalam tabel di bawah ini:


Cabang_xxxx
Kd_cabang Nama Alamat Jml_nasabah
KC001 KC Amikom Condong Catur 8
KC002 KC Janti Janti 5
KC003 KC Gejayan Gejayan 6
KC004 KC Wirobrajan Wirobrajan 8
KC005 KC Kauman Kauman 7
KC006 KC Imogiri Imogiri 6
KC007 KC Babarsari Babarsari 3

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 32


Nasabah_xxxx
Kd_nasabah Nama Alamat Rekening Kd_cabang Saldo
N0001 Januar Kalasan 12340001 KC002 1500000
N0002 Febri Kuncen 12340002 KC004 2500000
N0003 Maria Paris 12340003 KC006 3000000
N0004 Aprilia Samirono 12340004 KC003 2000000
N0005 Memey Seyegan 12340005 KC001 1200000
N0006 Juno Gamping 12340006 KC004 2800000
N0007 Julia Monjali 12340007 KC001 1400000
N0008 Agusto Turi 12340008 KC001 2200000
N0009 Septia Ngampilan 12340009 KC005 1300000
N0010 Okta Sagan 12340010 KC003 2700000
N0011 Nova Kotabaru 12340011 KC005 2000000
N0012 Desi Terban 12340012 KC003 700000

Soal:
1. Tampilkan semua nama nasabah, alamat, dan saldonya
2. Tampilkan nama nasabah dengan saldo > 2000000
3. Tampilkan nama nasabah dengan alamat Gejayan
4. Tampilkan nama nasabah dengan kode cabang KC003
5. Tampilkan semua data kantor cabang (nama dan alamat)
6. Tampilkan nama kantor cabang dengan alamat Kauman
7. Tampilkan nama kantor cabang dengan jumlah nasabah > 6 orang
8. Update data kantor cabang dengan kode KC002 menjadi
Nama : KC RSJ Pakem
Alamat : Pakem
Jumlah nasabah : 7
9. Hapus data semua kantor cabang dengan jumlah nasabah kurang dari 5
10. Update data nasabah dengan kode N0010 menjadi
Alamat : Monjali
Saldo : 4000000
11. Hapus semua data nasabah dengan alamat Terban

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 33


Modul 7
Fungsi Agregate dan Kolom Alias

7.1 Fungsi Agregate


Fungsi Agregate ialah fungsi – fungsi statistik yang ditetapkan pada baris – baris yang
diseleksi. Fungsi Agregate sering digunakan untuk operasi perhitungan. Fungsi yang
sering digunakan adalah :
AVG
Digunakan untuk mencari nilai rata-rata dari suatu field dalam sebuah tabel.
MAX
Digunakan untuk mencari nilai terbesar (maksimum) dari suatu field dalam sebuah
tabel.
MIN
Digunakan untuk mencari nilai terkecil (minimum) dari suatu field dalam sebuah tabel.
SUM
Digunakan untuk mencari hasil jumlah dari suatu field dalam sebuah tabel.
COUNT
Digunakan untuk menghitung jumlah record atau baris data dari suatu field dalam
sebuah tabel.

Sintaks yang biasa dipakai:


SELECT AVG(nama_kolom) FROM nama_tabel
SELECT MAX(nama_kolom) FROM nama_tabel
SELECT MIN(nama_kolom) FROM nama_tabel
SELECT SUM(nama_kolom) FROM nama_tabel
SELECT COUNT(nama_kolom) FROM nama_tabel

Contoh:
1. Menghitung jumlah pasien

SELECT COUNT(*) FROM pasien


SELECT COUNT(kd_pasien) FROM pasien

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 34


2. Menghitung jumlah periksa terbesar dari pasien

SELECT MAX(periksa) FROM pasien

3. Menghitung jumlah periksa terkecil dari pasien

SELECT MIN(periksa) FROM pasien

4. Menghitung rata-rata pasien diperiksa


SELECT AVG(periksa) FROM pasien

5. Menghitung jumlah periksa dari semua pasien

SELECT SUM(periksa) FROM pasien

Selain contoh dasar di atas, fungsi agregate juga bisa dikombinasikan dengan
penggunaan kondisi WHERE. Seperti contoh di bawah ini:
1. Menghitung jumlah pasien yang telah diperiksa lebih dari 2 kali
SELECT COUNT(kd_pasien) FROM pasien WHERE periksa>2

2. Menghitung jumlah pasien yang berasal dari Yogyakarta.


SELECT COUNT(kd_pasien) FROM pasien WHERE alamat=’Yogyakarta’

Perlu diketahui :
Bahwa AVG, MAX, MIN, SUM, COUNT mengabaikan nilai NULL. Sedangkan
COUNT(*) tidak mengabaikan nilai NULL.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 35


7.2 Kolom Alias
Alias digunakan untuk memberi nama lain pada kolom – kolom hasil dari
perintah SELECT. Alias ditulis setelah nama kolom atau ekspresi yang akan diganti /
diberi nama dengan didahului keyword AS.
sintaks dasar :

SELECT kolom1 AS alias1, kolom2 AS alias2, … , kolomN


As aliasN FROM tabel

keterangan :
Jika kolom alias ada spasi maka gunakan [ ],‟ „ untuk kolom alias tersebut.
Contoh:
SELECT COUNT(kd_pasien) AS [Jumlah Pasien Dari Yogyakarta]
FROM pasien WHERE alamat='Yogyakarta'

7.3 Praktikum
1. Buatlah perintah untuk menghitung jumlah dokter yang ada.
2. Buatlah perintah untuk menghitung gaji dokter tertinggi dan terendah
3. Buatlah perintah untuk menghitung rata-rata gaji dokter
4. Buatlah perintah untuk menghitung jumlah gaji semua dokter
5. Buatlah perintah untuk menampilkan nama dokter dengan gaji tertinggi dan terendah
6. Buatlah perintah untuk menampilkan jumlah dokter dari Yogyakarta dengan nama
alias kolom ‟Jumlah Dokter dari Yogyakarta‟

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 36


Modul 8
Grouping

8.1 Grouping
Grouping ialah proses pengelompokkan data yang dilakukan berdasarkan daftar kolom
yang disebutkan dalam SELECT.
Sintaks dasar :

SELECT column, group function (column)


FROM table
[WHERE condition]
[GROUP BY group by expression]
[ORDER BY column]

Catatan :
1. Semua kolom yang berada dalam daftar SELECT yang tidak berada dalam
group function harus ditulis dalam klausa GROUP BY.
2. Semua pengelompokan mengabaikan nilai NULL di dalam kolom.
3. HAVING digunakan untuk membatasi hasil pengolompokan ( group ).

Perbedaan antara WHERE dan HAVING :


 HAVING persyaratan pre-select atau sebelum data dipilih
 WHERE persyaratan post-select atau setelah data dipilih
Contoh:
Menampilkan jumlah pasien dari tiap daerah
SELECT alamat AS Kota_Asal, COUNT(alamat) AS Jumlah
FROM pasien GROUP BY alamat

8.2 Praktikum
1. Buatlah perintah untuk menampilkan jumlah dokter dari tiap daerah
2. Buatlah perintah untuk menampilkan jumlah pasien berdasar jumlah periksa
3. Buatlah perintah untuk menampilkan jumlah jadwal periksa dari tiap dokter dalam
satu
minggu

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 37


Modul 9
Join Antar Tabel

9.1 Join
Join merupakan sebuah operasi yang digunakan untuk mendapatkan data
gabungan dari dua tabel atau lebih. Operasi ini digunakan dalam perintah SELECT dan
biasanya dipakai untuk memperoleh data secara detail dari tabel-tabel yang saling
terkait (memiliki relasi). Misalnya karena tabel jadwal_dokter hanya memuat kode
dokter saja tanpa nama dokter, maka kita harus melakukan join dengan tabel dokter
yang memuat nama dokter.

Terdapat 3 jenis join yaitu :


1. Cross Join (Cartesian Join)
Cross join menghasilkan output berupa kombinasi dari semua baris yang
terdapat dalam tabel-tabel yang digabungkan baik yang berpasangan maupun
yang tidak berpasangan. Pada kenyataannya join jenis ini jarang bahkan tidak
pernah dipakai. Meskipun begitu, jenis join inilah yang merupakan dasar dari
join antar tabel.

2. Inner Join
Inner join menghasilkan output berupa kombinasi baris-baris yang memiliki
pasangan saja. Kombinasi baris yang tidak berpasangan akan dieliminasi atau
tidak digunakan. Baris-baris yang tidak memiliki pasangan pada tabel lainnya
juga tidak dimunculkan.

3. Outer Join
Outer join hampir sama dengan inner join, hanya saja baris yang tak memiliki
pasangan tetap akan ditampilkan. Outer join dibagi menjadi tiga, yaitu:
 Left join
 Right join
 Full outer join

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 38


Sintaks umum yang sering dipakai:
Untuk Cross Join

SELECT tabel_1.kolom, tabel_2.kolom


FROM tabel_1, tabel_2
atau
SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1 CROSS JOIN tabel_2

Untuk Inner Join

SELECT tabel_1.kolom, tabel_2.kolom


FROM tabel_1, tabel_2
WHERE tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2
atau
SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1 INNER JOIN tabel_2
ON tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2

Untuk Outer Join


SELECT tabel_1.kolom, tabel_2.kolom
FROM tabel_1 [LEFT|RIGHT|FULL OUTER JOIN] tabel_2
ON tabel_1.kolom_kunci_1=tabel_2.kolom_kunci_2

Contoh:
Perintah untuk menggabungkan data tabel jadwal_dokter dengan tabel dokter
SELECT * FROM jadwal_dokter INNER JOIN dokter
ON jadwal_dokter.kd_dokter=dokter.kd_dokter

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 39


9.2 Praktikum
1) Buatlah perintah untuk menggabungkan data tabel resep dengan tabel dokter
2) Buatlah perintah untuk menggabungkan data tabel resep dengan tabel pasien
3) Buatlah perintah untuk menggabungkan data tabel resep dengan tabel penyakit
4) Buatlah perintah untuk menggabungkan data tabel resep dengan tabel obat
5) Buatlah perintah untuk menampilkan jadwal dokter (nama dokter, hari, shift)
6) Buatlah perintah untuk menampilkan nama dokter yang praktiknya hari selasa
7) Buatlah perintah untuk menampilkan nama dokter dengan tanggal periksa 3
Agustus 2006
8) Buatlah perintah untuk menampilkan nama pasien dan penyakitnya yang
diperiksa hari senin

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 40


Modul 10
OUTER JOIN

10.1 Outer Join


Operasi outer join terbagi menjadi tiga jenis yaitu :
1. Left outer join
Data yang ada pada tabel sebelah kiri akan ditampilkan semua sesuai
pasangannya, jika ada data yang tidak memiliki pasangan, pada tabel sebelah
kanan akan diisikan NULL.
2. Right outer join
Data yang ada pada tabel sebelah kanan akan ditampilkan semua sesuai
pasangannya, jika ada data yang tidak memiliki pasangan, pada tabel sebelah
kiri akan diisikan NULL.
3. Full outer join
Semua data dari tabel-tabel yang di join ditampilkan, baik itu yang secara left
outer join, right outer join maupun inner join.

Aktifkan database anda kemudian jalankan perintah berikut:

SELECT * FROM dokter LEFT JOIN jadwal_dokter


ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT * FROM dokter RIGHT JOIN jadwal_dokter


ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT * FROM dokter FULL JOIN jadwal_dokter


ON dokter.kd_dokter=jadwal_dokter.kd_dokter

Coba bandingkan perintah di atas dengan perintah di bawah ini:

SELECT * FROM jadwal_dokter LEFT JOIN dokter


ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT * FROM jadwal_dokter RIGHT JOIN dokter


ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT * FROM jadwal_dokter FULL JOIN dokter


ON dokter.kd_dokter=jadwal_dokter.kd_dokter

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 41


Untuk lebih memahami perbedaan antara berbagai jenis JOIN, coba jalankan perintah-
perintah di bawah ini:

SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift


FROM dokter INNER JOIN jadwal_dokter
ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift


FROM dokter LEFT JOIN jadwal_dokter
ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift


FROM dokter RIGHT JOIN jadwal_dokter
ON dokter.kd_dokter=jadwal_dokter.kd_dokter

SELECT dokter.nama, jadwal_dokter.hari, jadwal_dokter.shift


FROM dokter FULL JOIN jadwal_dokter
ON dokter.kd_dokter=jadwal_dokter.kd_dokter

Setelah menjalankan query di atas, ada terdapat beberapa persamaan dan perbedaan
antara operasi join yang satu dengan lainnya. Yang menjadi kesamaannya ialah bahwa
semua operasi join pasti menggabungkan beberapa tabel untuk mendapatkan data
gabungan, sedangkan perbedaan antara cross join dengan jenis join lainnya adalah
dengan ada tidaknya persyaratan atau pengecekan kondisi join. Cross join merupakan
jenis join yang tidak memakai persyaratan, sementara jenis join lainnya memerlukan
persyaratan. Persyaratan yang dimaksud adalah data pada kolom foreign key di tabel
yang merujuk harus sama dengan data pada kolom primary key di tabel yang dirujuk.

Secara umum persyaratan atau kondisi tersebut dapat dituliskan sebagai berikut:

tabel_1.kolom_primary_key = tabel_2.kolom_foreign_key

Sintaks tersebut dapat ditulis secara terbalik dan tetap memiliki arti yang sama, sebagai
berikut:

tabel_2.kolom_foreign_key = tabel_1.kolom_primary_key

Catatan:
Kolom-kolom_foreign_key pada tabel_2 harus mereferensi ke kolom_primary_key
pada tabel_1.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 42


Karena keharusan adanya foreign key dan primary key yang saling berhubungan itu,
maka inner join dan outer join hanya dapat dilakukan pada tabel yang memiliki relasi
saja. Sementara itu, cross join dapat dilakukan pada sembarang tabel, baik tabel yang
saling berhubungan maupun tidak.

Untuk INNER JOIN terdapat 2 cara penulisan, yaitu:


1. Cara pertama adalah dengan memisahkan daftar tabel yang akan dijoin dengan
tanda koma dan melakukan pengecekan kondisi menggunakan WHERE.
2. Cara kedua adalah menggunakan keyword INNER JOIN atau disingkat dengan
JOIN saja di antara dua tabel yang akan di-join-kan dan melakukan pengecekan
kondisi dengan keyword ON.

Cara pertama lebih singkat dan akan lebih terasa jika yang di-joinkan lebih dari dua
tabel. Hal ini terjadi karena keyword JOIN dan ON merupakan satu kesatuan yang
hanya dapat diterapkan pada dua buah tabel saja. Untuk lebih dari dua tabel kita harus
menuliskan JOIN dan ON berulang kali. Perhatikan contoh berikut:

SELECT resep.kd_resep, pasien.nama, penyakit.penyakit


FROM resep, pasien, penyakit
WHERE resep.kd_pasien=pasien.kd_pasien
AND resep.kd_penyakit=penyakit.kd_penyakit

SELECT resep.kd_resep, pasien.nama, penyakit.penyakit


FROM resep JOIN pasien
ON resep.kd_pasien=pasien.kd_pasien
JOIN penyakit
ON resep.kd_penyakit=penyakit.kd_penyakit

Walaupun penulisannya lebih panjang tapi bentuk yang kedua lebih dianjurkan karena
membutuhkam memory yang lebih sedikit dan prosesnya lebih cepat. Hal ini akan
terasa sekali jika melibatkan tabel-tabel dengan data yang banyak. Tidak seperti inner
join, penulisannya hanya ada satu cara. Walaupun demikian kita dapat menyingkat
dengan menghilangkan keyword OUTER, sehingga LEFT OUTER JOIN dapat
disingkat menjadai LEFT JOIN dan seterusnya.

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 43


10.2 Praktikum
1) Buatlah perintah untuk menggabungkan data tabel resep dengan tabel dokter
(pasien, penyakit, dan obat).
2) Buatlah perintah untuk menampilkan data resep (kode resep, hari,
tanggal, nama pasien, nama penyakit, nama obat, nama dokter
periksa)

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 44


Modul 11
Alias Tabel

11.1 Alias Tabel


Alias tabel merupakan cara yang digunakan untuk mempersingkat penulisan
nama-nama tabel. Alias tabel berarti mengganti nama tabel dengan nama yang lebih
singkat (biasanya kode huruf). Biasa dipakai untuk menampilkan beberapa kolom dari
beberapa tabel yang akan dijoinkan, sehingga mempermudah dan mempercepat dalam
penulisannya.

Sintaks yang biasa digunakan:


SELECT * FROM tabel_1 a INNER JOIN tabel_2 b
ON tabel_1.kolom_kunci_1= tabel_2.kolom_kunci_2

Contoh:
Menampilkan nama dokter dengan jadwal praktiknya

SELECT a.nama, b.hari, b.shift FROM dokter a


INNER JOIN jadwal_dokter b
ON a.kd_dokter=b.kd_dokter

11.2 Praktikum
1) Buatlah perintah untuk menampilkan data resep (kode resep, hari,
tanggal, nama pasien, nama penyakit, nama obat, nama dokter
periksa)

2) Buatlah perintah untuk menampilkan nama dokter yang praktiknya hari jumat
dan sabtu
3) Buatlah perintah untuk menampilkan nama pasien yang diperiksa tanggal 5
Agustus 2006

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 45


MODUL 12
UAS PREPARATION

Database Market Dealer

pembelian penjualan

Kd_pembelian Kd_penjualan
Hari Hari
Tanggal barang Tanggal
Kd_supplier Kd_agen
Kd_barang Kd_barang Kd_barang
Jumlah Barang Jumlah

supplier agen
Kd_supplier Kd_agen
Supplier Agen
Alamat Alamat

Soal:
1. Tampilkan data pembelian (kode pembelian, hari, tanggal, nama

supplier, nama barang, jumlah)

2. Tampilkan data penjualan (kode penjualan, hari, tanggal, nama agen,


nama barang, jumlah)

3. Tampilkan nama barang yang terjual dengan jumlah > 20


4. Tampilkan nama barang dan jumlah barang yang terjual pada tanggal 1 Agustus
2006 dikelompokkan berdasar nama barang
5. Tampilkan nama dan alamat supplier yang menyuplai sabun
6. Tampilkan nama dan alamat agen yang membeli sampo
7. Tampilkan nama barang yang terbeli dengan agen yang beralamat Yogyakarta
8. Tampilkan nama supplier yang menyuplai barangnya pada tanggal 2 Agustus
2006

Praktikum Sistem Basis Data STMIK AMIKOM Yogyakarta 46

Anda mungkin juga menyukai