PL/SQL - Sintaksis Asas
Selamat datang, para pemrogram masa depan! Hari ini, kita akan melihat dunia yang menarik PL/SQL. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - kita akan mulai dari awal dan membangun pengetahuan Anda langkah demi langkah. Pada akhir panduan ini, Anda akan menulis program PL/SQL pertama Anda dengan kepercayaan!
Contoh 'Hello World'
Ayo kita mulai dengan program "Hello World" tradisional. Itu adalah ritual transit untuk setiap pemrogram, dan itu adalah cara yang bagus untuk merasakan sintaks PL/SQL.
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;
/
mari kitauraikan ini:
-
BEGIN
: Kata kunci ini menandai permulaan blok PL/SQL kita. -
DBMS_OUTPUT.PUT_LINE('Hello, World!');
: Baris ini mencetak pesan kita. PERTimbangkan ini sebagai cara PL/SQL untuk berbicara kepada kita. -
END;
: Ini menandai akhir blok PL/SQL kita. -
/
: Tanda slash ini memberitahu SQL*Plus untuk menjalankan blok PL/SQL.
Ketika Anda menjalankan kode ini, Anda akan melihat "Hello, World!" dicetak di layar Anda. Selamat! Anda baru saja menulis program PL/SQL pertama Anda.
Identifiers PL/SQL
Identifiers adalah nama yang kita berikan kepada berbagai elemen program seperti variabel, prosedur, dan fungsi. Mereka seperti nametag untuk bagian lain kode kita. Berikut adalah aturan untuk membuat identifiers:
- Harus dimulai dengan huruf (A-Z atau a-z)
- Dapat diikuti oleh huruf, angka (0-9), tanda dollar ($), garis bawah (_), atau tanda pagar (#)
- Tidak dapat lebih panjang dari 30 karakter
- Tidak dapat menjadi kata kunci (seperti BEGIN, END, IF, dll.)
mari kita lihat beberapa contoh:
DECLARE
employee_name VARCHAR2(50);
salary NUMBER;
dept_id NUMBER(5);
BEGIN
-- Kode berada di sini
END;
/
Dalam contoh ini, employee_name
, salary
, dan dept_id
semua adalah identifiers yang valid.
Delimiters PL/SQL
Delimiters adalah karakter khusus atau simbol yang memiliki arti khusus dalam PL/SQL. Mereka seperti tanda baca dalam kalimat, membantu mengstrukturkan dan memisahkan bagian lain dari kode kita.
Berikut adalah tabel dari delimiters umum PL/SQL:
Delimiter | Deskripsi |
---|---|
; | Penutup pernyataan |
% | Indikator atribut |
. | Pemilih komponen |
( ) | Menyertakan daftar parameter |
, | Pemisah parameter |
:= | Operator penugasan |
=> | Operator asociasi |
-- | Indikator komentar baris tunggal |
/ / | Indikator komentar multi-baris |
mari kita lihat beberapa di antaranya dalam aksi:
DECLARE
v_count NUMBER := 0; -- Operator penugasan
v_name VARCHAR2(50) := 'John Doe';
BEGIN
v_count := v_count + 1; -- Penutup pernyataan
DBMS_OUTPUT.PUT_LINE('Name: ' || v_name); -- Pemilih komponen
END;
/
Komentar PL/SQL
Komentar adalah seperti catatan sticky dalam kode Anda. Mereka diabaikan oleh kompiler tetapi bisa sangat berguna untuk menjelaskan apa yang dilakukan kode Anda. Ada dua jenis komentar dalam PL/SQL:
- Komentar baris tunggal: Dimulai dengan
--
- Komentar multi-baris: Dikelilingi oleh
/*
dan*/
Berikut adalah contoh:
DECLARE
-- Ini adalah komentar baris tunggal
v_pi NUMBER := 3.14159;
BEGIN
/*
Ini adalah komentar multi-baris.
Itu dapat melintasi beberapa baris.
Sangat berguna untuk penjelasan yang lebih panjang.
*/
DBMS_OUTPUT.PUT_LINE('The value of pi is: ' || v_pi);
END;
/
Unit Program PL/SQL
Unit program PL/SQL adalah blok bangunan aplikasi PL/SQL. Mereka seperti resep dalam buku masak - setiap satu menjelaskan bagaimana melakukan tugas tertentu. Jenis utama adalah:
- Blok Anonim
- Prosedur
- Fungsi
- Paket
mari kita lihat contoh dari setiap yang:
1. Blok Anonim
Kami sudah melihat ini dalam contoh "Hello World" kita. Itu adalah blok kode yang tidak disimpan di database.
BEGIN
DBMS_OUTPUT.PUT_LINE('This is an anonymous block');
END;
/
2. Prosedur
Sebuah prosedur adalah blok PL/SQL yang dinamai yang melakukan aksi tertentu.
CREATE OR REPLACE PROCEDURE greet_user(p_name IN VARCHAR2) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, ' || p_name || '!');
END;
/
-- Untuk memanggil prosedur:
BEGIN
greet_user('Alice');
END;
/
3. Fungsi
Sebuah fungsi mirip dengan prosedur, tetapi mengembalikan nilai.
CREATE OR REPLACE FUNCTION calculate_area(p_radius IN NUMBER)
RETURN NUMBER IS
v_pi CONSTANT NUMBER := 3.14159;
BEGIN
RETURN v_pi * p_radius * p_radius;
END;
/
-- Untuk menggunakan fungsi:
DECLARE
v_area NUMBER;
BEGIN
v_area := calculate_area(5);
DBMS_OUTPUT.PUT_LINE('The area is: ' || v_area);
END;
/
4. Paket
Sebuah paket adalah koleksi prosedur, fungsi, variabel, dan objek PL/SQL lain yang berkaitan.
CREATE OR REPLACE PACKAGE math_operations AS
FUNCTION add_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER;
FUNCTION subtract_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER;
END math_operations;
/
CREATE OR REPLACE PACKAGE BODY math_operations AS
FUNCTION add_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN a + b;
END add_numbers;
FUNCTION subtract_numbers(a IN NUMBER, b IN NUMBER) RETURN NUMBER IS
BEGIN
RETURN a - b;
END subtract_numbers;
END math_operations;
/
-- Untuk menggunakan paket:
DECLARE
v_result NUMBER;
BEGIN
v_result := math_operations.add_numbers(10, 5);
DBMS_OUTPUT.PUT_LINE('10 + 5 = ' || v_result);
v_result := math_operations.subtract_numbers(10, 5);
DBMS_OUTPUT.PUT_LINE('10 - 5 = ' || v_result);
END;
/
Dan itu saja! Kita telah melihat sintaksis asas PL/SQL, dari program "Hello World" sederhana hingga struktur yang lebih kompleks seperti paket. Ingat, belajar pemrograman seperti belajar bahasa baru - itu memerlukan latihan dan kesabaran. Jangan khawatir untuk mencoba contoh kode, mengubahnya, dan melihat apa yang terjadi. Itu adalah cara Anda benar-benar menginternalisasi konsep ini dan menjadi pemrogram PL/SQL yang mahir.
Selamat pemrograman, dan mayat pertanyaan Anda selalu mengembalikan hasil yang Anda harapkan!
Credits: Image by storyset