LAPRES AKHIR 5
-
Upload
afdhal-haddad -
Category
Documents
-
view
223 -
download
0
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