Anda di halaman 1dari 11

LAPORAN

BUILT IN FUNCTION

DISUSUN OLEH:
WAHYU BULKHOIR
2201092036

DOSEN PENGAMPU:
YANCE SONATHA, S.Kom., M.T
MERI AZMI , S.T., M.Cs

JURUSAN TEKNOLOGI INFORMASI


PRODI MANAJEMEN INFORMATIKA
POLITEKNIK NEGERI PADANG
2023
1. FUNGSI NUMERIK
Fungsi Numerik adalah fungsi yang digunakan untuk manipulasi data bernilai
numerik. Berikut beberapa macam fungsi numerik:
a. Fungsi ABS()  adalah fungsi yang mengembalikan nilai mutlak dari sebuah
angka.
Contoh : Cari selisih antara gaji tertinggi dan gaji terendah, tampilkan setiap
job_title
SELECT job_title, min_salary, max_salary,
ABS(min_salary-max_salary) as selisih1,
max_salary-min_salary as selisih2
FROM jobs;
b. Fungsi Round ()  adalah fungsi untuk membulatkan angka ke sejumlah tempat
desimal. Fungsi ini juga digunakan untuk pembulatan , dengan melihat nilai posisi
desimal.
Contoh : Bonus didapatkan 1.25 kali besaran gaji/salary yang dikalikan dengan
commissionn_pct. Tampilkan nama lengkap employee(dalam huruf kapital),
salary, commission_pct dan besaran bonus (lakukan pembulatan) untuk employee
yang memiliki commission_pct dan untuk job_id yang berawalan SA dan
hire_date mulai tahun 2007 keatas.
SELECT UPPER(first_name||' '||last_name) as nama,
salary,
commission_pct,
ROUND(1.25*salary*commission_pct) as bonus,
job_id,
hire_date
FROM employees
WHERE job_id LIKE 'SA%'
AND hire_date>='01-JAN-2007'
AND commission_pct IS NOT NULL;
c. Fungsi Ceil ()  fungsinya untuk pembulatan keatas dari nilai desimal sebuah
angka.
Contoh: SELECT CEIL(12.99) FROM dual; --13
SELECT CEIL(12.0001) FROM dual; --13
d. Fungsi Floor ()  fungsinya untuk pembulatan kebawah dari nilai desimal sebuah
angka.
Contoh: SELECT FLOOR(12.01) FROM dual; --12
SELECT FLOOR(12.99) FROM dual; --12
e. Fungsi Trunc ()  untuk memotong nilai angka tanpa melakukan pembulatan.
Contoh: SELECT TRUNC(12.3764,2) FROM dual; --12.37
SELECT TRUNC(12.1,2) FROM dual; --12.10
SELECT TRUNC(159.253,2) FROM dual; --159.25
SELECT TRUNC(159.253,0) FROM dual; --159
f. Fungsi Mod ()  Fungsinya untuk menampilkan sisa bagi
Contoh: SELECT MOD(10,3) FROM dual; --10 MOD 3
g. Fungsi Power ()  Fungsinya menampilkan hasil perpangkatan
Contoh: SELECT POWER(2,5) FROM dual; --2 pangkat 5
h. Fungsi SQRT ()  Fungsinya untuk menampilkan hasil akar kuadrat
Contoh: SELECT SQRT(25) FROM dual; --akar kuadrat dari 25.

2. FUNGSI DATE
Fungsi Date adalah fungsi yang digunakan untuk memanipulasi data berupa
tanggal (tipe : date). Berikut beberapa fungsi date:
a. SYSDATE & CURRENT_DATE  digunakan untuk mengembalikan tanggal
saat ini (sesuai dengan waktu server)
SYSTEMSTAMP/LOCALTIMESTAMP  digunakan untuk mengembalikan
tanggal dan waktu sesuai dengan server(realtime).
Contoh: Tampilkan jumlah minggu sejak karyawan direkrut!
SELECT last_name, FLOOR((SYSDATE - hire_date)/7)
FROM employees;
b. MONTHS BETWEEN  digunakan untuk menampilkan berapa banyak bulan
yang ada pada 2 buah tanggal.
Contoh: Tampilkan berapa bulan seorang karyawan bekerja pada masing masing
departemen sesuai dengan riwayat kerjanya. Urutkan berdasarkan id karyawan, id
departemen, awal kerja, akhir kerja, lama bulan kerja!
SELECT employee_id, department_id, start_date, end_date,
ABS(TRUNC(MONTHS_BETWEEN(start_date, end_date)))
as lama_bulan_kerja
FROM job_history
ORDER BY employee_id;
c. ADD_MONTHS  digunakan untuk mengembalikan nilai tanggal sesuai dengan
penambahan /pengurangan jumlah bulan tertentu.
Contoh: Karyawan yang mulai bekerja pada tahun 2007 wajib menyerahkan
NPWP paling lambat 5 bulan setelah direkrut. Tampilkan siapa saja karyawan
(namalengkap), tanggal mulai bekerja dan tanggal batas waktu penyerahan
NPWP. Urutkan dari karyawan yang direkrut paling akhir!
SELECT first_name||' '||last_name as nama_lengkap,
hire_date as tanggal_mulai,
ADD_MONTHS(hire_date,5) as tanggal_penyerahannpwp
FROM employees
WHERE hire_date BETWEEN '01-JAN-2007' AND '31-DEC-2007'
ORDER BY hire_date DESC;
d. NEXT_DAY  digunakan untuk mengembalikan nilai tanggal dari hari
berikutnya sesuai dengan nama hari yang ada pada argumen ke 2.
Contoh: Tampilkan tanggal hari rabu mendatang !
SELECT NEXT_DAY(SYSDATE,'Wednesday')
FROM dual;
e. LAST_DAY  digunakan untuk mengembalikan nilai tanggal dihari terakhir
bulan sesuai dengan nilai tanggal pada argumen fungsi.
Contoh: Setiap karyawan memperoleh gaji perdana setelah 3 bulan training(3
bulan setelah hire_date). Gaji diberikan pada tanggal 1 bulan berikutnya setelah
training. Peraturan ini hanya berlaku untuk karyawan yang job_id ada unsur
CLERK. Tampilkan nama lengkap karyawan, tanggal direkrut, tanggal akhir
training, tanggal perdana gajian, job_id.
SELECT first_name||' '||last_name as nama_lengkap, job_id,
hire_date,ADD_MONTHS(hire_date,3) as training_terakhir,
LAST_DAY(ADD_MONTHS(hire_date,3))+1 as
tanggal_gaji_perdana
FROM employees
WHERE job_id LIKE('%CLERK%');
f. ROUND  digunakan untuk megembalikan nilai tanggal yang dibulatkan sesuai
dengan ketentuan pada argumen.
Pembulatan bulan :
1. MONTH(MM)  membulatkan ke bulan sesuai dengan bulan dinilai
tanggal atau bulan berikutnya. Jika nilai adalah 1-15 maka dibulatkan ke bulan
saat itu. Sedangkan nilai 16-akhir maka dibulatkan ke bulan berikutnya
Contoh:
SELECT ROUND(SYSDATE,'MM')
FROM dual;
2. YEAR(YY)  membulatkan ke tahun saat itu/berikutnya. Jika tanggal
dibulan JAN-JUN maka pembulatan ketahun saat itu. Sedangkan jika dibulan
JUL-DEC maka pembulatan ketahun berikutnya
Contoh:
-SELECT ROUND(SYSDATE),'YY'
FROM dual;
-SELECT hire_date ROUND(hire_date,'YY')
FROM employees;
g. TRUNC  digunakan untuk mengembalikan nilai tanggal ke tanggal 1 bulan
yang sama (MM) atau ketanggal 1 bulan 1 tahun yang sama(YY).
Contoh: -SELECT hire_date, TRUNC(hire_date,'MM
FROM employees;
-SELECT hire_date, TRUNC(hire_date,'YY')
FROM employees;

3. FUNGSI KONVERSI
Fungsi Konversi adalah fungsi yang digunakan untuk mengubah data. Berikut
beberapa fungsi konversi:
a. TO_CHAR  digunakan untuk mengubah / mengkonversi data date ke karakter /
string dan untuk mengkonversi tipe data angka(numerik) ke karakter/string.
Berikut model formatnya:
~YYYY  tahun dalan angka lengkap
~YEAR  tahun yang dieja
~MM  nilai dua digit untuk bulan
~MONTH --> nama bulan ditulis lengkap
~MON  singkatan tiga angka untuk bulan
~DY  singkatan tiga huruf untuk hari dalam pekan
~DAY  hari dalam pekan yang ditulis lengkap
~DD  hari numerik dibulan yang ditentukan
~DDspth  FOURTEENTH
~Ddspth . Fourteenth
~ddspth  fourteenth
~DDD atau DD atau D  hari dalam tahun, bulan, atau pekan
Catatan: - sp  angka
- th  membuat angka muncul berurutan
Note: untuk ubah data kebahasa indonesia, tambahkan argumen ke3 dengan
nls_date_language=Indonesian.
Contoh: 1. Tanggal 7 juni adalah tanggal lahir perusahaan, karyawan yang
direkrut pada tanggal tersebut berhak mendapatkan cuti selama seminggu.
Tanggal cuti boleh diambil 2 tahun setelah karyawan tersebut direkrut. Peraturan
hanya berlaku untuk karyawan dengan manager_id 100,101,120. Tampilkan
nama_lengkap, tanggal direkrut, tanggal mulai cuti, tanggal selesai cuti dengan
format
tanggal direkrut --> hari 12 Jan 03
tanggal cuti --> hari, jan 12and 2005
tanggal akhir cuti --> hari, 19 januari 2005 (indonesia)!
SELECT first_name||' '||last_name as full_name,
manager_id,
TO_CHAR(hire_date,'day, DD Month YY') as
tanggal_direkrut,
TO_CHAR(ADD_MONTHS(hire_date,24),'day, Month ddth
YYYY') as tanggal_mulai_cuti,
TO_CHAR(ADD_MONTHS(hire_date,24)+7,'day, DD Month
YYYY','nls_date_language = Indonesian')as tgl_selesai_cuti
FROM employees
WHERE manager_id IN (100,101,120) AND hire_date LIKE'%07-
Jun%';
2. Tampilkan nama karyawan yang bekerja dibawah manager dengan id
100,101,114 beserta gajinya dalam format $xx,xxx.xx contoh $10,000.00.
Urutkan dari karyawan dengan salary tertinggi!
SELECT first_name||' '||last_name as nama_karyawan,
salary, TO_CHAR(salary,'L99,999.99') as gaji
FROM employees
WHERE manager_id IN(100,101,114)
ORDER BY salary;
b. TO_NUMBER  digunakan untuk mengkonversi karakter/string ke numerik.
Contoh: SELECT '12,235.58' as gaji_bulanan,
TO_CHAR(TO_NUMBER('$12,235.58','$99,999.99')*12,'$99
9,999.99') as gaji_tahunan
FROM dual;
c. TO_DATE  digunakan untuk mengkonversi string ke date.
Contoh: SELECT TO_DATE('10 April 2022','DD MONTH YYYY')
FROM dual; --10-Apr-2022

4. FUNGSI NULL
Fungsi Null adalah fungsi yang mengelola data dengan domain membolehkan
nilai null. Berikut beberapa fungsi null:
a. NVL(Null Value)  digunakan untuk mengkonversi nilai NULL menjadi sebuah
nilai baru (pastikan nilai yang baru memiliki tipe data yang sama dengan nilai
sebelumnya).
Contoh: Tampilkan location_id, street_address, city dan state_province secara
terurut berdasarkan kota. Jika nilai state_province tidak ada isikan dengan
keterangan "Belum ada data"!
SELECT location_id, street_address, city
NVL(state_province,'Belum ada data') as state_province
FROM locations
ORDER BY city;
b. NVL2  fungsi yang melibatkan 3 argumen. Fungsi ini akan melibatkan nilai di
argumen 2 jika argumen1 ada nilainya, dan akan mengembalikan nilai di argumen
3 jika argumen1 berisi NULL.
Contoh: Pada tabel locations, tampilkan location_id, street_address, city,
state_province dan description (yang berisikan penjelasan jika state_province ada
tampilkan tulisan ada data state, jika tidak ada tampilkan tulisan data belum ada)!
SELECT location_id,
street_address,
city,
state_province,
NVL2(state_province,'ada data state','belum ada data') as
description
FROM locations;
c. NULL IF  digunakan untuk membandingkan 2 nilai argumen. Jika kedua
argumen memiliki nilai yang sama, maka dikembalikan nilai NULL. Tetapi jika
kedua argumen nilainya brbeda, maka yang akan dikembalikan adalah nilai
argumen 1.
Contoh: SELECT NULLIF(5,3) FROM dual; --5
SELECT NULLIF(5,5) FROM dual; --NULL
SELECT NULLIF(2+3,5) FROM dual; --NULL
SELECT NULLIF('Hallo','Hallo') FROM dual; --NULL
SELECT NULLIF(TO_CHAR(SYSDATE,'Month'),'April' FROM dual;
--April
d. COALESCE adalah pengembangan dari fungsi NVL. Fungsi ini bisa memiliki
banyak argumen dan ini akan mengembalikan nilai pertama yang bukan NULL.
Contoh: Tampilkan location_id, street_address, postal_code, city, state_province
dan keterangan. Keterangan berisikan data state_province, jika tidak ada gantikan
dengan postal code, jika nilai postal code juga tidak ada berikan keterangan 'Tidak
ada data'. Tampilkan data tersebut hanya untuk country UK!
SELECT location_id, street_address, postal_code, state_province,
COALESCE(state_province, postal_code,'tidak ada data') as
keterangan
FROM locations
WHERE country_id='UK';

5. EKSPRESI KONDISI
Ekspresi Kondisi adalah pernyataan yang digunakan untuk memberikan pemilihan
(kondisi logis). Berikut macam” ekspresi kondisi:
a. CASE  memiliki 2 struktur, yaitu struktur global dan struktur khusus.
1. Struktur Global  (bisa menampung segala kemungkinan kondisi)
CASE
WHEN eksp_kondisi1 THEN nilai1
WHEN eksp_kondisi2 THEN nilai2
ELSE nilai3
END
2. Struktur Khusus
CASE field/ekspresi
WHEN kondisi1 THEN nilai1
WHEN kondisi2 THEN nilai2
ELSE nilai3
END
Contoh: Misalkan daerah di tabel locations dibagi menjadi 3 wilayah berdasarkan
location_id dengan ketentuan:
location_id<=2000 : wilayah I
2001 - 3000 : wilayah II
> 3000 : wilayah III
Tampilkan location_id, street address, description(yang dicek dari state_province, jika
tidak ada nilai state privince ganti dengan pstal_code, jika ada nilai state_province
description berisikan nilai city), keterangan wilayah!
SELECT location_id, street_address,
NVL2(state_province,city,postal_code) as description,
CASE
WHEN location_id<=2000 THEN 'Wilayah I'
WHEN location_id<=3000 THEN 'Wilayah II'
ELSE 'Wilayah III'
END as keterangan_wilayah
FROM locations;
b. DECODE  berikut struktur dari DECODE
DECODE(field/ekspresi,kemungkinan1,nilaihasil1,
kemungkinan2,nilaihasil2,
kemungkinan3,nilaihasil3,
nilaidefault)
Note: -SELECT DECODE(2,2,'nilai sama dua',
'nilai tdk sama dua')
FROM dual; --nilai sama dua
-SELECT DECODE(MOD(5,2),1,'ganjil','genap')
FROM dual; --ganjil
-SELECT DECODE(MOD(10,3),0,'kelipatan 3',
1,'sisa bagi 1',
'sisa bagi 2')
FROM dual; --sisa bagi 1
Contoh: Tampilkan nama lengkap employee, department_id, keterangan dan
hire_date untuk karyawan yang direkrut sejak tahun 2006 dengan keterangan
berisikan level/posisi yang didasarkan pada department_id sbb:
department_id = 90 --> 'Level Manajemen'
department_id = 80 --> 'Level Pemasaran'
department_id = 60 --> 'Front Office'
selain itu : 'lain-lain'
tampilkan terurut berdasarkan nama depan karyawan dan tampilkan hanya yang
nama depannya diawali huruf A – J!
SELECT first_name||' '||last_name as nama_lengkap,
department_id,
hire_date,
DECODE(department_id,90,'Level Pemasaran',
80,'Level Pemasaran',
60,'Front Office',
'lain lain') as keterangan

FROM employees
WHERE hire_date>='01-Jan-2006' AND first_name BETWEEN 'A'
AND 'K'
ORDER BY first_name;
6. REFERENSI
Dr.Sum. Bab 6. Fungsi. Diakses melalui
https://cs.wingarc.com/manual/drsum/5.6/id/drsum/id/UUID-4152c606-df91-
de0b-c52f-c00dfb6144f3.html
Studocu. (2023). Ekspresi dan Kondisi. Diakses melalui
https://www.studocu.com/id/document/universitas-lambung-mangkurat/
bahasa-kueri-terstruktur/ekspresi-dan-kondisi/44003415
Sutiono. (2021). Operator SQL : Syntax dan Contohnya. Diakses melalui
https://learn.microsoft.com/id-id/sql/t-sql/language-elements/logical-
operators-transact-sql?view=sql-server-ver16
Mubarok, Hamdani. (2014). Pengenalan Operator Dasar Pada MySQL. Diaskes
melalui https://dosenit.com/sql/operator-sql-syntax-dan-contohnya
Anonim. (2014). Operator Dasar MySQL. Diakses melalui
http://izzaluzzy.blogspot.com/2014/10/operator-dasar-mysql.html

Anda mungkin juga menyukai