halim42.files.wordpress.com · web viewketika ada seorang petugas baa sedang mengakses data krs di...
TRANSCRIPT
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
UJIAN AKHIR SEMESTER I TAHUN 2012
Mata Ujian : Manajemen Data
Hari/Tanggal : Sabtu / 22 Desember 2012
Dosen : Dr. Ir. Wendi Usino, MSc, MM
Kelompok : XA
Disusun Oleh
Nama : Nurhalim
Nim : 1211600075
Program Pasca Sarjana Magister Ilmu KomputerUniversitas Budi Luhur2012
1
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Jawaban Soal UAS :
1. Desain Sebuah database relasional
Tahapan-Tahapan dalam Normalisasi mulai dari relasi yang belum normal hingga bentuk relasi yang normal yaitu :
Unnormalized
Menghilangkan group berulang sehingga setiap irisana baris dan kolom hanya berisi satu atau hanya satu nilai
Bentuk 1 NF
Menghilangkan partial dependency terhadap primary key, sehingga didapat attribut non primarykey yang fully function dependency primarykey-nya
Bentuk 2 NF
Menghilangkan transitive dependency
Bentuk 3 NF
Jika dan hanya jika setiap determinan merupakan candidate key
BNC
Memindahkan multivalue dependency
Bentuk 4 NF
Memindahkan Remaining anomalies
Bentuk 5 NF
Normal Pertama (1st Normal Form) Yaitu tidak adanya atribut multivalue, atribut komposit atau kombinasinya, mendefinisikan atribut kunci dan setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi). Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data.
2
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Misal data mahasiswa sbb:
Npm Nama Hobi1211600091
Ika Nur’aini Baca, Dengerin musik
1211600083
Fiki Basket, Renang
1211600075
Nurhalim Catur, Bola dan drumer
1211600100
Annisa Baca, Memasak dan Main Biola
Atau :
Npm Nama Hobi 1 Hobi 2 Hobi 3 1211600091
Ika Nur’aini
Baca Musik
1211600083
Fiki Basket Renang
1211600075
Nurhalim Catur Bola Main Drum
1211600100
Annisa Baca Memasak Main Biola
Tabel-tabel di atas tidak memenuhi syarat 1NF Didekomposisi menjadi : Tabel Mahasiswa
Npm Nama 1211600091
Ika Nur’aini
1211600083
Fiki
1211600075
Nurhalim
1211600100
Annisa
3
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Tabel Hobi
Normalisasi Kedua (2nd Normal Form) Yaitu suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap key-nya atau Sudah memenuhi dalam bentuk normal kesatu (1NF) , Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci, jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain dan perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi. Misal data mahasiswa sbb:
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:Mhs_Nrp Mhs_nam
aMhs_alam
atMk_kod
eMk_nam
aMk_sk
snihur
uf
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan:
{Mhs_nrp, mk_kode} à mhs_nama {Mhs_nrp, mk_kode} à mhs_alamat {Mhs_nrp, mk_kode} à mk_nama {Mhs_nrp, mk_kode} à mk_sks
4
Npm Hobi 1211600091
Baca, Dengerin Musik
1211600083
Basket, Renang
1211600075
Catur, Bola dan Main Drumer
1211600100
Baca, Memasak dan Main Biola
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
{Mhs_nrp, mk_kode} à nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF. Functional dependencynya sbb: {Mhs_nrp, mk_kode} à nihuruf
(fd1)Mhs_nrp à {mhs_nama, mhs_alamat}
(fd2)Mk_kode à {mk_nama, mk_sks}
(fd3)
fd1 (mhs_nrp, mk_kode, nihuruf) à Tabel Nilai fd2 (Mhs_nrp, mhs_nama, mhs_alamat) à Tabel Mahasiswa fd3 (mk_kode, mk_nama, mk_sks) à Tabel MataKuliah
Normalisasi Ketiga (3rd Normal Form)Yaitu suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap key-nya. Misal data mahasiswa sbb: Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:Mahasiswa
Nrp
Nama Alm_Jl Alm_Kota
Alm_Provinsi
Alm_KodePos
karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
alm_kodepos à {alm_Provinsi, alm_kota} Sehingga tabel tersebut perlu didekomposisi menjadi:
5
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Boyce-Codd Normal Form ( BCNF)BCNF mempunyai paksaan yg lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF, relasi harus dalam bentuk normal kesatu dan setiap atribute harus bergantung fungsi pada atribute superkeyPada contoh di bawah ini terdapat relasi seminar dengan ketentuan sbb :kunci primer adalah Npm + Mk_kode. a. Siswa boleh mengambil satu atau dua Mk_kode
pelajaran.b. Setiap siswa dibimbing oleh salah satu diantara 2
guru.c. Setiap guru hanya boleh mengambil satu Mk_kode
pelajaran saja.
Pada contoh ini Npm dan Mk_Kode menunjuk seorang Guru di relasi kuliah : Relasi Kuliah
Npm Mk_kode
Guru
1211600091
CS209 Ir. Dana Indra Sensuse, Ph.D
1211600075
CS209 Goenawan Brotosaputro, S.Kom, Msc
1211600083
CS201 Dr. Ir. Wendi Usino, Msc, MM
6
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
1211600075
CS201 Yan Rianto
Bentuk relasi kuliah adalah bentuk normal ketiga, tetapi tidak BCNF karena nomor seminar masih bergantung fungsi pada guru, jika setiap guru dapat mengajar hanya pada satu Mk_kode /materi pelajaran kuliah. Mk_kode bergantung fungsi pada satu atribute bukan superkey seperti yg disyaratkan oleh BCNF. Maka relasi kuliah haruslah dipecah menjadi dua yaitu :
Relasi Pengajar
Guru Mk_kode
Ir. Dana Indra Sensuse, Ph.D CS209Goenawan Brotosaputro, S.Kom, Msc
CS209
Dr. Ir. Wendi Usino, Msc, MM CS201
Guru NpmIr. Dana Indra Sensuse, Ph.D 12116000
91Goenawan Brotosaputro, S.Kom, Msc
1211600075
Dr. Ir. Wendi Usino, Msc, MM 1211600083
Yan Rianto 1211600075
7
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Bentuk Normal Ke Empat (4 NF)Relasi R adalah bentuk 4 NF jika dan hanya jika relasi tersebut juga termasuk BCNF dan semua ketergantungan multivalue adalah juga ketergantungan fungsional.
Bentuk Normal Ke Lima (5 NF)Disebut juga PJNF (Projection Join Normal Form) dari 4 NF dilakukan dengan menghilangkan ketergantungan join yang bukan merupakan kunci kandidat.
Istilah-Istilah yang digunakan pada tahapan Normalisasi, yaitu : a. Primary Key adalah atribut unik yang mengidentifikasikan setiap
row dalam table atau Candidate Key yang terpilih untuk mengidentifikasikan secara unik suatu entitas.
b. Foreign key adalah sebuah atribut atau set dari atribut, yang berada dalam suatu relasi yang serasi dengan Candidate Key dari relasi yang lain. Atribut sebuah table yang menggabungkan diri ketable yang lain.
c. Composite key adalah Candidate Key yang terdiri dari dua atribut atau lebih.
d. Refential integrity constraint adalah suatu aturan terhadap relasi antar tabel untuk menjamin validasi hubungan antara record-record didalam tabel-tabel yang terkait. Data secara otomatis akan memastikan relasi tersebut ada atau tidaknya record pada sisi Many (tabel yang terhubung dengan tabel Utama ) yang foregn key nya tidak memiliki pasangan ditabel sisi One (Tabel Utama).
e. Anomali adalah sebuah kondisi dimana sebuah object memiliki nilai yang unik atau memiliki perbedaan nilai yang sangat jauh dari aturan yang ditetapkan.
f. Repeating group adalah satu set atau lebih data yang dapat muncul berkali-kali dalam jumlah yang bervariasi.
8
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
g. Functional dependency adalah constraint pada himpunan legal relation, mensyaratkan nilai untuk himpunan atribut tertentu menentukan nilai himpunan atribut lainnya secara unik d merupakan generalisasi konsep key
h. Partial dependency adalah Suatu atribut Y dikatakan memiliki dependensi parsial terhadap X apabila memenuhi dua kondisi sebagai berikut:Y adalah atribut non-kunci primer dan X adalah kunci primerY memiliki dependensi terhadap bagian dari X
(tetapi tidak terhadap keseluruhan dari X) i. Transitive dependency adalah ketika ada atribut yang secara
tidak langsung tergantung sama key dan atribut stb tergantung pada atribut lain yang bukan key.
2. Concurrency C ontrol Tujuan utama dalam pengembangan database adalah membuat banyak pengguna bisa mengakses data secara bersamaan.Pengaksesan data ini tidak bermasalah jika semua pengguna hanya membaca data dan mereka tidak mengganggu satu sama lain. Tap iketika dua pengguna atau lebih mengakses database yang sama secara bersamaan dan salah satu melakukan perubahan terhadap data, maka hal ini akan dapat menimbulkan adanya data yang tidak konsisten (inconsistency data).
Untuk mengatasi adanya kemungkinan inconsistency data, maka dibutuhkan adanya suatu mekanisme yang mengatur jalannya transaksi pengaksesan data yang sama tersebut. Mekanisme ini dikenal dengan istilah concurrency control.
Concurrency control adalah proses pengaturan operasi–operasi dalam banyak transaksi yang berjalan secara simultan pada database tanpa mengganggu operasi pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten ( Connolly, 2005, p577 ). Tiga contoh masalah penting yang terkait oleh concurrency
9
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Lost Update => permasalahan timbul pada saat operasi update berjalan sukses kemudian ditindih oleh operasi update lain yang dilakukan oleh pemakai lain.Uncommited Depedency => permasalahan timbul pada saat transaksi sibiarkan melihat hasil dari transaksi lain yang belum commit. Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).Inconsistent Analysis => permasalahan timbul apabila suatu transaksi membaca beberapa nilai tetapi transaksi berikutnya memodifikasi salah satu nilai.
Contoh 1 : Ketika ada seorang petugas BAA sedang mengakses data KRS di kampus pada table Matakuliah untuk melihat mata kuliah yang sedang diambil mahasiswa dengan dosen yang akam mengajar matakuliah tersebut, sementara pada saat bersamaan petugas BAA lain sedang merubah data yang sama pada table KRS mahasiswa tersebut akibatnya akan terjadi object locking (object hold) sehingga data menjadi tidak inconsistent, Ini akan mengakibatkan data tidak konsisten karena masalah lost-update, Uncommitted Depedency ataupun Inconsistent Analysis.Contoh lain :Transaksi T1 dan T2 mulai pada waktu yang hampir bersamaan, dan keduanya membaca saldo $100. T2 menambah saldo $100 menjadi $200 dan menyimpan hasil perubahannya dalam database. Di sisi lain, transaksi T1 mengurangi copy dari saldo $10 menjadi $90 dan menyimpan nilai ini dalam database, menimpa hasil update sebelumnya dan akhirnya menghilangkan $100 yang telah ditambahkan sebelumnya kedalam saldo. Kehilangan update transaksi T2 dapat dihindari dengan mencegah T1 membaca nilai dari saldo sampai update T2 telah selesai.
10
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Masalah ini bisa diatasi dengan menggunakan concurrency control technical mechanism menggunakan locking dan time stamping. Locking dan timestamping adalah pendekatan konservatif karena mereka menyebabkan transaksi ditunda dalam kasus mereka konflik dengan transaksi lain pada beberapa waktu di masa yang akan datang. Metode optimistik, didasarkan pada premis bahwa konflik itu jarang ditemui, jadi mereka mengijinkan transaksi untuk lanjut tidak tersinkronisasi dan hanya mengecek konflik di bagian akhir, ketika transaksi melakukan operasi commit.
Metode LockingLocking adalah sebuah prosedur yang digunakan untuk mengendalikan akses bersamaan ke data. Ketika sebuah transaksi sedang mengakses database, sebuah lock mungkin menolak akses ke transaksi lain untuk mencegah hasil yang salah ( Connolly, 2005, p587 ). Ada dua macam lock, yaitu shared lock dan exclusive lock yang harus digunakan sebelum melakukan akses membaca ataupun menulis terhadap database. Penggunaan lock ini adalah untuk menjaga konsistensi data didalam database. Jika sebuah transaksi mempunyai sebuah shared lock pada sebuah item data, transaksi tersebut dapat membaca item tapi tidak dapat mengubah datanya ( Connolly, 2005, p588 ). Jika sebuah transaksi mempunyai sebuah exclusive lock pada sebuah item data, transaksi tersebut dapat membaca dan mengubah item data ( Connolly, 2005, p588 ). Teknik Pengontrolan Konkurensi
Locking, apabila suatu transaksi mengakses suatu data maka suatu lock (kunci) dapat mencegah pengaksesan oleh transaksi lain.Konsep dasar: ketika suatu transaksi memerlukan jaminan jika record yang diingini tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut.Fungsi Kunci (Lock):menjaga record tersebut agar tidak dimodifikasi transaksi lain.
11
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Timestamping DEADLOCK adalah situasi dimana dua atau lebih transaksi masing-masing menunggu (wait) suatu kunci yang ditahan oleh transaksi lain untuk dilepaskan. Dua teknik menangani Deadlock:Deadlock Prevention, DBMS mengamati transaksi apakah menimbulkan deadlock dan tidak akan membiarkan deadlock terjadi.Deadlock prevention dan recovery, DBMS membiarkan terjadi deadlock, mengenalinya lalu menanganinya.
3. Proyek Aplikasi database Program aplikasi SMS Gateway dan sebuah Mobile Application
yang nantinya di-install pada handphone siswa atau wali siswa, Mobile Application ini hanya sebagai aplikasi pendukung untuk proses pengiriman SMS request, Mobile Application akan mempermudah siswa atau wali siswa untuk mendapatkan informasi yang diinginkan, siswa atau wali siswa tidak perlu lagi repot-repot mengetik SMS untuk memperoleh informasi yang diinginkan, tetapi cukup hanya dengan memilih menu-menu yang tersedia didalamnya. Keuntungan yang didapatkan jika menggunakan kedua aplikasi ini adalah mempermudah serta membuat lebih efisien dan efektif dalam hal penerimaan maupun pengiriman informasi melalui SMS.
Informasi penting bagi siswa atau wali siswa yang terkait dengan kegiatan belajar mengajar di sekolah seperti informasi nilai, jadwal ujian, absensi siswa atau lainnya biasanya diperoleh saat pihak sekolah sudah mengumumkannya, dan informasi tersebut bisa diperoleh hanya di sekolah saja. Artinya, akan sulit bagi para siswa atau wali siswa untuk memperoleh informasi yang diinginkan pada saat kapanpun dan di manapun. Masalah lain yang ditemukan adalah sulitnya para orang tua atau wali siswa untuk mengetahui secara detil bagaimana prestasi dan prilaku anaknya selama di sekolah. Selama ini para orang tua atau wali siswa memperoleh informasi tentang putra-putri mereka sebatas hanya pada saat pembagian laporan hasil belajar saja.
12
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
System Database mobile application adalah yang pertama kali ditampilkan saat aplikasi dijalankan pada handphone atau perangkat mobile lainnya. Pertama kali tampilkan menu utama kemudian akan muncul beberapa pilihan menu yang dapat dipilih oleh user. Menu yang tersedia diantaranya adalah Registrasi, Wali Siswa dan Siswa, Saran/Kritik, Ganti No. Ponsel, Unregistrasi, dan No. Ponsel Sekolah. Jika memilih salah satu menu tersebut maka akan ditampilkan form dari menu yang dipilih tersebut. Untuk keluar dari aplikasi, user dapat memilih ‘Keluar’.
Flowchart Form Menu Utama
13
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
a. Analisa database Model E-R
14
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
b. Arsitektur Database ( Transformasi Model E-R Menjadi Relational Database berbentuk Arsitektur Database )
15
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Pemetaan Model ER ke Skema Relasional
16
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
c. Physical Database
17
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Table Siswa Create table Siswa (NIS char(4), Nama varchar(25), TempatLhr varchar(10), TglLhr date, Agama char(1), Jenkel char(1), Alamat varchar (35), NoTelp varchar(12), Status char(1), Password varchar(25), KdKelas varchar(4), Jurusan char(1), primary key(NIS));
INSERT INTO Siswa VALUES (0074”,”Fiki”,”Bogor”,”14/05/1980”,”1”,”L”,”Jl. Bogor No.85","085811514642","1”,”123456","PM1","PM");INSERT INTO Siswa VALUES ("0075","Nurhalim","Tangerang","18/02/1978”,”1","L","Jl. Ketapang Rt.004/004 No.71","085697151464","1","123456","XAK2","AK");INSERT INTO Siswa VALUES ("0076","Nurhalim","Jakarta","23/03/1979”,”1","L","Jl. Thamrin Raya Rt.023/003 No.33","081219643434","1","123456","XAK2","AK");INSERT INTO Siswa VALUES ("0091","Ika","Tangerang","22/03/1978”,”1","L","Jl. Pondok Aren No.45","085781001234","1","123456","XAK1","AK");
Table Guru
18
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
Create table Guru (NIP char(9), Nama varchar(25), TmptLhr varchar(10), TglLhr date, Jenkel char(1), Alamat varchar (35), primary key(NIP));
INSERT INTO GuruVALUES ("470064301","Asep","Tangerang","1964-02-12","L","Tangerang Banten");INSERT INTO GuruVALUES ("470064302","Rudi","Tangerang","1978-02-18","L","Jl. Ketapang Rt.004/004 No.71");INSERT INTO GuruVALUES ("470064303","Oktaviana","Tangerang", "1970-11-16","P","Tangerang Selatan");INSERT INTO GuruVALUES ("470064304","Halim","Jakarta","1979-03-13","P","Jakarta");
Table Wali KelasCreate table WaliKelas (NIP char(9), Nama varchar(25), TmptLhr varchar(10), TglLhr date/time, Jenkel char(1), Alamat varchar (35), primary key(NIP));
INSERT INTO WAliKelasVALUES ("470064301","Asep","Tangerang","1964-02-12","L","Tangerang Banten");INSERT INTO WAliKelasVALUES ("470064302","Rudi","Tangerang","1978-02-18","L","Jl. Ketapang Rt.004/004 No.71");INSERT INTO WAliKelasVALUES ("470064303","Oktaviana","Tangerang", "1970-11-16","P","Tangerang Selatan");
Table Jurusan Create table Jurusan (KdJurusan char(2), Jurusan varchar(25), primary key(KdJurusan));
INSERT INTO Jurusan VALUES ("AK","Akuntansi");INSERT INTO Jurusan VALUES ("PM","Pemasaran");INSERT INTO Jurusan VALUES ("AP","Administrasi Perkantoran");INSERT INTO Jurusan VALUES ("BC","Broadcasting");
Table Kelas Create table Kelas (KdKelas char(4), NamaKelas varchar(25), Ruang varchar(4), Kapasitas char(3), Nip char(9), primary key(KdKelas));
Insert into Kelas Values ("XAK2","X Akuntansi 1","1.1","470064302","40"); Table Pelajaran
Create table Pelajaran (KdPelajaran char(5), NmPelajaran char(50), Singkatan char(10), primary key(KdPelajaran));
INSERT INTO Pelajaran VALUES ("PL0001", " B. Inggris","Eng");INSERT INTO Pelajaran VALUES ("PL0002", "Matematika", "MTK");INSERT INTO Pelajaran VALUES ("PL0003", "Biologi", "Bio”);INSERT INTO Pelajaran VALUES ("PL0004”, "Sosiologi", "Sos");INSERT INTO Pelajaran VALUES ("PL0005", "Mengelola Buku Jurnal Perusahaan Dagang", "MBJPD");
19
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
INSERT INTO Pelajaran VALUES ("PL0006", "Mengelola Buku Jurnal Perusahaan Jasa", "MBJPJ");
Table UjianCreate table Ujian (KdUjian char(6), KdPelajaran char(6), Kelas char(4), Tgl date, NIS char(4), Durasi char(3), MulaiJam varchar(8), SelesaiJam varchar(8), Jenis varchar(6), ThnAjaran varchar(9), Semester char(1), primary key(KdUjian));
Insert into Ujian Values (“UJ0001”,”PL0001”,”XAK”,”0075”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0002”,”PL0002”,”XAK1”,”0091”,”02/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0003”,”PL0003”,”XAK2”,”0075”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0004”,”PL0004”,”XAK2”,”0075”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0005”,”PL0005”,”XAK2”,”0075”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0006”,”PL0002”,”XPM1”,”0074”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0007”,”PL0002”,”XAK1”,”0091”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);Insert into Ujian Values (“UJ0008”,”PL0002”,”XAK2”,”0076”,”01/06/2012”,”120”,”08:00”, ”10:00”,”Mid”,”2011/2012”,”1”);
Table NilaiCreate table Nilai (KdNilai Char(6), KdUjian char(6), NIS char(4), Nilai Number(longint), primary key (KdNilai));
Insert into Nilai Values (“N00001”,”UJ0001”,”0075”,”80”);Insert into Nilai Values (“N00002”,”UJ0007”,”0091”,”65”);Insert into Nilai Values (“N00003”,”UJ0002”,”0091”,”90”);Insert into Nilai Values (“N00004”,”UJ0005”,”0075”,”88”);Insert into Nilai Values (“N00005”,”UJ0003”,”0075”,”90”);Insert into Nilai Values (“N00006”,”UJ0004”,”0075”,”75”);Insert into Nilai Values (“N00007”,”UJ0006”,”0074”,”75”);Insert into Nilai Values (“N00008”,”UJ0008”,”0076”,”85”);
20
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
d. SQL dengan 4 Relasi Tabel
contoh query untuk mencari siswa yang ikut ujian mata pelajaran dapat nilai matematika > 70 SQL CommercialSELECT Siswa.NIS, Siswa.KdKelas, Siswa.Nama, Siswa.Alamat, Pelajaran.NmPelajaran, nilai.NilaiFROM Pelajaran INNER JOIN (Siswa INNER JOIN (nilai INNER JOIN Ujian ON (nilai.KdUjian = Ujian.KdUjian) AND (nilai.NIS = Ujian.NIS)) ON (Siswa.NIS = nilai.NIS) AND (Siswa.NIS = Ujian.NIS)) ON Pelajaran.KdPelajaran = Ujian.KdPelajaranWHERE (((Pelajaran.NmPelajaran)="Matematika") AND ((nilai.Nilai)>70));
Hasilnya :
NIS KdKelas Nama Alamat NmPelajaran Nilai
0091 XAK1 Ika Jl. Pondok Aren No.45 Matematika 90
0074 XPM1 Fiki Jl. Bogor No.85 Matematika 75
0076 XAK2 Nurhalim Jl. Thamrin Rt.023/003 No.33 Matematika 85
Relation Algebra :
ÕSiswa.NIS, Siswa.Nama , Siswa.Alamat, Siswa.KdKelas, Pelajaran.NmPelajaran,Nilai.Nilai ( sPelajaran.NmPelajaran=”Matematika” ^ Nilai.Nilai >70 ( Ujian X (Nilai X ( Pelajaran X Siswa ))))
Relation Tuple Calculus :
{ s|$ t Î Siswa ( s[NIS], s[Nama], s[Alamat], s[KdKelas] ^ $ p Î Pelajaran ( p[NmPelajaran], p[NmPelajaran] = ”Matematika” ^ $ n Î Nilai ( n[Nilai], n[Nilai] > 70 ^ n[NIS] = s[NIS] ^ $ u Î Ujian ( u[KdUjian] = n[KdUjian] ^ u[KdPelajaran] = p[KdPelajaran] ^ u[NIS] = s[NIS] )))) }
21
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
e. SQL dengan 5 Relasi Tabel
contoh query untuk mencari siswa yang memiliki nilai ujian pelajaran pada jurusan akuntansi yang ikut ujian di semeseter 1 SQL CommercialSELECT Siswa.NIS, Siswa.Nama, Siswa.Alamat, Jurusan.Jurusan, nilai.Nilai, Ujian.Semester, Ujian.Jenis, Ujian.Tgl_Ujian, Pelajaran.NmPelajaranFROM Pelajaran INNER JOIN ((Siswa INNER JOIN Jurusan ON Siswa.Kd_Jurusan = Jurusan.KdJurusan) INNER JOIN (nilai INNER JOIN Ujian ON (nilai.KdUjian = Ujian.KdUjian) AND (nilai.NIS = Ujian.NIS)) ON Siswa.NIS = Ujian.NIS) ON Pelajaran.KdPelajaran = Ujian.KdPelajaranWHERE (((Jurusan.Jurusan)="Akuntansi") AND ((Ujian.Semester)="1") AND ((Ujian.Tgl_Ujian)=#01/06/2012#));
Hasilnya :
NIS Nama Alamat Jurusan Nilai Semester Jenis Tgl_Ujian NmPelajaran
0075 Nurhalim Jl. Ketapang Rt.004/004 No.71 Akuntansi 80 1 Mid 01/06/2012 B. Inggris
0075 Nurhalim Jl. Ketapang Rt.004/004 No.71 Akuntansi 90 1 Mid 01/06/2012 Biologi
0075 Nurhalim Jl. Ketapang Rt.004/004 No.71 Akuntansi 75 1 Mid 01/06/2012 Sosiologi
0075 Nurhalim Jl. Ketapang Rt.004/004 No.71 Akuntansi 88 1 Mid 01/06/2012 Mengelola Buku Jurnal Perusahaan Dagang
0091 Ika Jl. Pondok Aren No.45 Akuntansi 65 1 Mid 01/06/2012 Matematika
0076 Nurhalim Jl. Thamrin Rt.023/003 No.33 Akuntansi 85 1 Mid 01/06/2012 Matematika
Relation Algebra :
ÕSiswa.NIS, Siswa.Nama , Siswa.Alamat, Jurusan.Jurusan, Nilai.Nilai, Ujian.Semester, Ujian.Jenis, Ujian.Tgl_Ujian, Pelajaran.NmPelajaran ( sJurusan.Jurusan=”Akuntanis” ^ Ujian.Semester = 1 ^ Ujian.Tgl_Ujian = ”01/06/2012” ( Ujian X (Nilai X ( Jurusan X ( Pelajaran X Siswa ))))
Relation Tuple Calculus :
{ s|$ t Î Siswa ( s[NIS], s[Nama], s[Alamat] ^$ j Î Jurusan ( j[Jurusan], j[KdJurusan] = s[KdJurusan] ^
j[Jurusan]=”Akuntansi” ^$ n Î Nilai ( n[Nilai], n[NIS] = s[NIS] ^ $ u Î Ujian ( u[Semester], u[Jenis], u[Tgl_Ujian],
n[Tgl_Ujian] = “01/06/2012” ^ u[Semester] = 1 ^ u[KdUjian] = n[KdUjian] ^ u[NIS] = s[NIS] ^
22
Ujian Akhir Semester 1 Tahun 2012 Nurhalim / 1211600075
$ p Î Pelajaran ( p[NmPelajaran], p[KdPelajaran] = u[KdPelajaran] ))))) }
23