DATABASE DASAR WITH XAMPP

dokumen-dokumen yang mirip
DATABASE DASAR WITH XAMPP

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

MODUL 1 Pengenalan MySQL, DDL, DML

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

Kontrak Kuliah. Dasar-dasar MySQL. Edi Sugiarto, S.Kom, M.Kom

KURSUS ONLINE JASA WEBMASTERS

LAPORAN TUGAS BASIS DATA I

Pengenalan Structured Query Language

INTERNET PROGRAMMING DATABASE

Untuk mengakses MySQL dengan mode text dari Console (Command Prompt = Microsoft Windows), dapat dilakukan dengan cara : 1.

MODUL 8 Mengoperasikan Perangkat Lunak Basis Data

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

Pertemuan 12 Pengenalan Structured Query Language

Tutorial Tipe Data MySQL

BAB 2 LANDASAN TEORI

Pemrograman Web Lanjut 2017

BASIS DATA. Desain Database dan Normalisasi. Fakultas Ilmu Komputer UDINUS

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

LAPORAN PRAKTIKUM PENGANTAR TEKNOLOGI INFORMASI DATABASE

RANGKUMAN PHP dan MYSQL

DESAIN DATABASE. Pertemuan 06 3 SKS

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

MODUL II NORMALISASI DATA

Pemrograman Web 1. Akademi Manajemen Informatika dan Komputer AMIK Royal Kisaran. Modul 2 Revisi 2. Tahun Akademik 2012/2013

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA

SISTEM BASIS DATA AUB SURAKARTA

Normalisasi Donny Yulianto, S.Kom

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

MODUL 5 INTERNET PROGRAMMING : MySQL

Sistem Basis Data; Tutorial Konseptual Oleh : Yakub

Contents. Normalisasi. Bentuk Normalisasi. Dependency. Status Kunci (Key) Dekomposisi

MODUL 9 WEB PROGRAMMING : MySQL


Database. Pertemuan ke-1

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

Riyanto

MODUL I PENGENALAN MYSQL

Modul 3. Oleh : Mohammad Sholikin. 1

Pemrograman Basis Data Berbasis Web

Apa itu DDL & DML? Semua perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu :

IMPLEMENTASI BASIS DATA. By : I Ngh Putu Mardika, S.Pd

PENGANTAR BASIS DATA

PERTEMUAN 6. Normalisasi Database (Conoly-chap 14) (Ramakisman -chap 15)

markas / tempat berkumpul / tempat bersarang / gudang

MODUL PRAKTIKUM. MODUL I - VII Modul penuntun dan bahan praktikum matakuliah Basis Data

DESAIN DATABASE DAN NORMALISASI

STRUCTURE QUERY LANGUAGE (SQL)

M O D U L K U L I A H

Lessons. 1. Definisi Basis Data. 2. Sistem Basis Data. 3. Komponen Sistem Basis Data. 4. Abstraksi Data. 5. Bahasa Basis Data

PENGENALAN SINTAKS DASAR DALAM MySQL

Definisi Basis Data (1)

MySQL J A M K E T I G A

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

DUKUNGAN DATABASE DALAM PEMBANGUNAN SISTEM INFORMASI

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

BERMAIN DATA DENGAN SQL SERVER

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

SISTEM BASIS DATA (Lanjutan) :

Pengenalan Basis Data

MODUL 7 STRUCTURED QUERY LANGUAGE

PERANCANGAN DATA BASE BY LILIS PUSPITAWATI, SE.,M.SI

MUHAMMAD ZEN S. HADI, ST. MSC.

MODUL VII DATABASE DAN MICROSOFT SQL SERVER 2000

Tujuan Umum Tujuan Khusus Pokok Bahasan/Materi

PENGERTIAN DATABASE MySQL

SQL MYSQL. Pak Guru Eka 1

Basis Data Modul Teori

MySQL. Setelah Anda melakukan tahapan-tahapan di atas Anda akan dapatkan screen seperti ini

Praktikum Basis Data 2017 TE UM

Basis Data Relational

BAB I Penginstallan dan setting PHPTriad

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

Database. Danu Wira Pangestu 1. Mengenal Database. Lisensi Dokumen:

PERINTAH DASAR MySQL

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA

MEMAHAMI KONSEP DATABASE. Oleh : Yuhefizar, S.Kom

Operasi Dasar MySQL Menggunakan CLI(Command Line Interface)

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

E-trik Ajax. Database MySQL. Dedi Alnas

Normalisasi Data. Author : Minarni, S.Kom.,MM

Dibuat oleh: Dinda Ayu Muthia

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

SISTEM BASIS DATA TUJUAN PEMBELAJARAN

Otodidak. MySQL untuk Pemula

SISTEM BASIS DATA II S A N T I W I D I A N T I

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

BAB 2 LANDASAN TEORI. pengolahan data, pengolahan gambar, pengolahan angka, dan lainnya.

PERTEMUAN 1. Sistem Basis Data. Presented by : Sity Aisyah Nasution, M.Kom Blog : yeshasalsabila.blogspot.

Perancangan Basis Data

Sistem Basis Data. Ayu Nuriana Sebayang, S.Kom, M.Kom

Perancangan Basis. Data. Tim Dosen

Modul 3 : Query Penggabungan Tabel

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

SQL. Pemrograman Web II. Ganjil

BAB V. dimengerti, mudah dipelihara, mudah memprosesnya, dan mudah untuk dikembangkan sesuai kebutuhan baru

Pertemuan 10. Bahasa Query Terapan

Database Management System Gambaran Database Dan Penerapannya Pengelolaan Data Manual VS Database Komponen Utama Database

Transkripsi:

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 2

Saya suka dengan kata-kata ini nih Kerjakanlah hal dengan sungguhsungguh, 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. berada.. Untukmu kekasihku dimanapun kamu 3

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, M. ASWADI 4

DAFTAR ISI FIRST KATA PENGANTAR DAFTAR ISI PENDAHULUAN DATABASE KARAKTERISTIK UTAMA BASIS DATA APA ITU SYSTEM BASISDATA TUJUAN BASISDATA PEMANFAATAN KOMPONEN BASISDATA DBMS MODEL DATA ERD PANDANGAN TERHADAP BASIS DATA MACAM-MACAM MODEL DATA ENTITAS ATRIBUTE RELASI BAHASA BASISDATA ENTITY-RELATIONSHIP MODEL HIRARKI MODEL JARINGAN MODEL RELASIONAL DATA DEFINITION LANGUAGE (DDL) 5

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 6

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

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 8

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, Terstruktur dengan baik, 9

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

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- 11

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 12

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

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 14

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 2. Biaya penyimpanan yang semakin besar 15

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) - secara fisis (physical view) 16

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 datadata dalam basis data ke dalam fisik media penyimpanan data yang digunakan. 17

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

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

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

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

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

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

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

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. Jenis Kerelasian Antar Entitas (Relationship) 25

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 26

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 n-ke-n 27

Transformasi Model Data ke Basis Data Fisik Transformasi Umum/Dasar Nim Nama_mhs Alamat_mhs Mahasiswa Tgl_lahir 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) 28

Implementasi Relasi Ganda (Redundant Relation) 29

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

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

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 32

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 33

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

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 Sentosa Bandung Keyboard 15 35

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 Bahagia Palembang CDROM 50 36

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 37

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

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

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 40

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 41

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

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 43

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

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

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

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 47

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 48

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 49

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

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 51

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 52

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

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 54

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

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 56

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) Ukuran : 3 byte. 57

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

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

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 60

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 61

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?... Instalasi Xampp. 62

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. 4. Klik Next 63

5. Klik Next. 6. Pilih tempat penyimpanan Xampp, disini saya biarkan secara default. 64

7. Hilangkan centang pada learn about Bitnami for XAMPP, lalu klik Next. 8. Selanjutnya klik Next. 65

66 9. Tunggu sampai proses instalasi selesai.

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

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

69

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 70

sebagai Primary Key). Pada atribut pilih primay key untuk Kd_PN. Jika sudah jadi maka struktur table akan seperti ini. 71

Untuk memasukkan data klik insert. Masukkan data dibawah ini. Kd_PN Nama_Penerbit Alamat Telp 20 Maxi JL. Beo 6 0711567891 21 Media Jl. Pipit7 0711678923 72

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

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

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

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

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

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

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

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 80

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

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

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 83

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 84

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

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 86

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 87

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 88

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

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

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 91

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

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 93

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

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 ratarata field Kd_PN, maka ketikkan select avg(kd_pn) from tbl_penerbit;. 95

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;. Kita lihat nilai terkecilnya adalah 21. 96

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

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 Kd_PN 21 sampai 23 select * from 98

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

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

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 101

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 102

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;. Maka yang akan tampil hanyalah Med. 103

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

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

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

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 107

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 108

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

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 110

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 50 04 Mysql 2005 23 13 111

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

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 = koleksi.kode_pengarang;. 113

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 114

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

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

kalian bisa latihan sendiri sekaligus melatih logika kalian. 117

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 118