Kegiatan Praktikum Sistem Basis Data Kelompok C Hari/tanggal : Kamis, 10-4-2014 Pertemuan ke : 4 Pokok Bahasan : Perintah SQL dengan DML Tujuan : Memahami dan mampu mengimplementasikan perintah DML dalam basis data a. Memasukkan data ke dalam tabel secara keseluruhan dan sebagian, insert into.. b. Menampilkan isi data dalam tabel secara keseluruhan & sebagian, perintah select.., select distinct c. Mengubah isi data dalam suatu tabel, perintah update..set d. Menghapus data dalam suatu tabel e. Penggunaan operator AND f. Penggunaan alias Dosen : Muhammad Yunus, S.Kom. Instruksi : Bukalah kembali database klsc 1. Isikan data ke dalam tabel database klsc seperti berikut : a. Tabel dokter : Untuk mengisi satu data : Untuk mengisi lebih dari satu data : Perhatikan bahwa untuk mengisi seluruh atribut dalam tabel dokter menggunakan perintah insert into dokter values ( nilai berdasar atribut ). Pada contoh berikutnya nanti terdapat cara lain jika memasukkan data ke seluruh atribut ataupun sebagian atribut berdasarkan kindisi tertentu. 1
b. Tabel pasien Cara lain input data untuk semua atribut dalam tabel : Anda perhatikan bahwa, setelah menyebut nama tabel (insert into pasien.) kita bisa menyebutkan kembali nama-nama atribut yang ada dalam tabel pasien. Jika mau mengisi semua atribut maka harus disebutkan seluruh atributnya, tapi jika sebagian atribut yang akan diisikan tinggal anda pilih saja atribut apa saja yang perlu diisi. Nanti ada contohnya c. Tabel perawatan - Perhatikan bahwa pada tabel diatas, satu pasien bisa ditangani oleh dokter yang berbeda karena diagnosa penyakitnya lebih dari satu. Ini menunjukkan bahwa tabel pasien -> dokter menunjukkan hubungan 1:N. Kita lihat juga bahwa satu orang dokter bisa menangani lebih dari satu pasien, ini menunjukkan bahwa tabel dokter -> pasien memiliki relasi 1:N. JANGAN LUPA YAAA.!!! - Karena kedua tabel tersebut dari kedua sisinya bersifat 1:N, maka atribut2 relasi yang bertamu ke tabel perawatan harus bersifat unik artinya atribut idpasien (dari tabel pasien) dan atribut iddokter (dari tabel dokter) harus dibuatkan primary key.. nanti akan dijelaskan lebih detail pada contoh2 berikutnya, sabar ya. 2. Tampilkanlah isi seluruh data dalam tabel dokter : Untuk menampilkan seluruh nilai record dalam suatu tabel menggunakan perintah : select * from nama_tabel; 2
3. Tambahkan data dokter baru ke tabel dokter dengan data berupa iddokter =d0008, nama = Hamsu. (atribut alamat tidak diisi, anggap saja dokter hamsu lupa alamatnya, he) **Perhatikan bahwa, pada tabel dokter yang terisi hanya iddokter dan nama, sedangkan alamat tidak terisi. Karena pada pengisian tabel dokter atribut alamat tidak dipilih/terisi maka secara otomatis nilai atribut alamat tersebut akan bernilai NULL (tidak terisi). INGATTTTTT.!!! 4. Tambahkan data dokter baru ke tabel dokter dengan data berupa iddokter =d0009, nama = Ningsih dan alamat = (string kosong) : Perhatikan bahwa kita saat mau mengisi data dokter semua atribut kita pilih, tapi saat nilainya kita masukkan, hanya atribut alamat yang bernilai string kosong ( ). 5. Ubahlah alamat dokter yang iddokter d0008 menjadi Ampenan pada tabel dokter. 3
6. Tampilkan isi dari tabel dokter berupa iddokter dan nama dokter : 7. Tampilkanlah alamat asal seluruh dokter : **Terdapat alamat dokter yang asalnya sama ditampilkan lebih dari sekali Sumbawa dan Cakra 8. Tampilkanlah alamat asal dokter dengan nilai tidak boleh kembar/sama (ditampilkan sekali bagi yang alamatnya sama) : 9. Hapus data pada tabel dokter dengan iddokter d0009 : 4
10. Tampilkan seluruh data pasien yang idpasiennya p0003 dan biaya perawatan 700.000 : 11. Tampilkan seluruh isi tabel dalam database klsc : **Ingat selalu bahwa tabel perawatan yang kita buat merupakan relasi dari tabel dokter dan pasien. Karena berelasi maka ketika data pada tabel induk/master (dokter dan pasien) mengalami perubahan (delete or update) maka secara otomatis akan mempengaruhi tabel anaknya/detail. Untuk membuktikan hal tersebut, lakukanlah instruksi pada soal berikutnya. Kemudian AMATI PERUBAHAN YANG TERJADI..!!! 5
12. Hapuslah data pasien p0002 pada tabel pasien, kemudian tampilkan kembali isi tabel pasien dan perawatan, apa yang anda bisa amati?? : **Kita lihat bahwa idpasien p0002 pada tabel pasien berhasil dihapus. Tapi apa yang terjadi pada tabel perawatan? Ternyata data pasien dg idpasien p0002 tidak turut terhapus. Ini tentunya menjadi masalah karena tidak ada INTEGRITAS DATA, seharusnya ketika data dalam suatu tabel induk (master) dihapus harus bisa sinkron/mempengaruhi data pada tabel anaknya (client). Integritas data mempengaruhi proses DELETE dan UPDATE suatu data dalam tabel database. **Jadi tabel-tabel dalam database diatas belum berelasi dengan baik, pada bab relasi nanti kita akan memperbaiki struktur tabel2 diatas. Sabar dulu yaaa.:-) 13. Kita bisa menggunakan Alias (as) untuk mengganti/menampilkan nama baru bagi suatu atribut, berikut contohnya : 6
Tugas 3 : dikumpulkan pada pertemuan 5 1. Tampilkan isi tabel seperti dibawah ini : 2. Tampilkan isi tabel seperti dibawah ini : 3. Tugas ditulis tangan dari source code sql beserta hasilnya. 7