Modul Praktikum_basisdata 1

download Modul Praktikum_basisdata 1

of 65

Transcript of Modul Praktikum_basisdata 1

  • 7/30/2019 Modul Praktikum_basisdata 1

    1/65

    1

    BASIS DATA 1

    MODUL PRAKTIKUM

    D3 Manajemen InformatikaFakultas Teknik

    Universitas Trunojoyo

  • 7/30/2019 Modul Praktikum_basisdata 1

    2/65

    2

    MODUL I

    MYSQL

    1. Dasar Teori

    Basis data adalah sekumpalan informasi yang diatur agar mudah dicari.

    Dalam arti umum basis data adalah sekumpulan data yang diproses dengan bantuan

    komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang

    dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi.

    Pengertian MYS QL

    Database MYSQL merupakan sistem manajemen basis data SQL yang

    sangat terkenal dan bersifat Open Source. MySQL dibangun, didistribusikan dan

    didukung oleh MYSQL AB. MYSQL AB merupakan perusahaan komersial yang

    dibiayai oleh pengembang MYSQL

    Tipe Data

    Data yang terdapat dalam sebuah tabel berupa field-field yang berisi nilai

    dari data tersebut. Nilai data dalam field memiliki tipe sendiri-sendiri. MYSQL

    mengenal beberapa tipe data field ya itu :

    Tipe data numerik

    Tujuan :

    1. Memahami tentang sistem database

    2. Memahami instalasi MySQL di lingkungan Windows

    3. Memahami dasar-dasar MySQL.

    Tugas Pendahuluan

    1. Apa yang anda ketahui tentang mysql, jelaskan2. Apa perbedaan instalasi mysql dilingkungan windows dengan

    linux

    3. sebutkan operator dan fungsi dalam mysql !

  • 7/30/2019 Modul Praktikum_basisdata 1

    3/65

    3

    Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer danfloating point. Integer digunakan untuk data bilangan bulat sedangkan floating

    point digunakan untuk bilangan desimal.

    Tipe data stringString adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe data

    string dapat dilihat pada tabel 8.1.2.b be rikut:

    Tabel 8.1.2.b Tipe Data String

    Tipe Data Kisaran Nilai

    CHAR 1-255 karakter

    VARCHAR 1-255 karakter

    TINYTEXT 1-255 karakter

    TEXT 1-65535 karakter

    MEDIUMTEXT 1-16777215 karakter

    LONGTEXT 1-424967295 karakter

    Tipe data char() dan varchar()Tipe data char() dan varchar() pada prinsipnya sama, perbedaannya hanya

    terletak pada jumlah memori yang dibutuhkan untuk penyimpanannya.

    Memori yang dibutuhkan untuk tipe data char() bersifat statis, besarnya

    bergantung pada berapa jumlah karakter yang ditetapkan pada saat field

    tersebut dideklarasikan. Pada tipe data varchar() besarnya memori

    penyimpanan tergantung pada jumlah karakter ditambah 1 byte, dapat dilihat

    pada tabel 8.1.2.c berikut ini:

    Tabel 8.1.2.c Letak Perbedaan Jumlah Me mori

    Nilai Char(4) Memori

    Penyimpanan

    Varchar

    (4)

    Memori

    Penyimpanan

    4 bytes 1 byte

    ab ab 4 bytes ab 3 bytes

    abcd abcd 4 bytes abcd 5 bytes

    abcdefgh abcd 4 bytes abcd 5 bytes

    Tipe data tanggalUntuk tanggal dan jam, tersedia tipe-tipe data field berupa DATETIME,DATE, TIMESTAMP, TIME dan YEAR. Masing-masing tipe mempunyai

    kisaran nilai tertentu. MYSQL akan memberikan peringatan kesalahan (error)

    apabila tanggal atau waktu yang dimasukkan salah. Kisaran nilai dan besar

    memori penyimpanan yang diperlukan untuk masing-masing tipe dapat dilihat

    pada tabel 8.1.2.d berikut ini:

    Tabel 8.1.2.d Tipe Data Tanggal

    Tipe Data Kisaran Nilai Memori

    Penyimpanan

    DATETIME 1000-01-01 00:00 sampai 9999-12-3123:59:59

    3 byte

  • 7/30/2019 Modul Praktikum_basisdata 1

    4/65

    4

    DATE 1000-01-01 sampai 9999-12-31 8 byte

    TIMESTAMP 1970-01-01 00:00:00 sampai 2037 4 byte

    TIME -839:59:59 sampa i 838:59:59 3 byte

    YEAR 1901 sampai 2155 1 byte

    Operator MYS QL

    MYSQL mendukung penggunaan operator-operator dan fungsi-fungsi

    diantaranya:

    Operator AritmetikaSuatu ekspresi yang melibatkan tipe data bilangan (NUMERIK) dan tanggal

    (DATE) menggunakan ekspresi aritmatika. Dapat dilihat pada tabel 8.1.3.a

    berikut ini:

    Tabel 8.1.3.a Operator aritmatika MYSQL

    Operator Keterangan

    + Tambah

    - Kurang

    * Kali

    / Bagi

    Mod () Modulus

    Operator PembandinganSuatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai

    sintax sebagai berikut: WHERE expr operator value. Tabel 8.1.3.bmenunjukan operator pembanding pada MYSQL berikut ini:

    Tabel 8.1.3.b Operator Pembanding M YSQL

    Operator Keterangan

    = Sama Dengan

    > Lebih Besar

    < Lebih Kecil

    >= Lebih Besar atau Sama Dengan

  • 7/30/2019 Modul Praktikum_basisdata 1

    5/65

    5

    _ Sembarang satu karakter

    [] Sembarang karakter yang terletak dalam kurung

    siku

    Operator Lain-lainOperator yang digunakan untuk menguji nilai-nilai yang ada dalam list (tanda

    kurung) dan dapat juga untuk menampilkan baris berdasarkan suatu jangkauan

    (range) nilai. Ada 2 symbol tersebut dapat dilihat pada tabel 8.1.3.e berikut ini:

    Tabel 8.1.3.e Operator lain-lain

    Operator Keterangan

    IN Dalam

    BETWEEN Diantara

    2. Kegiatan Praktikum :

    Instalasi MySQL-5.0.22-WIN32 :1. Jalankan file setup mysql, yaitu mysql-5.0.22-win32.exe, maka akan muncul

    dialog instalasi sebagai berikut :

    2. Pilih tombol Next, kemudian muncul d ialog tipe instalasi sebagai berikut :

  • 7/30/2019 Modul Praktikum_basisdata 1

    6/65

    6

    3. Pilih Custom, kemudian pilih tombol Next. Kemudian tampil dialog fiturprogram sebagai berikut :

    4. Klik tanda silang pada Developer Components, kemudian pilih This featurewill be installed on local hard drive seperti gambar berikut :

  • 7/30/2019 Modul Praktikum_basisdata 1

    7/65

    7

    5. Kemudian pilih tombol Change..., pada folder name ubah menjadi sesuaidengan gambar berikut ini :

    6. Pilih OK, kemudian pilih tombol Next, dan pilih tombol Install, maka prosesinstalasi dimulai.

  • 7/30/2019 Modul Praktikum_basisdata 1

    8/65

    8

    7. Berikutnya muncul dialog account, pilih Skip Sign-Up dan klik tombol Next,maka akan muncul dialog sebagai berikut :

    8. Klik tombol Finish dan tombol Next, maka akan muncul dialog sebagaiberikut :

  • 7/30/2019 Modul Praktikum_basisdata 1

    9/65

    9

    9. Pilih Standard Configuration dan klik tombol Next, lalu muncul gambarberikut :

  • 7/30/2019 Modul Praktikum_basisdata 1

    10/65

    10

    10. Pilih tombol Next. Kemudian muncul gambar berikut ini. Masukkan passwordyang diinginkan pada kota isian New root password dan Confirm berikut ini

    untuk sekuritas , misalnya 123456. Klik to mbol Next.

    11. Klik tombol Execute sebagai tahap akhir.

    12.KlikFinish.

  • 7/30/2019 Modul Praktikum_basisdata 1

    11/65

    11

    Melakukan Koneksi ke MySQL :

    Cara 1 :1. Melalui DOS Prompt, masuk ke direktori utama MySQL dengan cara sebagai

    berikut (yang diketik hanya yang digaris bawah) :

    C:\>cd \mysql\ bin

    2. Setelah itu ketikkan perintah berikut (yang diket ik hanya yang digaris bawah) :C:\>mys ql\ bin\mys ql u root pmaka akan diminta untuk memasukkan passoword, isikan password yang

    digunakan pada saat instalasi, yaitu 123456.

    3. Selanjutnya akan ada respon dari server seperti gambar berikut :

    Tampilan tersebut di atas menandakan bahwa telah berhasil melakukan

    koneksi ke server.

    Cara 2 :1. Dari menu Start > All Programs > MyS QL > MySQL Server 5.0 > MySQL

    Command Line Client, maka akan muncul tampilan seperti berikut ini :

  • 7/30/2019 Modul Praktikum_basisdata 1

    12/65

    12

    2. Masukkan password yang telah ditentukan pada saat instalasi, yaitu : 123456kemudian tekan enter.

    Menuliskan perintah pada mys ql

    Bentuk prompt mysql> adalah tempat menuliskan perintah-perintah MySQL.

    Setiap perintah SQL harus diakhiri dengan tanda titik-koma ; .

    Cara untuk membuat s ebuah database baru adalah dengan perintah:

    create database namadatabase;

    Misalkan anda ketikkan :

    create database modul1;

    Untuk membuka sebuah database dapat menggunakan perintah berikut ini:

    use namadatabase;

    Contoh:use modul1;

    Perintah untuk membuat tabel baru adalah:

    create table namatabel

    (

    struktur

    );

    ConstraintConstraint adalah batasan atau aturan yang ada pada table.

    MySQL menyediakan beberapa tipe constraint berikut :

    NOT NULL

    Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh

    berisi

    nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key)

    otomatis tidak boleh NULL.

    UNIQUE

    Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu datadengan data lainnya namanya tidak boleh sama, misal alamat email.

  • 7/30/2019 Modul Praktikum_basisdata 1

    13/65

    13

    PRIMARY KEY

    Cons traint PRIMARY KEY membentuk key yang unik untuk suatu table.

    FOREIGN KEY

    FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada

    suatu table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai

    suatu PRIMARY KEY, biasa dipakai untuk menghubungkan antara 2 tabel.

    Contoh Pembuatan Tabel :

    Misalkan kita ingin menyimpan data anggota yaitu: nomor, nama, email, alamat,

    kota. Sedangkan strukturnya seperti tabel dibawah ini :

    Perintah MySQL untuk membuat tabel seperti diatas bisa dengan 2 cara sbb :

    create table anggota (

    nomor int(6) not null primary key,

    nama char(40) not null,email char(255) not null,

    alamat char(80) not null,

    kota char(20) not null

    );

  • 7/30/2019 Modul Praktikum_basisdata 1

    14/65

    14

    Perintah-Perintah Dasar SQLA. Pemasukan data

    Untuk memasukkan sebuah baris (record) kedalam tabel MySQL adalah sebagai

    berikut:

    Contoh :Insert into anggota (nomor,nama,email,alamat,kota) values

    (100,Adi,ad [email protected],Jl. Keputih 2A no 5,Surabaya);

    atau

    Insert into anggota values (100,Adi,[email protected],Jl. Keputih 2A no

    5, Surabaya);

    3. Tugas1. Buatkan dengan perintah mysql database dengan nama perusahaan2. Di dalam database perusahaan terdapat tabel karyawan, barang,departemen dan produksi3. Tentukan field name masing-masing table4. Tentukan primary key pada setiap tabel

    INSERT INTO t abl e [(col umn1,

    col umn2, . . . ])]

    VALUES ( val ue1, val ue2, . . . ]);

    create table anggota (

    nomor int(6) not null,

    nama char(40) not null,

    email char(255) not null,alamat char(80) not null,

    kota char(20) not null,

    primary key (nomor)

    );

  • 7/30/2019 Modul Praktikum_basisdata 1

    15/65

    15

    MODUL II

    MEMBUAT ER-DIAGRAM

    Dasar Teori

    Apa yang dimaksud dengan model data?

    Model data adalah sekumpulan cara / peralatan / tooluntuk mendeskripsikan data-data, hubungannya satu sama lain, semantiknya, serta batasan konsistensi.

    Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model

    relasional. Keduanya menyediakan cara untuk mendeskripsikan perancangan basisdata pada peringkat logika.

    Model ERD atau Conceptual Data Model (CDM) : model yang dibuatberdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyek-obyek

    dasar yang dinamakan entitas (entity) serta hubungan (relationship) antaraentitas-entitas itu.

    Model Relasional atau Physical Data Model (PDM) : model yangmenggunakan sejumlah tabel untuk menggambarkan data serta hubungan

    antara data-data tersebut. Setiap tabel mempunyai sejumlah kolom di

    mana setiap kolom memiliki nama yang unik.

    Strong entity (entitas kuat) : entitas yang mandiri, yang keberadaannyatidak bergantung pada keberadaan entitas yang lainnya. Instansiasi entitas

    kuat selalu memiliki karakteristik yang unik disebut identifier (sebuah

    Tujuan :

    v Praktikan dapat memaha mi dan membuat ER-Diagram

    Tugas Pendahuluan

    1. Tentukan Database serta field-fieldnya yang ingin anda buat!2. Buatlah ER diagramnyadengan pemodelan El-Masri!3. Apakah yang dimaksud dengan normalisas i? Jelaskan !

  • 7/30/2019 Modul Praktikum_basisdata 1

    16/65

    16

    atribut tunggal atau gabungan atribut-atribut yang secara unik dapat

    digunakan untuk membedakannya dari entitas kuat yang lain ).

    Weak entity (entitas lemah) : entitas yang keberadaannya sangatbergantung pada keberadaan entitas yang lainnya. Entitas lemah tidak

    memiliki arti apa-apa dan tidak dikehendaki kehadirannya dalam diagramER tanpa kehadiran entitas di mana mereka bergantung.

    Entitas di mana entitas lemah bergantung dinamakan identifying owner. Entitas

    lemah tidak memiliki identifiersendiri. Secara umum, dalam diagram ER entitas

    lemah memiliki atribut yang berperan sebagai partial identifier (identifier yangberfungsi secara sebagian).

    Agregasi adalah suatu keadaan di mana suatu relasi hanya dapat direalisasikansetelah relasi yang lain ada terlebih dahulu. Relasi yang bertipe agregasi tidakdimungkinkan ada jika relasi yang menjadi prasyaratnya tidak terealisasi. Contoh:

    Sesungguhnya agregasi dapat dipandang sebagaimana relasi pada umumnya (yang

    menghubungkan 2 entitas). Karena relasi ini dibentuk dari relasi lain (relasi

    prasyarat) yang secara kronologis lebih dulu terbentuk, maka

    pengimplementasiannya juga harus dilakukan setelah relasi prasyarat tersebut

    terimplementasikan. Selanjutnya kita tinggal meninjau derajat relasi dari relasi

    agregasinya.

    Mengapa jika terdapat set entitas yang sama muncul beberapa kali dalam satu setER-Diagram in i harus dihindari?

    Untuk menghindari redundancy Menghemat penyimpanan (storage) data Mengurangi efektifitas dan kecepatan akses Untuk menghindari te rjad inya as inkronisas i data pada saat diupdate

    perbedaan antara total constraint dan partial constraint!

    Total constraint adalah constraint yang mana data dalam entitas yangmemiliki constraint tersebut terhubung secara penuh ke dalam entitas dari

    relasinya.

    Constraint partial adalah constraint yang mana data dalam entitas yangmemiliki constraint tersebut terhubung ke dalam entitas dari relasinya.

  • 7/30/2019 Modul Praktikum_basisdata 1

    17/65

    17

    Relasi satu :

    Entity 1 to entity 2 : kardinalitas : one to many dengan detail minimal 0dan maksimalnya banyak. Dependensi : entitas 1 dan entitas 2 tidak saling

    ketergantungan.

    Entity 2 to entity 1 : kardinalitas : many to one dengan detail minimal 1dan maksimalnya 1. Dependensi : entitas 1 dan entitas 2 tidak salingketergantungan.

    Relasi dua :

    Entity 3 to entity 4 : kardinalitas : one to many dengan detail minimal 0maksimalnya banyak. Dependensi : entitas 3 dan entitas 4 t idak salingketergantungan.

    Entity 4 ke entity 3 : kardinalitas : many to one dengan detail minimal 1maksimal 1. Dependensi : entitas 4 dan entitas 3 tidak saling

    ketergantungan.

    Relasi tiga

    Entity 5 to entity 6 dan Entity 6 to entity 5 : kardinalitas : one to onedengan detail minimal 0 maksimalnya 1. Dependensi : entitas 5 danentitas 6 tidak saling ketergantungan.

    Relasi empat:

  • 7/30/2019 Modul Praktikum_basisdata 1

    18/65

    18

    Entity 7 to entity 8 : kardinalitas : one to one dengan detail min imal 0maksimalnya 1. Dependensi : entitas 7 dan entitas 8 tidak salingketergantungan.

    Entity 8 ke entity 7 : kardinalitas : one to one dengan detail minimal 1maksimal 1. Dependensi : entitas 8 dan entitas 7 tidak salingketergantungan.

    Relasi lima

    Entity 9 to entity 10 : kardinalitas : many to many dengan detail minimal0 maksimalnya banyak. Dependensi : entitas 9 dan entitas 10 tidak saling

    ketergantungan.

    Entity 10 ke entity 9 : kardinalitas : many to many dengan detail minimal1 maksimal banyak. Dependensi : entitas 10 dan entitas 9 tidak saling

    ketergantungan.

    Relasi tujuh

    Entity 13 to entity 14 : kardinalitas : one to many dengan detail minimal 0maksimalnya banyak. Dependensi : entitas 13 menjadi parent dari entitas14.

    Entity14 ke entity 13 : kardinalitas : many to one dengan detail minimal 1maksimal 1. Dependensi : entitas 14 tergantung kepada entitas 13.

    Perbedaan antara tahap 1NF dengan tahap BCNF :

    1NF : tahap normalisas i dasar, yang mana masih belum sampai padatingkat efektifitas maksimal, masih banyak kemungkinan terjadinyaredundancy data atau duplikasi data.

  • 7/30/2019 Modul Praktikum_basisdata 1

    19/65

    19

    BCNF : tahap normalisasi setelah 3NF , yang mana efektifitas telahmencapai maksimal, kemungkinan terjadinya redundancy data danduplikasi data lebih kecil daripada 1NF.

    Tugas :

    1. Bangun sebuah ER-Diagram untuk database anda. Serta bangun tabel-tabeluntuk ER-diagramnya dan setiap tabel jelas relasinya! (dengan menggunakanPower Designer)

  • 7/30/2019 Modul Praktikum_basisdata 1

    20/65

    20

    MODUL III

    DDL I

    Dasar Teori

    DDL atau Data Definition Language adalah bagian dari sql yang digunakan

    untuk mendefinisikan data dan objek database. Apabila perintah ini digunakan,

    entri akan dibuat ke dalam kamus data dari SQL. Didalam kategori ini terdapat

    perintah-perintah sebagai berikut :

    Perintah Keterangan

    Create Table Membuat tabel

    Create Index Membuat inde x

    Alter Table Mengubah atau menyisipkan kolom ke dalam tabel

    Drop Table Menghapus tabel dari database

    Drop Index Menghapus index

    Grand Memberikan ijin akses kepada user

    Tujuan :

    v Praktikan dapat memahami dan membuat databasev Praktikan dapat memaha mi dan membuat table daridatabasev Mahasiswa mampu membuat script untuk pembuatan tabel dan

    mengupdate tabe

    Tugas Pendahuluan

    1.

    Buat resume tentang DDL kemudian pelajari

  • 7/30/2019 Modul Praktikum_basisdata 1

    21/65

    21

    Praktikum

    a. Membuat DatabaseSyntax : CREATE DATABASE namadatabase;

    namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama

    yang sama antar database.

    Syntax tambahan : untuk menampilkan daftar nama database yang ada pada

    mysql menggunakan perintah :

    SHOW DATABASES;

    b. Menghapus DatabaseSyntax : DROP DATABASE namadatabase;

    Database yang akan dihapus sesuai dengan namadatabase. Berikut ini perintah

    untuk menghapus database dengan nama rental :

    c. Membuat TabelSebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu

    database sebagai database aktif yang akan digunakan untuk menyimpan tabel-

    tabel dengan menggunakan syntax : USE namadatabase; Syntax membuat table

    :

    CREATE TABLE namatabel

    (

    Field1 TipeData1,Field2 TipeData2

    );

    namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1

    merupakan nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin

    membuat tabel dengan kolom lebih dari satu, maka setelah pendefinisian tipe

    data sebelumnya diberikan tanda koma (,).

    Syntax tambahan :

    Untuk menampilkan daftar nama tabel yang ada pada database yang sedangaktif/digunakan (dalam ha l ini database rental) :

    SHOW TABLES;

    Untuk mena mpilkan deskripsi tabel (dalam hal ini jenisfilm) syntaxnya adalah :

    DESC namatabel;

    d. Menghapus TabelSyntax : DROP TABLE namatabel;

    Tabel yang akan dihapus sesuai dengan namatabel, berikut ini perintah untukmenghapus tabel dengan nama jenisfilm :

  • 7/30/2019 Modul Praktikum_basisdata 1

    22/65

    22

    e. Mendefinisikan null/not nullSyntax :

    CREATE TABLE namatabel

    (

    Field1 TipeData1 NOT NULL,

    Field2 TipeData2

    );

    Tugas :

    1. Buatlah sebuah database sesuai dengan ER-Diagram yang anda buat ( dariPower designer generate) script pembuatan tabelnya dengan perintah

    DDLkemudian beri nama database sesuai dengan nama mahasiswa!2. Buatlah tabel-tabelnya yang juga sesuai dengan ER-Diagram yang anda

    buat!

  • 7/30/2019 Modul Praktikum_basisdata 1

    23/65

    23

    MODUL IV

    DDL II

    Dasar Teori

    Data Definition Language (DDL) digunakan untuk membuat dan

    menghancurkan database dan objek database. Perintah-perintah ini terutama akan

    digunakan oleh database administrator selama fase setup dan penghapusan proyekdatabase. Mari kita melihat struktur dan penggunaan perintah DDL empat dasar:

    CREATE

    Instalasi sistem manajemen database (DBMS) pada komputer memungkinkan

    Anda untuk membuat dan mengelola banyak database independen

    US E

    Perintah USE memungkinkan Anda untuk menentukan database yang ingin bekerja

    dengan Anda dalam DBMSSangat penting untuk selalu sadar akan database Anda bekerja dalam sebelum

    mengeluarkan perintah SQL yang memanipulasi data.

    ALTER

    Setelah Anda telah membuat tabel dalam database, Anda mungkin ingin

    memodifikasi definisi itu. The ALTER command allows you to make changes to

    the structure of a table without deleting and recreating it. ALTER perintah yang

    memungkinkan Anda untuk membuat perubahan pada struktur tabel tanpa

    menghapus dan menciptakan

    Tujuan :

    v Praktikan dapat memahami dan membuat databasev Praktikan dapat mengerti tentang Primary key

    Tugas Pendahuluan1. Buat desain entitas dan relasi dari database yang akan dibuat

    dalam praktikum (setiap entitas sudah terdapat primary key)

  • 7/30/2019 Modul Praktikum_basisdata 1

    24/65

    24

    DROP

    Perintah terakhir dari Data Definition Language, DROP, memungkinkan kita untuk

    menghapus seluruh objek database dari DBMS. Gunakan perintah ini dengan hati-

    hati! Ingat bahwa perintah DROP menghapus data keseluruhan struktur dari

    database Anda. Jika Anda ingin menghapus catatan individu, gunakan perintah

    DELETE Manipulasi Data Bahasa.

    Praktikum:

    a. Mendefinisikan Nilai DefaultNilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu

    kolom ketika ada penambahan baris baru, sementara nilai pada kolom tersebut

    tidak diisi o leh pengguna. Syntax :

    CREATE TABLE namatabel

    (Field1 TipeData1,

    Field2 TipeData2 DEFAULT n ilai

    );

    nilai adalah nilai default dari kolom tersebut.

    b. Mendefinisikan Primary Key Pada TabelTerdapat tiga cara untuk mendefin isikan p rimary key. Berikut ini adalah Syntax

    mendefinisikan primary key untuk Field1

    CREATE TABLE namatabel(

    Field1 TipeData1 NOT NULL PRIMARY KEY,

    Field2 TipeData2

    );

    Atau

    CREATE TABLE namatabel

    (Field1 TipeData1,

    Field2 TipeData2,

    PRIMARY KEY(Field1)

    );

    atau

    ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY

    KEY (namakolom);:

  • 7/30/2019 Modul Praktikum_basisdata 1

    25/65

    25

    c. Menghapus Primary Key Pada TabelPerintah :

    Cara 1 : Jika primary key dibuat dengan menggunakan alter table :

    ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;

    Cara 2 : Jika primary key dibuat melalui create table :

    ALTER TABLE namatabel DROP PRIMARY KEY;

    d. Menambah Kolom Baru Pada TabelSyntax :

    ALTER TABLE namatabelADDfieldbaru tipe;

    namatabel adalah nama tabel yang akan ditambah fieldnya. Fieldbaru adalah

    nama kolom yang akan ditambahkan, tipe adalah tipe data dari kolom yangakan ditambahkan.

    e. Mengubah Tipe Data atau Lebar Kolom Pada TabelPerintah :

    ALTER TABLE namatabelMODIFY COLUMNfieldtipe

    namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya.

    Field adalah kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe

    data baru atau tipe data lama dengan lebar kolom yang berbeda.

    f. Mengubah Nama KolomSyntax :

    ALTER TABLE namatabel CHANGE COLUMN namalamakolom

    namabarukolom tipedatanya;

    namatabel adalah nama tabel yang akan diubah nama kolomnya,

    namalamakolom adalah kolom yang akan diganti namanya, namabarukolom

    adalah nama baru kolom, tipedatanya adalah tipe data dari kolom tersebut.

    Berikut ini perintah untuk mengubah nama ko lom keterangan menjadi ket :

    g. Menghapus Kolom Pada TabelSyntax :

    ALTER TABLE namatabel DROP COLUMN namakolom;

    h. Mendefinisikan Foreign Key Pada TabelUntuk mendefinisikan foreign key, maka harus dipastikan bahwa tabel dan

    atribut yang dirujuk (tabel induk dari foreign key) sudah didefinisikan terlebih

    dahulu. Syntax :CREATE TABLE namatabel

  • 7/30/2019 Modul Praktikum_basisdata 1

    26/65

    26

    (

    Field1 TipeData1,

    Field2 TipeData2,

    FOREIGN KEY (Field2) REFERENCES namatabelinduk

    (namakolominduk)ON UPDATE CASCADE

    ON DELETE NO ACTION

    )

    atau

    ALTER TABLE namatabel ADD CONSTRAINT namaconstraint FOREIGN

    KEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ON

    UPDATE CASCADE ON DELETE NO ACTION;

    i. Menghapus Foreign KeyPerintah :

    ALTER TABLE namatabelDROP FOREIGN KEY namaconstraint;

    Tugas :

    1. Beri Primary key pada tiap tabel yang anda buat pada database2. Tambahkan satu kolom baru pada database yang anda buat3. Ganti nama salah satu kolom anda dengan perintah yang tertera pada modul

  • 7/30/2019 Modul Praktikum_basisdata 1

    27/65

    27

    MODUL V

    DML (DATA MANIPULATION LANGUAGE)

    Dasar Teori

    DML (Data Manipulation Language) adalah bahasa yang

    memungkinkan pengguna mengakses atau memanipulasi data seperti yang diatur

    oleh model data. Manipulasi data adalah : Pengambilan informasi yang disimpan dalam basisdata Penempatan informasi baru dalam basisdata Penghapusan informasi dari basisdata Modifikasi informasi yang disimpan dalam basisdata

    DML (Data Manipulation Language) merupakan bahasa yang bertujuan

    memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh

    model data. Ada 2 jenis DML, yaitu :

    Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yangdiinginkan serta bagaimana cara mendapatkannya.

    Nonprosedural, yang membuat pe makai dapat menentukan data apa yangdiinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

    Query adalah pernyataan yang meminta pengguna mengambil informasi. Bagian

    DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah

    bahasa query sering disamakan dengan istilah bahasa manipu lasi data. Sedangkan

    SQL adalah sebuah sintaks untuk mengeksekusi query.

    Praktikum

    Coba semua contoh operasi DML di bawah ini :1. Pernyataan INSERT INTO

    Tujuan :

    v Prakt ikan dapat memahami dan mengisi tabel dalam databasev Prakt ikan dapat memahami dan memanipulasi data dalam database

    Tugas Pendahuluan

    v Apa yang anda ketahui tentang DML?v Apa yang anda ketahui tentang perintah INSERT, UPDATE dan

    DELETE?

    v Sebutkan dan jelaskan macam-macam klausa maupun operator yangterdapat dalam perintah SELECT!

  • 7/30/2019 Modul Praktikum_basisdata 1

    28/65

    28

    Pernyataan INSERT INTO digunakan untuk memasukkan data baru

    pada tabel.

    Sintaks :

    INSERT INTO nama_tabel

    VALUES (n ilai1, n ilai2, ...)

    Urutan nilai yang diletakkan dalam tanda kurung disesuaikan dengan urutan kolom

    dalam tabel. Akan tetapi kita bisa menentukan kolom-kolom yang akan diisi

    dengan data baru, yaitu :

    INSERT INTO nama_tabel (kolom1, kolom2, ...)

    VALUES (n ilai1, n ilai2, ...)

    Kolom-kolom yang tidak disebutkan pada Insert secara otomatis akan diisi dengan

    Null dan kolom yang tidak disebutkan dalam Insert harus lah yang tidak Not Null.

    Contoh :

    Insert Into MahasiswaValues ('01012','Irwan','Jl.Beo 23','Bogor')

    2. Pernyataan UPDATEPernyataan UPDATE digunakan untuk modifikasi data dalam tabel.

    Sintaks :

    UPDATE nama_tabel

    SET nama_kolom = nilai_baru

    WHERE nama_kolom = nilai

    Pada pernyataan diatas : SET untuk menentukan kolom yang akan diubah dan nilai penggantinya. WHERE menentukan kondisi dari baris-baris yang akan diganti.

    Contoh :

    Update Mahasiswa Set Nama ='Riri'

    Where NPM='01010'

    3. Pernyataan DELETEPernyataan DELETE digunakan untuk menghapus baris pada tabel.

    Sintaks :DELETE FROM nama_tabel

    WHERE nama_kolom = nilai

    Contoh :

    Untuk menghapus baris pada tabel Mahasiswa yang nilai NPMnya adalah 01013,

    anda bisa memberikan pernyataan seperti berikut :

    Delete From Mahasiswa

    Where NPM =01013

    Dalam perintah DELETE jika kita ingin menghapus semua data pada tabel tanpamenghapus tabel maka Where tidak perlu d isebutkan.

  • 7/30/2019 Modul Praktikum_basisdata 1

    29/65

    29

    DELETE FROM nama_tabel

    Atau

    DELETE * FROM nama_tabel

    4. Pernyataan S ELECTSecara umum perintah SELECT hanya difungsikan untuk menampilkan data

    yang ada di dalam suatu tabel. Tetapi dalam pengembangannya, perintah ini akan

    menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat

    pemrograman di s tored procedures dan triggers. Sementara ini dalam basis data 1

    yang kita bahas hanya pernyataan SELECT yang digunakan untuk memilih data

    dari tabel, yang mana hasilnya disimpan dalam tabel hasil yang disebut Result Set.

    Sintaks :

    SELECT nama_kolom

    FROM nama_tabel

    Untuk memilih beberapa kolom gunakan pernyataan SELECT sebagai berikut :

    SELECT nama_kolom1, nama_kolom2, ...

    FROM nama_tabel

    Contoh :

    Select NPM, Nama

    From Mahasiswa

    Merupakan pernyataan untuk menampilkan kolom NPM dan Nama yangterdapat pada tabel Mahasiswa.

    NPM Nama

    ----- ------------------------------

    01001 Rudi

    01002 Iwan

    01005 Wati

    01006 Jihan

    01007 Nova

    01009 Budi

    Untuk memilih semua kolom dari tabel, dapat menuliskan tanda asterisk ( * )

    sesudah kata Select. Simbol * berarti semua kolom, seperti berikut :

    SELECT *

    FROM nama_tabel

    Contoh :

    Select *

    From Mahasiswa

    4.1 Distinct

  • 7/30/2019 Modul Praktikum_basisdata 1

    30/65

    30

    Untuk memilih hanya nilai yang berbeda, gunakan pernyataan SELECT

    DISTINCT.

    Sintaks :

    SELECT DISTINCT nama_kolom

    FROM nama_tabel

    4.2 Klausa WHEREKlausa WHERE digunakan untuk menentukan kriteria seleksi. Untuk memilih

    data suatu tabel dengan kriteria tertentu, klausa WHERE dapat ditambahkan pada

    pernyataan SELECT.

    Sintaks :

    SELECT nama_kolom

    FROM nama_tabel

    WHERE ko lom operator nilai

    Dengan klausa WHERE, operator berikut dapat digunakan :

    Operator Keterangan

    = Sama dengan

    Tidak sama dengan

    > Lebih besar dari

    < Lebih kecil dari

    >= Lebih besar atau sama dengan

  • 7/30/2019 Modul Praktikum_basisdata 1

    31/65

    31

    Tanda % dapat digunakan untuk menentukan Wildcard (sembarang huruf), ba ik

    sebelum maupun sesudah pola. Pernyataan SQL berikut akan menghasilkan nama

    mahasiswa yang dimulai dengan huruf A :

    Select *

    From Mahasiswa

    Where NamaDepan LIKE A%

    Pernyataan SQL berikut menghasilkan na ma mahasiswa yang diakhiri huruf a :

    Select *

    From Mahasiswa

    Where NamaDepan LIKE %a

    Pernyataan SQL berikut menghasilkan nama mahasiswa yang mengandung pola

    di:

    Select *From Mahasiswa

    Where NamaDepan LIKE %di%

    Tugas :

    Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-

    masing perintah DML berikut :

    1. Sisipkan min 10 baris data dalam masing-masing tabel2. Tambahkan min 2 operasi update, delete, dan select

  • 7/30/2019 Modul Praktikum_basisdata 1

    32/65

    32

    MODUL VI

    DML (DATA MANIPULATION LANGUAGE)

    Dasar Teori

    Perintah SELECT adalah perintah untuk menampilkan data yang ada di

    dalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi

    sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman distored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas

    dalam modul V masih ada banyak perintah-perintah SELECT lain, antara lain

    perintah ALIAS, mena mpilkan data lebih dari 2 tabel, ORDER BY, AND dan OR,

    GROUP BY dan HAVING, fungsi agregate, dan beberapa perintah yang lain.

    Praktikum

    Coba semua contoh operasi DML di bawah ini :

    1. ALIASPerintah Select dapat dilakukan dengan memberikan nama ALIAS yaitu dapat

    digunakan untuk mengganti nama_kolom dan nama_tabel.

    1.1 Memberikan nama lain pada kolomSintaks untuk alias nama kolom :

    SELECT namakolomlama AS namakolombaru

    FROM namatabel;

    Atau

    SELECT nama_kolom AS nama_alias_kolom

    FROM nama_tabel

    Tujuan :

    v Praktikan dapat memahami dan memanipulasi data dalam databasedengan lebih luas lagi.

    Tugas Pendahuluan

    v Sebutkan dan jelaskan macam-macam klausa maupun operator yangterdapat dalam perintah SELECT selain yang sudah disebutkan di

    modul sebelumnya (modul V)!

    v Buat contoh perintah SQLnya, masing-masing min 1 !

  • 7/30/2019 Modul Praktikum_basisdata 1

    33/65

    33

    Jika kita ingin membuat nama alias untuk kolom NamaDepan menjadi ND dan

    NamaBelakang menjad i NB, gunakan pernyataan SQL berikut :

    SELECT NamaDepan AS ND, NamaBelakang AS NB

    FROM Mahasiswa

    1.2 Menggunakan alias untuk nama tabelSintaks untuk alias nama tabel :

    SELECT nmalias.jenis, nmalias.harga

    FROM namatabel nmalias;

    Atau

    SELECT nama_kolom

    FROM nama_tabel

    AS nama_alias_tabel

    Jika kita ingin membuat nama alias untuk Tabel Mahasiswa menjadi MHS,gunakan pernyataan SQL berikut :

    SELECT *

    FROM Mahasiswa AS MHS

    2. Menampilkan data lebih dari dua tabelPerintah Select juga dapat dilakukan untuk beberapa tabel sekaligus dengan

    syarat bahwa tabel-tabel yang akan ditampilkan semua mempunyai relasi baik

    secara implisit maupun eksplisit.

    Salah satu kunci utama dalam melakukan perintah Select untuk beberapa tabelsekaligus adalah dengan melakukan kondisi relasi antara tabel-tabel yang akan

    ditampilkan untuka field yang saling berelasi. Selain itu, juga perlu diperhatikan

    tentang tabel yang akan menjadi acuan pertama dalam penampilan data yang

    dimaksud. Sebagai contoh adalah jika kita ingin menampilkan data mahasiswa

    yang mengambil jurusan, maka tabel acuannya adalah tabel mahasiswa.

    Sintaks :

    SELECT *

    FROM na matabel1, namatabel2, namatabel-n;

    Misalkan dalam tabel Mahasiswa field-fieldnya terdiri dari NRP, NamaDepan,

    NamaBelakang, Tempat Lahir, TanggalLahir, Alamat, dan KodeJurusan.

    Sedangkan di tabel Jurusan field-fieldnya adalah KodeJurusan dan NamaJurusan.

    Berikut ini perintah untuk menampilkan semua data pada tabel Mahasiswa dan

    Jurusan,

    SELECT *

    FROM Mahasiswa, Jurusan

    Maka tabel yang dihasilkan dari perintah SQL diatas adalah semua field dari tabelMahasiswa dan tabel Jurusan akan ditampilkan, yaitu NRP, NamaDepan,

  • 7/30/2019 Modul Praktikum_basisdata 1

    34/65

    34

    NamaBelakang, Tempat Lahir, TanggalLahir, Alamat, Mahasiswa.KodeJurusan,

    Jurusan.KodeJurusan, dan NamaJurusan.

    3. Klausa Order ByKlausa ORDER BY d igunakan untuk mengurutkan data. Jika kita ingin

    menampilkan nama mahasiswa berdasarkan urutan abjad, pernyataan SQL-nya

    adalah :

    SELECT *

    FROM Mahasiswa

    ORDER BY NamaDepan

    Jika kita ingin menampilkan nama mahasiswa dan kotanya berdasarkan urutan

    abjad, maka pernyataan SQL-nya adalah :

    SELECT *FROM Mahasiswa

    ORDER BY NamaDepan, Kota

    Jika kita ingin menampilkan nama mahasiswa dengan urutan abjad terbalik, maka

    pernyataan SQL-nya adalah :

    SELECT *

    FROM Mahasiswa

    ORDER BY NamaDepan DESC

    Jika kita ingin menampilkan nama mahasiswa berdasarkan urutan abjad terbalik

    dan nama kota berdasarkan urutan abjad, maka pernyataan SQL-nya adalah :

    SELECT *

    FROM Mahasiswa

    ORDER BY NamaDepan DESC, Kota ASC

    4. Operator AND dan ORAND dan OR menggabungkan dua atau lebih kondisi pada klausa WHERE.

    Operator AND menampilkan data jika semua kondisi yang dimintabernilai benar.

    Operator OR menampilkan data jika ada kondisi yang benar.Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita dan nama

    kota Yogyakarta adalah:

    SELECT *

    FROM Mahasiswa

    WHERE NamaDepan = Ita AND Kota = Yogyakarta

    Pernyataan SQL untuk menampilkan mahasiswa dengan nama depan Ita atau kota

    Yogyakarta adalah :SELECT *

  • 7/30/2019 Modul Praktikum_basisdata 1

    35/65

    35

    FROM Mahasiswa

    WHERE NamaDepan = Ita OR Kota = Yogyakarta

    Operator AND dan OR dapat digunakan secara bersamaan, yaitu :

    SELECT *

    FROM Mahasiswa

    WHERE (NamaDepan = Ita OR Kota = Yogyakarta) AND (Alamat = Jl.

    Jend. Sudirman 3)

    5. Klausa GROUP BY dan HAVING5.1 GROUP B Y

    Hasil dari Select juga dapat dikelompokkan. Hal ini dapat dilakukan dengan

    menambahkan klausa GROUP BY.

    Sintaks :SELECT nama_kolom, COUNT (nama_kolom)

    FROM nama_tabel

    GROUP BY na ma_kolom

    Jika kita ingin menampilkan nama mahasiswa yang lahir di satu kota, gunakan

    pernyataan berikut :

    SELECT Tempat_Lahir, COUNT (Tempat_Lahir) as Jumlah

    FROM Mahasiswa

    GROUP BY Tempat_Lahir

    5.2 HAVINGKlausa HAVING d isediakan untuk mendukung klausa GROUP BY.

    Kegunaannya adalah untuk menentukan kondisi bagi GROUP BY. Kelompok yang

    memenuhi kondisi HAVING saja yang akan dihasilkan.

    Sintaks :

    SELECT nama_kolom, COUNT (nama_kolom)

    FROM nama_tabel

    GROUP BY na ma_kolomHAVING COUNT (nama_kolom) kondisi nilai

    Misalnya, pernyataan untuk mencari kota yang menjadi tempat lahir oleh lebih dari

    satu mahasiswa adalah:

    SELECT Tempat_Lahir, COUNT (Tempat_Lahir) AS Jumlah

    FROM MAHASISWA

    GROUP BY Tempat_Lahir

    HAVING COUNT (Tempat_Lah ir) > 1

    6. Fungsi Aggregate (COUNT, SUM, AVG, MIN dan MAX)

  • 7/30/2019 Modul Praktikum_basisdata 1

    36/65

    36

    Fungsi aggregate merupakan fungsi-fungsi yang digunakan untuk

    melakukan perhitungan statistikal dalam tabel. Secara umum, hanya field yang

    bertipe numerik (int, money dan sejenisnya) yang bisa dikenakan fungsi ini. SQL

    menyediakan sejumlah fungsi yang dapat digunakan pada SELECT.

    Fungsi Keterangan

    AVG Menghitung rata-rata

    COUNT Menghitung cacah data

    MAX Memperoleh nilai terbesar

    MIN Memperoleh nilai terkecil

    SUM Memperoleh jumlahan data

    6.1 COUNTPerintah yang digunakan untuk menghitung jumlah baris suatu kolom pada

    tabel. Pernyataan SQL untuk menghitung jumlah baris kolom NamaDepan pada

    tabel Mahasiswa adalah :

    SELECT COUNT (NamaDepan) AS JumlahMahasiswa

    FROM Mahasiswa

    6.2 SUMPerintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada

    tabel. Pernyataan SQL untuk menghitung jumlah nilai kolom SKS pada tabel

    Matakuliah :

    SELECT SUM(SKS) AS TotalSKS

    FROM Matakuliah

    6.3 AVGPerintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom

    pada tabel. Contoh : perintah untuk menghitung rata-rata dari kolom SKS pada

    tabel Matakuliah :

    SELECT AVG(SKS) AS RataSKS

    FROM Matakuliah

    6.4 MINPerintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom

    pada tabel. Contoh : perintah untuk mena mpilkan nilai terkecil dar i kolom SKS

    pada tabel Matakuliah :

    SELECT M IN(SKS) AS Ju mlahMinimum

    FROM Matakuliah

    6.5 MAX

  • 7/30/2019 Modul Praktikum_basisdata 1

    37/65

    37

    Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu

    kolom pada tabel. Contoh : perintah untuk menampilkan nilai terbesar dari kolom

    SKS pada tabel Matakuliah :

    SELECT MAX(SKS) AS JumlahMaksimum

    FROM Matakuliah

    7. Operator INOperator IN bisa digunakan jika kita mengetahui nilai pasti yang akan

    diambil untuk setidaknya satu kolom.

    Sintaks :

    SELECT nama_kolom

    FROM nama_tabel

    WHERE nama_kolom

    IN (nilai1, nilai2, ...)Untuk menampilkan mahasiswa dengan nama depan Hasan atau Adi, gunakan

    pernyataan SQL berikut :

    SELECT *

    FROM Mahasiswa

    WHERE NamaDepan

    IN (Hasan, Adi)

    8. Operator BETWEEN ANDOperator BETWEEN AND memilih data antara dua nilai. Nilai

    dapat berupa angka, teks, atau tanggal.

    Sintaks :

    SELECT nama_kolom

    FROM nama_tabel

    WHERE nama_kolom

    BETWEEN nilai1 AND nilai2

    Untuk menampilkan Mahasiswa yang namanya diantara (dan termasuk) Adi dan

    Ita, gunakan perintah SQL berikut :

    SELECT *FROM Mahasiswa

    WHERE NamaDepan

    BETWEEN Adi AND Ita

    Operator BETW EEN AND diperlakukan secara berbeda pada DBMS berbeda.

    Pada satu DBMS, data Mahasiswa yang dimunculkan adalah yang berada diantara

    Adi dan Ita, tetapi Adi dan Ita tidak dimunculkan. Pada DBMS lain, Mahasiswa

    yang dimunculkan termasuk Adi dan Ita. Kemudian, pada DBMS lainnya, Adi

    dimunculkan, tetapi Ita tidak.

    Untuk menampilkan Mahasiswa di luar jangkauan contoh, gunakan operator NOTseperti berikut :

  • 7/30/2019 Modul Praktikum_basisdata 1

    38/65

    38

    SELECT *

    FROM Mahasiswa

    WHERE NamaDepan

    NOT BETWEEN Adi AND Ita

    Tugas :

    Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-

    masing perintah DML berikut :

    1. Buatlah perintah SQL untuk menampilkan data yang berasal dari duatabel dan tiga tabel.

    2. Buatlah perintah SQL yang menggunakan klausa Order By, Group By,dan Having.

    3. Buatlah perintah SQL yang menggunakan operator AND, OR, IN danBETWEEN ... AND.

    4. Buatlah perintah SQL yang menggunakan fungsi Agregate (masing-masing 1).

  • 7/30/2019 Modul Praktikum_basisdata 1

    39/65

    39

    MODUL VII

    Evaluasi Praktikum I

    Praktikum :

    1. Implementasikan database anda pada Power Designer2. Generate database anda pada MySql3. Untuk selanjutnya Ikuti perintah yang diberikan o leh as isten praktikum.

    Tujuan :

    v Praktikan lebih memaha mi dan mengimplementasikan tentang ERDv Praktikan lebih memahami dan mengimplementasikan tentang DDL

    dan DML

    Tugas Pendahuluan1. Buatlah ERD database

    a. Nrp genap : data base perpusatakaanb. Nrp ganjil : data base retail

  • 7/30/2019 Modul Praktikum_basisdata 1

    40/65

    40

    MODUL VIII

    DML (DATA MANIPULATION LANGUAGE)

    Dasar Teori

    Perintah SELECT adalah perintah untuk menampilkan data yang ada didalam suatu tabel, yang mana dalam pengembangannya perintah ini akan menjadi

    sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrograman di

    stored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas

    dalam modul V dan VI, masih ada banyak perintah-perintah SELECT lain yang

    lebih luas lagi dalam penggunaan perintah SELECT.

    Praktikum

    Coba semua contoh operasi DML di bawah ini :

    1. JOIN dan KUNCITerkadang kita harus memilih data dari dua tabel atau lebih untukmendapatkan hasil yang komplit. Oleh karena itu, kita harus melakukan sebuah

    JOIN. Join merupakan operasi yang digunakan untuk menggabungkan dua tabel

    atau lebih dengan hasil berupa gabungan dari kolom-ko lom yang berasal dari tabel-

    tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan didasarkan pada

    pencocokan antara kolom pada tabel yang berbeda.

    Tabel-tabel dalam sebuah basisdata dapat dihubungkan satu sama lain

    menggunakan kunci. Kunci utama adalah sebuah kolom dengan nilai unik untuk

    masing-masing baris. Tujuannya adalah menggabungkan data antartabel tanpamengulangi se mua data pada setiap tabel.

    Tujuan :

    v Praktikan dapat memahami dan memanipulasi data dalam databasedengan lebih luas lagi.

    Tugas Pendahuluanv Apa yang anda ketahui tentang JOIN, UNION, INTERSECT,

    EXCEPT, dan operator comparison ANY dan ALL?

    v Buat contoh perintah SQL untuk SELECT yang menggunakan JOIN,UNION, INTERSECT, EXCEPT, dan operator comparison ANY dan

    ALL !

  • 7/30/2019 Modul Praktikum_basisdata 1

    41/65

    41

    Misalnya kita memilih data dari dua tabel (tabel Mahasiswa dan Jurusan) dengan

    mengacu pada kedua tabel sebagai berikut :

    SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan

    FROM MAHASISWA, JURUSAN

    WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

    Untuk mengetahui siapa yang mengambil jurusan Teknik Informatika, gunakan

    pernyataan SQL berikut :

    SELECT MAHASISWA.NamaDepan

    FROM MAHASISWA, JURUSAN

    WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

    AND JURUSAN.NamaJurusan = "Teknik Informatika"

    Kita pun bisa menggunakan kata kunci JOIN untuk memilih data. Ada tiga macam

    kunci JOIN, yaitu INNER JOIN, LEFT JOIN, dan RIGHT JOIN.

    1.1 INNER JOINInner join digunakan untuk menampilkan data dari dua tabel yang

    berisi data sesuai dengan syarat di belakang on (tidak boleh null), dengan kata lain

    semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan.

    Sintaks untuk INNER JOIN :

    SELECT field1, field2,

    FROM tabel1 INNER JOIN tabel2

    ON tabel1.kunci_utama = tabel2.kunci_asingMisalnya, untuk mengetahui siapa yang telah mengambil jurusan dan jurusan apa

    yang diambil, kita dapat menggunakan pernyataan berikut :

    SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan

    FROM MAHASISWA INNER JOIN JURUSAN

    ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

    INNER JOIN akan memunculkan semua baris kedua tabel jika ada pasangannya.

    Jika ada baris pada Tabel Mahasiswa yang tidak memiliki pasangan, maka baris

    tidak akan dimunculkan pada Tabel Jurusan.

    1.2 LEFT JOINLeft join digunakan untuk menampilkan semua data dari tabel sebelah kiri

    perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat

    data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan dengan

    pasangannya berupa nilai NULL.

    Sintaks untuk LEFT JOIN :

    SELECT field1, field2,

    FROM tabel1 LEFT JOIN tabel2

    ON tabel1.kunci_utama = tabel2.kunci_asing

  • 7/30/2019 Modul Praktikum_basisdata 1

    42/65

    42

    Misalkan, kita ingin menampilkan semua mahasiswa dan jurusan yang diambil,

    jika ada. Kita dapat menggunakan pernyataan berikut :

    SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan

    FROM MAHASISWA LEFT JOIN JURUSAN

    ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

    LEFT JOIN akan memunculkan semua baris tabel pertama (Mahasiswa), bahkan

    jika t idak ada pasangannya di tabel kedua (Jurusan). Jika ada baris pada tabel

    Mahasiswa yang tidak ada pasangannya pada tabel Jurusan, maka ia pun akan

    dimunculkan.

    1.3 RIGHT JOINRight join digunakan untuk menampilkan semua data dari tabel sebelah kanan

    perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat

    data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan denganpasangannya berupa nilai NULL.

    Sintaks untuk RIGHT JOIN :

    SELECT field1, field2,

    FROM tabel1 RIGHT JOIN tabel2

    ON tabel1.kunci_utama = tabel2.kunci_asing

    Misalkan, kita ingin menampilkan semua nama dari tabel Mahasiswa dan Jurusan

    yang diambil, jika ada. Kita dapat menggunakan pernyataan berikut :

    SELECT MAHASISWA.NamaDepan, JURUSAN.NamaJurusan

    FROM MAHASISWA RIGHT JOIN JURUSANON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

    RIGHT JOIN akan memunculkan semua baris tabel kedua (Jurusan), bahkan jika

    tidak ada pasangannya di tabel pertama (Mahasiswa). Jika ada baris pada tabel

    Jurusan yang tidak ada pasangannya pada tabel Mahasiswa, maka ia pun akan

    dimunculkan.

    Untuk mengetahui siapa yang mengambil jurusan Manajemen Informatika, kita

    menggunakan pernyataan berikut :

    SELECT MAHASISWA.NamaDepanFROM MAHASISWA INNER JOIN JURUSAN

    ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

    WHERE JURUSAN.NamaJurusan = Manajemen Informatika

    2. UNION dan UNION ALL2.1 UNION

    Perintah UNION digunakan untuk memilih informasi yang berhubungan dari

    dua tabel, mirip dengan perintah JOIN. Namun, ketika menggunakan perintah

    UNION, tipe data semua kolom yang dipilih harus sama. UNION hanyamemunculkan nilai unik.

  • 7/30/2019 Modul Praktikum_basisdata 1

    43/65

    43

    Sintaks :

    Pernyataan 1

    UNION

    Pernyataan 2

    Misalkan, kita mempunyai tabel baru bernama Mahasiswa2 dimana field-fieldnya

    adalah sama dengan field di tabel Mahasiswa yaitu NRP, NamaDepan,

    NamaBelakang, TempatLah ir, TanggalLahir, dan Alamat. Maka untuk

    menampilkan semua Mahasiswa pada tabel Mahasiswa dan Mahasiswa2, gunakan

    pernyataan berikut :

    SELECT NamaDepan FROM MAHASISWA

    UNION

    SELECT NamaDepan FROM MAHASISWA2

    Perintah tidak dapat digunakan untuk menampilkan semua mahasiswa pada tabel

    Mahasiswa dan Mahasiswa2. Pada contoh, kita mempunyai dua mahasiswa dengannama sama (yaitu Hasan Martono) dan dua mahasiswa dengan nama depan sama

    (yaitu Kiki), maka hanya satu yang dimunculkan karena perintah UNION hanya

    memilih nilai unik.

    2.2 UNION ALLPerintah UNION ALL sama dengan perintah UNION, kecuali bahwa UNION

    ALL memilih semua nilai.

    Sintaks :

    Pernyataan 1UNION ALL

    Pernyataan 2

    Dengan menggunakan tabel Mahasiswa dan Mahasiswa2, kita dapat menggunakan

    pernyataan berikut untuk mena mpilkan semua mahasiswa dari dua tabel :

    SELECT NamaDepan FROM MAHASISWA

    UNION ALL

    SELECT NamaDepan FROM MAHASISWA2

    3. Pernyataan SELECT INTOPernyataan SELECT INTO digunakan untuk membuat backup suatu tabel.Sintaks :

    SELECT nama_kolom INTO nama_tabel_baru

    IN basisdata_baru FROM Sumber

    Contoh berikut adalah membuat backup Tabel Mahasiswa.

    SELECT * INTO Mahas iswa_Backup

    FROM Mahasiswa

    Klausa IN dapat digunakan untuk menyalin tabel ke basisdata lain.

    SELECT Mahasiswa.* INTO Mahasiswa IN Backup.mdbFROM Mahasiswa

  • 7/30/2019 Modul Praktikum_basisdata 1

    44/65

    44

    Jika hanya ingin menyalin beberapa field, kita dapat melakukannya dengan

    menuliskan field-field setelah pernyataan SELECT.

    SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup

    FROM Mahasiswa

    Kita dapat pula menambahkan klausa WHERE.

    Contoh berikut adalah membuat tabel Mahasiswa_Backup dengan dua kolom

    (NamaDepan, NamaBelakang) dengan memilih Mahasiswa yang tempat lahirnya

    di Yogyakarta dari tabel Mahas iswa.

    SELECT NamaDepan, NamaBelakang INTO Mahasiswa_Backup

    FROM Mahasiswa

    WHERE Tempat_Lah ir = Yogyakarta

    Kita pun dapat memilih data lebih dari satu tabel.

    Contoh berikut adalah membuat tabel baru Mahasiswa_Jurusan_Backup yang

    mengandung data dua tabel, Mahasiswa dan Jurusan.SELECT Mahasiswa.NamaDepan, Jurusan.NamaJurusan

    INTO Mahasiswa_Jurusan_Backup

    FROM Mahasiswa INNER JOIN Jurusan

    ON Mahasiswa.KodeJurusan = Jurusan.KodeJurusan

    4. Operator comparison ANY dan ALL4.1 Operator ANY

    Operator ANY digunakan berkaitan dengan subquery. Operator ini

    menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasilsubquery menghasilkan nilai TRUE. Ilustrasinya :

    Gaji > ANY (S)

    Jikasubquery S menghasilkan G1, G2, ..., Gn , maka kondisi di atas identik dengan:

    (gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)

    Misalkan perintah untuk menampilkan semua data SKS yang jumlahnya bukan

    yang terkecil :

    SELECT * FROM Matakuliah

    WHERE SKS > ANY (SELECT SKS FROM Matakuliah)

    4.2 Operator ALLOperator ALL digunakan untuk melakukan perbandingan dengan subquery.

    Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak

    menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap

    nilai query terhadap hasilsubquery.

    Misalkan perintah untuk menampilkan data SKS yang jumlahnya paling tinggi :

    SELECT * FROM Matakuliah

    WHERE SKS >= ALL (SELECT SKS FROM Matakuliah)

  • 7/30/2019 Modul Praktikum_basisdata 1

    45/65

    45

    5. UNION, INTERS ECT dan EXCEPT5.1 UNION

    UNION merupakan operator yang digunakan untuk menggabungkan hasil

    query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel

    yang akan ditampilkan datanya harus sama.

    Berikut ini perintah untuk memperoleh data pada tabel Mahasiswa dimana tempat

    lahirnya Yogyakarta dan Surabaya :

    SELECT NamaDepan, Tempat_Lahir

    FROM Mahasiswa

    WHERE Tempat_Lah ir = "Yogyakarta"

    UNION

    SELECT NamaDepan, Tempat_Lahir

    FROM Mahasiswa

    WHERE Tempat_Lahir = "Surabaya";Perintah di atas identik dengan :

    SELECT NamaDepan, Tempat_Lahir

    FROM Mahasiswa

    WHERE Tempat_Lah ir = Yogyakarta OR Te mpat_Lahir = Surabaya

    Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja

    pada dua tabel atau lebih.

    5.2 INTERS ECTINTERSECT merupakan operator yang digunakan untuk memperoleh data

    dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua

    query tersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing

    tabel yang akan ditampilkan datanya harus sama.

    Syntax :

    SELECT * FROM namatabel1

    INTERSECT

    SELECT * FROM namatabel2

    Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat

    menggunakan operator IN yang bisa diperdalam di bagian Nested Queries.

    5.3 EXCEPT / Set DifferenceEXCEPT merupakan operator yang digunakan untuk memperoleh data dari

    dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil

    query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah,

    nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya

    harus sama.

    Syntax :

    SELECT * FROM namatabel1EXCEPT

  • 7/30/2019 Modul Praktikum_basisdata 1

    46/65

    46

    SELECT * FROM namatabel2

    Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat

    menggunakan operator NOT IN yang bisa diperdalam di bagian Nested Queries.

    Tugas :

    Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-

    masing perintah DML berikut :

    5. Buatlah perintah SQL untuk mena mpilkan data yang berasal dari duatabel dan tiga tabel dengan menggunakan perintah JOIN.

    6. Buatlah perintah SQL yang menggunakan UNION, INTERSECT, danEXCEPT.

    7. Buatlah perintah SQL yang menggunakan operator comparison ANY danALL.

  • 7/30/2019 Modul Praktikum_basisdata 1

    47/65

    47

    MODUL 9NORMALISASI DATA

    1. Dasar Teori1.1. Normalisasi

    Normalisas i merupakan cara pendekatan dalam membangun desain

    logika basis data relasional yang tidak secara langsung berkaitan dengan

    model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar

    untuk meghasilkan struktur tabel yang normal. Pada dasarnya desain logika

    bas is data relasional dapat menggunakan prinsip normalisasi maupun

    transformasi dari model ER ke bentuk fisik.

    Pada pembahasan tentang normalisasi data, digunakan istilah baru

    yang disebut dengan functinal dependencies atau ketergantungan fungsional.

    Tujuan :

    Mampu membangun desain logika basis data relasional untuk

    menghasilkan struktur tabel yang normal.

    PrePraktikum

    1. Apakah yang anda ketahui tentang normalisasi?2. Mengapa suatu tabel perlu dinormalisasikan?3. Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.

    Apa yang disebut dengan bentuk normal?

    4. Sebutkan dan jelaskan macam-macam dari bentuk normal agar dapatdimanfaatkan untuk memperoleh tabel dan basis data yang lebih

  • 7/30/2019 Modul Praktikum_basisdata 1

    48/65

    48

    1.2. Ketergantungan Fungsional (Functional Dependencies)Functional Dependency menggambarkan hubungan attributes dalam

    sebuah relasi. Suatu atribut dikatakan functionally dependant pada yang lain

    jika kita menggunakan harga atribut tersebut untuk menentukan harga atribut

    yang lain. Simbol yang digunakan adalah untuk mewakili functional

    dependency ( dibaca secara fungsional menentukan).

    Notasi: A B

    A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A

    menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris

    data dengan nilai A yang sama, maka nilai B juga sama. Diberikan 2 baris

    r1 dan r2 da lam tabel T dimana AB

    Jika r1(A)=r2(A), maka r1(B) = r2(B)

    Dimisalkan relasi nilai_mhs memiliki empat buah atribut/field yaitu

    nama_kul, nim, nama_mhs dan nilai. Maka ketergantungan fungsional

    pada relasi tersebut adalah:

    a. nim nama_mhsyang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim.

    Hal in i dibuktikan dari fakta: untuk setiap nilai n im yang s ama, maka pasti

    nilai nama_mhs nya juga sama.

    b. nama_kul, nim nilaiyang berarti bahwa atribut nilai tergantung pada atribut nama_kull dan

    nim secara bersama-sama. Untuk ketergantungan fungsional seperti ini

    sesuai dengan pengertian bahwa setiap nilai diperuntukkan pada

    mahasiswa tertentu untuk matakuliah tertentu yang diambil. Dalam arti

    lain untuk nama_kul dan nim yang sama, maka nilai juga sama, karena

    nama_kul dan nim merupakan key (bersifat unik).

    Notasi: A non B atau A x B

  • 7/30/2019 Modul Praktikum_basisdata 1

    49/65

    49

    Adalah kebalikan dari notasi sebelumnya, dengan hanya melihat fakta

    yang ada, yaitu:

    a. nama_kul non nimyang artinya atribut nim tidak tergantung pada atribut nama_kul.

    b. nim non nilaiyang artinya atribut nilai tidak hanya tergantung pada atribut nim,

    karena tergantung pula pada atribut nama_kul yaitu nama kuliah yang

    diambil oleh n im.

    1.3. Bentuk-Bentuk NormalisasiBentuk-bentuk normal dapat dimanfaatkan untuk memperoleh tabel

    dan basis data yang lebih baik.

    1.3.1. Bentuk Normal Pertama (1NF)Suatu tabel dikatakan dalam bentuk normal pertama hanya kalau

    setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperbo leh

    adanya :

    Atribut yang bernilai banyak (Multivaluedattribut).

    Attribut kompos it atau kombinasi dari keduanya.

    Berikut ini akan d icontohkan normalisas i dari tabel kuliah yang memiliki

    atribut:

    Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_

    C1234 Matematika 1 2 1 1 RKB-3 Devie

    C1243 Riset Operasi 2 5 1 RKB-1 Rosa

    C1342 ADSI 2 3 2 RKB-3 Anamis

    Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat

    atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel

  • 7/30/2019 Modul Praktikum_basisdata 1

    50/65

    50

    tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel

    kuliah menjad i:

    1. Tabel KuliahKode_kul Nama_kul Sks Smstr Nama_dosen

    C1234 Matematika 1 2 1 Devie

    C1243 Riset Operasi 2 5 Rosa

    C1342 ADSI 2 3 Anamisa

    2. Tabel JadwalKode_kul Waktu Ruang

    C1234 1 RKB-3

    C1243 1 RKB-1

    C1342 2 RKB-3

    1.3.2. Bentuk Normal Kedua (2NF)Suatu tabel disebut dalam bentuk normal kedua, jika :

    1. Tabel berada dalam bentuk normal pertama2. Semua kolom yang bukan primary key tergantung sepenuhnya terhadap

    primary key

    3. Disebut tergantung sepenuhnya terhadap primary key jika suatu kolomselalu bernilai sama untuk nilai primary key yang sama.

    Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketrgantungan

    hanya bersifat parsial (hanya tergantung pada sebagian dari primary key).

    Bentuk normal kedua akan dicontohkan pada tabel nilai berikut ini:

    Kode_kul Nim Nilai

    C1234 7402030007 A

    C1243 7402030008 B+

  • 7/30/2019 Modul Praktikum_basisdata 1

    51/65

    51

    C1342 7402030009 B

    Jika pada tabel nilai, misalnya kita tambahkan sebuah atribut yang bersifat

    redudan yaitu nama_mhs, maka tabel nilai ini dianggap melanggar 2NF.

    Primary key pada tabel nilai adalah [kode_kul, nim]. Penambahan atribut baru

    (nama_mhs) akan menyebabkan adanya ketergantungan fungsional yang baru

    yaitu nimnama_mhs. Karena atribut nama_mhs ini hanya memiliki

    ketergantungan parsial pada primary key secara utuh (hanya tergantung pada

    nim, padahal nim hanya bagian dari primary key). Bentuk normal kedua ini

    dianggap belum memadai karena meninjau sifat ketergantungan atribut

    terhadap primary key saja.

    1.3.3. Bentuk Normal Ketiga (3NF)Suatu tabel dikatakan dalam bentuk normal ketiga, jika :

    1. Berada dalam bentuk normal kedua2. Setiap kolom bukan primary key t idak memiliki ketergantung transitif

    terhadap primary key

    Suatu kolom Z memiliki ketergantungan transitif terhadap kolom X, jika :

    1. Y memiliki ketergantungan fungsional terhadap X, dan2. Z memiliki ketergantungan fungsional terhadap Y

    Misalkan pada tabel Mahasiswa, atribut alamat_mhs dipecah ke dalam

    alamat_jalan, alamat_kota dan kode_pos. Bentuk ini tidak memenuhi 3NF

    karena terdapat ketergantungan fungsional baru yang muncul pada tabel

    tersebut yaitu:

    alamat_jalan nama_kota kode_pos

    Dalam hal ini (alamat_jalan, nama_kota) bukan superkey sementara kode_pos

    juga bukan bagian dari primary key pada tabel mahasiswa. Jika tabel

    mahasiswa didekomposisi menjadi tabel mahasiswa dan tabel alamat, maka

  • 7/30/2019 Modul Praktikum_basisdata 1

    52/65

    52

    telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa dua

    ketergantungan fungsional pada tabel alamat tersebut, yaitu:

    alamat_jalan nama_kota kode_pos

    kode_pos nama_kota

    1.4. Bentuk Normal Tahap Keempat dan KelimaPenerapan aturan normalisasi sampai bentuk normal ketiga sudah

    memadai untuk menghasilkan tabel berkualitas baik. Namun demikian,

    terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal

    Keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued

    dependency) pada suatu tabel merupakan pengembangan dari ketergantungan

    fungsional. Sedangkan bentuk normal tahap kelima merupakan nama lain dari

    Project Join Normal Form (PJNF).

    1.5. Boyce Codd Normal Form (BCNF)Bentuk normal ketiga 3NF dapat dikatakan BCNF karena sudah cukup

    memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Sebuah tabel

    dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:

    1. Jika ada dekompos isi (penguraian) tabel, maka dekompos isinya harusdijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel

    tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel

    baru tersebut bisa menghas ilkan tabel semula dengan sama persis.

    2. Terpeliharanya ketergantungan fungsional pada saat perubahan data(Dependency Preservation).

    3. Tidak melanggar Boyce-Code Normal Form (BCNF).Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel

    tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form /

    3NF).

  • 7/30/2019 Modul Praktikum_basisdata 1

    53/65

    53

    Relasi R dengan ketergantungan fungsional F termasuk dalam bentuk

    BCNF jika untuk semua X A yang ada dalam F. Dengan kata lain, R berada

    dalam BCNF jika ketergantungan fungsional non-trivial pada R memiliki key

    constraint.

    2. Kegiatan Praktikum1. Terdapat suatu bentuk tabel informasi seperti berikut in i :

    Tabel 9.1. Informasi Buku

    ISBN Judul Halaman Topik

    979-533-

    791-2

    Basisdata 60 Data Definition Language

    Data Manipulation

    Language

    Data Control Language

    978-532-

    792-3

    Matematika 90 Probabilitas

    Permutas i dan Kombinasi

    977-534-

    793-4

    PHP 90 Pemrograman

    Internet

    Bagaimana bentuk tabel-tabel yang menyimpan data pada

    informasi tersebut dengan menggunakan normalisasi untuk

    verifikasi tabel?

    2. Terdapat suatu bentuk tabel informasi seperti beikut ini:

    Tabel 9.2. In formasi mahasiswa

    no_mhs nama matakuliah nip dosen Nilai

    11879 Ali Basis data

    Fisika I

    32000011

    32000012

    Devie

    Rosa

    A

    A

    11897 Sit i Basis data

    Fisika I

    32000011

    32000012

    Devie

    Rosa

    A

    B

  • 7/30/2019 Modul Praktikum_basisdata 1

    54/65

    54

    Pascal 16785 Anamisa A

    11898 Ed i Fisika I 32000011 Devie A

    Bagaimana bentuk tabel-tabel yang menyimpan data pada informasi

    tersebut dengan menggunakan normalisas i untuk verifikasi tabel?

    1. Tugas tambahan (ditentukan oleh asisten praktikum)!

    3. Tugas AkhirDari kasus ke-I dan ke-II pada kegiatan prakt ikum maka bagaimana solusi

    pemecahan tabel yang didapatkan?

    Kasus I: T= ----------------------

    Permasalahan : -----------------------

    Solusi pemecahan tabel :

    I. Tabel -----------------------II. Tabel -----------------------III. Tabel -----------------------

    Kasus II: T= ----------------------

    Permasalahan : -----------------------

    Solusi pemecahan tabel :

    IV. Tabel -----------------------V. Tabel -----------------------VI. Tabel -----------------------

    Catatan Praktikum

  • 7/30/2019 Modul Praktikum_basisdata 1

    55/65

    55

    Modul 10

    VIEW 1

    1. Teori

    View

    View adalah query SELECT yang disimpan dalam database untuk menampilkan

    data dari satu atau beberapa table. View juga disebut sebagai table virtual yang

    digunakan untuk membungkus suatu query SELECT yang kompleks menjadi lebih

    sederhana. Data-data yang termasuk kategori rahasia dapat diamankan dengan

    menggunakan view.

    Kegunaan view antara lain:

    1. Fokus pada data atau tabel tertentu2. Penyederhanaan manipulasi data3. Menyesuaikan data dengan kebutuhan user4. Expo rt dan impor data5. Mengkombinasikan data terpartisi

    Tujuan :

    Membuat View untuk menampilkan data dari satu atau beberapa table dengan

    membungkus suatu query SELECT yang kompleks menjadi lebih sederhana.

    Tugas Pendahuluan

    1. Apa yang anda ketahui tentang view?2. Sebutkan langkah-langkah apa saja yang harus dilakukan apabila kita

    akan membuat suatu view ! (buatkan dengan contoh table)

    3. Apa saja kegunaan view dalam table, jelaskan dengan contohnya.!

    Syntax

    CREATE VIEW view_name AS

  • 7/30/2019 Modul Praktikum_basisdata 1

    56/65

    56

    Sebelum query SELECT yang akan disimpan ke dalam view. Pena maan view

    memiliki aturan yang sama dengan penamaan table. Nama view harus unik artinya

    nama v iew tidak diperkenankan sama dengan nama v iew yang sudah ada

    sebelumnya.

    Pesan di atas akan tampil jika terjad i pembuatan view dengan menggunakan nama

    yang sama dengan nama view yang lain.

    Nama kolom dari base table bisa diubah menjadi na ma lain saat disimpan ke dalam

    view dengan menggunakan COLUMN ALIAS

    2. Kegiatan Praktikum

    Buat tabel-tabel berikut ini :

    1. Tabel Art ikel dengan s truktur

    2. Tabel guestbook dengan struktur

  • 7/30/2019 Modul Praktikum_basisdata 1

    57/65

    57

    3. Tabel Materi dengan struktur

    4. Insert data pada masing-masing tabel5. Tampilkan data judulartikel, author dan tanggal dari tabel artikel

    6. Buat View dengan nama V_artikel1 untuk menampilkan data pada soal no 5

    7. Tampilkan semua data pada tabel v_artikel1

    i

  • 7/30/2019 Modul Praktikum_basisdata 1

    58/65

    58

    Jadi bisa anda lihat bahwa pada soal nomor 5 dan 7 mempunyai hasil yang sama,

    sehingga dapat di simpulkan bahwa view dapat menampilkan kembali data yang

    sama dengan lebih sederhana, dapat digunakan untuk mengerjakan query yang

    tidak mungkin diselesaikan dengan cara biasa, view dapat digunakan untuk

    menyimpan data rahasia karena tidak muncul pada database awal.

    8. Buatkan view artikel2 untuk menampilkan judulartikel, author dan tanggal, idyang mempunyai bidang pemograman dan analisa sistem

    9. Buatkan view guest1 untuk menampilkan semua data yang namanya diawalidengan ahmad, kemudian ganti namaauthor menjadi pengarang.

    10. Buatkan view gues t2 untuk menampilkan semua data yang namanya kemud ianganti namaauthor menjadi pengarang.

    11. Buatkan view materi untuk menampilkan semua data yang namanya kemudianganti namaauthor menjadi pengarang.

    3. Tugas :

    1. Dari praktikum diatas , berikan kesimpulannya.2. Buat table film dan jenis film dengan tampilan sebagai berikut jika

    hasilnya diselect :

    3. Isi tabel jenisfilm :

    4. Isi tabel film :

    5. Berikut ini perintah untuk menampilkan semua data pada tabel jenisfilmdan film :

  • 7/30/2019 Modul Praktikum_basisdata 1

    59/65

    59

    6. Buat perintah view untuk :a. Mengurutkan data film berdasarkan kolom judul, gunakan order by

    dan simpan dengan v_film1

    b. Menampilkan data pada tabel jenisfilm yang mana data pada kolomjenis-nya tidak tercantum pada tabel film, gunakan NOT IN / not

    exist dan simpan dengan nama v_film2

    c. Menampilkan data pada tabel jenisfilm yang mana data pada kolomjenis-nya tercantum pada tabel film menggunakan IN / exist dan

    simpan dengan nama v_film3

    d. Manampilkan kolom jenis dan digabungkan dengan SUM(jml_film)yang dikelompokkan berdasarkan kolom jenis pada tabel film dan

    simpan dengan nama v_film4

    e. Menampilkan kolom judul dari tabel film dan kolom harga dari tabeljenisfilm(gunakan Operasi Jo in) dan simpan dengan nama v_film5

  • 7/30/2019 Modul Praktikum_basisdata 1

    60/65

    60

    MODUL 11View 2

    I. Teori

    1.1 View

    View dalam sql juga merupakan suatu table yang diturunkan dari table

    yang lain. Table ini bias berupa table dasar dari yang didefinisikan

    sebelumnya.suatu view yang tidak perlu dalam bentuk fisiknya, bias berupa table

    bayangan (virtual table), sehingga table dasar yang mempunyai tupel-tupel pada

    dasarnya tersimpan dalam database. Pembatasan ini memungkinkan untuk

    mengupdate operasi yang bias digunakan dalam view, tetapi tidak membatasi

    dalam view queri.

    Tujuan :

    Membuat View untuk menampilkan data dari satu atau beberapa

    table dengan membungkus suatu query SELECT yang kompleks

    menjadi lebih sederhana.

    Tugas Pendahuluan

    1. Apa saja keuntungan dan kerugian menggunakan view2. Mengapa View lebih optimal pemakaiannya dibanding

    perintah select, jelaskan

    3. kenapa view bisa dijadikan sebagai kode rahasia untukmena mpikan suatu tabel, je laskan.

  • 7/30/2019 Modul Praktikum_basisdata 1

    61/65

    61

    1.2. Menghapus View

    Queri yang sama juga bias didapatkan dengan menentukan dua hubungan

    yang telah ada dalam relasi dasarnya, keuntungan utama view tersebut adalah

    untuk menyederhanakan ketentuan tentang queri yang diperlukan, dan juga bias

    digunakan untuk perangkat keamanan data.

    Suatu view dari queri selalu menampilkan data yang terbaru, sebagai contoh bila

    kita memodifikasi sebagaian tupel dalam table dasarnya dimana view tersebut

    didefinisikan, maka secara otomatis akan berpengaruh pada view di queri

    Jika tidak membutuhkan penampakan queri lagi, kita bisa menggunakan perintah

    DROP VIEW untuk menghapusnya.

    syntax :

    DROP VIEW (nama view)

    1.3. Mengupdate view dan Implementasi view

    Mengupdate view merupakan suatu hal yang kompleks. Secara umum

    suatu update dari suatu view didefinisikan pada suatu table tunggal tanpa fungsi-

    fungsi pendukung (aggregate) yang bias dimapping kedalam suatu table dasar

    pembentuknya dengan berbagai cara. Topic tentang update view ini masih terus

    diuji coba. Untuk menggambarkan masalah yang potensial dengan mengupdate

    view yang telah didefinisikan dalam beberapa table, misal table Work_ON1 dan

    mendukung perintah untuk mengupdate attribute pname dari john smith dan dari

    productX ke productY. View ini ditunjukkan sebagai berikut :

    Update work_on1

    Set pname =productY

    Where Lname = smithand Fname= john and

    Pname = productX

  • 7/30/2019 Modul Praktikum_basisdata 1

    62/65

    62

    Secara umum kita tidak dapat men jamin bahwa setiap tampilan bisa diupdate.

    Suatu tampilan yang diupdate hanya memungkinkan untuk satu kali update pada

    relasi dasarnya yang dapat menghubungkan update tersebut pada tampilannya.

    Sebagai kesimpulan dapat ditentukan :

    Suatu tampilan dengan definisi tunggal itu dapat diupdate bila attributetampilan berisi primary key atau beberapa candidate key dari relasi dasar,

    sebab inilah yang menghubungkan antara view tupel dengan tupel dasar

    tunggal.

    Tampilanm yang didefinisikan dengan menggunakan beberapa table yangberhubungan umumnya tidak dapat diupdate

    Tampilan yang menggunakan group dan fungsi aggregate tidak dapatdiupdate

    2. Kegiatn praktikum

    1. Buat table golongan, jabatan dan pegawai dengan data sebagai berikut :Tabel golongan :

    Table jabatan

    Tablepegawai

  • 7/30/2019 Modul Praktikum_basisdata 1

    63/65

    63

    2. Buat view dengan nama latihanview1 untuk menampilkan seluruh datapegawai yang jabatannya sebagai staff

    3. Buat view dengan nama latihanview2 untuk menampilkan seluruh datapegawai yang dua digit pertama nipnya di awali dengan angka 03

    4. Buat view dengan nama latihanview3 untuk menampilkan data nip, namadan golongan pegawai serta tunjangan golongan yang didapat (gunakan

    select multiple tab le)

    5. Buat view dengan nama latihanview4 untuk menampilkan seluruh datapegawai beserta gaji total yang diperolehnya. Gaji total merupakan has il

    perhitungan dari gaji pokok d i ta mbahkan dengan tunjangan golongan

    serta tunjangan keluarga

    6. Hapuslah latihanview17. Buat view dengan nama latihanview5 untuk menampilkan data pegawai

    yang gaji pokoknya paling tinggi.

    3. TUGAS

    1. Apakah yang dimaksud dengan update view?, buatkan contoh mengenaiupdate view dari suatu table view.

    2. Mengapa dalam update view fungsi aggregate tidak dapat digunakan,jelaskan alas an anda

    3. Buat view dengan nama latihanview6 untuk menampilkan seluruh datapegawai yang mana nama pegawai ba mbang purnomo ganti dengan joko

    purnomo dan golongan ganti dengan manager

  • 7/30/2019 Modul Praktikum_basisdata 1

    64/65

    64

    4. Buat view dengan nama latihanview7 untuk menampilkan seluruh datapegawai yang berada dikota Surabaya atau yang mempunyai golongan B

    (gunakan operasi union)

    5. Hapuslah latihanview 46. Update view jabatan yang mana tunjangan jabatan manajer dari 500000

    menjadi 1000000

    7. Buat view dengan nama latihanview8 untuk menampilkan seluruh datapegawai yang jabatannya sebagai supervisor

  • 7/30/2019 Modul Praktikum_basisdata 1

    65/65

    MODUL XII

    Evaluasi Praktikum II

    Tugas :1. Lanjutkan tugas pada evaluasi prakt ikum II pada modul VII untuk membuatsebuah desain implementasinya. (CDM dan PDM)

    2. Koneksikan pada program aplikasi yang anda buat (Program bebas)3. Demo project kepada dosen yang bersangkutan

    Atau

    Tugas project ditentukan oleh dosen pengampu

    Tujuan :

    vPraktikan dapat mengimplementasikan semua modul praktikum inipada aplikasi