Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

“Array, Procedure dan Function”

Presentasi serupa


Presentasi berjudul: "“Array, Procedure dan Function”"— Transcript presentasi:

1 “Array, Procedure dan Function”

2 1. ARRAY 1.1 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

3 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;

4 1.2 Mengisi Nilai pada Elemen Array
Contoh program : 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; BEGIN X(1) := ‘A’; X(2) := ‘B’; END;

5 1.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;

6 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; 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;

7 PROCEDURE PROCEDURE DI DALAM PROCEDURE PADA BLOK PL / SQL
CREATE OR REPLACE PROCEDURE nama_procedure (parameter_1 tipe_data, … ) AS variabel_1 tipe_data; BEGIN statemen_1; END

8 PROCEDURE TANPA PARAMETER DAN DENGAN PARAMETER
Prosedur Dengan Parameter Input Procedure Contoh1 (Parameter Input1: Integer) Begin ... End; Procedure Contoh2 (Parameter Input Sejenis1, Parameter Input Sejenis2: Integer) (* Ada dua parameter*) Procedure Contoh3 (Parameter Input Beda Jenis1: Integer; Parameter Input Beda Jenis2 : String) (* Ada dua parameter dengan jenis yang berbeda *)

9 Prosedur Dengan Parameter Output
Procedure Contoh Prosedur Dengan Output (ParameterInput: Real; var ParameterOutput: Integer) Begin ... End; Procedure Buat Secangkir Kopi (Gula: Kiloan Gula; var Gelas Tempat Nyimpan Kopi: Cangkir ) SiapkanSebungkusKopi(KapalApi); CampurKopiDengan(Gula); AdukKopi; TuangkanKedalam(GelasTempatNyimpanKopi); Sajikan;

10 Prosedur Dengan Gabungan Parameter Input Dan Output
Procedure Contoh Prosedur Dengan Output (Parameter Input: Real; var Parameter Output: Integer) Begin ... End; Procedure Buat Secangkir Kopi (Gula: KiloanGula; var GelasTempat Nyimpan Kopi: Cangkir ) SiapkanSebungkusKopi(KapalApi); CampurKopiDengan(Gula); AdukKopi; TuangkanKedalam(GelasTempatNyimpanKopi); Sajikan;

11 Prosedur Tanpa Parameter
Procedure Contoh1 (ParameterInput1: Integer) Begin ... End; (* Pemanggilan Contoh1 dalam program body: Contoh1 *) Procedure Contoh2 (ParameterInputSejenis1, ParameterInputSejenis2: Integer) (* Ada dua parameter *) (* Pemanggilan Contoh2 dalam program body: Contoh2(1,2) *) Procedure Contoh3 (ParameterInputBedaJenis1: Integer; ParameterInputBedaJenis2: String) (* Ada dua parameter dengan jenis yang berbeda *)

12 FUNCTION Bentuk umum : CREATE OR REPLACE FUNCTION nama_function (parameter_1, …) RETURN tipe_data AS variabel_1 tipe_data; … BEGIN statemen_1; RETURN nilai_yang_dikembalikan; END;

13 Function Tanpa Parameter
(1) CREATE OR REPLACE FUNCTION tulis_teks RETURN VARCHAR2 AS S VARCHAR2(20) BEGIN S := ‘HALLO SEMUA’; RETURN S; END; / (2) SET SERVEROUTPUT ON DECLARE X VARCHAR2(20); X := tulis_teks; DBMS_OUTPUT.PUT_LINE(X);

14 Function dengan Parameter
(1) CREATE OR REPLACE FUNCTION pangkat (bil INTEGER, n INTEGER) RETURN INTEGER AS HASIL INTEGER(10); I INTEGER; BEGIN HASIL := 1; FOR I IN 1..n LOOP HASIL := HASIL * bil; END LOOP; RETURN HASIL; END; / (2) SET SERVEROUTPUT ON DECLARE H INTEGER; H := pangkat(2, 3); DBMS_OUTPUT.PUT_LINE(‘Hasil = ‘ || TO_CHAR(H));

15 Parameter masukan CREATE OR REPLACE FUNCTION luas_persegi_panjang (p number,l number) RETURN number IS BEGIN RETURN (p*l); END; Cara eksekusinya : SQL> SELECT luas_persegi_panjang (8,3) FROM dual; LUAS_PERSEGI_PANJANG(8,3)

16 Parameter keluaran CREATE OR REPLACE FUNCTION volume_tabung (r IN number, t IN number,luas OUT number) RETURN number IS pi number:=3.14; vol number; BEGIN luas:=pi*r*r; return (luas*t); END; Menggunakan PL/SQL untuk menjalankan fungsi diatas : DECLARE L_alas number; DBMS_OUTPUT.PUT_LINE('Volume tabungpaijoadalah '||volume_tabung (2,5,L_alas)); DBMS_OUTPUT.PUT_LINE ('Luas alas lingkaranpadatabungpaijoadalah '||L_alas);

17 Output (parameter keluaran):
Volume tabung pa ijo adalah 62.8 Luas alas lingkaran pada tabung pa ijo adalah 12.56 Parameter masukan/keluaran CREATE OR REPLACE FUNCTION volume_tabung_ku (x IN OUT number, t IN number) RETURN number IS pi number:=3.14; vol number; BEGIN x:=pi*x*x; vol:= x*t; RETURN (vol); END;

18 Menggunakan blok PL/SQL berikut untuk menjalankan fungsi diatas :
DECLARE y number:='&jari_alas'; BEGIN DBMS_OUTPUT.PUT_LINE('Volume tabung paimen adalah '||volume_tabung2(y,5)); DBMS_OUTPUT.PUT_LINE('Luas alas lingkaran tabung paimen adalah '||y); END; Output : Enter value for jari_alas: 2 old 2: L number:='&jari_alas'; new 2: L number:='2'; Volume tabung paimen adalah 62.8 Luas alas lingkaran tabung paimen adalah 12.56

19 Function dalam function
(1) CREATE OR REPLACE FUNCTION kuadrat (X NUMBER) RETURN NUMBER AS HASIL NUMBER(10); BEGIN HASIL := X * X; RETURN HASIL; END; / (2) CREATE OR REPLACE FUNCTION determinan (a NUMBER, b NUMBER, c NUMBER) D NUMBER(10); D := kuadrat(b) – (4 * a * c); RETURN D; (3) SET SERVEROUTPUT ON DECLARE D := determinan(1, 1, -6); DBMS_OUTPUT.PUT_LINE(‘Nilai determinan = ‘ || TO_CHAR(D));


Download ppt "“Array, Procedure dan Function”"

Presentasi serupa


Iklan oleh Google