Apa Itu Array?
Array yaitu tipe data collection yang berisi kumpulan data yang memiliki tipe data yang sama. Pada Oracle PL/SQL, Array dimulai dari index ke-1.Ukuran dari Array yaitu tetap.
Membuat Array
Di bawah ini yaitu sintak dasar untuk menciptakan Array di PL/SQL:Sintak Dasar:
CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) of;
Contoh:
CREATE Or REPLACE TYPE arrayMHS AS VARRAY(5) OF VARCHAR2(10); / Type created.
Contoh Program #1
Pada Contoh Program#1 ini kita akan menciptakan jadwal PL/SQL untuk menyimpan data di Array.DECLARE type arraynama IS VARRAY(5) OF VARCHAR2(50); type arraynilai IS VARRAY(5) OF INTEGER; names arraynama; grades arraynilai; total integer; BEGIN names := arraynama('Nursalim', 'Nani Indriyani', 'Iskiyati', 'Nurul Hikmah', 'Sri Rahayu'); grades:= arraynilai(98, 97, 78, 87, 92); total := names.count; DBMS_OUTPUT.PUT_LINE('Total '|| total || ' Mahasiswa'); FOR i in 1 .. total LOOP DBMS_OUTPUT.PUT_LINE('Nama Mahasiswa : ' || names(i) || ' Nilai: ' || grades(i)); END LOOP; END; /
Output
Total 5 Mahasiswa Nama Mahasiswa : Nursalim Nilai: 98 Nama Mahasiswa : Nani Indriyani Nilai: 97 Nama Mahasiswa : Iskiyati Nilai: 78 Nama Mahasiswa : Nurul Hikmah Nilai: 87 Nama Mahasiswa : Sri Rahayu Nilai: 92 PL/SQL procedure successfully completed.
Contoh Program #2
Pada Contoh Program #2 ini, kita akan menciptakan Array yang datanya berasal dari sebuah tabel di Oracle database. Prosesnya yaitu Anda query terlebih dahulu dengan memakai Cursor dan datanya di simpan dalam Array.Langkah-langkahnya adalah:
1. Buat tabel Mahasiswa
CREATE TABLE MAHASISWA ( NPM VARCHAR2(10 BYTE), NAMA VARCHAR2(50 BYTE), JURUSAN VARCHAR2(50 BYTE) );
2. Insert data ke tabel Mahasiswa
SET DEFINE OFF; Insert into MAHASISWA (NPM, NAMA, JURUSAN) Values ('2015001', 'Nursalim', 'Teknik Informatika'); Insert into MAHASISWA (NPM, NAMA, JURUSAN) Values ('2015002', 'Nani Indriyani', 'Bahasa Inggris'); Insert into MAHASISWA (NPM, NAMA, JURUSAN) Values ('2015003', 'Desi Lisnawati', 'Biologi'); COMMIT;
3. Buat jadwal PL/SQL untuk menyimpan data mahasiswa dalam bentuk Array.
DECLARE CURSOR c_mahasiswa IS SELECT nama FROM mahasiswa; TYPE c_list IS VARRAY (6) OF mahasiswa.nama%TYPE; daftar_nama c_list := c_list (); counter INTEGER := 0; BEGIN FOR n IN c_mahasiswa LOOP counter := counter + 1; daftar_nama.EXTEND; daftar_nama (counter) := n.nama; DBMS_OUTPUT.put_line ( 'Nama Mahasiswa (' || counter || '):' || daftar_nama (counter)); END LOOP; END;
4. Output
Nama Mahasiswa (1):Nursalim Nama Mahasiswa (2):Nani Indriyani Nama Mahasiswa (3):Desi Lisnawati PL/SQL procedure successfully completed.