M.ASWADI
DATABASE DASAR WITH
XAMPP
Diterbitkan secara mandiri melalui Nulisbuku.com
DATABASE DASAR WITH XAMPP Oleh:M.ASWADI Copyright © 2015 by M.ASWADI Penerbit M.ASWADI Aswadi.webdev@gmail.com Genta.blog@gmail.com Desain Sampul: M.ASWADI Diterbitkan melalui: www.nulisbuku.com
Saya suka dengan kata-kata ini nih…
Kerjakanlah hal dengan sungguh-sungguh, dalam 1 tahun anda akan mulai terbiasa. Dalam 2 tahun anda akan menjadi Ahli. Dalam 3 tahun anda akan menjadi Pakar. Dalam 5 tahun anda akan menjadi Master.
Apapun profesi anda, bila anda seorang master, anda akan dibayar mahal. Jangan mengeluh apalagi berhenti ketika perjuangan anda masih seumur jagung.
Untukmu kekasihku dimanapun kamu berada…..
KATA PENGANTAR Assalamu’alaikum wr,wb…
10:49 Malam, 25 November 2015, awalnya ehhh akhirnya buku sederhana ini selesai juga, sebenernya belum selesai sih, tapi berhubung masih ada project lain jadi yahh selesai sampe sini aja deh.. Saya ucapkan rasa syukur yang sebesar-besarnya kepada Allah SWT karena berkat izin-Nya lah saya dapat menulis buku ini, semoga buku ini bermanfaat bagi kita semua (inget buku loh ya), kalo ada request materi, pengen ketemuan, ngobrol tau apalah…
kirim aja ke email
aswadi.webdev@gmail.com atau
genta.blog@gmail.com gw tungguin nih… makasih sebelum dan sesudahnya *_*
Penulis,
DAFTAR ISI FIRST KATA PENGANTAR DAFTAR ISI PENDAHULUAN DATABASE
KARAKTERISTIK UTAMA BASIS DATA APA ITU SYSTEM BASISDATA
TUJUAN BASISDATA PEMANFAATAN KOMPONEN BASISDATA
DBMS
PANDANGAN TERHADAP BASIS DATA MODEL DATA
MACAM-MACAM MODEL DATA ENTITY-RELATIONSHIP MODEL HIRARKI MODEL JARINGAN MODEL RELASIONAL ERD ENTITAS ATRIBUTE RELASI BAHASA BASISDATA
DATA MANIPULATION LANGUAGE ANOMALY DAN REDUDANSI
ANOMALI (ANOMALY)
REDUNDANSI (REDUNDANCY) NORMALISASI
NORMALISASI BASIS DATA BENTUK-BENTUK NORMAL KEAMANAN
KEAMANAN PADA PERANCANGAN
BASISDATA TINGKAT AKSES PRAKTIKUM TIPE DATA INSTALASI XAMPP MEMBUAT DATABASE
MODIFIKASI STRUKTUR TABLE FUNGSI AGREGAT
OPERATOR FUNGSI
MENYATUKAN HASIL TABEL PENUTUP
PENDAHULUAN
BASISDATA? DATABASE? SYSTEM DATABASE?
Tak perduli kan katamu… Tak perduli kan omonganmu… Ku hidup hanya sekali… Ku lakalukan sesuka hati…
Hidup jangan dibikin susah
Bawa santai seperti kau di pantai
……… ………..
Maaf terbawa suasana musik jadi ada sedikit lirik lagu ini atas -_-
Ok sedikit menyinggung masalah database, pertanyaan pertama adalah apa itu database?... (mau saya yang jawab atau jawab sendiri?)
• Basis : Markas/Gudang, tempat bersarang/berkumpul.
• Data : Representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli,pelanggan), barang, peristiwa, dan sebagainya yang direkam dalan bentuk angka, huruf simbol, teks, gambar, bunyi atau kombinasinya.
BASISDATA adalah himpunan kelompok data(arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. Dapat disebut juga kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan.
Jadi database atau basisdata adalah sebuah Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan tertentu yang diorganisasi sedemikian rupa agar kelak dapat
dimanfaatkan kembali dengan cepat dan mudah.
Penjelasan tersebut saya dapatkan dari penjabaran data yang berarti berkas/file/arsip/etc… dan basis yang berarti tempat/markas/lemari/etc…. (gw juga tau *-* :v )
Basis Data (Database) = Lemari arsip - Memberi sampul / map
- Menentukan kelompok / jenis arsip
- Memberi Nomor
- Menempatkan arsip-arsip dengan cara/urutan tertentu
Karakteristik utama basis data :
Merepresentasikan aspek dari dunia nyata,
Dapat merepresentasikan kondisi saat ini (current state)
Ada penggunanya dan ada aplikasi, Disimpan dalam memori komputer
secara permanen, dan
Dapat diakses dan dimanipulasi menggunakan DBMS
Apa itu System BASISDATA?
Sistem basis data dapat diartikan “sebagai kumpulan file / table yang saling berhubungan (dalam sebuah
basis data di sebuah sistem komputer) dan
sekumpulan program (DBMS / Database
Management System) yang memungkinkan beberapa
user (pemakai), dan / atau program lain untuk mengakses dan memanipulasi file (table) tersebut.
TUJUAN BASISDATA
Mengapa dapat diakses dengan mudah dan cepat? Apa sebenarnya tujuan database?
Apa tujuan dari database ?, ada beberapa tujuan pemanfaatannya sih :
1. Kecepatan dan kemudahan
Yakni agar pengguna basis data bisa: - menyimpan data
- melakukan perubahan/manipulasi terhadap data
- menampilkan kembali data
dengan lebih cepat dan mudah dibandingkan dengan cara biasa (baik manual ataupun elektronis).
2. Efisiensi Space / ruang penyimpanan
Dengan basis data kita mampu melakukan penekanan jumlah redundansi (pengulangan) data, baik dengan menerapkan sejumlah pengkodean atau dengan membuat
relasi-relasi antara kelompok data yang saling berhubungan.
3. Keakuratan
Agar data sesuai dengan aturan dan batasan tertentu dengan cara memanfaatkan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint) tipe data, domain data, keunikan data dsb.
4. Keamanan
Agar data yang bersifat rahasia atau proses yang vital tidak jatuh ke orang / pengguna yang tidak berhak, yakni dengan penggunaan account (username dan password) serta menerapkan pembedaan hak akses setiap pengguna terhadap data yang bisa dibaca atau proses yang bisa dilakukan. Dan masih banyak lagi keuntungan-keuntungan lainnya…
KOMPONEN BASISDATA
Apa komponen utama system basisdata?
1. Perangkat keras (hardware) 2. Sistem operasi (operating system) 3. Basis data (database)
4. Sistem (aplikasi/perangkat lunak) pengelola basis data (DBMS)
5. Pemakai (user)
6. Aplikasi (perangkat lunak) lain (bersifat
optional).
Perangkat lunak yang termasuk DBMS adalah MS-Access, Foxpro, Dbase-IV, Foxbase, Clipper, My SQl, dan lainnya untuk kelas yang cukup sederhana.
Apa itu DMBS?
DBMS (Database Management System)
Sistem Manajemen Basisdata atau DBMS (Database Management System) adalah perangkat lunak untuk mendefinisikan, menciptakan, mengelola dan mengendalikan pengaksesan basisdata.
Apa kelebihan dari DBMS?
Performance yang dapat disimpan dengan penyimpanan dalam bentuk DBMS cukup besar, sangat jauh berbeda dengan performance data yang disimpan dalam bentuk flat file. Disamping itu juga akan efisiensi penggunaan media penyimpanan dan memori
Integritas data lebih terjamin dengan penggunaan DBMS. Masalah redudansi sering terjadi dalam DBMS. Redudansi adalah kejadian berulangnya data atau kumpulan data yang sama dalam sebuah database yang mengakibatkan pemborosan media penyimpanan.
Independensi. Perubahan struktur database dimungkinkan terjadi tanpa harus mengubah aplikasi yang mengaksesnya sehingga
pembuatan antarmuka ke dalam data akan lebih mudah dengan penggunaan DBMS.
Sentralisasi. Data yang terpusat akan mempermudah pengelolaan database. kemudahan di dalam melakukan bagi pakai dengan DBMS dan juga kekonsistenan data yang diakses secara bersama-sama akan lebiih terjamin dari pada data disimpan dalam bentuk file atau worksheet yang tersebar.
Sekuritas. DBMS memiliki sistem keamanan yang lebih fleksibel daripada pengamanan pada file sistem operasi. Keamanan dalam DBMS akan memberikan keluwesan dalam pemberian hak akses kepada pengguna
Beberapa alasan perlu dihindari (diminimalkan) terjadinya kerangkapan data:
1. Pemborosan media penyimpanan data
3. Kesulitan/inefisiensi dalam pengolahan data
4. Pemborosan waktu dalam pengolahan data
5. Semakin besar kemungkinan muncul data tidak konsisten
Pandangan terhadap Basis Data
Basis Data dapat dipandang dari dua sudut pandang: Sudut pandang pemakai (user view)
Sudut pandang perancang
- secara konseptual (conceptual view)
A. User View
Sering disebut juga sebagai level eksternal, merupakan pandangan para pemakai basis data dimana masing-masing pemakai basis data dapat memiliki cara pandang yang berbeda tergantung pada macam data apa saja yang tersedia atau dapat diakses oleh pemakai.
B. Conceptual View
Merupakan suatu pandangan perancang basis data yang berkaitan dengan data-data apa saja yang perlu disimpan dalam basis data dan penjelasan mengenai hubungan antara data yang satu dan yang lainnya.
C. Physical View
sering disebut level internal, yaitu suatu pandangan perancang yang berkaitan dengan permasalah teknik penyimpanan data-data dalam basis data-data ke dalam fisik media penyimpanan data yang digunakan.
MODEL DATA
Model Data
Model data merupakan suatu cara untuk menjelaskan tentang data-data yang tersimpan dalam basis data dan bagaimana hubungan antar data tersebut untuk pemakai secara logik.
Macam-macam model data:
1. Model Entity-Relationship
2. Model Hirarki
3. Model Jaringan
4. Model Relational
Apa itu Model Entity-Relationship?
Model Entity-Relationship Dibuat berdasarkan anggapan bahwa dunia nyata terdiri dari koleksi objek-objek dasar yang dinamakan entitas (entity) serta hubungan (relationship) antara entitas-entitas tersebut.
Komponen ER/ERD (Entity Relationship Diagram)
1. Entitas
2. Atribut, dan
3. Relasi
Secara garis besar, entitas merupakan objek dasar yang terlibat dalam sistem, atribut berperan sebagai penjelas entitas, dan relasi menunjukkan hubungan yang terjadi di antara dua entitas.
Model Hirarki?
Model hirarki menjelaskan kepada pemakai tentang hubungan logik antar data dalam basis data dalam bentuk hubungan bertingkat. Model ini menggunakan pola hubungan orangtua anak.
Model Jaringan?
Model ini menyerupai model hirarki, dengan suatu simpul anak bisa memiliki lebih dari satu orang tua.
Lalu bagaimana dengan Model Relasional?
Merupakan model yang menggunakan sejumlah tabel untuk menggambarkan data serta hubungan antara data-data tersebut. Setiap tabel memiliki sejumlah kolom dimana setiap kolom memiliki nama yang unik.
Contoh :
Penerbit Pengarang Koleksi
Kd_PN char(5) Nama_Penerbit Varchar(20) Alamat Varchar(30) Telp Varchar(12) Kd_Pengarang char(5) Nama_pengarang Varchar(20) Alamat Varchar(30) Jumlah_copy Int(4) Kode_koleksi varchar(10) Judul Varchar(30) Tahun_terbit Varchar(8) Kode_PN char(5) Kode_Pengarang char(5)
ERD
Entity Relationship Model
ER_M merupakan suatu model data yang dikembangkan berdasarakan objek. ER_M digunakan untuk menjelaskan hubungan antar data dalam basis data kepada pemakai secara logik. ER_M digambarkan dalam bentuk diagram yang disebut diagram ER (Entity Relationship Diagram/ER_D).
Komponen ER/ERD (Entity Relationship Diagram)
1. Entitas
2. Atribut
3. Relasi
Entitas (Entity)
Entitas menunjukkan objek-objek dasar yang terkait didalam sistem. Objek dapat berupa orang, benda atau hal yang keterangannya perlu disimpan didalam basis data.
Simbol:
Aturan Menulis Entitas:
1. Entitas dinyatakan dengan simbol persegi panjang
2. Nama entitas dituliskan didalam simbol persegi panjang
3. Nama entitas berupa: kata benda, tunggal
4. Nama entitas sedapat mungkin menggunakan nama yang mudah dipahami dan dapatv menyatakan maknanya dengan jelas
Atribut (Atribute)
Atribut sering disebut sebagai Properti (property), merupakan keterangan-keterangan yang terkait pada sebuah entitas yang perlu disimpan sebagai basis data. Atribut berfungsi sebagai penjelas sebuah entitas.
Simbol:
Aturan menggambarkan atribut
1. Atribut dinyatakan dengan simbol ellips.
2. Nama atribut dituliskan didalam simbol ellips.
3. Nama atribut berupa kata benda, tunggal.
4. Nama atribut sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas.
5. Atribut dihubungkan dengan entitas yang bersesuaian dengan menggunakan sebuah garis.
Kerelasian antar entitas (Relationship)
Kerelasian antar entitas mendefinisikan hubungan antar dua buah entitas. Kerelasian adalah kejadian atau transaksi yang terjadi antara dua entitas yang keterangannya perlu disimpan dalam basis data.
Simbol :
Aturan dalam menggambarkan kerelasian:
1. Kerelasian dinyatakan dengan simbol belah ketupat.
2. Nama kerelasian dituliskan di dalam simbol belah ketupat.
3. Kerelasian menghubungkan dua entitas.
4. Nama kerelasian berupa: kata kerja aktif (diawali dengan awalan me), tunggal.
5. Nama kerelasian sedapat mungkin menggunakan nama yang mudah dipahami dan dapat menyatakan maknanya dengan jelas .
1. Kerelasian jenis 1 ke 1/satu ke satu (one to one)
kerelasian jenis ini terjadi jika kejadian atau transaksi diantara dua entitas yang berhubungan hanya memungkinkan terjadi sebuah kejadian transaksi pada sebuah entitas.
2. Kerelasian n ke 1/banyak ke satu (many to one)
atau kerelasian jenis 1 ke n /satu ke banyak (one to many) kerelasian jenis ini terjadi jika kejadian atau transaksi diantara dua entitas yang berhubungan hanya memungkinkan terjadi satu kali dalam entitas pertama dan dapat terjadi lebih dari satu kali kejadian atau transaksi pada entitas kedua, atau sebaliknya.
3. Kerelasian jenis n ke n/banyak ke banyak (many to many)
Kerelasian jenis ini terjadi jika kejadian atau transaksi diantara dua entitas yang
berhubungan memungkinkan terjadi lebih dari satu kali dalam entitas pertama dan entitas kedua.
Simbol kerelasian antar entitas
Jenis 1-ke-1
simbol:
1-ke-n
Transformasi Model Data ke Basis Data Fisik Transformasi Umum/Dasar
nim Nama_mhs Alamat_mhs Tgl_lahir
Implementasi lainnya
Implementasi Himpunan Entitas Lemah dan Sub Entitas
Implementasi Relasi Tunggal (Unary Relation)
Implementasi Relasi Multi Entitas (N-ary Relation)
Alamat_mhs
Tgl_lahir
Mahasiswa
Implementasi Relasi Ganda (Redundant Relation)
BAHASA BASISDATA
Bahasa Basis Data
Data Definition Language (DDL)
bahasa yang digunakan untuk mendefinisikan basis data.
Contoh:
Menciptakan basis data dengan nama akademik
Create database akademik;
Menciptakan tabel dengan nama mahasiswa, matakuliah
- Create table mahasiswa (NIM char(8), Nama char(30), Kelas char(4));
- Create table matakuliah (kd_matakuliah char(5), nm_matakuliah char(25), sks int); Data Manipulation Language
bahasa yang digunakan untuk memanipulasi basis data. Manipulasi data pada basis data pada umumnya meliputi hal-hal dibawah ini :
a. Pemanggilan informasi yang tersimpan pada basis data (query).
b. Penambahan informasi baru pada basis data.
c. Penghapusan informasi yang tidak diperlukan lagi pada basis data.
d. Modifikasi informasi yang ada pada basis data.
Data manipulation language adalah bahasa yang memungkinkan pengguna untuk mengakses atau memanipulasi data dalam sistem basis data relasional.
Menambahkan data/informasi,
Perintah:
Insert into nm_tabel (field1, field2, ... , field..n) values (nilai1,nilai2, ... , nilai..n)
Contoh:
Insert into mahasiswa (nim, nama, kelas) values(‘07146001’,’RIKA’,’MD2A’)
Menghapus data/informasi,
Perintah:
Delete from nm_tabel where nm_field=value
(kriteria penghapusan)
Contoh:
Delete from karyawan where NIP =‘07001’
Permintaan informasi (query)
Contoh:
Query untuk menampilkan data-data mahasiswa yang memiliki IP lebih besar atau sama dengan 2.75 adalah sebagai berikut:
Select * from mahasiswa Where IP >= 2.75
Modifikasi data/informasi
Contoh:
Modifikasi alamat karyawan yang memiliki NIP „07002‟
Update karyawan set alamat =‘Plaju’ where NIP=‘07002’
ANOMALY DAN REDUDANSI
Anomali dan Redudansi Anomali (Anomaly)
Anomali/Penyimpangan adalah suatu masalah yang timbul pada suatu tabel, dimana masalah itu akan terjadi pada saat tabel akan dimanipulasi.
Masalah yang timbul :
Ketidakkonsistenan data.
Data menjadi hilang ketika data lain dihapus.
Macam Anomali
1. Anomali Penambahan (Insert Anomaly)
Anomali Penambahan terjadi pada saat penambahan data hendak dilakukan ternyata ada elemen data yang masih kosong dan elemen data tersebut diperlukan untuk proses penambahan
Contoh relasi yang menimbulkan anomali penambahan. Table MataKuliah
KodeMK NamaMK Ruang Tempat
MK01 Pancasila A 201 Lantai 2
MK02 Jaringan A 302 Lantai 3
MK03 Basis Data A 204 Lantai 2
MK04 Statistika A 401 Lantai 4
MK05 Kalkulus A 402 Lantai 4
Relasi diatas menyatakan bahwa :
- Untuk suatu KULIAH menggunakan RUANG tertentu (misal Pancasila menggunakan Ruang A 201)
- Untuk suatu RUANG berada pada TEMPAT tertentu (misal Ruang A 201 berada pada lantai 2)
Lalu apa masalahnya?
Bagaimana cara menyimpan data bila terdapat fakta ada ruang baru dengan nama A 501 yang terdapat pada lantai 5 ? Penyisipan tidak dapat dilakukan mengingat tidak ada / belum ada perkuliahan yang menggunakan ruang tersebut
2. Anomali Pengubahan (Update Anomaly)
Anomali pengubahan terjadi apabila pengubahan pada sejumlah data yang duplikasi tetapi tidak seluruhnya diubah
Contoh relasi yang menimbulkan anomali pengubahan. Tabel Pemasok.
Pemasok Kota Barang Jumlah
Bahagia Palembang Monitor 10
Makmur Jakarta Mouse 20
Bahagia Palembang CDROM 50
Apa masalahnya?
Masalah :
Seandainya pemasok Bahagia pindah ke kota lain misalnya Semarang dan pengubahan hanya dilakukan pada data yang pertama (data pemasok Bahagia pada relasi Pemasok ada 2 buah) maka hasilnya akan menyebabkan ketidakkonsistenan
Relasi Pemasok setelah adanya pengubahan
Pemasok Kota Barang Jumlah
Bahagia Semarang Monitor 10
Sentosa Bandung Keyboard 15
Makmur Jakarta Mouse 20
Ketidakkonsistenan yang terjadi :
Fakta pertama menyatakan bahwa pemasok Bahagia berlokasi di Semarang
Fakta kedua menyatakan bahwa pemasok Bahagia berlokasi di Palembang Mana yang benar ?
3. Anomali Penghapusan (Delete Anomaly)
Anomali Penghapusan terjadi apabila ada suatu tupel yang tidak terpakai dihapus mengakibatkan adanya data lain yang hilang.
Contoh relasi yang menimbulkan anomali penghapusan. Tabel Kursus
No Siswa Nama Siswa Nama Kursus Biaya
001 Ali Bahasa Inggris 100000
002 Budi Bahasa Jerman 150000
003 Iwan Bahasa Mandarin 120000
004 Arief Bahasa Inggris 100000
005 Putri Bahasa Jepang 175000
Masalahnya?
Masalah :
Seandainya data siswa dengan No Siswa 005 yang bernama Putri dihapus (dikarenakan data tersebut tidak digunakan lagi maka recordnya akan dihapus) maka mengakibatkan data yang menyatakan bahwa biaya kursus bahasa Jepang sebesar 175000 juga akan terhapus.
Redundansi (Redundancy)
Munculnya data yang berulang kali pada suatu tabel/relasi yang semestinya tidak diperlukan
Kerangkapan data dapat terjadi : Kerangkapan data dalam satu file. Kerangkapan data dalam beberapa file.
NORMALISASI
Apa itu Normalisasi?
Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar
ambiguity bisa dihilangkan.
Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF)
Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
Alasan utama dari normalisasi database minimal sampai dengan bentuk normal ketiga
adalah :
Insertion anomalies Deletion anomalies Update anomalies
Normalisasi Basis Data
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)
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut
tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
Suatu tabel dikatakan berada dalam BCNF jika untuk semua KF dengan notasi x y, mk x harus mrp superkey pada tabel tsb, jika tidak mk tabel harus didekomposisi bdskn KF yg ada shg X mjd superkey.
Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
4. Boyce-Code Normal Form (BCNF)
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)
Bentuk Normal Tahap Kedua (2nd Normal Form)
Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key
Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional
Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)
Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)
Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary
key yang lainnya.
Untuk setiap Functional Dependency dengan notasi X A, maka:
X harus menjadi superkey pada tabel tsb.
Atau A merupakan bagian dari primary key pada tabel tsb.
Boyce-Code Normal Form (BCNF)
Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X Y maka X adalah super
key
tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X A, BCNF tidak membolehkan A sebagai bagian dari primary key.
Bentuk Normal Tahap Keempat (4th Normal Form /4NF)
Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional
dependencies
Bentuk Normal Tahap Keempat (5th Normal Form /5NF)
Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence.
KEAMANAN
Keamanan Pada Perancangan Basisdata
Ketika kita meletakkan basisdata pada web, dia menjadi mudah diserang oleh hacker dan penjahat lainnya dari luar organisasi yang akan merusak atau mencuri data. Bayangkan bahwa gaji semua orang, data personalia, atau data rahasia perusahaan lainnya ditampilkan kepada umum melalui website. Bahkan dari dalam perusahaan sendiri dapat terjadi seorang pegawai merusak sistem ketika mereka dipecat.
Kemungkinan terjadinya gangguan dari orang-orang baik dalam maupun luar organisasi harus dilawan. Masalah yang lebih besar dapat terjadi ketika orang-orang dalam perusahaan harus menanggulangi kemungkinan kesalahan yang tak disengaja. Menghapus atau menimpa suatu file data, menghapus tabel atau mengupdate kolom
secara tidak benar dengan tidak sengaja, dapat menimbulkan masalah seperti yang ditimbulkan oleh hacker. Oleh karena itu keamanan harus direncanakan dengan baik dan diintegrasikan dalam basisdata.
Basisdata seharusnya tidak hanya menyediakan data pada pengguna tapi juga menyediakan proteksi pada data tersebut.
Lalu siapa yang berhak mengakses suatu data?
Ada beberapa kategori pengguna untuk setiap sistem informasi, mulai dari pengguna akhir sampai administrator sistem informasi. Pengguna yang mempunyai akses untuk sistem informasi adalah sebagai berikut:
• Pengguna akhir • Pelanggan • Manajemen
• Administrator jaringan • Administrator sistem
• Administrator basisdata • Pemilik skema
Tingkat akses?
Pengguna basisdata diberi identitas pengguna dengan password dan kemampuan untuk berhubungan dengan
basisdata.
Basisdata modern membutuhkan keputusan tentang perancangan yang berhubungan dengan identitas pengguna dan password. Keamanan digunakan untuk mengontrol akses. Pengguna mempunyai akses ke baik data maupun sumberdaya, keduanya dapat dikontrol pada tingkatan basisdata.
Apabila pengguna diberi identitas pengguna, mereka dapat mengakses basisdata secara langsung kedalam jaringan melalui aplikasi client-server. Mereka juga dapat log in
melalui aplikasi middle tier untuk mengakses basisdata. Sebagai contoh, pengguna dapat log in ke server aplikasi web yang mempunyai banyak pengguna web yang log in ke server tersebut. Server aplikasi web kemudian berkomunikasi dengan basisdata dengan cara log in dengan menggunakan identitas pengguna yang mempunyai akses minimum yang dibutuhkan untuk menyelesaikan pekerjaan yang sedang dikerjakan oleh aplikasi web.
PRAKTIKUM
Baik, karena disini kita akan langsung praktik, saya singgung sedikkit lagi masalah software yang sering digunakan dalam membuat suatu database kantoran, yaitu MS.Access, adalah software buatan Microsoft yang ada dalam paketan „MS.Office‟, ya kita secara otomatis mendapatkan software ini ketika kita menginstal MS.Office, karena aplikasi ini buatan Microsoft yang jelasnya aplikasi ini berbayar, jadi jika kalian bisa mendapatkan aplikasi ini secara gratis di situs-situs web yang menyediakan key nya, harusnya kalian sadar jika tindakan itu adalah illegal dan jika kalian adalah pembaca tulisan saya ini itu berarti kalian adalah orang yang berpendidikan yang secara otomatis harusnya kalian tahu jika tindakan illegal dapat dikenakan hukuman, jadi segeralah bertomat… eh salah bertobat…..
Aplikasi selanjutnya ada banyak sih… tapi saya mau langsung aja menuju aplikasi yang tidak
berbayar, aplikasi yang saya kenal semenjak saya duduk di bangku smk dan sampai saat tulisan ini saya buatpun saya masih setia dengan si doi… MySQL, yang akan saya bahas dalam tulisan ini adalah mysql yang terdapat di paketan Xampp, yap ketika kalian mengistall Xampp maka kalian akan mendapatan Apache sebagai server dan MySQL sebagai database. Xampp adalah sebuah paket kumpulan software yang terdiri dari apache, mysql, phpmyadmin, php, Perl, Freetype2,dll. Xampp berfungsi untuk memudahkan instalasi lingkungan php, di mana biasa nya lingkungan pengembangan web memerlukan php, apache, mysql dan phpmyadmin serta software-software yang terkait dengan pengembangan web. Dengan menggunakan xampp, kita tidak perlu menginstall aplikasi-aplikasi tsb satu persatu.
MySQL adalah salah satu jenis database server yang sangat terkenal. MySQL menggunakan
bahasa SQL untuk mengakses database nya. Lisensi Mysql adalah FOSS License Exception dan ada juga yang versi komersial nya. Tag Mysql adalah “The World's most popular open source database”. MySQL tersedia untuk beberapa platform, di antara nya adalah untuk versi windows dan versi linux.
Sebelum masuk dalam praktikum, dalam database ada banyak tipe-tipe data, ya ada banyak dan kalian harus tahu tentang itu.
1. Tipe Numerik
Tipe data numerik digunakan untuk menyimpan data numeric (angka). Ciri utama data numeric adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe numerik:
a. TINYINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -128 s/d 127 Ukuran : 1 byte (8 bit). b. SMALLINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -32.768 s/d 32.767 Ukuran : 2 byte (16 bit). c. MEDIUMINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -8.388.608 s/d 8.388.607 Ukuran : 3 byte (24 bit)
d. INT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : -2.147.483.648 s/d 2.147.483.647
Ukuran : 4 byte (32 bit). e. BIGINT
Penggunaan : digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan : ± 9,22 x 1018 Ukuran : 8 byte (64 bit) f. FLOAT
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negative presisi tunggal.
Jangkauan : 3.402823466E+38 s/d -1.175494351E-38, 0, dan 1.175494351E-38 s/d 3.402823466E+38.
Ukuran : 4 byte (32 bit). g. DOUBLE
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi ganda.
Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308.
Ukuran : 8 byte (64 bit). h. REAL
Penggunaan : Merupakan sinonim dari DOUBLE.
i. DECIMAL
Penggunaan : digunakan untuk menyimpan data bilangan pecahan positif dan negatif. Jangkauan : -1.79...E+308 s/d -2.22...E-308, 0, dan 2.22...E-308 s/d 1.79...E+308.
Ukuran : 8 byte (64 bit). j. NUMERIC
Penggunaan : Merupakan sinonim dari DECIMAL.
2. Tipe Date dan Time
Tipe data date dan time digunakan untuk menyimpan data tanggal dan waktu. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe date dan time:
a. DATE
Penggunaan : digunakan untuk menyimpan data tanggal.
Jangkauan : 1000-01-01 s/d 9999-12-31 (YYYY-MM-DD)
Ukuran : 3 byte. b. TIME
Penggunaan : digunakan untuk menyimpan data waktu.
Jangkauan : -838:59:59 s/d +838:59:59 (HH:MM:SS)
c. DATETIME
Penggunaan : digunakan untuk menyimpan data tanggal dan waktu.
Jangkauan : '1000-01-01 00:00:00' s/d '9999-12-31 23:59:59'
Ukuran : 8 byte. d. YEAR
Penggunaan : digunakan untuk menyimpan data tahun dari tanggal.
Jangkauan : 1900 s/d 2155 Ukuran : 1 byte.
3. Tipe String (Text)
Tipe data string digunakan untuk menyimpan data string (text). Ciri utama data string adalah suatu data yang memungkinkan untuk dikenai operasi aritmatika seperti pertambahan, pengurangan, perkalian dan pembagian. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe string:
a. CHAR
Penggunaan : digunakan untuk menyimpan data string ukuran tetap.
Jangkauan : 0 s/d 255 karakter b. VARCHAR
Penggunaan : digunakan untuk menyimpan data string ukuran dinamis.
Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3)
c. TINYTEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535 (versi 5.0.3)
d. TEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 65.535 (216 - 1) karakter e. MEDIUMTEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 224 - 1 karakter f. LONGTEXT
Penggunaan : digunakan untuk menyimpan data text.
Jangkauan : 0 s/d 232 - 1 karakter
4. Tipe BLOB (Biner)
Tipe data blob digunakan untuk menyimpan data biner. Tipe ini biasanya digunakan untuk menyimpan kode-kode biner dari suatu file atau object. BLOB merupakan singkatan dari Binary Large Object. Berikut ini tipe field (kolom) di MySQL yang termasuk ke dalam kelompok tipe blob:
a. BIT (sejak versi 5.0.3)
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 64 digit biner b. TINYBLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 255 byte c. BLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 216 - 1 byte d. MEDIUMBLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 224 - 1 byte e. LONGBLOB
Penggunaan : digunakan untuk menyimpan data biner.
Jangkauan : 232 - 1 byte
5. Tipe Data yang Lain
Selain tipe data di atas, MySQL juga menyediakan tipe data yang lain. Tipe data di MySQL mungkin akan terus bertambah seiring dengan
perkembangan versi MySQL. Berikut ini beberapa tipe data tambahan MySQL:
a. ENUM
Penggunaan : Enumerasi (kumpulan data). Jangkauan : Sampai dengan 65535 string. b. SET
Pengunaan : Combination (himpunan data). Jangkauan : Sampai dengan 255 string anggotas.
Baiklah akan saya tunjukkan beberapa langkah untuk membuat database dengan bantuan MySQL dalam paketan Xampp, kalian bisa menggunakan command prompt/CMD, kalian juga bisa langsung mengakses melalui phpmyadmin (localhost/phpmyadmin) melalui browser.
adakah timbul pertanyaan dalam diri kalian cara membuat database ?...
1. Download Xampp di
https://www.apachefriends.org/download.htm l sesuai Sistem Operasi kalian.
2. Klik dua kali pada file master yang telah di download.
3. Akan tampil Warning seperti dibawah ini, klik ok.
5. Klik Next.
6. Pilih tempat penyimpanan Xampp, disini saya biarkan secara default.
7. Hilangkan centang pada “learn about Bitnami for XAMPP”, lalu klik Next.
10. Pada jendela ini klik Allow access
11. Anda bisa hilangkan centang pada “Do you want to start the Control Panel now?”, klik finish dan proses instalasi selesai.
Sekarang Xampp sudah terinstall di laptop.
Buka Xampp Control Panel, klik start Apache dan MySql. buka browser lalu buka (Localhost/) pilih saja bahasa Inggris, untuk membuka phpmyadmin ketikkan (Localhost/phpmyadmin).
Let‟s going to create Database……..
Isikan nama database lalu klik create, disini saya buat database perpustakaan.
Jika database telah terbuat, selanjutnya buat table, masukkan nama table dan jumlah field/kolom, disini saya akan membuat table Penerbit dengan 4 field, lalu klik go.
Lalu isikan Name field, type data, dan length/values seperti dibawah ini. (Kd_PN
sebagai Primary Key). Pada atribut pilih primay key untuk Kd_PN.
Jika sudah jadi maka struktur table akan seperti ini.
Untuk memasukkan data klik insert. Masukkan data dibawah ini.
Kd_PN Nama_Penerbit Alamat Telp
20 Maxi JL. Beo
6
0711567891
22 Bintang Jl. Punai 0711832450 23 Galang Jl.Betet 0711432178
Jika sudah klik browse, akan akan tampil seperti ini.
Itu adalah data yang kita isikan tadi, kalian bisa menghapus maupun mengedit data tersebut.
Cukup mudah bukan? ya itu adalah cara membuat database dengan cara klik klik jadi…. :v .. kalian juga bisa menggunakan perintah sql untuk membuat database dan kawan-kawannya, berikut saya jelaskan.
Klik tab SQL
Nah disana ada form dimana kita dapat memasukkan perintah. Perintah untuk membuat database adalah “create database nama_database;” tanpa tanda petik dan pastikan nama database tidak menggunakan spasi. Jadi ketikkan “create database Perpustakaan;” untuk membuat database perpustakaan. Lalu klik go.
Database Perpustakaan telah kita buat selanjutkan buat table, klik SQL maka akan muncul form seperti tadi kita membuat database. pastikan kita sudah melilih database Perpustakaan.
Perintah untuk membuat table adalah”create table nama_table(nama_field type(ukuran), nama_field type(ukuran), nama_field type(ukuran));” dan seterusnya… kita akan membuat table penerbit, ketikkan perintah berikut “create table Penerbit(Kd_PD char(5) primary key, Nama_Penerbit varchar(20), Alamat varchar(30), Telp varchar(12));” disini saya jadikan Kd_PN sebagai primary key, pastikan tanpa tanda petik dan pastikan nama table dan nama field tidak menggunakan spasi. Klik go.
Table telah dibuat, anda bisa melihat struktur table dengan menggunakan perintah “desc nama_table;”, untuk melihat struktur table penerbit, ketikkan “desc penerbit;” maka akan tampil seperti ini.
Untuk memasukkan data/menginput data gunakan petintah “insert into nama_table value(„isi field1‟, „isi field2‟, „isi field3‟, „isi field4‟);” dan seterusnya, untuk mengisi table Penerbit ketikkan “insert into penerbit value(„20‟,‟Maxi‟,‟JL.Beo 6‟,‟0711567891‟);”.kalian bisa megisi banyak data sekaligus seperti ini “insert into nama_table values(„isi field1‟, „isi field2‟, „isi field3‟, „isi field4‟), („isi field1‟, „isi field2‟, „isi field3‟, „isi field4‟), („isi field1‟, „isi field2‟, „isi field3‟, „isi field4‟), („isi field1‟, „isi field2‟, „isi field3‟, „isi field4‟), („isi field1‟, „isi field2‟, „isi field3‟, „isi field4‟);” isi file table Penerbit dengan data berikut :
Kd_PN Nama_Penerbit Alamat Telp
20 Maxi JL. Beo 6 0711567891
21 Media Jl. Pipit7 0711678923
22 Bintang Jl. Punai 0711832450
23 Galang Jl.Betet 0711432178
Database dan table telah dibuat dan diisi menggunakan syntax melalui browser, sedikit pertanyaan konyol, “Bagaimana jika saya tidak meliliki browser di pc saya?” :3 pertanyaan konyol kan, imposible kalian tidak meliliki browser di pc kalian, tapi jika memang tidak ada kita masih bisa membuat database melalui CMD…. (maksa banget -__-).
Baiklah buka CMD malalui start menu – All Program – Accessories – Command Prompt, atau kalian bisa tekan tombol Wondows + R dan ketikkan CMD. Klik ok.
Jika command prompt sudah terbuka maka pindahkan ke direktori xampp/mysql/bin ketikkan cd c:\xampp\mysql\bin (enter) mysql.exe –h localhost –u root –p (enter) jika disuruh memasukkan password kosongkan saja dan tekan enter. Anda juga bisa ketikkan ini di run untuk mengaksesnya C:\xampp\mysql\bin\mysql.exe --user=root.
Jika sudah seperti gambar diatas berarti kita sudah masuk dalam mysql. Nah untuk membuat database, masukkan perintah yang sama seperti perintah membuat database sebelumnya, yaitu “create database nama_table;”.
Begitupun untuk membuat table, insert, dll kita juga menggunakan perintah yang sama seperti tadi, jadi saya tidak akan menjelaskannya lagi. (kan sama buat apa dijelasin lagi -___ kalian bisa berkreasi sendiri).
Kita sudah membuat database, membuat table, mengisinya dengan data, lalu bagaimana cara
mengeditnya? Menghapusnya? Menampilkan yang diinginkan? Menjumlahkan? Dan yang lainnya… baiklah jika pertanyaan seperti itu maka kita akan membahas tentang modifikasi struktur table, kali ini saya mencoba menggunakan command prompt.
Menambah field dalam table.
Untuk menambah field dalam table kita dapat menggunakan perintah add, yaitu “alter table table_nama add nama_field type (size);”. Kita akan menambahkan field email pada table penerbit, ketikkan perintah berikut “alter table penerbit add email varchar(35);”.
Maka bertambah field email yang kita tambahkan tadi.
Merubah type dan ukuran field.
Untuk merubah type dan ukuran field pada table kita dapat menggunakan perintah modify “alter table table_nama modify field type(size);”. Kita coba ubah type field Telp menjadi int, ketikkan perintah berikut “alter table penerbit modify Telp int(12);”.
Type field Telp telah berubah menjadi integer.
Merubah nama field/kolom
Untuk merubah nama field kita dapat menggunakan perintah “change” dengan format “alter table nama_table change field_lama field_baru type(size);”. Mari kita rumah nama field Alamat menjadi Address (kiar agak keren :D) ketikkan perintah berikut
“alter table penerbit change Alamat Address varchar(30);”.
Terengggg Alamat sudah berubah menjadi Address, gak perlu potong kambing buat ganti namanya wkwkwkw *efek liat meme :v.
Menghapus (table, database, field)
Untuk menghapus database/table/field kita dapat menggunakan perintah drop, untuk menghapus database “drop database nama_database;”, untuk menghapus table “drop table nama_table;”, untuk menghapus
field “alter table nama_table drop nama_field;”, sekarang kita coba hapus field email yang tadi kita tambahkan, ketikkan perintah berikut “alter table penerbit drop email;”.
Field email pun menghilang -_-.
Merubah nama table
Untuk merubah nama table kita dapat menggunakan perintah rename, “alter table nama_table_lama rename nama_table_baru”,
udah nama table penerbit menjadi tbl_penerbit, “alter table penerbit rename tbl_penerbit;”.
Gunakan nama table tbl_penerbit untuk perintah selanjutnya.
Menghapus record/data
Untuk menghapus record kita dapat menggunakan perintah delete, “delete from nama_table where field='isi_field';”. Sekarang coba hapus data di table tbl_penerbit dengan
Kd_PN 20, ketikkan perintah berikut “delete from tbl_penerbit where Kd_PN=20;” (karena 20 merupakan format angka, tidak perlu menggunakan tanda petik satu).
Jika kalian ingin menghapus berdasarkan nama, maka menggunakan tanpa petik satu, “where Nama_Penerbit =‟Media‟;”.
Update
Bagaimana jika data yang dimasukkan salah? Apakah bisa diedit atau harus di hapus dulu lalu masukkan lagi yang benar? (ribet amat -___-), kita dapat mengubah data menggunakan perintah update, “update
nama_table set nama_field='sekip' where field_condotion=21;”, baiklah kita akan coba mengupdate data dengan Kd_PN 21, kita rubah nama penerbitnya menjadi Media Sehati, ketikkan perintah berikut “update tbl_penerbit set Nama_Penerbit =‟Media Sehati‟ where Kd_PN=21;”
Data telah berubah sesuai yang diinginkan.
Perintah Select/Menampilkan
Terkadang kita hanya ingin menampilkan beberapa data saja, untuk menampilkan semua data pada satu table kita bisa menggunakan perintah “select * from nama_table;”. Untuk menampilkan beberapa
field saja kita cukup mengganti tanda * menjadi nama_field yang ingin kita tampilkan, “select Nama_Penerbit, Address from tbl_penerbit;”.
Untuk menampilkan data dengan kondisi, misalnya data penerbit yang Kd_PN nya hanya 21 maka kita cukup menambahkan “where Kd_PN=21;”.
Kita juga bisa menggunakan dua kondisi, misalnya data dan Kd_PN nya 21 dan nama yang karakter depannya M, cukup tambahkan perintah “and Nama_Penerbit like „M%‟;”.
Bisa juga menampilkan dua kondisi dimana Kd_PN sama dengan 21 atau Nama_Penerbit di awali karakter B, ganti perintah and menjadi or.
Untuk menampilkan sesuai huruf belakang kalian bisa mengganti menjadi tanda % dulu baru karakter yang diinginkan seperti ini „%i‟, untuk huruf yang berada di tengah kalian bisa menjepit karakter tersebut dengan dua tanda % seperti ini „%s%‟.
Selanjutnya kita akan masuk pada fungsi agregat seperti :
Sum Count Avg
Min Mix
SUM
SUM digunakan untuk menjumlahkan kolom tertentu, kita bisa menggunakannya dengan format perintah sebagai berikut “select sum(field/kolom) from nama_table;”, coba jumlahkan kolom Kd_PN, ketikkan “select sum(Kd_PN) from tbl_penerbit;”.
21 + 22 + 23 = 66, (kasus diatas hanya sebagai contoh saja, buat apa kan menjumlahkan kode -___-), kita juga bisa menggunakan kondisi where, misalnya kita ingin menjumlahkan yang Nama_Penerbitnya Bintang saja maka tambahkan “where Nama_Penerbit =‟Bintang‟;”.
COUNT
Selanjutnya adalah fungsi count, count berfungsi untuk menghitung jumlah field atau kolom, kita dapat menggunakan fungsi ini
dengan format perintah “select count(field) from nama_table;”, sekarang coba jumlahkah hitung data yang ada pada field Kd_PN, “select count(Kd_PN) from tbl_penerbit;”.
Terlihat ada 3 data dalam field Kd_PN, kita juga bisa menggunakan kondisi where, misalnya kita ingin menghitung yang Nama_Penerbitnya Bintang saja maka tambahkan “where Nama_Penerbit =‟Bintang‟;”.
Terlihat hanya ada 1 record yang dalam field Kd_PN dengan Nama_Penerbit Bintang.
AVG
Fungsi AVG adalah untuk mencari rata-rata suatu field, misalkan kita ingin mencari rata-rata field Kd_PN, maka ketikkan “select avg(Kd_PN) from tbl_penerbit;”.
MIN
MIN berfungsi untuk mencari nilai terkecil dari suatu field, coba kita cari nilai terkecil dari field Kd_PN, ketikkan perintah berikut “select min(Kd_PN) from tbl_penerbit;”.
MAX
Jika MIN berfungsi untuk mencari nilai terkecil, maka MAX berfungsi untuk mencari nilai terbesar, “select max(Kd_PN) from tbl_penerbit;”.
Sesuai dengan data yang ada, nilai terbesarnya adalah 23.
Setelah fungsi agregat, sekarang kita masuk pada operator Between – and In Or Not BETWEEN - AND
Between berfungsi untuk menampilkan data dari yang kita tentukan sampai yang kita tentukan, bingung? :v ini seperti jangkauan, jadi kita bisa menampilkan misalnya dari 1 sampai 100 atau dari 2 sampai 4 dan sebagainya, kita bisa gunakan fungsi ini dengan format sebagai berikut “select nama_field from nama_table where field_konsdisi between 'awal' and 'akhir'; Coba kita tampilkan data tbl_penerbit dari
tbl_penerbit where Kd_PN between '21' and '23';”.
OPERATOR IN
Operator IN dapat digunakan untuk menyatakan keadaan “SALAH SATU DIANTARA” perintah IN dapat digunakan dengan format “select Nama_field from nama_table where field_kondisi IN(„kondisi1‟,‟kondisi2‟);”. Sekarang coba ketikkan “select * from tbl_penerbit where Kd_PN IN(21,22);”.
Maka akan tampil data yang mempunyai Kd_PN 21 dan 22.
OPERATOR OR
Operator OR dapat digunakan untuk Menyatakan keadaan “ATAU” dengan format penulisan “select Nama_field from nama_table where field_kondisi = „kondisi1‟ OR field_kondisi = ‟kondisi2‟;”, coba ketikkan “select * from tbl_penerbit where Kd_PN = 21 OR Kd_PN = 22;”.
Fungsi yang sama dengan format penulisan berbeda? Ya benar.
OPERATOR NOT
Operator NOT dapat digunakan untuk Menyatakan keadaan “TIDAK”, dengan format perintah “select nama_field from nama_table where field_kondisi NOT LIKE „kondisi‟;”, sekarang kita akan menampilkan semua data namun kita tidak akan menampilkan data dengan Nama_Penerbit
Bintang, “select * from tbl_penerbit where Nama_Penerbit NOT LIKE „Bintang‟;”.
Maka data dengan Nama_Penerbit Bintang tidak akan tampil.
Sekarang kita akan membahas fungsi :
Substring Left Right Mid
Substring digunakan untuk menampilkan/mengambil beberapa karakter dengan posisi yang kita tentukan, misalnya kita hanya ingin mengambil 2 karakter dalam suatu field, dengan format penulisan “select substring(nama_field,
posisi_pertama_karakter, jumlah_karakter) from nama_tabel;”. Kita juga bisa menambah kan kondisi „where‟, sekarang coba ketikkan
perintah berikut “select
substring(Nama_Penerbit, 1, 3) from tbl_penerbit where Kd_PN = 21;”.
LEFT
Fungsi left hampir sama dengan substring, hanya saja kita mengambil karakter dari kiri yang berarti kita tidak perlu menentukan posisi pertama karakter, “select left(nama_field, jumlah karakter yang ingin di ambil) from nama_table;”. Coba ketikkan perintah “select left(Nama_Penerbit, 3) from tbl_penerbit where Kd_PN = 21;”.
Maka data yang tampil pun hanya Med juga.
RIGHT
Jika fungsi left untuk mengambil data dari sebelah kiri, maka right akan mengambil data dari sebelah kanan, coba ketikkan “select right(Nama_Penerbit, 3) from tbl_penerbit where Kd_PN = 21;”.
Maka data yang tampil adalah 3 karakter dari kanan yaitu ati.
MID
Fungsi MID sama dengan fungsi substring, karena kita harus menentukan posisi pertama dan juga posisi terakhir karakter, ketikkan perintah “select mid(Nama_Penerbit,1, 3) from tbl_penerbit where Kd_PN = 21;”.
Sama kan -___-
Mengubah Judul Field / Kolom menggunakan As AS
Jadi kolom-kolom / field yang ingin kita tampilkan bisa kita beri judul sesusai dengan keinginan kita sendiri, misalnya kita ingin menampilkan field Nama_Penerbit dengan judul Nama saja, perintahnya sebagai berikut, “select Nama_Penerbit AS Nama from tbl_penerbit;”.
Maka judul field akan berubah menjadi Nama.
Menampilkan data tanpa duplicate menggunakan DISTINCT
DISTINCT
Distinct berfungsi untuk menampilkan data tanpa duplicate / data ganda dengan perintah “select distinct nama_field from nama_table;”. Sekarang coba isikan data dengan nama bintang maka kita akan
mempunyai 2 data dengan nama bintang, lalu gunakan perintah “select distinct Nama_Penerbit from tbl_penerbit;”.
Saat kita menggunakan fungsi distinct makan hanya akan ditampilkan 1 nama Bintang.
MENYATUKAN HASIL TABEL
Kita dapat menyatukan hasil dari dua table atau lebih menggunakan INNER JOIN, Inner join = Inner join hanya akan ditampilkan baris baris yang satu sama lain memiliki kecocokan, ada Left join
= Left join akan menampilkan semua isi tabel sisi kiri , walaupun data di pasangan joinnya yang disisi kanan nilainya tidak sama ataupun berisi null, selanjutnya ada Right join = Right join ini hanya kebalikan left join , akan menampilkan semua isi tabel sisi kanan, walaupun data di pasangan joinnya yang di sisi kiri nilainya tidak sama ataupun berisi null.
Sekarang buatlah table penerbit, pengarang, dan koleksi di database Perpustakaan, kita sudah membuat tbl_penerbit kalian hanya cukup menyesuaikan lagi seperti berikut :
Struktur Table
Penerbit Pengarang Koleksi
Kd_PN char(5) Nama_Penerbit Varchar(20) Alamat Varchar(30) Kd_Pengarang char(5) Nama_pengarang Varchar(20) Alamat Jumlah_copy Int(4) Kode_koleksi varchar(10) Judul
Telp Varchar(12) Varchar(30) Varchar(30) Tahun_terbit Varchar(8) Kode_PN char(5) Kode_Pengarang char(5) Isi table Tabel Penerbit
Kd_PN Nama_Penerbit Alamat Telp
20 Maxi JL. Beo 6 0711567891 21 Media Jl. Pipit7 0711678923 22 Bintang Jl. Punai 0711832450 23 Galang Jl.Betet 0711432178 Tabel Pengarang
Kode_Pengarang Nama_pengarang Alamat 11 Ani Rajawali 1 12 Ali Macan 2 13 Badi Merpati 3 14 Cinta Kijang 4 Tabel Koleksi
Jumlah_copy Kode_koleksi Judul Tahun_terbit Kode_PN Kd_Pengarang
25 01 Algoritma 2008 20 11
20 02 Basis Data 2007 21 11
30 03 Internet 2006 22 14
Sekarang kita telah memiliki table penerbit, pengarang, dan koleksi dalam database Perpustakaan dengan isi yang sudah kita tentukan.
Kini coba kita gunakan fungsi inner join
dengan format, „select
nama_field.nama_table, nama_field.nama_table,
nama_field.nama_table from nama_table1 INNER JOIN nama_table2 ON
nama_table1.field_kode =
nama_table2.field_kode;”.
Sekarang coba kita coba tampilkan Nama_Pengarang dari table pengarang dan Judul dari table koleksi, “select pengarang.Nama_Pengarang, koleksi.Judul from pengarang INNER JOIN koleksi ON
pengarang.Kd_Pengarang =
Maka data yang tampil adalah data Nama_Pengarang dari table pengarang dan data Judul dari table koleksi sesuai dengan Kode_Pengarang yang ada di table koleksi dan Kd_Pengarang yang ada di table pangarang.
LEFT JOIN
Sekarang kita akan menggunakan left join, dimana akan menampilkan semua isi tabel sisi kiri , walaupun data di pasangan joinnya yang disisi kanan nilainya tidak sama ataupun berisi null, untuk mengetahui perbedaannya coba isikan data berikut dalam table penerbit. 25 Fress JL. Lurus 0711567345 27 Gunin Jl. Belok 0711678675
Selanjutnya ketikkan perintah berikut “select penerbit.Nama_Penerbit, koleksi.Judul from penerbit left join koleksi ON penerbit.Kd_PN = koleksi.Kode_PN;”.
Maka seluruh data Nama_Penerbit dalam table penerbit akan tampil sedangkan data judul yang tidak ada kecocokkannya di penerbit akan tampil NULL.
RIGHT JOIN
Lawan dari left join, right join akan menampilkan semua isi tabel sisi kanan, walaupun data di pasangan joinnya yang di sisi kiri nilainya tidak sama ataupun berisi null.
Coba ketikkan perintah berikut. “select koleksi.Judul, penerbit.Nama_Penerbit from koleksi right join penerbit ON penerbit.Kd_PN = koleksi.Kode_PN;”.
Maka akan tampil sebaliknya dari left join. Juga ada Full join akan menampilkan semua isi tabel sisi kiri walaupun data di pasangan joinnya yang disisi kanan nilainya null atau sebaliknya,
kalian bisa latihan sendiri sekaligus melatih logika kalian.
PENUTUP Alhamdulillah… masih kurangkah materinya? Saya rasa sih masih kurang banyak, tapi berhubung ada project lain yang juga harus di kerjakan saya rasa ini cukup untuk materi dasar, sengaja materinya saya batasi cukup sampai disini (udah kayak lagu) ya kalo saya lanjutin nanti judul bukunya bukan database dasar, tapi database lajut :v …. Makasih buat kalian yang udah
bersedia membaca tulisan ini,
silahkan hubungi saya melalui email yang tertera, happy coding… :D