PL/SQL - Jenis Data
Hai, para pemrogram yang sedang belajar! Hari ini, kita akan melihat dunia yang menarik jenis data PL/SQL. Jangan khawatir jika Anda baru saja memulai pemrograman; saya akan memandu Anda dalam perjalanan ini langkah demi langkah. Pada akhir tutorial ini, Anda akan merasa nyaman dengan berbagai jenis data di PL/SQL dan siap untuk memulai petualangan coding Anda!
Jenis Data Skalar PL/SQL dan Subtipe
Ayo mulai dari dasar. Dalam PL/SQL, jenis data skalar adalah fondasi dari program kita. Mereka mewakili nilai tunggal, seperti angka atau teks.
Apa Itu Jenis Data Skalar?
Jenis data skalar adalah bentuk paling sederhana dari data di PL/SQL. Mereka seperti atom dari universitas pemrograman kita - unit kecil, tak terbagi yang kita gunakan untuk membangun struktur yang lebih kompleks.
Berikut adalah contoh sederhana untuk mengilustrasikan jenis data skalar:
DECLARE
my_name VARCHAR2(50) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('Nama saya adalah: ' || my_name);
END;
Dalam contoh ini, my_name
adalah variabel jenis VARCHAR2
, yang digunakan untuk menyimpan teks. Kita telah memberikannya nilai 'John Doe'. Ketika kita menjalankan kode ini, itu akan mengeluarkan: "Nama saya adalah: John Doe".
Jenis Data Numerik PL/SQL dan Subtipe
Sekarang, mari bicarakan tentang angka. PL/SQL memiliki beberapa jenis data numerik untuk menangani jenis angka yang berbeda.
Jenis Data Numerik Umum
Jenis Data | Deskripsi | Contoh |
---|---|---|
NUMBER | Angka umum | NUMBER(10,2) |
INTEGER | Angka bulat | INTEGER |
BINARY_FLOAT | Angka pecahan 32-bit | BINARY_FLOAT |
BINARY_DOUBLE | Angka pecahan 64-bit | BINARY_DOUBLE |
Ayo lihat ini dalam aksi:
DECLARE
my_integer INTEGER := 42;
my_float BINARY_FLOAT := 3.14;
my_salary NUMBER(8,2) := 5000.50;
BEGIN
DBMS_OUTPUT.PUT_LINE('Jawabannya adalah: ' || my_integer);
DBMS_OUTPUT.PUT_LINE('Pi hampir adalah: ' || my_float);
DBMS_OUTPUT.PUT_LINE('Gaji saya adalah: $' || my_salary);
END;
Skrip ini mendeklarasikan tiga variabel dengan jenis numerik yang berbeda. Jenis NUMBER(8,2)
untuk my_salary
berarti itu dapat menyimpan hingga 8 digit secara keseluruhan, dengan 2 digit setelah titik desimal.
Jenis Data Karakter PL/SQL dan Subtipe
Data teks sangat penting dalam pemrograman. PL/SQL menyediakan beberapa jenis data karakter untuk menangani teks secara efisien.
Jenis Data Karakter Umum
Jenis Data | Deskripsi | Contoh |
---|---|---|
VARCHAR2 | String panjang variabel | VARCHAR2(100) |
CHAR | String panjang tetap | CHAR(10) |
NVARCHAR2 | String unicode panjang variabel | NVARCHAR2(100) |
NCHAR | String unicode panjang tetap | NCHAR(10) |
Berikut adalah bagaimana kita menggunakannya dalam praktik:
DECLARE
my_varchar VARCHAR2(50) := 'Hello, World!';
my_char CHAR(10) := 'Fixed ';
my_nvarchar NVARCHAR2(50) := N'こんにちは'; -- "Hello" dalam Bahasa Jepang
BEGIN
DBMS_OUTPUT.PUT_LINE('VARCHAR2: ' || my_varchar);
DBMS_OUTPUT.PUT_LINE('CHAR: ' || my_char || '(akhir)');
DBMS_OUTPUT.PUT_LINE('NVARCHAR2: ' || my_nvarchar);
END;
Perhatikan bagaimana jenis CHAR
menambahkan spasi ke string untuk mengisi panjang tetapnya.
Jenis Data Boolean PL/SQL
Jenis data boolean sangat penting untuk membuat keputusan dalam program kita. Mereka hanya dapat memiliki tiga nilai: TRUE, FALSE, atau NULL.
DECLARE
is_student BOOLEAN := TRUE;
has_job BOOLEAN := FALSE;
is_married BOOLEAN;
BEGIN
IF is_student THEN
DBMS_OUTPUT.PUT_LINE('Orang ini adalah pelajar.');
END IF;
IF NOT has_job THEN
DBMS_OUTPUT.PUT_LINE('Orang ini tidak memiliki pekerjaan.');
END IF;
IF is_married IS NULL THEN
DBMS_OUTPUT.PUT_LINE('Kami tidak tahu apakah orang ini menikah.');
END IF;
END;
Skrip ini menunjukkan bagaimana kita menggunakan nilai boolean untuk membuat keputusan dalam kode kita.
Jenis Data Tanggal dan Interval PL/SQL
Ketika bekerja dengan tanggal dan waktu, PL/SQL menyediakan jenis data khusus untuk menangani nilai ini dengan akurasi.
Jenis Data Tanggal Umum
Jenis Data | Deskripsi | Contoh |
---|---|---|
DATE | Tanggal dan waktu | DATE |
TIMESTAMP | Tanggal dan waktu dengan detik pecahan | TIMESTAMP |
INTERVAL YEAR TO MONTH | Periode waktu dalam tahun dan bulan | INTERVAL YEAR TO MONTH |
INTERVAL DAY TO SECOND | Periode waktu dalam hari, jam, menit, dan detik | INTERVAL DAY TO SECOND |
Ayo lihat ini dalam aksi:
DECLARE
current_date DATE := SYSDATE;
future_date TIMESTAMP := SYSTIMESTAMP + INTERVAL '1' YEAR;
age_interval INTERVAL YEAR TO MONTH;
BEGIN
age_interval := (SYSDATE - TO_DATE('1990-01-01', 'YYYY-MM-DD')) YEAR TO MONTH;
DBMS_OUTPUT.PUT_LINE('Tanggal saat ini: ' || TO_CHAR(current_date, 'DD-MON-YYYY'));
DBMS_OUTPUT.PUT_LINE('Tanggal setelah 1 tahun: ' || TO_CHAR(future_date, 'DD-MON-YYYY HH24:MI:SS.FF'));
DBMS_OUTPUT.PUT_LINE('Umur: ' || age_interval);
END;
Skrip ini menunjukkan bagaimana bekerja dengan tanggal, timestamp, dan interval.
Jenis Data Objek Besar PL/SQL
Untuk menangani jumlah besar data, PL/SQL menyediakan jenis data LOB (Large Object).
Jenis Data LOB Umum
Jenis Data | Deskripsi | Contoh |
---|---|---|
CLOB | Character Large Object | CLOB |
BLOB | Binary Large Object | BLOB |
NCLOB | National Character Large Object | NCLOB |
Berikut adalah contoh sederhana penggunaan CLOB:
DECLARE
my_clob CLOB;
BEGIN
my_clob := 'Ini adalah string yang sangat panjang dan mungkin berjumlah beberapa megabyte.';
DBMS_OUTPUT.PUT_LINE(DBMS_LOB.GETLENGTH(my_clob) || ' karakter panjang');
END;
Skrip ini membuat sebuah CLOB dan menunjukkan bagaimana mendapatkan panjangnya.
Subtipe User-Defined PL/SQL
PL/SQL mengijinkan Anda membuat subtipe Anda sendiri berdasarkan jenis data yang sudah ada. Ini dapat membantu membuat kode Anda lebih mudah dibaca dan dipelihara.
DECLARE
SUBTYPE positive_number IS NUMBER(8,2) CHECK (positive_number > 0);
my_salary positive_number;
BEGIN
my_salary := 5000.50;
DBMS_OUTPUT.PUT_LINE('Gaji saya: $' || my_salary);
-- Ini akan menyebabkan kesalahan:
-- my_salary := -1000;
END;
Dalam contoh ini, kita membuat subtipe positive_number
yang memastikan nilai selalu positif.
NULLs di PL/SQL
Akhirnya, mari bicarakan tentang nilai NULL. Dalam PL/SQL, NULL mewakili nilai yang tak diketahui atau tidak tersedia. Itu tidak sama dengan nol atau string kosong.
DECLARE
var1 NUMBER;
var2 VARCHAR2(10) := '';
BEGIN
IF var1 IS NULL THEN
DBMS_OUTPUT.PUT_LINE('var1 adalah NULL');
END IF;
IF var2 IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('var2 bukan NULL, itu adalah string kosong');
END IF;
END;
Skrip ini menunjukkan perbedaan antara NULL dan string kosong.
Dan itu saja! Kita telah meliputi jenis data utama di PL/SQL. Ingat, memahami jenis data sangat penting untuk menulis kode yang efisien dan bebas kesalahan. Terus latihan, dan segera Anda akan menjadi ahli PL/SQL!
Credits: Image by storyset