• Tidak ada hasil yang ditemukan

DATABASE DASAR WITH XAMPP

N/A
N/A
Protected

Academic year: 2021

Membagikan "DATABASE DASAR WITH XAMPP"

Copied!
118
0
0

Teks penuh

(1)

M.ASWADI

DATABASE DASAR WITH

XAMPP

Diterbitkan secara mandiri melalui Nulisbuku.com

(2)

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

(3)

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

(4)

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,

(5)

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

(6)

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

(7)

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.

(8)

• 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

(9)

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,

(10)

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

(11)

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

(12)

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…

(13)

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.

(14)

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

(15)

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

(16)

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)

(17)

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.

(18)

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.

(19)

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.

(20)

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.

(21)

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)

(22)

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.

(23)

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.

(24)

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.

(25)

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 .

(26)

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

(27)

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

(28)

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

(29)

 Implementasi Relasi Ganda (Redundant Relation)

(30)

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 :

(31)

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

(32)

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’

(33)

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

(34)

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)

(35)

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

(36)

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

(37)

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

(38)

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.

(39)

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.

(40)

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

(41)

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

(42)

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)

(43)

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

(44)

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.

(45)

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

(46)

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.

(47)

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

(48)

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

(49)

• 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

(50)

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.

(51)

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

(52)

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

(53)

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.

(54)

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

(55)

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.

(56)

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

(57)

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)

(58)

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:

(59)

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.

(60)

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

(61)

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

(62)

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

(63)

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.

(64)

5. Klik Next.

6. Pilih tempat penyimpanan Xampp, disini saya biarkan secara default.

(65)

7. Hilangkan centang pada “learn about Bitnami for XAMPP”, lalu klik Next.

(66)
(67)

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.

(68)

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

(69)
(70)

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

(71)

sebagai Primary Key). Pada atribut pilih primay key untuk Kd_PN.

 Jika sudah jadi maka struktur table akan seperti ini.

(72)

 Untuk memasukkan data klik insert. Masukkan data dibawah ini.

Kd_PN Nama_Penerbit Alamat Telp

20 Maxi JL. Beo

6

0711567891

(73)

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.

(74)

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

(75)

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

(76)

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

(77)

 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 :

(78)

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.

(79)

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

(80)

 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

(81)

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

(82)

 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);”.

(83)

 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

(84)

“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

(85)

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”,

(86)

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

(87)

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

(88)

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

(89)

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;”.

(90)

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

(91)

 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

(92)

 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;”.

(93)

 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

(94)

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‟;”.

(95)

 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;”.

(96)

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;”.

(97)

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.

(98)

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

(99)

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

(100)

 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;”.

(101)

 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

(102)

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

(103)

 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;”.

(104)

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;”.

(105)

 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;”.

(106)

 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;”.

(107)

 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

(108)

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

(109)

= 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

(110)

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

(111)

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

(112)

Sekarang kita telah memiliki table penerbit, pengarang, dan koleksi dalam database Perpustakaan dengan isi yang sudah kita tentukan.

(113)

 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 =

(114)

 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

(115)

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

(116)

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,

(117)

kalian bisa latihan sendiri sekaligus melatih logika kalian.

(118)

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

Referensi

Dokumen terkait

Untuk mengetahui pengaruh manajemen modal kerja (periode persediaan, periode piutang, periode utang usaha, dan siklus konversi kas) secara parsial terhadap profitabilitas

PENGARUH LEVERAGE, PROFITABILITAS, DAN TIPE INDUSTRI TERHADAP PENGUNGKAPAN MODAL INTELEKTUAL PADA PERUSAHAAN MANUFAKTUR : HIGH DAN LOW PROFILE YANG.. TERDAFTAR DI BURSA EFEK

(1) Pemerintah, pemerintah daerah, dan setiap orang untuk memiliki Izin Pelaksanaan Reklamasi sebagaimana dimaksud dalam Pasal 2 ayat (1) huruf b, harus mengajukan

Berdasarkan uraian yang telah dijelaskan sebelumnya, maka dapat disimpulkan bahwa bahan ajar berupa buku siswa menggunakan konteks bahan bakar minyak dengan pendekatan

By Pass Ngurah Rai , Puri Maharani Ida Bagus Made Ardita KP..

Jadi, hubungan perpustakaan dan prestasi belajar mahasiswa adalah dari perpustakaan sebagai pusat sumber ilmu pengetahuan dan pusat kegiatan belajar serta sumber

Papilitis adalah pembengkakan diskus yang disebabkan oleh peradangan lokal di nervus saraf optik dan dapat terlihat dengan pemeriksaan funduskopi.. Tipe lokal di

Penelitian ini bertujuan untuk mengetahui kondisi wisatawan yang datang ke hotel dan restoran di Kabupaten Buleleng, kualitas pelayanan hotel dan restoran serta