68
Aris Wijay yanti, S.Kom UNIR UNIV Jl. M ROW TUBA VERSITAS P Manunggal i M AN PGRI RONG No.61 Tub Prak Modu GGOLAWE ban 12345 ktikum Basis l Prak TUBAN Data ktiku SQ um QL

Modul Praktikum BASIS DATA

Embed Size (px)

Citation preview

  • ArisWijay

    yanti,S.Kom

    UNIR

    UNIV

    Jl.M

    ROWTUBA

    VERSITASP

    Manunggal

    i

    M

    AN

    PGRIRONG

    No.61Tub

    Prak

    Modu

    GGOLAWE

    ban12345

    ktikumBasis

    l Prak

    TUBAN

    Data

    ktiku

    SQum

    QL

  • ArisWijayanti,S.Kom PraktikumBasisData

    ii

    Winner vs. Looser Winner is always a part of solutions

    Looser is always a part of problems

    Winner sees answer in every problem

    Looser sees problem in every answer

    Winner always has a program

    Looser always has an excuse

    Winner always says, Its difficult, but its possible.

    Looser always says, Its possible, but its difficult.

  • ArisWijayanti,S.Kom PraktikumBasisData

    iii

    Kata Pengantar Pertama-tama penyusun ingin mengucapkan puji syukur kehadirat Tuhan Yang

    Maha Esa atas segala rahmat, taufik dan hidayah-Nya yang dilimpahkan kepada

    penyusun, sehingga dapat menyelesaikan Buku Pedoman Praktikum SQL ini. Buku

    Pedoman Praktikum ini kami susun untuk membantu mahasiswa dalam mengikuti

    praktikum SQL. MS SQL Server adalah salah satu produk Relational Database

    Management System (RDBMS) populer saat ini. Fungsi utamanya adalah sebagai

    database server yang mengatur semua proses penyimpanan data dan transaksi suatu

    aplikasi. Popularitas SQL Server akhir-akhir ini mulai menanjak dan setara dengan

    pesaing terdekatnya yaitu Oracle 9i dan Oracle 10g. Saat ini versi terbaru adalah

    SQL Server 2008. Namun dalam praktikum SQL ini kita masih menggunakan

    Versi 2000.

    Versi 2000 memiliki feature-feature lengkap untuk membangun aplikasi mulai

    skala kecil sampai dengan tingkat enterprise. Tak lupa Alhamdulillah kami

    ucapkan karena akhirnya revisi Modul SQL ini dapat diselesaikan. Terima kasih

    juga kami ucapkan kepada semua pihak pada khususnya keluarga besar UNIROW

    TUBAN yang senantiasa mendukung kami. Tentunya, dalam penulisan modul ini

    tak lepas dari kesalahan, untuk itu kritik dan saran yang sifatnya membangun

    sangat kami harapkan dari berbagai pihak.

    Akhirnya mudah-mudahan buku pedoman ini bermanfaat bagi pembaca.

    Tuban, maret 2010

    Penyusun

  • ArisWijayanti,S.Kom PraktikumBasisData

    iv

    Daftar Isi Winner vs. Looser .................................................................... ii

    Kata Pengantar........................................................................ iii

    Daftar Isi ................................................................................. iv

    1. Membangun Database dan Mengatur Keamanannya.. 1 2. Tabel ................................................................................... 21 3. Memanipulasi Data ............................................................. 33 4. Fungsi dalam SQL .............................................................. 41 5. View dan Index .................................................................... 47 6. Transact - SQL .................................................................... 54

  • ArisWijayanti,S.Kom PraktikumBasisData

    v

    Praktikum

    1 MEMBANGUN DATABASE DAN MENGATUR KEAMANANNYA Tujuan : 1 Praktikan mampu untuk membuat database dengan tiga (3) metode yang akan

    diujicobakan pada praktikum I ini. 2 Praktikan mampu untuk mengatur keamanan database-nya. Persiapan : 1 Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS

    SQL Server 2000, khususnya mengenai pembuatan database serta manajemen user dan akses privileges.

    2 Modul praktikum I. Pekerjaan : 1 Kerjakan dan selesaikan semua tugas dan soal pada praktikum I di lembar jawaban

    yang sudah disediakan di modul. 2 Selesaikan Tugas Pendahuluan praktikum I, kemudian lanjutkan dengan

    mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3 Kerjakan Tugas Praktikum I yang telah disediakan di modul, setelah selesai

    mengerjakan langkah-langkah praktikum. 4 Kerjakan Tugas Praktikum I sebagai latihan dirumah. Hasil : 1 Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

    jawaban Tugas Praktikum I sesuai dengan pertanyaan yangada. 2 Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

    Praktikum I kepada dosen/asisten pada pertemuan berikutnya.

    Langkah selanjutnya : Ikuti langkah-langkah praktikum. Langkah-langkah praktikum :

  • ArisWijayanti,S.Kom PraktikumBasisData

    vi

    Landasan Materi : 1 Definisi database & Database Management System (DBMS) Database adalah kumpulan fakta-fakta sebagai representasi dari dunia nyata yang berhubungan dan mempunyai arti tertentu. Database managemen system adalah sebuah program komputer yang memungkinkan pengguna untuk membuat dan memelihara database sehingga pengguna dapat memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang sering kita gunakan adalah Ms. Access, Ms. SQL Server, dan lain-lain. 2 Pembuatan Database SQL Server menyediakan tiga method untuk membuat database, yaitu : create database wizard, SQL Server Enterprise Manager, dan perintah T-SQL (Query) yang dapat disimpan dalam file dan dijalankan sebagaimana sebuah script. Ms. SQL Server mengimplementasikan database dengan menyimpan 2 struktur, yaitu : Data Disimpan dengan file extensi *.mdf. File ini berkembang dengan penyimpanan table dan objek database lainnya. LOG Disimpan dalam file dengan extensi *.ldf. file ini berisi catatan transaksi, yaitu : mencatat modifikasi table (update), mencatat data baru (insert), mencatat penghapusan data (delete). Database dapat mempunyai penyimpanan sekunder sebagai backup dalam file extensi *.ldf. 3 Manajemen User dan Akses Privileges Suatu database yang kompleks dapat diakses oleh banyak user dengan batasan-batasan tertentu. Antara user yang satu dengan user yang lainnya dapat mempunyai tingkatan yang berbeda. Salah satu alasan mengapa perlu adanya beberapa user dengan tingkat hak akses yang berbeda-beda adalah untuk keamanan data. Data-data yang penting dan sifatnya rahasia kadang tidak boleh diakses oleh user secara umum, hanya user tertentu saja yang boleh mengaksesnya. Dengan adanya manajemen user yang baik maka data tersebut dapat dijamin. Beberapa ijin akses yang dapat diberikan oleh suatu user pada user yang lain terlihat pada tabel berikut :

  • ArisWijayanti,S.Kom PraktikumBasisData

    vii

    Dan daftar statemen ijin akses untuk membuat objek database yang baru terlihat pada daftar tabel berikut :

  • ArisWijayanti,S.Kom PraktikumBasisData

    viii

    Tugas Pendahuluan Praktikum I 1. Jelaskan dengan singkat mengenai sistem database ! 2. Sebutkan sedikitnya 3 DBMS yang Anda kenal selain DBMS yang disebutkan di modul ! 3. Bagaimana Ms. SQL Server mengimplementasikan database-nya ? 4. Buat database menggunakan T-SQL dengan parameter lengkap ! (Ketentuan bebas). 5. Apa perbedaan antara GRANT dan REVOKE ? Langkah selanjutnya : Ikuti langkah-langkah praktikum. Langkah-langkah praktikum : 1. Pembuatan Database Pastikan SQL Server dalam keadaan running dengan cara melihat pada service manager.

    Membangun database menggunakan Create Database Wizard

    1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin Anda gunakan untuk membuat database. Untuk memilih server, mulai dengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group, dan kemudian klik nama server (local)(Windows NT) yang akan Anda gunakan. Dari menu tools, pilih Wizard.

  • ArisWijayanti,S.Kom PraktikumBasisData

    ix

    2. Klik database, lalu klik ganda Create Database Wizard untuk mulai membuat database, atau klik Create Database Wizard, kemudian klik OK untuk melanjutkan.

  • ArisWijayanti,S.Kom PraktikumBasisData

    x

    3. Klik next untuk melanjutkan ke tampilan nama database dan spesifikasi lokasi.

    Ketikkan nama database yang ingin Anda buat dan path lokasi dimana Anda ingin menyimpan data file dan log file. Lokasi tersebut harus berisi valid drive dan folder yang telah ada pada local system Anda. Jika Anda klik tombol browse [] disebelah kanan dua kotak teks, Anda dapat mencari dan memilih foldernya. Setelah Anda memberi nama database dan lokasi ke path, klik next untuk melanjutkan.

    4. Tampilan Name The Database File muncul. Pada kotak dialog ini Anda dapat mengetikkan nama dan initial size untuk masingmasing file database. Primary file database secara otomatis dibuat dan diberi nama dalam awalan. Anda dapat menyetujui nama itu atau mengetikkan yang berbeda. Primary data file berektensi *.mdf. Jika Anda telah memikirkan seberapa besar file database itu, ketik nilai untuk initial size sekarang. Bila sebaliknya, tinggalkan default size. Anda dapat memodifikasinya dikemudian hari menggunakan enterprise manager atau command ALTER DATABASE. Beberapa file yang Anda buat pada saat pertama, atau primary file, akan menjadi secondary file dan secara otomatis aan diberi ektensi *.ndf. semua file yang dibuat ini akan ditempatkan pada primary filegroup. Tidak ada option user-defined filegroup pada Create Database Wizard.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xi

    5. Tampilan Define The Database File Growth akan muncul. Secara umum, Anda harus memilih fasilitas Automatic file growth bila membutuhkan overhead. Bila sebaliknya, maka Anda perlu mengatur ukuran database secara manual sesuai kebutuhan. Anda dapat menspesifikasikan bagaimana database Anda seharusnya bertambah : Apakah menggunakan ukuran MB atau menggunakan ukuran persen dari ukuran sekarang. Klik next untuk melanjutkan.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xii

    6. Tampilan Name The Transaction Log Files muncul. Tampilan ini nampak sama

    dengan tampilan Name The Database Files, tapi yang ini untuk log file. Klik next untuk melanjutkan.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xiii

    7. Tampilan Define The Transaction Log File Growth tampil. Tampilan ini terlihat

    sama dengan Define The Database File Growth, tetapi ini untuk mendifinisikan option growth untuk log file. Klik next untuk melanjutkan.

    8. Tampilan Completing The Create Database Wizard muncul. Lihat ulang informasi yang telah Anda spesifikasikan untuk database yang baru Anda buat. Jika Anda setuju, klik Finish untuk mengakhiri pembuatan database. Bila sebaliknya, klik Back dan lakukan perubahan lagi seperlunya.

    9. Kotak dialog Create Database Wizard Message muncul untuk memberi informasi kepada Anda bahwa database Anda telah dibuat dengan sukses. Klik OK untuk menutup kotak dialog ini.

    10. Kotak Message yang lain muncul, menanyakan apakah Anda akan membuat maintenance plan untuk database Anda yang baru. Pembuatan maintenance plan direkomendasikan untuk memastikan bahwa performance database Anda bagus, memback up secara tetap pada saat system failure, dan melakukan pengecekan pada saat tidak konsisten.

    Membangun database menggunakan Enterprise Manager

  • ArisWijayanti,S.Kom PraktikumBasisData

    xiv

    1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL Server group yang berisi nama dari server yang Anda inginkan untuk membangun database, dan kemudian klik server itu. Klik kanan folder database dan pilih new database

    2. Window Database Properties terbuka, dengan tab General aktif. Ketikkan nama database dalam kotak Name.

    3. Klik tab Data Files. Enterprise manager secara otomatis akan membuat primary data

    filedengan nama database Anda seperti awalan dan dengan PRIMARY sebagai file group. Anda dapat mengubah nama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat mengubah filegroup untuk primary data file.

    Ketikkan nama (logical name), lokasi (physical name), ukuran dan file group untuk masing-masing data file yang Anda buat. Untuk data file selain dari primary file, Anda dapat mengetikkan userdefined filegroup, dan filegroup akan dibuat untuk Anda.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xv

    Lokasi untuk masing-masing file ada pada default folder pada drive yang diinstall SQL Server. Anda dapat mengubah setting dengan mengetikkan path baru atau dengan menggunakan browse. 4. Dalam file properties pada bagian bawah, Anda dapat memilih option Automatic-

    grow file pada per-file basis. Pilih nama dari file yang ingin Anda set pilihan pertumbuhannya. Anda kemudian dapat menspesifikasikanpertumbuhan file itu dalam megabytes (dengan memilih in megabytes) atau percetage (dengan memilih By percent) dari free space yang ada dalam file. Anda juga dapat menspesifikasikan ukuran maksimum file dengan meng-klik Restrict File Growth dan memasukkan ukuran yang mendekati dalam megabytes, atau Anda dapat meniggalkan file size tanpa restrict dengan memilih unrestricted file growth. Anda dapat mengatur option tersebut pada masing-masing file. Anda juga dapat meninggalkan defaults dan mengesetnya di kemudian hari menggunakan window Enterprise Manager Database Properties.

    Jika Anda ingin menghapus file dari daftar, pilih nama dari file dan tekan tombol Delete.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xvi

    5. Setelah selesai mengkonfigurasi semua data file, klik tab Transaction Log dalam window Database Properties untuk konfigurasi file transaction log. Log file dikonfigurasi dengan cara yang sama dengan data files, kecuali bahwa Anda tidak dapat memilih filegroup untuk log files karena tidak termasuk pada beberapa filegroup. Ketikkan nama file(logical name), lokasi (physical name), dan initial size untuk log files atau file. Pilih option Atomatic-growth untuk log files seperti yang dijelaskan

    pada langkah 4. Membangun database menggunakan command T-SQL (Query Analyzer) Untuk membuat sebuah database dengan T-SQL, diperlukan syntax sebagai berikut : Tanpa parameter nilai-nilai optional

    Dengan menggunakan parameter lengkap (dicontohkan pembuatan database dengan nama MyData yang berisi data file (MyData_Primary), satu secondary data file (MyData_Secondary), yang sisanya dalam primary filegroup secara default, dan satu transaction log file (MyData_Log) )

    Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan dengan instruksi :

  • ArisWijayanti,S.Kom PraktikumBasisData

    xvii

    2. Manajemen User dan Akses Privileges

    Membuat User Baru Di dalam SQL server yang berjalan di mesin windows NT atau Windows 2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan user sistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanya menjadi user pada SQL Server. User sistem operasi yang belum menjadi user database server, ketika ingin menjadi user pada database server, perlu didaftar terlebih dahulu. Sebelum melangkah membuat user baru pada database server, Anda akan diperkenalkan dulu dengan bagaimana menambahkan user baru pada sistem operasi Windows 2000. ikuti langkah-langkah berikut: 1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilih setting dan pilih Control Panel. Windows Panel akan muncul. 2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialog user and Passwords. 3. Pada kotak dialog tersebut, klik tombol Add sehingga muncul kotak dialog Add New User. Isilah kotak edit pada field Username dengan tamu, fullname dengan semua tamu dan description dengan login untuk semua tamu. Setelah selesai mengisi field-field tersebut, klik next untuk melanjutkan. 4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini ada field yang harus diisi, yaitu Password dan Confirm Password. Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalam pembahasan ini gunakan password test. Jika sudah, klik Next untuk melanjutkan. 5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini ada tiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user berarti user dapat memodifikasi setting komputer dan menginstall program tetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric user berarti user dapat menjalankan komputer dan menyimpan dokumen tetapi user tidak dapat menginstall program dan mengubah sistem setting. Pilihan yang ketiga adalah Other. Dengan pilihan ini user dapat menjadi administrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudian klik Finish.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xviii

    6. Anda telah selesai membuat user baru untuk sistem operasi. Dalam windows User and Passwords terlihat ada satu user baru dengan nama tamu. 7. Klik OK untuk mengakhirinya. Setelah selesai membuat user untuk sistem operasi Windows, selanjutnya Anda dapat membuat user untuk database server. Langkah untuk membuat user untuk database server. Langkah untuk membuat user baru pada SQL server adalah sebagai berikut :

    1. Pada aplikasi Interprese Manager, kembangkan folder databases.

    2. Setelah muncul semua database, kembangkan folder database MyData.

    3. Klik kanan objek user, kemudian klik New Database User.

    4. Setelah kotak dialog Database User Properties muncul, klik tombol

    drop down list dari field Login name. Pada list tersebut akan muncul beberapa user yang ada. Anda dapat memilih user tamu. Field User name akan otomatis terisi sendiri.

    5. Pada bagian database Role membersip, anda akan masuk pada

    Public. Artinnya Anda sebagai pengguna user umum dimana user ini tidak mempunyai hak istimewa seperti melakukan administrasi terhadap database server, dan lain sebagainya.

    6. Jika sudah selesai, Anda klik tombol OK. Terlihat pada Window

    Enterprise Manager, objek user akan bertambah satu user, yaitu user tamu.

    Melakukan Login

    Untuk menjalankan Ms. SQL Server, user yang digunakan secara otomatis menggunakan user yang sedang menggunakan sistem operasinya, jika SQL Server disetting berdasar Windows Authentication. Jika anda sedang login pada sistem operasi dengan menggunakan administrator maka ketika anda membuka aplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan login sebagai administrator. Jika anda ingin melakukan login dengan user lain, anda dapat melakukan langkah-langkah berikut: 1. Pada window Enterprise Manager, klik objek database server.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xix

    2. Klik tombol New Login pada toolbar sehingga muncul kotak dialog SQL Server Login Properties. 3. Pada Field Name, Anda dapat mengisi dengan nama user yang akan melakukan login. 4. Pada bagian Authentication Anda dapat memilih apakah secara Windows Authentication atau SQL Server Authentication. Jika Anda memilih Windows Authentication, pada bagian field Name anda dapat melakukan klik tombol bertanda .. untuk memilih usernya. Jika anda memilih SQL Server Autehntication Anda masukkan nama user dengan cara mengetikkannya. Field Password akan aktif. Anda dapat mengetikkan password dari user yang akan login. Pada bagian database anda dapat memilih pada database mana user tersebut aktif. Pada bagian ini Anda dapat mencoba memasukkan untuk user tamu. Jika sudah selesai, klik tombol OK. 5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini muncul karena ketika Anda membuat user baru pada SQL Server, Anda belum memasukkan password. Klik OK pada kotak dialog tersebut. Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akan menemukan beberapa pesan yang memberitahukannya bahwa user tersebut belum dapat mengakses database karena belum ada ijin akses terhadap data-datanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengakses data pada database tersebut.

    Memberikan Ijin Akses

    Seorang user yang telah membuat suatu objek database dapat memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapat digunakan untuk memberikan ijin akses adalah dengan statemen GRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut: Statement permissions:

    Keterangan : - GRANT adalah statamen untuk menspesifikasikan pemberian ijin akses. - ALL adalah menspesifikasikan bahwa semua ijin akses diberikan. - Statement adalah berisi statement ijin akses apa saja yang diberikan. Statemen ini merupakan statemen ijin akses yang telah disebutkan pada pembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengan tanda koma.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xx

    - TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebut diberikan. - User_account adalah nama user yang diber ijin akses. Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin akses akan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapat menyebutkan langsung statemen ijin akses tersebut. Object permissions :

    Keterangan : - Privileges adalah keyword opsional yang dapat Anda sertakan pada SQL- 92 - Permission adalah ijin akses yang diberikan. Daftar ijin akses telah dijelaskan pada bagian sebelumnya. Jika ijin akses yang diberikan lebih dari satu maka dipisahkan dengan tanda koma. Ijin akses ini disertai dengan nama-nama objek database yang diberikan. Objek database tersebut dapat berupa tabel, view, stored procedure, extended procedure, dan lain-lain. - Column adalah nama-nama kolom yang diijinkan untuk diatas sesuai dengan ijin akses yang diberikan pada daftar ijin akses tersebut. - Table adalah nama-nama tabel yang diijinkan untuk diakses. - View adalah nama-nama view yang diijinkan untuk diakses. - Stored procedure adalah nama-nama stored procedure yang diijinkan untuk dieksekusi (dijalankan). - Extended procedure adalah nama-nama eksetended prosedur yang diijinkan untuk dijalankan. - User defined function adalah nama-nama user defined function (fungsi) yang diijinkan untuk dieksekusi. - WITH GRANT OPTION adalah untuk menspesifikasikan bahwa user yang diberi ijin akses tersebut dapat memberikan ijin aksesnya kepada user yang lain.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xxi

    - AS{group | Role } menspesifikasikan optional nama dari user account dalam database pada group atau role untuk mengeksekusi statemen GRANT. Pembahasan mengenai Role akan disampaikan pada bagian selanjutnya. Untuk memahami bagaimana penggunaan sintaks di atas, anda akan mencoba beberapa contoh penggunaan dari statemen GRANT. Langkah pertama menjalankan SQL Query Analyser dan melakukan koneksi dengan user sa. Setelah berhasil melakukan koneksi dan menjalankan SQL Query Analyser, selanjutnya anda lakukan koneksi dengan user tamu melalui menu File kemudian pilih Connect. Setelah anda melakukan koneksi dengan dua user tersebut, pada window SQL Query Analyser akan terdapat dua buah window SQL Editor,. Satu buah window untuk user sa dan satu buah lainnya untuk user tamu. Setelah kedua window SQl Editor tersebut muncul, Anda dapat melakukan eksekusi pernyataan T-SQL untuk masing-masing user. Anda dapat mengecek apakah user tamu yang baru saja anda gunakan untuk berhubungan dengan database sudah dapat mengakses data pada database MyData atau belum dengan mengeksekusi statemen T-SQL berikut :

    Ketika anda mengeksekusi pernyataan di atas, SQL Server akan menampilkan pesan error. Hal ini terjadi karena user tamu tidak mempunyai ijin akses terhadap tabel mata kuliah. Masukkan statemen berikut pada window SQL Editor user sa untuk memberikan ijin akses pada user tamu

    Setelah Anda mengeksekusi pernyataan diatas, kemudian anda mencoba mengeksekusi statemen SELECT untuk user tamu seperti statemen sebelumnya, maka SQL server akan mengumpulkan hasilnya. Contoh diatas adalah contoh pemberian ijin akses dengan satu ijin akses. Anda dapat memberikan beberapa ijin akses sekaligus seperti yang telah disampaikan sebelumnya dengan menuliskannya dengan dipisahkan tanda koma. Statamen berikut adalah statemen untuk memberikan ijin akses SELECT dan UPDATE untuk tabel dosen.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xxii

    Setelah mengeksekusi statemen dicatat, user tamu akan mempunyai ijin akses untuk melihat dan memodifikasi data pada tabel dosen. Untuk mencoba hasil eksekusi dari statemen di atas, Anda dapat melakukan retrieving data dengan statemen SELECT berikut:

    Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebut dengan menggunakan user tamu. Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untuk memberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin akses statemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQL berikut :

    Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akan mempunyai ijin untuk membuat tabel pada database MyData. Melalui window SQL editor user tamu Anda dapat menjalankan statemen berikut untuk membuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.

    Setelah menjalankan statemen diatas, Anda dapat memasukkan data dengan menggunakan statemen insert. Eksekusi statemen berikut untuk memasukkan data

  • ArisWijayanti,S.Kom PraktikumBasisData

    xxiii

    Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapat mengecek hasilnya dengan menjalankan statemen SELECT.

    Mencabut Ijin Akses

    Ijin akses yang telah diberikan oleh seseorang uses kepada user yang lain dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja user tersebut ingin mencabutnya maka dengan statemen REVOKE ijin akses tersebut dapat dicabut tanpa harus konfirmasi dengan user yang bersangkutan. Statemen REVOKE menggunakan sintaks yang sama dengan statemen GRANT. Perbedaannya adalah kalau pada statemen GRANT menggunakan keyword TO sedangkan pada statemen REVOKE menggunakan keyword FROM. Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabel mata kulliah untuk user tamu. Statemen berikut adalah statemen untuk mencabut ijin akses tersebut.

    Setelah ini anda mengeksekusi statemen di atas, maka ijin akses SELECT pada tabel mata kuliah untuk user tamu telah dicabut. Untuk membuktikannya anda dapat menjalankan statemen SELECT pada table mata kuliah menggunakan user tamu. SQL server akan menampilkan pesan error seperti pada gambar berikut : Dengan cara yang sama anda dapat menggunakan statemen REVOKE untuk mencabut ijin akses statemen. Contoh berikut adalah contoh bagaimana mencabut ijin akses statemen CREATE TABLE dari user tamu.

  • ArisWijayanti,S.Kom PraktikumBasisData

    xxiv

    Setelah statemen dia atas dieksekusi, user tamu tidak bisa lagi membuat table pada database MyData. Jika ini dilakukan maka SQL Server akan menampilkan pesan error yang sama. Tugas Praktikum I 1. Dari query Analyzer buatlah script untuk membangun sebuah database, kemudian simpan dengan nama created.sql dengan ketentuan sebagai berikut : Nama database : unirow_XXX Nama Primary data : unirow_XXX_DATA Ukuran awal = 20 Mb Ukuran maksimal = 50 Mb Ukuran perkembangan file = 2 Mb Nama log : unirow_XXX_LOG dengan nilai nilai parameter sama dengan diatas. Catatan : ( X = tiga digit terakhir nrp ) 2. Jelaskan yang dimaksud dengan : a. PRIVILEGE b. OLTP dan OLAP c. Constraint

  • ArisWijayanti,S.Kom PraktikumBasisData

    25

    Praktikum

    2 TABEL Tujuan : 1. Praktikan memahami struktur pembuatan tabel. 2. Praktikan mampu membuat tabel. 3. Praktikan dapat memasukkan data ke dalam tabel. Persiapan : 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2000, khususnya mengenai tabel. 2. Modul praktikum II. Pekerjaan : 1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum II di lembar jawaban

    yang sudah disediakan di modul. 2. Selesaikan Tugas Pendahuluan praktikum II, kemudian lanjutkan dengan

    mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3. Kerjakan Tugas Praktikum II yang telah disediakan di modul, setelah selesai

    mengerjakan langkah-langkah praktikum. 4. Kerjakan Tugas Praktikum I sebagai latihan dirumah. Hasil : 1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

    jawaban Tugas Praktikum I(print out) sesuai dengan pertanyaan yang ada. 2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

    Praktikum I kepada asisten/dosen pada pertemuan berikutnya. Landasan Materi : 1. Data Definition Language (DDL) Tabel dalam database adalah komponen utama yang membentuk database itu sendiri. Baris(row) dan kolom (column) mengindikasikan data (record).Cara untuk mengatur dan memanipulasi data pada database dilakukan dengan bantuan instruksi SQL seperti

  • ArisWijayanti,S.Kom PraktikumBasisData

    26

    SELECT, INSERT, UPDATE, DELETE. Instruksi untuk membuat, mengubah, dan menghapus table dilakukan melalui DDL yaitu dengan CREATE TABLE, ALTER TABLE, DROP TABLE Pada contoh dibawah ini adalah sebuah table Mahasiswa UNIROW tuban dengan bentuk sebagai berikut : Tabel : Mahasiswa NRP Nama Jenis kelamin Alamat Kota Propinsi Telpon

    Setiap kolom mempunyai nilai yang terkait dengan tipe data tertentu. Himpunan yang berupa nilai kolom yang valid atau dapat diterima (acceptable) disebut sebagai DOMAIN. Nilai kolom diluar domain tersebut dianggap sebagai pelangggaran atas integritas data. Usaha untuk mengelompokkkan nilai dalam himpunan yang berlaku disebut dengan CONSTRAINT atau batasan nilai. 2. Tipe Data Adapun tipe yang banyak digunakan pada Ms.SQL Server adalah : char(n) : Mendefinisikan string sepanjang n karakter. Bila n tidak didefinisikan maka panjang karakter adalah 1. varchar(n) : Mendefinisikan string sepanjang variabel n. binnary(n) : Untuk menyimpan bit pattern seperti heksadecimal. Contoh : 0x0fa9008e datetime : Mendefinisikan tanggal, menyimpan tahun, bulan, hari, jam, menit, detik dan seperseribu detik (milliseconds). Nilai tanggal sampai dengan 31 desember 9999. text : Menyimpan teks sampai dengan 2 GB. Text disebut juga dengan binary large objects (BLOBs) image : Mendefinisikan binary data untuk menyimpan image seperti GIF, JPG, TIFF, dll.

  • ArisWijayanti,S.Kom PraktikumBasisData

    27

    money : Bilangan pecahan dengan 4 angka dibelakang koma. Digunakan untuk perhitungan moneter. smallint : Sama dengan int, membutuhkan 50% memory yang ditempati int. int : Mendefinisikan integer, bilangan bulat yang menampung angka sebanyak 4 byte. float(n) : Mendefinisikan angka pecahan (floating point). Nilai n adalah jumlah angka yang dapat ditampung . sysname real(n) : sama dengan float namun menempati memory 50% dari float. smalldatetime : sama dengan datetime hanya dengan presisi lebih kecil dimana satuan waktu terkecil adalah menit dan nilai tanggal sampai dengan 6 juni 2079. numeric(n,p) : Mendefinisikan angka pecahan baik fixed desimal ataupun floating point. Nilai n adalah jumlah bytes total dan p adalah presisi angka dibelakang koma. Numeric analog dengan DECIMAL(n,p). 3. Unicode Charakter String Unicode adalah karakter international yang menampung 16 bit per karakter. Unicode digunakan oleh bahasa non latin, misalnya Jepang, Jerman, Thai, dll. nchar : Unicode karakter maksimum 4.000 karakter. nvarchar : Unicode karakter dengan data variable maksimum 4.000 karakter. Sysname adalah contoh tipe data yang didefinisikan sebagai synonym dari nvarchar(128) dan digunakan untuk referensi ke nama object database. ntext : Unicode texts dengan panjang dua pangkat tigapuluh (1.073.741.823)karakter. Untuk dapat melihat semua tipe data yang ada dalam Ms.SQL Server adalah dengan menggunakan perintah stored procedure sp_datatype_info. 4. Mendefinisikan tipe data baru Tipe data dapat dibangun dari tipe data yang sudah ada. Syntax secara umum untuk membuat tipe data baru :

    USE nama_database SP_ADDTYPE nama_tipe_data_baru,tipe_data_SQL

  • ArisWijayanti,S.Kom PraktikumBasisData

    28

    Syntax secara umum untuk menghapus tipe data baru :

    Kunci kata NOT NULL atau NULL dapat ditambahkan dalam mendefinisikan tipe data. SP_ADDTYPE alamat, 'varchar(9)', 'NOT NULL' Contoh :

    Alur komunikasi data antara user dengan database menggunakan SQL Dalam membuat sebuah tabel dan kolom ada beberapa aturan : 1. Nama tabel dan kolom mempunyai panjang karakter 1-30 dan karakter pertama

    harus huruf, karakter berikutnya boleh gabungan huruf, garis bawah dan angka dan tidak diperbolehkan mengandung spasi.

    2. Tidak mengandung Reserved word yang ada pada SQL (contoh:select, where, create, dll).

    3. Dalam satu user tidak boleh mempunyai nama tabel yang sama, tetapi dalam tabel yang berbeda boleh memiliki nama kolom yang sama.

    4. Tidak bersifat case sensitive. Perintah perintah yang berhubungan dengan tabel : INSTRUKSI KETERANGAN CREATE TABLE : Membuat tabel SP_COLUMN : Memeriksa struktur suatu table ALTER TABLE : Mengubah struktur tabel

    USE nama_database SP_DROPTYPE nama_tipe_data_baru

  • ArisWijayanti,S.Kom PraktikumBasisData

    29

    SELECT : Memilih query tabel INSERT : Menyisipkan baris data ke tabel

    UPDATE : Mengubah data pada tabel

    DELETE : Menghapus data pada suatu table 5. Membuat Tabel Syntax: CREATE TABLE nama_tabel(nama_filed1 tipedata batasan, nama_filed2 tipedata batasan,..) Batasan (constraint) = Yang mengikat atribut apakah sebagai primary Key, Foreign Key, Unique, Not Null, dll. 6. Melihat Struktur Tabel Syntax: sp_columns Nama tabel; 7. Memodifikasi dan menambah Field pada Tabel Untuk memodifikasi sebuah field pada tabel , syntax: ALTER TABLE Nama_tabel ALTER COLUMN Nama_Field tipe_data(panjang) Constraint Untuk menambah sebuah field pada tabel , syntax: ALTER TABLE Nama_tabel ADD Nama_Field_baru tipe_data(panjang) constraint 8. Menghapus Tabel Syntax: DROP TABLE Nama_tabel;

    9. INTEGRITAS DATA Integritas data adalah konsistensi dan kebenaran data yang disimpan. Antara kehidupan nyata dan nilai dari data harus dilindungi oleh system, agar mempunyai arti yang sesuai. Integritas data tetap dijaga melalui beberapa cara, antara lain : - Validasi field secara individual - Verifikasi satu field melalui field yang lainnya

  • ArisWijayanti,S.Kom PraktikumBasisData

    30

    - Validasi data dari satu table ke table yang lainnya. - Verifikasi bahwa transaksi berjalan secara sukses dari awal hingga akhir Beberapa jenis integritas data Integritas Entitas Dalam tabel setiap baris harus mempunyai identitas yang unik yang disebut dengan primary key. Hubungan antara primary key dan foreign key menyatakan apakah sebuah baris table dapat diubah atau di hapus. Batasan : - PRIMARY KEY - UNIQUE KEY - UNIQUE INDEX - IDENTITY Integritas Domain Menyatakan bahwa nilai data sesuai dengan kenyataannya. System dalam hal ini melakukan CHECK sesuai dengan aturan (rule)yang berlaku. Batasan dan implementasi : - DEFAULT - CHECK - FOREIGN KEY - Tipe data, default, rules Integritas Referensial Menyatakan relasi antar table bahwa hubungan foreign key dengan primary key. Sebuah foreign key tidak dapat dimasukkan kedalam sebuah table bila primary key tidak atau belum ada. Batasan dan implementasi : - CHECK - FOREIGN KEY - TRIGGERS DAN STORE PROCEDURE Integritas melalui aturan yang didefinisikan sendiri Sesuai dengan aturan logika dan bisnis yang ada maka pemakai dapat menetapkan batasan dan aturan dari data yang disimpan. Batasan dan implementasi : - Batasan melalui table dan kolom pada saat pembuatan table. - FOREIGN KEY - TRIGGERS DAN STORE PROCEDURE Sekarang akan dibahas constraint yang ada dalam Ms.SQL Server beserta contoh penggunaannya.

  • ArisWijayanti,S.Kom PraktikumBasisData

    31

    10. PRIMARY KEY Primary Key disebut sebagai constraint untuk menjaga integritas data, yaitu sebuah primary key tidak boleh mempunyai duplikat dan otomatis tidak boleh kosong. Secara umum syntax untuk membuat sebuah primary key adalah: Atau jika primary key terdiri atas banyak kolom (multiple column), maka constraint dapat dibuat sebagai berikut: CREATE TABLE Nama_Tabel (Nama_Field Tipedata CONSTRAINT pk_Namatabel PRIMARY KEY, ) 11. NOT NULL Jika sebuat kolom pada tabel tidak boleh kosong maka constraint NOT NULL harus diberikan. CREATE TABLE NamaTabel(NamaField1 TipeData1, NamaField2 TipeData2, NamaField3 TipeData3, NamaField4 TipeData4, NamaField5 TipeData5, NamaField6 TipeData6, NamaField7 TipeData7, CONSTRAINT pk_NamaTabel PRIMARY KEY (NamaField3, NamaField2, NamaField7) ) 12. UNIQUE UNIQUE digunakan untuk menjamin bahwa nilai kolom adalah tunggal tidak mempunyai duplikat. Primary key dan unique keduanya adalah kunci kata yang mempunyai arti sama. Ms.SQL Server mengijinkan field dengan constraint unique untuk mempunyai nilai NULL. Bila satu kolom mempunyai nilai NULL, maka nilai NULL tidak boleh muncul lagi. Primary key sebaliknya tidak boleh kosong karena primary key secara implicit adalah NOT NULL. 13. CHECK CHECK digunakan untuk menjamin bahwa nilai kolom dalah dalam ruang nilai tertentu. Misalnya nilai mata kuliah dibatasi tidak boleh melebihi nilai 100. Operator logika seperti AND, OR, dan NOT dapat disertakan dalam pembuatan batasan ini. 14. FOREIGN KEY FOREIGN KEY adalah kolom pada sebuah tabel yang menunjukkan bahwa kolom tersebut adalah primary key pada tabel lain. Tabel Mahasiswa NPM Nama JK Alamat Kota Propinsi Telpon

    02113216 Bambang kebonsari tuban Jatim 03563221222

  • ArisWijayanti,S.Kom PraktikumBasisData

    32

    Tabel Mata_kuliah Kode_mata_kuliah Nama_Kuliah SKS

    TPL144 Sistem Database

    3

    Tabel ambil_kuliah Kode_mata_kuliah NPM Nilai_Uts Nilai_Uas Grade

    TPL144 14120406003

    3 90 A

    Pada sekenario di atas, record (TPL144) pada tabel ambil_kuliah tidak dapat dihapus karena referensi dari TPL144 (filed kode_mata_kuliah ditabel mata_kuliah), 14120406003 ( field npm di tabelmahasiswa) masih ada. Penulisan constraint foreignkey adalah : CONSTRAINT fk_nama_constraint FOREIGN KEY field REFERENCES nama_tabel(field)

    Foreign key harus menunjuk ke primary key atau unique pada tabel lain. 15. DEFAULT Nilai default sebuah kolom dapat disuplai oleh system, jika pemakai tidak memberikan nilai pada field tersebut. DEFAULT tidak berlaku untuk kolom dengan tipe data timestamp atau field yang mempunyai property IDENTITY. 16. IDENTITY IDENTITY merupakan property sebuah field, yaitu system menciptakan nomor urut secara otomatis pada setiap memasukkan record baru. Penggunaan: NamaKolom Tipe IDENTITY(No_awal, incremen)

    Setiap terjadi INSERT, maka kolom akan mendapatkan nomor urut, yang dimulai dari No_awal, dan setiap record berikutnya ditambahkan nilai inkremen (default adalah 1). CREATE TABLE pendaftar( no_daftar int IDENTITY(100,2), nama char(20)) Pada awalnya no_daftar adalah 100. Untuk setiap record baru berikutnya, no_daftar akan bernilai 102, 104, 106, dan seterusnya.

  • ArisWijayanti,S.Kom PraktikumBasisData

    33

    17. Drop Constraint DROP digunakan untuk menghapus constraint yang ada. Contoh: ALTER TABLE nama_tabel DROP fk_nama_constraint

    18. Mengisi data pada Tabel Syntax: INSERT INTO Nama_tabel (Nama_Field1, Nama_Field2, Nama_Field3)VALUES (data1, data2,data3)

    19. Meng-copy data dari Tabel lain Suatu kolom pada sebuah tabel dapat diisi dengan data yang sama dengan kolom tabel lain dengan syarat type data dan panjang field kedua table tersebut sama. Syntax: INSERT INTO Nama_tabel_tujuan (Field1, Field2, Field3) SELECT field_sumber1, field_sumber2, field_sumber3) FROM Nama_tabel_sumber Jika 2 buah tabel mempunyai struktur yang sama maka syntax di atas dapat dipersingkat menjadi : INSERT INTO Tabel_tujuan SELECT * FROM Tabel_asal

    Tugas Pendahuluan Praktikum II 1. Jelaskan dengan singkat mengenai table, field dan record ! 2. Sebut dan jelaskan dengan singkat tentang jenis integritas data ! 3. Apa perbedaan antara Primary Key dan Foreign Key ?. 4. Apa persamaan antara Primary Key dan keyword UNIQUE ?

  • ArisWijayanti,S.Kom PraktikumBasisData

    34

    LANGKAH-LANGKAH PRAKTIKUM: 1. Buat tabel berikut melalui QUERY ANALYZER, lengkap dengan constraint: Mahasiswa_XXX(Npm, nama, jk, alamat, kota, propinsi, telpon) Npm char 8 Nama varchar 50 Jk char 1 Alamat varchar 150 Kota varchar 50 Propinsi varchar 50 Telpon varchar 20 Perhatikan: - Npm merupakan primary key - Nama, Alamat tidak boleh kosong - Kota bila tidak disisi maka akan otomatis diisi dengan TUBAN - Jk mempunyai nilai L atau P 2. Buat tabel Mata_kuliah_XXX Mata_Kuliah (kode_mata_kuliah, Nama_kuliah, Sks) kode_mata_kuliah char 8 Nama_kuliah varchar 100 Sks int Perhatikan: - Kode_mata_kuliah merupakan primary key - Nama_kuliah dan Sks tidak boleh kosong 3. Buat tabel ambil_kuliah_XXX Ambil_Kuliah (kode_mata_kuliah, Npm, Nilai_Uts, Nilai_Uts, Grade) kode_mata_kuliah char 8 Npm char 8 Nilai_Uts smallint Nilai_Uas smallint Grade Char 1 Perhatikan: - Kode_mata_kuliah merupakan Foreign key yang mengacu pada tabel Mata_Kuliah_XXX (field kode_ mata_kuliah). - Npm merupakan Foreign key yang mengacu pada tabel Mahasiswa_XXX (field Npm).

  • ArisWijayanti,S.Kom PraktikumBasisData

    35

    - Nilai_Uts, Nilai_Uas tidak boleh melebihi 100 4. Modifikasi field Telpon pada tabel Mahasiswa_XXX sehingga type-nya menjadi char. 5. Isi satu record pada Data mahasiswa yang telah dibuat. Perintah SQL nya adalah : INSERT INTO Mahasiswa_XXX (NPM, Nama, Jk, Alamat, Kota, Propinsi, Telpon)

    VALUES (02113216, Bambang, L, Jl. Bumi Handayani 4, Banjarmasin, Kalsel, 0356322133)

    5. Tambahkan data di bawah ini: NRP NAMA JK ALAMAT KOTA PROPINSI TELFON 141203010006 Rita

    Sugiarti P JL.JAYA NO.20 TUBAN JATIM 0356322133

    141203010007 Bambang Widiono

    L Jl. Bumi Handayani 4

    Banjarmasin Kalsel 081803803202

    14120406003

    Doni armandho

    L

    Cendrawasih 27

    Banyuwangi Jatim 08561234678

    141203010026 Adhis Mahaswi

    P Asrama PUSDIK ARHANUD no 114

    Malang Jatim 03417677993

    6. Tampilkan data dari tabel Mahasiswa_XXX Perintah SQL: SELECT * FROM Mahasiswa_XXX;

  • ArisWijayanti,S.Kom PraktikumBasisData

    36

    Tugas Praktikum II

    1. Buat tabel-tabel dari sebuah perpustakaan dengan tipe data dan aturan-aturannya:

    Tabel Anggota Nama Field Type Panjang Aturan

    No_Anggota Char 8 Not Null, Unique, Primary Key Nama Varchar 20 Not Null

    Alamat Varchar 30 Can Be Null, Default =

    Malang

    Telepon Varchar 15 Can Be Null

    Tabel Buku Nama Field Type Panjang Aturan

    No_Buku Char 8 Not Null, Unique, Primary Key Judul Varchar 20 Not Null

    Pengarang Varchar 30 Can Be Null

    Penerbit Varchar 20 Can Be Null

    Jumlah Int Not Null

    2. Isi data minimal 3 data. (Sesuaikan dengan soal no. 5 dan 6) 3. Jelaskan apa yang dimaksud dengan primary key dan foreign key. Jelaskan hubungan keduanya. 4. Tampilkan semua data dari tabel anggota dan tabel buku. 5. Tampilkan data anggota yang beralamat di Banyuwangi. 6. Tampilkan data anggota yang ada di kota Malang dan Banjarmasin.

  • ArisWijayanti,S.Kom PraktikumBasisData

    37

    Praktikum

    3 MEMANIPULASI DATA Tujuan : 1. Praktikan mampu untuk memanipulasi data dan mampu mencari data (Retrieval) Persiapan : 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS

    SQL Server 2000, khususnya mengenai transact sql. 2. Modul praktikum III. Pekerjaan : 1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum III di lembar jawaban

    yang sudah disediakan di modul. 2. Selesaikan Tugas Pendahuluan praktikum III, kemudian lanjutkan dengan

    mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3. Kerjakan Tugas Praktikum III yang telah disediakan di modul, setelah selesai

    mengerjakan langkah-langkah praktikum. 4. Kerjakan Tugas Praktikum III sebagai latihan dirumah. Hasil : 1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

    jawaban Soal Praktikum III sesuai dengan pertanyaan yang ada. 2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

    Praktikum III kepada dosen/asisten pada pertemuan berikutnya.

    Landasan Materi : 1. Mengupdate data pada Tabel Syntax:

  • ArisWijayanti,S.Kom PraktikumBasisData

    38

    UPDATE Nama_tabel SET Field1=Data1, Field2=Data2, Field3=Data3 WHERE kondisi1, kondisi2

    Contoh : Merubah data mahasiswa dengan Npm 141203010026 pada Mahasiswa_XXX dengan data baru UPDATE Mahasiswa_XXX SET Alamat= Junrejo , kota=Tuban WHERE npm= 03563221422

    Pemanfaatan operasi aritmatika untuk merubah data. Misalnya Sebuah perusahaaan akan menaikkan gaji pegawainya sampai 20 %. UPDATE Data_Gaji SET gaji= gaji*1.2

    2. Menghapus data pada Tabel Syntax: DELETE FROM Nama_tabel WHERE kondisi1

    Dalam menghapus dan update bisa dilakukan untuk menghapus banyak baris atau menghapus semua isi dari tabel tergantung dari kondisi yang diberikan. Contoh : Hapus Isi semua record pada Data mahasiswa yang telah dibuat dimana Mahasiswa dengan alamat yang tidak diisi akan dihapus. Perintah SQL nya adalah : DELETE FROM Mahasiswa_XXX WHERE Alamat= Tuban

    3. Mencari Data / Retrieval (SELECT) Select adalah instruksi yang paling banyak digunakan dalam SQL. SELECT memilih spesifik kolom dari satu atau beberapa tabel. Secara umum bentuk SELECT adalah:

  • ArisWijayanti,S.Kom PraktikumBasisData

    39

    SELECT Kolom1, kolom2, FROM NamaTabel WHERE predikat

    Bila kunci kata WHERE tidak diberikan, maka yang diseleksi adalah seluruh record dalam tabel. Predikat menyatakan kualifikasi dari record yang ditemukan, bila memenuhi syarat, maka record tersebut akan dipilih. Select * adalah karakter khusus (wild character) yang menyatakan bahwa kolom yang dipilih adalah seluruh kolom yang ada pada tabel tersebut. SELECT * FROM mata_kuliah_XXX

    mempunyai arti sama dengan: SELECT Kode_mata_kuliah, Nama_Kuliah, Sks FROM Mata_Kuliah_XXX

    Contoh berikut menampilkan Nama_kuliah dan Sks: SELECT Nama_kuliah, Sks FROM Mata_kuliah_XXX

    4. Predikat dengan WHERE Dengan menggunakan WHERE, maka seleksi dilakukan tidak pada seluruh record, melainkan hanya pada record yang memenuhi syarat. Bentuk klausa WHERE adalah: WHERE Kolom

    Beberapa operator yang berlaku yaitu: = sama dengan tidak sama dengan < lebih kecil lebih besar >= lebih besar atau sama Contoh :

  • ArisWijayanti,S.Kom PraktikumBasisData

    40

    Tampilkan data kuliah yang jumlah sks nya dibawah 3 SELECT * FROM Mata_kuliah WHERE sks < 3

    5. AND, OR, dan NOT Untuk menggabungkan lebih dari satu kondisi, diperlukan logical AND dan OR. Sedangkan untuk negasi, diperlukan NOT Contoh : Tampilkan Mahasiswa perempuan yang berasal dari Tuban SELECT Nama, Alamat, Kota FROM Mahasiswa_XXX WHERE kota=Tuban AND jk=P Prioritas AND lebih kuat dari OR, sehingga kondisi OR harus dipisahkan dalam kurung sebelum AND. 6. BETWEEN dan NOT BETWEEN BETWEEN menyederhanakan pencarian antara (range) seperti berikut: Cari Nama_kuliah yang mempunyai sks antara 1 sampai 3. Dengan menggunakan BETWEEN maka bentuk query adalah : SELECT Kolom1, Kolom2 FROM tabel WHERE kolom BETWEEN nilai1 AND nilai2

    Contoh : Cari Nama_kuliah yang jumlah Sks nya tidak diantara 1 sampai 3 jam SELECT nama_kuliah FROM Mata_kuliah_XXX WHERE SKS NOT BETWEEN 1 AND 3 7. LIKE & NOT LIKE Umumnya LIKE digunakan untuk permintaan yang mencari suatu teks berdasarkan prefix (kata depan), sufix (kata akhir) atau kata tengah. SELECT Kolom1, Kolom2, .. .. FROM NamaTabel WHERE Kolom LIKE nilai

    Contoh : Cari Mahasiswa yang bertempat tinggal di kota Jakarta

  • ArisWijayanti,S.Kom PraktikumBasisData

    41

    SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota LIKE Malang

    Cari Mahasiswa yang tempat tinggalnya dimulai dengan B SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota LIKE B%

    Perhatikan bahwa tanda % menyerupai wild character yang bisa di variasi dalam menggunakannya. tanda % adalah terdiri dari 0,1 atau beberapa karakter, maka tanda _ (under score/garis bawah) merepresentasikan persis satu karakter. NOT LIKE digunakan sebagai negasi misalnya dengan pertanyaan Contoh : Cari Mahasiswa yang alamat rumahnya tidak mengandung kata Jl. SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE alamat NOT LIKE %Jl%

    8. IN & NOT IN IN digunakan untuk mencari nilai dalam satu kelompok nilai (daftar/list). Nilai dalam daftar terdiri atas satu atau lebih. SELECT Kolom1,Kolom2, FROM namatabel WHERE Kolom IN

    Contoh : Cari mahasiswa yang bertempat tinggal di kota Tuban dan banjarmasin SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota IN ('Tuban','Bamjarmasin')

    Bila di negatifkan pertanyaan tersebut, maka hasilnya adalah : SELECT nama, alamat, kota FROM Mahasiswa_XXX WHERE kota NOT IN ('Tuban','Banjarmasin')

    9. IS NULL & IS NOT NULL NULL adalah nilai yang belum diisi. NULL tidak identik dengan spasi(blank).

  • ArisWijayanti,S.Kom PraktikumBasisData

    42

    10. Tampilan Tersusun (Sortir) Tampilan dari hasil SELECT dapat di susun (sort) menurut satu atau beberapa kolom. SELECT Kolom1,Kolom2, FROM namatabel WHERE predikat ORDER BY Kolom

    Bila kunci kata where tidak diberikan, maka seluruh record dalam tabel akan ditampilkan. Contoh : Tampilkan seluruh mahasiswa urut berdasarkan alamat SELECT * FROM Mahasiswa_XXX ORDER BY alamat

    Susunan dapat diatur dari A ke Z (ASCending)atau dari Z ke A (DESCending). Defaultnya adalah ASC. Untuk menyususn secara terbalik adalah : SELECT * FROM Mahasiswa_XXX ORDER BY inisial DESC

    11. DISTINCT DISTINCT menghilangkan nilai ganda, sehinggga membuatnya menjadi tunggal. Hal ini dilakukan dengan mengeliminasi nilai yang sama. Contoh : Berasal dari kota mana saja mahasiswa yang ada ? SELECT kota FROM mahasiswa_XXX untuk menghilangkan duplikasi pada tampilan, maka digunakan kunci kata DISTINCT SELECT DISTINCT kota FROM mahasiswa_XXX

    Tugas Pendahuluan Praktikum III 1. Sebut dan jelaskan perintah yang digunankan untuk memanipulasi data ! 2. Sebut dan jelaskan perintah yang digunakan untuk mencari data (Retrival) !

  • ArisWijayanti,S.Kom PraktikumBasisData

    43

    Langkah selanjutnya : Ikuti langkah-langkah praktikum. Langkah-langkah praktikum : Agar anda dapat lebih memahami tentang manipulasi data ikutilah langkah langkah berikut ini : a) Aktifkan Tools Query Analyzer b) Update semua data mahasiswa yang beralamat di Tuban sehingga alamatnya berubah menjadi Jl. Raya Gedongombo Tuban dan nomor telfonnya menjadi 0322633120 c) Isikan data berikut pada tabel Mata_Kuliah_XXX yang telah anda buat pada praktikum II KODE_mata_kuliah NAMA_KULIAH SKS

    TPL123 Sistem Operasi 3 3 TPL145 Manajemen Umum 2 2 TPL456 Matematika Diskrit 3 3 TPL111 Praktikum Visual Basic 1 1 TPL256 Tugas Akhir 6 6 TPL678 Sistem Berkas 4 3 Update kolom SKS, sehingga jumlah SKS menjadi 2 kalinya d) isi data pada tabel ambil_kuliah : Kode_mata_kuliah NPM Nilai_Uts Nilai_Uas Grade

    TPL123 141203010006 60 60 C TPL145 141203010007 75 80 B TPL456 14120406003 89 98 A TPL111 141203010026 57 61 C

  • ArisWijayanti,S.Kom PraktikumBasisData

    44

    TPL256 141203010056 40 55 D TPL678 141203010090 60 80 B e) Lihat daftar mahasiswa wanita yang berasal bukan dari Tuban f) Cari nama mahasiswa yang namanya dimulai dengan huruf D, huruf kedua tidak di ketahui, huruf ketiga adalah D dan huruf selanjutnya tidak diketahui g) Cari nama mahasiswa yang namanya dimulai dengan huruf F, huruf kedua tidak di ketahui, huruf kelima adalah i dan huruf selanjutnya tidak diketahuai h) Tampilkan seluruh Mahasiswa yang tidak lulus i) Tampilkan mahasiswa yang punya nilai A dan bertempat tinggal di luar Malang atau Jakarta (gunakan IN) j) Susun daftar Mahasiswa menurut abjad, namun dibuat berdasarkan alamat kota mereka k) Tampilkan nama kota tersusun dari secara descending dari para mahasiswa l) Tampilkan nilai mahasiswa dari yang paling besar ke yang paling kecil,hilangkan duplikasi tampilan (untuk npm yang sama).

    Tugas Praktikum III 1. Buatlah suatu database untuk praktikum di UNIROW TUBAN. Buat tabel-tabel yang diperlukan dan isikan data minimal 5 data pada tabel master dan 10 data pada tabel transaksi. 2. Berikan kesimpulan tentang praktikum III !

  • ArisWijayanti,S.Kom PraktikumBasisData

    45

    Praktikum

    4 FUNGSI DALAM SQL Tujuan : 1. Praktikan mampu untuk memahami dan menguasai fungsi-fungsi SQL

    Persiapan : 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS

    SQL Server 2000, khususnya mengenai transactsql. 2. Modul praktikum IV. Pekerjaan : 1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum IV di lembar jawaban

    yang sudah disediakan di modul. 2. Selesaikan Tugas Pendahuluan praktikum IV, kemudian lanjutkan dengan

    mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3. Kerjakan Tugas Praktikum IV yang telah disediakan di modul, setelah selesai

    mengerjakan langkah-langkah praktikum. 4. Kerjakan Tugas Praktikum IV sebagai latihan dirumah.

    Hasil : 1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

    jawaban Soal Praktikum IV sesuai dengan pertanyaan yang ada. 2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

    Praktikum IV kepada dosen/asisten pada pertemuan berikutnya.

  • ArisWijayanti,S.Kom PraktikumBasisData

    46

    Landasan Materi 1. Aritmatik Penghitungan aritmatika dapat dilakukan dengan menggunakan * / + - seperti Umumnya 2. Kelompok Nilai Fungsi AVG, Max, MIN, SUM, COUNT adalah fungsi yang memproses table dengan kualifikasi tertentu. 3. AVG Mencari rata-rata SELECT AVG(field_numerik) from nama_tabel

    Nilai perbandingan adalah hasil dari query baru (yang disebut sebagai subquery). Contoh : SELECT * FROM Ambil_kuliah_XXX WHERE nilai_uas>(select AVG (nilai_uas) from ambil_kuliah_XXX)

    4. MAX Mencari maksimum SELECT MAX(nilai_uas) FROM ambil_kuliah_XXX

    5. MIN Mencari minimum SELECT MIN(nilai_uas) FROM ambil_kuliah_XXX

    6. COUNT Menghitung record dengan kualilfikasi tertentu. COUNT(*) menyatakan hitung seluruh record yang berlaku. SELECT COUNT(*) FROM mahasiswa_XXX

    7. SUM Menjumlah nilai dari kolom tertentu

  • ArisWijayanti,S.Kom PraktikumBasisData

    47

    SELECT SUM(nilai_uas) FROM ambil_kuliah_XXX

    8. GROUP BY Group By Menyeleksi himpunan yangdihitung berdasarkan fungsi spesifik seperti AVG, COUNT atau lainya.

    SELECT nrp,COUNT(*) FROM ambil_kuliah GROUP BY npm

    9. GROUP BY HAVING HAVING berlaku untuk kelompok query Group By dan berfungsi seperti WHERE. Hanya group yang mempunyai kriteria tersebut yang akan diproses(pada where yang diproses adalah setiap record dalam tabel). Berikut adalah daftar mahasiswa yang mempunyai nilai uas rata-rata diatas 80 :

    SELECT nrp,AVG(nilai_uas) FROM ambil_kuliah GROUP BY nrp HAVING AVG(nilai_uas)>80

    10. JOIN Join adalah teknik yang digunakan untuk mengakses lebih dari satu tabel dan menggabungkan hasilnya. Perhatikan tabel sesi di bawah ini

    SELECT npm, mahasiswa_XXX.nama, grade FROM ambil_kuliah_XXX, mahasiswa_XXX WHERE ambil_kuliah_XXX.npm=mahasiswa_XXX.npm

    perintah diatas dapat juga di tulis menggunakan INNER JOIN

    SELECT nrp, mahasiswa_XXX.nama, grade FROM ambil_kuliah_XXX INNER JOIN mahasiswa_XXX ON ambil_kuliah_XXX.npm=mahasiswa_XXX.npm

  • ArisWijayanti,S.Kom PraktikumBasisData

    48

    11. Menggunakan Alias Alias digunakan untuk menyederhanakan tulisan, agar tidak terlalu panjang.

    SELECT npm, mahasiswa_XXX.nama, grade FROM ambil_kuliah_XXX, mahasiswa_XXX WHERE ambil_kuliah_XXX.npm=mahasiswa_XXX.npm

    Penulisan dapat disederhanakan menjadi :

    SELECT npm, M.nama,grade FROM ambil_kuliah_XXX A ,mahasiswa_XXX M WHERE A.npm = M.npm

    Alias dapat juga di berikan pada inner joint :

    SELECT npm, M.nama, grade FROM ambil_kuliah_XXX A INNER JOIN mahasiswa_XXX B ON A.npm = B.npm

    Join biasa dilakukan pada 2 buah tabel atau lebih.

    Tugas Pendahuluan Praktikum IV 1. Apa yang dimaksud dengan subquery ? 2. Kapan alias digunakan ? 3. Apa yang Anda ketahui tentang join ? sebutkan macam-macam join yang Anda tahu ! 4. Kenapa nilai field pada foreign key harus ada terlebih dahulu pada field primary key yang diacu?

  • ArisWijayanti,S.Kom PraktikumBasisData

    49

    Langkah selanjutnya : Ikuti langkah-langkah praktikum. Langkah-langkah praktikum : Agar anda dapat lebih memahami tentang manipulasi data ikutilah langkah - langkah berikut ini : a) aktifkan Tools Query Analyzer b) Buat tabel asisten_XXX dengan ketentuan : Asisten_XXX(kd_ass,Npm) Kd_ass char 8 Nrp char 8 Kd_ass merupakan primary key Nrp merupakan foreign key yang mengacu pada tabel mahasiswa_XXX c) Buat tabel praktikum_XXX dengan ketentuan : praktikum_XXX(kd_prak, nama_praktikum,ruang) kd_prak char 8 Nama_praktikum Varchar 50 Ruang varchar 50 Kd_prak merupakan primary key d) Buat tabel honor_XXX dengan ketentuan : honor_XXX(kd_ass, jumlah_jam,honor) kd_ass char 8 jumlah_jam smallint honor money kd_ass merupakan foreign key yang mengacu pada tabel asisten_XXX (field kd_ass) e) Isi data asisten_XXX :

    Kd_ass NPM S10054 02113216 S78678 03113550 S45389 04113732

  • ArisWijayanti,S.Kom PraktikumBasisData

    50

    f) Isi data praktikum_XXX :

    Kd_prak Nama_praktikum LAB P10054 Pascal B, C, D P22094 Delphi B, C P90877 Database A, E P45389 Sistem Operasi A, E S43535 Visual Basic B, C S56743 Pemrograman

    Web AS400

    g) Isi data honor_XXX : Kd_ass Jumlah_jam Honor S10054 12 96000 S78678 6 48000 S45389 8 64000 h) Tambahkan 10% honor untuk mereka yang mempunyai honor dibawah ratarata i) Cari asisten yang honornya antar 50.000 sampai dengan 100.000 j) tampilkan asisten yang honornya lebih kecil dari rata-rata. k) Tampilkan daftar honor asisten dan kurangi dengan pajak penghasilan 15% l) Tampilkan data asisten secara lengkap (nrp,nama,alamat) yang honornya paling kecil m) Berapa banyak asisten yang honornya diatas rata-rata n) Hitung jumlah honor asisten yang honornya diatas rata-rata Tugas Praktikum IV 1. Buat query dengan menggunakan perintah-perintah SQL : Join (join

    biasa dan inner join, boleh menggunakan alias) Group By, Having, Distinct, Order By. (dengan menggunakan tabel yang dibuat pada tugas sebelumnya)

    2. Tulis juga output setiap perintah. 3. Berikan kesimpulan Anda mengenai praktikum IV ini !

  • ArisWijayanti,S.Kom PraktikumBasisData

    51

    Praktikum

    5 VIEW DAN INDEX Tujuan : 1 Praktikan mampu memahami view dan index. Persiapan : 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS

    SQL Server 2000, khususnya mengenai view dan index. 2. Modul praktikum V. Pekerjaan : 1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum V di lembar jawaban

    yang sudah disediakan di modul. 2. Selesaikan Tugas Pendahuluan praktikum V, kemudian lanjutkan dengan

    mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3. Kerjakan Tugas Praktikum V yang telah disediakan di modul, setelah selesai

    mengerjakan langkah-langkah praktikum. 4. Kerjakan Tugas Praktikum V sebagai latihan dirumah. Hasil : 1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

    jawaban Soal Praktikum V sesuai dengan pertanyaan yang ada. 2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

    Praktikum V kepada asisten pada pertemuan berikutnya.

  • ArisWijayanti,S.Kom PraktikumBasisData

    52

    Landasan Materi : 1. View Sebuah VIEW adalah tabel yang dibangun dari satu atau beberapa tabel yang sudah ada. Secara fisik VIEW tidak membuat penyimpanan data seperti tabel, melainkan hanya menyimpan referansi/pointer ke record pada tabel-tabel yang berkaitan. VIEW disebut juga sebagai Virtual Table. Secara umum aturan membuat VIEW adalah: CREATE VIEW NamaView (Kolom1, Kolom2) AS SELECT Kolom1, Kolom2 FROM NamaTabel WHERE predikat

    Sebagai contoh adalah sebuah VIEW yang terbentuk dari satu tabel: CREATE VIEW v1 AS SELECT npm, Nama FROM mahasiswa_XXX

    Karena VIEW dibentuk tanpa mencantumkan nama kolom baru, maka v1 mewarisi kolom yang yang dipilih pada tabel mahasiswa_XXX. Menjalankan view diatas : SELECT * FROM v1

    a. Menghapus VIEW VIEW dapat dihapus dengan menggunakan DROP VIEW seperti berikut: DROP VIEW v1

    b. VIEW Dari Beberapa Tabel VIEW dapat diciptakan dari beberapa tabel, misalnya sebuah join sederhana seperti berikut: VIEW V4 terdiri atas kolom yang dihasilkan melalui SELECT, yaitu mahasiswa_XXX, Asisten_XXX, dan honor_XXX

  • ArisWijayanti,S.Kom PraktikumBasisData

    53

    CREATE VIEW v4 AS SELECT A.npm, M.nama FROM asisten_XXX A,Mahasiswa_XXX M WHERE A.npm=M.npm

    c. Mengubah VIEW Untuk dapat langsung mengubah VIEW, gunakan ALTER sama dengan syntax alter pada tabel. d. Updating dan insert data Melalui VIEW Updating dapat dilakukan ke dalam VIEW dengan memberikan nilai seperti pada inserting dan updating tabel. Namun perlu diperhatikan NOT NULL optioan dan CONSTRAINT lainnya, sebelum memasukkan nilai ke dalam VIEW. CREATE VIEW v6 (npm, nama, alamat, kota) AS SELECT npm, nama, alamat, kota FROM mahasiswa_XXX WHERE kota=JAKARTA INSERT INTO v6 VALUES (03113331, Maya Kusuma, Jl. Manunggal, Tuban)

    Perhatikan bahwa walaupun dalam WHERE dibatasi kota=JAKARTA, namun SQL tidak dapat menolak nilai kota yang bukan JAKARTA Agar konsistensi dapat dijaga, maka pada saat VIEW dibuat, pada akhir instruksi harus ditambahkan WITH CHECK OPTION Contoh : ALTER VIEW v6(npm, nama, alamat, kota) AS SELECT npm, nama, alamat, kota FROM mahasiswa_XXX WHERE kota=JAKARTA WITH CHECK OPTION INSERT INTO v6 VALUES (02113316, Puspasari, Jl. Kalimosodo 9, Malang)

    Akan muncul error : ERROR at line 2: ORA-01402: view WITH CHECK OPTION where-clause violation

  • ArisWijayanti,S.Kom PraktikumBasisData

    54

    e. Batasan Manipulasi Melalui VIEW Melalui VIEW dapat dilakukan INSERT, UPDATE, dan DELETE dengan beberapa limitasi yaitu: Tidak dapat memasukkan record baru jika mengabaikan nilai NOT NULL pada basis tabel dari VIEW tersebut. Tidak dapat melakukan INSERT atau UPDATE jika salah satu kolom dalam VIEW merupakan hasil kalkulasi atau hasil dari nilai balik fungsi. Tidak dapat melakukan INSERT, UPDATE, atau DELETE jika dalam VIEW terdapat GROUP BY atau DISTINCT. 2. INDEX a. Penggunaan Index Dalam konteks SQL-Server, index adalah sebuah obyek database yang dibuat berdasarkan kolom dalam tabel. Index mempercepat pencarian data. Dengan menggunakan index ,data tidak perlu dicari dari awal hingga akhir, melainkan menggunakan algoritma pencarian yang efisien, sehingga waktu proses menjadi semakin cepat. Tanpa index, proses pemanggilan table scan terjadi, yang berarti query processor harus melalui masingmasing record dalam tabel secara indvidual untuk menemukan record yang sesuai dengan kriteria yang dipilih. Proses ini sama dengan mengalokasikan informasi spesifik di dalam buku. Anda dapat menggunakan daftar isi atau index untuk menemukan topik tertentu secara mudah. Tanpa itu semua, Anda harus membuka dan mencari melalui semua halaman sampai Anda menemukan yang Anda cari. Index mempunyai Overhead selain tempat memory yang lebih besar, juga reorganisasi data karena operasi insert dan delete menjadi lebih kompleks. Dengan demikian index tidak boleh digunakan secara sembarang, melainkan dengan perencanaan dan performance tuning yang baik. b. Memilih kolom untuk index Index dipilih berdasarkan selektifitas dari query yaitu beberapa sereing record diakses melalui select, update atau delete. Selektifitas dipengaruhi oleh criteria pencarian, yaitu bagaimana memenuhi criteria tersebut dengan mengakses atribut apa saja.

  • ArisWijayanti,S.Kom PraktikumBasisData

    55

    Hal-hal yang dapat dijadikan landasan untuk membuat index adalah : o Kolom yang sangat sering dicari o Primary key dan Foreign key o Kolom yang diakses secara abjad o Kolom yang diakses dan sering digunakan dengan join o Kolom yang sering dicari berdasarkan urutan (range) o Kolom yang sering menjadi predikat pada kunci kata Where Hal-hal yang menyarankan untuk tidak menggunakan index adalah : o Hasil query melebihi 20% jumlah record o Kolom yang mempunyai nilai valid sedikit (misalnya jenis kelamin) o Panjang kolom yang besar. Untuk melihat index yang sudah ada gunakan stored procedure sp_helpindex namatabel dan sp_spaceused untuk mengetahui pemakaian disk. c. Clustered Index Dengan Clustered index secara fisik record disusun sesuai dengan susunan index. Dengan demikian hanya ada satu clustered index yang boleh didefinisikan dalam satu tabel. Primary key adalah kandidat baik untuk menjadi clustered index (index secara implicit diciptakan melalui constraint primary key). Dalam menciptakan index, maka secara default otomatis yang dipilih adalah non clustered index. Cara membuat index adalah: DROP INDEX CI_NoPeg CREATE CLUSTERED INDEX CI_NoPeg ON Pegawai (NoPeg)

    DROP dijalankan untuk memastikan bahwa index tersebut belum ada.

    d. Non Clustered Index Dalam non clustered index secara fisik susunan record tidak berpengaruh. Non clustered index menyimpan pointer yang menunjuk ke baris atau record dari tabel. Dalam sebuah tabel dapat dibuat banyak non clustered index, sejauh index tersebut dibutuhkan. Dalan syntax create index pilih NONCLUSTERED adalah default. Cara membuatnya adalah:

  • ArisWijayanti,S.Kom PraktikumBasisData

    56

    DROP INDEX NI_Nama CREATE NONCLUSTERED INDEX NI_Nama ON Pegawai (Nama)

    Atau:

    CREATE INDEX NI_Nama ON Pegawai (Nama)

    e. Unique Index Secara otomatis unique index diciptakan melalui constraint primary key dan unique. Sistem akan memeriksa setiap saat record baru diciptakan atau di-update. Membuat unique index secara manual adalah: CREATE UNIQUE INDEX UI_KTP ON Pegawai (KTP)

    Tugas Pendahuluan Praktikum V 1. Apa yang dimaksud dengan view ? Sebutkan keuntungan dari view ! 2. Apa yang dimaksud dengan index ? Sebutkan keuntungan dari index ! 3. Apa yang dimaksud dengan clustering ? Sebutkan keuntungan dari clustering! 4. Sebutkan batasan manipulasi melalui view ! 5. Apa kegunaan dari index ?

  • ArisWijayanti,S.Kom PraktikumBasisData

    57

    Langkah selanjutnya : Ikuti langkah-langkah praktikum. Langkah-langkah praktikum : a. Aktifkan Tools Query Analyzer b. Buat sebuah VIEW yang terdiri dari kd_ass dan nama asisten yang mempunyai honor diatas rata-rata (join tabel mahasiswa_XXX dan Honor_XXX) c. Buat sebuah view yang akan menampilkan isi data Npm, Nama, Alamat, dan nomor telpon dari mahasiswa_XXX dimana hanya mahasiswa yang mempunyai nama Ballackdan nomor telfonya mengandung 081803 saja. d. Isi data pada data mahasiswa_XXX melalui view yang dibuat dengan data :

    Npm Nama JK Alamat Kota Propinsi Telpon 02311815 Erich Irmanto L Jl. KS. Tubun Banjarmasin Kalsel 553201 03113406 Nyoman Sutrisna L Poharin B20 Malang Jatim 023772739 02311832 Dyah Ayu Puspita Sarie L JL. Danau Tondano Dalam 42 Malang Jatim 023772739

    e. Buat view dari tabel honor_XXX dan Lakukan update data honor dengan memberikan THR pada setiap assiten dengan jumlah 23 % dari honor yang diterima. f. Buat view dari tabel honor_XXX dan Lakukan update data honor dengan memberikan bonus bagi yang mengajar lebih dari 10 jam sebasar 5 % dari total honor yang diterima.

  • ArisWijayanti,S.Kom PraktikumBasisData

    58

    g. Buat view dari tabel praktikum_XXX dan Lakukan update data ruangan menjadi UNIX bila kd_prak memiliki angka ganjil di setiap akhir kode. Gunakan fungsi IN Tugas Praktikum V Gunakan tabel anggota,buku, dan pinjam yang telah anda buat untuk menampilkan data nama anggota yang mempunyai huruf depannya A atau a tampilkan menjadi huruf besar semua dengan menggunakan view.

  • ArisWijayanti,S.Kom PraktikumBasisData

    59

    Praktikum

    6 TRANSACT-SQL Tujuan : 1. Praktikan mampu untuk mengerti dan memahami Transact-SQL Persiapan : 1. Baca buku literatur mengenai sistem database, terutama yang menggunakan DBMS

    SQL Server 2000, khususnya mengenai trigger. 2. Modul praktikum VII. Pekerjaan : 1. Kerjakan dan selesaikan semua tugas dan soal pada praktikum VII di lembar jawaban

    yang sudah disediakan di modul. 2. Selesaikan Tugas Pendahuluan praktikum VII, kemudian lanjutkan dengan

    mengerjakan langkah-langkah praktikum pada modul yang telah disiapkan. 3. Kerjakan Tugas Praktikum VII yang telah disediakan di modul, setelah selesai

    mengerjakan langkah-langkah praktikum. 4. Kerjakan Tugas Praktikum VII sebagai latihan dirumah. Hasil : 1. Kumpulkan modul praktikum Anda yang berisi jawaban Tugas Pendahuluan dan

    jawaban Tugas Praktikum VII sesuai dengan pertanyaan yang ada. 2. Tunjuk dan kumpulkan modul praktikum Anda yang berisi hasil pekerjaan Tugas

    Praktikum VII kepada asisten pada pertemuan berikutnya.

  • ArisWijayanti,S.Kom PraktikumBasisData

    60

    Landasan Materi : 1. Transact-SQL TRANSACT-SQL adalah bahasa pemrograman yang dikembangkan dari SQL. Seperti diketahui SQL adalah bahasa non procedural, artinya alur program tidak seperti bahasa pemrograman bisa, melainkan melalui request dan response. Melalui perintah SQL seseorang melakukan query atau transaksi, yang kemudian akan menerima jawaban dari Database Server berupa hasil atau ResultSet. Query dan transaksi dilakukan di bagian Client,sedangkan pemrosesan dilakukan pada Server. Transact-SQL mengembangkan kemampuan SQL, sehingga Transact-SQL dapat melengkapi SQL dengan instruksi logic (procedural logic), yaitu program aplikasi. Hasil proses SQL-Server (ResultSet) dapat diolah lebih lanjut dengan menggunakan logic pemrograman procedural seperti Fungsi, Procedure, Loop, Case, If Then Else, dan lainnya. 2. Kerangka Transact-SQL TRANSACT-SQL dimulai dengan deklarasi variable dan disusul dengan blok program. Variable harus dideklarasikan sebelum digunakan. Nama variable selalu dimulai dengan karakter @. Variable dapat diberikan nilai melalui instruksi SELECT.

    DECLARE /* deklarasi variable */ @v1 int, @nama varchar(30)

    Keterangan : SELECT digunakan juga untuk eksekusi aritmatika atau lainnya. Misalnya :

  • ArisWijayanti,S.Kom PraktikumBasisData

    61

    SELECT @v1 = @v1-100

    Variable dapat digunakan untuk mengambil nilai dari sebuah query: Contoh :

    DECLARE @nama char(30) SELECT @nama = nama FROM mahasiswa_XXX WHERE npm=02113216 PRINT @nama

    Hasil: Bambang PRINT adalah fungsi yang menampilkan teks dan variable pada console (layar). Contoh: PRINT Nama yang ditemukan adalah : PRINT @nama PRINT Nama yang ditemukan adalah :+@nama 3. Menjalankan Program Transact-SQL Deklarasi Variable Tipe dari variable yang dapat dideklarasikan adalah bagian dari Ms. SQL yaitu char, varchar, datetime, int, money, dan lainnya. Contoh deklarasi Variable: DECLARE @honor int, @total int, @nama varchar(30), @instansi char(10),

    @tgl_hari_ini datetime,

  • ArisWijayanti,S.Kom PraktikumBasisData

    62

    @tgl_nanti datetime SELECT @Berat=100 SELECT @nama=CLARK KENT SELECT @tgl_hari_ini=getdate() SELECT @posisi=SUPERMAN SELECT @tgl_nanti=@tgl_hari_ini PRINT ( Berat anda adalah) PRINT ( @Berat ) PRINT ( @nama ) PRINT ( @posisi ) PRINT ( @tgl_hari_ini ) PRINT ( @tgl_nanti ) Hasil: Berat anda adalah 100 CLARK KENT SUPERMAN APRIL 4 2008 10:18AM APRIL 4 2008 10:18AM 4. Variable Global Variable global adalan variable yang disiapkan oleh SQL-Server untuk memberikan informasi kepada Client. Variable global bersifat read-only.

    Nama variable global diawali dengan @@. @@error adalah bilangan bulat yang menyatakan nomor error. Jika variable tersebut tidak sama dengan 0, maka system memberikan indikasi bahwa terjadi error dan identitas error dinyatakan dalam angka. @@cursor_rows adalah nilai balik dari cursor yang terakhir kali diolah. @@fetch_status adalah nilai balik dari fetch pada cursor. Nilai 0 adalah OK. @@identity memberikan nilai otomatis setiap kali INSERT dilakukan. Nilai ini adalah identitas dari record tersebut. @@nestlevel adalah nesting level dari stored procedures atau triggers @@rowcount memberikan nilai balik berupa jumlah baris (rows) yang terpengaruh oleh instruksi terakhir. Setelah instruksi IF atau WHILE, maka @@rowcount dihapus menjadi 0.

  • ArisWijayanti,S.Kom PraktikumBasisData

    63

    @@spid adalah Server Process Id 5. IF IF digunakan dalam mengendalikan alur program berdasarkan kondisi.

    IF kondisi Instruksi IF kondisi Instruksi1 ELSE Instruksi2 IF kondisi BEGIN Instruksi1 Instruksi2 END

    Contoh: DECLARE @honor int, @rata_rata int SELECT @honor=100000 SELECT @rata_rata=200000 IF @honor > @rata_rata PRINT Honor diatas rata-rata ELSE PRINT Honor dibawah rata-rata Hasil: Honor dibawah rata-rata Bila diaplikasikan pada tabel asisten_XXX, maka nilai honor dapat diambil dari asisten: DECLARE @honor int, @rata_rata int, @asisten char(8) SELECT @asisten=02113216 SELECT @honor=honor FROM asisten_XXX WHERE npm=@asisten SELECT @rata_rata=200000 IF @honor > @rata_rata PRINT Honor diatas rata-rata

  • ArisWijayanti,S.Kom PraktikumBasisData

    64

    ELSE PRINT Honor dibawah rata-rata penggunaan blok IF BEGIN END dapat dilakukan bila instruksi dalam IF lebih dari satu instruksi.. 6. WHILE WHILE digunakan dalam mengeksekusi satu blok program berulang-ulangsampai kondisi pada WHILE menjadi false.

    WHILE kondisi BEGIN END

    Contoh: DECLARE @i int SELECT @i=5 WHILE @i > 0 BEGIN PRINT i = + str( @i) SELECT @i = @i - 1 END Hasil: i = 5 i = 4 i = 3 i = 2 i = 1

    Perhatikan bahwa fungsi str() diperlukan untuk mengkonversi bilangan integer menjadi string (teks). 7. CONTINUE dan BREAK CONTINUE dan BREAK berkaitan dengan WHILE. CONTINUE melanjutkan alur program pada pemeriksaan kondisi WHILE, sedangkan BREAK mengakibatkan alur program keluar dari WHILE.

  • ArisWijayanti,S.Kom PraktikumBasisData

    65

    WHILE kondisi1 BEGIN IF kondisi2 CONTINUE END WHILE kondisi1 BEGIN IF kondisi2 BREAK END

    8. RETURN RETURN akan menghentikan program dari eksekusi. RETURN dapat digunakan dalam memproses error. IF @@error 0 BEGIN PRINT Error RETURN END

    9. CASE CASE menyederhanakan IF yang berlapis dengan tujuan agar program dapat dimengerti/dibaca lebih mudah. IF kondisi1 ELSE IF kondisi2 ELSE IF kondisi3 ELSE

  • ArisWijayanti,S.Kom PraktikumBasisData

    66

    Dapat diganti:

    CASE WHEN kondisi1 THEN WHEN kondisi1 THEN WHEN kondisi1 THEN ELSE END

    Contoh: DECLARE @t char(1), @hasil varchar(255) SELECT @t=B SELECT @hasil= CASE WHEN @t=A THEN Karakter A WHEN @t=B THEN Karakter B ELSE Tidak diketahui END PRINT Hasil adalah +@hasil Hasil: Hasil adalah : Karakter B Perhatikan bahwa CASE diatas digunakan untuk mengambil nilai variable: SELECT @hasil=CASE Berikut adalah variasi dari CASE: DECLARE @t char(1), @hasil varchar(255) SELECT @t=X

  • ArisWijayanti,S.Kom PraktikumBasisData

    67

    SELECT @hasil= CASE @t WHEN A THEN Karakter A WHEN B THEN Karakter B ELSE Tidak diketahui END PRINT Hasil adalah +@hasil Contoh pada SQL-Query: DECLARE @jk char, @nama varchar(16), @teks varchar(255) SELECT @jk=jk, @nama=nama FROM mahasiswa_XXX WHERE npm= 02113216 SELECT @teks= CASE @jk WHEN L THEN Laki-laki WHEN P THEN Perempuan ELSE ? END PRINT @nama + adalah + @teks Hasil: Bambang adalah Laki-laki Tugas Praktikum VII

    1. Struktur kontrol apa saja yang dapat digunakan dalam T-SQL ? 2. Bagaimana menjalankan T-SQL? 3. Apa pengertian T-SQL? 4. Sebutkan kerangka T-SQL?

  • ArisWijayanti,S.Kom PraktikumBasisData

    68

    Langkah selanjutnya : Ikuti langkah-langkah praktikum. Langkah-langkah praktikum : a. Modifikasilah contoh while pada halaman , sehingga menjadi menjadi satu baris saja seperti berikut:

    1. Bilangan real 2. Bilangan genap 3. Bilangan ganjil

    Nb: harus sama seperti contoh di dalam kotak diatas (ada tulisan dan tanda koma)

    b. Buat sebuah T-SQL untuk menghitung Nilai rata-rata langsung dari table asisten_XXX. Buat keterangan bahwasannya assieten tersebut memiliki honor diatas rata-rata atau dibawah rata-rata.

    Tugas Praktikum VII Gunakan tabel anggota, buku, dan pinjam yang telah anda buat untuk membuat T SQL : menghitung denda anggota yang paling banyak dan berdasarkan rata-rata yang ada cari yang paling besar jumlah denda yang diterima.