modul 1 fix

23
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 MYSQL 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 yaitu : Tipe data numerik Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan floating point. Integer 1 Tujuan : 1. Memahami tentang sistem database 2. Memahami instalasi MySQL di lingkungan Windows 3. Memahami dasar-dasar MySQL.

Transcript of modul 1 fix

Page 1: modul 1 fix

MODUL IMYSQL

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 MYSQL

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 MYSQLTipe 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 yaitu : Tipe data numerik Tipe data numerik dibedakan dalam dua macam kelompok, yaitu integer dan

floating 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 berikut:

Tabel 8.1.2.b Tipe Data StringTipe Data Kisaran NilaiCHAR 1-255 karakterVARCHAR 1-255 karakterTINYTEXT 1-255 karakterTEXT 1-65535 karakterMEDIUMTEXT 1-16777215 karakter

1

Tujuan :1. Memahami tentang sistem database 2. Memahami instalasi MySQL di lingkungan Windows 3. Memahami dasar-dasar MySQL.

Tujuan :1. Memahami tentang sistem database 2. Memahami instalasi MySQL di lingkungan Windows 3. Memahami dasar-dasar MySQL.

Page 2: modul 1 fix

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 MemoriNilai Char(4) Memori

PenyimpananVarchar (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-31 23:59:59

3 byte

DATE 1000-01-01 sampai 9999-12-31 8 byteTIMESTAMP 1970-01-01 00:00:00 sampai 2037 4 byteTIME -839:59:59 sampai 838:59:59 3 byteYEAR 1901 sampai 2155 1 byte

Operator MYSQLMYSQL mendukung penggunaan operator-operator dan fungsi-fungsi

diantaranya: Operator Aritmetika

2

Page 3: modul 1 fix

Suatu 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/ BagiMod () Modulus

Operator PembandinganSuatu ekspresi yang dapat digunakan pada klausa WHERE dan mempunyai sintax sebagai berikut: WHERE expr operator value. Tabel 8.1.3.b menunjukan operator pembanding pada MYSQL berikut ini:Tabel 8.1.3.b Operator Pembanding MYSQL

Operator Keterangan= Sama Dengan> Lebih Besar< Lebih Kecil>= Lebih Besar atau Sama Dengan<= Lebih Kecil atau Sama Dengan<> Tidak Sama Dengan

Operator LogikaOperator ini digunakan untuk membandingkan dua nilai variabel yang bertipe boolean.

Operator KarakterOperator untuk membentuk pencarian string yang sesuai dengan nilai yang mencantumkan pada kondisi. Kondisi pencarian dapat berisi karakter , ada 3 symbol khusus berikut ini dapat dilihat pada tabel 8.1.3.d berikut ini:Tabel 8.1.3.d Tabel Operator Karakter

Operator Keterangan% Sembarang karakter berapapun jumlahnya_ 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

3

Page 4: modul 1 fix

Operator KeteranganIN DalamBETWEEN 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 dialog tipe instalasi sebagai berikut :

4

Page 5: modul 1 fix

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

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

5

Page 6: modul 1 fix

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

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

6

Page 7: modul 1 fix

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 sebagai berikut :

7

Page 8: modul 1 fix

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

8

Page 9: modul 1 fix

10. Pilih tombol Next. Kemudian muncul gambar berikut ini. Masukkan password yang diinginkan pada kota isian New root password dan Confirm berikut ini untuk sekuritas, misalnya 123456. Klik tombol Next.

11. Klik tombol Execute sebagai tahap akhir.

12. Klik Finish.

9

Page 10: modul 1 fix

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 diketik hanya yang digaris bawah) :C:\>mysql\bin\mysql –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 > MySQL > MySQL Server 5.0 > MySQL

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

10

Page 11: modul 1 fix

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

Menuliskan perintah pada mysql

Bentuk prompt “mysql>” adalah tempat menuliskan perintah-perintah MySQL. Setiap perintah SQL harus diakhiri dengan tanda titik-koma “;” .

Cara untuk membuat sebuah 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 berisinilai NULL. Kolom yang befungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL.

• UNIQUEMendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data dengan data lainnya namanya tidak boleh sama, misal alamat email.

11

Page 12: modul 1 fix

• PRIMARY KEYConstraint PRIMARY KEY membentuk key yang unik untuk suatu table.

• FOREIGN KEYFOREIGN 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 :

12

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

);

Page 13: modul 1 fix

Perintah-Perintah Dasar SQLA. Pemasukan dataUntuk memasukkan sebuah baris (record) kedalam tabel MySQL adalah sebagai berikut:

Contoh :Insert into anggota (nomor,nama,email,alamat,kota) values (100,’Adi’,’[email protected]’,’Jl. Keputih 2A no 5’,’Surabaya’);

atauInsert into anggota values (100,’Adi’,’[email protected]’,’Jl. Keputih 2A no 5’, ’Surabaya’);

13

INSERT INTO table [(column1, column2,...])]VALUES (value1, value2,...]);

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)

Page 14: modul 1 fix

MODUL IINORMALISASI DATA

1. Dasar Teori Normalisasi

Normalisasi 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 basis 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.

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 à BA 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 dalam tabel T dimana AàB

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_mhs

14

Tujuan : Mampu membangun desain logika basis data relasional untuk menghasilkan struktur tabel yang normal.

Tujuan : Mampu membangun desain logika basis data relasional untuk menghasilkan struktur tabel yang normal.

Page 15: modul 1 fix

yang artinya bahwa atribut nama_mhs hanya tergantung pada atribut nim. Hal ini dibuktikan dari fakta: untuk setiap nilai nim yang sama, 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à BAdalah kebalikan dari notasi sebelumnya, dengan hanya melihat fakta yang ada, yaitu:a. nama_kul non à nim

yang artinya atribut nim tidak tergantung pada atribut nama_kul.b. nim nonà nilai

yang artinya atribut nilai tidak hanya tergantung pada atribut nim, karena tergantung pula pada atribut nama_kul yaitu nama kuliah yang diambil oleh nim.

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

dan basis data yang lebih baik.

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

setiap kolom bernilai tunggal untuk setiap baris. Sehingga tidak diperboleh adanya :

Atribut yang bernilai banyak (Multivalued attribut).Attribut komposit atau kombinasi dari keduanya.

Berikut ini akan dicontohkan normalisasi dari tabel kuliah yang memiliki atribut:

Kode_kul Nama_kul Sks Smstr Waktu Ruang Nama_dosenC1234 Matematika 1 2 1 1 RKB-3 DevieC1243 Riset Operasi 2 5 1 RKB-1 RosaC1342 ADSI 2 3 2 RKB-3 Anamisa

Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat atribut waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel

15

Page 16: modul 1 fix

tersebut dapat memenuhi 1NF, maka solusinya adalah mendekomposisi tabel kuliah menjadi:1. Tabel Kuliah

Kode_kul Nama_kul Sks Smstr Nama_dosenC1234 Matematika 1 2 1 DevieC1243 Riset Operasi 2 5 RosaC1342 ADSI 2 3 Anamisa

2. Tabel JadwalKode_kul Waktu RuangC1234 1 RKB-3C1243 1 RKB-1C1342 2 RKB-3

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

1. Tabel berada dalam bentuk normal pertama

2. Semua kolom yang bukan primary key tergantung sepenuhnya terhadap primary key

3. Disebut tergantung sepenuhnya terhadap primary key jika suatu kolom selalu 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 NilaiC1234 7402030007 AC1243 7402030008 B+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 nimànama_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.

Bentuk Normal Ketiga (3NF)16

Page 17: modul 1 fix

Suatu tabel dikatakan dalam bentuk normal ketiga, jika :1. Berada dalam bentuk normal kedua2. Setiap kolom bukan primary key tidak memiliki ketergantung transitif

terhadap primary keySuatu 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_posDalam 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 telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa dua ketergantungan fungsional pada tabel alamat tersebut, yaitu:

alamat_jalan nama_kota à kode_poskode_pos à nama_kota

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).

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 dekomposisi (penguraian) tabel, maka dekomposisinya harus

dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.

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

3. Tidak melanggar Boyce-Code Normal Form (BCNF).

17

Page 18: modul 1 fix

Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).

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.

18