Modul Praktikum Sistem Basis Data S1-TI M. Rudyanto Arief, M.T. [email protected] STMIK AMIKOM YOGYAKARTA Digitally signed by M. Rudyanto Arief, M.T. DN: CN = M. Rudyanto Arief, M.T., C = ID, O = STMIK AMIKOM YOGYAKARTA, OU = Dept of Information Engineering Reason: I am the author of this document Date: 2007.11.27 22:51:50 +07'00' 1 Modul Praktikum Sistem Basis Data S1-TI DAFTAR ISI MODUL 1 ............................................................................................................................ 6 PENGENALAN SQL ........................................................................................................ 6 Tujuan ......................................................................................................................... 6 Teori singkat............................................................................................................... 6 Lima bagian utama SQL :................................................................................... 6 MICROSOFT SQL SERVER ..................................................................................... 7 Membuat Folder Kerja ........................................................................................ 9 Latihan 1.1. .......................................................................................................... 10 Mengaktifkan dan Menon Aktifkan Database SQL Server......................... 10 Latihan 1.2. .......................................................................................................... 14 Membuat Database SQL Server...................................................................... 14 Latihan 1.3. .......................................................................................................... 21 Mendaftarkan Database (Attach) ................................................................. 21 Latihan 1.4. .......................................................................................................... 23 Menon-Aktifkan Database (Detachment Database)................................. 23 Latihan 1.5. .......................................................................................................... 25 Menghapus Database...................................................................................... 25 Penugasan .............................................................................................................. 26 MODUL 2 .......................................................................................................................... 27 PENGENALAN MICROSOFT QUERY ANALYZER....................................................... 27 Tujuan ....................................................................................................................... 27 Teori Singkat ............................................................................................................ 27 Bagian Menu ...................................................................................................... 28 Bagian Object Browser ..................................................................................... 28 Bagian Jendela Editor....................................................................................... 29 Bagian Jendela Hasil Query............................................................................. 29 Latihan 2.1. .......................................................................................................... 30 Mengaktifkan SQL Query Analyzer ................................................................. 30 Latihan 2.2. .......................................................................................................... 31 Mengetikkan Perintah SQL Query di Jendela Editor dan Mengeksekusinya............................................................................................... 31 Latihan 2.3. .......................................................................................................... 32 Memberikan Komentar..................................................................................... 32 Latihan 2.4. .......................................................................................................... 33 Menyimpan Perintah SQL Query ..................................................................... 33 Latihan 2.5. .......................................................................................................... 35 Menggunakan fasilitas Bantuan (Help) Query Analyzer............................. 35 Penugasan .............................................................................................................. 37 MODUL 3 .......................................................................................................................... 38 DATA DEFINITION LANGUAGES (DDL) ..................................................................... 38 Bagian 1 ....................................................................................................................... 38 Tujuan ....................................................................................................................... 38 Teori Singkat ............................................................................................................ 38 Membuat Database ......................................................................................... 38 Merubah Database........................................................................................... 39 [email protected] STMIK AMIKOM YOGYAKARTA 2 Modul Praktikum Sistem Basis Data S1-TI Menghapus Database...................................................................................... 40 Latihan 3.1. .......................................................................................................... 40 Membuat Database tanpa parameter......................................................... 40 Latihan 3.2. .......................................................................................................... 41 Membuat database dengan parameter tambahan................................. 41 Latihan 3.3. .......................................................................................................... 45 Merubah nama database ............................................................................... 45 Latihan 3.4. .......................................................................................................... 47 Menghapus database ...................................................................................... 47 Penugasan .............................................................................................................. 48 MODUL 4 .......................................................................................................................... 49 DATA DEFINITION LANGUAGE (DDL) ....................................................................... 49 Bagian 2 ....................................................................................................................... 49 Tujuan ....................................................................................................................... 49 Teori Singkat ............................................................................................................ 49 Membuat Tabel.................................................................................................. 51 Merubah Struktur Tabel ..................................................................................... 54 Menghapus tabel .............................................................................................. 55 Latihan 4.1. .......................................................................................................... 55 Membuat Tabel.................................................................................................. 55 Latihan 4.2. .......................................................................................................... 57 Merubah Struktur Tabel ..................................................................................... 57 Latihan 4.3. .......................................................................................................... 58 Menghapus Tabel .............................................................................................. 58 Latihan 4.4. .......................................................................................................... 59 Membuat Tabel dalam database akademik_xxxx...................................... 59 Penugasan .............................................................................................................. 60 MODUL 5 .......................................................................................................................... 61 DATA DEFINITION LANGUAGES (DDL) ..................................................................... 61 (Bagian 3) .................................................................................................................... 61 Tujuan ....................................................................................................................... 61 Teori Singkat ............................................................................................................ 61 PRIMARY KEY ....................................................................................................... 61 FOREIGN KEY ....................................................................................................... 62 UNIQUE ................................................................................................................. 65 NOT NULL ............................................................................................................. 65 CHECK.................................................................................................................. 66 Latihan 5.1. .......................................................................................................... 69 Membuat Tabel dengan Constraint............................................................... 69 Latihan 5.2. .......................................................................................................... 69 Membuat tabel Dosen...................................................................................... 69 Latihan 5.3. .......................................................................................................... 71 Merubah Struktur Tabel dengan Merubah Tipe data dan Lebar data ... 71 Latihan 5.4. .......................................................................................................... 71 Merubah Struktur tabel dengan menambah Constraint PRIMARY KEY ... 71 Latihan 5.5. .......................................................................................................... 71 Menambah constraint CHECK dengan merubah cara merubah Struktur tabel ..................................................................................................................... 71 [email protected] STMIK AMIKOM YOGYAKARTA 3 Modul Praktikum Sistem Basis Data S1-TI Latihan 5.6. .......................................................................................................... 72 Membuat tabel-tabel pendukung sesuai dengan rancangan yang ada ............................................................................................................................... 72 Penugasan .............................................................................................................. 74 MODUL 6 .......................................................................................................................... 75 DATA DIAGRAM.......................................................................................................... 75 Tujuan ....................................................................................................................... 75 Teori Singkat ............................................................................................................ 75 Latihan 6.1. .......................................................................................................... 75 Membuat Data Diagram Baru ........................................................................ 75 Penugasan .............................................................................................................. 80 Tujuan ....................................................................................................................... 81 Teori Singkat ............................................................................................................ 81 Mengisikan Data ke dalam Tabel (INSERT).................................................... 81 Mengisikan Baris dengan Nilai Null ................................................................. 81 Meng-copy data dari tabel lain ..................................................................... 82 Merubah data dalam Tabel (UPDATE)........................................................... 82 Menghapus Data dalam tabel (DELETE) ....................................................... 82 Latihan 7.1. .......................................................................................................... 82 Menambahkan satu record ke dalam tabel menggunakan SQL............ 82 Latihan 7.2. .......................................................................................................... 83 Merubah semua record/ data dalam tabel ................................................ 83 Latihan 7.3. .......................................................................................................... 84 Merubah record/ data dalam tabel sesuai kondisi/ syarat yang diberikan ............................................................................................................................... 84 Latihan 7.4. .......................................................................................................... 85 Menghapus seluruh record/ data dalam tabel ........................................... 85 Latihan 7.5. .......................................................................................................... 86 Menghapus record/ data dalam tabel sesuai kondisi/ syarat yang diberikan.............................................................................................................. 86 MODUL 8 .......................................................................................................................... 89 MENAMPILKAN DATA ................................................................................................. 89 Tujuan ....................................................................................................................... 89 Teori Singkat ............................................................................................................ 89 Melihat Semua Kolom dari Suatu Tabel ......................................................... 90 Melihat Kolom(-kolom) tertentu ...................................................................... 90 Alias Kolom (AS).................................................................................................. 90 Klausa WHERE ..................................................................................................... 90 Pencarian Nilai NULL.......................................................................................... 91 Pencarian String ................................................................................................. 91 Latihan 8.1. .......................................................................................................... 92 Menampilkan data untuk semua Kolom ....................................................... 92 Latihan 8.2. .......................................................................................................... 93 Menampilkan data berdasarkan Kolom tertentu........................................ 93 Latihan 8.3. .......................................................................................................... 94 Mengganti nama kolom dengan Kolom Alias ............................................. 94 Latihan 8.4. .......................................................................................................... 95 [email protected] STMIK AMIKOM YOGYAKARTA 4 Modul Praktikum Sistem Basis Data S1-TI Membatasi data-data yang di tampilkan menggunakan Klausa WHERE ............................................................................................................................... 95 Latihan 8.5. .......................................................................................................... 96 Mengurutkan data secara Ascending dan Descending ........................... 96 Latihan 8.6. .......................................................................................................... 97 Mengelompokkan Data ................................................................................... 97 Penugasan .............................................................................................................. 99 [email protected] STMIK AMIKOM YOGYAKARTA 5 Modul Praktikum Sistem Basis Data S1-TI MODUL 1 PENGENALAN SQL Tujuan □ Mengetahui konsep Bahasa SQL □ Mampu mengoperasikan dasar-dasar perintah SQL Server □ Mampu mendefinsikan obyek-obyek basis data dalam SQL Server Teori singkat SQL (Structured Query Language) (baca : sequel) adalah salah satu bahasa generasi level ke-4 (4th GL) yang awalnya dikembangkan oleh IBM di San Jose Research Laboratory . Berbeda dengan bahasa pemrograman level ke-3 (3rd GL), SQL adalah bahasa yang bersifat request oriented dan bersifat non-prosedural sehingga lebih mudah untuk dipelajari karena sintaks yang digunakan hampir menyerupai bahasa yang digunakan oleh manusia untuk berkomunikasi. Sehingga SQL lebih fleksibel dalam penggunaannya. Selain itu SQL juga bersifat non case sensitif. Banyak vendor-vendor pembuat DBMS (Database Management System) saat ini menggunakan SQL sebagai standarisasi dalam produk mereka seperti ORACLE, Microsoft SQL Server, PostGreSQL, MySQL. SQL sendiri terbagi atas beberapa bagian, yaitu : Lima bagian utama SQL : → Retrieving Data, yaitu perintah untuk menampilkan data dari database. (dibahas pada praktikum ini). → DDL (Data Definition Language), yaitu bahasa yang mempunyai kemampuan untuk mendefinisikan data yang berhubungan dengan pembuatan dan penghapusan objek seperti tabel, indeks, bahkan basis datanya sendiri. Misalnya CREATE, DROP, ALTER. (di bahas pada praktikum ini). → DML (Data Manipulation Language), yaitu bahasa yang berhubungan dengan proses manipulasi data pada tabel, record. Misalnya : INSERT, UPDATE, DELETE. (dibahas pada praktikum ini). [email protected] STMIK AMIKOM YOGYAKARTA 6 Modul Praktikum Sistem Basis Data S1-TI → DCL (Data Control Language), yaitu bahasa yang berhubungan dengan pengendalian akses ke database. Misalnya : GRANT, REVOKE. (dibahas pada mata kuliah pemrograman basis data dan client server) → DTL (Data Transaction Language), yaitu bahasa yang di gunakan untuk mengelola transaksi di database. Misalnya : COMMIT, ROLLED BACK. (dibahas pada mata kuliah pemrograman basis data dan client server) Praktikum Pemrograman Client Server menggunakan Microsoft SQL Server sebagai DBMS-nya selama proses praktikum berlangsung. Hal ini dikarenakan DBMS ini mudah digunakan dan user lebih familiar dengan produk-produk yang diproduksi oleh Microsoft. MICROSOFT SQL SERVER MS-SQL Server merupakan salah satu contoh perangkat lunak DBMS (database management system) yang banyak digunakan oleh banyak perusahaan saat ini. SQL Server memiliki banyak fitur-fitur yang dapat membantu perusahaan untuk mengelola basis data mereka dengan baik. Berikut ini adalah beberapa fitur yang terdapat dalam DBMS SQL Server, yaitu: 1. SQL Server Service Manager Fasilitas ini mempunyai kemampuan untuk melakukan cara pengaturan seluruh objek dari SQL Server, SQL Server Agent, dan Distributed Transaction. Gambar. 1 SQL Server Service Manager [email protected] STMIK AMIKOM YOGYAKARTA 7 Modul Praktikum Sistem Basis Data S1-TI 2. SQL Server Profiler Utilitas ini memungkinkan untuk memonitor, merekam aktivitas kegiatan pada server database sehingga mempunyai kemampuan untuk melakukan analisa terhadap aktivitas server database. 3. SQL Query Analyzer Tool ini adalah fasilitas yang digunakan untuk mengeksekusi pernyataan Transact-SQL secara interaktif, seperti membuat database, edit, insert dan menghapus data. 4. Data Transformation Service Digunakan untuk mentransfer data dari format SQL server ke format database lain seperti format database Acces, Excel, Paradox atau sebaliknya. Selain dari fitur-fitur diatas, SQL Server juga memiliki beberapa obyek dalam databasenya. Obyek-obyek dalam database memiliki fungsi masing-masing. Berikut adalah obyek-obyek yang terdapat dalam obyek database SQL Server, yaitu: Objek SQL Server Database Gambar. 2 Obyek-obyek dalam Database SQL Server [email protected] STMIK AMIKOM YOGYAKARTA 8 Modul Praktikum Sistem Basis Data S1-TI 1. Diagrams Merupakan sebuah diagram yang digunakan untuk mendesain sebuah relasi/ hubungan antar tabel-tabel dalam sebuah database. 2. Tables Menyimpan baris-baris atau record-record data, tabel adalah inti dari sebuah database yang dikelompokkan dalam bentuk baris dan kolom. 3. Views View adalah sebuah tabel virtual yang digunakan untuk mengakses data-data tertentu pada sebuah tabel, data-data penting yang tidak ditampilkan secara public dapat disembunyikan dengan menggunakan view. 4. Stored Procedured Adalah sekumpulan perintah SQL yang tersimpan dalam server database dan dapat dieksekusi melalui perintah execute (nama sp)[parameter] 5. Users Adalah orang atau pengguna yang diberi hak untuk mengakses database pada server database. 6. Function Sama halnya seperti Stored Procedure yaitu sekumpulan perintah SQL, akan tetapi Function akan mengembalikan nilai sedangkan Stored Procedure tidak mengembalikan nilai. Membuat Folder Kerja Sebelum memulai praktikum, maka buatlah folder kerja yang menyimpan semua hasil pekerjaan selama praktikum sistem basis data. Buatlah folder kerja di direktori d komputer yang digunakan saat ini dengan nama sbdti_xxxx, dimana xxxx merupakan 4 digit terakhir nomor mahasiswa. Sehingga path selengkapnya sebagai berikut: d:\sbdti_xxxx. Untuk membuatnya dapat menggunakan windows explorer atau dengan cara mengetikkan perintah md sbdti_xxxx melalui command prompt di DOS. [email protected] STMIK AMIKOM YOGYAKARTA 9 Modul Praktikum Sistem Basis Data S1-TI Latihan 1.1. Mengaktifkan dan Menon Aktifkan Database SQL Server □ Untuk mendaftarkan database SQL Server yang sudah dibuat, sebaiknya di cek dulu apakah Service SQL Service Manager sudah ON atau belum. Berikut adalah icon dari SQL Service Manager dalam kondisi ON. Gambar. 3 SQL Server Service Manager (Status ON) □ Setelah itu aktifkan SQL Server Enterprise Manager, melalui Menu Start Æ Programs Æ Microsoft SQL Server Æ Enterprise Manager Gambar. 4 SQL Server Group di Enterprise Manager [email protected] STMIK AMIKOM YOGYAKARTA 10 Modul Praktikum Sistem Basis Data S1-TI □ Untuk mendaftarkan database SQL Server pertama kali, klik kanan pada obyek Microsoft SQL Servers, lalu pilih sub menu New SQL Server Registration. Gambar. 5 Registrasi Database SQL Server □ Pada jendela Register SQL Server Wizard, klik tombol Next. Untuk memulai proses pendaftaran Database SQL Server yang baru. Gambar. 6 Proses registrasi Database SQL Server □ Jika komputer yang ada saat ini terhubung ke jaringan, maka SQL Server akan menampilkan semua database SQL Server yang terdaftar di dalam jaringan tersebut. Silahkan pilih salah satu server tersebut. Kemudian pilih tombol ADD untuk menambahkan kedalam SQL Server Group yang ada. Kemudian tekan tombol Next. [email protected] STMIK AMIKOM YOGYAKARTA 11 Modul Praktikum Sistem Basis Data S1-TI Gambar. 7 Daftar Server yang terdapat di Jaringan Gambar. 8 Proses penambahan SQL Server baru □ Selanjutnya pada bagian Connect Using, pilih The Windows account information..., lalu tekan tombol Next. [email protected] STMIK AMIKOM YOGYAKARTA 12 Modul Praktikum Sistem Basis Data S1-TI Gambar. 9 Pemilihan metode Koneksi ke Database SQL Server yang baru □ Pada bagian Select SQL Server Group, pilih Add the SQL Server(s) to..., klik tombol Next. Gambar. 10 SQL Server yang baru di tambahkan ke Grup yang sudah ada □ Untuk mengakhiri proses registrasi SQL Server, pilih tombol Finish. [email protected] STMIK AMIKOM YOGYAKARTA 13 Modul Praktikum Sistem Basis Data S1-TI Gambar. 11 Database SQL Server yang baru berhasil di Daftarkan Latihan 1.2. Membuat Database SQL Server Untuk membuat database baru di SQL Server, ikuti langkah-langkah berikut: □ Pada jendela utama SQL Server Enterprise Manager, klik kanan pada obyek Databases, kemudian pilih sub menu New Database. Gambar. 12 Pembuatan Database baru di Enterprise Manager □ Pada jendela Database Properties, masukkan nama database baru yang akan dibuat pada bagian Name. Pada contoh nama database yang diisikan adalah bank_xxxx. [email protected] STMIK AMIKOM YOGYAKARTA 14 Modul Praktikum Sistem Basis Data S1-TI Gambar. 13 Pemberian nama Database yang baru □ Selanjutnya pilih tab Data Files untuk melakukan pengaturan terhadap file data database bank_xxxx. Rubahlah path atau lokasi tempat penyimpanan file data database yang sebelumnya di simpan di direktori default SQL Server (c:\Program Files\Microsoft SQL Server\MSSQL\Data) di pindah ke direktori lain. Pada contoh file data di pindah ke direktori: E:\CS_Rudyanto_Arief. [email protected] STMIK AMIKOM YOGYAKARTA 15 Modul Praktikum Sistem Basis Data S1-TI □ Berikut adalah contoh tampilan proses pemilihan path file data database bank_xxxx. Jika direktorinya sudah dipilih, maka klik tombol OK. □ Selanjutnya pada bagian File Properties, aktifkan pilihan Automatically grow file yang artinya jika file data database bank_xxxx penuh maka secara otomatis SQL Server akan menambah kapasitas file data tersebut. Jangan klik tombol OK dulu. □ Pada pada bagian File growth pilihlah In megabytes yang artinya pertumbuhan file data tersebut diatur dalam satuan megabyte dan bukan dalam satuan By percent. Jika pilihan By [email protected] STMIK AMIKOM YOGYAKARTA 16 Modul Praktikum Sistem Basis Data S1-TI percent yang di aktifkan maka ukuran file data akan bertambah berdasarkan persentasi ruang kosong di harddisk komputer tempat database SQL Server tersebut di install. Jika nilainya di isi 10 artinya pertumbuhan file data database bank_xxxx akan mengkonsumsi 10 persen dari ruang kosong di harddisk. Pada contoh menggunakan pilihan In megabytes dengan nilainya 10 megabyte. Artinya jika file data penuh maka secara otomatis ukuran file data akan di tambah 10 MB lagi. Jangan klik tombol OK dulu. □ Pada bagian Maximum file size, pilih Restrict file growth (MB). Pilihan default pada bagian ini adalah Unrestricted file growth, artinya tidak ada batasan ukuran file database. Sehingga file database akan mengkonsumsi semua ruang kosong di harddisk komputer jika pilihan ini dipilih. Pada contoh pilihan yang di aktifkan adalah Restrict file growth (MB) dengan nilai yang diisikan 50. Maksudnya adalah untuk setiap pertambahan file database yang di atur pada langkah sebelumnya, maka file tersebut hanya di bolehkan bertambah sampai batas maksimal 50 MB. Setelah batasan ini tercapai maka file database di asumsikan penuh oleh SQL Server sampai di lakukan perubahan pada batasan maksimal file databasenya. Jangan klik tombol OK dulu. [email protected] STMIK AMIKOM YOGYAKARTA 17 Modul Praktikum Sistem Basis Data S1-TI □ Selanjutnya pilihlah tab Transaction Log. Pengaturannya sama saja dengan yang ada pada pengaturan Data Files. Transaction Log merupakan menu pengaturan untuk file Log. File Log adalah file berbasis teks yang menyimpan informasi mengenai semua kejadian/ event yang terjadi dalam database SQL Server khusus untuk database tersebut. Pada contoh file Log akan menyimpan semua informasi transaksi yang terjadi dalam database bank_xxxx. [email protected] STMIK AMIKOM YOGYAKARTA 18 Modul Praktikum Sistem Basis Data S1-TI □ Aturlah path/ lokasi penyimpanan file Log sama dengan file database bank_xxxx yang diatur pada langkah sebelumnya di Data Files. Pada contoh lokasinya di simpan di direktori E:\CS_Rudyanto_Arief. Klik tombol OK. □ Pada bagian File Properties, aktifkan Automatically grow file. Pada File growth, pilihlah satuan In megabytes dengan nilai 10 MB. Pada bagian Maximum file size, pilih Restricted file growth (MB) dengan nilai 50 MB. Klik tombol OK. [email protected] STMIK AMIKOM YOGYAKARTA 19 Modul Praktikum Sistem Basis Data S1-TI □ Database bank_xxxx, telah terdaftar di dalam database SQL Server. Gambar. 14 Database baru berhasil di buat □ File data database bank_xxxx yang dibuat di letakkan di direktori E:\CS_Rudyanto_Arief sesuai dengan pengaturan yang dilakukan pada tahapan sebelumnya. [email protected] STMIK AMIKOM YOGYAKARTA 20 Modul Praktikum Sistem Basis Data S1-TI Latihan 1.3. Mendaftarkan Database (Attach) □ Pada obyek Databases, klik kanan kemudian pilih sub menu All Tasks Æ Attach Database... Gambar. 15 Meng-attach database □ Pilihlah lokasi jendela Attach Database, pilihlah lokasi dimana file database di simpan (*.mdf). Kemudian klik tombol OK (2x). Gambar. 16 Pemilihan nama file database yang akan di attach (*.mdf) [email protected] STMIK AMIKOM YOGYAKARTA 21 Modul Praktikum Sistem Basis Data S1-TI Gambar. 17 Pencarian lokasi file Database (*.mdf) [email protected] STMIK AMIKOM YOGYAKARTA 22 Modul Praktikum Sistem Basis Data S1-TI Latihan 1.4. Menon-Aktifkan Database (Detachment Database) □ Untuk melakukan Detachment (menon-aktifkan) database, silahkan pilih database yang akan di non-aktifkan kemudian klik kanan □ Database bank_xxxx sudah tidak terdaftar lagi dalam daftar database SQL Server. [email protected] STMIK AMIKOM YOGYAKARTA 23 Modul Praktikum Sistem Basis Data S1-TI □ Walaupun database bank_xxxx sudah di detach tapi file databasenya masih tetap tersimpan di direktori tempat penyimpanannya. Catatan: jika database di non-aktifkan (detach) tidak serta merta menghapus database tersebut dari media penyimpanan fisik (harddisk). File databasenya (*.mdf) masih tersimpan di harddisk dan sewaktu-waktu dapat di aktifkan kembali jika di perlukan. Untuk mengaktifkannya menggunakan prosedur Attach Database yang sudah di bahas sebelumnya. Untuk menghapus database secara permanen maka lakukan operasi penghapusan database yang akan di bahas pada bagian selanjutnya. [email protected] STMIK AMIKOM YOGYAKARTA 24 Modul Praktikum Sistem Basis Data S1-TI Latihan 1.5. Menghapus Database □ Pilih database yang akan di hapus (DROP) pada obyek Databases. Klik kanan pada nama database yang akan di hapus. Pilih sub menu Delete. Pada contoh nama database yang akan di hapus adalah bank_xxxx. [email protected] STMIK AMIKOM YOGYAKARTA 25 Modul Praktikum Sistem Basis Data S1-TI Penugasan 1. Sebutkan obyek-obyek yang terdapat dalam Database SQL Server. 2. Fitur Attach Database dan Detach Database dalam SQL Server digunakan untuk apa? 3. Jelaskan perbedaan antara Database Detach dan Database Delete. 4. Tuliskan path/ lokasi penyimpanan default file-file database (*.mdf) dalam SQL Server. 5. Tuliskan jenis-jenis perangkat lunak DBMS (database management system) yang anda ketahui beserta vendor pembuatnya (minimal 5). [email protected] STMIK AMIKOM YOGYAKARTA 26 Modul Praktikum Sistem Basis Data S1-TI MODUL 2 PENGENALAN MICROSOFT QUERY ANALYZER Tujuan □ Mampu mengoperasikan Query Analyzer □ Mampu menggunakan perintah-perintah SQL Query di Query Analyzer □ Mampu menggunakan menu Bantuan di Query Analyzer Teori Singkat Microsoft Query Analyzer adalah salah satu fitur yang terdapat dalam DBMS Microsoft SQL Server. Dengan menggunakan Query Analyzer, maka perintah-perintah SQL Query yang telah do bahas di modul 1 dapat di ketikkan. Query Analyzer terbagi dalam 4 bagian: □ Bagian Menu □ Bagian Object Browser □ Bagian Jendela Editor □ Bagian Jendela Hasil Query [email protected] STMIK AMIKOM YOGYAKARTA 27 Modul Praktikum Sistem Basis Data S1-TI Bagian Menu Merupakan tempat semua menu-menu standar yang digunakan untuk mengelola perintahperintah SQL Query yang terdapat dalam jendela editor. Bagian Object Browser Merupakan bagian yang menampilkan semua object-object yang terdapat dalam database SQL Server seperti yang telah di bahas di modul 1. [email protected] STMIK AMIKOM YOGYAKARTA 28 Modul Praktikum Sistem Basis Data S1-TI Bagian Jendela Editor Bagian ini merupakan bagian utama dari Query Analyzer, karena di bagian inilah semua perintahperintah SQL Query yang akan digunakan untuk berinteraksi dengan database SQL Server di ketikkan. Bagian Jendela Hasil Query Merupakan bagian yang menampilkan semua hasil perintah-perintah sql query yang di ketikkan di jendela editor yang telah di eksekusi. Apapun hasil eksekusi perintah sql query akan di tampilkan di bagian ini, baik itu perintah sql query yang sukses maupun perintah sql query yang salah. Jika perintah sql query sukses di eksekusi maka datanya di tampilkan di bagian ini, sedangkan jika perintah sql query gagal maka jendela hasil akan menampilkan pesan kesalahan yang berhubungan dengan kesalahan perintah sql query tersebut. [email protected] STMIK AMIKOM YOGYAKARTA 29 Modul Praktikum Sistem Basis Data S1-TI Latihan 2.1. Mengaktifkan SQL Query Analyzer □ Untuk mengaktifkan query analyzer, pilih menu Start Æ All Programs Æ Microsoft SQL Server Æ Query Analyzer. □ Pada jendela Connect to SQL Server, pilih Connect Using menggunakan Windows Authentication. Lalu klik tombol OK. □ Selanjutnya akan muncul halaman utama query analyzer dengan database master yang aktif pertama kali. [email protected] STMIK AMIKOM YOGYAKARTA 30 Modul Praktikum Sistem Basis Data S1-TI Latihan 2.2. Mengetikkan Perintah SQL Query di Jendela Editor dan Mengeksekusinya □ Perintah SQL Query yang ada dapat di ketikkan melalui jendela editor query analyzer. □ Perintah sql query dapat di ketik per baris kemudian di eksekusi atau dengan cara mengetikkan beberapa baris perintah sql sekaligus yang kemudian akan di eksekusi sekali. Berikut adalah contoh perintah SQL Query yang di ketikkan di jendela editor query analyzer: [email protected] STMIK AMIKOM YOGYAKARTA 31 Modul Praktikum Sistem Basis Data S1-TI □ Untuk mengeksekusi perintah diatas menggunakan tombol F5 atau melalui menu Query Æ Execute atau dengan meng-klik toolbar □ yang ada pada bagian toolbar. Jika dalam jendela editor akan di ketikkan lebih dari satu perintah sql query, maka untuk membatasi antara perintah satu dengan lainnya di tambahkan perintah GO di akhir perintah sql tersebut atau menggunakan tanda titik koma (;). Berikut adalah contohnya: □ Perintah diatas adalah contoh perintah sql untuk memilih database bank (USE bank), kemudian akan menampilkan semua kolom yang ada di tabel nasabah (SELECT * FROM nasabah) dan menampilkan nama nasabah dari tabel nasabah (SELECT nama_nasabah FROM nasabah) yang semuanya berjumlah 3 perintah sql yang di eksekusi bersamaan dengan satu kali penekanan tombol F5. Latihan 2.3. Memberikan Komentar Untuk memberikan komentar terhadap perintah sql yang di ketikkan di jendela editor query analyzer sehingga tidak ikut di eksekusi dapat menggunakan 2 cara, yaitu komentar untuk satu baris atau komentar lebih dari satu baris. □ Berikut adalah contoh pemberian komentar satu baris di jendela editor dengan menggunakan tanda double dash (--) di depan perintah sql yang akan di jadikan komentar. [email protected] STMIK AMIKOM YOGYAKARTA 32 Modul Praktikum Sistem Basis Data S1-TI □ Berikut adalah contoh pemberian komentar lebih dari satu baris di jendela editor dengan menggunakan tanda /* dan di tutup dengan */. Latihan 2.4. Menyimpan Perintah SQL Query Untuk menyimpan perintah sql query yang sudah di ketikkan di jendela editor yang sewaktuwaktu dapat di gunakan kembali berikut adalah langkah-langkahnya: □ Pilih menu File Æ Save atau menggunakan shortcut Ctrl+S atau meng-klik simbol toolbar Save pada bagian menu toolbar. [email protected] STMIK AMIKOM YOGYAKARTA 33 Modul Praktikum Sistem Basis Data S1-TI □ Pada jendela Save Query, pilihlah lokasi dimana akan di simpan file tersebut. Pada contoh berikut file di simpan dalam folder d:\cs_Rudyanto_Arief. Kemudian berilah nama file tersebut. Pada contoh nama filenya modul2 sesuai dengan nama modul yang sedang di bahas saat ini. Secara default query analyzer akan menyimpan file yang di simpan dengan tipe query files (*.sql) namun dapat di rubah tipe filenya menjadi tipe file lainnya. Misalnya dengan tipe file text (*.txt). Kemudian klik tombol Save. [email protected] STMIK AMIKOM YOGYAKARTA 34 Modul Praktikum Sistem Basis Data S1-TI Latihan 2.5. Menggunakan fasilitas Bantuan (Help) Query Analyzer Query analyzer juga menyediakan menu bantuan (help) yang berhubungan dengan perintahperintah sql query. Menu bantuan ini di sebut juga SQL Server Books Online. Untuk menggunakan menu bantuan berikut adalah langkah-langkahnya: □ Pilih menu Help, kemudian pilih sub menu Transact-SQL Help atau menggunakan shortcut Shift+F1. □ Pada jendela utama SQL Server Books Online, pilihlah tab Index. Jika baru pertama kali di aktifkan maka sql server akan melakukan proses pencarian semua informasi yang ada di dalam SQL Server Books Online sehingga butuh proses yang agak lama. [email protected] STMIK AMIKOM YOGYAKARTA 35 Modul Praktikum Sistem Basis Data S1-TI □ Pada bagian tab Index, ketikkanlah kata kunci yang tepat untuk melakukan pencarian terhadap perintah sql query yang ingin di ketahui. Pada contoh kata kunci yang di ketikkan adalah CREATE DATABASE. □ Setelah yakin, maka klik tombol Display yang terletak di bawah atau langsung menekan tombol Enter. Selanjutnya pilihlah pilihan title: CREATE DATABASE, location: TransactSQL Reference pada jendela Topics Found. Pilihan ini di pilih karena semua perintahperintah SQL Query yang terdapat di dalam SQL Server di kategorikan ke dalam perintah Transact-SQL. Kemudian klik tombol Display atau tekan tombol Enter. [email protected] STMIK AMIKOM YOGYAKARTA 36 Modul Praktikum Sistem Basis Data S1-TI □ Selanjutnya akan di tampilkan secara rinci informasi tentang topik yang di cari. Pada contoh semua informasi yang berhubungan dengan kata kunci: CREATE DATABASE ditampilkan. Penugasan 1. Bagaimana cara mengaktifkan dan me-non aktifkan perintah-perintah SQL Query yang di ketikkan di jendela editor agar tidak di eksekusi. 2. Perintah apa yang digunakan untuk berganti database dari database yang aktif saat ini. 3. Jelaskan urutan-urutan bagaimana mengakses informasi/ data sebuah tabel, ketika pertama kali Query Analyzer di aktifkan. (asumsi: query analyzer sudah terhubung dengan database sql server). 4. Jelaskan urutan-urutan bagaimana cara merubah ukuran dan jenis huruf di jendela editor query analyzer. 5. Jelaskan urutan-urutan cara melakukan koneksi ke database dan pemutusan koneksi database yang aktif di query analyzer. [email protected] STMIK AMIKOM YOGYAKARTA 37 Modul Praktikum Sistem Basis Data S1-TI MODUL 3 DATA DEFINITION LANGUAGES (DDL) Bagian 1 Tujuan □ Mampu mendefinisikan (membuat, menghapus, merubah) obyek database □ Mampu menggunakan perintah-perintah DDL SQL untuk mengelola database Teori Singkat Seperti telah dijelaskan di modul sebelumnya, DDL adalah sebuah bahasa yang digunakan untuk mendefinisikan data dan obyek pada database. Berikut ini sintaks-sintaks yang termasuk dalam DDL didalam SQL Server : Perintah Keterangan CREATE DATABASE Untuk membuat database CREATE TABLE Untuk membuat tabel CREATE VIEW Untuk membuat view CREATE PROCEDURE Untuk membuat Stored Procedure ALTER DATABASE Mengubah database DROP DATABASE Menghapus database Membuat Database Database merupakan obyek yang utama dalam DBMS SQL Server. Semua obyek-obyek database yang di jelaskan di modul 1 tersimpan di dalam obyek database. Di dalam SQL Server terdapat beberapa database default yang otomatis di buat ketika SQL Server pertama kali di install, yaitu: master, model, msdb, Northwind, pubs, tempdb. Selain obyek-obyek database tersebut terdapat juga database-database lain yang di buat oleh seorang database administrator (DBA) dengan menggunakan perintah-perintah SQL. Untuk membuat database di SQL Server [email protected] STMIK AMIKOM YOGYAKARTA 38 Modul Praktikum Sistem Basis Data S1-TI maka di butuhkan perintah SQL yang termasuk kategori data definition language (DDL). Berikut adalah perintah dasar untuk membuat database menurut SQL Server Books Online. Perintah dasar: CREATE DATABASE database_name [ ON [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] < filespec > ::= [ PRIMARY ] ( [ NAME = logical_file_name , ] FILENAME = 'os_file_name' [ , SIZE = size ] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,...n ] < filegroup > ::= FILEGROUP filegroup_name < filespec > [ ,...n ] Keterangan: Database Name : Nama Database dan harus bersifat unik, panjang maksimal 128 karakter Log On : Menyatakan file yang dipakai untuk menyatakan log. On Primary : Menyatakan file-file disk untuk penyimpanan data dari sebuah database. Keterangan lain silahkan baca di SQL SERVER BOOKS ONLINE. Atau dapat di sederhanakan menjadi: CREATE DATABASE nama_database Merubah Database Untuk merubah database seperti menambahkan file atau menghapus file database dan kelompok file dari database menggunakan perintah ALTER DATABASE. Selain merubah nama file database, ALTER DATABASE juga dapat merubah nama database, nama kelompok file, dan nama lojik dari data file dan log file. [email protected] STMIK AMIKOM YOGYAKARTA 39 Modul Praktikum Sistem Basis Data S1-TI Berikut adalah perintah dasar menurut SQL Server Books Online: ALTER DATABASE database { ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ] | ADD LOG FILE < filespec > [ ,...n ] | REMOVE FILE logical_file_name | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILE < filespec > | MODIFY NAME = new_dbname | MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name } | SET < optionspec > [ ,...n ] [ WITH < termination > ] | COLLATE < collation_name > } Menghapus Database Untuk menghapus satu atau lebih dari satu database dari SQL Server menggunakan perintah SQL DROP DATABASE. Menghapus database berarti menghapus database dan file-file yang digunakan oleh database tersebut di harddisk komputer. Berikut adalah perintah dasarnya: DROP DATABASE database_name [ ,...n ] Latihan 3.1. Membuat Database tanpa parameter □ Aktifkan query analyzer, kemudian pada jendela editor ketikkan perintah berikut: CREATE DATABASE akademik_xxxx_test; Dimana xxxx = 4 (empat) digit terakhir nim anda. [email protected] STMIK AMIKOM YOGYAKARTA 40 Modul Praktikum Sistem Basis Data S1-TI □ Kemudian eksekusilah perintah tersebut dengan menekan tombol F5. Perintah diatas adalah perintah SQL untuk membuat sebuah database baru dengan nama akademik_xxxx_test. Jika perintah tersebut di eksekusi maka SQL Server akan membuat database akademik_xxxx_test dan data filenya beserta log filenya di simpan di direktori default penyimpanan data SQL Server. Latihan 3.2. Membuat database dengan parameter tambahan Berikut contoh untuk membuat database baru dengan beberapa penambahan parameter di dalamnya. □ Masih di jendela editor yang sama dengan perintah Latihan 3.1., jadikan komentar perintah pada Latihan 3.1. ( tidak perlu di hapus) sebelumnya dengan menambahkan tanda double dash (--) di depan baris perintah SQL tersebut. [email protected] STMIK AMIKOM YOGYAKARTA 41 Modul Praktikum Sistem Basis Data S1-TI □ Ketikkan perintah SQL berikut di baris berikutnya di jendela editor. Perintah berikut adalah untuk membuat database dengan nama akademik_xxxx, xxxx merupakan 4 (empat) digit nim anda. CREATE DATABASE akademik_xxxx ON PRIMARY (NAME=sbdti_xxxx, FILENAME=’d:\nama folder anda\sbdti_xxxx_data.mdf’, SIZE=5, MAXSIZE=50, FILEGROWTH=2) LOG ON (NAME=sbdti_xxxx_log, FILENAME=’d:\nama folder anda\sbdti_xxxx_log.ldf’, SIZE=3, MAXSIZE=20, FILEGROWTH=1); □ Pada contoh nama folder tempat penyimpanan data file dan log filenya di simpan di direktori e:\cs_rudyanto_arief. □ Eksekusilah perintah tersebut dengan menekan tombol F5. Jika sukses maka akan muncul konfirmasi di bagian jendela hasil query di bawah jendela editor yang menyatakan bahwa dataabase telah berhasil dibuat dengan lokasi direktori penyimpanan untuk data file dan log filenya. [email protected] STMIK AMIKOM YOGYAKARTA 42 Modul Praktikum Sistem Basis Data S1-TI □ Perhatikan perbedaan antara contoh perintah SQL di Latihan 3.1. dan Latihan 3.2. □ File Primer yang berisi data disimpan dengan nama sbdti_xxxx_data.Mdf. Folder penyimpanannya di sesuaikan dengan nama folder penyimpanan kelas Anda. □ File Awal meminta space penyimpanan sebesar 5 MB, dengan ukuran maksimum 50 MB dengan penambahan 2 MB. □ File Log disimpan dengan nama sbdti_xxxx_log.Ldf. Folder penyimpanannya di sesuaikan dengan nama folder penyimpanan kelas Anda. Ukuran 3 MB dengan maksimal 20 MB dengan penambahan 1 MB. □ Untuk mengecek database tersebut apakah sudah dibuat ketikkan perintah berikut melalui jendela Query Analyzer. Sebelumnya non aktifkan terlebih dahulu perintah SQL Latihan 3.2. yang sebelumnya di ketik di jendela editor dengan menjadikan komentar untuk perintah tersebut. [email protected] STMIK AMIKOM YOGYAKARTA 43 Modul Praktikum Sistem Basis Data S1-TI sp_databases Atau SELECT name FROM master.dbo.sysdatabases [email protected] STMIK AMIKOM YOGYAKARTA 44 Modul Praktikum Sistem Basis Data S1-TI Latihan 3.3. Merubah nama database □ Masih di jendela editor yang sama, non aktifkan perintah sp_databases. Kemudian ketikkan perintah berikut di baris berikutnya di jendela editor query analyzer. ALTER DATABASE akademik_xxxx_test MODIFY NAME = akademik_xxxx_test2 [email protected] STMIK AMIKOM YOGYAKARTA 45 Modul Praktikum Sistem Basis Data S1-TI □ Eksekusilah perintah tersebut dengan menekan tombol F5. □ Perintah diatas adalah untuk melakukan perubahan nama database yang sebelumnya akademik_xxxx_test menjadi akademik_xxxx_test2. □ Untuk melihat kembali hasil perubahan, maka aktifkan kembali perintah sp_databases di jendela editor dengan menghapus kembali tanda double dash (--) di depan baris perintah tersebut dan non aktifkan terlebih dahulu perintah Latihan 3.3. [email protected] STMIK AMIKOM YOGYAKARTA 46 Modul Praktikum Sistem Basis Data S1-TI Latihan 3.4. Menghapus database □ Non aktifkan terlebih dahulu semua perintah SQL yang ada di jendela editor, kemudian ketikkan perintah berikut: DROP DATABASE akademik_xxxx_test2 □ Eksekusilah perintah tersebut dengan menekan tombol F5. Jika sukses maka jendela hasil query akan menampilkan pesan konfirmasi di dalamnya. □ Untuk melihat apakah database akademik_xxxx_test2 berhasil di hapus, maka aktifkan kembali perintah sp_databases dengan me-non aktifkan terlebih dahulu perintah DROP DATABASE akademik_xxxx_test2. Eksekusilah perintah tersebut dengan menekan tombol F5. [email protected] STMIK AMIKOM YOGYAKARTA 47 Modul Praktikum Sistem Basis Data S1-TI □ Simpanlah semua perintah SQL yang sudah di ketikkan di jendela editor mulai dari Latihan 3.1. sampai Latihan 3.4. dengan nama file: modul3.sql yang di simpan di dalam direktori kerja anda masing-masing. Penugasan 1. Jelaskan perbedaan hasil antara perintah SQL Latihan 3.1. dan Latihan 3.2. 2. Tuliskan perintah untuk membuat database baru dengan nama akademik_xxxx_test3 yang maksimal ukuran data filenya 100 MB, pertumbuhannya tiap 20 MB dan lokasi data file dan log filenya otomatis di atur oleh SQL Server begitu pula dengan nama data file dan nama log filenya di tentukan otomatis oleh SQL Server. 3. Tuliskan perintah SQL untuk merubah nama database di soal nomor 2 (dua) menjadi akademik_latihan_xxxx. 4. Tuliskan perintah untuk menghapus database lebih dari satu dalam satu perintah SQL. (asumsi nama database yang akan di hapus: test1, test2, test3). 5. Apa yang terjadi jika perintah DROP DATABASE di lakukan pada sebuah database? [email protected] STMIK AMIKOM YOGYAKARTA 48 Modul Praktikum Sistem Basis Data S1-TI MODUL 4 DATA DEFINITION LANGUAGE (DDL) Bagian 2 Tujuan □ Mampu mengetahui konsep tabel dan tipe data. □ Mampu menggunakan perintah-perintah DDL SQL untuk mengelola tabel. Teori Singkat Tabel merupakan salah satu obyek penyusun dalam sebuah database. Dalam satu database bisa terdiri dari beberapa tabel di dalamnya. Di dalam tabel terdapat kolom-kolom (field-field). Di dalam kolom-kolom terdiri dari baris-baris data yang merupakan inti dari basis data itu sendiri. Untuk membuat tabel-tabel yang normal di dalam sebuah database tentu memerlukan beberapa proses. Tabel-tabel tersebut tidak datang dengan sendirinya. Beberapa metode yang biasa digunakan untuk membuat rancangan database adalah metode ER- Diagram dan Teknik Pengujian Normalisasi (yang di bahas di perkuliahan teori sistem basis data). Contoh kasus pada praktikum ini mengambil kasus database sebuah sistem database akademik sederhana, yang hanya melibatkan beberapa entitas (mahasiswa, dosen, mata kuliah, ruang kuliah). Berikut adalah rancangan ER-Diagram untuk kasus sistem database akademik. [email protected] STMIK AMIKOM YOGYAKARTA 49 Modul Praktikum Sistem Basis Data S1-TI nama_mk nama_mhs nim kode_mk alamat_mhs mengambil mahasiswa deskripsi_mk mata_kuliah digunakan untuk membimbing dosen nip ruang mengajar alamat_dosen kode_ruang kapasitas_ruang nama_dosen lokasi_ruang Berikut adalah kamus data untuk entitas-entitas tersebut: Tabel mahasiswa Kolom Atribut Keterangan Nim String(10) Nomor Induk Mahasiswa Nama_mhs String(50) Nama Mahasiswa Alamat_mhs String(100) Alamat Mahasiswa Kolom Atribut Keterangan Nik String(15) Nomor Induk Karyawan Nama_dosen String(50) Nama Dosen Alamat_dosen String(100) Alamat Dosen Tabel dosen [email protected] STMIK AMIKOM YOGYAKARTA 50 Modul Praktikum Sistem Basis Data S1-TI Tabel Mata Kuliah Kolom Atribut Keterangan Kode_mk String(6) Kode Mata Kuliah Nama_mk String(30) Nama Mata Kuliah Deskripsi_mk String(50) Deskripsi Mata Kuliah Kolom Atribut Keterangan Kode_ruang String(10) Kode Ruang Kuliah Lokasi_ruang String(30) Lokasi Ruang Kuliah Kapasitas_ruang Number Kapasitas Ruang Menampung Mahasiswa Tabel ruang Membuat Tabel CREATE TABLE adalah salah satu perintah SQL yang digunakan untuk membuat sebuah tabel dengan menentukan tipe masing-masing elemen datanya. Aturan penamaan tabel dan kolom: Harus diawali dengan huruf. Harus terdiri dari 1-30 panjang karakter. Harus berisikan hanya A-Z, a-z, 0-9, _, $, dan #. Tidak ada nama obyek yang sama (nama tabel, nama kolom) di dalam satu database yang dimiliki oleh user yang sama. Tidak menggunakan reserved word di dalam SQL Server. Perintah dasar: CREATE TABLE [schema.] table-name (column datatype [DEFAULT expr][,...]); Untuk perintah CREATE TABLE selengkapnya silahkan anda baca di SQL SERVER BOOKS ONLINE. Berikut adalah contoh perintah SQL pembuatan tabel dengan nama tabel pegawai beserta kolom-kolom dan tipe data di dalamnya. [email protected] STMIK AMIKOM YOGYAKARTA 51 Modul Praktikum Sistem Basis Data S1-TI CREATE TABLE [ database_name.[ owner ] . | owner. ] table_name ( { < column_definition > | column_name AS computed_column_expression | < table_constraint > ::= [ CONSTRAINT constraint_name ] } | [ { PRIMARY KEY | UNIQUE } [ ,...n ] ) [ ON { filegroup | DEFAULT } ] [ TEXTIMAGE_ON { filegroup | DEFAULT } ] < column_definition > ::= { column_name data_type } [ COLLATE < collation_name > ] [ [ DEFAULT constant_expression ] | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ] ] [ ROWGUIDCOL] [ < column_constraint > ] [ ...n ] < column_constraint > ::= [ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor ] [ON {filegroup | DEFAULT} ] ] ] | [ [ FOREIGN KEY ] REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ] ] | CHECK [ NOT FOR REPLICATION ] ( logical_expression ) } < table_constraint > ::= [ CONSTRAINT constraint_name ] { [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] { ( column [ ASC | DESC ] [ ,...n ] ) } [ WITH FILLFACTOR = fillfactor ] [ ON { filegroup | DEFAULT } ] ] | FOREIGN KEY [ ( column [ ,...n ] ) ] REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ] | CHECK [ NOT FOR REPLICATION ] ( search_conditions ) } [email protected] STMIK AMIKOM YOGYAKARTA 52 Modul Praktikum Sistem Basis Data S1-TI [1] CREATE TABLE pegawai ( [2] idpeg int identity (1,1), [3] nama varchar(200) not null, [4] jk char(1) not null, [5] statuspeg bit default 1, [6] agama varchar(2) constraint ck_agama check(agama in('I','P','K','B','H','LL')), [7] primary key (idpeg)) Type Data Setiap pembuatan field/kolom pada sebuah tabel, harus ditentukan tipe datanya. Tipe data merupakan jenis data yang akan disimpan pada sebuah tabel. Pada listing program di atas pada baris 2, 3 ,4 , 5, dan 6 terdapat tipe data yang berlainan, hal tersebut didasari oleh data yang berjenis apa yang Akan dimasukkan kedalam sebuah tabel. Contoh pada baris [2] terdapat tipe data “int” atau integer (data yang dimasukkan berupa data bilangan bulat), pada baris [3] adalah bertipe “Varchar(200)” (data yang dimasukkan berupa karakter string yang panjang maksimal adalah 200 karakter) . Nilai Null Null menyatakan bahwa sebuah kolom boleh berisi Null, nilai Null tidak sama dengan nol, kosong atau lainya, tetapi Null adalah tidak ada data yang dimasukkan, nilainya tidak diketahui. Null tidak boleh dipakai pada kolom-kolom yang mempunyai sifat Identity atau primary key. Auto Increament Adalah nilai yang dihasilkan dinaikkan secara berurutan, didefinisikan dengan menggunakan properti Identity, pada baris [2] nilai idpeg dimulai dari 1 dan dinaikkan berurutan 1 kali. Default Value Default menyebutkan nilai sebuah kolom apabila tidak ada nilai yang diberikan saat record dimasukkan. Pada baris [5] bertipe “bit”, nilai default status pegawai adalah 1, dapat diartikan nilai “1” adalah status pegawai tetap dan nilai “0” adalah status pegawai tidak tetap. [email protected] STMIK AMIKOM YOGYAKARTA 53 Modul Praktikum Sistem Basis Data S1-TI Constraint Constraint memberlakukan integritas data dan menjaga kualitas data dalam database. Contoh pada baris [6] hanya nilai ('I','P','K','B','H','LL') yang boleh diinputkan, selain nilai tersebut tidak boleh diinputkan, jika diinputkan maka server database akan memberikan pesan error. Rule Fungsinya sama dengan Constraint, tetapi jika pada Constraint dilakukan pada saat pembuatan tabel atau perubahan tabel, Rule dilakukan jika tabel sudah ada berikut kolom-kolomnya. Merubah Struktur Tabel ALTER TABLE Adalah perintah SQL yang digunakan untuk merubah struktur kolom pada tabel Berikut adalah perintah dasarnya: ALTER TABLE table { [ ALTER COLUMN column_name { new_data_type [ ( precision [ , scale ] ) ] [ COLLATE < collation_name > ] [ NULL | NOT NULL ] | {ADD | DROP } ROWGUIDCOL } ] | ADD { [ < column_definition > ] | column_name AS computed_column_expression } [ ,...n ] | [ WITH CHECK | WITH NOCHECK ] ADD { < table_constraint > } [ ,...n ] | DROP { [ CONSTRAINT ] constraint_name | COLUMN column } [ ,...n ] | { CHECK | NOCHECK } CONSTRAINT { ALL | constraint_name [ ,...n ] } | { ENABLE | DISABLE } TRIGGER { ALL | trigger_name [ ,...n ] } } ADD Digunakan untuk menambah kolom pada sebuah tabel. Contoh : ALTER TABLE pegawai ADD alamat varchar(300) [email protected] STMIK AMIKOM YOGYAKARTA 54 Modul Praktikum Sistem Basis Data S1-TI ALTER COLUMN Digunakan untuk merubah struktur kolom pada sebuah tabel (tipe data, nama kolom, range nilai tipe data, dan lain-lain). Contoh : ALTER TABLE pegawai ALTER COLUMN nama varchar(100) DROP Digunakan untuk menghapus kolom/field Contoh : ALTER TABLE pegawai DROP COLUMN nama Menghapus tabel Untuk menghapus tabel di dalam sebuah database menggunakan perintah DROP TABLE. Tabel yang di hapus dapat di dalam database yang sama dan dapat juga menghapus tabel di database yang lain. Berikut adalah perintah dasarnya: DROP TABLE table_name DROP TABLE Adalah perintah SQL yang digunakan untuk menghapus sebuah tabel dalam database. Contoh : DROP TABLE pegawai Latihan 4.1. Membuat Tabel □ Aktifkan query analyzer. Pada jendela editor query analyzer aktifkan terlebih dahulu database yang akan di gunakan untuk membuat tabel di dalamnya dengan perintah: USE nama-database. Pada contoh database yang di aktifkan adalah database akademik_xxxx yang sebelumnya sudah di buat di modul 3. [email protected] STMIK AMIKOM YOGYAKARTA 55 Modul Praktikum Sistem Basis Data S1-TI □ Ketikkan perintah SQL berikut di jendela editor. Pada contoh perintah sql untuk membuat tabel mahasiswa sesuai dengan struktur yang ada pada diagram ER diatas. Tabel mahasiswa Kolom Atribut Keterangan Nim String(10) Nomor Induk Mahasiswa Nama_mhs String(50) Nama Mahasiswa Alamat_mhs String(100) Alamat Mahasiswa CREATE TABLE mahasiswa ( Nim CHAR(10), Nama_mhs VARCHAR(50), Alamat_mhs VARCHAR(100) ); □ Eksekusilah perintah SQL tersebut dengan menekan tombol F5. □ Untuk melihat apakah tabel mahasiswa sudah berhasil dibuat, gunakan perintah berikut (sebelumnya non aktifkan terlebih dahulu perintah sql Latihan 4.1.): SELECT * FROM information_schema.tables [email protected] STMIK AMIKOM YOGYAKARTA 56 Modul Praktikum Sistem Basis Data S1-TI Latihan 4.2. Merubah Struktur Tabel □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah sql SELECT * FROM information_schema.tables yang di ketikkan sebelumnya. □ Ketikkan perintah berikut untuk melakukan perubahan pada tabel mahasiswa. Perubahan yang di lakukan adalah dengan merubah tipe data pada kolom nim yang semula CHAR(10) menjadi VARCHAR(15). ALTER TABLE mahasiswa ALTER COLUMN nim VARCHAR(15) [email protected] STMIK AMIKOM YOGYAKARTA 57 Modul Praktikum Sistem Basis Data S1-TI □ Eksekusilah perintah tersebut dengan menekan tombol F5. Latihan 4.3. Menghapus Tabel □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah sql Latihan 4.2. yang sudah di ketik sebelumnya. Kemudian ketikkan perintah berikut untuk menghapus tabel mahasiswa yang sudah dibuat. DROP TABLE mahasiswa □ Eksekusilah perintah tersebut dengan menekan tombol F5. □ Simpanlah semua perintah sql yang sudah anda buat di Latihan 4.1. sampai Latihan 4.3. dengan nama file modul4.sql di direktori kerja masing-masing. [email protected] STMIK AMIKOM YOGYAKARTA 58 Modul Praktikum Sistem Basis Data S1-TI Latihan 4.4. Membuat Tabel dalam database akademik_xxxx Dengan prosedur yang sama dengan Latihan 4.1. buatlah kembali tabel-tabel berikut □ dengan menggunakan perintah SQL. Gunakan jendela editor yang sama, dengan me-non aktifkan terlebih dahulu perintah SQL □ Latihan 4.3. Ketikkan semua perintah SQL untuk membuat semua tabel-tabel berikut kemudian □ eksekusi sekali saja dengan menekan tombol F5. Jangan lupa untuk menyimpan semua perintah SQL yang sudah di ketikkan di file □ modul4.sql yang sebelumnya sudah di simpan. Tabel mahasiswa Kolom Atribut Keterangan Nim CHAR(10) Nomor Induk Mahasiswa Nama_mhs VARCHAR(50) Nama Mahasiswa Alamat_mhs VARCHAR(100) Alamat Mahasiswa Kolom Atribut Keterangan Nik CHAR(15) Nomor Induk Karyawan Nama_dosen VARCHAR(50) Nama Dosen Alamat_dosen VARCHAR (100) Alamat Dosen Kolom Atribut Keterangan Kode_mk CHAR(6) Kode Mata Kuliah Nama_mk VARCHAR (30) Nama Mata Kuliah Deskripsi_mk VARCHAR (50) Deskripsi Mata Kuliah Tabel dosen Tabel Mata Kuliah [email protected] STMIK AMIKOM YOGYAKARTA 59 Modul Praktikum Sistem Basis Data S1-TI Tabel ruang Kolom Atribut Keterangan Kode_ruang CHAR(10) Kode Ruang Kuliah Lokasi_ruang VARCHAR (30) Lokasi Ruang Kuliah Kapasitas_ruang INTEGER Kapasitas Ruang Menampung Mahasiswa Penugasan 1. Tuliskan perintah SQL Query untuk membuat tabel-tabel yang ada di Latihan 4.4. 2. Tuliskan langkah-langkah untuk merubah struktur tabel pegawai pada kolom nama lebar datanya yang semula 200 menjadi 25 menggunakan perintah SQL Query. 3. Jelaskan perbedaan dan persamaan antara tipe data CHAR dan VARCHAR. 4. Apa maksud pilihan Allow Nulls di dalam properties tabel, pada saat membuat tabel baru di SQL Server. 5. Jelaskan perbedaan nilai NULL (NULL Values) dengan Nilai 0 atau Nilai Kosong. [email protected] STMIK AMIKOM YOGYAKARTA 60 Modul Praktikum Sistem Basis Data S1-TI MODUL 5 DATA DEFINITION LANGUAGES (DDL) (Bagian 3) Tujuan □ Mampu mendefinisikan batasan-batasan (constraint) dalam tabel di SQL Server □ Mampu menjelaskan fungsi dan cara penggunaan masing-masing constraint dalam tabel di SQL Server Teori Singkat Constraint/ batasan-batasan di dalam SQL Server memiliki fungsi untuk menjamin konsistensi data dan integritas data di dalam tabel ketika di isikan (lihat kembali tujuan normalisasi dalam sebuah tabel/ kenapa sebuah tabel harus di normalisasi). Dalam SQL Server ada beberapa jenis constraint, yaitu: □ PRIMARY KEY □ FOREIGN KEY □ UNIQUE □ NOT NULL □ CHECK Constraint dapat di buat pada level tabel atau level kolom, kecuali untuk constraint NOT NULL yang hanya dapat dibuat pada level kolom. PRIMARY KEY PRIMARY KEY atau Kunci Utama dalam sebuah tabel merupakan kunci yang akan membatasi pengisian record dalam sebuah tabel agar tidak duplikat (redundant). Syarat sebuah kolom/ field dijadikan PRIMARY KEY dalam sebuah tabel adalah unik dan tidak boleh kosong (NOT NULL). Artinya bahwa nilai record-record dalam kolom yang dijadikan PRIMARY KEY haruslah unik satu sama lain dan nilainya tidak boleh di kosongkan. Jika sebuah kolom di beri constraint PRIMARY KEY maka sudah pasti kolom tersebut nilainya tidak boleh kosong atau harus berisi data. [email protected] STMIK AMIKOM YOGYAKARTA 61 Modul Praktikum Sistem Basis Data S1-TI Berikut adalah perintah dasar pembuatan constraint PRIMARY KEY: CONSTRAINT pk_(nama-tabel)_(nama-kolom) [jenis_constraint] Keterangan: PK = Singkatan dari jenis constraint yaitu PRIMARY KEY Nama-tabel = Nama tabel tempat constraint tersebut di buat Nama-kolom = Nama kolom yang akan di beri constraint Jenis_constraint = Jenis-jenis constraint yang akan dibuat (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK. Contoh: Contoh berikut adalah contoh perintah pembuatan constraint PRIMARY KEY pada kolom nip dengan nama constraint-nya pk_dosen_nip di tabel dosen pada level kolom. CREATE TABLE dosen ( nip INTEGER CONSTRAINT pk_dosen_nip PRIMARY KEY , nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255) ); Berikut contoh pembuatan constraint PRIMARY KEY pada level tabel untuk kolom nip di tabel dosen.. CREATE TABLE dosen ( nip INTEGER, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255) CONSTRAINT pk_dosen_nip PRIMARY KEY ); FOREIGN KEY FOREIGN KEY atau KUNCI TAMU merupakan kunci yang digunakan sebagai penghubung antara satu tabel dengan tabel lainnya. Jika sebuah tabel memiliki FOREIGN KEY maka tabel tersebut dapat di sebut juga dengan tabel kedua dimana tabel utamanya adalah tabel yang memiliki kolom PRIMARY KEY dari FOREIGN KEY tersebut. Perintah dasarnya: CONSTRAINT fk_(nama-tabel)_(nama-kolom) FOREIGN KEY REFERENCES tabel-referensi(kolom-referensi) [email protected] STMIK AMIKOM YOGYAKARTA 62 Modul Praktikum Sistem Basis Data S1-TI Keterangan: FK = Singkatan dari FOREIGN KEY Nama-Tabel = Nama tabel tempat FOREIGN KEY tersebut dibuat. Nama-Kolom = Nama Kolom yang akan dijadikan FOREIGN KEY FOREIGN KEY = Jenis constraint-nya, yaitu FOREIGN KEY REFERENCES = Kata kunci untuk merelasikan tabel ini ke tabel utamanya (tabel yang memiliki PRIMAR KEY) Tabel-Referensi = Tabel yang akan dijadikan referensi (tabel utama). Kolom-Referensi = Kolom yang menjadi referensi dari tabel utama. Berikut adalah contoh penggunaan FOREIGN KEY pada level kolom dan pada level tabel: CREATE TABLE mahasiswa ( nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY KEY, nip INTEGER CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip), nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255) ); CREATE TABLE mahasiswa ( nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY KEY, nip INTEGER nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255), CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip) ); Dalam SQL Server ada beberapa pilihan yang dapat digunakan ketika FOREIGN KEY di berikan pada sebuah kolom dalam tabel, yaitu: [ON DELETE {CASCADE | NO ACTION} ] Pilihan ini akan menentukan aksi apa yang akan di lakukan terhadap sebuah baris/ record dalam tabel, jika record tersebut memiliki hubungan referensi (referential relationship) dan record yang di referensi di hapus (DELETE) dari tabel induk. Defaultnya adalah NO ACTION. [email protected] STMIK AMIKOM YOGYAKARTA 63 Modul Praktikum Sistem Basis Data S1-TI Jika pilihan CASCADE di gunakan, sebuah record akan di hapus dari tabel referensinya jika record tersebut di hapus dari tabel induknya. Jika pilihan NO ACTION yang digunakan, SQL Server akan menampilkan pesan kesalahan dan proses penghapusan record pada tabel induk di batalkan (ROLLED BACK). Contohnya, pada database akademik_xxxx, tabel mahasiswa memiliki hubungan referensi (referential relationship) dengan tabel dosen. FOREIGN KEY mahasiswa.nik memiliki hubungan referensi dengan PRIMARY dosen.nik. Jika perintah DELETE di lakukan pada sebuah record di tabel dosen, dan properties ON DELETE CASCADE di berikan pada kolom mahasiswa.nik, SQL Server melakukan pengecekan terhadap satu atau lebih record yang memiliki ketergantungan di tabel mahasiswa. Jika ada record yang memiliki ketergantungan tersebut, maka record tersebut akan di hapus dari tabel mahasiswa sesuai dengan record yang di hapus di tabel dosen. Dengan kata lain, jika pilihan NO ACTION yang digunakan, SQL Server akan menampilkan pesan kesalahan dan membatalkan penghapusan data untuk record di tabel dosen tersebut jika terdapat paling tidak satu record di tabel mahasiswa yang berhubungan dengan record tersebut. [ON UPDATE {CASCADE | NO ACTION} ] Sama dengan [ON DELETE {CASCADE | NO ACTION} ], yang membedakan jika ON DELETE aksi dilakukan jika record di hapus (DELETE), pada ON UPDATE aksi dilakukan jika record di rubah (UPDATE). Berikut adalah contoh pemberian pilihan ON DELETE CASCADE dan ON UPDATE CASCADE pada sebuah tabel untuk kolom yang menjadi FOREIGN KEY. CREATE TABLE mahasiswa ( nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY KEY, nip INTEGER CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip) ON DELETE CASCADE ON UPDATE CASCADE, nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255) ); [email protected] STMIK AMIKOM YOGYAKARTA 64 Modul Praktikum Sistem Basis Data S1-TI UNIQUE Constraint UNIQUE merupakan sebuah constraint yang akan membatasi pengisian record yang sama kedalam sebuah kolom jika kolom tersebut di berikan constraint UNIQUE dalam sebuah tabel. Constraint ini hampir sama dengan PRIMARY KEY, yaitu menjamin bahwa setiap nilai record yang ada dalam sebuah kolom UNIQUE tidak boleh ada yang sama (unik satu sama lain). UNIQUE dapat dibuat pada level kolom ataupun level tabel. Sama dengan constraint PRIMARY KEY, FOREIGN KEY, CHECK. Perintah dasarnya: CONSTRAINT UQ_(nama-tabel)_(nama-kolom) UNIQUE Keterangan: UQ = Singkatan dari UNIQUE Nama-Tabel = Nama tabel tempat UNIQUE tersebut dibuat. Nama-Kolom = Nama Kolom yang akan dijadikan UNIQUE UNIQUE = Jenis constraint-nya, yaitu UNIQUE Berikut adalah contoh penggunaan UNIQUE dan PRIMARY KEY secara bersamaan pada level kolom: CREATE TABLE dosen ( nip INTEGER CONSTRAINT pk_dosen_nip PRIMARY KEY , nama_dosen VARCHAR(45) CONSTRAINT UQ_dosen_nama UNIQUE , alamat_dosen VARCHAR(255) ); NOT NULL NOT NULL merupakan constraint yang digunakan untuk menjamin pengisian record ke sebuah tabel agar nilai record tersebut harus berisi data. Sebuah kolom jika di berikan constraint NOT NULL, maka kolom tersebut harus berisikan nilai untuk recordnya dan tidak boleh di kosongkan. NOT NULL hanya bisa di definisikan dalam sebuah tabel pada level kolom dan tidak bisa pada [email protected] STMIK AMIKOM YOGYAKARTA 65 Modul Praktikum Sistem Basis Data S1-TI level tabel. Perbedaan antara NOT NULL dan PRIMARY KEY adalah bahwa setiap kolom yang dijadikan PRIMARY KEY pasti NOT NULL dan tidak berlaku sebaliknya. Berikut adalah contoh penggunaan constraint NOT NULL: CREATE TABLE dosen ( nip INTEGER CONSTRAINT PK_dosen_nip PRIMARY KEY NOT NULL , nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255) ); CHECK CHECK merupakan constraint yang memaksa integritas domain dengan membatasi pemasukan nilai yang mungkin di masukkan ke dalam sebuah kolom atau beberapa kolom. Hampir sama dengan constraint FOREIGN KEY dalam hal bagaimana mengendalikan nilai yang akan di masukkan kedalam sebuah kolom. Perbedaannya adalah pada bagaimana keduanya menentukan nilai mana yang valid. FOREIGN KEY mendapatkan daftar nilai valid dari tabel yang lain, sementara CHECK menentukan nilai valid dari ekspresi logika yang tidak menggunakan data yang berdasarkan data pada kolom yang lain. Contohnya, sangat mungkin bagi kita membatasi jangkauan nilai untuk kolom gaji dengan membuat constraint CHECK yang membolehkan data yang memiliki jangkauan dari $15,000 hingga $100,000. Pembatasan ini akan mencegah pengisian gaji di luar jangkauan nilai gaji normal. Untuk kasus tersebut dapat dibuat constraint CHECK dengan menggunakan ekspresi logika (BOOLEAN) yang mengembalikan nilai TRUE atau FALSE berdasarkan operator logika yang dibuat. Berikut adalah contoh ekspresi logikanya: Gaji >= 15000 AND salary <= 100000 Dalam satu kolom dapat di terapkan lebih dari satu constraint CHECK. Pengecekannya dilakukan berdasarkan urutan pembuatan constraint CHECK tersebut. Selain itu satu constraint CHECK dapat di terapkan di lebih dari satu kolom (multiple columns) dengan cara membuatnya pada level tabel. Contohnya, Constraint Multiple CHECK dapat digunakan untuk memastikan bahwa [email protected] STMIK AMIKOM YOGYAKARTA 66 Modul Praktikum Sistem Basis Data S1-TI tiap record dalam kolom country dengan nilai USA juga memiliki 2 karakter nilai pada kolom state. Hal ini memungkinkan pengecekan kondisi lebih dari satu dalam satu tempat. Berikut adalah contoh penggunaan constraint CHECK dalam sebuah tabel: CREATE TABLE rekening ( No_rekening CHAR(15) CONSTRAINT pk_rekening_no_rekening NOT NULL, Kode_cabang CHAR(5) CONSTRAINT fk_rekening_kode_cabang FOREIGN KEY REFERENCES cabang_bank(kode_cabang), Pin CHAR(6), Saldo MONEY CONSTRAINT chk_rekening_saldo CHECK (saldo > 50000) Sebelum memulai latihan-latihan selanjutnya untuk membuat tabel dengan constraint di dalamnya, maka perlu di ingatkan kembali masalah Diagram ER akademik yang di jelaskan di modul 4. selanjutnya berikut hasil dari rancangan diagram ER yang ada di modul 4. Untuk mempelajari bagaimana merancang database menggunakan metode ER, silahkan lihat materi tambahan contoh pembuatan ERD yang di sertakan bersamaan dengan praktikum modul 5 di mulai. Tabel mahasiswa Kolom Atribut Keterangan Nim CHAR(10), PRIMARY KEY, NOT NULL PK_mahasiswa_nim Nik CHAR(15), FOREIGN KEY FK_mahasiswa_nik Nama_mhs VARCHAR(45) Nama Mahasiswa Alamat_mhs VARCHAR(255) Alamat Mahasiswa Tabel dosen Kolom Atribut Keterangan Nik CHAR(15), PRIMARY KEY, NOT NULL PK_dosen_nik Nama_dosen VARCHAR(45) Nama Dosen Alamat_dosen VARCHAR(255) Alamat Dosen [email protected] STMIK AMIKOM YOGYAKARTA 67 Modul Praktikum Sistem Basis Data S1-TI Tabel Mata Kuliah Kolom Atribut Keterangan Kode_mk CHAR(10), PRIMARY KEY, NOT NULL PK_mata_kuliah_kode_mk Nik CHAR(15), FOREIGN KEY FK_mata_kuliah_nik Kode_ruang CHAR(10), FOREIGN KEY FK_mata_kuliah_kode_ruang Nama_mk VARCHAR(45) Nama Mata Kuliah Deskripsi_mk VARCHAR(255) Deskripsi Mata Kuliah Tabel ruang Kolom Atribut Keterangan Kode_ruang CHAR(10), PRIMARY KEY, NOT NULL PK_ruang_kode_ruang Lokasi_ruang VARCHAR(45) Lokasi Ruang Kuliah Kapasitas_ruang INTEGER, CHECK > 10 dan < 80 CHK_ruang_kapasitas_ruang Tabel mahasiswa_ambil_mata_kuliah Kolom Atribut Keterangan Nim CHAR(10), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_nim ON DELETE CASCADE, ON UPDATE CASCADE Nik CHAR(15), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_nik ON DELETE CASCADE, ON UPDATE CASCADE Untuk membuat tabel-tabel diatas menggunakan perintah SQL di jendela editor Query Analyzer, berikut beberapa tips yang perlu di perhatikan: □ Buatlah tabel-tabel yang paling utama terlebih dahulu, yaitu tabel-tabel yang tidak memiliki FOREIGN KEY. □ Membuat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan tabel yang di buat di tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FOREIGN KEY yang paling sedikit ke yang paling banyak. Jika ada tabel yang tidak bisa dibuat, maka dilewatkan saja dahulu. □ Ulangi tahap ke-2 sampai semua tabel selesai dibuat. [email protected] STMIK AMIKOM YOGYAKARTA 68 Modul Praktikum Sistem Basis Data S1-TI Latihan 5.1. Membuat Tabel dengan Constraint Untuk membuat constraint menggunakan perintah SQL Query di SQL Server, harus menggunakan Query Analyzer. Berikut adalah contoh struktur tabel new_dosen beserta perintah SQL untuk membuat tabel new_dosen dengan beberapa constraint di dalamnya. Nama tabel: new_dosen No 1 2 3 4 Field Nik Nama_dosen Alamat_dosen No_telp Type CHAR(15) Varchar(45) Varchar(255) Varchar(20) Desc PK, Not Null Not Null, UNIQUE Not Null, Default ‘JOGJA’ CREATE TABLE new_dosen ( id_nasabah CHAR(15) NOT NULL CONSTRAINT PK_dosen_nik PRIMARY KEY, nama_dosen VARCHAR(45) NOT NULL CONSTRAINT UQ_dosen_nama_dosen UNIQUE, alamat_dosen VARCHAR(255) NOT NULL DEFAULT ‘JOGJA’, no_telp VARCHAR(20) ); □ Aktifkan Query Analyzer untuk mengetikkan perintah SQL Query diatas. Sebelumnya aktifkan terlebih dahulu database akademik_xxxx dengan mengetikkan perintah USE akademik_xxxx. □ Tabel new_dosen akan dibuat di dalam database akademik_xxxx. Latihan 5.2. Membuat tabel Dosen □ Masih di jendela editor yang sama dengan Latihan 5.1., non aktifkan terlebih dahulu perintah SQL Latihan 5.1. □ Ketikkan perintah SQL berikut untuk membuat tabel baru dengan nama dosen sesuai dengan struktur yang ada. [email protected] STMIK AMIKOM YOGYAKARTA 69 Modul Praktikum Sistem Basis Data S1-TI CREATE TABLE dosen ( nik CHAR(15)NOT NULL CONSTRAINT PK_dosen_nik PRIMARY KEY, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255) ); □ Eksekusi perintah SQL dengan menekan tombol F5. □ Jika ada pesan seperti berikut di jendela hasil query setelah mengeksekusi perintah diatas, berarti nama tabel dosen telah ada di dalam database akademik_xxxx. (ingat di modul 4 tabel-tabel tersebut telah dibuat sebelumnya). □ Solusinya adalah dengan cara menghapus terlebih dahulu tabel-tabel yang telah di buat di modul 4 dengan menggunakan perintah DROP TABLE, kemudian dibuat ulang dengan struktur yang baru di modul 5 atau cara yang lain adalah dengan melakukan perubahan struktur tabel-tabel tersebut menggunakan perintah ALTER TABLE. [email protected] STMIK AMIKOM YOGYAKARTA 70 Modul Praktikum Sistem Basis Data S1-TI Latihan 5.3. Merubah Struktur Tabel dengan Merubah Tipe data dan Lebar data □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah SQL Latihan 5.2. ketikkan perintah berikut untuk melakukan perubahan constraint yang awalnya boleh Null menjadi tidak boleh Null (NOT NULL). ALTER TABLE ruang ALTER COLUMN kode_ruang CHAR(10) NOT NULL □ Eksekusi perintah tersebut dengan menekan tombol F5. □ Non aktifkan perintah SQL diatas, kemudian ketikkan perintah berikut untuk merubah lebar data kolom lokasi_ruang dari sebelumnya VARCHAR(30) menjadi VARCHAR(45). ALTER TABLE ruang ALTER COLUMN lokasi_ruang VARCHAR(45) □ Eksekusi perintah diatas dengan menekan tombol F5. Latihan 5.4. Merubah Struktur tabel dengan menambah Constraint PRIMARY KEY □ Masih di jendela editor yang sama dengan latihan-latihan sebelumnya. Non aktifkan perintah SQL Latihan 5.3. kemudian ketikkan perintah SQL berikut untuk menambahkan Constraint PRIMARY KEY untuk kolom kode_ruang di tabel ruang dengan nama pk_ruang_kode_ruang. ALTER TABLE ruang ADD CONSTRAINT pk_ruang_kode_ruang PRIMARY KEY(kode_ruang) Latihan 5.5. Menambah constraint CHECK dengan merubah cara merubah Struktur tabel □ Masih di jendela editor yang sama dengan latihan-latihan sebelumnya. Non aktifkan perintah SQL Latihan 5.4. kemudian ketikkan perintah SQL berikut untuk menambahkan constraint [email protected] STMIK AMIKOM YOGYAKARTA 71 Modul Praktikum Sistem Basis Data S1-TI CHECK untuk kolom kapasitas_ruang di tabel ruang dengan nama chk_ruang_kapasitas_ruang dengan membatasi agar pengisian nilai untuk kapasitas ruang antara nilai 10 sampai dengan maksimal 100. ALTER TABLE ruang ADD CONSTRAINT chk_ruang_kapasitas_ruang CHECK (kapasitas_ruang BETWEEN 10 AND 100) □ Simpanlah semua perintah SQL mulai Latihan 5.1. sampai Latihan 5.5. di query analyzer dengan nama file modul5.sql di direktori kerja masing-masing. Latihan 5.6. Membuat tabel-tabel pendukung sesuai dengan rancangan yang ada □ Masih di jendela editor yang sama (file modul5.sql), buatlah perintah-perintah SQL untuk membuat tabel-tabel sesuai dengan struktur berikut. □ Jika cara yang di pilih adalah membuat ulang tabel-tabel tersebut dari awal, maka ikuti langkah-langkah di Latihan 5.1. sedangkan jika tabel-tabel yang sudah ada ingin di rubah strukturnya tanpa harus membuat ulang, maka ikutilah langkah-langkah Latihan 5.2. sampai Latihan 5.5. □ Jangan lupa untuk menyimpan kembali perintah-perintah SQL tersebut di file modul5.sql. Tabel mahasiswa Kolom Atribut Keterangan Nim CHAR(10), PRIMARY KEY, NOT NULL PK_mahasiswa_nim Nik CHAR(15), FOREIGN KEY, FK_mahasiswa_nik ON DELETE CASCADE, ON UPDATE CASCADE Nama_mhs VARCHAR(45) Nama Mahasiswa Alamat_mhs VARCHAR(255) Alamat Mahasiswa Tabel dosen Kolom Atribut Keterangan Nik CHAR(15), PRIMARY KEY, NOT NULL PK_dosen_nik Nama_dosen VARCHAR(45) Nama Dosen Alamat_dosen VARCHAR(255) Alamat Dosen [email protected] STMIK AMIKOM YOGYAKARTA 72 Modul Praktikum Sistem Basis Data S1-TI Tabel Mata Kuliah Kolom Atribut Keterangan Kode_mk CHAR(10), PRIMARY KEY, NOT NULL PK_mata_kuliah_kode_mk Nik CHAR(15), FOREIGN KEY, FK_mata_kuliah_nik ON DELETE CASCADE, ON UPDATE CASCADE Kode_ruang CHAR(10), FOREIGN KEY FK_mata_kuliah_kode_ruang Nama_mk VARCHAR(45) Nama Mata Kuliah Deskripsi_mk VARCHAR(255) Deskripsi Mata Kuliah Tabel ruang Kolom Atribut Keterangan Kode_ruang CHAR(10), PRIMARY KEY, NOT NULL PK_ruang_kode_ruang Lokasi_ruang VARCHAR(45) Lokasi Ruang Kuliah Kapasitas_ruang INTEGER, CHECK > 10 dan < 80 CHK_ruang_kapasitas_ruang Tabel mahasiswa_ambil_mata_kuliah Kolom Atribut Keterangan Nim CHAR(10), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_nim ON DELETE CASCADE, ON UPDATE CASCADE Kode_mk CHAR(15), FOREIGN KEY, FK_mahasiswa_ambil_mata_kuliah_kode_mk ON DELETE CASCADE, ON UPDATE CASCADE [email protected] STMIK AMIKOM YOGYAKARTA 73 Modul Praktikum Sistem Basis Data S1-TI Penugasan 1. Jika ada record yang di isikan di tabel anak (tabel FOREIGN KEY) dan record tersebut tidak terdapat di tabel induk (tabel PRIMARY KEY). Apa yang terjadi? 2. Pilihan apa yang di gunakan jika akan menghapus semua record yang berelasi di tabel anak (tabel FOREIGN KEY) secara otomatis, jika record yang berhubungan di tabel induk di hapus (tabel PRIMARY KEY). 3. Jika sebuah tabel sudah memiliki data-data di dalamnya pilihan apa yang digunakan jika semua data-data tersebut di abaikan nilainya dalam proses pembuatan constraint CHECK. 4. Tuliskan perintah SQL Query untuk menambahkan sebuah constraint PRIMARY KEY dengan nama pk_mata_kuliah_kode_mk pada kolom kode_mk di tabel mata kuliah. 5. Tuliskan perintah SQL Query untuk membuat constraint FOREIGN KEY pada kolom nik dengan nama fk_mahasiswa_nik pada tabel mahasiswa yang berhubungan dengan PRIMARY KEY (nik) di tabel dosen dengan opsi ON DELETE CASCADE, ON UPDATE CASCADE. [email protected] STMIK AMIKOM YOGYAKARTA 74 Modul Praktikum Sistem Basis Data S1-TI MODUL 6 DATA DIAGRAM Tujuan □ Mampu membuat relasi antar tabel dalam database sesuai dengan rancangan ER Diagram yang ada □ Mampu mengoperasikan fitur Data Diagram di SQL Server untuk membuat relasi antar tabel dalam database. Teori Singkat Data Diagram merupakan salah satu fitur yang di sediakan oleh SQL Server untuk membuat diagram relasi antar tabel dalam sebuah database. Hasil dari data diagram adalh sebuah diagram yang menggambarkan hubungan antar tabel satu dengan tabel lainnya dalam sebuah database berdasarkan keterkaitan kunci-kunci yang ada di dalam tabel. (PRIMARY KEY dan FOREIGN KEY). Fitur Data Diagram sendiri terdapat di dalam Enterprise Manager. Latihan 6.1. Membuat Data Diagram Baru □ Untuk membuat data diagram baru, aktifkan enterprise manager terlebih dahulu. Melalui menu Start Æ Programs Æ Microsoft SQL Server Æ Enterprise Manager. □ Pada jendela Enterprise Manager, aktifkan obyek database yang akan dibuat diagramnya dengan cara mengklik database tersebut. Pada contoh database akademik_xxxx yang di aktifkan. [email protected] STMIK AMIKOM YOGYAKARTA 75 Modul Praktikum Sistem Basis Data S1-TI □ Pada obyek Diagrams, klik kanan kemudian pilih sub menu New Database Diagram... □ Pada jendela Create Database Diagram Wizard, klik Next untuk memulai proses pembuatan diagram dengan bantuan secara bertahap oleh SQL Server. [email protected] STMIK AMIKOM YOGYAKARTA 76 Modul Praktikum Sistem Basis Data S1-TI □ Pada halaman selanjutnya pilihlah tabel-tabel apa saja yang akan di buat diagramnya dengan cara memilih satu-satu tabelnya kemudian menekan tombol Add >. Pada contoh tabel yang akan di libatkan adalah: dosen, ruang, mahasiswa, mata_kuliah, mahasiswa_ambil_mata_kuliah. Aktifkan pilihan Add related tables automatically untuk membuat diagram secara otomatis berdasarkan hubungan kunci-kunci yang ada di dalam masing-masing tabel. Sedangkan untuk level dari relasi tabel di abaikan saja (biarkan default-nya 1). [email protected] STMIK AMIKOM YOGYAKARTA 77 Modul Praktikum Sistem Basis Data S1-TI □ Setelah semua tabel yang terlibat di pilih, maka tekan tombol Next. □ Setelah itu tekan tombol Finish untuk menyelesaikan proses pembuatan diagram. Maka SQL Server akan membuat diagram beserta relasi masing-masing tabel secara otomatis berdasarkan keterkaitan antar kunci (PRIMARY KEY dan FOREIGN KEY) di masingmasing tabel. [email protected] STMIK AMIKOM YOGYAKARTA 78 Modul Praktikum Sistem Basis Data S1-TI □ Simpanlah diagram yang baru dibuat dengan nama akademik_xxxx, dimana xxxx merupakan 4 (empat) digit NIM. Setelah itu tekan tombol OK. □ Diagram akademik_xxxx sudah terdaftar di obyek Diagrams dalam database akdemik_xxxx. [email protected] STMIK AMIKOM YOGYAKARTA 79 Modul Praktikum Sistem Basis Data S1-TI Penugasan 1. Untuk merelasikan antar tabel di dalam sebuah database syaratnya apa? Jelaskan. 2. Jika ada sebuah tabel yang tidak memiliki kunci kemudian di relasikan dengan tabel lain yang memiliki kunci. Apa yang terjadi? 3. Pilihan apa yang akan di gunakan jika akan membuat diagram relasi tabel secara manual walaupun di masing-masing tabel sudah memiliki kunci. [email protected] STMIK AMIKOM YOGYAKARTA 80 Modul Praktikum Sistem Basis Data S1-TI MODUL 7 DATA MANIPULATION LANGUAGE (DML) Tujuan □ Mampu mendefinisikan perintah-perintah SQL Data Manipulation Language □ Mampu mengelola data-data dalam database menggunakan perintah-perintah DML Teori Singkat DML yaitu bahasa yang berhubungan dengan proses manipulasi data pada tabel, record. Misalnya : INSERT, UPDATE, DELETE. Mengisikan Data ke dalam Tabel (INSERT) Perintah ini digunakan untuk menambah data/ record kedalam tabel. Perintah dasar: INSERT INTO table [(column [, column...])] VALUES (value [, value...]); Mengisikan Baris dengan Nilai Null □ Metode Implisit, yaitu meniadakan kolom dari daftar kolom. INSERT INTO rekening (no_rekening ,pin ) VALUES (112,’1122’); □ Metode Eksplisit, yaitu dengan mengisikan kata kunci NULL dalam klausa VALUES. INSERT INTO rekening VALUES (113, NULL ,’1133’, NULL ); [email protected] STMIK AMIKOM YOGYAKARTA 81 Modul Praktikum Sistem Basis Data S1-TI Meng-copy data dari tabel lain INSERT INTO nasabah_jakal(id, nama, alamat) SELECT id_nasabah, nama_nasabah, alamat_nasabah FROM nasabah WHERE alamat_nasabah LIKE ‘%kali%’; Merubah data dalam Tabel (UPDATE) Perintah ini digunakan untuk mengubah data/ record dalam tabel. Perintah dasar: UPDATE table SET column = value [, column = value, ...] [WHERE condition]; Menghapus Data dalam tabel (DELETE) Perintah ini digunakan untuk menghapus data/ record dalam sebuah tabel. Perintah dasar: DELETE [FROM] table [WHERE condition]; Latihan 7.1. Menambahkan satu record ke dalam tabel menggunakan SQL. □ Untuk menambahkan record ke dalam sebuah tabel menggunakan perintah sql, aktifkan terlebih dahulu query analyzer dengan cara mengakses menu Start Æ Programs Æ Microsoft SQL Server Æ Query Analyzer. □ Pada jendela editor query analyzer, ketikkan perintah USE akademik_xxxx untuk mengaktifkan database akademik_xxxx untuk mengisikan data ke dalam tabel-tabel yang terdapat dalam database akademik_xxxx. □ Non aktifkan perintah USE akademik_xxxx dengan menyisipkan tanda double dash (--) di depan perintah tersebut. [email protected] STMIK AMIKOM YOGYAKARTA 82 Modul Praktikum Sistem Basis Data S1-TI □ Kemudian di baris selanjutnya ketikkan perintah berikut untuk menyisipkan record ke dalam tabel. Pada contoh akan di isikan satu record kedalam tabel dosen. 1903001 Muhammad Rudyanto Arief Perum Merapi View 20 INSERT INTO dosen (nik, nama_dosen, alamat_dosen) VALUES (‘1903001’, ‘Muhammad Rudyanto Arief’,’Perum Merapi View 20’); atau INSERT INTO cabang_bank VALUES (‘1903001’, ‘Muhammad Rudyanto Arief’,’Perum Merapi View 20’); □ Perintah diatas kedua-duanya sama fungsinya. Digunakan untuk mengisikan data kedalam tabel dosen. Perbedaannya jika pada perintah pertama nama kolom-kolomnya disebutkan terlebih dahulu sedangkan pada perintah kedua nama kolomnya tidak disebutkan. □ Eksekusilah salah satu dari perintah diatas dengan menekan tombol F5. Latihan 7.2. Merubah semua record/ data dalam tabel □ Untuk merubah record dalam tabel digunakan perintah UPDATE. Masih di jendela editor yang di query analyzer, non aktifkan perintah SQL Latihan 5.1. dengan cara menggunakan tanda /* di awal dan di akhiri dengan tanda */. [email protected] STMIK AMIKOM YOGYAKARTA 83 Modul Praktikum Sistem Basis Data S1-TI □ Ketikkan perintah SQL berikut di baris berikutnya untuk merubah record dalam tabel. Pada contoh semua record yang ada di tabel dosen akan di rubah alamatnya menjadi ‘Jl. Kaliurang KM 9.5 No. 92’. UPDATE dosen SET alamat_dosen = ‘Jl. Kaliurang KM 9.5 No. 92’ □ Eksekusi perintah tersebut dengan menekan tombol F5. Latihan 7.3. Merubah record/ data dalam tabel sesuai kondisi/ syarat yang diberikan □ Selain merubah semua record dalam tabel, perintah UPDATE dapat di kombinasikan dengan klausa WHERE untuk menyeleksi record-record tertentu saja yang berubah nilainya. Pada contoh alamat dosen pada tabel dosen akan berubah menjadi ‘Jl. Kaliurang KM 9.5 No. 92’ untuk dosen yang memiliki nomor induk ‘1903001’. □ Sebelum mengetikkan perintah berikut, non aktifkan terlebih dahulu perintah SQL Latihan 5.2. □ Kemudian ketikkan perintah berikut di baris berikutnya di jendela editor yang sama. [email protected] STMIK AMIKOM YOGYAKARTA 84 Modul Praktikum Sistem Basis Data S1-TI UPDATE dosen SET alamat_dosen = 'Jl. Kaliurang KM 9.5 No. 92' WHERE nik='1903001'; □ Eksekusi perintah tersebut dengan menekan tombol F5. Latihan 7.4. Menghapus seluruh record/ data dalam tabel □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah SQL Latihan 5.3. yang di ketik sebelumnya. □ Ketikkan perintah SQL berikut untuk menghapus seluruh record dalam tabel. Contoh berikut adalah perintah untuk menghapus seluruh record yang ada dalam tabel dosen. DELETE FROM dosen; □ Eksekusi perintah tersebut dengan menekan tombol F5. [email protected] STMIK AMIKOM YOGYAKARTA 85 Modul Praktikum Sistem Basis Data S1-TI Latihan 7.5. Menghapus record/ data dalam tabel sesuai kondisi/ syarat yang diberikan □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah SQL Latihan 5.4. □ Ketikkan perintah SQL berikut untuk melakukan penghapusan record dari tabel berdasarkan syarat/ kondisi yang diberikan. Contoh berikut adalah perintah SQL untuk menghapus record dalam tabel dosen yang memiliki nomor induk karyawan ‘1903001’. DELETE FROM dosen WHERE nik = ‘1903001’; □ Eksekusi perintah tersebut dengan menekan tombol F5. □ Simpanlah perintah-perintah SQL yang di ketikkan di Latihan 7.1. sampai dengan Latihan 7.5. dengan nama file modul7.sql di direktori kerja masing-masing. Penugasan 1. Isikan record-record baru di tabel dosen, mahasiswa, mata kuliah, mahasiswa ambil mata kuliah, ruang sesuai dengan data-data yang ada di tabel berikut menggunakan perintah SQL. Dosen Nik Nama dosen Alamat dosen 1903001 1903002 1903003 1903004 1903005 Muhammad Rudyanto Arief Muhammad Rifat Arief Ruth Damayanthie Arief Neneng Sundarsih Rahayana Perum Merapi View 20 Ploso Kuning 31 Jl. Kaliurang 95 Perum Timoho Asri 22 Jl. Kaliurang 92 [email protected] STMIK AMIKOM YOGYAKARTA 86 Modul Praktikum Sistem Basis Data S1-TI Mahasiswa Nim Nik Nama mahasiswa Alamat mahasiswa 06.11.0001 06.11.0002 06.11.0003 06.11.0004 06.11.0005 05.11.0011 05.11.0012 05.11.0013 07.11.0010 05.02.0001 05.02.0002 1903001 1903001 1903004 1903003 1903001 1903003 1903001 1903004 1903004 1903004 Muhammad Rayhan Median Irianto Kundarita Djaila Kamarudin Marzuki Michael Arief Rahman Hakim Munariyadi Djaila Sri Rejeki Djaila Andi Malarangeng Muhammad Arief Perum Condongcatur 22 Jl. Kaliurang 93 Jl. Magelang 52 Jl. Seturan 23 Jl. Condongcatur 34 Perum Seturan Permai 21 Perum Seturan Permai 21 Jl. Tunggala 23i Jl. Kaliurang 53 Jl. Gejayan 25 Jl. Solo KM 10 No 21 Mata Kuliah Kode mk Nik Kode ruang Nama mk Deskripsi mk SBDTI CSMI PBD PK1 RPL AKT1 PVMI 2.3.5. 2.2.1. 3.2.1. 2.3.5. 2.3.9. 3.3.3. 3.2.1. Sistem Basis Data Client Server Pemrograman Basis Data Pemrograman Komputer 1 Rekayasa Perangkat Lunak Pengantar Akuntansi 1 Pemrograman Visual Sistem Basis Data S1TI 4 SKS Client Server D3MI 2 SKS Pemrograman Basis Data 4 SKS Pemrograman Komputer 1 S1TI Rekayasa Perangkat Lunak S1TI Pengantar Akuntansi 1 D3MI Pemrograman Visual D3MI 1903001 1903001 1903001 1903002 1903005 1903004 1903001 Ruang Kode ruang Lokasi ruang Kapasitas ruang 2.2.1. 3.2.1. 1.2.2. 2.3.5. 2.3.9. 3.3.3. Unit 2 Lantai 2 Unit 3 Lantai 2 Unit 1 Lantai 2 Unit 2 Lantai 3 Unit 2 Lantai 3 Unit 3 Lantai 3 75 50 75 75 100 40 Mahasiswa Ambil Mata Kuliah Nim Kode mk 06.11.0001 06.11.0002 06.11.0003 06.11.0004 05.11.0011 05.11.0011 05.02.0001 05.02.0001 05.02.0002 SBDTI SBDTI CSMI SBDTI RPL AKT1 PVMI AKT1 2. Tuliskan perintah SQL untuk menyisipkan record-record ke tabel-tabel tersebut diatas. [email protected] STMIK AMIKOM YOGYAKARTA 87 Modul Praktikum Sistem Basis Data S1-TI 3. Isikan record berikut di tabel mahasiswa kemudian perhatikan response SQL Server ketika anda menyisipkan record yang di maskud. Jelaskan apa penyebabnya dan bagaimana solusinya. Nim Nik Nama mahasiswa Alamat mahasiswa 06.11.0007 1903006 Jor-EL Smallvile 25 4. Tuliskan perintah SQL untuk menghapus record di tabel dosen yang memiliki nik 1903001. Jelaskan mengapa perintah tersebut tidak dapat di eksekusi oleh SQL Server dan bagaimana solusinya. 5. Tuliskan perintah SQL untuk mengupdate record di tabel mata kuliah dengan mengganti kode mata kuliah AKT1 menjadi AKTMI. Kemudian perhatikan efek yang di hasilkan di record-record yang ada di tabel mahasiswa ambil mata kuliah. Jelaskan apa efek yang terjadi? Serta jelaskan penyebabnya? [email protected] STMIK AMIKOM YOGYAKARTA 88 Modul Praktikum Sistem Basis Data S1-TI MODUL 8 MENAMPILKAN DATA Tujuan □ Mampu menampilkan data-data yang ada di tabel menggunakan perintah SQL SELECT □ Mampu mengurutkan data □ Mampu mengelompokkan data □ Mampu melakukan pencarian data string Teori Singkat Untuk menampilkan data-data dari sebuah tabel, maka di perlukan perintah SQL SELECT. SELECT select_list FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] Keterangan: □ Select_list adalah daftar kolom/ field-field yang akan di tampilkan datanya. Pilihannya bisa semua kolom di tampilkan atau hanya beberapa kolom saja. □ Table_source adalah nama table yang akan di tampilkan datanya. □ Search_condition adalah kondisi yang di berikan untuk sebuah nilai yang datanya akan di tampilkan. □ Group_by_expression merupakan ekspresi yang di berikan untuk mengelompokan data-data yang akan di tampilkan. □ Order_expression adalah ekspresi yang di berikan dalam pengurutan nilai yang akan di tampilkan dari sebuah table berdasarkan kolom-kolom yang akan di urutkan. Ada 2 pilihan yaitu ASC (ASCENDING) yang mengurutkan nilai dari nilai terkecil sampai nilai terbesar dan [email protected] STMIK AMIKOM YOGYAKARTA 89 Modul Praktikum Sistem Basis Data S1-TI DESC (DESCENDING) yaitu pengurutan nilai dari nilai terbesar ke terkecil. Defaultnya adalah ASC. Melihat Semua Kolom dari Suatu Tabel SELECT * FROM nasabah; Melihat Kolom(-kolom) tertentu SELECT nama_nasabah FROM nasabah; SELECT id_nasabah, nama_nasabah FROM nasabah; Alias Kolom (AS) Dengan menambahkan kata kunci AS, kita dapat mengganti nama kolom pada hasil SELECT. SELECT nama_nasabah AS “Nama Nasabah” FROM nasabah; SELECT nama_nasabah AS “Nasabah”, alamat_nasabah AS “Alamat Nasabah” FROM nasabah; Klausa WHERE Digunakan untuk membatasi hasil SELECT yang ditampilkan berdasarkan kondisi yang ditentukan. Bisa menggunakan >, <, <> (atau !=), >=, <=. Contoh: SELECT nama_nasabah FROM nasabah WHERE nama_nasabah = ‘Neneng Djaila’; SELECT nama_nasabah, alamat_nasabah FROM nasabah WHERE id_nasabah = 2; [email protected] STMIK AMIKOM YOGYAKARTA 90 Modul Praktikum Sistem Basis Data S1-TI Untuk memilih lebih dari satu kondisi gunakan operator logika AND atau OR. Contoh: SELECT * FROM nasabah WHERE nama_nasabah = ‘Neneng Djaila’ AND alamat_nasabah = ‘Jl. Tunggala 2 No 23i’; SELECT * FROM nasabah WHERE nama_nasabah = ‘Neneng Djaila’ OR id_nasabah = 2; Pencarian Nilai NULL Untuk melakukan pencarian data yang memiliki nilai NULL di dalamnya, digunakan IS NULL sedangkan untuk nilai yang tidak NULL menggunakan IS NOT NULL. Contoh: SELECT * FROM rekening WHERE kode_cabang IS NULL; SELECT * FROM rekening WHERE kode_cabang IS NOT NULL; Pencarian String Untuk melakukan pencarian string menggunakan fungsi/ kata kunci LIKE, dengan pilihan sebagai berikut: □ Menggunakan tanda Persen “%”, untuk mencari sembarang kalimat/ kata. □ Menggunakan tanda Underscore “_”, untuk mencari satu karakter/ satu huruf. SELECT id_nasabah, nama_nasabah, alamat_nasabah FROM nasabah WHERE nama_nasabah LIKE “Muhammad Rayhan”; [email protected] STMIK AMIKOM YOGYAKARTA 91 Modul Praktikum Sistem Basis Data S1-TI SELECT id_nasabah, nama_nasabah, alamat_nasabah FROM nasabah WHERE alamat_nasabah LIKE “%urang%”; SELECT id_nasabah, nama_nasabah, alamat_nasabah FROM nasabah WHERE nama_nasabah LIKE “M_hamm_d R_yhan”; Latihan 8.1. Menampilkan data untuk semua Kolom □ Aktifkan terlebih dahulu Query Analyzer, kemudian pada jendela editor ketikkan perintah USE akademik_xxxx untuk mengaktifkan database anda. □ Setelah itu non aktifkan perintah USE akademik_xxxx yang telah di ketik pada langkah sebelumnya, kemudian ketikkan perintah berikut untuk menampilkan semua kolom dari sebuah table. Pada contoh perintah menampilkan semua kolom yang ada pada tabel dosen. SELECT * FROM dosen; [email protected] STMIK AMIKOM YOGYAKARTA 92 Modul Praktikum Sistem Basis Data S1-TI □ Tanda bintang (*) merepresentasikan bahwa semua kolom yang ada dalam tabel akan di tampilkan. □ Perintah diatas menampilkan semua kolom tabel dosen beserta semua data di dalamnya. □ Eksekusilah perintah diatas dengan menekan tombol F5. Latihan 8.2. Menampilkan data berdasarkan Kolom tertentu □ Masih pada jendela editor yang sama, non aktifkan terlebih dahulu perintah SQL pada Latihan 8.1. yang di ketik sebelumnya. □ Pada baris berikutnya ketikkan perintah berikut: SELECT nama_dosen FROM dosen; □ Eksekusi perintah tersebut dengan menekan tombol F5. SELECT nik, nama_dosen, alamat_dosen FROM dosen; [email protected] STMIK AMIKOM YOGYAKARTA 93 Modul Praktikum Sistem Basis Data S1-TI □ Eksekusi perintah tersebut dengan menekan tombol F5. Latihan 8.3. Mengganti nama kolom dengan Kolom Alias □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah SQL Latihan 8.2. □ Ketikkan perintah berikut untuk mengganti nama kolom nik menjadi “NOMOR INDUK DOSEN” dan kolom nama_dosen menjadi “NAMA DOSEN”. SELECT nik AS “NOMOR INDUK DOSEN”, nama_dosen [NAMA DOSEN] FROM dosen; [email protected] STMIK AMIKOM YOGYAKARTA 94 Modul Praktikum Sistem Basis Data S1-TI □ Eksekusilah perintah tersebut menggunakan tombol F5. □ Untuk mengganti nama kolom di SQL Server dapat menggunakan kata kunci AS atau menggunakan simbol “[“ dan “]” seperti pada contoh perintah SQL diatas. Latihan 8.4. Membatasi data-data yang di tampilkan menggunakan Klausa WHERE □ Non aktifkan perintah SQL Latihan 8.3., kemudian ketikkan perintah berikut untuk menampilkan dosen yang memiliki nomor induk “1903001”. SELECT nik, nama_dosen, alamat_dosen FROM dosen WHERE nik = '1903001'; □ Eksekusi perintah diatas dengan menekan tombol F5. □ Berikut adalah contoh perintah SQL dengan menambahkan operator logika AND atau OR. [email protected] STMIK AMIKOM YOGYAKARTA 95 Modul Praktikum Sistem Basis Data S1-TI □ Non aktifkan terlebih dahulu perintah SQL sebelumnya, kemudian ketikkan perintah SQL berikut untuk menampilkan data dosen yang memiliki nik “1903001” atau beralamat di jalan kaliurang. SELECT nik, nama_dosen, alamat_dosen FROM dosen WHERE nik = '1903001' OR alamat_dosen = 'Jl. Kaliurang'; □ Eksekusilah perintah tersebut dengan menekan tombol F5. Latihan 8.5. Mengurutkan data secara Ascending dan Descending □ Masih di jendela editor yang sama, non aktifkan terlebih dahulu perintah SQL Latihan 8.4., kemudian ketikkan perintah SQL berikut di baris berikutnya. □ Perintah SQL berikut akan melakukan pengurutan data dosen berdasarkan nama dosen secara ascending dan secara descending. Kemudian perhatikan perbedaan dari kedua contoh perintah SQL tersebut. SELECT nik, nama_dosen, alamat_dosen FROM dosen ORDER BY nama_dosen; [email protected] STMIK AMIKOM YOGYAKARTA 96 Modul Praktikum Sistem Basis Data S1-TI SELECT nik, nama_dosen, alamat_dosen FROM dosen ORDER BY nama_dosen DESC; □ Eksekusilah perintah SQL tersebut dengan menekan tombol F5. Latihan 8.6. Mengelompokkan Data □ Non aktifkan perintah SQL Latihan 8.5. kemudian ketikkan perintah berikut untuk mengelompokkan data mahasiswa berdasarkan dosen pembimbingnya dan nama mahasiswa. SELECT nama_mhs, nik FROM mahasiswa GROUP BY nik, nama_mhs; [email protected] STMIK AMIKOM YOGYAKARTA 97 Modul Praktikum Sistem Basis Data S1-TI SELECT COUNT(*)[Jumlah Data] FROM mahasiswa GROUP BY nik; □ Eksekusilah perintah SQL tersebut dengan menekan tombol F5. □ Simpanlah semua perintah SQL yang sudah di ketikkan mulai dari Latihan 8.1. sampai Latihan 8.6. Simpan dengan nama “modul8.sql” di direktori kerja masing-masing. [email protected] STMIK AMIKOM YOGYAKARTA 98 Modul Praktikum Sistem Basis Data S1-TI Penugasan 1. Tuliskan perintah SQL untuk menampilkan jumlah mahasiswa yang di bimbing oleh dosen dengan nama “Neneng Sundarsih”. 2. Tuliskan perintah SQL untuk menampilkan semua dosen yang beralamat di “kaliurang” dan memiliki nomor induk mulai “1903001” sampai “1903005”. 3. Tuliskan perintah SQL untuk mengurutkan data mahasiswa secara descending berdasarkan nama mahasiswa dan nomor induk dosen. 4. Tuliskan perintah SQL untuk menampilkan semua kolom tabel “mahasiswa”. 5. Tuliskan perintah SQL untuk menampilkan dosen yang memiliki mahasiswa yang di bimbing lebih dari 1 orang mahasiswa. M. Rudyanto Arief, M.T. [email protected] STMIK AMIKOM YOGYAKARTA Digitally signed by M. Rudyanto Arief, M.T. DN: CN = M. Rudyanto Arief, M.T., C = ID, O = STMIK AMIKOM YOGYAKARTA, OU = Dept of Information Engineering Reason: I am the author of this document Date: 2007.11.27 22:52:08 +07'00' 99