PL/SQL - Sintaksis Dasar

Selamat datang, para pemrogram masa depan! Hari ini, kita akan mempelajari dunia yang menarik dari PL/SQL. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - kita akan mulai dari awal dan membangun pengetahuan Anda secara bertahap. Pada akhir tutorial ini, Anda akan dapat menulis program pertama Anda dalam PL/SQL dengan kepercayaan!

PL/SQL - Basic Syntax

Contoh 'Hello World'

Ayo kita mulai dengan program "Hello World" tradisional. Ini adalah ritual kebijaksanaan untuk setiap pemrogram, dan itu adalah cara bagus untuk merasakan sintaksis PL/SQL.

BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;
/

mari kitauraikan ini:

  1. BEGIN: Kata kunci ini menandai awal blok PL/SQL kami.
  2. DBMS_OUTPUT.PUT_LINE('Hello, World!');: Baris ini mencetak pesan kita. PERTIMBANGKAN ini sebagai cara PL/SQL untuk berbicara kepada kita.
  3. END;: Ini menandai akhir blok PL/SQL kami.
  4. /: 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.

Identifikasi PL/SQL

Identifikasi adalah nama yang kita berikan kepada berbagai elemen program seperti variabel, prosedur, dan fungsi. Mereka seperti nametag untuk bagian yang berbeda dalam kode kita. Berikut adalah aturan untuk membuat identifikasi:

  1. Harus dimulai dengan huruf (A-Z atau a-z)
  2. Dapat diikuti oleh huruf, angka (0-9), tanda dollar ($), garis bawah (_), atau tanda hash (#)
  3. Tidak boleh lebih panjang dari 30 karakter
  4. Tidak boleh 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 disini
END;
/

Dalam contoh ini, employee_name, salary, dan dept_id adalah semua identifikasi yang valid.

Delimiter PL/SQL

Delimiter adalah karakter khusus atau simbol yang memiliki arti khusus dalam PL/SQL. Mereka seperti tanda baca dalam kalimat, membantu mengstruktur dan memisahkan bagian yang berbeda dari kode kita.

Berikut adalah tabel dari delimiter 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 diantaranya 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 lipat di dalam kode Anda. Mereka diabaikan oleh kompiler tapi bisa sangat berguna untuk menjelaskan apa yang dilakukan kode Anda. Ada dua jenis komentar di PL/SQL:

  1. Komentar baris tunggal: Dimulai dengan --
  2. 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 bisa melintasi beberapa baris.
Sangat berguna untuk penjelasan yang lebih panjang.
*/
DBMS_OUTPUT.PUT_LINE('Nilai pi adalah: ' || v_pi);
END;
/

Unit Program PL/SQL

Unit program PL/SQL adalah blok bangunan dari aplikasi PL/SQL. Mereka seperti resep di dalam buku masak - masing-masing menjelaskan bagaimana melakukan tugas tertentu. Jenis utama adalah:

  1. Blok Anonim
  2. Prosedur
  3. Fungsi
  4. Paket

Mari kita lihat contoh dari masing-masing:

1. Blok Anonim

Kami sudah melihat ini dalam contoh "Hello World" kita. Itu adalah blok kode yang tidak disimpan di dalam database.

BEGIN
DBMS_OUTPUT.PUT_LINE('Ini adalah blok anonim');
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 menjalankan prosedur:
BEGIN
greet_user('Alice');
END;
/

3. Fungsi

Sebuah fungsi mirip dengan prosedur, tetapi ia 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('Luasnya adalah: ' || v_area);
END;
/

4. Paket

Sebuah paket adalah kumpulan prosedur, fungsi, variabel, dan objek PL/SQL lainnya yang terkait.

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 adalah! Kita telah meliputi sintaksis dasar PL/SQL, dari program "Hello World" sederhana ke struktur yang lebih kompleks seperti paket. Ingat, belajar pemrograman adalah seperti belajar bahasa baru - itu memerlukan latihan dan kesabaran. Jangan khawatir untuk mencoba contoh kode, modifikasi mereka, dan lihat apa yang terjadi. Itu adalah cara Anda benar-benar menginternalisasi konsep ini dan menjadi pemrogram PL/SQL yang mahir.

Selamat coding, dan semoga query Anda selalu mengembalikan hasil yang Anda harapkan!

Credits: Image by storyset