PL/SQL - Tipe Data
Hai, para pemrogram yang sedang belajar! Hari ini, kita akan masuk ke dunia yang menarik dari tipe data PL/SQL. Jangan khawatir jika Anda baru saja memulai programming; saya akan memandu Anda dalam perjalanan ini langkah demi langkah. Pada akhir panduan ini, Anda akan merasa nyaman dengan berbagai tipe data di PL/SQL dan siap untuk memulai petualangan coding Anda!
Tipe Data dan Subtype Skalar PL/SQL
mari mulai dari dasar. Di PL/SQL, tipe data skalar adalah blok bangunan dari program kita. Mereka mewakili nilai tunggal, seperti angka atau teks.
Apa Itu Tipe Data Skalar?
Tipe data skalar adalah bentuk paling sederhana dari data di PL/SQL. Mereka seperti atom dalam universitas programming kita - unit kecil, tak dapat dibagi yang kita gunakan untuk membangun struktur yang lebih kompleks.
Berikut adalah contoh sederhana untuk mengilustrasikan tipe 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 tipe VARCHAR2
, yang digunakan untuk menyimpan teks. Kita memberikan nilai 'John Doe' kepadanya. Ketika kita menjalankan kode ini, itu akan mencetak: "Nama saya adalah: John Doe".
Tipe Data Numerik PL/SQL dan Subtype
Sekarang, mari bicarakan tentang angka. PL/SQL memiliki beberapa tipe data numerik untuk menangani jenis angka yang berbeda.
Tipe Data Numerik Umum
Tipe 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 |
Mari lihat contohnya:
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 sama dengan: ' || my_float);
DBMS_OUTPUT.PUT_LINE('Gaji saya adalah: $' || my_salary);
END;
Skrip ini mendeklarasikan tiga variabel dengan jenis numerik yang berbeda. Tipe NUMBER(8,2)
untuk my_salary
berarti itu dapat menyimpan hingga 8 digit total, dengan 2 digit setelah titik desimal.
Tipe Data Karakter PL/SQL dan Subtype
Data teks sangat penting dalam programming. PL/SQL menyediakan beberapa tipe data karakter untuk menangani teks secara efisien.
Tipe Data Karakter Umum
Tipe Data | Deskripsi | Contoh |
---|---|---|
VARCHAR2 | String karakter variabel panjang | VARCHAR2(100) |
CHAR | String karakter panjang tetap | CHAR(10) |
NVARCHAR2 | String karakter variabel panjang unicode | NVARCHAR2(100) |
NCHAR | String karakter panjang tetap unicode | NCHAR(10) |
Berikut adalah bagaimana kita menggunakannya dalam praktek:
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 tipe CHAR
menambahkan spasi ke string untuk mengisi panjang tetapnya.
Tipe Data Boolean PL/SQL
Tipe 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 sudah menikah.');
END IF;
END;
Skrip ini menunjukkan bagaimana kita menggunakan nilai boolean untuk membuat keputusan dalam kode kita.
Tipe Data DateTime dan Interval PL/SQL
Saat bekerja dengan tanggal dan waktu, PL/SQL menyediakan tipe data spesifik untuk menangani nilai ini secara akurat.
Tipe Data DateTime Umum
Tipe Data | Deskripsi | Contoh |
---|---|---|
DATE | Tanggal dan waktu | DATE |
TIMESTAMP | Tanggal dan waktu dengan detik pecahan | TIMESTAMP |
INTERVAL YEAR TO MONTH | Interval waktu dalam tahun dan bulan | INTERVAL YEAR TO MONTH |
INTERVAL DAY TO SECOND | Interval waktu dalam hari, jam, menit, dan detik | INTERVAL DAY TO SECOND |
Mari lihat contohnya:
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.
Tipe Data Large Object (LOB) PL/SQL
Untuk menangani jumlah besar data, PL/SQL menyediakan tipe data LOB (Large Object).
Tipe Data LOB Umum
Tipe Data | Deskripsi | Contoh |
---|---|---|
CLOB | Character Large Object | CLOB |
BLOB | Binary Large Object | BLOB |
NCLOB | National Character Large Object | NCLOB |
Berikut adalah contoh sederhana penggunaannya:
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 CLOB dan menunjukkan bagaimana mendapatkan panjangnya.
Subtype Tertentu PL/SQL
PL/SQL memungkinkan Anda menciptakan subtype sendiri berdasarkan tipe data yang sudah ada. Ini dapat membantu membuat kode Anda lebih mudah dibaca dan diurus.
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 menciptakan subtype positive_number
yang memastikan nilai selalu positif.
NULLs di PL/SQL
Akhirnya, mari bicarakan tentang nilai NULL. Di PL/SQL, NULL mewakili nilai yang tak diketahui atau tidak tersedia. Itu bukan sama seperti 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 adalah yang ada! Kita telah meliputi tipe data utama di PL/SQL. Ingat, memahami tipe data adalah sangat penting untuk menulis kode yang efisien dan bebas kesalahan. Terus latihan, dan segera Anda akan menjadi ahli PL/SQL!
Credits: Image by storyset