Anda di halaman 1dari 103

Database 1

Dian Tri Wiyanti, S.Si, M.Cs


Jurusan Matematika FMIPA
Universitas Negeri Semarang
1
IDENTITAS MATA KULIAH
1. NAMA MATA KULIAH : DATABASE 1
2. CAPAIAN PEMBELAJARAN LULUSAN
a. CP Sikap : Menginternalisasi semangat kemandirian, kejuangan, dan kewirausahaan.
b. CP Pengetahuan : Menguasai prinsip dasar, mampu melaksanakan dan menyampaikan hasil-
hasil kajian di bidang Matematika, Statistika, atau Komputasi yang akurat dalam bentuk
laporan atau kertas kerja.
c. CP Ketrampilan : Merekonstruksi, memodifikasi, menganalisis/berpikir secara terstruktur,
mengkaji keakuratan dan mengintepretasikan serta mengkomunikasikan secara lisan
maupun tulisan dengan tepat dan jelas terhadap permasalahan matematis dari suatu
fenomena.
3. CAPAIAN PEMBELAJARAN MATA KULIAH :
 Memahami konsep matematika terapan yang dapat diaplikasikan dengan pemrograman
komputer untuk keperluan pada bidang-bidang tertentu.
 Memahami dengan cerdas dasar-dasar pemrograman dan dapat membuat program dari
sebuah masalah terutama dalam bidang Matematika menggunakan software MySql dan
bahasa pemrograman PHP dengan bertanggung jawab sesuai dengan nilai-nilai konservasi.
4. DOSEN PENGAMPU : DIAN TRI WIYANTI, S.Si, M.Cs
REFERENSI
[1] Sutanta, E., 2011, Basis Data dalam Tinjauan Konseptual, Penerbit Andi,
Yogyakarta.

[2] Kadir, A., 2003, Konsep dan Tuntunan Praktis Basis Data, Penerbit Andi,
Yogyakarta.
DAFTAR MATERI
PERTEMUAN MATERI POKOK SUMBER
1 Pendahuluan [1] [2]
2 Definisi Basis Data dan Sistem Basis Data [1] [2]

3 Tujuan Pengembangan dan Keuntungan Basis Data [1] [2]


4 Batasan Aturan Basis Data [1] [2]
5 Arsitektur Basis Data [1] [2]
6 Pemodelan Data [1] [2]
7 Model Data Entity Relationship [1] [2]
8 Model Data Semantic [1] [2]
9 Model Data Hierarchycal [1] [2]
10 Model Data Network [1] [2]
11 Model Data Relational [1] [2]
12 Schema dan Subschema Basis Data [1] [2]
13 Aspek Pengembangan Basis Data [1] [2]
14 Studi Kasus Perancangan Basis Data [1] [2]
Pendahuluan Contoh :
 Catatan identitas
• Apa itu data...? pegawai
 Catatan transaksi
• Apa itu informasi...? pembelian
 Catatan transaksi
Contoh : penjualan
Unit
input Daftar pegawai Output
berdasarkan Pengolah
departemen
 Daftar pegawai
berdasarkan
golongan Unit
 Rekapitulasi transaksi
Penyimpan
pembelian/penjualan
pada akhir bulan
Pengertian Database...?

• Database adalah kumpulan data yang saling terkait yang


disusun agar mudah untuk diakses.

Database
Akademik Mahasiswa
Registrasi
Matakuliah
Nilai
Matakuliah
SISTEM INFORMASI
• Perangkat keras (hardware) : input/ouput device, memory, processor
• Perangkat lunak (software) : OS, bahasa pemrograman, program-
program aplikasi
• Berkas basis data (file) : data
• Prosedure : prosedur pengoperasian / manual / aturan-aturan yang
berhubungan dengan sistem informasi
• Manusia (brainware) : operator, DB admin, manajer SI, programmer,
teknisi, dll.
Pemanfaatan Basis Data
• Mudah untuk memperoleh informasi tertentu.

• Dalam aplikasi, mampu untuk mendapatkan jawaban pertanyaan-


pertanyaan seperti:

• Berapa jumlah mahasiswa yang mengikuti kuliah “Basis Data”?

• Siapa saja yang lulus pada periode Maret tahun ini?

• Berapa persentase mahasiswa yang tidak melakukan registrasi pada


semester lalu?

• Berapa jumlah SKS yang diperoleh oleh mahasiswa dengan NIM 12345?
Model Relasional
• Salah satu model database yang terkenal adalah model
relasional.

• Data disusun dalam bentuk tabel-tabel.

• Antar dua tabel bisa punya hubungan.


Contoh :
Contoh Informasi yang Bisa Diperoleh
Istilah dasar :

Database
Akademik
Mahasiswa
Registrasi
Matakuliah

Nilai
Matakuliah

Ada
3 tabel
Karakteristik dalam Relasi

• Tidak ada baris yang kembar.

• Urutan baris tidak penting.

• Setiap atribut memiliki nama yang unik.

• Letak atribut bebas.

• Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk


semua baris.
Pengertian Tidak Ada Baris Kembar
• Baris punya identitas yang membuat dua buah baris tidak
kembar.

• Identitas tersebut dinamakan “primary key”.


Pengertian Urutan Baris Tidak Penting
NO_MHS KODE_MK NILAI NO_MHS KODE_MK NILAI

55 DB001 A 57 DB001 A

55 PI001 B 55 PI001 B

56 DB001 B 56 DB001 B

57 DB001 A 55 DB001 A

57 DB002 A 57 DB002 A
Setiap Atribut Memiliki Nama Unik
Nama
Nama
atribut Nama
TIDAK
atribut
atribut
unikunik UNIK
unik

NO_SISWA TES_1 TES_2 NO_SISWA TES TES

12 75 80 12 75 80

13 76 78 13 76 78

14 89 58 14 89 58

15 60 90 15 60 90

16 75 86 16 75 86
Letak Atribut Bebas
NO_SISWA TES_1 TES_2 TES_2 TES_1 NO_SISWA

12 75 80 80 75 12

13 76 78 78 76 13

14 89 58 58 89 14

15 60 90 90 60 15

16 75 86 86 75 16

Urutan kolom tidak penting


Setiap Atribut Memiliki Nilai Tunggal
Semua atribut Nilai TIDAK
bernilai tunggal TUNGGAL

NO_SISWA TES_1 TES_2 NO_SISWA TES

12 75
12 75 80
80
13 76 78 13 76
78
14 89 58 14 89
58
15 60 90 15 60
90
16 75 86 16 75
86
Setiap Atribut Berjenis Sama untuk Semua Baris
Semua atribut Jenis tidak
bernilai tunggal sama

NO_SISWA TES_1 TES_2 NO_SISWA TES_1 TES_2

12 75 80 12 75 80

13 76 78 13 Tujuh 78
puluh
14 89 58 enam
14 89 58
15 60 90
15 60 90
16 75 86
16 75 86
Apa Primary Key-nya? (1)
NO_KTP NO_KK NAMA

? ? ?
Apa Primary Key-nya? (2)
KODE_DEPARTEMEN NAMA_DEPARTEMEN

1 Akunting

2 EDP

3 Pemasaran

4 Produksi
Apa Primary Key-nya? (3)
NO_FAKTUR KODE_ITEM JUMLAH

456 K-1 2

457 K-5 1

459 K-1 3

459 K-2 1

460 K-8 5
Apa Primary Key-nya? (4)
SEMESTER TAHUN NO_MHS KODE_MKULIAH SKS

1 2007 1189 M-01 3

1 2007 1189 M-02 2

1 2007 1190 M-01 3

1 2007 1190 M-02 2

1 2007 1190 M-03 3


Apa yang Salah? (1)
NO_PEGAWAI SEX BAHASA_ASING

12345 L ARAB

12346 W

12347 L INGGRIS

12348 W INGGRIS
JERMAN

12349 W SPANYOL
Apa yang Salah? (2)
NO_PEGAWAI SEX BAHASA_ASING

12345 L ARAB

12346 W

12347 L INGGRIS

12348 W INGGRIS

12348 W JERMAN
Praktikum MySQL
Dasar MySQL
Abdul Kadir
Overview MySQL
• MySQL merupakan Database
Server yang bersifat :
• Open Source
• Multiplatform
• Berbasis database relasional
• Bisa dipakai untuk database
pribadi atau pada level korporat
berskala kecil hingga besar
• Selain bersifat free, ada juga yang
bersifat komersial
Overview MySQL
(Lanjutan…)
• Menggunakan SQL Perm intaan berupa
pernyataan seperti:
untuk mendukung SELEC T * FR O M bintang;

pengaksesan data
(query)

Klien S erver

H asil dari
perm intaan
Dasar SQL
• SQL = Structured Query Language
• Digunakan untuk mengakses basis data relasional
• Bersifat standar; bisa dipakai untuk basis data
relasional lainnya
• Perintah SQL dapat dibagi menjadi DDL dan DML
Perintah DDL
• DDL = Definition Data Language
• Digunakan untuk kepentingan penciptaan database,
tabel, hingga penghapusan database atau tabel
• Contoh:
• CREATE DATABASE
• CREATE TABLE
• DROP TABLE
• ALTER TABLE
Perintah DML
• DML = Data Manipulation Language
• Digunakan untuk memanipulasi data
• Contoh:
• SELECT – mengambil data
• DELETE – menghapus data
• INSERT – menyisipkan data
• UPDATE – mengubah data
Persiapan Pemakaian MySQL
• Lakukan instalasi MySQL terlebih dulu
• MySQL memiliki sejumlah tool; salah satu di
antaranya adalah:
• program mysql, yang dipakai untuk mengakses database
dari sisi klien
• Program mysqladmin, untuk mengelola MySQL dari sisi
administrator sistem
Masuk ke Direktori Program
• Masuk ke prompt DOS
• Ketik perintah:
cd c:\”Program Files”\MysQL\”MySQL Server 5.0”
• Berikan perintah cd bin
Mengatur Password root
• root adalah pemakai dengan wewenang paling tinggi
dan digunakan untuk admin sistem
• Perintah untuk mengubah password root:
mysqladmin –uroot password rahasia
Masuk ke Program Klien mysql
• Berikan perintah:
mysql –uroot –p
• Ketikkan password dan tekan Enter

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -


prahasia
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.0.15-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
Pembuatan Database dan Tabel
Database: Pegawai

Tabel: Pribadi Tabel: Pekerjaan Tabel: Bagian

Field: Field: Field:

-NIP -NIP -Kode_Bag

-Nama -Tgl_Masuk -Nama_Bag

-Tgl_Lahir -Kode_Bag

-Sex -Gaji

-Alamat
-Kota
Membuat Database Pegawai
• Berikan perintah pada prompt mysql:
CREATE DATABASE Pegawai;

mysql> CREATE DATABASE Pegawai;


Query OK, 1 row affected (0.09 sec)

mysql>
Memilih Database
• Berikan perintah:
USE Pegawai;

Nama
Database
Membuat Tabel Pribadi
• Berikan perintah:

CREATE TABLE Pribadi (Nip CHAR(5) NOT NULL PRIMARY


KEY, Nama VARCHAR(35) NOT NULL, Tgl_lahir DATE, Sex
ENUM('P','W'), Alamat VARCHAR(35), Kota VARCHAR(15));
Penjelasan Tipe Data
KARAKTER
• CHAR: Teks dengan maksimal 255 karakter
• VARCHAR: Teks maksimal 255 karakter dan bersifat
variabel
• TEXT: Teks dengan panjang maksimal 65535
Penjelasan Tipe Data
BILANGAN

• TINYINT: Bilangan 1 byte


• SMALLINT: Bilangan 2 byte
• INT atau INTEGER Bilangan 4 byte
• BIGINT: Bilangan 8 byte
• FLOAT: Bilangan pecahan (4 byte)
• DOUBLE atau REAL: Bilangan pecahan (8 byte)
• DECIMAL(M, D) atau NUMERIC(M, D): Bilangan pecahan
Penjelasan Tipe Data
LAIN-LAIN

• DATE: Tanggal
• DATETIME: Waktu (tanggal dan jam)
• TIME : Jam
• ENUM(‘nilai1’, ‘nilai2’, …): Nilai enumerasi
• BOOLEAN: tipe benar atau salah
Kata Tambahan
• NOT NULL : Tidak boleh kosong
• PRIMARY KEY: Kunci primer
• AUTO_INCREMENT: Nilai naik secara otomatis tanpa
diisi
Penambahan Data
• Penambahan data dilakukan dengan menggunakan
pernyataan INSERT
• Bentuk dasar :
INSERT INTO nama_tabel (nama_field, nama_field, …)
VALUES (nilai, nilai, …);
• Contoh:
INSERT INTO Pribadi(Nip, Nama, Tgl_lahir, Sex, Alamat, Kota)
VALUES ('12345', 'A. Hamzah Sianturi', '1965/12/23',
'P', 'Jl. Kudus 1', 'Yogya');
Melihat Isi Tabel
• Perintah SELECT

• Bentuk Umum:
SELECT * FROM Nama_Tabel

• Contoh:
SELECT * FROM Pribadi
Penambahan Data (Lanjutan…)
• Tambahkan data berikut:

NIP Tanggal lahir Nama Alamat Kota Jenis


Kelamin
12346 12/01/1978 Udin Jl. Masjid 47 Sleman Pria
12347 Siti Umayani Wanita
12348 14/03/1969 Dian Arum Jl. Arumdalu 23 Bantul Wanita
12349 13/05/1966 Bagus Karangwaru I/3 Magelang Pria
12350 01/02/1975 Intan Jl. Sawo 108 Yogya Wanita
12351 05/04/1971 Edi Damhudi Ngampilan 2A Sleman Pria

12352 29/04/1969 Sinta Jl. Kertosono 87 Klaten Wanita


12353 04/07/1971 Sueb Jl. Astina 4A Yogya Pria
12354 05/05/1978 Joned Jl. Karyacita 9 Yogya Pria

• Untuk data yang kosong, tuliskan NULL


Penambahan Data dengan Field
Tertentu
• Contoh tanpa mengisi Tanggal lahir, alamat dan kota

INSERT INTO Pribadi(Nip, Nama, Sex)


VALUES ('12355', 'Andini', 'W');
Pengaruh Kunci Primer
• Cobalah berikan pernyataan berikut:

INSERT INTO Pribadi(Nip, Nama, Tgl_lahir, Sex, Alamat, Kota)


VALUES ('12345', ‘Dona Harun', '1978/01/01',
‘W', 'Jl. Kreasi 77', 'Yogya');

• Apa yang terjadi? Kenapa?


Pengaruh NOT NULL
• Cobalah berikan pernyataan berikut:

INSERT INTO Pribadi(Nip, Sex)


VALUES ('12360', ‘W');

• Apa yang terjadi? Kenapa?


Pengaruh ENUM
• Cobalah perintah berikut:

INSERT INTO Pribadi(Nip, Nama, Kelamin)


VALUES ('12361', 'Edi harahap', 'L');

• Apa yang terjadi? Kenapa?


• Cek dengan SELECT; apakah data tersimpan?
Melihat Struktur Tabel
• Gunakan perintah:
DESC nama_tabel
• Contoh:
• DESC Pribadi;
+-----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| Nip | char(5) | NO | PRI | | |
| Nama | varchar(35) | NO | | | |
| Tgl_lahir | date | YES | | NULL | |
| Sex | enum('P','W') | YES | | NULL | |
| Alamat | varchar(35) | YES | | NULL | |
| kota | varchar(20) | YES | | NULL | |
+-----------+---------------+------+-----+---------+-------+
6 rows in set (0.16 sec)
Mengganti Nama Field
• Perintah yang digunakan adalah ALTER TABLE
• Contoh:
ALTER TABLE Pribadi
CHANGE sex kelamin ENUM('P','W');

• Cek struktur tabel setelah Anda melakukan perintah


di atas
Mengganti Ukuran/Tipe Field
• Perintah yang digunakan adalah ALTER TABLE
• Contoh:
ALTER TABLE Pribadi
CHANGE kota kota VARCHAR(20);

• Cek struktur tabel setelah Anda melakukan perintah


di atas
Menambahkan DEFAULT
• DEFAULT pada struktur tabel digunakan untuk
memberikan nilai bawaan pada suatu field kalau nilai
bersangkutan tidak dimasukkan
• Contoh:
ALTER TABLE Pribadi CHANGE kelamin kelamin
ENUM('P','W') DEFAULT 'P';
Menambahkan DEFAULT
(Lanjutan…)
• Sekarang cobalah berikan perintah:
INSERT INTO Pribadi(Nip, Nama)
VALUES (‘12370’, ‘Fahmi Idris’);

• PERHATIKAN, apa isi field Kelamin untuk NIP 12370’?


Pengubahan Data
• Perintah yang digunakan adalah UPDATE
• Bentuk dasar:

UPDATE nama_tabel SET nama_field = nilai, nama_field = nilai, … WHERE


nama_field = nilai

• Contoh mengubah Udin menjadi Udinsah:

UPDATE Pribadi SET Nama= 'Udinsah'


WHERE NIP = '12346';

• Ujilah dengan SELECT untuk melihat hasil perubahan


Penghapusan Data
• Perintah DELETE
• Bentuk dasar:
DELETE FROM nama_tabel WHERE nama_field = nilai

• Contoh:
DELETE FROM Pribadi
WHERE Nip = '12355';

• Ujilah dengan SELECT untuk melihat efek perintah di


atas
Penghapusan Tabel
• Gunakan DROP TABLE
• Untuk mempraktekkan, buatlah sebuah table
bernama RIWAYAT, dengan isi berupa sebuah field
(misalnya Nip bertipe CHAR(5))
• Kemudian, lihatlah daftar tabel dengan memberikan
perintah:
SHOW TABLES;
Penghapusan Tabel
(Lanjutan…)
• Berikan perintah:
DROP TABLE Riwayat;
• Kemudian, lihatlah daftar tabel dengan memberikan
perintah:
SHOW TABLES;
Apa sudah terhapus?
Latihan Membuat Tabel Bagian
• Buatlah tabel Bagian dengan struktur seperti berikut:
• Kode_Bag, CHAR, 1 karakter, primary key
• Nama_Bag, VARCHAR, 20 karakter, harus diisi
• Isikan data sebagai berikut:
• 1 untuk EDP
• 2 untuk Pemasaran
• 3 untuk Produksi
• 4 untuk SDM
• 5 untuk Akunting
Latihan Membuat Tabel Pekerjaan
 Buatlah tabel Pekerjaan dengan struktur
seperti berikut:
• NIP, CHAR, 5 karakter, primary key
• Tgl_Masuk, DATE
• Kode_Bag, 1 karakter, harus diisi
• Gaji, bilangan
 Isikan data sebagai berikut:
• 12345, 02/02/1992, 3, 2juta
• 12346, 02/02/1992, 1, 1,5juta
• 12347, 02/02/1992, 2, 1,2juta
• 12348, 02/02/1992, 4, 1,5juta
• 12349, 02/02/1992, 5, 1,2juta
• Lengkapi sendiri sampai NIP 12354
Latihan Penggunaan Tipe Memo
• Buatlah tabel bernama Riwayat
• Isi Field:
• NIP
• Keterangan (bertipe VARCHAR/TEXT)
• Isikan data untuk NIP yang tersedia pada tabel Pribadi (12345
sampai dengan 12354)
• Isikan Keterangan dengan daftar riwayat pendidikan, misalnya
sbb:

SD Muhammadiyah I, Yogya
SMP Negeri I, Yogya
SMA Negeri III, Semarang
Latihan Gabungan
• Masukkan data berikut ke Tabel Pribadi:
• NIP: 12390
• Nama: Asti Damayanti
• Tanggal Lahir: 2 Februari 1983
• Jenis kelamin: Wanita
• Ubahlah Tanggal lahir Asti Damayanti menjadi 23
Februari 1973
• Cek hasilnya
Latihan Gabungan
(Lanjutan…)
• Hapuslah record yang berisi data Asti Damayanti
dengan menyebutkan namanya (bukan NIP)
• Ubahlah nama field Keterangan pada tabel Riwayat
menjadi Ket
Latihan Gabungan (Lanjutan…)
• Menambahkan Field:
ALTER TABLE Pribadi ADD Bisa_Bhs_Asing BOOLEAN
DEFAULT FALSE;
• Buatlah agar field baru tersebut bernilai TRUE untuk
NIP=12345, 12347, dan 12350
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi
• Contoh:
SELECT Nama FROM Pribadi WHERE Nip = “12345”;

SELECT Nama FROM Pribadi WHERE Kelamin = ‘P’;

SELECT Nama FROM Pribadi WHERE Kelamin = ‘W’;

SELECT Nama FROM Pribadi WHERE Bisa_Bhs_asing = TRUE;

SELECT Nama FROM Pribadi WHERE Bisa_Bhs_asing = FALSE;


Operator Relasional
• = Sama dengan
• > Lebih dari
• < Kurang dari
• >= Lebih dari atau sama dengan
• <= Kurang dari atau sama dengan
• <> Tidak sama dengan
Susunan Tanggal
• Format: ‘Tahun/Bulan/Tanggal’
• Contoh:
SELECT Nama FROM Pribadi WHERE Tgl_lahir > ‘1970/12/25’;
Klausa WHERE pada SELECT
• Bentuk: WHERE kondisi
• Contoh:
SELECT Nip FROM Pekerjaan WHERE Gaji < 2000000;
Latihan
• Tampilkan pegawai yang lahir sebelum tahun 1980
• Tampilkan nama pegawai yang NIP-nya tidak sama dengan “12345”
• Tampilkan nama pegawai yang NIP-nya sesudah “12347”
Operator And
• AND digunakan sebagai kriteria “DAN”
• Penggunaan: operand AND operand
• Contoh:
SELECT NIP FROM Pribadi WHERE Tgl_lahir >= ‘1970/01/01’ AND Tgl_lahir <=
‘1971/12/31’;
Latihan
• Tampilkan Nama pegawai pria yang tinggal di Yogya
• Tampilkan Nama pegawai pria yang TIDAK tinggal di Yogya
• Tampilkan Nama pegawai wanita yang lahir sebelum tahun 1975
AND = dua kondisi harus bernilai benar
Operator Or
• OR digunakan sebagai kriteria “ATAU”
• Penggunaan: operand OR operand
• Contoh:

SELECT NIP FROM Pribadi WHERE Kota = ‘Yogya’ OR Kota = ‘Bantul’


Latihan
• Tampilkan Nama pegawai untuk yang NIP-nya 12345 atau 12346
• Tampilkan Nama pegawai yang tinggal di Yogya atau lahir sesudah
tahun 1971
• Tampilkan Nama pegawai berjenis kelamin pria atau yang lahir tidak
di tahun 1965
OR= salah satu kondisi harus bernilai benar
• select nama from pribadi where kelamin='P' or NOT
(tgl_lahir>='1971/01/01' AND tgl_lahir<='1971/12/31');
Operator Not
• Untuk menyatakan “TIDAK” atau “BUKAN”
• Penggunaan: NOT kondisi
• Contoh:
SELECT NIP, Nama, Kota FROM Pribadi WHERE NOT (Kota = ‘Yogya’ OR
Kota = ‘Bantul’);
Latihan
• Ubahlah pernyataan berikut dengan menggunakan NOT:
SELECT NIP, Nama, Kota FROM Pribadi WHERE Kota <> ‘Bantul’;
Latihan Campuran
1. Siapa saja pegawai wanita yang NIP-nya di bawah 12351
2. Siapa saja yang tidak lahir pada tahun 1971
3. Sebutkan NIP dan nama pegawai yang tinggal di Bantul, Yogya, atau Klaten
4. Tampilkan pegawai yang gajinya diantara 1-2 juta!
5. Tampilkan pegawai wanita yang tidak bisa berbahasa asing!
6. Tampilkan pegawai yang memiliki gaji tidak lebih dari 1,5 juta!
7. Tampilkan nip, nama, jenis kelamin dari pegawai yang bisa berbahasa asing!
8. Tampilkan nip, nama, jenis kelamin dari pegawai yang tidak lahir di tahun 1969!
3. SELECT NAMA,TGL_LAHIR FROM PRIBADI WHERE NOT (TGL_LAHIR>='1971/01/01' AND
TGL_LAHIR<='1971/12/31’);
8. SELECT NIP,NAMA,KELAMIN,TGL_LAHIR FROM PRIBADI WHERE NOT
(TGL_LAHIR>='1969/01/01' AND TGL_LAHIR<='1969/12/31’);
SELECT NIP,NAMA,KELAMIN,TGL_LAHIR FROM PRIBADI WHERE TGL_LAHIR<'1969/01/01' OR
TGL_LAHIR>'1969/12/31'
Operator Lanjutan
Bentuk Prompt
Operator BETWEEN
• BETWEEN untuk menyatakan suatu jangkauan
• Contoh:
SELECT Nama, Tgl_lahir FROM Pribadi WHERE Tgl_lahir BETWEEN
‘1971/01/01’ AND ‘1971/12/31’;
• Cek pula:
SELECT Nama, Tgl_lahir FROM Pribadi WHERE Tgl_lahir NOT
BETWEEN ‘1971/1/1’ AND ‘1971/12/31’;
Operator IN dan NOT IN
• IN digunakan untuk melakukan pencocokan terhadap suatu daftar
nilai
• Contoh:
SELECT Nama, Kota FROM Pribadi WHERE Kota IN ("Bantul", "Yogya",
"Klaten");
• NOT IN berarti “tidak cocok dengan”
• Contoh:
SELECT Nama, Kota FROM Pribadi WHERE Kota NOT IN ("Bantul",
"Yogya", "Klaten");
Operator LIKE dan NOT LIKE
• LIKE digunakan untuk mencari data menurut awalan, akhiran, atau
penggalan suatu kata atau suku-kata
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE "A%";
digunakan untuk mencari nama yang berawalan dengan A
SELECT Nama FROM Pribadi WHERE Nama LIKE “%A";
digunakan untuk mencari nama yang berakhiran dengan A
• NOT LIKE digunakan untuk kebalikan dengan LIKE
Wildcard untuk LIKE
• Tanda seperti % dinamakan wildcard
• Wildcard % Cocok dengan nol, satu, atau sejumlah karakter apa saja
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE “%i”;
menampilkan nama yang berakhiran dengan i.
Wildcard untuk LIKE (lanjutan…)
• Contoh %:
SELECT Nama FROM Pribadi WHERE Nama LIKE “%s%”;
menampilkan nama yang mengandung s.
Wildcard untuk LIKE (lanjutan…)
• Wildcard _ (underscore) digunakan untuk mencocokkan dengan
sebuah karakter apa saja
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama LIKE “%i_n%";
menampilkan nama yang mengandung i diikuti dengan
sebuah huruf apa saja dan kemudian diikuti dengan n
SELECT Nama FROM Pribadi WHERE Nama LIKE “%i__n%";
menampilkan nama yang mengandung i diikuti dengan dua
huruf apa saja dan kemudian diikuti dengan n
Operator REGEXP
• REGEXP hanya ada pada MySQL
• Wildcard [ ] digunakan untuk mencocokkan dengan sebuah karakter
apa saja yang terdapat dalam tanda tsb
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama REGEXP “^[SDA]”;
-> Yang berawalan dengan A/S/D
Wildcard untuk REGEXP
• $ pada REGEXP berarti berakhiran
• Contoh:
SELECT Nama FROM Pribadi WHERE Nama REGEXP “[IA]$”;
-> Yang berakhiran dengan A/I
Latihan
• Tampilkan nama pegawai yang mengandung AN
• Tampilkan nama pegawai yang TIDAK mengandung AN
• Tampilkan nama pegawai yang mengandung huruf d dan kemudian
di belakangnya (di posisi manapun) ada H
• Tampilkan nama pegawai yang berawalan S dan berakhiran A atau I
Menampilkan Data Secara Unik
Klausa DISTINCT
berguna untuk
menampilkan data
dengan menghilangkan
yang kembar
Contoh:
SELECT DISTINCT Kota
FROM Pribadi;
Menampilkan Data Secara Unik
Untuk menghilangkan NULL:

SELECT DISTINCT Kota FROM


Pribadi WHERE Kota IS NOT NULL;
Mengurutkan Data
Klausa ORDER BY berguna untuk mengurutkan data
Contoh:
SELECT Nama FROM Pribadi ORDER BY Nama;

SELECT Nama FROM Pribadi ORDER BY Nama DESC;


Mengurutkan Data (lanjutan…)
Pengurutan dapat dilakukan melalui dua buah field
atau lebih
Contoh:
SELECT Kelamin, Nama FROM Pribadi ORDER BY
Kelamin, Nama;

SELECT Kelamin, Nama FROM Pribadi ORDER BY


Kelamin DESC, Nama;
Pengelompokan dengan GROUP BY
GROUP BY berguna untuk melakukan pengelompokan
data
Contoh:
SELECT Kota FROM Pribadi GROUP BY Kota;
Klausa HAVING
Berguna untuk menentukan kondisi bagi GROUP BY
Contoh:
SELECT Kota FROM Pribadi GROUP BY Kota HAVING
Kota IS NOT NULL ;
Fungsi Agregat
AVG untuk memperoleh nilai rata-rata
COUNT untuk menghitung cacah data
MAX untuk menghasilkan nilai terbesar
MIN untuk menghasilkan nilai terkecil
SUM untuk memperoleh penjumlahan data
Fungsi Agregat (Lanjutan…)
Menghitung gaji rata-rata
SELECT AVG(Gaji) FROM Pekerjaan;
Menghitung gaji per bagian
SELECT Kode_Bag, AVG(Gaji) FROM Pekerjaan GROUP
BY Kode_Bag;
Menghitung gaji terbesar
SELECT MAX(Gaji) FROM Pekerjaan;
Menghitung total gaji
SELECT SUM(Gaji) FROM Pekerjaan;
Memberi Nama Field
Gunakan AS untuk memberi alias field
Contoh:
SELECT MAX(Gaji) As Maks FROM Pekerjaan;
Query dengan Beberapa Tabel
Contoh:
SELECT Pribadi.NIP, Pribadi.Nama, Pekerjaan.Gaji
FROM Pribadi, Pekerjaan
WHERE Pribadi.NIP = Pekerjaan.NIP;
Latihan
1. Bagaimana mendapatkan jumlah pegawai?
2. Berapa jumlah pegawai yang bekerja di departemen Akunting?
3. Bagaimana cara mendapatkan data yang meliputi:

 NIP
 Nama pegawai
 Gaji
 Nama bagian tempat pegawai bekerja
4. Ulangi soal di atas dengan hasil khusus yang gajinya di atas 1 juta.
5. Ulangi soal di atas dengan mengurutkan daftar berdasarkan nama
pegawai
1. select count(pribadi.nip) from pribadi,pekerjaan where
pribadi.nip = pekerjaan.nip;
???? select count(pribadi.nip) from pribadi,pekerjaan,riwayat
where pribadi.nip = pekerjaan.nip and pribadi.nip = riwayat.nip; ?????
• Jawaban
2. select count(Kode_Bag) from pekerjaan where kode_bag = '5';
3. Select
pribadi.nip,pribadi.nama,pekerjaan.gaji,pekerjaan.kode_bag,bagian.nama_bag
from pribadi,pekerjaan,bagian where pribadi.nip = pekerjaan.nip and
pekerjaan.kode_bag = bagian.kode_bag;
4. select
pribadi.nip,pribadi.nama,pekerjaan.gaji,pekerjaan.kode_bag,bagian.nama_bag
from pribadi,pekerjaan,bagian where pribadi.nip = pekerjaan.nip and
pekerjaan.kode_bag = bagian.kode_bag and gaji>1000000;
5. select
pribadi.nip,pribadi.nama,pekerjaan.gaji,pekerjaan.kode_bag,bagian.nama_bag
from pribadi,pekerjaan,bagian where pribadi.nip = pekerjaan.nip and
pekerjaan.kode_bag = bagian.kode_bag order by pribadi.nama;
• Jawaban soal baru
1. select nama,tgl_lahir from pribadi where tgl_lahir>='1970/01/01' and
tgl_lahir<='1972/12/31’;
2. select nama,kelamin,tgl_lahir from pribadi where kelamin='w' and not
tgl_lahir between '1971/01/01' and '1971/12/31’;
3. select pribadi.nip,pribadi.nama,pekerjaan.gaji from pribadi,pekerjaan
where pribadi.nip=pekerjaan.nip and gaji<1500000;
4. select nip,nama,kelamin,bhs_asing from pribadi where kelamin='w' and
bhs_asing='1’;
5. select nip,nama,kelamin,tgl_lahir from pribadi where not tgl_lahir between
'1969/01/01' and '1969/12/31’;
6. select pribadi.nip,pribadi.nama,pekerjaan.gaji from pribadi,pekerjaan
where pribadi.nip=pekerjaan.nip and gaji between '1000000' and '1500000’;
7. select nama,kelamin,bhs_asing from pribadi where kelamin='w' and
bhs_asing='1';
8. select pribadi.nama,pekerjaan.gaji from pribadi,pekerjaan where
pribadi.nip=pekerjaan.nip and gaji<=500000;
9. select nama,kelamin,bhs_asing from pribadi where bhs_asing='0’;
10. select nama,tgl_lahir,kota from pribadi where kota='yogya' or
tgl_lahir<'1980/01/01';

Anda mungkin juga menyukai