LAPRES AKHIR 5

download LAPRES AKHIR 5

of 28

Transcript of LAPRES AKHIR 5

  • 8/16/2019 LAPRES AKHIR 5

    1/28

    LAPORAN RESMI AKHIR

    PRAKTIKUM PEMROGRAMAN SISTEM INFORMASI

    MODUL 1-8

    DISUSUN OLEH :

    1. A.AFDHAL FAROUK ( 1335010027 )2. FAISAL M. NURUL. H ( 1335010032 )

    SESI

    A1

    NAMA INSTRUKTUR :SITI MUKAROMAH, S.K!, M.K!

    PROGRAM STUDI SISTEM INFORMASIFAKULTAS TEKNOLOGI INDUSTRI

    UNI"ERSITAS PEM#ANGUNAN NASIONAL $"ETERAN% &A'A

    TIMUR2015

    MODUL 1

  • 8/16/2019 LAPRES AKHIR 5

    2/28

    PL/SQL & CURSOR 

    1. PL/SQLPLSL merupakan sebuah bahasa prosedural yang terintregrasi dengan sql. Selain itu

    PL/SQL merupakan bahasa standar yang digunakan oleh Oracle Corporation dalam mengaksesrelational database. Dengan PL/SQL, kita dapat membuat sebuah blok program dalam O!CL"sebagaimana layaknya bahasa pemrograman prosedural seperti C, CO#OL, $O%!& dll.

    Sama seperti bahasa prosedural yang lain, PL/SQL 'uga menyediakan (

    • )ariabel, *onstanta, dan %ipe Data

    • Conditional Statement dan Looping

    • eusable Program

    K*+*/ PLSL:

    +. eningkatkan Per-orma

    . terdiri dari odulodul

    0. %erintegrasi dengan Oracle %ools

    1. Portability

    2. %erdapat "3ception 4andling

    Struktur #lok PL/SQL

    Dalam Oracle, blok PL/SQL secara umum terdiri dari 0 bagian, yaitu (

    DECLARE(optional)

    – Berisi deklarasi variabel, konstanta, prosedur, cursor, ataupun fungsi 

    BEGIN(wajib ditulis)

    – Berisi Statement-statement yang akan dieksekusi 

    EXCEPTION(optional)

    – Berisi perintah error yang mungkin terjadi 

    END;(wajib ditulis)

     %ipetipe #lock Pada PL/SQL

    http://risnotes.com/2011/11/oracle/http://risnotes.com/2011/11/oracle/http://risnotes.com/2012/02/variabel-plsql-part-1/http://risnotes.com/2012/02/looping-di-plsql/http://risnotes.com/2012/02/looping-di-plsql/http://risnotes.com/2012/02/handling-exceptions-di-plsql/http://risnotes.com/2012/02/variabel-plsql-part-1/http://risnotes.com/2012/02/looping-di-plsql/http://risnotes.com/2012/02/handling-exceptions-di-plsql/http://risnotes.com/2011/11/oracle/

  • 8/16/2019 LAPRES AKHIR 5

    3/28

    #+ A!4

     !noymous #lock merupakan suatu blok PL/SQL yang tidak mempunyai nama, tidak mempunyai

    parameter, dan tidak bertahan lama dalam database

    #+ P6**

    #lok Procedure merupakan suatu blok PL/SQL yang menyimpan sekumpulan perintah yang tidak

    disertai dengan pengembalian nilai

    #+ F4

    #lok $ungsi merupakan suatu blok PL/SQL yang mengembalikan nilai

    #lok Procedure dan #lok $ungsi akan kita bahas pada artikel selan'utnya..

    2. CURSOR Pada block PL/SQL kita tidak bisa menampilkan beberapa baris dengan menggunakan

    perintah S"L"C% secara langsung. 5ntuk mengatasi hal tersebut, maka kita dapat menggunakansebuah kursor. #erbeda dengan 6ariabel skalar, cursor dapat menampung banyak nilai berupa barisatau record. &ilainilai yang disimpan dalam sebuah kursor kemudian dapat dimanipulasi sehinggadapat digunakan sesuai kebutuhan.

    Cursor sendiri terdiri dari tipe (

    +. 7mplicit Cursor  erupakan Cursor yang dideeklarasikan dan dikelola secara otomatis oleh PL/SQL untuk

    semua operasi DL SQL dan PL/SQL S"L"C% Statement

    . "ksplicit Cursor  

    erupakan Cursor yang dikelola dan dideklarasikan oleh Programmer 

    http://risnotes.com/2012/02/plsql/http://risnotes.com/2012/02/plsql/http://risnotes.com/2012/02/sql-statements-di-dalam-plsql/http://risnotes.com/2012/02/plsql/http://risnotes.com/2012/02/sql-statements-di-dalam-plsql/

  • 8/16/2019 LAPRES AKHIR 5

    4/28

    Dalam embuat cursor terdapat 1 tahap yang harus kita lakukan yaitu (

    +. D"CL!"

    D"CL!" digunakan untuk mendeklarasikan cursor yang akan kita gunakan

    . OP"&

    OP"& digunakan untuk mengakti-kan cursor yang akan kita gunakan

    0. $"%C4

    $"%C4 digunakan untuk mengambil data dari cursor, dan kemudian data tersebut kita

    tampung ke dalam satu atau beberapa 6ariabel.

    1. CLOS"

    CLOS" digunakan untuk menonakti-kan atau menutup cursor yang kita gunakan

    9 L*/; :

    SET SERVEROUTPUT ON

    DECLARE

    CURSOR emp_cursor IS

    SELECT employee_id, last_name, salary FROM EmployeesWHERE department_id = 20;

    empId employees.employee_id%type;

    name employees.last_name%type;

    Sal employees.salary%type;

    BEGIN

    OPEN emp_cursor;

    LOOP

    FETCH emp_cursor INTO empI, !ame, Sal ;

  • 8/16/2019 LAPRES AKHIR 5

    5/28

    DBMS_OUTPUT.PUT_LINE(empI""# $""!ame""# $""Sal);

    EXIT %&E! emp_cursor%NOTFOUND;

    END LOOP;DBMS_OUTPUT.PUT_LINE($jumla' ata $""# $""emp_cursor*%+*!-);

    CLOSE emp_cursor;

    END;

    P*

  • 8/16/2019 LAPRES AKHIR 5

    6/28

    MODUL 2

    Function, Procedure, Trigger

    1. FunctionFunction sebenarnya mirip dengan Procedure, HANYA function akan memberikan

    nilai balikan (return value).

    Synta Da!ar

    CREATE [OR REPLACE] FUNCTION function_name

    [(parameter_name [IN | OUT | IN OUT] type [ !!!]"]

    RETURN return_#atatype

    $I% | A%&

    'EIN

    ) function_*o#y +EN, [function_name]-

    "unction#na$e adala! nama function yang akan kita buat. "ifatnya mandatory.

    %ara$eter#na$e adala! parameter yang akan ditamba!kan. "ifatnya opsional

    return#dataty%e adala! tipe data yang akan dibalikkan (return value).

    "unction#ody adala! bagian tubu! dari function yang berisi program P#$"%#.

    Conto' Progra$

    CREATE OR REPLACE FUNCTION tam*a.(*i/0 in NU1'ER *i/2 in NU1'ER"RETURN NU1'ER I%

  • 8/16/2019 LAPRES AKHIR 5

    7/28

      3um/a. NU1'ER(4"-

    'EIN

      3um/a. 56 *i/07*i/2-

      RETURN 3um/a.-

    EN, tam*a.-

    8

    Cara Pe$anggi(an

    %ELECT tam*a.(094" FRO1 #ua/-

    Me(i'at Da"tar Function%:L+ %ELECT o*3ect_name

      2 FRO1 u;er_o*3ect;

      < =>ERE o*3ect_type 6 ?FUNCTION?-

    Meng'a%u! Function,ROP FUNCTION function_name-

    2. Procedure

    Procedure adala! sala! satu subprogram di &racle P#$"%# yang tidak memberikannilai (return value) secara langsung. Procedure disimpan dalam database.

    Synta Da!ar

    CREATE [OR REPLACE] PROCE,URE proce#ure_name

    [(parameter_name [IN | OUT | IN OUT] type [ !!!]"]

    $I% | A%&

    'EIN

    ) proce#ure_*o#y +

    EN, proce#ure_name-

    %rocedure#na$e adala! nama yang digunakan untuk prosedure

    )OR R*PL+C* digunakan untuk modifikasi procedure yang tela! dibuat (e'isting

     procedure)

    %ara$ater#na$e adala! parameter yang ditamba!kan dalam procedure

    -S atau +S adala! keyord yang digunakan untuk standalone procedure.

    %rocedure#ody adala! bagian isi (executable) dari procedure.

    Conto' Progra$

    CREATE OR REPLACE PROCE,URE ceta@_tu/i;anI%

  • 8/16/2019 LAPRES AKHIR 5

    8/28

      CNT INT(

  • 8/16/2019 LAPRES AKHIR 5

    9/28

    8. klausa 9H-N 2 untuk kondisi pembatasan

    :. trigger body 2 bagian prosedur yang dituliskan pada trigger 

    Conto' Progra$

    CREATE OR REPLACE TRIER name_c.anDe;_triDDer  'EFORE ,ELETE OR IN%ERT OR UP,ATE

      ON ma.a;i;a

      FOR EAC> RO=

    ,ECLARE

    'EIN

      IF /enDt.(5ne!npm" ) T>EN

      rai;e_app/ication_error(G29904 ?Pan3anD NP1 ti#a@ *o/e.

    @uranD #ari #iDit?"-

      EN, IF-

      ,'1%_OUTPUT!put_/ine (?Nama Lama5 ? || 5OL,!nama"-

      ,'1%_OUTPUT!put_/ine (?Nama 'aru5 ? || 5NE=!nama"-

    EN,-

    CREATE OR REPLACE TRIER name_c.anDe;_triDDer_2

      AFTER UP,ATE

      ON 1A>A%I%=A

      FOR EAC> RO=

    ,ECLARE

    'EIN

      IF /enDt.(5ne!npm" ) T>EN

      rai;e_app/ication_error(G29904 ?Pan3anD NP1 ti#a@ *o/e.

    @uranD #ari #iDit?"-

      EN, IF-

      ,'1%_OUTPUT!put_/ine (?Nama Lama5 ? || 5OL,!nama"-

      ,'1%_OUTPUT!put_/ine (?Nama 'aru5 ? || 5NE=!nama"-

    EN,-

    8

    Me(i'at Da"tar Trigger

    %:L+ ;et /ine;ie 0999-

    %:L+ ;e/ect oner o*3ect_name ;tatu;

      2 from a//_o*3ect;

      < .ere o*3ect_type 6 ?TRIER?-

  • 8/16/2019 LAPRES AKHIR 5

    10/28

    MODUL

    Connected en0iron$entKoneksi XAMPP dengan Database Oracle Express Edition

    berikut aplikasi-aplikasi yang dibutuhkan:

    • XAMPP --> http:!!!"apache#riends"orgenxa$pp"ht$l

    • Oracle Database Express Edition %%g &elease ' --> Oracle D( XE

    • Oracle Database )nstant *lient+ pilih paket Instant Client Package –Basic --> Oracle )nstant *lient

    • P,P Editor P,Ped+ .otepad//+ dsb0

    1ntuk paket XAMPP anda bisa langsung do!nload+ tetapi untuk

    $endo!nload ' aplikasi oracle diatas anda harus $e$iliki login atau

    $en2adi $e$ber di !ebsite oracle gratis0" Disini saya tidak akan

    $e$bahas cara instalasi XAMPP $aupun Oracle D( XE+ silahkan dicari

    tutorialnya di Mbah 3oogle 45460Kepan2angan+ $ungkin lain kali akan

    saya bahas heeheehee0" 7etelah progra$ XAMPP dan Oracle D( XE

    diinstall serta Oracle Database )nstant *lient dido!nload+ lakukan

    langkah-langkah berikut ini:

    http://www.apachefriends.org/en/xampp.htmlhttp://www.oracle.com/technetwork/products/express-edition/downloads/index.htmlhttp://www.oracle.com/technetwork/database/features/instant-client/index-100365.htmlhttp://www.apachefriends.org/en/xampp.htmlhttp://www.oracle.com/technetwork/products/express-edition/downloads/index.htmlhttp://www.oracle.com/technetwork/database/features/instant-client/index-100365.html

  • 8/16/2019 LAPRES AKHIR 5

    11/28

    %" Kita harus $engakti#kan $odul oci8 pada 9le kon9gurasi php"ini"

     ika anda instal XAMPP secara default di !indo!s+ 9lenya akan terdapat

    pada #older: c:;xa$pp;php;php"ini

  • 8/16/2019 LAPRES AKHIR 5

    12/28

    @" Ke$udian re-start !ebserer Apache untuk $engakti#kan #ungsi

    $odul Oracle D(" ika diperlukan sekalian di restart ko$puternya biar

    a#dol becanda0 4540"

    Pastikan !ebserer apache sudah di re-start

    " 7elan2utnya $asuk ke hala$an uta$a dari xa$pp $elalui !eb

    bro!ser internet explorer+ $oBilla 9re#ox0 7aya kurang

    $ereko$endasikan opera karena ada skrip 7C Oracle ketika diload tidak

     2alan" Ke$bali ke xa$pp+ biasanya diakses

    diala$at: http:localhostxa$pp" Ke$udian pilih $enu php5in#o0"

    Ke$udian anda geser keba!ah sa$pai $ene$ukan $odul O*)8 telah

    akti#" ika belu$+ coba ulangi ke$bali langkah-langkah diatas"

    Modul oci8 telah akti# 

    " (erikutnya kita akan $encoba $engakti#kan database ,& yang

    telah terinstal secara de#ault pada database oracle untuk u2icoba koneksidan $ena$pilkan data"(uka ,ala$an ogin Database Oracle dengan

  • 8/16/2019 LAPRES AKHIR 5

    13/28

    bro!ser di ala$at: http:%'F"G"G"%:8G8Gapex" Masukkan userna$e:

    syste$ dan pass!ordnya adalah pass!ord ketika anda $enginstall

    perta$a kali database oracle"

    ogin ke database Oracle XE

    F" 7etelah login+ $asuk ke Menu: Ad$inistration - Database 1sers -

    Manage 1ser" Pilih ,&" Ke$udian $asukkan pass!ord baru+ sebagai

    contoh disini saya $e$asukkan pass!ord: oracle dan ganti Account

    Status dari Locked $en2adi Unlocked" Dan pada bagian user privileges+

    akti#kan pilihan =D(A="

    Pilih Menu Ad$inistration

  • 8/16/2019 LAPRES AKHIR 5

    14/28

    Mengakti#kan user ,& dan opsi-nya

    H" (erikutnya adalah $encoba $e$buat 9le koneksi+ ketikkan skrip

    diba!ah ini untuk $e$ulai koneksi ke database oracle" Iang penting

    adalah pada bagian Jconn oci5connect=,&=+ =oracle=+ =localhostXE=06

    Di$ana ,&user pada database oracle+ oraclepass!ord dari user ,&+

    dan localhostXE na$a serer database yang kita akses"

    Lphp

    *reate connection to Oracle

    Jconn oci5connect=,&=+ =oracle=+ =localhostXE=06

    i# NJconn0

      J$ oci5error06

      echo J$Q$essageQR+ =;n=6

      exit6

    S

    else

      print =*onnected to OracleN=6

    S

    *lose the Oracle connection

    oci5closeJconn06

    >

    %G" 7i$pan dan 2alankan skrip diatas untuk $engu2i apakah koneksi ke

    database oracle berhasil atau tidak" 2ika $uncul teks *onnected to Oracle+

    berarti settingan ber2alan dengan baik :0

  • 8/16/2019 LAPRES AKHIR 5

    15/28

    Koneksi berhasilN

    %%" Diba!ah ini contoh skrip untuk $ena$pilkan output tabel dari

    oracle:

    Lphp

    *reate connection to Oracle

    Jconn oci5connect=,&=+ =oracle=+ =localhostXE=06

    JTuery Qselect U #ro$ depart$entsQ6

    Jstid oci5parseJconn+ JTuery06

    Jr oci5executeJstid06

    Q6!hile Jro! oci5#etch5arrayJstid+

    O*)5&EV1&.5.17/O*)5A77O*00

      print QLtr>Q6

      #oreach Jro! as Jite$0

      print QLtd>Q"Jite$ N null ht$lentitiesJite$+ E.V5C1OVE70

    : QWnbspQ0"QLtd>Q6

      S  print QLtr>Q6

    S

    print QLtable>Q6

    >

    %'" ,asil dari skrip diatas:

  • 8/16/2019 LAPRES AKHIR 5

    16/28

    *ontoh hasil Cuery

    MODUL

    +&0FYN; F&+ (

  • 8/16/2019 LAPRES AKHIR 5

    17/28

    5.

  • 8/16/2019 LAPRES AKHIR 5

    18/28

    7. Hapus

    MODUL 5

  • 8/16/2019 LAPRES AKHIR 5

    19/28

  • 8/16/2019 LAPRES AKHIR 5

    20/28

    . 3a!i( dari data yang !uda' di ua'

    . To$o( 3+PUS

    a. Ma!u6an data yang ingin di 'a%u!

    . 3a!i( dari data yang !uda' di 'a%u!

    MODUL 8

    +&0FYN; F&+ (0"

  • 8/16/2019 LAPRES AKHIR 5

    21/28

      M*M+SU+ D+T+

      3+S-L D+R- D+T+ 9+4 D- M+SU+

  • 8/16/2019 LAPRES AKHIR 5

    22/28

     

    7UTTO S-MP+

      7UTTO 7+T+L

    MODUL :R*PORT

  • 8/16/2019 LAPRES AKHIR 5

    23/28

    %" click ne item

    5. Pili! crystal report 2

     

  • 8/16/2019 LAPRES AKHIR 5

    24/28

    6. ?emudian isi data source2 'e,userd2 psi, Passord2psi, setela! itu ne't ikuti petun*uk

    yang ada2

     

  • 8/16/2019 LAPRES AKHIR 5

    25/28

    7. ?emudian buat form baru, setela! itu pili!

  • 8/16/2019 LAPRES AKHIR 5

    26/28

    . ?emudian run

    MODUL ;

    M*U UT+M+

  • 8/16/2019 LAPRES AKHIR 5

    27/28

      M*U SCR-PT

      P*4+TUR+ ST+RUP

      3+S-L RU

  • 8/16/2019 LAPRES AKHIR 5

    28/28