Anda di halaman 1dari 18

BAB VIII

CONTROL FLOW FUNCTION

8.1. Tujuan
1. Untuk memahami penggunaan control flow function

8.2. Dasar Teori


8.2.1. Definisi
1. Case
Digunakan untuk menampilkan data, berdasarkan evaluasi kondisi
yang telah ditentukan cara kerja CASE sama dengan IF, ELSE IF, dan
ELSE yaitu kondisi terpenuhi maka ekspresi yang benar berjalan,
kemudian jika kondisi pertama tidak terpenuhi maka query masuk ke
kondisi kedua, jika terpenuhi maka query menjalankan ekspresi yang
benar, dan seterusnya, namun jika seluruh kondisi tidak terpenuhi maka
query akan menjalankan ekspresi yang salah. Berikut ini penulisan
queryya :
SELECT nama_kolom.
CASE
WHEN kondisi_1 THEN ekspresi_benar_1
WHEN kondisi_2 THEN ekspresi_benar_2
...
WHEN kondisi_N THEN ekspresi_benar_N
ELSE ekspresi_salah END AS nama_ekspresi
FROM nama_tabel;
Contoh :
SELECT nama,
CASE WHEN nilai >= 85 AND nilai <= 100 THEN “A”
WHEN nilai >= 70 AND nilai <= 85 THEN “B”
WHEN nilai >= 60 AND nilai <= 70 THEN “C”
ELSE “D” END AS nilai
FROM mahasiswa;
Query di atas menampilkan data dari kolom nama, dan terdapat
kondisi : jika kolom nilai isinya lebih dari sama dengan 85 dan kurang
dari sama dengan 100. Maka akan menampilkan “A”, jika tidak menuhi
query akan masuk ke kondisi kedua yaitu Jika kolom nilai isinya lebih
dari sama dengan 70 dan kurang dari sama dengan 85. Maka akan
menampilkan “B”, jika tidak menuhi query akan masuk ke kondisi
ketiga yaitu jika kolom nilai isinya lebih dari sama dengan 70 dan
kurang dari sama dengan 60. Maka akan menampilkan “C”, jika ketiga
kondisi tidak terpenuhi maka query akan menampilkan “D”. Seluruh
statment tersebut di aliaskan sebagai nilai sebagai nama kolom. Dan
data tersebut diambil dari tabel mahasiswa.
2. IF
Sama halnya dengan CASE, IF digunakan untuk menampilkan data,
berdasarkan evaluasi kondisi yang telah ditentukan. Yang
membedakannya adalah IF hanya akan menjalankan 1 kondisi, jika
kondisi terpenuhi maka query menjalan statment yang benar, jika tidak
terpenuhi maka query akan menjalankan statment yang salah. Berikut
ini adalah penulisan querynya :
SELECT nama_kolom, IF(kondisi, “statment_benar”, “statment_salah”) FROM
nama_tabel;
Contoh :
SELECT nama_barang, IF(harga>10000, “Mahal”, “Murah”);
Query di atas menampilkan kolom nama_barang dan sebuah kondisi
yaitu jika kolom harga nilainya lebih dari 10000 maka query akan
menjalankan statment “Mahal”, jika tidak memenuhi kondisi tersebut
maka query menjalankan statment yang salah yaitu “Murah”.
3. IFNULL
Digunakan untuk menampilkan ekspresi yang benar jika kondisinya
adalah kosong (NULL). Berikut ini adalah penulisan querynya :
SELECT nama_kolom, IFNULL(nama_kolom1, ekspresi_benar) FROM nama_tabel;
Contoh :
SELECT nama, alamat, IFNULL(alamat_domisili, “Tidak Tersedia”) FROM
mahasiswa;
Query di atas menampilkan nilai dari kolom nama, alamat dan
sebuah kondisi dengan fungsi IFNULL, dengan kondisi jika kolom
alamat_domisili kosong (NULL), maka tampilkan statment yang benar
yaitu “Tidak Tersedia”. Seluruh data tersebut diambil dari tabel
mahasiswa.
4. NULLIF
Digunakan untuk mengembalikan nilai NULL jika ekspresi 1 dan 2
sama, jika tidak sama maka akan mengembalikan nilai ke ekspresi 1.
Berikut ini adalah penulisan querynya :
SELECT NULLIF(ekspresi_1, ekspresi_2);
Contoh :
SELECT NULLIF(1, 1);
Query diatas akan mengembalikan NULL karena ekspresi 1 dan
ekspresi 2 sama.

8.3. Latihan
1. CASE
A. Tampilkan nama, harapan hidup, beserta status harapan hidup
dengan kondisi :
- Jika harapan hidup lebih dari 60.00 maka “Tinggi”.
- Jika harapan hidup lebih dari 50.00 maka “Menengah”.
- Jika tidak memenuhi maka harapan hidup rendah dan tampilkan
10 data saja.
1) Tampilkan struktur tabel country.

Gambar 8. 1 Menampilkan Struktur Tabel Country


Gambar di atas menampilkan struktur dari tabel country pada
database world.
2) Tampilkan data sesuai dengan soal.

Gambar 8. 2 Menampilkan Nama Negara, Harapan Hidup, Dan Status


Query di atas adalah perintah untuk menampilkan nama
negara, harapan hidup, dan status. Dimana kolom status ini
ditentukan dari harapan hidup suatu negara. Jika harapan hidup
lebih dari 60.00 maka statusnya “Tinggi”, jika lebih dari 50.00
maka harapan hidup menengah, dan jika harapan hidup di bawah
dari kedua pernyataan di atas, maka harapan hidup rendah. Data
yang ditampilkan dibatasi hanya 10 saja.
2. IF
A. Tampilkan nama_pasien dan tinggi badannya dengan kondisi :
- Jika tinggi badan melebihi 150 maka “Tinggi”, selain itu maka
“Rendah”.
1) Gunakan database rumah sakit.

Gambar 8. 3 Menggunakan Database Rumah Sakit


Terlihat pada gambar di atas kita telah menggunakan
database rumah sakit.
2) Tampilkan seluruh tabel yang terdapat pada database rumah
sakit.

Gambar 8. 4 Menampilkan Tabel Pada Database Rumah Sakit


Gambar di atas menampilkan apa saja tabel yang terdapat
pada database rumah sakit.
3) Tampilkan struktur tabel pasien.

Gambar 8. 5 Menampilkan Struktur Tabel Pasien


Gambar di atas menampilkan struktur dari tabel pasien pada
database rumah sakit.
4) Tampilkan data sesuai dengan ketentuan soal.

Gambar 8. 6 Menampilkan Nama Dan Tinggi Badan Pasien


Query di atas adalah perintah untuk menampilkan nama dan
tinggi badan pasien. Dimana jika tinggi pasien lebih dari 150,
maka dinyatakan “Tinggi”. Sedangkan jika lebih kecil dari atau
sama dengan 150, maka dinyatakan “Rendah”.
3. Tampilkan nama beserta ketersediaan alamat ke – 2 dari pelanggan
dengan kondisi :
- Jika alamat ke – 2 tidak tersedia maka tampilkan “Tidak tersedia”.
- Tampilkan maksimal 10 data.
1) Gunakan database classicmodels.

Gambar 8. 7 Menggunakan Database Classicmodels


Terlihat pada gambar di atas kita telah menggunakan database
classicmodels.
2) Tampilkan tabel yang terdapat pada database classicmodels.

Gambar 8. 8 Menampilkan Tabel Pada Database Classicmodels


Gambar di atas menampilkan apa saja tabel yang terdapat pada
database classicmodels.
3) Tampilkan struktur tabel customers.

Gambar 8. 9 Menampilkan Struktur Tabel Customers


Gambar di atas menampilkan struktur dari tabel customers pada
database classicmodels.
4) Tampilkan data sesuai dengan ketentuan soal.

Gambar 8. 10 Menampilkan Data Nama Customers


Query di atas menampilkan data nama customers, dimana nama
yang ditampilkan adalah yang memiliki alamat kedua. Dan jika
alamat kedua kosong / NULL, maka akan ditampilkan “Tidak
tersedia”. Data yang ditampilkan dibatasi hanya 10 saja.
4. NULLIF
A. Tampilkan nama barang dan perbandingan antara harga jual dan
harga eceran yang disarankan pada tabel produk batasi 10 data.
1) Tampilkan struktur tabel produk.

Gambar 8. 11 Menampilkan Struktur Tabel Produk


Gambar di atas menampilkan struktur dari tabel produk pada
database classicmodels.
2) Tampilkan data sesuai dengan ketentuan.

Gambar 8. 12 Menampilkan Data Nama Produk Dan Harga


Query di atas adalah perintah untuk menapilkan data nama
produk, harga, dan MSRP. Dimana data yang ditampilkan hanya
10 data saja. Dan jika data buyprice dan MSRP sama, maka data
tidak ditampilkan alias NULL.
B. Lakukan perbandingan antara angka 25 dengan 25.
a) Lakukan perbandingan.

Gambar 8. 13 Perbandingan Antara 25 dan 25


Query di atas adalah perintah untuk membandingkan dua
nilai. Karena dua nilai tersebut sama, maka hasil yang
ditampilkan adalah NULL.
C. Lakukan perbandingan antara 30 dan 25.

Gambar 8. 14 Perbandingan Antara 30 dan 25


8.4. Tugas
1. Rumah Sakit
A. Tampilkan nama pasien, berat badan, dan status berat badan, jika
berat badan :
- Jika berat badan kurang dari 50 adalah kurus.
- Jika berat badan badan lebih dari atau sama dengan 50 dan
kurang dari sama dengan 65 adalah sedang.
- Jika berat badan lebih dari 65 adalah gemuk.
Jawab :

Gambar 8. 15 Menampilkan Nama Pasien, Berat Badan, dan Status Berat Badan
Query di atas adalah perintah untuk menampilkan data nama
pasien, berat badan, dan status berat badan. Dimana status berat
badan ini didapatkan berdasarkan berat badan masing – masing
pasien. Jika berat badannya kurang dari 50, maka termasuk kurus,
jika lebih dari sama dengan 50 dan lebih kecil sama dengan 65, maka
termasuk sedang, jika lebih dari 65, maka termasuk gemuk.
2. World
A. Tampilkan nama negara yang berada di benua asia dan status nilai
ekonominya, yaitu jika nilai ekonomi lama lebih tinggi dari nilai
ekonomi yang baru maka tampilkan “Turun”, jika sebaliknya maka
naik, kemudian tampilkan data dari urutan ke 10 sampai dengan 15.
Jawab :
Gambar 8. 16 Menampilkan Nama Negara dan Status Ekonominya
Query di atas adalah perintah untuk menampilkan data nama
negara di Asia beserta status nilai ekonominya. Dimana status
ekonomi tersebut di dapat dari perhitungan nilai ekonomi lama dan
baru. Jika nilai ekonomi lama lebih tinggi dari nilai ekonomi baru,
maka status nilai ekonominya turun. Dan sebaliknya, jika nilai
ekonomi baru lebih tinggi dari nilai ekonomi lama, maka status nilai
ekonomi naik. Dan yang ditampilkan adalah data ke 10 sampai 15.
B. Tampilkan bahasa dari kode negara IDN dan status bahasanya :
- Jika “T” maka resmi.
- Jika “F” maka tidak resmi.
Jawab :

Gambar 8. 17 Menampilkan Bahasa dan Status Bahasa


Query di atas adalah perintah untuk menampilkan bahasa dan
status bahasa di negara yang berkode “IDN”. Dimana status bahasa
ditentukan dari kolom “isOfficial”. Jika isOfficial = “F”, maka
bahasa tersebut resmi. Dan jika isOfficial = “T”, maka Bahasa
tersebut tidak resmi.
C. Tampilkan nama negara, presentase harapan hidup dan statusnya :
- Jika presentase harapan hidup di atas 70 maka “Tinggi”.
- Jika presentase harapan hidup lebih dari sama dengan 50 dan
kurang dari sama dengan 65 maka “Sedang”.
- Jika presentase harapan hidup di bawah 50 maka “Rendah”.
Jawab :

Gambar 8. 18 Menampilkan Data Nama Negara dan Harapan Hidup


Gambar 8. 19 Menampilkan Data Nama Negara dan Harapan Hidup

Gambar 8. 20 Menampilkan Data Nama Negara dan Harapan Hidup


Gambar 8. 21 Menampilkan Data Nama Negara dan Harapan Hidup

Gambar 8. 22 Menampilkan Data Negara dan Harapan Hidup


Gambar 8. 23 Menampilkan Data Nama Negara dan Harapan Hidup

Gambar 8. 24 Menampilkan Data Nama Negara dan Harapan Hidup


Pada gambar 8.18 sampai 8.24 adalah hasil data yang
ditampilkan dari query di atas. Dimana data yang ditampilkan adalah
nama negara, harapan hidup, dan status harapan hidup. Status
harapan hidup didapat dari kolom harapan hidup, jika harapan hidup
lebih dari 70, maka statusnya tinggi, jika lebih dari sama dengan 50
dan lebih kecil dari sama dengan 65, maka statusnya sedang, dan
jika lebih rendah dari 50, maka statusnya rendah. Ada 239 data yang
berhasil ditampilkan.
3. Classicmodels
A. Tampilkan nama pelanggan, berserta alamat 1 dan alamat 2, jika
alamat 2 pelanggan kosong maka tampilkan “Tidak Tersedia”. Dan
pelanggan tersebut berasal dari USA.
Jawab :

Gambar 8. 25 Menampilkan Data Nama Pelanggan dan Alamat


Query di atas adalah perintah untuk menampilkan data nama
pelanggan, alamat 1, dan alamat 2. Dimana pada query di atas, jika
alamat 2 adalah kosong / NULL, maka akan ditampilkan tidak
tersedia pada kolom IFNULL.
B. Tampilkan kolom nomor pesanan, status dan komentar, jika kolom
komentarnya kosong maka tampilkan “Puas”, dari nomor pelanggan
124.
Jawab :
Gambar 8. 26 Menampilkan Data Nomor Pesanan, Status, dan Komentar
Query di atas adalah perintah untuk menampilkan data nomor
pesanan, status, dan komentar. Dimana pada query di atas, jika
komentarnya adalah kosong / NULL, maka akan ditampilkan puas
pada kolom IFNULL. Dimana data yang ditampilkan adalah data
yang nomor pelanggannya 124.
8.5. Kesimpulan
Pada BAB VIII ini kita telah mempelajari tentang control flow
function. Diantaranya terdapat query CASE, IF, IFNULL, dan, NULLIF.
Dimana query tersebut intinya sama – sama berfungsi untuk memberi
alternatif jawaban dari kolom yang telah ditentukan sebelumnya.

Anda mungkin juga menyukai