Anda di halaman 1dari 28

Pemrograman Basis Data

Fungsi Satu Baris Bagian II


(Single Row Function Part II)

Fakultas : Teknik Informatika


Program Studi : TEKNIK INFORMATIKA

Tatap Muka

04
Matakuliah : 11341T1EA
Disusun oleh : Didik Setiyadi,S.Kom.,M.Kom.,M.M.
DESKRIPSI MATERI PERTEMUAN 5

Materi Pertemuan 5 Fungsi Satu Baris Bagian II (Single Row Function Part II)
Deskripsi Materi Menjelaskan tentang Fungsi Konversi, Fungsi NULL, Ekspresi Bersyarat
dan mengerjakan kuis di Oracle Academy
Sub Capaian Mahasiswa mampu menjelaskan dan memhamai tentang: Fungsi Konversi,
Pembelajaran Mata Fungsi NULL dan Ekspresi Bersyarat.
Kuliah (Sub CPMK)
Deskrispsi Tugas Mahasiswa mengerjakan latihan kasus dan kuis di oracle academy sesuai
dengan deadline yang diberikan.

Kontrak Perkuliahan Seluruh mahaiswa mengukuti kuliah daring (zoom meeting) setial hari Sabtu
mulai pukul 19:30 s/d 22:00 wib sesuai jadwal yang telah ditetapkan.
Penilaian akhir meliputi: Kehadiran = 10%, Tugas mandiri = 40%, UTS =
25%, UAS = 25%.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


2 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
\
PEMBAHASAN
Oracle Application Express

5.1. Fungsi Konversi


Pelajaran ini akan membahas tujuan berikut: memberikan contoh konversi tipe data
eksplisit dan konversi tipe data implisit, menjelaskan mengapa penting, dari perspektif
bisnis, bagi bahasa untuk memiliki kemampuan konversi data internal, membuat kueri
SQL yang menerapkan fungsi satu baris TO_Char, TO_NUMBER, dan TO_DATE
dengan benar untuk membuat hasil yang diingginkan. Menerapkan model format tanggal
dan/atau karakter yang sesuai untuk menghasilkan output yang diinginkan. Menjelaskan
dan menerapkan penggunaan YY dan RR untuk menghasilkan tanggal yang benar
sebagaimana disimpan di database. Bayangkan saat Anda harus membaca semua buku
sekolah dalam file teks tanpa paragraf dan tanpa huruf kapital. Tentu akan sulit dibaca.
Untungnya, ada program perangkat lunak yang tersedia untuk menggunakan huruf besar
dan warna, garis bawah, tebal, pemosisian ke tengah, dan penambahan grafik. Untuk
database perubahan format dan tampilan dilakukan menggunakan fungsi konversi.
Fungsi-fungsi ini dapat menampilkan angka sebagai mata uang lokal, memformat
tanggal dalam berbagai format, menampilkan waktu ke detik, dan melacak abad yang
dirujuk oleh pada tanggal.
Tipe Data
Ketika tabel dibuat untuk database, programmer SQL harus menentukan jenis data apa
yang akan disimpan di setiap bidang tabel. Dalam SQL, ada beberapa tipe data yang
berbeda. Tipe data ini menentukan domain nilai yang dapat dimiliki setiap kolom. Untuk
pelajaran ini, Anda akan menggunakan: VARCHAR2, CHAR, NUMBER dan TANGGAL

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


3 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Sebagian besar bahasa pemrograman membutuhkan programmer untuk
mendeklarasikan tipe data dari setiap objek data. Untuk data yang disimpan dalam
database, pemrogram SQL mendefinisikan tipe data untuk setiap kolom dalam database.
Tipe data akan dibahas secara lebih rinci nanti dalam kursus, tetapi untuk saat ini kami
akan menggunakan VARCHAR2, CHAR, NUMBER, dan DATE.
Tipe Data yang Dijelaskan
1. VARCHAR2: Digunakan untuk data karakter panjang variabel, termasuk angka, tanda
hubung, dan karakter khusus
2. CHAR: Digunakan untuk teks dan karakter data dengan panjang tetap, termasuk
angka, strip, dan karakter khusus
3. ANGKA: Digunakan untuk menyimpan data numerik panjang variabel. Tidak ada
tanda hubung, teks, atau data nonnumerik lainnya yang diizinkan. Mata uang
disimpan sebagai tipe data angka
4. TANGGAL: Digunakan untuk nilai tanggal dan waktu. Secara internal, Oracle
menyimpan data sebagai angka, dan secara default, informasi DATE ditampilkan
sebagai DD-Mon-YYYY (misalnya, 23 Oktober 2013)
Konversi Tipe
Server Oracle dapat secara otomatis mengonversi data VARCHAR2 dan CHAR menjadi
tipe data NUMBER dan DATE. Server ini dapat mengonversi data NUMBER dan DATE
kembali ke tipe data CHARACTER. Hal ini diketahui sebagai konversi data implisit.
Implisit: sesuatu yang tersirat namun tidak diekspresikan secara langsung.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


4 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Konversi
Tipe
Data
Konversi tipe Konversi tipe
data data
Implisit
Meskipun ini adalah fitur Eksplisit
yang mudah, fitur ini selalu yang terbaik untuk secara eksplisit
membuat konversi tipe data untuk memastikan keandalan dalam pernyataan SQL.
Eksplisit: dirumuskan dan ditetapkan dengan jelas.

Konversi Tipe
Keempat fungsi konversi tipe data yang akan Anda pelajari antara lain: untuk
mengonversi tipe data ke tipe data karakter dan untuk mengonversi tipe data angka ke
tipe data karakter

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


5 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Keempat fungsi konversi tipe data yang akan Anda pelajari antara lain: untuk
mengonversi tipe data karakter ke tipe data angka dan untuk mengonversi tipe data
karakter ke tipe data tanggal
Konversi Data ke Data Karakter
Sering kali mengonversi tanggal dari format default DD-Mon-YYYY ke format lain yang
ditetapkan oleh Anda lebih disukai. Fungsi untuk menyelesaikan tugas ini adalah: 'model
format' harus disertakan dalam tanda kutip tunggal dan peka huruf, memisahkan nilai
data dari model format dengan koma dan semua elemen format tanggal yang berlaku
dapat disertakan.

TO_CHAR (date column name, 'format model you specify')

Menggunakan sp untuk mengeja angka. Menggunakan th untuk membuat angka muncul


berurutan (ke-1, ke-2, ke-3, dan seterusnya). Menggunakan elemen fm untuk
menghapus spasi yang terisi atau menghapus nol di depan pada output.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


6 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Tabel menunjukkan model format berbeda yang dapat digunakan. Ketika menentukan
elemen waktu, pastikan jam (HH), menit (MI), detik (SS), dan AM atau PM juga dapat
diformat.

Contoh output menggunakan model format berbeda:


Contoh 2 menambahkan "SP ke format hari untuk mengeja untuk porsi hari pada
tanggal. Contoh 3 menampilkan tahun yang dieja, dan teks “of” di antara hari dan bulan.
Perlu diingat bahwa kutip ganda diperlukan di sekeliling literal teks untuk disertakan.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


7 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Contoh output menggunakan model format berbeda untuk waktu:

Konversi Angka ke Data Karakter (VARCHAR2)


Angka yang disimpan pada database tidak mengalami pemformatan. Ini berarti bahwa
angka-angka tersebut tidak memiliki simbol/tanda mata uang, koma, desimal, atau
pemformatan lainnya. Untuk menambah pemformatan, Anda terlebih dulu harus
mengonversi angka ke format karakter.

TO_CHAR(number, 'format model')


Fungsi SQL yang Anda gunakan untuk mengonversi angka ke format karakter yang
diinginkan adalah:

Tabel tersebut mengilustrasikan elemen format yang tersedia untuk digunakan dengan
fungsi TO_CHAR

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


8 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
CATATAN: jika jumlah "9" dalam model format kurang dari jumlah digit dalam
angka, ##### ditampilkan, misalnya SELECT TO_CHAR (24000, '$ 9999') akan
mengembalikan #### ### karena model format memiliki empat "9", tetapi angka yang
diberikan memiliki lima digit.
Bisakah Anda mengidentifikasi model format yang digunakan untuk menghasilkan output
berikut?

− $3000.00
− 4,500

− 9,000.00
− 0004422

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


9 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
awaban:

Konversi Karakter ke Angka


Sering kali mengubah string karakter ke angka lebih disukai. Fungsi untuk konversi ini
adalah:

TO_NUMBER(character string, 'format model')


Model format adalah opsional, tetapi harus dimasukkan jika string karakter yang
dikonversi berisi karakter selain angka, anda tidak dapat melakukan penghitungan
dengan data karakter dengan andal.

SELECT TO_NUMBER('5,320', '9,999')


AS "Number"FROM dual;

Kolom bonus termasuk data yang berisi 4 karakter, model format menentukan 3 karakter,
sehingga kesalahan dikembalikan

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


10 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Oracle Application Express akan mengembalikan Kesalahan Oracle. Nomor Tidak Valid -
jika model format tidak cocok dengan angka yang dikembalikan oleh database.

Konversi Karakter ke Tanggal


Untuk mengonversi string karakter ke format tanggal, gunakan:

TO_DATE('character string', 'format model')


Konversi ini mengambil string karakter nilai nontanggal seperti "3 November 2001" dan
mengubahnya menjadi nilai tanggal. Model format memberi tahu server seperti apa string
karakter ":

TO_DATE('November 3, 2001', 'Month dd, yyyy')


akan mengembalikan 03-Nov-2001.
Saat membuat konversi karakter ke tanggal, pengubah fx (format tepat) menentukan
pencocokan tepat untuk argumen karakter dan model format tanggal. Dalam contoh
berikut, perhatikan bahwa "May10" tidak memiliki ruang antara '' May "dan" 10. “. Model
format fx cocok dengan argumen karakter karena juga tidak memiliki ruang antara "Mon"
dan "DD."

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


11 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
SELECT TO_DATE('May10,1989', 'fxMonDD,YYYY') AS
"Convert"FROM DUAL;
Aturan Pengubah fx
Aturan pengubah fx adalah: tanda baca dan teks yang dikutip dalam argumen karakter
harus cocok dengan bagian yang sesuai dari model format persis (kecuali untuk case),
argumen karakter tidak boleh memiliki ruang kosong tambahan. Tanpa fx, Server Oracle
mengabaikan ruang kosong tambahan. Data numerik dalam argumen karakter harus
memiliki jumlah digit yang sama dengan elemen yang sesuai dalam model format. Tanpa
fx, angka dalam argumen karakter dapat menghilangkan angka nol di awal

Aturan Pengubah Fix

Format Tanggal RR dan Format Tanggal YY


Semua data tanggal sekarang harus disimpan menggunakan tahun empat digit (YYYY).
Namun beberapa database lama mungkin masih menggunakan format dua digit (YY).
Belum begitu lama sejak abad ini berubah dari tahun 1900 menjadi 2000. Seiring dengan
perubahan ini muncul kebingungan yang cukup besar apakah tanggal yang ditulis
sebagai 02-Jan-98 akan ditafsirkan sebagai 2 Januari 1998 atau 2 Januari 2098.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


12 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Jika data yang dikonversi dari data karakter ke data tanggal hanya berisi tahun dua digit,
Oracle memiliki cara untuk menginterpretasikan tanggal ini pada abad yang benar.
Contoh: '27-Oct-95'
SELECT TO_DATE('27-Oct-95','DD-Mon-YY')AS "Date"
FROM dual;

Tanggal

27-Oct-2095

Tahun dua digit diinterpretasikan sebagai 2095, ini mungkin bukan maksud awalnya. Jika
YY digunakan dalam model format, tahun tersebut diasumsikan merujuk pada abad saat
ini. Jika tahun dua digit tidak pada abad tersebut, kita akan menggunakan RR. Tahun
dua digit saat ini diinterpretasikan sebagai 1995

SELECT TO_DATE('27-Oct-95','DD-Mon-RR') AS "Date"

FROM dual;

Tanggal

27-Oct-1995

Beberapa Aturan Sederhana


Jika format tanggal disebutkan menggunakan format RR< nilai pengembalian memiliki
dua kemungkinan, bergantung pada tahun saat ini. Jika tahun saat ini antara 00-49:
−Tanggal dari 0-49: Tanggal akan merujuk ke abad saat ini
−Tanggal dari 50-99: Tanggal akan merujuk ke abad yang terakhir

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


13 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Jika tahun saat ini antara 50-99:
−Tanggal dari 0-49: Tanggal akan merujuk ke abad berikutnya
−Tanggal dari 50-99: Tanggal akan merujuk ke abad saat ini

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


14 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Tabel di bawah memberikan beberapa contoh tentang bagaimana YY dan RR
diinterpretasikan, bergantung pada tahun saat ini.

Ketika saya meminta database karyawan, saya menggunakan pernyataan berikut,


pernyataan mengembalikan setiap baris dalam tabel. Saya tahu hanya ada beberapa
karyawan yang direkrut sebelum tahun 1990.
SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YY')
FROM employees
WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-YY');

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


15 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Karena model format dalam klausa WHERE menggunakan YY, dan tahun ini adalah
tahun 2017, kueri mengembalikan baris dengan hire_date kurang dari 2090
Ini dapat diperbaiki dengan mengganti YY dalam model format dengan RR atau dengan
menggunakan tahun YYYY empat digit.
Banyak dari kekuatan SQL adalah untuk meniru keputusan yang perlu kita buat setiap
hari. Kita perlu mengubah format tanggal untuk mengikuti penulisan dari negara lain. Kita
perlu menerbitkan cek gaji yang memiliki tanda mata uang dan bukan hanya angka.

5.2. Fungsi NULL


Pelajaran ini akan membahas tujuan berikut:
1. Menunjukkan dan menjelaskan evaluasi fungsi bersarang
2. Membuat daftar setidaknya empat fungsi umum yang berfungsi dengan setiap tipe
data dan terkait dengan penanganan nilai null
3. Menjelaskan penggunaan fungsi COALESCE dan NVL
4. Menjelaskan penggunaan fungsi umum untuk menangani nilai null dalam data
5. Membuat dan menjalankan kueri SQL yang menerapkan fungsi satu baris NVL,
NVL2, NULLIF, dan COALESCE.
6. Selain fungsi yang mengontrol bagaimana data diformat atau dikonversi ke tipe lain,
SQL menggunakan serangkaian fungsi umum yang dirancang khusus untuk
menangani nilai null.
7. Anda mungkin bertanya-tanya bagaimana suatu nilai yang tidak tersedia, tidak
ditetapkan, tidak dikenal, atau tidak berlaku, patut mendapatkan banyak perhatian.
8. Null mungkin "tidak ada", tetapi dapat memengaruhi bagaimana ekspresi dievaluasi,
bagaimana rata-rata dihitung, dan di mana nilai muncul dalam daftar yang diurutkan.
9. Pelajaran ini adalah semua tentang penanganan nilai null.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


16 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Cara Fungsi Dievaluasi
Hingga kini, Anda telah menerapkan fungsi satu baris dalam pernyataan sederhana.
Namun, dimungkinkan untuk membuat fungsi sarang (nested) dengan kedalaman berapa
pun. Penting untuk mengetahui bagaimana fungsi sarang dievaluasi. Fungsi "Sarang"
mengacu pada satu hal yang terkandung di dalam hal lain (seperti telur yang berada
dalam sarang). Contoh berikut adalah fungsi sarang. Proses evaluasi dimulai dari level
terdalam hingga level terluar.

SELECT TO_CHAR(NEXT_DAY(ADD_MONTHS(hire_date, 6), 'FRIDAY'),


'fmDay, Month ddth, YYYY') AS "Next Evaluation" FROM employees
WHERE employee_id = 100;

Hasilnya antara lain:


Jumat, 18 Desember 1987

• Langkah 1: Tanggal sewa akan ditambahkan enam bulan


• Langkah 2: Jumat pertama setelah hari yang dikembalikan pada Langkah 1 akan
diidentifikasi
• Langkah 3: Format tanggal default akan diformat untuk membaca dan menampilkan
tanggal yang dikembalikan oleh Langkah 2 dalam format yang mirip dengan: Jumat,
18 Desember 1987, dan akan muncul di output di bawah nama kolom "Evaluasi
Berikutnya.”

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


17 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Fungsi yang Berkaitan dengan Nilai Null
Di awal kursus, istilah "null" diperkenalkan. NULL adalah nilai yang tidak tersedia, tidak
ditetapkan, tidak diketahui, atau tidak berlaku. Akibatnya, kita tidak dapat menguji untuk
melihat apakah nilai ini sama dengan nilai lain, karena kita tidak tahu nilai apa yang
dimilikinya. Itu tidak sama dengan apa pun, bahkan nol!. Tetapi hanya karena itu benar-
benar bukan apa-apa bukan berarti itu tidak penting.
Bayangkan pertanyaan ini: Apakah benar X = Y?. Untuk menjawab, Anda perlu
mengetahui nilai X dan Y. Oracle memiliki empat fungsi umum yang berkaitan dengan
penggunaan nilai null. Keempat fungsi tersebut di antaranya: NVL, NVL2, NULLIF dan
COALESCE
Fungsi NVL
Fungsi NVL mengonversi nilai null ke nilai yang diketahui dari tipe data tetap, baik
tanggal, karakter, atau angka. Tipe data kolom nilai null dan nilai baru harus sama.
Fungsi NVL adalah:

NVL (nilai atau kolom yang mungkin berisi null, nilai untuk menggantikan null)
Kueri berikut menggunakan fungsi NVL dengan tipe data karakter:

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


18 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Tipe data kolom nilai null dan nilai baru harus sama seperti yang ditampilkan dalam
contoh berikut:

Anda dapat menggunakan fungsi NVL untuk mengonversi nilai kolom yang berisi null ke
jumlah sebelum dilakukan penghitungan. Ketika kalkulasi aritmatika dikerjakan dengan
null, hasil akan null. Fungsi NVL dapat mengonversi nilai null ke jumlah sebelum
penghitungan aritmatika yang dilakukan untuk menghindari hasil null.

Contohnya, kolom commission_pct pada tabel karyawan berisi nilai null. Fungsi NVL
digunakan untuk mengubah null ke nol sebelum penghitungan aritmatika.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


19 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Fungsi NVL2
1. Fungsi NVL mengevaluasi ekspresi dengan tiga nilai
2. Jika nilai pertama tidak null, maka fungsi NVL2 mengembalikan ekspresi kedua
3. Jika nilai pertama adalah null, maka ekspresi ketiga dikembalikan
4. Nilai dalam ekspresi 1 dapat berisi tipe data apa pun
5. Ekspresi 2 dan ekspresi 3 dapat berisi tipe data apa pun kecuali LONG
6. Tipe data nilai yang dikembalikan selalu sama seperti tipe data ekspresi 2, kecuali
ekspresi 2 adalah data karakter, di mana tipe yang dikembalikan adalah VARCHAR2

LONG adalah tipe data karakter panjang variabel dengan ukuran hingga 2 gigabyte. Tipe
data akan dibahas lebih mendalam nanti dalam
Fungsi NVL2 adalah:

Cara mudah untuk mengingat NVL2 adalah dengan berpikir, "jika ekspresi 1 memiliki
nilai, jika ekspresi 1 adalah null, ganti ekspresi 3."
Fungsi NVL2 menunjukkan penggunaan tipe data angka untuk ekspresi 1, 2, dan 3

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


20 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Fungsi NULLIF
Fungsi NULLIF membandingkan dua ekspresi. Jika setara, fungsi mengembalikan null.
Jika tidak setara, fungsi mengembalikan ekspresi pertama. Fungsi NULLIF adalah:

NULLIF(expression 1, expression 2)

Pada contoh ini, NULLIF membandingkan panjang nama depan dan nama belakang
karyawan. Jika panjang keduanya sama, NULLIF mengembalikan NULL (seperti pada
baris 2 Curtis Davies), sebaliknya, ekspresi 1 LENGTH dari first_name dikembalikan.

Fungsi NULLIF sering digunakan setelah mengerjakan proyek migrasi data untuk
menguji apakah data pada sistem target sama dengan sistem sumber asli. Jadi, NULLIF
digunakan untuk melihat pengecualian, bukan kecocokan. Biasanya, null sebagai hasil
dari NULLIF itu benar, karena Anda menginginkan data pada sistem sumber dan target
agar sama persis.

Fungsi COALESCE
Fungsi COALESCE adalah ekstensi dari fungsi NVL, kecuali COALESCE dapat
menggunakan beberapa nilai. Kata "coalesce" secara harfiah artinya "bergabung" dan
demikianlah yang terjadi. Jika ekspresi pertama adalah null, fungsi selanjutnya turun ke
baris hingga tidak ada ekspresi null yang ditemukan. Tentu, jika ekspresi pertama
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
21 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
memiliki nilai, fungsi mengembalikan ekspresi pertama dan fungsi akan berhenti. Fungsi
COALESCE adalah:

COALESCE (expression 1, expression 2, ...expression n)

Periksa pernyataan SELECT dari tabel karyawan yang ditampilkan di sebelah kanan.
Jika karyawan memiliki nilai ( not NULL) for commission_pct, ini akan dikembalikan,
sebaliknya, jika gaji memiliki nilai, akan mengembalikan gaji. Jika karyawan
commission_pct dan gaji NULL, kembalikan angka 10.

5.2. Ekpresi Kondisional


Pelajaran ini akan membahas tujuan berikut:
1. Membandingkan dan membedakan fungsi DECODE dan CASE.
2. Membuat dan menjalankan kueri SQL yang menggunakan fungsi DECODE dan
CASE dengan benar.
3. Membuat dan menjalankan dua metode untuk menerapkan logika kondisional IF-
THEN-ELSE.
4. Mampu membuat keputusan sangat penting dalam pemodelan data.
5. Pemodel harus memutuskan fungsi bisnis mana yang perlu dimodelkan dan mana
yang tidak.
6. Proses pemodelan data mengharuskan desainer menganalisis informasi untuk
mengidentifikasi entitas, menyelesaikan hubungan, dan memilih atribut.
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
22 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
7. Keputusan khusus antara lain:
✓ IF bisnis perlu melacak data dari waktu ke waktu, THEN mungkin perlu menjadi
entitas atau.
✓ ELSE harus menjadi atribut.

Cara Fungsi Dievaluasi


Proses pengambilan keputusan dalam pemrograman ini tidak jauh berbeda dari proses
yang digunakan dalam kehidupan sehari-hari. Ingat terakhir kali Anda harus membuat
jenis keputusan if- then-else. JIKA saya menyelesaikan pekerjaan rumah sebelum pukul
21.00, saya dapat menonton televisi, JIKA TIDAK saya tidak dapat menonton televisi.
Dalam SQL, pilihan seperti ini melibatkan metode pemrosesan bersyarat. Mengetahui
cara menggunakan pemrosesan bersyarat membuat pengambilan keputusan untuk
mendapatkan data yang Anda inginkan lebih mudah.

Ekspresi Kondisional
Dua ekspresi kondisional adalah CASE dan DECODE. Anda telah mempelajari NULLIF,
yang secara logis setara dengan ekspresi CASE dalam CASE yang membandingkan dua
ekspresi. NULLIF membandingkan dua ekspresi, dan jika dua ekspresi itu sama, maka
kembalikan nol; jika tidak sama, maka kembalikan ekspresi pertama.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


23 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Penting juga bagi siswa untuk mempelajari sintaks kepemilikan Oracle, karena ada
kemungkinan mereka akan menemukan penggunaannya dalam database yang lebih
lama.
Ada dua rangkaian perintah atau sintaks yang dapat digunakan untuk menulis
pernyataan SQL:
✓ Pernyataan standar yang sesuai dengan ANSI/ISO SQL 99
✓ Pernyataan milik Oracle
Dua rangkaian sintaks tersebut sangat mirip, tetapi ada beberapa perbedaan. Dalam
kursus ini, Anda akan belajar menggunakan kedua rangkaian pernyataan SQL, tetapi
sebaiknya menggunakan sintaks ANSI/ISO SQL 99.
CASE dan DECODE adalah contoh salah satu perbedaan ini. CASE merupakan
pernyataan yang sesuai dengan ANSI/ISO 99 SQL 99. DECODE adalah pernyataan
milik Oracle. Kedua pernyataan mengembalikan informasi yang sama menggunakan
sintaks berbeda.
Ekspresi CASE
Ekspresi CASE pada dasarnya melakukan pekerjaan pernyataan IF-THEN-ELSE. Tipe
data ekspresi CASE, WHEN, ELSE harus sama. Sintaks untuk ekspresi CASE adalah:

Kueri tersebut memeriksa department_id


✓ JIKA 90, maka menghasilkan ‘Management’
✓ JIKA 80, maka menghasilkan ‘Sales’
✓ JIKA 60, maka menghasilkan ‘It’
✓ JIKA TIDAK menghasilkan ‘'Other dept.’

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


24 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
SELECT last_name,CASE department_id
WHEN 90 THEN 'Management'WHEN 80 THEN 'Sales' WHEN 60 THEN
'It'
ELSE 'Other dept.'END AS "Department" FROM
employees;

Ekspresi DECODE
Fungsi DECODE mengevaluasi ekspresi dengan cara yang mirip dengan logika IF-
THEN-ELSE. DECODE membandingkan ekspresi ke setiap pencarian nilai. Sintaks
untuk DECODE adalah:

DECODE(columnl|expression, search1, result1


[, search2, result2,...,]

[, default])

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


25 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
Jika nilai default dihilangkan, nilai null dihasilkan di mana nilai pencarian tidak cocok
dengan nilai mana pun.
Lihat contoh:

SELECT last_name, DECODE(department_id, 90, 'Management', 80, 'Sales', 60, 'It', 'Other dept.')
AS "Department"
FROM employees;

Kueri ini mengembalikan hasil yang sama persis seperti contoh CASE sebelumnya,
namun menggunakan sintaks yang berbeda

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


26 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
RANGKUMAN
Dalam pelajaran ini, Anda seharusnya telah mempelajari cara:
1. Memberikan contoh konversi tipe data eksplisit dan konversi tipe data implisit
2. Menjelaskan mengapa penting, dari perspektif bisnis, bagi bahasa untuk memiliki
kemampuan konversi data internal.
3. Membuat kueri SQL yang menerapkan fungsi satu baris TO_CHAR, TO_NUMBER,
dan TO_DATE dengan benar untuk membuat hasil yang diinginkan.
4. Menerapkan model format tanggal dan/atau karakter yang sesuai untuk menghasilkan
output yang diinginkan.
5. Menjelaskan dan menerapkan penggunaan YY dan RR untuk menghasilkan tanggal
yang benar sebagaimana disimpan di database.
6. Menunjukkan dan menjelaskan evaluasi fungsi bersarang.
7. Membuat daftar setidaknya empat fungsi umum yang berfungsi dengan setiap tipe
data dan terkait dengan penanganan nilai null.
8. Menjelaskan penggunaan fungsi COALESCE dan NVL.
9. Menjelaskan penggunaan fungsi umum untuk menangani nilai null dalam data.
10. Membuat dan menjalankan kueri SQL yang menerapkan fungsi satu baris NVL,
NVL2, NULLIF, dan COALESCE.
11. Membandingkan dan membedakan fungsi DECODE dan CASE.
12. Membuat dan menjalankan kueri SQL yang menggunakan fungsi DECODE dan
CASE dengan benar.
13. Membuat dan menjalankan dua metode untuk menerapkan logika kondisional IF-
THEN-ELSE.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


27 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id
DAFTAR PUSTAKA
Oracle Academy, 2020, Materi Oracle Application Express, Teknologi Database Relasional,
Anatomi Pernyataan SQL dan mengerjakan kuis di Oracle Academy

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


28 Didik Setiyadi,S.Kom.,M.Kom.,M.M., Telpon : 087824368145 http://www.undira.ac.id

Anda mungkin juga menyukai