Laporan Praktikum Sbd Akhir

25
LAPORAN PRAKTIKUM MATA KULIAH SISTEM BASIS DATA Disusun Oleh : Dany Puguh Laksono 07/256988/TK/33449 JURUSAN TEKNIK GEODESI FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA YOGYAKARTA

description

Sistem Basis Data

Transcript of Laporan Praktikum Sbd Akhir

Page 1: Laporan Praktikum Sbd Akhir

LAPORAN PRAKTIKUM MATA KULIAHSISTEM BASIS DATA

Disusun Oleh :Dany Puguh Laksono07/256988/TK/33449

JURUSAN TEKNIK GEODESIFAKULTAS TEKNIK UNIVERSITAS GADJAH MADA

YOGYAKARTA2008

Page 2: Laporan Praktikum Sbd Akhir

DAFTAR ISI

DAFTAR ISI...........................................................................................................................2

BAB I : PENDAHULUAN.......................................................................................................3

1.I. Latar Belakang.............................................................................................................3

1.2. Maksud dan Tujuan....................................................................................................3

1.3. Dasar Materi...............................................................................................................4

1.3.A. Microsoft Access..................................................................................................4

1.3.B. Bahasa SQL.........................................................................................................4

BAB II : PELAKSANAAN.......................................................................................................6

2.1. Microsoft Access.........................................................................................................6

2.1. Bahasa SQL................................................................................................................9

BAB III : PENUTUP.............................................................................................................12

BAB III : LAMPIRAN............................................................................................................13

Page 3: Laporan Praktikum Sbd Akhir

BAB I : PENDAHULUAN

1.I. Latar Belakang

Pengelolaan data dalam jumlah besar membutuhkan sistematisasi sedemikian rupa sehingga data yang ada dapat dikelola dengan baik dan menghasilkan informasi yang dibutuhkan sebagaimana mestinya. Penanganan data dengan cara tradisional (pengolahan file processing) memiliki berbagai kekurangan dalam manajemen data. Sehingga dikembangkanlah sistem pengolahan data yang lebih baik, yang dikenal dengan Sistem Basis Data.

Karakteristik Sistem Basis Data berupa penggunaan perangkat aplikasi untuk menyimpan dan mengolah data secara terpisah dari program utama, sehingga memungkinkan berbagai operasi dilakukan pada data yang disimpan. Sistem Basis Data memiliki berbagai keunggulan dibandingkan pengolahan data secara tradisional/file processing. Keunggulan yang dimiliki antara lain adalah minimalnya redudansi, integritas data yang terjamin, kemampuan multi user/data sharing, memastikan independensi data, sekuritas tinggi, serta kemudahan dalam proses backup dan recovery data. Model pengolahan data yang sering dipakai diantaranya adalah model relasional, dimana hubungan antar entiti dilakukan dengan adanya foreign key / identitas tamu. Disamping itu dikenal model basis data yang lain seperti model hierarki, network, atau Object Oriented.

Perangkat aplikasi yang digunakan untuk mengelola database system atau sistem basis data disebut Database Management System/Sistem Manajemen Basis Data (DBMS/SMBD). Aplikasi-aplikasi ini antara lain yang populer adalah MySQL, Access, PostgreSQL, dan Oracle.

1.2. Maksud dan Tujuan

Ada dua perbedaan SMBD (Sistem Manajemen Basis Data) yang sering digunakan, yaitu database yang bersifat Stand Alone dan database yang bersifat Database Server. Stand Alone DBMS merupakan perangkat aplikasi yang hanya berjalan pada satu komputer dan hanya dapat diakses oleh satu orang dalam satu waktu saja. Database (Back End) berserta program aplikasinya (Front End) berada dalam satu komputer, dan pengguna mengaksesnya dalam waktu dan tempat yang sama. Biasanya, aplikasi seperti ini, digunakan untuk menangani pengolahan data atau sistem informasi yang lingkupnya kecil. Database yang sering digunakan adalah MS Access, Paradox, dBase, dan FoxPro. Sedangkan program aplikasinya bebas menggunakan apa saja, seperti Visual Basic, Delphi, atau CPP.

Aplikasi Database berbasis Client/Server membutuhkan aplikasi database yang bertindak sebagai Server (pusat) data dan komputer yang dijadikan sebagai Client (pengakses). Sehingga dalam aplikasi ini, database server digunakan sebagai media penyimpanan datanya. Pada Aplikasi database yang berbasis Client/Server, data dapat diakses oleh dua orang atau lebih dalam satu waktu. Aplikasi ini antara lain adalah MySQL, PostgreSQL, Oracle, MsQL, dan lain-lain.

Melihat pesatnya perkembangan akan informasi kebumian/Geographic Information System (GIS) seperti saat ini, kebutuhan akan penguasaan manajemen Sistem Basis Data mutlak diperlukan. Terlebih bagi mahasiswa Jurusan Teknik Geodesi yang senantiasa terkait dengan pengolahan data dan informasi secara terstruktur dalam jumlah yang besar. Dalam praktikum ini mahasiswa mempelajari pengolahan basis data pada sistem stand alone dengan menggunakan

Page 4: Laporan Praktikum Sbd Akhir

program Microsoft Access 2003 dan Client/Server dengan menggunakan bahasa SQL (Oracle/MySQL).

1.3. Dasar Materi

1.3.A. Microsoft Access

Perangkat Lunak Microsoft Access menyediakan berbagai fungsi yang mudah digunakan dalam manajemen data. Berbagai kemudahan disediakan dalam proses pembuatan, pengolahan, sampai penyajian data sesuai dengan yang dikehendaki oleh pengguna, seperti wizard untuk menuntun user membuat dan mengolah database secara step by step, template yang menyediakan berbagai model data yang siap diolah dan digunakan, hingga menu untuk membuat database secara bebas sesuai keinginan pengguna.

Dalam Microsoft Acces, data dapat diolah dengan menggunakan satu file database saja. Penggunaan file database ini dapat melakukan operasi-operasi seperti pembuatan Table untuk menyimpan data secara langsung; Query untuk melakukan operasi pencarian/seleksi data yang diinginkan; Form, untuk menampilkan, menambahkan maupun mengupdate data di tabel; Report untuk melakukan analisa atau pencetakan data dengan layout tertentu; serta Data Access Page untuk menampilkan, update, atau menganalisa database dari network, baik internet maupun intranet.

Pembuatan table dapat dilakukan dengan tiga cara : dengan Design View, yaitu mempersilahkan user untuk membuat field-field yang dikehendaki berkut tipe datanya, baru kemudian menginputkan data pada masing-masing field; menggunakan step-by-step wizard yang menuntun user untuk membuat table tiap langkahnya; atau dengan langsung menginputkan data yang dikehendaki dalam tiap field yang disediakan (create table by entering data). Pada tabel-tabel yang sudah dibuat dapat diterapkan relasi dan constraint yang dikehendaki sehingga apabila data pada satu tabel dirubah, akan mempengaruhi tabel lain yang ber-relasi dengannya. Relasi dapat dilakukan dengan adanya foreign key, yaitu field unik tertentu pada satu tabel yang diletakkan di tabel yang lain sebagai penghubung.

Query dapat digunakan untuk menampilkan data dengan persyaratan-persyaratan tertentu dari satu atau lebih tabel. Query juga bisa melakukan update (pengubahan data yang sudah ada) atau delete (penghaspusan data) beberapa record dalam satu waktu, serta melakukan berbagai kalkulasi yang diinginkan dari data yang ada. Pembuatan query dapat dilakukan dengan bebas menggunakan design view, yang kemudian mempersilahkan user untuk memilih tabel yang akan diseleksi datanya dan jenis seleksi yang diinginkan. Bisa juga dengan mengikuti langkah-langkah yang sudah disediakan oleh Microsoft Access dalam wizardnya untuk pembuatan query.

1.3.B. Bahasa SQL

SQL (Structured Query Languange) merupakan bahasa yang banyak digunakan dalam berbagai produk database. SQL dibangun di laboratorium IBM-San Jose California sekitar akhir tahun 70-an. Pertama kali dikembangkan sebagai bahasa di produk database DB2 yang sampai saat ini merupakan produk database andalan IBM. SQL sering di lafalkan dengan “sequel”.

SQL merupakan sebuah bahasa perimintaan yang melekat pada suatu SMBD termasuk MySQL. Perintahnya dapat disebut dengan query. Dalam penggunaannya, perintah SQL dikategorikan menjadi tiga sub perintah, yaitu DDL (Data Definiton Language), DML (Data Manipulation Language,) dan DCL (Data Control Language).

Page 5: Laporan Praktikum Sbd Akhir

Data Definition Language (DDL)Data Definition Language (DDL) merupakan sub bahasa SQL yang digunakan untuk

membangun kerangka database. Ada tiga perintah yang termasuk dalam DDL, yaitu:CREATE : Perintah ini digunakan untuk membuat, termasuk di antaranya membuat

database baru, tabel baru, view baru, dan kolom.ALTER : Perintah ini digunakan untuk mengubah struktur tabel yang telah dibuat.

Pekerjaannya mencakup mengganti nama tabel, menambah kolom, mengubah kolom, menghapus kolom, maupun memberikan atribut pada kolom.

DROP : Perintah ini digunakan untuk menghapus database dan tabel.

Data Manipulation Language (DML)Data Manipulation Language (DML) merupakan sub bahasa SQL yang digunakan untuk

memanipulasi data dalam database yang telah terbuat. Perintah yang digunakan, di antaranya:INSERT : Perintah ini digunakan untuk menyisipkan atau memasukkan data baru ke

dalam tabel. Penggunaannya setelah database dan tabel selesai dibuat.SELECT : Perintah ini digunakan untuk mengambil data atau menampilkan data dari satu

tabel atau beberapa tabel dalam relasi. Data yang diambil dapat kita tampilkan dalam layar prompt MySQL secara langsung maupun ditampilkan pada tampilan aplikasi.

UPDATE : Perintah ini digunakan untuk memperbarui data lama menjadi data terkini. Jika ada data yang salah atau kurang up to date dengan kondisi sekarang, maka dapat diubah isi datanya menggunakan perintah UPDATE.

DELETE : Perintah ini digunakan untuk menghapus data dari tabel. Biasanya data yang dihapus merupakan data yang sudah tidak diperlukan lagi. Pada saat menghapus data, perintah yang telah dijalankan tidak dapat digagalkan, sehingga data yang telah hilang tidak dapat dikembalikan lagi.

Data Control Language (DCL)Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk

melakukan pengontrolan data dan server databasenya. Perintah DCL, di antaranya:GRAND : Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator

(pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.

REVOKE : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

Page 6: Laporan Praktikum Sbd Akhir

BAB II : PELAKSANAAN

Dalam praktikum ini diberikan terlebih dahulu kerangka-kerangka tabel yang akan dibuat. Baru kemudian dibuat databasenya dalam bentuk Microsoft Access atau bahasa SQL (MySQL/Oracle) serta mengaplikasikan querynya. Tabel-tabel yang akan dibuat antara lain :

PASIEN (id_pasien#, nama, umur, alamat..)DOKTER (id_dokter#, nama, umur, alamat, kode_ruang, id_poli#..)POLIKLINIK (id_poli#, nama..)RUANG DOKTER (kode_ruang#, kapasitas..)BANGSAL (id_bangsal#, kapasitas..)PAVILIUN (id_paviliun#, fasilitas...)OBAT (kode_obat#, nama_obat, penyakit, dosis..)PASIEN_BANGSAL (id_pasien#, id_bangsal#, tgl_masuk..)PASIEN_PAVILIUN (id_pasien#, id_paviliun#, tgl_masuk..)PEMERIKSAAN (no_registrasi#, id_dokter#, id_pasien#, tgl, diagnosa..)PEMBERIAN_OBAT (no_registrasi#, kode_obat#, jumlah..)

2.1. Microsoft AccessLangkah-langkah pembuatan tabel dan Querynya adalah :

1. Membuka Microsoft Access, pada bagian New File, Pilih Blank Database.

Dari kotak dialog yang muncul, memilih lokasi penyimpanan database dan nama file

database tersebut.2. Buat tabel dengan cara memilih Create table in design view dari menu yang muncul.

3. Akan muncul kotak dialog pembuatan tabel. Tabel dibuat dengan mengisikan field-field/kolom-kolom yang diperlukan pada ‘Field Name’. Kolom ‘Data type’ diisikan dengan tipe data yang dikehendaki untuk field yang bersangkutan.

Page 7: Laporan Praktikum Sbd Akhir

Tab general diisi dengan pengaturan mengenai tipe data yang digunakan, misal panjang karakter, dsb.4. Setelah selesai, salah satu field yang memiliki nilai unik ditetapkan sebagai primary key,

dengan cara : klik kanan pada field tersebut pilih ‘Primary key’5. Demikian selanjunya dibuat tabel-tabel lain dengan mengisikan fieldnya pada design view

pembuatan tabel. Hasilnya adalah sebagai berikut :

6. Pengisian tabel dilakukan dengan cara klik dua kali dari tabel yang akan diisi. Pengisian dilakukan dari tabel yang tidak direferensikan oleh tabel lain, misalnya tabel pasien.

Berikutnya diisi tabel-tabel lain berurutan sehingga seluruhnya terisi data.7. Relasi antar eniti dapat dibuat dari menu Tools Relationship. Dari menu layout

relationship yang muncul, dipilih Relationship Edit Relationship. Setelah itu, dimasukkan tabel-tabel yang berhubungan dan constraint yang akan diaplikasikan.

Page 8: Laporan Praktikum Sbd Akhir

Hasil pembuatan relasi adalah sebagai berikut :

8. Setelah semua relasi selesai dibuat, barulah bisa dibuat query. Dari menu pembuatan tabel, dipilih Query, kemudian ‘Create query in design view’ untuk membuat query yang diinginkan. Pada kotak dialog yang muncul, pilih tabel (atau tabel-tabel) yang akan digunakan dalam seleksi query.

9. setelah semua tabel terpilih, pada baris Field, dimasukkan nama-nama kolom yang akan dilibatkan pada pembuatan query. Kemudian, pada baris Criteria, dimasukkan kondisi baris yang menyeleksi tampilan yang diinginkan. Misalkan, untuk mencari kapasitas bangsal tempat pasien bernama “Sherlock Holmes” adalah sebagai berikut :

Page 9: Laporan Praktikum Sbd Akhir

10. Query juga bisa melakukan operasi-operasi dalam penyeleksian data yang diinginkan. Ini dilakukan dengan menambahkan fungsi agregat (tanda sigma [] di menu). Misalnya untuk menampilkan jumlah pemberian obat berdasarkan nomor registrasinya, dilakukan sebagai berikut :

2.1. Bahasa SQL

Langkah-langkah pembuatan tabel dan query dalam bahasa SQL adalah sebagai berikut:1. Pembuatan tabel dilakukan dari tabel-yang tidak memiliki identitas tamu. Tabel-

tabel tersebut antara lain adalah tabel PASIEN, POLIKLINIK, RUANG DOKTER, BANGSAL, PAVILIUN dan tabel OBAT. Pembuatannya dalam bahasa SQL dibuat dengan perintah CREATE TABLE. Pembuatan tabel PASIEN beserta field-fieldnya adalah :

create table pasien (id_pasien char(10), nama char(30), umur number(5), alamat char(50), constraint pk_pasien primary key(id_pasien));

dengan perintah DESC PASIEN, dapat ditampilkan hasil pembuatan tabel tersebut :

Name Null? Type ------------------------------- -------------- ---- ID_PASIEN NOT NULL CHAR(10) NAMA CHAR(30) UMUR NUMBER(5) ALAMAT CHAR(50)

2. Selanjutnya adalah pembuatan tabel-tabel yang mengandung identitas tamu, antara lain tabel DOKTER, PASIEN BANGSAL, PASIEN PAVILIUN, PEMERIKSAAN, dan PEMBERIAN OBAT. Hal yang harus diperhatikan pada saat pembuatannya adalah harus mematuhi constraint inegritas referensi, misalnya pada saat pembuatan foreign

Page 10: Laporan Praktikum Sbd Akhir

key, nama fieldnya harus benar-benar sama dengan nama field pada tabel referensi. Pembuatan tabel dokter adalah sebagai berikut :

create table dokter (id_dokter char(10), nama char(30), umur number(5), alamat char(50), kode_ruang char(10), id_poli char(10), constraint pk_dokter primary key(id_dokter), constraint fk_dokter_1 foreign key(kode_ruang) references ruang_dokter(kode_ruang), constraint fk_dokter_2 foreign key(id_poli) references poliklinik(id_poli));

hasil pembuatannya :

Name Null? Type ------------------------------- -------------- ------------ ID_DOKTER NOT NULL CHAR(10) NAMA CHAR(30) UMUR NUMBER(5) ALAMAT CHAR(50) KODE_RUANG CHAR(10) ID_POLI CHAR(10)

3. Setelah semua tabel selesai dibuat, maka selanjutnya adalah melakukan pengisian tabel dengan data. Pengisian tabel dilakukan dengan perintah INSERT INTO<nama_tabel> VALUES(<nilai_kolom1>,<nilai_kolom2>...);atau INSERT INTO <nama_tabel> <nama_kolom1>,<nama_kolom2>...) VALUES (<nilai_kolom1>,<nilai_kolom2>...);Misalnya pengisian tabel PEMERIKSAAN adalah sebagai berikut :

insert into pemeriksaan values ('R0001','D04','pas001','4-08-2008','Pilek');insert into pemeriksaan values ('R0002','D01','pas002','3-11-2008','Migrain');insert into pemeriksaan values ('R0003','D05','pas003','29-02-2008','Flu Tulang');insert into pemeriksaan values ('R0004','D03','pas004','4-12-2008','Luka Luar');insert into pemeriksaan values ('R0005','D02','pas005','4-12-2008','Thyphus');insert into pemeriksaan values ('R0006','D04','pas005','7-12-2008','Radang tenggorokan');insert into pemeriksaan values ('R0007','D02','pas002','6-11-2008','Batuk');

Page 11: Laporan Praktikum Sbd Akhir

4. Perintah-perintah lain yang digunakan dalam membuat dan memodifikasi tabel antara lain :

. Modifikasi tipe data kolom ALTER TABLE <nama_tabel>

MODIFY <nama_kolom tipe_data_kolom >;. Menambahkan kolom

ALTER TABLE <nama_tabel> ADD <nama_kolom tipe_data_kolom>;. Menghapus satu baris

DELETE FROM <nama_tabel> WHERE <nama_kolom>=<nilai_kolom>;. Mengganti nilai

UPDATE <nama_tabel> SET <nama_kolom1>=<nilai_kolom1>,<nama_kolom2>=<nilai_kolom2>... WHERE <nama_kolom> = <nilai_kolom>;. Mengganti format tanggal, format tanggal default pada sql adalah : YYYY-MM-DD ALTER SESSION SET NLS_DATE_FORMAT="DD-MM-YYYY"

5. Pembuatan Query, secara garis besar terdiri dari tiga kondisi, yaitu seleksi baris, seleksi kolom, dan operasi penggabungan tabel yang dimasukkan dalam seleksi baris. Seleksi kolom dilakukan dengan menggunakan perintah SELECT <nama_kolom_1>, <nama_kolom_2>.. FROM <nama_tabel_1>, <nama_tabel_2>..Seleksi baris dilakukan dengan perintah WHERE <kondisi_baris>, sedangkan operasi join dilakukan dengan operator ‘=’.

6. Disamping itu dapat juga diaplikasikan fungsi agregat (mis. AVG COUNT, MAX, MIN, SUM) untuk melakukan seleksi atau penampilan hasil dengan perhitungan tertentu. Terdapat juga fungsi : GROUP BY, yang digunakan untuk menampilkan data berdasarkan klasifikasi kolom tertentu; IN, untuk menyatakan suatu data termasuk dalam kelompok data tertentu; BETWEEN untuk menyatakan suatu data dalam range tertentu, dan seterusnyaMisalkan untuk menampilkan jumlah pasien yang diperiksa oleh dokter Watson pada tanggal 11 januari 2008 adalah :

SELECT COUNT (DISTINCT (pemeriksaan.id_pasien)) AS jumlah_pasien

FROM dokter, pemeriksaanWHERE dokter.id_dokter=pemeriksaan.id_dokter AND pemeriksaan.tgl=’11-01-2008’ AND dokter.nama=‘Watson’;

Page 12: Laporan Praktikum Sbd Akhir

BAB III : PENUTUP

Penggunaan Sistem Basis Data sangat membantu dalam pengelolaan data dalam jumlah yang besar. Sistem Basis Data memiliki berbagai keunggulan semisal kemampuan untuk menghindari adanya data redudansi dengan menerapkan constraint, keamanan yang lebih terjamin, flexibilitas data, dan lain-lain. Penyajian data dengan menggunakan Query dapat menampilkan data yang dikehendaki sesuai dengan kriteria yang beragam, sehingga sangat memudahkan dalam pengelolaan suatu basis data skala besar.

Perangkat lunak yang digunakan dalam pembuatan basis data sangat banyak dan beragam, meskipun bahasa SQL telah distandarkan oleh ANSI. Perangkat lunak ini menawarkan berbagai fungsi yang berguna dalam manajemen Sistem Basis Data. SMBD bervariasi mulai dari yang berskala kecil untuk menangani data dalam jumlah tidak terlalu besar sampai yang berskala enterprise/perusahaan untuk menangani data dalam jumlah raksasa.

Page 13: Laporan Praktikum Sbd Akhir

BAB III : LAMPIRAN

Pembuatan Tabel Klinik Pelayanan Kesehatan dalam bahasa SQL adalah sebagai berikut:

Tabel-tabel yang tidak mengandung identitas tamu

create table pasien (id_pasien char(10), nama char(30), umur number(5), alamat char(50), constraint pk_pasien primary key(id_pasien));

create table poliklinik (id_poli char(10), nama char(30), constraint pk_poli primary key(id_poli));

create table ruang_dokter (kode_ruang char(10), kapasitas number(5), constraint pk_ruang_dokter primary key(kode_ruang));

create table bangsal (id_bangsal char(10), kapasitas number(5), constraint pk_bangsal primary key(id_bangsal));

create table paviliun (id_paviliun char(10), kapasitas number(5), constraint pk_paviliun primary key(id_paviliun));

create table obat (kode_obat char(10), nama_obat char(30), penyakit char(30), dosis char(10), constraint pk_obat primary key(kode_obat));

@ Tabel-tabel yang mengandung identitas tamu

create table dokter (id_dokter char(10), nama char(30), umur number(5), alamat char(50),

Page 14: Laporan Praktikum Sbd Akhir

kode_ruang char(10), id_poli char(10), constraint pk_dokter primary key(id_dokter), constraint fk_dokter_1 foreign key(kode_ruang) references ruang_dokter(kode_ruang), constraint fk_dokter_2 foreign key(id_poli) references poliklinik(id_poli));

create table pasien_bangsal (id_pasien char(10), id_bangsal char(10), tgl_masuk date, constraint pk_pasien_bangsal primary key(id_pasien), constraint fk_pasien_bangsal_1 foreign key(id_pasien) references pasien(id_pasien), constraint fk_pasien_bangsal_2 foreign key(id_bangsal) references bangsal(id_bangsal));

create table pasien_paviliun (id_pasien char(10), id_paviliun char(10), tgl_masuk date, constraint pk_pasien_paviliun primary key(id_pasien), constraint fk_pasien_paviliun_1 foreign key(id_pasien) references pasien(id_pasien), constraint fk_pasien_paviliun_2 foreign key(id_paviliun) references paviliun(id_paviliun));

create table pemeriksaan (no_registrasi char(10), id_dokter char(10), id_pasien char(10), tgl date, diagnosa char(50), constraint pk_pemeriksaan primary key(no_registrasi), constraint fk_pemeriksaan_1 foreign key(id_dokter) references dokter(id_dokter), constraint fk_pemeriksaan_2 foreign key(id_pasien) references pasien(id_pasien));

create table pemberian_obat (no_registrasi char(10), kode_obat char(10), jumlah number(5), constraint pk_pemberian_obat primary key(no_registrasi,kode_obat), constraint fk_pemberian_obat_1 foreign key(no_registrasi) references pemeriksaan(no_registrasi), constraint fk_pemberian_obat_2 foreign key(kode_obat)

Page 15: Laporan Praktikum Sbd Akhir

references obat(kode_obat));

# pengisian tabel

insert into pasien values ('pas001','Ahmad',30,'Jl. Kaliurang KM 5');insert into pasien values ('pas002','Muhammad',40,'Jl. Godean KM 5');insert into pasien values ('pas003','Musthofa',15,'Pogung Dalangan');insert into pasien values ('pas004','Abul Qasim',25,'Pogung Dalangan');insert into pasien values ('pas005','Muhammad',63,'Sendowo');

insert into poliklinik values ('poli001','Poli Mata');insert into poliklinik values ('poli002','Poli Gigi dan Mulut');insert into poliklinik values ('poli003','Poli THT');insert into poliklinik values ('poli004','Poli Penyakit Dalam');insert into poliklinik values ('poli005','Poli Umum');

insert into ruang_dokter values ('R01',4);insert into ruang_dokter values ('R02',3);insert into ruang_dokter values ('R03',4);insert into ruang_dokter values ('R04',2);insert into ruang_dokter values ('R05',3);

insert into bangsal values ('B01',5);insert into bangsal values ('B02',6);insert into bangsal values ('B03',4);insert into bangsal values ('B04',2);insert into bangsal values ('B05',2);

Page 16: Laporan Praktikum Sbd Akhir

insert into paviliun values ('pav01',10);insert into paviliun values ('pav02',15);insert into paviliun values ('pav03',13);insert into paviliun values ('pav04',16);insert into paviliun values ('pav05',10);

insert into obat values ('obat001','Aspirin','Migrain','50 mg');insert into obat values ('obat002','Ether','Bius Total','44 mg');insert into obat values ('obat003','Penicillin','Luka Luar','5 mg');insert into obat values ('obat004','Vitamin C','Sariawan','100 mg');insert into obat values ('obat005','Chloroform','Bius Lokal','54 mg');

insert into dokter values ('D01','James Watson',34,'Baker Street 221 B','R04','poli005');insert into dokter values ('D02','Ibnu Haytham',54,'Andalusia','R04','poli001');insert into dokter values ('D03','Al Khawarizmi',64,'Spanyol','R03','poli003');insert into dokter values ('D04','Sherlock Holmes',34,'Baker Street 221 B','R04','poli003');insert into dokter values ('D05','Stanley Hopkins',34,'Scotland Yard','R02','poli002');

ALTER SESSION SET NLS_DATE_FORMAT="DD-MM-YYYY"

Pasien_bangsalinsert into pasien_bangsal values ('pas001','B05','12-08-2008');insert into pasien_bangsal values ('pas002','B05','12-11-2008');insert into pasien_bangsal values ('pas003','B02','01-03-2008');insert into pasien_bangsal values ('pas004','B03','12-12-2008');insert into pasien_bangsal values ('pas005','B01','12-12-2008');

Page 17: Laporan Praktikum Sbd Akhir

pasien_paviliuninsert into pasien_paviliun values ('pas001','pav03','13-08-2008');insert into pasien_paviliun values ('pas002','pav02','13-11-2008');insert into pasien_paviliun values ('pas003','pav01','02-03-2008');insert into pasien_paviliun values ('pas004','pav01','13-12-2008');insert into pasien_paviliun values ('pas005','pav01','14-12-2008');

pemeriksaaninsert into pemeriksaan values ('R0001','D04','pas001','4-08-2008','Pilek');insert into pemeriksaan values ('R0002','D01','pas002','3-11-2008','Migrain');insert into pemeriksaan values ('R0003','D05','pas003','29-02-2008','Flu Tulang');insert into pemeriksaan values ('R0004','D03','pas004','4-12-2008','Luka Luar');insert into pemeriksaan values ('R0005','D02','pas005','4-12-2008','Thyphus');insert into pemeriksaan values ('R0006','D04','pas005','7-12-2008','Radang tenggorokan');insert into pemeriksaan values ('R0007','D02','pas002','6-11-2008','Batuk');

pemberian obatinsert into pemeriksaan values ('R0001','obat004',3);insert into pemeriksaan values ('R0002','obat001',1);insert into pemeriksaan values ('R0003','obat002',2);insert into pemeriksaan values ('R0004','obat005',2);insert into pemeriksaan values ('R0005','obat002',4);insert into pemeriksaan values ('R0006','obat003',3);insert into pemeriksaan values ('R0007','obat004',1);

QUERY

a. SELECT pasien.id_pasien, pasien.nama, pasien.alamatFROM pasien, pemeriksaanWHERE pasien.id_pasien=pemeriksaan.id_pasien AND pemeriksaan.tgl = ‘11-01-2008’;

b. SELECT pasien.id_pasien, pasien.nama, pasien.alamatFROM pasien, pemeriksaanWHERE pasien.id_pasien=pemeriksaan.id_pasien AND pemeriksaan.tgl = ‘11-01-2008’ AND pemeriksaan.diagnosa = ‘flu’;

c. SELECT COUNT (DISTINCT (pemeriksaan.id_pasien)) AS jumlah_pasienFROM dokter, pemeriksaanWHERE dokter.id_dokter=pemeriksaan.id_dokter AND pemeriksaan.tgl=’27-01-2008’ AND dokter.nama=‘affandi’;

Page 18: Laporan Praktikum Sbd Akhir

d. SELECT pasien.nama, pasien.umur, MAX(pemeriskaan.tgl) as tgl_terakhirFROM pasien, pemeriksaanWHERE pasien.id_pasien=pemeriksaan.id_pasienGROUP BY pasien.nama, pasien.umur;

e. SELECT dokter.nama, pemeriksaan.tglFROM pemeriksaan, dokterWHERE pemeriksaan.id_dokter=dokter.id_dokter AND pemeriksaan.tgl=(SELECT MAX(tgl) FROM pemeriksaan WHERE id_pasien=‘P08’); f. SELECT pasien.id_pasien, pasien.nama, COUNT(no_reg) AS jumlah_kunjunganFROM pasien, pemeriksaanWHERE pasien.id_pasien=pemeriksaan.id_pasien AND pemeriksaan.tgl BETWEEN ‘1-1-2008’ AND ‘2-6-2008’GROUP BY pasien.id_pasien, pasien.nama;

g. SELECT COUNT(DISTINCT(pasien.id_pasien))FROM pasien,pemeriksaanWHERE pasien.id_pasien=pemeriksaan.id_pasien AND pasien.umur<5;

i. SELECT pasien.nama, pasien.id_pasienFROM pasienWHERE id_pasien not in (SELECT id_pasien FROM pemeriksaan WHERE diagnosa = ‘maag’);

q. SELECT pasien.id_pasien,pasien.nama, COUNT(pemeriksaan.no_reg) as jumlah_kunjunganFROM pemeriksaan, pasienWHERE pasien.id_pasien=pemeriksaan.id_pasienGROUP BY pasien.id_pasien, pasien.namaHAVING COUNT(pemeriksaan.no_reg)= (SELECT MAX(COUNT(no_reg)) FROM pemeriksaan GROUP BY pemeriksaan.id_pasien); r. SELECT jumlah_kunjungan, COUNT (*) AS jumlah_orang FROM (SELECT id_pasien, COUNT(no_reg) AS jumlah_kunjungan FROM pemeriksaan GROUP BY id_pasien)GROUP BY jumlah_kunjungan;