Mata kuliah SKS Moda kuliah Tugas Sifat Tugas Dosen : : : : : : Sistem Basis Data 3 sks E-Learning PROJEK SISTEM BASIS DATA Kelompok Dr. Devi Fitrianah, S.Kom., MTI Lembar tugas ini akan menjelaskan tatacara pelaksanaan tugas, luaran tugas sampai dengan penilaiannya. Tugas projek Sistem Basis Data terdiri dari 5 studi kasus. Setiap studi kasus diselesaikan oleh 1 atau lebih kelompok (lihat pembagian soal dengan kelompok). Setiap studi kasus diselesaikan dengan beberapa bagian, dimana setiap bagian harus dipresentasikan dalam ASISTENSI. Terdapat 3 bagian yang harus diselesaikan oleh setiap kelompok. Bagian 1: Pemahaman soal studi kasus. (Nilai penuh 50 dan berkontribusi 10%) Bagian 2: (A). Pembuatan Entitas serta atribut & (B). Kueri dengan aljabar relasional dan kalkulus relasional (Nilai penuh 100 dan berkontribusi 10%) Bagian 3: (A). ERD (Logical data model dan fisikal data model), (B). Pembuatan tabelnya dengan DDL, (C). Query dengan DML (Nilai penuh 150 dan berkontribusi 10%) PETUNJUK PENGERJAAN Bagian 1: Anda diminta untuk memahami soal cerita dengan menunjukkan proses bisnis serta entitas yang ada. (tuliskan dalam slide presentasi) Bagian 2: Anda diminta untuk menunjukkan entitas-entitas yang ada beserta atributnya. Setelah itu dari 4 query yang ada, anda diminta untuk menuliskannya dalam Aljabar relasional dan kalkulus relasional. (tuliskan dalam slide presentasi) Bagian 3: Dari soal cerita anda diminta untuk membuat ERD (logical dan fisikal modelnya). Buat diagramnya dengan bantuan software diagram seperti VISIO atau lainnya. Logical model: Specify all entities. Find attributes for each entity. Specify primary keys for all entities. Find the relationships between different entities. Resolve many-to-many relationships. Perform normalization. Fisikal model: Convert entities into tables. Convert relationships into foreign keys. Convert attributes into columns. Modify the physical data model based on physical constraints/requirements. Setelah selesai dengan ERD, anda lanjutkan dengan membuat dan mendefiniskan table-tabelnya yang diperlukan. Gunakan Oracle. Screenshot scriptnya dan screenshot hasilnya. Masukan kedalam file DOC. Selanjutnya adalah mengimplementasikan query dengan menggunakan DML. Gunakan Oracle. Screenshot scriptnya dan screenshot hasilnya. Masukan kedalam file DOC. SOAL STUDI KASUS 1 UNIVERSITAS ANDALAN BANGSA UNIVERSITAS ANDALAN BANGSA adalah lembaga besar dengan beberapa kampus. Setiap kampus memiliki nama yang berbeda, alamat, jarak ke pusat kota dan satu-satunya bus berjalan ke kampus. Setiap kampus memiliki satu klub. Nama klub, bangunan di mana klub tersebut berada, nomor telepon klub dan beberapa olahraga yang menawarkan klub, semua harus dicatat. Universitas ini terdiri dari sejumlah fakultas, seperti Fakultas Seni, Fakultas Ilmu Pengetahuan, dan sebagainya. Masing-masing fakultas memiliki nama, dekan dan nama bangunan. Sebuah fakultas dapat dibagi menjadi sejumlah departemen, misalnya, Fakultas Ilmu Pengetahuan memiliki Departmen Fisika dan Departemen Kimia. Setiap Departemen memiliki salah satu fakultas saja dan terletak hanya pada satu kampus, tapi satu kampus mungkin punya lokasi banyak departemen. Setiap departemen memiliki nama dan sebuah bangunan diperuntukan untuk kuliah. Setiap departemen menawarkan program kuliah yang berbeda dan masing-masing program kuliah dapat ditawarkan oleh satu departemen. Setiap matakuliah memiliki kode, judul, semester dan durasi. Setiap program kuliah terdiri dari beberapa matakuliah, dimana setiap matakuliah yang berbeda berasal dari program yang berbeda. Setiap matakuliah memiliki kode dan tentu saja judul yang unik. Beberapa matakuliah memiliki satu atau lebih matakuliah prasyarat dan satu saja bisa saja prasyarat beberapa program lainnya. Setiap mahasiswa yang terdaftar dalam satu departemen saja dimana ada kuliah wajib dan kuliah pilihan. Setiap mahasiswa mendapatkan tugas dan penilaian dari masing-masing matakuliah yang diambilnya. Jika ada matakuliah yang tidak lulus, maka mahasiswa wajib mengambil kembali. Setiap siswa memiliki ID unik. Sistem ini juga menyimpan nama siswa, tanggal lahir dan tahun Angkatan kuliah. Kampus mempekerjakan dosen untuk mengajar para mahasiswa. Seorang dosen diperbolehkan untuk bekerja pada satu departemen saja. Setiap dosen diberikan sebuah ID yang unik di seluruh universitas. Sistem ini membuat dosen nama, judul dan ruang kantor. Seorang KaDep (kepala departemen) mungkin bertanggung jawab atas beberapa dosen, seorang dosen berkewajiban me satu Kadep. Seorang dosen dapat mengajar banyak program yang berbeda. Sebuah matakuliah mungkin juga telah diajarkan oleh banyak dosen yang berbeda. Universitas ini tediri dari unit-unit yang ada dibawah rektorat/direktorat serta dibawah fakultas. Setiap unit ini melakukan rapat pimpinan dan rapat-rapat dibawah fakultas untuk koordinasi. Rapat diadakan secara teratur dan bisa saja seorang dosen menjabat sebagai kepala dari unit-unit, direktur, dekan atau unit2 dibawah fakultas seperti wakil dekan, kepala departemen dan sekretaris departemen. QUERY 1. Tampilkan semua departemen yang ada di kampus Jakarta dan urutkan hasil pencarian berdasarkan nama departemennya 2. Tampilkan nama dosen yang tidak menjabat sebagai pimpinan 3. Tampilkan nama dosen beserta nama kuliah yang diajar 4. Tampilkan 5 matakuliah dengan jumlah mahasiswa terbanyak SOAL STUDI KASUS 2 RESERVASI GLOBAL BUANA Ada 6 penerbangan yang berbeda di 6 negara yang berbeda: Kanada - AirCan, USA - USAir, UK - BritAir, Prancis - AirFrance, Jerman - LuftAir, Italia - ItalAir. penerbangan mereka melibatkan 12 kota berikut: Toronto dan Montreal di Kanada, New York dan Chicago di Amerika Serikat, London dan Edinburgh di Inggris, Paris dan Nice di Perancis, Bonn dan Berlin di Jerman, Roma dan Naples di Italia. Pada masing-masing 12 kota, ada satu kantor pemesanan tunggal. Setiap penerbangan memiliki nomor unik penerbangan, kode jalur udara, indikator kelas bisnis, indikator boleh merokok. Ketersediaan jadwal penerbangan memiliki nomor penerbangan, tanggal + waktu keberangkatan, jumlah total kursi yang tersedia di kelas bisnis, jumlah kursi dipesan di kelas bisnis, jumlah total kursi yang tersedia di kelas ekonomi, dan jumlah kursi dipesan di kelas ekonomi. Para pelanggan dapat berasal dari negara manapun, bukan hanya 6 negara yang disebutkan di atas, dan dari setiap provinsi / negara, maupun dari setiap kota. Pelanggan memiliki nama depan & belakang, alamat, beberapa nomor telepon atau tidak sama sekali, beberapa nomor fax atau tidak sama sekali, beberapa alamat email atau tidak sama sekali. Alamat surat terdiri dari jalan, kota, provinsi atau negara bagian, kode pos dan negara. telepon / nomor fax memiliki kode negara, kode area dan nomor lokal. Alamat email hanya terdiri satu string, dan tidak ada struktur diasumsikan. Pelanggan bisa memesan satu atau lebih penerbangan. Dua atau lebih pelanggan mungkin memiliki alamat yang sama dan / atau nomor telepon yang sama dan / atau nomor fax yang sama. Tapi alamat email diharuskan unik untuk setiap pelanggan. nama pertama dan terakhir tidak harus unik. Pemesanan memiliki nomor pemesanan yang unik, kota pemesanan, tanggal pemesanan, nomor penerbangan, tanggal + waktu keberangkatan (dalam waktu setempat, dan waktu selalu di jam dan menit), tanggal + waktu kedatangan (dalam waktu setempat), indikator kelas, total harga (. pajak bandara asal + airport tax di tujuan + harga penerbangan - dalam mata uang lokal harga penerbangan kelas bisnis adalah 1,5 kali dari harga penerbangan yang terdaftar), indikator status (ada tiga jenis indikator status: (1) Dipesan; (2) Dibatalkan.- pelanggan membatalkan pemesanan; (3) Hutang- pelanggan belum membayar penuh 30 hari sebelum keberangkatan), pelanggan yang bertanggung jawab untuk pembayaran, jumlah-bayar (dalam mata uang lokal), saldo (dalam mata uang lokal) , nama pertama & terakhir yang akan dicetak pada tiket. Pajak bandara harus disimpan dalam mata uang lokal (misalnya Dollar Kanada, Dollar AS, Pounds Britain, Perancis Franc, Jerman Marks, dan Italia Lira). Karena nilai tukar berubah setiap hari, mereka juga harus disimpan untuk perhitungan dari semua harga yang terlibat. Meskipun Perancis, Jerman, dan Italia telah memiliki mata uang bersama untuk sementara waktu, kami menggunakan nama-nama mata uang asli mereka untuk terlibat dalam ini nilai tukar mata uang latihan dan perubahan mereka. QUERY 1. Tampilkan semua pelanggan yang tinggal di Indonesia dan urutkan berdasarkan nama depan 2. Tampikan nama pelanggan yang sudah melakukan booking, nama yang sama ditampilkan hanya sekali 3. Tampilkan semua penerbangan antara New York (kode bandara: JFK) dan London (kode bandara: LHR), tampilkan no_penerbangan, asal, tujuan, waktu_berangkat, waktu ketibaan, urutkan berdasarkan no_penerbangan. 4. Tampilkan semua booking yang dicancel. Tampilkan no_booking, id_pelanggan, no_penerbangan, asal, tujuan, kelas, status dan kota booking. Urutkan berdasarkan no_booking, id_pelanggan dan no_penerbangan SOAL STUDI KASUS 3 COZY RENTAL VIDEO Ada beberapa film yang disewakan di toko-toko dan ada beberapa toko yang tersebar dibeberapa lokasi. Setiap toko memiliki distributor yang unik yang memasok toko dengan kaset. Seorang distributor dapat menyediakan kaset lebih dari satu toko. Setiap distributor memiliki nama, alamat, dan nomor telepon. Setiap toko memiliki nama, alamat, dan nomor telepon. Untuk setiap karyawan informasi berikut harus ada: toko tempat karyawan bekerja, nama, supervisor, alamat, nomor telepon, NO BPJS dan tanggal ketika karyawan dipekerjakan. Untuk setiap pelanggan informasi berikut harus ada: nama, alamat, dan nomor telepon (jika ada). Untuk setiap penyewaan, kita harus merekam informasi nama karyawan yang melayani, judul film dan nomor kopian kasetnya, pembayaran, tanggal dan waktu peminjaman, status peminjaman (disewa, telat dikembalikan, dikembalikan sesuai), harga sewa beserta tanggal dikembalikan dan harga denda. Untuk informasi pembayaran, data yang disimpan adalah karyawan menerima pembayaran (tidak harus menjadi karyawan yang sama yang melayani penyewaan rekaman itu), jenis pembayaran (yaitu uang tunai, cek, kartu kredit, debit langsung untuk setiap jenis Anda harus menyediakan informasi yang relevan untuk disimpan, nomor misalnya kartu kredit jika kartu kredit yang digunakan), jumlah pembayaran, tanggal + waktu pembayaran, status pembayaran (selesai jika tunai atau uang telah diterima, disetujui jika debit atau kredit kartu melalui, pending jika cek belum dikliring). Tentang setiap kopi rekaman kita harus menyimpan informasi kondisi rekaman itu dan film apa. Tentang setiap film kita harus menyimpan judulnya, nama sutradara, deskripsi sederhana, nama bintang utama (single), rating film (bernilai 1-5). QUERY 1. Tampilkan semua pelanggan yang tinggal di Bandung, tampilkan no_pelanggan dan Namanya 2. Tampilkan total kopi film yang dipinjam dari setiap toko, urutkan berdasarkan id_toko 3. Tampilkan nama pelanggan yang tidak meminjam kopi film apapun, urutkan berdasarkan id_pelanggan 4. Tampilkan 5 pelanggan dengan pembayaran tertinggi dan urutkan berdasarkan jumlah pembayaran secara descending SOAL STUDI KASUS 4 HANDAL RENTAL MOBIL Perusahaan kami melakukan bisnis penyewaan mobil dan memiliki beberapa lokasi dengan alamat yang berbeda (alamat terdiri dari jalan atau nomor rute pedesaan, kota, provinsi dan kode pos). Mobil-mobil diklasifikasikan sebagai mobil MPV, SUV, sedan, atau mobil mewah. Setiap mobil memiliki rakitan tertentu, model, tahun dibuat, dan warna. Setiap mobil memiliki nomor identifikasi yang unik dan plat yang unik. Mobil-mobil sewaan di lokasi tertentu dapat dikembalikan ke lokasi yang berbeda (disebut sebagai tempat drop off). Untuk setiap mobil kita terus pembacaan odometer sebelum menyewa dan setelah dikembalikan. Karena kepercayaan kepada pelanggan, perusahaan tidak merekam cacat ketika mobil disewakan maupun dikembalikan. Namun, kami menyewakan mobil dengan tangki penuh dan mencatat volume bensin di dalam tangki saat mobil dikembalikan,dengan status tangki kosong, seperempat penuh, setengah penuh, tiga perempat penuh, atau penuh. Kami menyimpan informasi terkait hari mobil disewa, demikian pula untuk mobil kembali. Jika pelanggan meminta kelas mobil khusus (misalnya sedan), kita akan berikan mobil dengan kelas lebih tinggi jika kita tidak memiliki kelas yang diminta, tentu saja dengan harga yang sama dengan rekues pelanggan (upgrade). Setiap kelas mobil memiliki harga tersendiri, tetapi semua mobil di kelas yang sama memiliki harga yang sama. Kami memiliki kebijakan sewa selama 1 hari, 1 minggu, 2 minggu, dan 1 bulan. Jadi, jika pelanggan menyewa mobil selama 8 hari, itu akan dibanderol sebagai 1 minggu + 1 hari. Biaya drop-off hanya tergantung pada kelas mobil sewaan, lokasi mobil disewa dari dan lokasi mobil dikembalikan. Tentang pelanggan kami, kami menyimpan nama, alamat, semua nomor telepon, dan SIM (kami menganggap lisensi berkendara adalah unik per orang). Untuk karyawan kami memiliki informasi yang sama (kita mengharuskan semua karyawan kami memiliki SIM). Kami memiliki beberapa kategori pekerja, driver, pembersih, admin, dan manajer. Setiap karyawan kami dapat menyewa mobil dari perusahaan kami untuk diskon 50%, jika sewa kurang dari 2 minggu. Namun, untuk perpanjangan sewa mereka harus membayar 90% dari harga biasa. Setiap karyawan bekerja di satu lokasi saja. Kami memiliki kantor pusat di Surabaya. Orang-orang yang bekerja di sana diklasifikasikan hanya level manajerial saja, salah satunya adalah presiden, dua dari mereka adalah wakil presiden, satu untuk operasi, yang lain untuk pemasaran). Selama beberapa minggu tertentu kita menawarkan promosi diskon 60% dari harga normal atau bisa juga dengan prosentase diskon yang berbeda. Promosi biasanya hanya untuk1 jenis mobil tertentu saja, misalnya pada jenis mobil sedan saja atau jenis MPV saja, dan seterusnya. Promosi ini tidak berlaku untuk karyawan. QUERY 1. Tampilkan rakitan, warna dari mobil yang sedang disewa 2. Untuk setiap mobil yang sudah selesai disewa, tampilkan harga rental dan id_rentalnya 3. Tampilkan nama semua manager 4. Tampilkan nama depan dan belakang dari semua pelanggan SOAL STUDI KASUS 5 IGD RS WARAS Dalam ruang Instalasi Gawat Darurat (IGD), kami memiliki tiga jenis yang berbeda dari pekerja: resepsionis, perawat, dan dokter. Setiap pekerja sebenarnya bisa saja menjadi pasien. Setiap orang dalam sistem yang diusulkan, baik itu pasien atau pekerja memiliki nama depan, dan nama belakang dan satu atau lebih alamat. Sebuah alamat terdiri dari sebuah negara, provinsi, kota, jalan dan jalan nomor. Setiap orang dapat memiliki alamat email satu, banyak atau tidak ada sama sekali, begitu pula dengan nomor telepon. Para pekerja bekerja di IGD diatur dalam shift. Shift ini terdiri dari awal dan akhir waktu. Shift tidak tumpang tindih, tetapi dilaksanakan secara berturut-turut, yaitu ada pergeseran pada pada waktu tertentu dan hari. Kita mengasumsikan bahwa model yang dibangun (database yang dirancang) mencakup beberapa jangka waktu. Setiap pekerja akan ditugaskan untuk banyak shift dalam periode tertentu. Dua resepsionis yang ditugaskan untuk setiap shift, sekelompok perawat terdiri dari dua orang yang ditugaskan untuk setiap shift, sekelompok dokter terdiri dari dua atau lebih dokter yang ditugaskan untuk setiap shift, salah satu dokter yang ditugaskan untuk shift adalah dokter triase jaga. Ketika seorang pasien datang ke IGD, dan terjadi selama shift tertentu. Pasien dicatat oleh resepsionis tertentu, dilihat oleh dokter triase shift. Pasien ini dapat langsung pulang ke rumah dan diberikan resep obat atau bisa juga untuk diminta tinggal diruang IGD - dalam hal ini, pasien diberikan tempat tidur dan dirujuk ke dokter spesialis yang dapat menangani penyakit pasien. Setiap tempat tidur diawasi oleh perawat tunggal selama shift, tetapi perawat dapat mengawasi banyak tempat tidur, atau tidak sama sekali. Dokter rujukan dapat meresepkan obat yang diberikan kepada pasien oleh perawat tunggal dalam setiap shift selama pasien meminum obat. Setiap obat memiliki nama, dan untuk setiap pasien mungkin ada dosis yang berbeda dan berbeda jumlah meminumnya dalam sehari. QUERY 1. 2. 3. 4. Tampilkan nama pasien dan dokter IGD yang menanganinya Tampilkan nama dokter IGD dan urutkan berdasarkan nama depannya Tampilkan nama pasien yang masuk IGD pada hari tertentu Tampilkan nama pasien tertentu serta obat yang diminumnya.