Anda di halaman 1dari 28

Pemrograman Basis Data

Fungsi Satu Baris Bagian I


(Single Row Function Part I)

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 4

Materi Pertemuan 4 Fungsi Satu Baris Bagian I (Single Row Function Part I)
Deskripsi Materi Menjelaskan tentang manipulasi huruf dan karakter; manipulasi huruf dan
karakter; fungsi tanggal
Sub Capaian Mahasiswa mampu menjelaskan tentang:
Pembelajaran Mata a. Memilih dan menerapkan fungsi satu baris yang melakukan konversi
Kuliah (Sub CPMK) huruf atau manipulasi karakter; manipulasi huruf LOWER, UPPER, dan
INITCAP dalam kueri SQL; manipulasi karakter CONCAT, SUBSTR,
LENGTH, INSTR, LPAD, RPAD, TRIM, dan REPLACE dalam kueri
SQL; menuliskan kueri fleksibel menggunakan variabel pengganti.
b. Memilih dan menerapkan fungsi angka satu baris ROUND, TRUNC, dan
MOD dalam kueri SQL; membedakan antara hasil yang diperoleh saat
TRUNC diterapkan ke nilai angka dan ROUND diterapkan ke nilai
numerik.
c. Memilih dan menerapkan fungsi satu baris MONTHS_BETWEEN,
ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND, dan TRUNC yang
beroperasi pada tanggal; mentransformasikan tanggal Oracle menjadi
data tanggal atau nilai numerik; penggunaan operator aritmetika dengan
tanggal; penggunaan fungsi SYSDATE dan tanggal.
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 12:05 s/d 14:30 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 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
\
PEMBAHASAN
Oracle Application Express

4.1. Manipulasi Huruf dan Karakter

Tujuan
• Pelajaran ini akan membahas tujuan berikut:
− Memilih dan menerapkan fungsi satu baris yang melakukan konversi huruf dan/atau
manipulasi karakter.
− Memilih dan menetapkan fungsi manipulasi huruf LOWER, UPPER, dan INITCAP dalam
kueri SQL.
− Memilih dan menerapkan fungsi manipulasi karakter CONCAT, SUBSTR, LENGTH,
INSTR, LPAD, RPAD, TRIM, dan REPLACE dalam kueri SQL.
− Menuliskan kueri fleksibel menggunakan variabel pengganti.
• Dapat mengubah cara data disajikan itu penting ketika berurusan dengan data dari database.
• Hampir sepanjang waktu di SQL, kami perlu mengubah cara data ditampilkan bergantung
pada persyaratan tugas yang kita coba untuk selesaikan.
• Dalam pelajaran ini, Anda akan mempelajari beberapa cara untuk mentransformasikan data
agar sesuai dengan situasi tertentu.

Terminologi
• Istilah-istilah penting yang digunakan dalam pelajaran ini di antaranya:
− Fungsi karakter
− CONCAT
− DUAL
− Ekspresi
− Format

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


3 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
− INITCAP
− Input
− INSTR
− LENGTH
− LOWER
− LPAD
− Output
− REPLACE
− RPAD
− Fungsi satu baris
− SUBSTR

Tabel DUAL
• Tabel DUAL memiliki satu baris yang disebut “X” dan satu kolom yang disebut “DUMMY”

DUMMY
X
• Tabel DUAL digunakan untuk membuat pernyataan SELECT dan menjalankan fungsi tidak
langsung terkait dengan tabel database tertentu.
• Kueri menggunakan tabel DUAL mengembalikan baris sebagai hasil. DUAL dapat digunakan
untuk melakukan kalkulasi dan juga mengevaluasi ekspresi yang bukan berasal dari tabel.
• DUAL akan digunakan untuk mempelajari banyak fungsi satu baris.
• Dalam contoh ini tabel DUAL digunakan untuk menjalankan pernyataan SELECT yang berisi
kalkulasi.
• Seperti yang dapat dilihat, pernyataan SELECT mengembalikan nilai yang tidak ada di tabel
DUAL.
• Nilai yang dikembalikan adalah hasil kalkulasi yang dijalankan.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


4 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
SELECT (319/29) + 12FROM
DUAL;

(319/29)+12
23

Fungsi Karakter Satu Baris


• Fungsi Karakter Satu Baris dibagi menjadi dua kategori:
− Fungsi yang mengonversi huruf string karakter.
− Fungsi yang dapat menggabungkan, mengekstrak, menampilkan, menemukan, mengisi,
dan memotong string karakter.
• Fungsi satu baris dapat digunakan dalam klausa SELECT, WHERE, dan ORDER BY
• Fungsi manipulasi huruf penting karena Anda mungkin tidak selalu tahu dalam huruf apa
(huruf kapital, kecil, atau campuran) data disimpan dalam database.
• Manipulasi huruf memungkinkan Anda untuk sementara mengonversi data database ke huruf
yang Anda pilih.
• Ketidakcocokan antara penyimpanan database dan permintaan huruf permintaan dihindari.

 Catatan:
Fungsi satu baris merupakan kode yang ditetapkan sebelumnya yang sangat kuat yang
menerima argumen dan mengembalikan nilai. Argumen dapat ditetapkan sebagai nama
kolom, ekspresi, atau konstan.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


5 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
Fungsi Manipulasi Huruf
• Fungsi manipulasi huruf digunakan untuk mengonversi data dari status penyimpanannya
dalam sebuah tabel menjadi huruf kecil, huruf.
• Konversi ini dapat digunakan untuk memformat output dan juga dapat digunakan untuk
mencari string tertentu.
• Fungsi manipulasi huruf dapat digunakan di sebagian besar pernyataan.
• Fungsi manipulasi huruf sering kali membantu ketika Anda mencari data dan tidak tahu
apakah data yang dicari menggunakan huruf besar atau kecil.
• Dari sudut pandang database, 'V' dan 'v' BUKAN karakter yang sama dan, dengan demikian,
Anda perlu mencari menggunakan huruf yang benar.
• LOWER(kolom | ekspresi) mengonversi karakter alfa menjadi huruf kecil.

SELECT last_name
FROM employees
WHERE LOWER(last_name) = 'abel';

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


6 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
 Catatan:
Alasan Oracle membedakan antara 'V' dan 'v' adalah karena cara penyimpanan karakter.
Oracle tidak menyimpan karakter secara langsung, tetapi nilai-nilai biner yang sesuai,
tergantung kumpulan karakter dari database. Hampir semua negara Barat, kumpulan
karakter ASCII akan digunakan sebagai kumpulan karakter database, dan kode biner untuk
'V' dan 'v' adalah angka yang berbeda; oleh karena itu, Oracle tidak menganggapnya sama.

• UPPER(column | expression) mengonversi karakter alfabet menjadi huruf kapital

SELECT last_name
FROM empl oyees
WHERE UPPER(last_name) = 'ABEL';

• INITCAP(column | expression) mengonversi nilai karakter alfabet menjadi huruf kapital untuk
huruf pertama setiap kata

SELECT last_name
FROM employees
WHERE INITCAP(last_name) = 'Abel';

 Catatan:
Menggunakan Fungsi Manipulasi Huruf dalam klausa WHERE memungkinkan Anda untuk
mengambil baris, terlepas dari huruf yang disimpan dalam tabel. Menggunakan Fungsi
Manipulasi Huruf dalam klausa SELECT mengubah cara tempat hasil kueri ditampilkan.

Fungsi Manipulasi Karakter


• Fungsi manipulasi karakter digunakan untuk mengekstrak, mengubah, memformat, atau
mengubah string karakter dengan cara tertentu.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


7 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• Satu karakter atau lebih atau kata-kata dilewatkan ke fungsi dan fungsi kemudian akan
menjalankan fungsinya pada string karakter input dan mengembalikan nilai yang diubah,
diekstrak, dihitung, atau diubah.
• CONCAT: Gabungkan dua nilai menjadi satu.
• Ambil 2 argumen string karakter, dan gabungkan string kedua ke yang pertama. Bisa juga
ditulis menggunakan operator rangkaian - 'Hello' || 'World'.

Contoh: Hasil
SELECT CONCAT('Hello', 'World') HelloWorld
FROM DUAL;
SELECT CONCAT(first_name, last_name) EllenAbel CurtisDavies
FROM employees; …

• SUBSTR: Mengekstrak string dengan panjang yang ditentukan.


• Argumennya adalah (karakter String, posisi awal, panjang).
• Argumen Panjang adalah opsional, dan jika dihilangkan, mengembalikan semua karakter ke
akhir string.

Contoh: Hasil
SELECT SUBSTR('HelloWorld', 1, 5) FROM DUAL; Hello
SELECT SUBSTR('HelloWorld', 6) FROM DUAL; World
SELECT SUBSTR(last_name, 1, 3) FROM employees; Abe
Dav

 Catatan:
Contoh 1: mengekstrak substring 5 karakter dari posisi 1 dari 'HelloWorld'.
Contoh 2: mengekstrak substring mulai dari posisi 6 dari 'HelloWorld' hingga akhir string.
Contoh 3: mengekstrak substring dari 3 karakter pertama dari nama belakang karyawan.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


8 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• LENGTH: Memperlihatkan panjang string sebagai nilai angka.
• Fungsi mengambil string karakter sebagai argumen, dan mengembalikan jumlah karakter
dalam string karakter tersebut.

Contoh: Hasil
SELECT LENGTH('HelloWorld') 10
FROM DUAL;
SELECT LENGTH(last_name) 4
FROM employees; 6

 Catatan:
Contoh kedua mengembalikan jumlah karakter di setiap nama belakang karyawan.

• INSTR: Mencari posisi numerik dari karakter yang ditentukan.


• INSTR mencari kemunculan pertama pada substring dalam string karakter dan
mengembalikan posisi sebagai angka.
• Jika substring tidak ditemukan, angka nol akan dikembalikan.

Contoh: Hasil
SELECT INSTR('HelloWorld', 'W') 6
FROM DUAL;
SELECT last_name, INSTR(last_name, 'a') Abel 0
FROM employees; Davies 2

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


9 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
 Catatan:
Contoh 1: 'W' adalah karakter ke 6 dari argumen string pertama, jadi fungsinya akan
mengembalikan angka 6.
Contoh 2: mengembalikan kemunculan pertama karakter 'a' dalam nama belakang karyawan.
Jika nama tidak mengandung 'a', nol akan dikembalikan. Meskipun Abel berisi "A", itu dalam
kasus yang salah, maka 0 dikembalikan.

• LPAD: Mengisi sisi kiri string karakter, menghasilkan nilai rata kanan
• LPAD membutuhkan 3 argumen: string karakter, jumlah total karakter dalam string yang diisi,
dan karakter yang harus diisi

Contoh: Hasil
SELECT LPAD('HelloWorld', 15, '-') -----HelloWorld
FROM DUAL;
SELECT LPAD(last_name, 10, '*') ******Abel
FROM employees; ****Davies

 Catatan:
Contoh 1: string 'HelloWorld' dibiarkan terisi hingga 15 karakter menggunakan simbol '-'. Karena
string memiliki panjang 10 karakter, simbol 5 '-' ditambahkan ke kiri. . Contoh 2: Nama belakang
karyawan diisi hingga 10 karakter menggunakan '*'.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


10 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• RPAD: Mengisi sisi kanan string karakter, menghasilkan nilai rata kiri

Contoh: Hasil
SELECT RPAD('HelloWorld', 15, '-') HelloWorld-----
FROM DUAL;
SELECT RPAD(last_name, 10, '*') Abel******
FROM employees; Davies****

• TRIM: Menghapus semua karakter yang ditentukan dari awal, akhir, atau dari awal dan akhir
string
• Sintaks untuk fungsi trim adalah:

Contoh: Hasil
SELECT TRIM(LEADING 'a' FROM 'abcba') bcba
FROM DUAL;
SELECT TRIM(TRAILING 'a' FROM 'abcba') abcb
FROM DUAL;
SELECT TRIM(BOTH 'a' FROM 'abcba') bcb
FROM DUAL;

 Catatan:
Contoh 1: menghapus awalan 'a' dari awal string 'abcba’
Contoh 2: menghapus akhiran ‘a’ dari ujung string 'abcba’ Contoh 3: menghapus kedua
'a' dan akhiran 'a' dari string 'abcba'.
Jika LEADING, TRAILING atau BOTH dihilangkan, fungsi mengembalikan BOTH.
JIKA karakter yang ditentukan bukan karakter awalan (atau akhiran) dari string, ini berarti
tidak dipangkas, misalnya TRIM (LEADING 'a' FROM 'xyz') akan mengembalikan 'xyz'

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


11 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• REPLACE: Mengganti urutan karakter di string dengan kumpulan karakter lain
• Sintaks untuk fungsi REPLACE adalah:

REPLACE (string1, string_to_replace, [replacement_string] )

− string1 adalah string yang karakternya akan diganti di dalamnya.


− string_to_replace adalah string yang akan dicari dan dikeluarkan dari string1.
− [replacement_string] adalah string baru yang akan dimasukkan ke string1.

Contoh: Hasil
SELECT REPLACE('JACK and JUE', 'J', 'BL') BLACK and BLUE
FROM DUAL;
SELECT REPLACE('JACK and JUE', 'J') ACK and UE
FROM DUAL;
SELECT REPLACE(last_name, 'a', '*') Abel D*vies
FROM employees; De H**n

 Catatan:
Contoh 1: Setiap instance 'J' pada string 'JACK and JUE' diganti dengan 'BL'. Contoh 2: Jika
argumen string pengganti dihilangkan, string_to_replace dihapus, Jadi setiap instance dari 'J'
dalam string 'JACK and JUE' dihapus.
Contoh 3: Setiap instance dari karakter 'a' dalam nama belakang karyawan diganti dengan
karakter '*'.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


12 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
Menggunakan Alias Kolom Dengan Fungsi
• Semua fungsi beroperasi pada nilai-nilai yang ada dalam tanda kurung, dan setiap nama
fungsi menunjukkan tujuannya, yang berguna untuk diingat ketika membangun kueri.
• Sering kali alias kolom digunakan untuk memberi nama fungsi.
• Ketika alias kolom digunakan, alias kolom muncul di output alih-alih sintaks fungsi yang
sebenarnya.
• Dalam contoh berikut, alias "Nama Pengguna" telah menggantikan sintaks fungsi di kueri
pertama.
• Secara default, nama kolom dalam pernyataan SELECT muncul sebagai judul kolom.
• Namun, dalam contoh kueri kedua, tidak ada kolom dalam tabel untuk hasil yang dihasilkan,
jadi sintaks kueri digunakan sebagai gantinya.

SELECT LOWER(last_name)||
LOWER(SUBSTR(first_name,1,1))
AS "User Name"
FROM employees;

User Name
abele
daviesc
de haanl

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


13 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
SELECT LOWER (last_name)||LOWER(SUBSTR(first_name,1,1))
FROM f_staffs;

LOWER(LAST_NAME)||LOWER(SUBSTR(FIRST_NAME,1,1))
does
millerb
uttlem

 Catatan:
Contoh pertama menggunakan Alias untuk judul kolom, dan lebih mudah dibaca dan
ramah pengguna daripada contoh kedua yang tidak memiliki alias kolom.

Variabel Pengganti
• Kadang Anda mungkin perlu menjalankan kueri yang sama dengan banyak nilai berbeda
untuk mendapatkan kumpulan hasil yang berbeda.
• Bayangkan misalnya jika Anda harus menulis laporan karyawan dan departemen, tetapi kueri
hanya mengembalikan data untuk satu departemen pada suatu waktu.
• Tanpa menggunakan variabel substitusi, permintaan ini berarti Anda harus berulang kali
mengedit pernyataan yang sama untuk mengubah klausa WHERE.
• Beruntung bagi kami, Oracle Application Express mendukung variabel substitusi.
• Untuk menggunakannya, yang harus Anda lakukan adalah mengganti nilai yang
menggunakan hardcode dalam pernyataan Anda dengan :named_variable.
• Oracle Application Express kemudian akan meminta nilai ketika Anda menjalankan
pernyataan.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


14 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• Jika ini adalah kueri asli:
SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id= 10;

− Kemudian jalankan kembali dengan nilai yang berbeda: 20, 30, 40…dsb
• Ini dapat ditulis sebagai:
SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id=:enter_dept_id;

• Catatan penggunaan: di depan enter_dept_id


• Titik dua yang merupakan bit ajaib dan membuat Oracle Application Express mengenali teks
yang mengikuti sebagai variabel

 Catatan:
Variabel Pengganti adalah variabel Yang Ditetapkan Pengguna saat penerapan.

• Ketika Anda mengeklik Run, pop-up seperti berikut ini ditampilkan oleh Oracle Application
Express:

• CATATAN: Pemblokir pop-up harus dinonaktifkan, jika tidak, APEX tidak dapat meminta nilai
variabel, karena ini dimasukkan melalui pop-up
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
15 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• Variabel substitusi diperlakukan sebagai string karakter di Oracle Application Express, yang
berarti bahwa ketika mengirimkan nilai karakter atau tanggal, Anda tidak memerlukan tanda
kutip tunggal yang biasanya Anda gunakan untuk menyertakan string.
• Jadi, klausa WHERE akan tampak seperti ini:

SELECT *
FROM employees
WHERE last_name = :l_name;

4.2. Fungsi Angka

Tujuan
• Pelajaran ini akan membahas tujuan berikut:
− Memilih dan menerapkan fungsi angka satu baris ROUND, TRUNC, dan MOD dalam
kueri SQL.
− Membedakan antara hasil yang diperoleh saat TRUNC diterapkan ke nilai angka dan
ROUND diterapkan ke nilai numerik.
− Menyatakan dampaknya terhadap bisnis saat menerapkan TRUNC dan ROUND ke nilai
numerik.
• Salah satu alasan kami menempatkan uang kami di bank adalah untuk mengambil
keuntungan dari bunga yang terakumulasi dari waktu ke waktu.
• Bank menyesuaikan suku bunga dengan berbagai indikator ekonomi seperti inflasi dan pasar
saham.
• Biasanya, suku bunga dinyatakan dalam persen seperti 3,45%
• Jika bank memutuskan untuk membulatkan tingkat persentase menjadi 3,5%, apakah hal ini
akan menguntungkan Anda?
• Jika bank memutuskan untuk menghilangkan nilai desimal dan menghitung bunga pada
angka 3%, apakah ini juga akan membuat Anda senang?

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


16 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• Membulatkan dan menyingkat angka memainkan peran penting dalam bisnis dan bergantian
dengan database yang mendukung bisnis ini ketika mereka menyimpan dan mengakses data
numerik

Terminologi
• Istilah-istilah penting yang digunakan dalam pelajaran ini di antaranya:
− Fungsi angka
− MOD
− ROUND
− TRUNC

Fungsi Angka
• Ketiga fungsi tersebut antara lain:
− ROUND
− TRUNC
− MOD

ROUND
• ROUND dapat digunakan dengan nomor dan angka
• Fungsi ini terutama digunakan untuk membulatkan angka ke sejumlah tempat desimal, tetapi
juga dapat digunakan untuk membulatkan angka di sebelah kiri titik desimal
• Sintaks:

ROUND(column|expression, decimal places)


• Perhatikan bahwa jika jumlah tempat desimal tidak ditentukan atau nol, jumlahnya akan
dibulatkan menjadi tidak ada tempat desimal
• ROUND(45.926) 46
• ROUND(45.926, 0) 46
• Jika jumlah tempat desimal adalah angka positif, jumlahnya dibulatkan ke jumlah tempat
desimal di sebelah kanan titik desimal
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
17 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• ROUND (45.926, 2) 45.93
• Jika jumlah tempat desimal adalah angka negatif, jumlahnya dibulatkan ke jumlah tempat
desimal di sebelah kiri titik desimal
• ROUND(45.926, -1) 50

 Catatan:
Menggunakan fungsi ROUND dengan tanggal akan dibahas di pelajaran berikutnya.

TRUNC
• Fungsi TRUNC dapat digunakan dengan angka dan tanggal. Fungsi ini terutama digunakan
untuk mengakhiri kolom, ekspresi, atau nilai ke sejumlah tempat desimal
• Ketika TRUNC digunakan, jika jumlah tempat desimal tidak ditentukan, maka seperti
ROUND, angka yang ditentukan menjadi default ke nol
• Sintaks:

TRUNC(column|expression, decimal places)


• TRUNC (45.926, 2) 45.92
• Seperti halnya ROUND, jika ekspresi TRUNC tidak menentukan jumlah tempat desimal atau
menentukan nol, angka tersebut disingkat ke tempat desimal nol
• TRUNC (45.926, 0) 45
• TRUNC (45.926) 45
• Ingatlah bahwa TRUNC tidak membulatkan angka.
• Fungsi ini cukup menghilangkan angka pada titik tertentu

 Catatan:
Menggunakan fungsi TRUNC dengan tanggal akan dibahas di pelajaran berikutnya.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


18 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
MOD
• Fungsi MOD menemukan sisanya setelah satu nilai dibagi dengan nilai lain
• Misalnya, MOD dari 5 dibagi 2 adalah 1
• MOD dapat digunakan untuk menentukan apakah suatu nilai ganjil atau genap. Jika Anda
membagi nilai dengan 2 dan tidak ada yang tersisa, angkanya harus bilangan genap
• Misalnya, jika MOD x dibagi 2 adalah 0, maka x harus berupa bilangan genap

 Catatan:
Operator modulus digunakan dalam banyak bahasa pemrograman, dan mengembalikan
sisanya setelah operasi pembagian.

• Kolom "Mod Demo" akan menunjukkan apakah jumlah bandara untuk setiap negara berupa
angka ganjil atau genap.
• 1 berarti angka ganjil, dan nol berarti agka genap.

SELECT country_name, MOD(airports,2)


AS "Mod Demo"
FROM wf_countries;

COUNTRY_NAME Mod Demo


Canada 1
Republic of Costa Rica 0
Republic of Cape Verde 1
Greenland 0

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


19 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
Dominican Republic 0
State of Eritrea 1

4.3. Fungsi Tanggal

Tujuan
• Pelajaran ini akan membahas tujuan berikut:
− Menunjukkan penggunaan fungsi SYSDATE dan tanggal
− Menyatakan dampaknya terhadap bisnis dunia untuk dapat memanipulasi dengan mudah
data yang disimpan dalam format tanggal
• Pernahkah Anda bertanya-tanya berapa hari tersisa pada tahun akademik atau masih ada
berapa minggu sampai kelulusan?
• Karena database Oracle menyimpan tanggal sebagai angka, Anda dapat dengan mudah
melakukan perhitungan pada tanggal menggunakan penjumlahan, pengurangan, dan
operator matematika lainnya
• Bisnis bergantung pada kemampuan untuk menggunakan fungsi tanggal untuk menjadwalkan
penggajian dan pembayaran, melacak ulasan kinerja karyawan dan masa kerja, atau
melacak pesanan dan pengiriman
• Semua kebutuhan bisnis ini mudah ditangani menggunakan fungsi tanggal SQL sederhana

Terminologi
• Istilah-istilah penting yang digunakan dalam pelajaran ini di antaranya:
− ADD_MONTHS
− LAST_DAY
− MONTHS_BETWEEN
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
20 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
− NEXT_DAY
− SYSDATE
− ROUND
− TRUNC

Tanggal yang Ditampilkan


• Format tampilan dan input default untuk tanggal adalah:
− DD-Mon-YYYY
• Contoh: 02-Dec-2014
• Namun, database Oracle menyimpan tanggal secara internal dengan format numerik yang
mewakili abad, tahun, bulan, hari, jam, menit, dan detik
• Tanggal Oracle yang valid adalah antara 1 Januari 4712 SM, dan 31 Desember 9999 M
• Format ini mewakili rentang tanggal yang dapat berhasil Anda simpan di database Oracle

SYSDATE
• SYSDATE adalah fungsi tanggal yang mengembalikan tanggal dan waktu server database
• Gunakan SYSDATE untuk menampilkan tanggal saat ini, gunakan tabel DUAL

SELECT SYSDATE
FROM dual;
SYSDATE
01-Jul-2017

Jenis Data DATE


• Tipe data DATE selalu menyimpan informasi tahun sebagai angka empat digit secara
internal: dua digit untuk abad dan dua digit untuk tahun.
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
21 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• Sebagai contoh, database Oracle menyimpan tahun seperti 1996 atau 2004, bukan hanya
sebagai 96 atau 04
• Dalam versi sebelumnya, komponen abad ini tidak ditampilkan secara default
• Namun, karena perubahan persyaratan bisnis di seluruh dunia, tahun 4 digit sekarang
menjadi tampilan default

Mengatur Tanggal
Contoh: Hasil
SELECT last_name, hire_date + 60 Tambah 60 hari ke hire_date.
FROM employees;
SELECT last_name, (SYSDATE - Tampilkan jumlah
hire_date)/7 minggusejak karyawan
FROM employees; direkrut.
SELECT employee_id, (end_date – Cari jumlah hari karyawan
start_date)/365 bekerja, kemudian bagi
AS "Tenure in last job" dengan 365 untuk
FROM job_history; menampilkan dalam
tahun.

 Catatan:
Contoh ini menunjukkan penggunaan operasi aritmatika dengan tanggal.

Fungsi Tanggal
• Fungsi tanggal ditampilkan dalam tabel yang mengoperasikan tanggal Oracle.
• Semua fungsi tanggal mengembalikan nilai dengan tipe data DATE kecuali fungsi
MONTHS_BETWEEN, yang mengembalikan nilai tipe data numerik.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


22 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
MONTHS_BETWEEN Jumlah bulan di antara dua tanggal
ADD_MONTHS Menambah bulan kalender ke tanggal
NEXT_DAY Tanggal kemunculan berikutnya untuk
hari pada pekan yangditentukan.
LAST_DAY Hari terakhir di bulan tersebut
ROUND Pembulatan tanggal
TRUNC Penyingkatan tanggal

 Catatan:
Untuk contoh yang mengikuti, SYSDATE adalah 01-Jul-2017

• MONTHS_BETWEEN: menggunakan 2 argumen DATE dan mengembalikan jumlah bulan


kalender antara 2 tanggal.
• Jika argumen pertama adalah tanggal yang lebih awal dari yang kedua, jumlah yang
dikembalikan adalah negatif.

Contoh Fungsi Tanggal: Hasil


SELECT last_name, hire_date King 17-Jun-1987
FROM employees Kochhar 21-Sep-1989
WHERE MONTHS_BETWEEN De Haan 13-Jan-1993
(SYSDATE, hire_date) > 240;
… …

 Catatan:
Contoh ini mengembalikan karyawan yang direkrut lebih dari 240 bulan (20 tahun) yang lalu.

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


23 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• ADD_MONTHS: menggunakan 2 argumen, DATE dan jumlah. Mengembalikan nilai DATE
dengan argumen jumlah ditambahkan ke komponen bulan dari tanggal.
• Jika angka yang diberikan negatif, fungsi akan mengurangi jumlah bulan dari argumen
tanggal.

Contoh Fungsi Tanggal: Hasil


SELECT ADD_MONTHS (SYSDATE, 12) 01-Jul-2016
AS "Next Year"
FROM dual;

 Catatan:
Contoh ini menambahkan 12 bulan ke tanggal saat ini.

• NEXT_DAY: menggunakan 2 argumen, DATE dan hari kerja dan mengembalikan DATE dari
kemunculan hari kerja tersebut berikutnya setelah argumen DATE

Contoh Fungsi Tanggal: Hasil


SELECT NEXT_DAY (SYSDATE, 'Saturday') 04-Jul-2017
AS "Next Saturday"
FROM dual;

• LAST_DAY: menggunakan argumen DATE dan mengembalikan DATE dari hari terakhir
bulan argumen DATE tersebut

Contoh Fungsi Tanggal: Hasil


SELECT LAST_DAY (SYSDATE) 31-Jul-2017
AS "End of the Month"
FROM dual;
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
24 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
• ROUND: mengembalikan DATE yang dibulatkan ke unit yang ditentukan oleh argumen kedua

Contoh Fungsi Tanggal: Hasil


SELECT hire_date, 16-Nov-1999 01-Dec-1999
ROUND(hire_date, 'Month') 17-Oct-1995 01-Nov-1995
FROM employees 29-Jan-1997 01-Feb-1997
WHERE department_id = 50; … …
SELECT hire_date, 16-Nov-1999 01-Jan-2000
ROUND(hire_date, 'Year') 17-Oct-1995 01-Jan-1996
FROM employees 29-Jan-1997 01-Jan-1997
WHERE department_id = 50; … …

• TRUNC: mengembalikan DATE yang disingkat ke unit yang ditentukan oleh argumen kedua

Contoh Fungsi Tanggal: Hasil


SELECT hire_date, 16-Nov-1999 01-Nov-1999
TRUNC(hire_date, 'Month') 17-Oct-1995 01-Oct-1995
FROM employees 29-Jan-1997 01-Jan-1997
WHERE department_id = 50; … …

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


25 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
Contoh Fungsi Tanggal: Hasil
SELECT hire_date, 16-Nov-1999 01-Jan-1999
TRUNC(hire_date, 'Year') 17-Oct-1995 01-Jan-1995
FROM employees 29-Jan-1997 01-Jan-1997
WHERE department_id = 50; … …

 Catatan:
Jika 'bulan' adalah unit yang ditentukan, tanggal yang dikembalikan akan menjadi hari pertama
bulan untuk argumen DATE. Jika ‘Tahun' adalah unit yang ditentukan, TRUNC akan
mengembalikan hari pertama bulan untuk argumen DATE.

• Berikut ini contoh kueri menggunakan beberapa fungsi data

SELECT employee_id, hire_date,


ROUND(MONTHS_BETWEEN(SYSDATE, hire_date)) AS
TENURE,
ADD_MONTHS (hire_date, 6) AS REVIEW,
NEXT_DAY(hire_date, 'FRIDAY'), LAST_DAY(hire_date)
FROM employees
WHERE MONTHS_BETWEEN (SYSDATE, hire_date) > 36;

• Kumpulan hasil untuk kueri ini menghasilkan 20 baris, antara lain:


• Output yang ditampilkan

EMPLOYEE_ID HIRE_DATE TENURE REVIEW NEXT_DAY(HIRE_DATE,'FRIDAY') LAST_DAY(HIRE_DATE)


100 17-Jun-1987 348 17-Dec-1987 19-Jun-1987 30-Jun-1987
101 21-Sep-1989 321 21-Mar-1990 22-Sep-1989 30-Sep-1989
102 13-Jan-1993 281 13-Jul-1993 15-Jan-1993 31-Jan-1993

2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning


26 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
EMPLOYEE_ID HIRE_DATE TENURE REVIEW NEXT_DAY(HIRE_DATE,'FRIDAY') LAST_DAY(HIRE_DATE)
200 17-Sep-1987 345 17-Mar-1988 18-Sep-1987 30-Sep-1987
205 07-Jun-1994 265 07-Dec-1994 10-Jun-1994 30-Jun-1994
206 07-Jun-1994 265 07-Dec-1994 10-Jun-1994 30-Jun-1994
149 29-Jan-2000 197 29-Jul-2000 04-Feb-2000 31-Jan-2000
174 11-May-1996 241 11-Nov-1996 17-May-1996 31-May-1996
176 24-Mar-1998 219 24-Sep-1998 27-Mar-1998 31-Mar-1998
178 24-May-1999 205 24-Nov-1999 28-May-1999 31-May-1999
lebih dari 10 baris tersedia. Tingkatkan selektor baris untuk melihat lebih banyak baris.

RANGKUMAN
Dalam pelajaran ini, Anda seharusnya telah mempelajari cara:
− Memilih dan menerapkan fungsi satu baris yang melakukan konversi huruf dan/atau
manipulasi karakter.
− Memilih dan menetapkan fungsi manipulasi huruf LOWER, UPPER, dan INITCAP dalam
kueri SQL.
− Memilih dan menerapkan fungsi manipulasi karakter CONCAT, SUBSTR, LENGTH, INSTR,
LPAD, RPAD, TRIM, dan REPLACE dalam kueri SQL
− Menuliskan kueri fleksibel menggunakan variabel pengganti.
− Memilih dan menerapkan fungsi angka satu baris ROUND, TRUNC, dan MOD dalam kueri
SQL.
− Membedakan antara hasil yang diperoleh saat TRUNC diterapkan ke nilai angka dan ROUND
diterapkan ke nilai numerik.
− Menyatakan dampaknya terhadap bisnis saat menerapkan TRUNC dan ROUND ke nilai
numerik.
− Memilih dan menerapkan fungsi satu baris MONTHS_BETWEEN, ADD_MONTHS,
NEXT_DAY, LAST_DAY, ROUND, dan TRUNC yang beroperasi pada ta tanggal.
2023 Pemrograman Basis Data Pusat Bahan Ajar dan eLearning
27 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id
− Menjelaskan bagaimana fungsi tanggal mentransformasikan tanggal Oracle menjadi data
tanggal atau nilai numerik.
− Mendemonstrasikan penggunaan yang tepat dari operator aritmetika dengan tanggal.
− Menunjukkan penggunaan fungsi SYSDATE dan tanggal.
− Menyatakan dampaknya terhadap bisnis dunia untuk dapat memanipulasi dengan mudah
data yang disimpan dalam format tanggal.

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 Endang Retnoningsih, S.Kom., M.Kom., Hp. : 081297744050 http://www.undira.ac.id

Anda mungkin juga menyukai