Senin, 16 April 2012

ARRAY Dalam PL/SQL Oracle

Array adalah tipe data bentukan yang dapat menyimpan sekumpulan nilai dari tipe data yang sama dan dikemas dalam bentuk larik.  Nilai dari elemen-elemen array dapat diakses melalui indeksnya.  

Membuat Tipe Array

TYPE nama_tipe IS
           TABLE OF tipe_data
           INDEX BY BINARY_INTEGER;

Keterangan :
nama_tipe = nama array yg didefinisikan
tipe_data   = berfungsi utk mendeklarasikan tipe dari kumpulan
                      data yg akan disimpan didalam array
INDEX BY BINARY_INTEGER = berfungsi untuk menunjukkan bahwa
                                                         array tsb akan di indeks

Contoh mendeklarasikan type data Array dengan nama Array_coba sebagai kumpulan dari tipe data CHAR :

DECLARE
TYPE Array_coba IS 
           TABLE OF CHAR(n)  -- n : banyaknya karakter
           INDEX BY BINARY_INTEGER;

Misalkan kita akan mendaklarasikan variable X yang bertipe Array_coba, sintaknya adalah sebagai berikut :

Declare
    X  Array_coba;

Mengisi Nilai pada Elemen Array

BEGIN
    X(1) := ‘A’;
    X(2) := ‘B’; 
END;
   
Contoh 1 a. :

SET SERVEROUTPUT ON
DECLARE
   TYPE LARIK IS
        TABLE OF NUMBER
   INDEX BY BINARY_INTEGER;
        A LARIK;
BEGIN
-- Melakukan pengisian terhadap elemen-elemen array
        A(1) := 10;      A(2) := 20;
        A(3) := 30;      A(4) := 40;
       -- Menampilkan elemen array ke layar
        DBMS_OUTPUT.PUT_LINE('Nilai elemen larik ke-1' || '='
                           ||TO_CHAR(A(1)));
        DBMS_OUTPUT.PUT_LINE('Nilai elemen larik ke-2' || '='
                           ||TO_CHAR(A(2)));
      DBMS_OUTPUT.PUT_LINE('Nilai elemen larik ke-3' || '=' 
                           ||TO_CHAR(A(3)));
END;
/

Bandingkan dengan contoh 1.b. berikut ini :

SET SERVEROUTPUT ON
DECLARE
    TYPE LARIK IS
         TABLE OF NUMBER
         INDEX BY BINARY_INTEGER;
       
       A LARIK;
       I integer;
  
BEGIN
     FOR i IN 1..5 LOOP
               A(i):=i*10;
           DBMS_OUTPUT.PUT_LINE('Nilai elemen larik ke-'
                          ||i||'='|| TO_CHAR(A(i)));
     END LOOP;   
END;
/

Perhatikan contoh tsb diatas akan menghasilkan tampilan seperti berikut ini :

Contoh 2.

SET SERVEROUTPUT ON
DECLARE 
TYPE SISWA IS
     TABLE OF VARCHAR2(20)
     INDEX BY BINARY_INTEGER;
               
     NAMA SISWA;
     I    integer;
BEGIN   
     NAMA(1):='ANDI';NAMA(2):='BURHAN';NAMA(3):='CANDRA'; 
     NAMA(4):='ERMAN'; NAMA(5):='FARID';NAMA(6):='GUNAWAN';
     FOR i IN 1..6 LOOP
           DBMS_OUTPUT.PUT_LINE('Nama Siswa ke-        
            '||i||'='||TO_CHAR(NAMA(i)));
     END LOOP;   
END;

Contoh 3
Mengurutkan Data pada Elemen Array
Anda diminta utk mengurutkan data-data yg tersusun secara acak pada sebuah array dgn menggunakan blok PL/SQL. Data yg dimaksud adalah :

      544, 78, 565, 23, 4       
       
SET SERVEROUTPUT ON
DECLARE
TYPE LARIK IS
     TABLE OF NUMBER
     INDEX BY BINARY_INTEGER;

     X        LARIK;
     Temp     NUMBER;
     idx_max  NUMBER;
     i      BINARY_INTEGER;
     y        BINARY_INTEGER;
   
BEGIN  
     X(1) := 544;  X(2) := 78;
     X(3) := 565;  X(4) := 23;   X(5) := 4;

     DBMS_OUTPUT.PUT_LINE('Sebelum di-urutkan : ');
     ----------------------------------------------
     FOR i IN 1..5 LOOP
         DBMS_OUTPUT.PUT_LINE('X('||i||') = '||
                               TO_CHAR(X(i)));
     END LOOP; 
----------------------------------------------
     y:=5;
     WHILE (y>=2) LOOP
            idx_max:=1;
            i:=2;
      WHILE(i<=y) LOOP
           IF X(idx_max) < X(i) THEN
                 idx_max:=i;
            END IF;
        i:=i+1;
     END LOOP;
     temp:=x(idx_max);
     X(idx_max):=X(y);
     X(y):=temp;
     y:=y-1;
  END LOOP;
  ---------------------------------------------------------
  DBMS_OUTPUT.PUT_LINE(' ');
  DBMS_OUTPUT.PUT_LINE('Setelah di-urutkan : ');
  FOR i IN 1..5 LOOP
      DBMS_OUTPUT.PUT_LINE('X('||i||') = ' || TO_CHAR(X(i)));
  END LOOP;           
  --------------------------------------------------------- 
END;
/         

Sama dengan contoh kasus diatas, tetapi menggunakan metode lain :

SET SERVEROUTPUT ON
DECLARE
      TYPE LARIK IS
     TABLE OF NUMBER
     INDEX BY BINARY_INTEGER;

     X       LARIK;
     TEMP    NUMBER;
     K       BINARY_INTEGER;
     I       BINARY_INTEGER;
     N       BINARY_INTEGER;
   
BEGIN

     X(1) := 544; X(2) := 78;
     X(3) := 565; X(4) := 23;    X(5) := 4;
     DBMS_OUTPUT.PUT_LINE('Sebelum di-urutkan : ');
     --------------------------------------------------------
     FOR I IN 1..5 LOOP
           DBMS_OUTPUT.PUT_LINE('X('||I||') = ' || TO_CHAR(X(I)));
     END LOOP; 
 ----------------------------------------------------------
 --PROSES PENGURUTAN
   I:=1;
   N:=5;
   WHILE (I<=N-1) LOOP
       K:=N;
       WHILE (K>I) LOOP
           IF X(K)<X(K-1) THEN
              TEMP:=X(K-1);
              X(K-1):=X(K);
              X(K):=TEMP;
          END IF;
          K:=K-1;
       END LOOP;
       I:=I+1;
   END LOOP;
   DBMS_OUTPUT.PUT_LINE(' ');
   DBMS_OUTPUT.PUT_LINE('Setelah di-urutkan : ');
   FOR I IN 1..5 LOOP
       DBMS_OUTPUT.PUT_LINE('X('||I||') = ' ||TO_CHAR(X(I)));
   END LOOP;           
   DBMS_OUTPUT.PUT_LINE(' ');
END;
/       

Pengulangan dalam PL/SQL


Didalam Oracle ada 3 struktur pengulangan, yaitu :
1. Simple Loop
2. While-Loop
3. For-Loop.

Struktur Pengulangan

1. Simple Loop
    Sintaks umum penulisan simple Loop adalah:
       
    LOOP
            statemen_1,
        …
            EXIT WHEN kondisi_1;
     END LOOP;

2.  While Loop
     Sintaks umum penulisan While Loop adalah:

      WHILE kodisi_1 LOOP
    statemen_1,
    ...
      END LOOP

3.  For Loop
     Sintaks umum penulisan For Loop adalah:

     FOR kodisi_1 LOOP
      statemen_1,
      ...
     END LOOP
       
Contoh Pengulangan
Contoh 1:
Mencetak kalimat 'Sukses dgn Oracle' Sebanyak 10 kali.

= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
    i integer;
BEGIN   
    i:=0;
    LOOP
        i:=i+1;
        DBMS_OUTPUT.PUT_LINE('Sukses dgn Oracle');
        EXIT WHEN i=10;
    END LOOP;
END;
/

= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
      i integer;
BEGIN
      i:=0;
      WHILE (i<=10) LOOP
           DBMS_OUTPUT.PUT_LINE('Sukses dgn Oracle');
           i:=i+1;
      END LOOP;
END;


= Struktur FOR LOOP =
SET SERVEROUTPUT ON
DECLARE
      i integer;
BEGIN
      FOR i IN 1..10 LOOP
    DBMS_OUTPUT.PUT_LINE('Sukses dgn Oracle');
      END LOOP;
END;
/

Perhatikan script-script diatas,
●    SERVEROUTPUT    :  variable system
●    DBMS_OUTPUT     :  package
●    PUT_LINE    :    :  procedure

Contoh 2:
Melakukan penjumlahan deret angka (2+4+… +(n+2))

= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
    jumlah    integer;
    K         integer;
BEGIN
    jumlah:=0;
    K:=2;
    LOOP
        JUMLAH:=jumlah+K;
        K:=K+2;
        EXIT WHEN K>18;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+6..18 adalah :'||JUMLAH);
END;
/

= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
    jumlah   integer;
    K        integer;
BEGIN
    jumlah:=0;
    K:=2;
    WHILE (K<=18) LOOP
           jumlah:=jumlah+K;
           k:=k+2;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+6..18 adalah :'||JUMLAH);
END;
/

= Struktur FOR LOOP =
SET SERVEROUTPUT ON
DECLARE
     i          integer;
     jumlah    integer;
     K              integer;
BEGIN
     jumlah:=0;
     K:=2;
     FOR i IN 1..(18/2) LOOP
         jumlah:=jumlah+K;
         k:=k+2;  
     END LOOP;
     DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+6..18 adalah :' ||JUMLAH);
END;
/  

Contoh 3:
Melakukan penjumlahan deret bilangan ganjil 1+3+5..+11

= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
      Jumlah   integer;
     K        integer;
BEGIN
     jumlah:=0;
     K:=1;
     LOOP
        JUMLAH:=jumlah+K;
        K:=K+2;
        EXIT WHEN K>11;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('Jumlah 1+3+5+7+9+..25 adalah :'||JUMLAH);
END;
/

= Struktur While LOOP =
SET SERVEROUTPUT ON
DECLARE
    Jumlah  integer;
    K       integer;
BEGIN
    jumlah:=0;
    K:=1;
    WHILE (K<=11) LOOP
          jumlah:=jumlah+K;
          k:=k+2;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('Jumlah 1+3+5+7+9+..25 adalah :'||JUMLAH);
END;


= Struktur For LOOP =  
SET SERVEROUTPUT ON
DECLARE
     I       integer;
     jumlah  integer;
     K       integer;
BEGIN
     jumlah:=0;
     K:=1;
     FOR i IN 1..6 LOOP
         jumlah:=jumlah+K;
        k:=k+2;  
     END LOOP;
     DBMS_OUTPUT.PUT_LINE('Jumlah 1+3+5+7+9+..25 adalah:'||JUMLAH);
END;
/
   
Contoh 4:
Menjumlahkan sejumlah deret ukur 2+4+16+256

= Struktur Simple LOOP =
SET SERVEROUTPUT ON
DECLARE
      jumlah   integer;
      K        integer;
BEGIN
      jumlah:=0;
      K:=2;
      LOOP
          JUMLAH:=jumlah+K;
          K:=K*k;
          EXIT WHEN K>256;
      END LOOP;
      DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+16+256 adalah :' ||JUMLAH);
END;
/

= Struktur While LOOP =
SET SERVEROUTPUT ON 
DECLARE
       jumlah     integer;
       K            integer;
BEGIN
      jumlah:=0;
       K:=2;
       WHILE (K<=256) LOOP
            JUMLAH:=jumlah+K;
            K:=K*k;
       END LOOP;
       DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+16+256 adalah :' ||JUMLAH);
END;


= Struktur FOR LOOP =
SET SERVEROUTPUT ON 
DECLARE
     I       integer;
     Jumlah  integer;
     K       integer;
BEGIN
     jumlah:=0;
     K:=2;
     FOR i IN 1..4 LOOP
     JUMLAH:=jumlah+K;
     K:=K*k;
     END LOOP;
   DBMS_OUTPUT.PUT_LINE('Jumlah 2+4+16+256 adalah :'||JUMLAH);
END;
/

     

     i:=10;
     FOR i IN REVERSE 1..10 LOOP
         DBMS_OUTPUT.PUT_LINE(TO_CHAR(i));
     End loop;
END;
/

PERCABANGAN Dalam PL/SQL Oracle


Setiap pembahasan materi PL/SQL Oracle selalu tidak dapat dipisahkan dengan pembahasan materi percabangan. Yang dimaksud dengan Percabangan adalah opsi atau pilihan yang didasarkan atas satu atau beberapa kondisi tertentu. Sebuah atau beberapa statemen akan di jalankan jika kondisi tersebut bernilai TRUE dan sebaliknya tidak akan dieksekusi jika kondisi tersebut tidak terpenuhi.
Secara umum di dalam PL/SQL Oracle, struktur percabangan dibagi menjadi 3 struktur, yaitu :
A. Struktur percabangan dengan satu kondisi
B. Struktur percabangan dengan dua kondisi
C. Struktur percabangan dengan tiga kondisi

Bentuk Umum Penulisan

Struktur percabangan dengan satu kondisi

IF kondisi THEN
      Statemen_1;
         ...
END IF;

Struktur percabangan dengan dua kondisi

IF kondisi THEN
      Statemen_1;
         ...
ELSE
      Statemen_2;
         ...
END IF;

Struktur percabangan dengan tiga kondisi atau lebih.

IF kondisi_1 THEN
      Statemen_1;
         ...
ELSIF kondisi 2 THEN
      Statemen_2;
         ...
ELSE
      Statemen_3;
         ...
END IF;


1. Contoh  percabangan dengan satu kondisi
    - Menentukan sebuah bilangan Bulat apakah termasuk kedalam bilangan 
      Genap atau Ganjil
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   BIL INTEGER := 100;
BEGIN
   IF MOD(BIL,2)=0 THEN
      DBMS_OUTPUT.PUT_LINE(TO_CHAR(BIL)|| ' adalah bilangan Genap');
   END IF;
END;

   - Menentukan bilangan terbesar dan terkecil dari sebuah bilangan bulat
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil_1  INTEGER;
   bil_2  INTEGER;
BEGIN
   bil_1 := 300;
    bil_2 := 200;
   
    IF bil_1 > bil_2 THEN
      DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : '|| TO_CHAR(bil_1)  
                                ||', terkecil adalah : ' || TO_CHAR(bil_2)); 
   END IF;
END;

2. Contoh  percabangan dengan dua kondisi
    - Menentukan sebuah bilangan Bulat apakah termasuk kedalam bilangan 
      Genap atau Ganjil
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil INTEGER := 99;
BEGIN
   IF MOD(bil,2)=0 THEN
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Genap');
   ELSE
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Ganjil');
   END IF;
END;

   - Menentukan bilangan terbesar dan terkecil dari sebuah bilangan bulat
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil_1  INTEGER;
   bil_2  INTEGER;
BEGIN
   bil_1 := 300;
   bil_2 := 200;
   
   IF bil_1 > bil_2 THEN
      DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_1)
                         ||', terkecil adalah : ' || TO_CHAR(bil_2)); 
   ELSE
    DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_2) 
                   ||', terkecil adalah : ' || TO_CHAR(bil_1));   
  END IF;
END;

3. Contoh  percabangan dengan Tiga kondisi
    - Menentukan sebuah bilangan Bulat apakah termasuk kedalam bilangan 
      Genap atau Ganjil
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil INTEGER := -9;
BEGIN
   IF MOD(bil,2)=0 THEN
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Genap');
   ELSIF MOD(bil,2)=1 THEN
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Ganjil');
   ELSE
       DBMS_OUTPUT.PUT_LINE('Bilangan tsb adalah Bilangan negatif');
   END IF;
END;
 
    - Menentukan bilangan terbesar dan terkecil dari sebuah bilangan bulat
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil_1  INTEGER;
   bil_2  INTEGER;
BEGIN
   bil_1 := 300;
   bil_2 := 200;
   
   IF bil_1 > bil_2 THEN
      DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_1)
                         ||', terkecil adalah : ' || TO_CHAR(bil_2)); 
   ELSIF bil_1 > bil_2 THEN
    DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_2) 
                    ||', terkecil adalah : ' || TO_CHAR(bil_1));
  ELSE
     DBMS_OUTPUT.PUT_LINE('Bilangan ke-1 dan 2 adlh sama yaitu : '||bil_1);
  END IF;
END;

Demikian sedikit sharing mengenai percabangan yang biasa digunakan pada PL/SQL Oracle.






Kamis, 12 April 2012

GusDur

Tulisannya bukan mengada2 ya tapi ya memang demikian. Dinegara NKRI ini mungkin perlu waktu 1 abad ini kita hanya punya 2 pemimpin yang sesungguhnya Cerdas, Berani dan Kharismatik itu Yaitu : IR. SOEKARNO DAN KH ABDURAHMAN WAHID. Secara genetis KH Abdurrahman Wahid merupakan keturunan darah biru. Darah biru bukan dalam arti kebangsawanan, melainkan bekal dari Allah Subhanahu Wataala berupa kecerdasan luar biasa.

Dia anak seorang tokoh besar umat Islam, khususnya NU. Ayahnya, KH Wahid Hasyim, anak pendiri Nahdlatul Ulama, organisasi Islam terbesar di Indonesia, bernama Hasyim Asy'ari. Ibunya, Hajjah Sholehah, juga keturunan tokoh besar NU, KH Bisri Sansuri.

Ayahnya menjadi Menteri Agama pertama Di Indonesia. Dengan demikian, baik dari garis ayah maupun ibu, Gus Dur merupakan sosok yang menempati strata sosial tinggi dalam masyarakat Indonesia. Namun, sejarah kehidupannya tak mencerminkan kehidupan seorang ningrat. Dia berproses dan hidup sebagaimana layaknya masyarakat kebanyakan. Gus Dur kecil belajar di pesantren. Dia diajar mengaji dan membaca Al Quran oleh kakeknya, Hasyim Asy'ari, di Pesantren Tebuireng, Jombang, Jatim.

Gus Dur juga aktif di pesantren menjadi sekretaris Pesantren Tebuireng, Jombang (1974-1979) dan menjadi konsultan di berbagai lembaga dan departemen pemerintahan pada tahun 1976. Selanjutnya, Gus Dur menjadi pengasuh Pondok Pesantren Ciganjur, Jakarta, sejak tahun 1976 hingga sekarang.

Di organisasi Nahdlatul Ulama, Gus Dur menjadi anggota Syuriah Nahdlatul Ulama tahun 1979-1984. Ia juga menjabat Ketua Tanfidziyah Pengurus Besar Nahdlatul Ulama (PBNU) untuk empat periode. Masing-masing 1984-1989, 1989-1994, dan 1994-1999, dan 2000-2005.

Sementara itu di bidang pemerintahan, Gus Dur pernah duduk, baik di lembaga legislatif maupun eksekutif. Ia menjadi anggota MPR dari utusan golongan selama dua periode. Masing-masing periode 1987-1992 dan 1999-2004. Karier politik tertingginya adalah menjadi Presiden RI selama 2 tahun pada 1999-2001.

Gus Dur dikenal sebagai tokoh kerukunan umat beragama, bahkan cukup kontroversial karena menjadi anggota Dewan Pendiri Shimon Peres Peace Center, Tel Aviv, Israel. Ia pernah menjadi Wakil Ketua Kelompok Tiga Agama, yaitu Islam, Kristen, dan Yahudi, yang dibentuk di Universitas Al Kala, Spanyol, serta Pendiri Forum 2000 (organisisasi yang mementingkan hubungan antaragama). Ia juga pernah menjabat Ketua Dewan Internasional Konferensi Dunia bagi Agama dan Perdamaian atau World Conference on Religion and Peace (WCRP), Italia, tahun 1994.

Gus Dur juga pernah menjadi Ketua Dewan Pimpinan Harian (DPH) Dewan Kesenian Jakarta Taman Ismail Marzuki (TIM) periode 1983-1985. Meski mengalami penurunan kemampuan melihat, Gus Dur dikenal masih suka membaca melalui suido book bahkan sampai menjelang akhir hayatnya. Ia juga dikenal produktif menulis artikel dan buku.

Begitu banyak Penghargaan yang di terima Beliau semasa Hidup antara lain :

* Tokoh 1990, Majalah Editor, tahun 1990
* Ramon Magsaysay Award for Community Leadership, Ramon Magsaysay Award Foundation, Philipina, tahun 1991
* Islamic Missionary Award from the Government of Egypt, tahun 1991
* Penghargaan Bina Ekatama, PKBI, tahun 1994
* Man Of The Year 1998, Majalah berita independent (REM), tahun 1998
* Honorary Degree in Public Administration and Policy Issues from the University of Twente, tahun 2000
* Gelar Doktor Kehormatan dari Universitas Jawaharlal Nehru, tahun 2000
* Doctor Honoris Causa dalam bidang Philosophy In Law dari Universitas Thammasat Thaprachan Bangkok, Thailand, Mei 2000
* Doctor Honoris Causa dari Universitas Paris I (Panthéon-Sorbonne) pada bidang ilmu hukum dan politik, ilmu ekonomi dan manajemen, dan ilmu humaniora,
  tahun 2000
* Penghargaan Kepemimpinan Global (The Global Leadership Award) dari Columbia University, September 2000
* Doctor Honoris Causa dari Asian Institute of Technology, Thailand, tahun 2000
* Ambassador for Peace, salah satu badan PBB, tahun 2001
* Doctor Honoris Causa dari Universitas Sokka, Jepang, tahun 2002
* Doctor Honoris Causa bidang hukum dari Konkuk University, Seoul Korea Selatan, 21 Maret 2003.
* Medals of Valor, sebuah penghargaan bagi personal yang gigih memperjuangkan pluralisme dan multikulturalisme, diberikan oleh Simon Wieshenthal Center   (yayasan yang bergerak di bidang penegakan HAM dan toleransi antarumat beragama), New York, 5 Maret 2009.
* Penghargaan nama Abdurrahman Wahid sebagai salah satu jurusan studi Agama di Temple University, Philadelphi, 5 Maret 2009.
* Dan penghargaan-penghargaan lainnya.

Semoga kita bisa belajar dari sejarah dan pemimpin bangsa ini untuk Indonesia yang lebih baik.

Love is Cinta



Dilihat dari judulnya sudah jelas ya pasti ngebahas tentang cinta. Tanpa cinta dunia pasti kacau balau dan yang ada semua tentang kesedihan, kekerasan dan perpecahan. Sedikit tulisan saya yang diambil dari salah satu Sufi dan penyair favorit saya. Ada beberapa buku yang saya punya mengenai penyair terbesar sepanjang masa ( Menurut saya sih..) sapa lagi kalo bukan JALALUDIN RUMI.

Berikut sedikit kutipannya dari syair dari Jalaludin Rumi

Cinta Adalah Realitas abadi
Tapi ia cenderung memudar dan menghilang
Karena manusia jatuh cinta pada pantulan cahaya sang kekasih.
Cinta sejati bergantung pada pemahaman
Pencinta harus mampu membedakan
Emas dari kilauannya. (Rumi)

Suatu hari seorang sufi perempuan bernama Rabiah al-adawiyyah berkata, "Siapa yang dapat menunjukan saya bertemu kepada Sang Kekasih ?" Pelayannya Menjawab, "Sang Kekasih bersama kita, tetapi dunia menghalangi kita bertemu dengan-NYA."

Ketika Samnun Berbicara tentang Cinta, Tiba – tiba seekor burung hinggap didepanya dan mematuk – matuk paruhnya ketanah terus – menerus hingga berdarah dan akhirnya terkapar mati.

Seorang Ahli ibadah berkata dalam tangis dan air mata yang bercucuran berkata Demi Alloh, aku sudah bosan hidup. Andai maut diperjual belikan, pasti sudah ku beli, demi cinta dan kerinduanku bertemu dengan-NYA..Lalu ada yang bertanya Apakah kau percaya dengan amal ibadahmu? “Ia menjawab, Tidak, aku hanya Mencintai-NYA,Berbaik sangka pada-NYA, Ku biarkan DIA Menyiksaku, yang penting aku mencintai-NYA

Hakikat makna cinta bersumber dari sang kekasih, Hati tak mampu menangkapnya
dan lidah tak mampu untuk mengungkapnya, Karena Cinta adalah Misteri dan kita
hanya manusia tak berdaya melawan takdir Sang Raja Manusia. (Cinta Adalah Misteri - Dewa19)

Semoga kita dapat pelajaran dari cerita diatas dan semoga kita jika beribadah kepada Alloh semata –mata karena Cinta kita Kepada-NYA..Amien

VARIABEL - OPERARTOR Pada PL/SQL Oracle


Muqadimah
PL/SQL adalah blok yang berisi skrips-skrips bahasa procedural. Dengan blok PL/SQL kita dapat menuliskan perintah-perintah seperti menuliskan perintah pada bahasa pemrograman procedural lainnya.
Dengan adanya PL/SQL, kita dapat meningkatkan performance dari database yang akan kita olah karena didukung oleh adanya bagian tipe data, struktur percabangan maupun struktur pengulangan.

Tipe Data, Variabel, dan Konstanta.

Tipe Data.
Secara umum didalam sebuah blok PL/SQL Oracle, tipe data dapat dibedakan menjadi lima yaitu: numeric, karakter, data, Boolean, dan rowed. Berikut ini list tipe data yang disediakan oleh Oracle.
Nama
Tipe
Keterangan
NUMBER
Numerik
Untuk semua tipe numerik
DEC
Numerik
Untuk bilangan desimal
DOUBLE PRECISION
Numerik
Untuk bilangan riil dgn presisi yg tinggi
INTEGER
Numerik
Untuk bilangan bulat
INT
Numerik
Untuk bilangan bulat
NUMERIC
Numerik
Sama dengan Number
REAL
Numerik
Sama dengan Number
SMALLINT
Numerik
Untuk bilangan bulat dgn rentang yg kecil
VARCHAR2
Karakter
Untuk string dgn panjang yg dinamis sesuai dgn panjang maksimal yg ditentukan
CHAR
Karakter
Untuk string dgn panjang yg sudah pasti.
LONG
Karakter
Untuk string dgn lebar diatas 32.767 byte
DATE
Tanggal
Untuk tipe tanggal
BOOLEAN
Boolean
Bernilai TRUE (benar) dan FALSE (salah)
ROWID
Rowid
Untuk tipe rowed.
  
Variabel
Seperti pada bahasa pemrograman lainnya, variabel berfungsi untuk menampung sebuah nilai di memori komputer. Nilai tsb dapat dirubah setiap saat jika diperlukan. Tipe data tsb harus sesuai dengan nilai yang akan ditampung. Agar sebuah variabel dapat digunakan didalam sebuah blok, maka ia harus dideklarasikan. Cara mendeklarasikan variabel adalah seperti berikut ini :

DECLARE
   nama  varchar2(50);
   id    number;

Konstanta

Sama halnya seperti Variabel, kegunaan konstanta adalah untuk menyimpan sebuah nilai di memori komputer. Perbedaan yang paling mendasar dari keduanya adalah dari sifat data yang akan disimpan. Pada variabel, nilai yang akan disimpan bersifat fleksibel artinya dapat diubah-ubah. Sedangkan pada konstanta bersifat tetap atau statis. Cara mendeklarasikan juga sama seperti pada variabel. Perhatikan berikut ini :

DECLARE
   Pi       CONSTANT real:=3.14;;
   lebar    CONSTANT integer:= 100;

Komentar pada Blok PL/SQL
Contoh :

/* Skript Update Pelanggan */  Berlaku untuk satu baris atau lebih
  
   atau
  
-- Skript Update Pelanggan  Berlaku untuk satu baris
  

Struktur Blok PL/SQL
Secara umum blok PL/SQL Oracle dibagi menjadi tiga bagian yaitu :
- Bagian deklarasi tipe data
- Bagian statement atau perintah yang akan dieksekusi
- Bagian Eksepsi (untuk menangani error)

DECLARE
   variabel   tipe_data;
   konstanta  constant tipe_date:=nilai;
   ...
   ...
BEGIN
   Statemen_1;
   Statemen_2;
   ...
   ...
EXCEPTION
   WHEN nama_eksepsi THEN
        Statemen_untuk_mengatasi_error;
   ...
END;


Perhatikan contoh dibawah ini :

SET SERVEROUTPUT ON

BEGIN
  DBMS_OUTPUT.PUT_LINE('Sukses bersama ORACLE....!');
END;

Atau,

SET SERVEROUTPUT ON
DECLARE
   teks VARCHAR2(50);
BEGIN
   teks := 'Sukses bersama ORACLE...!';
   DBMS_OUTPUT.PUT_LINE(teks);
END;
/

SET SERVEROUTPUT ON
DECLARE
   teks VARCHAR2(5);
BEGIN
   teks := 'Sukses bersama ORACLE...!';
   DBMS_OUTPUT.PUT_LINE(teks);
EXCEPTION
   WHEN VALUE_ERROR THEN
        DBMS_OUTPUT.PUT_LINE('Pesan Error : Kesalahan pada panjang karakter..');
       
END;
/

OPERATOR

Istilah yg sering kita dengar jika menggunakan Oracle.

X:=9*11;

maka :
  X           disebut Variabel
  :=          disebut operator assigment
  9 dan 11    disebut operand
  9*6         disebut ekspresi
  *           disebut operator aritmatika
  X:=9*11;    disebut statemen aritmatika


Operator yang kita kenal di Oracle ada beberapa yaitu :
1. Operator Logika : AND, OR, NOT
2. Operator Aritmatika : +, -, *, /, MOD
3. Operator Relational : <, <=, >, >=
4. Operator Persamaan : =, <>
5. Operator Penggabungan : ||

Contoh penggunaan Operator :

SET SERVEROUTPUT ON
DECLARE
   x    number;
   y    number;
   z    number;
   xx   number;
   teks varchar2(100);
BEGIN
   x:=11*9;
   y:=9+11;
   z:=100-10;
   xx:= x MOD 2;
  
   teks := 'Nilai xx sama dgn = ';
   DBMS_OUTPUT.PUT_LINE(teks|| TO_CHAR(xx));
       
END;
/


Sekian dulu semoga bermanfaat dan silakan dicoba pada oraclenya, klo gw sih biasanya pake Toad lebih powerfull. :D