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%.
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
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.
(319/29)+12
23
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.
SELECT last_name
FROM employees
WHERE LOWER(last_name) = 'abel';
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.
Contoh: Hasil
SELECT CONCAT('Hello', 'World') HelloWorld
FROM DUAL;
SELECT CONCAT(first_name, last_name) EllenAbel CurtisDavies
FROM employees; …
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.
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.
Contoh: Hasil
SELECT INSTR('HelloWorld', 'W') 6
FROM DUAL;
SELECT last_name, INSTR(last_name, 'a') Abel 0
FROM employees; Davies 2
…
• 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 '*'.
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'
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 '*'.
SELECT LOWER(last_name)||
LOWER(SUBSTR(first_name,1,1))
AS "User Name"
FROM employees;
User Name
abele
daviesc
de haanl
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.
− 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:
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;
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?
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:
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:
Catatan:
Menggunakan fungsi TRUNC dengan tanggal akan dibahas di pelajaran berikutnya.
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.
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
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
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.
Catatan:
Untuk contoh yang mengikuti, SYSDATE adalah 01-Jul-2017
Catatan:
Contoh ini mengembalikan karyawan yang direkrut lebih dari 240 bulan (20 tahun) yang lalu.
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
• LAST_DAY: menggunakan argumen DATE dan mengembalikan DATE dari hari terakhir
bulan argumen DATE tersebut
• TRUNC: mengembalikan DATE yang disingkat ke unit yang ditentukan oleh argumen kedua
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.
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