TUGAS BASIS DATA LANJUT Sistem Informasi Rumah Sakit OLEH : Ayu Dian 08120038 Dwi Cahyono 08120045 TEKNIK INFORMATIKA UNIVERSITAS WIJAYA KUSUMA SURABAYA JAWA TIMUR 2011
Q : Apa itu function? Ada berapa macam? Jelaskan bedanya! A : Function adalah sebuah bagian potongan dari kode sekuensial. Sebuah function dibuat dengan tujuan membuat sebuah bundel atau berkas yang baru sebagai penyelesaian masalah, seperti perubahan tipe data, operasi logika, perhitungan artimetika, dan operator baru beserta perubahannya. Bila menulis kode dalam bentuk function, maka kode tersebut akan dapat dibagi-bagikan dan juga digunakan lagi untuk project lain. Selain itu, kode tersebut akan jauh lebih singkat dan lebih mudah untuk dipahami. Ada 3 macam function, yaitu : 1. Rowset function Fungsi ini mengembalikan sebuah objek yang dapat digunakan sebagai table reference dalam statement TSQL 2. Aggregate function Fungsi ini beroperasi dari sejumlah nilai tapi menghasilkan nilai ringkas, tunggal. 3. Scalar function Fungsi ini mengoperasikan suatu nilai dan menghasilkan nilai tunggal Berdasarkan hasilnya function ada 2, yaitu : 1. Deterministic : selalu menghasilkan nilai yang sama tiap kali dipanggil dengan nilai input tertentu Semua fungsi built-in aggregate dan string deterministic (kecuali CHARINDEX atau PATINDEX) Contoh: SIN, COS, FLOOR, ISNULL, POWER, DAY, MONTH, YEAR, 2. Non Deterministic : bisa menghasilkan nilai yang berbeda tiap kali dipanggil dengan nilai input tertentu Semua fungsi configuration, cursor, metadata, security, sistem statistik Contoh: @@ERROR, GETDATE, IDENTITY, DATENAME, USER_NAME
Q : Apa itu package? Jelaskan dan beri contoh! A : Package (ORACLE) adalah kumpulan dari fungsi dan procedure. Tiap package harus terdiri dari dua obyek, yaitu package body dan package specification. Package : Package body : Package (SQL) adalah sebuah schema object yang mengelompokkan PL/SQL types, items, dan subprograms, yang terkait secara logikal. Packages biasanya memiliki dua
bagian, sebuah specification dan sebuah body, meskipun kadangkala body tersebut tidak diperlukan. Specification (atau spec) merupakan antarmuka terhadap aplikasi-aplikasi kita; ia mendeklarasikan types, variables, constants, exceptions, cursors, dan subprograms yang tersedia untuk digunakan. Body secara penuh mendefinisikan cursors dan subprograms, dan juga mengimplementasikan spec. Contoh Sebuah PL/SQL Package Dalam contoh di bawah ini, kita mem-package sebuah record type, sebuah cursor, dan dua procedure kepegawaian. Perlu diingat bahwa procedure hire_employee menggunakan database sequence empno_seq dan function SYSDATE untuk menambahkan sebuah employee number baru dan hire date. CREATE OR REPLACE PACKAGE emp_actions AS -- spec TYPE EmpRecTyp IS RECORD (emp_id INT, salary REAL); CURSOR desc_salary RETURN EmpRecTyp; PROCEDURE hire_employee ( ename VARCHAR2, job VARCHAR2, mgr NUMBER, sal NUMBER, comm NUMBER, deptno NUMBER); PROCEDURE fire_employee (emp_id NUMBER); END emp_actions; CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body CURSOR desc_salary RETURN EmpRecTyp IS SELECT empno, sal FROM emp ORDER BY sal DESC; PROCEDURE hire_employee ( ename VARCHAR2,
job VARCHAR2, mgr NUMBER, sal NUMBER, comm NUMBER, deptno NUMBER) IS BEGIN INSERT INTO emp VALUES (empno_seq.nextval, ename, job, mgr, SYSDATE, sal, comm, deptno); END hire_employee; 6 PROCEDURE fire_employee (emp_id NUMBER) IS BEGIN DELETE FROM emp WHERE empno = emp_id; END fire_employee; END emp_actions; Hanya deklarasi di dalam package yang terlihat dan dapat dikses terhadap aplikasi. Detil implementasi di dalam package body disembunyikan dan tidak dapat diakses. Jadi, kita dapat mengubah body (implementation) tanpa harus meng-compile ulang programprogram yang memanggilnya.
ERDTingkat Lanjut tglmasuk Id_polklinik email skrg telp Tanggal cek up Tanggal masuk Id_pasien asal Tanggal keluar Id_kunjungan Kunjungan punya poliklinik tgllahir Rawat jalan Rawat inap Id_poliklinik tempatlahir o lakukan Tanggal_kunju ng hasil userlog Nama poliklinik nama passwdlog punya Id pasien pasien punya resep Tgl_berdiri tgl pekerjaan punya satu obat Nama_obat Id_obat id_progdi kode_progdi Nama_progdi dokter Id_polklinik spesialis butuh kegunaan Id_dokter nama pembayaran Id_bayar Id_kunjung No_nota jumlah
CDM (Conceptual Data Model) pasien kunjungan tb_resep nama_pasien ttl pekerjaan Variable characters (1) Variable characters (1) Variable characters (1) Characters (10) lakukan tanggal_kunjungan Reference_2 id_resep tanggal_resep total_resep id_bayar id_kunjunagan nomer_nota jumlah Relationship_10 tb_pembayaran Characters (10) Characters (10) Relationship_3 poliklinik nama_poliklinik Characters (20) Relationship_5 Relationship_4 id_rekam tanggal_rekam rekam Characters (10) Relationship_7 Relationship_6 Relationship_9 id_dokter nama_dokter ttl spesialis dokter Variable characters (1) id_obat nama_obat keterangan satuan tb_obat Relationship_8 id_resepobat jumlah_obata harga_obat tb_resepobat Characters (10)
PDM (Physical Data Model) pasien id_bayar nama_pasien ttl pekerjaan kunjungan id_dokter 2 id_resep id_bayar pol_ id_rekam tanggal_kunjungan <fk6> <fk1> <fk2> <fk3> <fk5> <fk4> tb_resep id_resep tanggal_resep total_resep poliklinik nama_poliklinik char(20) dokter id_dokter 2 nama_dokter ttl spesialis rekam id_rekam 2 tanggal_rekam tb_pembayaran id_bayar id_kunjunagan nomer_nota jumlah <fk2> <fk1> tb_resepobat id_resepobat id_resep jumlah_obata harga_obat tb_obat id_obat id_resepobat nama_obat keterangan satuan
Dalam sistem informasi ini terdapat beberapa store procedure, trigger dan function, antara lain: a. Function Terdapat 3 function, antara lain : - Function pasien - Function dokter - Function poliklinik b. Trigger Terdapat 2 trigger, yaitu : - Trigger delete pasien, berfungsi apabila data pada table pasien di delete maka data yang berhubungan dengan data pasien yang di delete tersebut ikut dihapus. - Trigger update rekam, berfungsi apabila table pada rekam diupdate maka secara otomatis pada table kunjungan pun juga akan terupdate. c. Store Procedure Terdapat 6 store procedure, yang fungsinya adalah untuk memudahkan pengisian data pada masing-masing table (store procedure untuk insert), yaitu : - Store procedure pasien - Store procedure resep - Store procedure kunjungan - Store procedure rekam - Store procedure obat - Store procedure pembayaran - Store procedure poliklinik