MySQL MODUL 0404 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

PHP-MySQL Modul Kursus Rev. 1902



Database dan MySQL Dalam tutorial ini akan dibahas tentang konsep Relational Database Management System, Structured Query Language SQL, Database MySQL dan cara mengaksesnya dengan dengan bahasa pemrograman PHP (PHP MySQL).



1 Mengenal Database 1.1 What is Database? Database adalah aplikasi yang digunakan untuk menyimpan data. Database dapat mengambil berbagai macam bentuk, seperti:    



Flat file, misalnya data yang disimpan dalam csv. Ini file, yaitu data disimpan dalam bentuk baris-baris, dimana satu baris menyimpan data yang lengkap, tetapi dengan jenis dan isi yang beragam (beda dengan baris pada table). Hierarchical database, dimana data yang disimpan memiliki hubungan secara hirarki, contoh nya penyimpanan file pada Microsoft Explorer Relational Database, dimana data disimpan dalam bentuk table-table yang memiliki hubungan secara dinamis. Untuk mengelola datanya, baik menyimpan maupun mengambil, membuat database dan table, dilakukan dengan menggunakan bahasa yang disebut Structured Query Language (SQL).



Pada masa ini, database yang paling banyak digunakan untuk aplikasi, termasuk aplikasi berbasis web, adalah RDBMS.



1.2 Mengenal Relational Database Management System Berikut adalah istilah yang sering dipakai dalam RDBMS:  



 



  



Database: koleksi dari tabel-table yang memiliki data saling terkait. Table: adalah data dalam bentuk matrik, yang terdiri dari baris dan kolom. Tabel dipakai untuk menyimpan informasi sejenis, misalnya: data pelanggan, data karyawan, data produk, dan seterusnya. Column/Field: Satu kolom mewakili satu jenis tipe data. Misalnya dalam tabel karyawan, ada kolom nama, nip, tanggal lahir, dan seterusnya. Row/Record: Baris mewakili satu satu set item data dari table tertentu. Misalnya, dari table karyawan, baris akan berisi data lengkap dari satu karyawan. Datanya bisa terdiri dari: nama, nip, alamat, tanggal_lahir, dan seterusnya. Primary Key: Merupakan kolom yang berisi kunci utama yang sifatnya unik. Setiap baris pada pada tabel memiliki satu kunci utama. Relationship: Yaitu hubungan antara 2 table atau lebih. Misalnya hubungan antara Table Order dan Order Detail. Hubungan antar table ini melalui satu kode kunci (key) Foreign Key: Kunci utama yang dipakai untuk Relationship dua tabel. Foreign key biasanya merupakan primary key dari suatu tabel, yang dijadikan kolom pada tabe lainnya. Contohnya



 



pada kasus table Order dan Order Detail, maka Foreign key adalah Primary Key table Order yang disimpan di table Order Detail. Referential Integrity: Referential Integrity akan meyakinkan bahwa foreign-key hanya berisi nilai yang menunjuk pada baris yang benar-benar ada. Index: Adalah sistem internal yang dipakai oleh sistem database untuk menemukan data secara cepat. Pada MySQL, sebuah Key biasanya juga merupakan Index.



2 Mendesain Database 2.1 Dasar-dasar Desain database yang baik. Mendesain database bukan hal sulit, akan tetapi harus mengikuti beberapa aturan/standar agar model data menjadi fleksibel dan membuat kita lebih mudah bekerja dengannya. Desain yang baik juga akan mempermudah kita dalam menjaga integritas data dan membuat laporan. Desain database yang baik dimulai dari mendaftar data apa saja yang ingin dimasukan ke dalam database dan apa yang ingin anda lakukan terhadap data tersebut. Jangan terlalu menganggap ringan karena jika ada yang terlewat dimasukan, terkadang harus mulai lagi dari awal.



2.2 Mengidentifiksi Entities Jenis informasi yang akan disimpan di dalam database disebut entities. Entities terdiri dari 4 jenis: orang, barang, event, dan lokasi. Semua entitas yang ingin dimasukan ke dalam database harus masuk dalam kategori ini. Jika ia tidak masuk dalam kategori itu, mungkin merupakan properti dari entities, atau sering juga disebut atribut. Sebagai contoh, sebuah database toko akan mempunyai entitas berikut:    



Toko adalah lokasi Penjualan adalah event Produk adalah barang Pelanggan adalah orang.



2.3 Mengidentifikasi Relationship Langkah berikutnya adalah membuat Relationship. Relationship menunjukan bagaimana hubungan antar entiti ini. Seperti hubungan: Pelanggan membeli Produk, Produk dengan Toko, Toko dengan Pelanggan, dan seterusnya. Hubungan relationship dapat dikelompokan dalam beberapa jenis:    



one-to-one, 1:1 one-to-many: 1:N many-to-one: M:1 many-to-many: M:N



Untuk kasus Toko, kita bisa membuat relationship seperti berikut: 



Pelanggan => Penjualan; => 1:N, 1 Pelanggan melakukan banyak transaksi Penjualan (1 transaksi hanya bisa dilakukan oleh 1 Pelanggan);



    



Pelanggan => Produk; => M:N, Banyak pelanggan dapat membeli 1 Produk, dan Banyak Produk dapat dibeli 1 Pelanggan Pelanggan => Toko; => M:N, Banyak Pelanggan bisa membeli di 1 toko, dan Banyak Toko bisa menjual ke 1 Pelanggan Penjualan => Produk; => M:N, Banyak Penjualan menjual 1 Produk, dan Banyak Produk bisa dijual dalam 1 transaksi Penjualan. Toko => Penjualan; => 1:N, 1 Toko bisa melakukan banyak Penjualan. (1 transaksi Penjualan hanya bisa dilakukan di 1 toko) Toko => Produk; => M:N, Banyak Toko bisa menyimpan 1 Produk, Banyak Produk bisa disimpan di satu Toko.



Hubungan antar tabelnya bisa kita gambar sebagai berikut :



Gambar 1. Hubungan relationship antar entity yang belum dioptimasi.



2.3.1



Relationship Redundant



Dari gambar diatas, kita melihat bahwa hubungan antara Pelanggan dan Produk dapat diwakili oleh Penjualan. Relationship ini disebut Redundant. Relasi seperti ini bisa dihapus. Hubungan Produk dan Penjualan yang berupa M:N (banyak ke banyak) pada prakteknya tidak bisa dilakukan langsung. Tetapi harus dilakukan melalui tabel antara. Begitu juga antara Produk dengan Toko. Untuk hubungan antara Produk dan Penjualan dapat dibuat tabel antara Penjualan Detil. Sedangkan hubungan antara Produk dan Toko, dapat dibuat tabel antara Stok. Berikut adalah model database yang telah diperbaiki:



Gambar 2. Hubungan relationship antar entity yang sudah dioptimasi dengan menghapus relationship redundant, dan tambahan 2 table: penjualan detail dan stok.



2.4 Mengidentifikasi Atribut Elemen data yang ingin kita simpan dalam sebuah entitas disebut atribut. Contoh atribut pada entitas Produk adalah nama produk, harga, tipe, pabrik. Pada Pelanggan, misanya nama dan alamat. Pada Penjualan misalnya produk, tanggal, jumlah, dan seterusnya.



2.4.1



Data Turunan



Data turunan adalah data yang diturunkan dari data atribut lain yang sudah disimpan. Contoh klasik dari data turunan misalnya ‘total penjualan’. Nilainya adalah total penjumlahan dari harga barang dikali jumlah pembelian, dalam kurun waktu tertentu. Karena nilainya bisa terus berubah seiring waktu, maka data turunan ini tidak perlu disimpan.



2.5 Assigning Keys 2.5.1



Primary Keys



Primary key (PK), atau kunci-utama, adalah satu atau lebih atribut yang mengidentifikasi entity secara unik. Jika PK terdiri dari dua atau lebih atribut, maka ia disebut composite-key. Semua atribut yang menjadi bagian dari PK harus memiliki nilai pada setiap record dan sifatnya harus unik (tidak boleh ada yang sama). Contoh PK misalnya nomor pelanggan, kode barang, dan seterusnya. Dalam membangun relationship antar entitas, PK dipakai sebagai referensi. Contohnya, relasi antara entitas Penjualan dan Penjualan-detil akan menggunakan PK Penjualan. Data atribut PK Penjualan akan disimpan sebagai kolom pada pada entitas Penjualan-detil.



Keberadaan PK Penjualan dalam PK Penjualan-detil disebut Foreign Key.



2.5.2 Menentukan Tipe Data untuk Atribut Setelah semua entitas dan relationship dibuat, proses berikutnya adalah menentukan tipe data. Setiap database biasanya mempunyai tipe data sendiri-sendiri. Akan tetapi ada beberapa yang sesuai standar. Misanya: CHAR, VARCHAR, TEXT, INT, FLOAT, dab DOUBLE. The standard data types that every database knows, and are most-used, are: CHAR, VARCHAR, TEXT, FLOAT, DOUBLE, and INT. Untuk database MySQL, akan dibahas pada bagian berikutnya.



3 Normalisasi Entitas Normalilsasi adalah proses untuk akan menjaga agar data tetap mempunyai integritas yang baik dengan menghilangkan kelompok data yang duplikat dan redundant. Normalisasi akan membuat model data menjadi fleksible dan reliable. Umumnya proses normalisasi dilakukan 3 tahap.



1. Normalisasi Pertama (1NF) Aturan normalisasi pertama, kolom dari table harus bersifat atomik-value, artinya satu cell tidak boleh menyimpan banyak nilai. Pada contoh dibawah, kolom Color menyimpan 2 nilai: red, green dan yellow, blue. Untuk memenuhi normalisasi pertama, kolom Color harus dikembangkan seperti Contoh 2.



Contoh 1. Tabel yang belum di normalisasi.



Contoh 2. Table yang memenuhi kriteria Normalisasi Pertama. 2. Normalisasi Kedua (2NF) Aturan Normalisasi kedua adalah adalah: a. Memenuhi semua syarat dari Normalisasi pertama. b. Menghilangkan subset data yang terdapat pada banyak baris kemudian meletakkanya pada table terpisah. c. Membuat relasi antara tabel yang dipisah ini, dengan menggunakan Foreign Key. Pada Contoh 3, kolom Purchase Location memiliki kolom dengan subset data yang berulang yaitu Long Angeles (diulang 2x) dan San Fransisko (diulang 2x). Karena itu tabel harus dipecah di buat relasi antara keduanya.



Contoh 3. Tabel belum memenuhi normalisasi kedua.



Contoh 4. Table yang telah memenuhi rule normalisasi kedua. 3. Normalisasi Ketiga (3NF) Kriteria normalisasi ketiga: a. Memenuhi kriteria normalisasi kedua. b. Menghilangkan kolom yang tidak bergantung pada primary-key tabel tersebut. Pada contoh di bawah ini, kolom GenreType tidak bergantung pada primary-key buku. Hanya price yang bergantung pada buku. Karena itu GenreType harus dihilangkan dan dalam contoh ini, dibuat menjadi table sendiri.



Contoh 5. Tabel yang belum sesuai normalisasi ketiga.



Contoh 6. Kolom GenreType dihilangkan karena tidak bergantung pada primary-key buku. Pada contoh ini, dibuat tabel baru Table_Genre.



4 Database MySQL MySQL adalah adalah Relational Database Management System (RDBMS) open-source yang paling terkenal. Ia juga merupakan database yang paling banyak dipakai untuk aplikasi berbasis web.MySQL adalah database yang cepat, mudah digunakan, dan dapat dipakai baik pada bisnis kecil ataupun yang berskala besar. MySQL dikembangkan, didukung, dan dipasarkan oleh perusahaan MySQL AB dari Swedia.



4.1 Mengapa memakai Database MySQL  



  



MySQL bersifat open-source dan gratis. Jika perlu dukungan teknis dapat memakai versi yang berbayar. MySQL adalah aplikasi database server powerfull dan cepat dan sanggup bekerja untuk aplikasi yang besar. Dapat mendukung lebih dari 50 juta baris. Batas default untuk ukuran file pada tabelnya adalah 4GB, walaupun masih bisa ditingkatkan jika sistem operasinya mendukung. Secara teoritis, ukuran file table bisa sampai 8 juta TeraByte. MySQL mendukung pemakaian bahasa Structured Query Languange (SQL). MySQL dapat dipasang banyak sistem operasi (Windows, Linux, Unix, MacOS, dst) dan bekerja dengan banyak bahasa pemrograman, seperti: PHP, PERL, C, C++, JAVA, etc. MySQL sangat luas dipakai sebagai database server untuk aplikasi web yang dikembangkan dengan PHP. Mayoritas hosting web di Internet memasang database MySQL server sebagai paket standar.



4.2 Menginstall MySQL di Windows Cara yang paling mudah memasang database MySQL di komputer kita adalah menggunakan paket aplikasi server web lokal. Misalnya: XAMPP, WAMP, LAMP, PHPTriad, dan lain sebagainya. Untuk menggunakan XAMPP, silahkan ikuti tutorial [NAMA TUTORIAL XAMPP]



Gambar 1. Contoh screenshot XAMPP Control Panel. Modul MySQL yang berwarna hijau menunjukan bahwa database server MySQL telah aktif. Paket XAMPP telah menyertakan aplikasi phpMySQL untuk mengelola database server.



4.3 MySQL Data Types Mendefinisikan field dalam table sangat penting agar database kita optimal. Pakailah tipe field dan ukuran data yang sesuai dengan kebutuhan. Misalnya, jika Anda perlu menyimpan 2 karakter, gunakan tipe field VARCHAR(2). Tipe VARCHAR adalah tipe data untuk menyimpan karakter, sedangkan 2 adalah jumlah karakter maksimal.



MySQL memiliki banyak tipe data. Mereka dibagi dalam 3 kategori: numeric, tanggal, dan teks (string). 4.3.1 Tipe Data Numerik MySQL menggunakan seluruh tipe data numeric standar ASCII, sehingga jika Anda menggunakan MySQL dari system database yang berbeda, definisinya akan tetap familiar. Berikut adalah beberapa tipe data numeric yang sering dipakai di MySQL. 







  















INT – Integer ukuran normal, nilai yang diperbolehkan adalah dari -2147483648 to 2147483647, bisa negative dan positif. Jika atribut di set UNSIGNED, maka range yang dapat dipakai adalah dari 0 sampai 4294967295. Integer ini dapat di set maksimal sampai 11 digit, atau INT(11). TINYINT – Tipe Integer yang sangat kecil, bisa negative dan positif. Untuk tipe SIGNED, nilai yang diizinkan adalah -128 sampai 127. Sedangkan untuk UNSIGNED dari 0 sampai 255. Tipe TINYINT dapat diset sampai 4 digit. SMALLINT – Tipe integer kecil, SIGNED memiliki range -32768 sampai 32767, dan UNSIGNED 0 sampai 65535. Tipe SMALLINT dapat di set sampai 5 digits. MEDIUMINT - Tipe integer menengah, SIGNED memiliki range -8388608 sampai 8388607, dan UNSIGNED 0 sampai 16777215. Tipe MEDIUMINT dapat di set sampai 9 digits. BIGINT –Tipe integer paling besar, SIGNED memiliki range -9223372036854775808 sampai 9223372036854775807, dan UNSIGNED 0 sampai 0 to 18446744073709551615. Tipe BIGINT dapat di set sampai 20 digits. FLOAT(M,D) – Tipe bilangan pecahan. Tipe ini tidak bisa unsigned. Anda dapat menentukan panjang tampilan dengan (M) dan jumlah decimal pada (D). Nilai default untuk (M,D) adalah (10,2). Nilai (10,2) artinya panjang total adalah 10 digit, termasuk decimal. Nilai presisi decimal bisa sampai 24. DOUBLE(M,D) – Tipe bilangan pecahan presisi dobel. Tipe ini tidak bisa unsigned. Anda dapat menentukan panjang tampilan dengan (M) dan jumlah decimal pada (D). Nilai default untuk (M,D) adalah (16,4). Nilai presisi decimal bisa sampai 53. Tipe REAL adalah sinonim untuk DOUBLE. DECIMAL(M,D) – Tipe DECIMAL tidak bisa unsigned. Pada tipe ini, setiap decimal akan mengambil satu byte. Menentukan nilai M dan D adalah keharusan (tidak ada nilai default). Tipe NUMERIC adalah nama lain dari DECIMAL.



4.3.2 Date and Time Types: MySQL memiliki tipe yang berkaitan dengan tanggal dan waktu sebagai berikut     



DATE – Tanggal dalam format YYYY-MM-DD (YYYY=tahun, MM=bulan, DD=tanggal/hari) antara 1000-01-01 sampai dengan 9999-12-31. Sebagai contoh, 1 Januari 2015 akan ditulis 2015-01-. DATETIME – Yaitu format kombinasi antara tanggal dan waktu. Formatnya adalah YYYY-MM-DD HH:MM:SS, dengan nilai antara 1000-01-01 00:00:00 sampai dengan 9999-12-31 23:59:59. TIMESTAMP – Timestamp adalah tipe field yang secara otomatis terisi sesuai dengan tanggal dan waktu saat data di insert/update. Timestamp mirip dengan format DATETIME. TIME – Menyimpan data waktu, dengan format HH:MM:SS format. YEAR(M) – Menyimpan tahun dalam format 2-digit dan 4-digit.



4.3.3 String Types: MySQL memiki beberapa jenis tipe data string. String adalah rangkaian karakter (bisa juga disebut teks). Tipe data string adalah tipe yang paling banyak dipakai dalam table MySQL. Pastikan anda menggunakan tipe data string sesuai kebutuhannya.   



   



CHAR(M) – String yang memiliki panjang tetap, antara 1 dan 255. Panjang tipe string dapat ditentukan dengan CHAR(M) dimana M adalah jumlah maksimal karakter. VARCHAR(M) – String dengan panjang variable antara 1-255. BLOB or TEXT – Tipe data String (rangkaian karakter) dengan maksimum panjang data 65535 characters. BLOBs singkatan dari "Binary Large Objects", dipakai untuk menyimpan data binary, seperti gambar. Sedangkan TEXT dipakai untuk menyimpan data yang berbasis “Karakter untuk dibaca”. Pada proses mengurutkan dan pencarian, tipe data TEXT akan berbasis karakter. Sedangkan BLOB berbasis nilai byte numerik. TINYBLOB or TINYTEXT – Tipe data BLOB atau TEXT yang berisi maksimal 125 karakter. MEDIUMBLOB or MEDIUMTEXT – Tipe data BLOB or TEXT dengan panjang maksimum 16777215 characters. LONGBLOB or LONGTEXT – Tipe data BLOB or TEXT dengan panjang maksimum 4294967295 characters. ENUM – Enum adalah tipe data string dengan nilai yang dipilih dari daftar tertentu yang diizinkan. Daftar tersebut ditentukan saat table dibuat. Misanya Anda ingin membuat datar untuk mengisi field jenis kelamin, tipenya: ENUM(“PRIA”,”WANITA”).



5 Structured Query Language 5.1 Apa itu SQL?   



SQL singkatan dari Structured Query Language SQL memungkinkan Anda mengakses dan memanipulasi data dalam database SQL mengikuti standar ANSI (American National Standards Institute)



5.2 Apa Bisa lakukan SQL?          



SQL dapat mengeksekusi query pada database SQL dapat mengambil data dari database SQL dapat menyisipkan record dalam database SQL dapat memperbarui record dalam database SQL dapat menghapus record dari database SQL dapat membuat database baru SQL dapat membuat table baru dalam database SQL dapat membuat prosedur yang tersimpan dalam database SQL dapat membuat view dalam database SQL dapat mengatur hak akses pada table, prosedur, dan view



Meskipun SQL adalah standar ANSI (American National Standards Institute), tetapi ada beberapa bagian yang berbeda dari bahasa SQL tergantung vendor databasenya.



Namun, untuk menjadi sesuai dengan standar ANSI, mereka semua mendukung setidaknya perintah utama dengan model sintak yang sama. Contoh perintah utama: : SELECT, UPDATE, DELETE, INSERT, WHERE, dan seterusnya.



5.3 Menggunakan SQL di Situs Web Anda Untuk membangun sebuah situs web yang mengekases data dari database, Anda akan perlu:   



Sebuah program database RDBMS (yaitu MySQL, MS Access, SQL Server, Oracle) Bahasa server-side scripting seperti PHP atau ASP Bahasa SQL untuk mendapatkan data yang Anda inginkan



6 Latihan dalam tutorial Dalam tutorial ini, kita akan menggunakan database sakila untuk latihan menulis SQL atau melakukan query ke database. Database sakila berisi data perusahaan fiktif yang bergerak dibidang penyewaan film. Database sakila dapat didownload di lokasi https://dev.mysql.com/doc/sakila/en/



Gambar 2. ERD Database Sakila



7 Jenis Perintah SQL Perintah dalam SQL dapat dibagi 2:



1. Data Definition Statement, yaitu kelompok perintah yang berkaitan dengan proses membuat struktur data, seperti membuat database, membuat dan menentukan tipe data field di table, merubah dan menghapus database dan table, dan seterusnya. 2. Data Manipulation Statement, yaitu perintah yang berkaitan dengan pengambilan (filter, sort, grup) dan perubahan data yang ada didalam table, tanpa merubah struktur sama sekali.



7.1 SQL Data Definition Statment Perintah yang termasuk dalam SQL Data Manipulation misalnya:      



CREATE DATABASE SELECT DATABSE DROP DATABASE CREATE TABLE DROP TABLE ALTER COMMAND



7.2 SQL Data Manipulation Statment Perintah yang termasuk dalam SQL Data Manipulation adalah:    



SELECT - ekstrak data dari database UPDATE - update data dalam database DELETE - menghapus data dari database INSERT INTO - menyisipkan data baru ke dalam database



8 SQL CREATE DATABASE Pernyataan CREATE DATABASE dipakai untuk membuat database SQL yang baru. 8.1.1 Syntax: CREATE DATABASE nama_database; Gunakan nama database yang unik/belum ada di dalam RDBMS MySQL. 8.1.2 Contoh: CREATE DATABASE database_baru; Perintah tersebut untuk membuat database baru dengan nama database_baru. Setelah dibuat, database tersebut dapat dicek dalam daftar menggunakan perintah berikut: SHOW DATABASES;



9 SQL DROP DATABASE Pernyataan SQL DROP DATABASE digunakan untuk menghapus database yang telah ada di dalam skema/RDBMS MySQL.



9.1.1 Syntax: DROP DATABASE DatabaseName; 9.1.2 Contoh: Misalnya kita akan menghapus database database_baru, maka perintah yang dipakai adalah: DROP DATABASE testDB; Catatan. Hati-hatilah dalam menggunakan perintah ini akan akan menghapus database dengan seluruh isinya dan datanya tidak bisa dikembalikan. When you have multiple databases in your SQL Schema, then before starting your operation, you would need to select a database where all the operations would be performed.



10 SQL USE DATABASE Perintah SQL USE dipakai untuk memilih database agar menjadi aktif. Dengan menggunakan USE ini, maka semua perintah yang dipakai pada saat melakukan query Data Manipulation akan secara default menggunakan database ini. 10.1.1 Syntax: USE nama_database;



11 SQL CREATE TABLE Perintah SQL CREATE TABLE digunakan untuk membuat table baru. Perintah tersebut termasuk pernyataan tentang daftar nama field dan tipe data yang dipakainya. 11.1.1 Syntax: Basic syntax of CREATE TABLE statement is as follows: CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) ); Berikut adalah contoh bagaimana menggunakan perintah CREATE TABLE untuk membuat table lengkap dengan field yang didefinisikan tipe-nya.



11.1.2 Contoh: Berikut adalah contoh untuk membuat table CUSTOMER lengkap dengan field: ID (Integer), NAME (teks), AGE (Integer), ADDRESS (teks), SALARY (decimal), dan ID sebagai primary key. CREATE TABLE CUSTOMERS( ID INT NAME VARCHAR (20) AGE INT ADDRESS CHAR (25) , SALARY DECIMAL (18, PRIMARY KEY (ID) );



NOT NULL, NOT NULL, NOT NULL, 2),



Setelah table dibuat, anda dapat memverifikasi hasil table tersebut dengan memanggil perintah: DESC CUSTOMERS;



12 SQL DROP Table Pernyataan SQL DROP TABLE dipakai untuk menghapus table dan seluruh datanya, index, triggers, permission, dan seterusnya. Perintah ini sebaiknya dilakukan dengan hati-hati karena data yang sudah dihapus tidak bisa dikembalikan lagi. 12.1.1 Syntax: DROP TABLE table_name;



13 SQL SELECT Statement Pernyataan SELECT digunakan untuk memilih data dari database. 13.1.1 SQL SELECT Sintaks SELECT column_name,column_name FROM table_name; dan SELECT * FROM table_name; 13.1.2 Contoh SELECT Kolom Pernyataan SQL berikut memilih kolom title dan description dari table film: SELECT title, description FROM `film`; 13.1.3 Contoh SELECT * Pernyataan SQL berikut memilih semua kolom dari table Customers: SELECT * FROM film;



14 SQL SELECT DISTINCT Statement Dalam table, kolom mungkin berisi banyak nilai ganda; dan kadang-kadang Anda hanya ingin menampilkan daftar nilai yang berbeda saja. Untuk menampilkan kolom secara unik (hanya yang berbeda saja) dari nilai kolom yang memiliki nilai ganda.



14.1 SQL SELECT DISTINCT Sintaks SELECT DISTINCT column_name,column_name FROM table_name; 14.1.1 Contoh SELECT DISTINCT Pernyataan SQL berikut dipakai untuk memilih kategori yang unik (hanya ditampilkan sekali) dari table film list: SELECT DISTINCT category FROM film_list;



15 SQL WHERE Clause Klausa WHERE digunakan untuk menampilkan record yang memenuhi kriteria tertentu saja.



15.1 Sintaks SQL WHERE SELECT column_name,column_name FROM table_name WHERE column_name operator value; 15.1.1 Contoh WHERE Pernyataan SQL berikut memilih film yang termasuk dalam kategori Horror SELECT * FROM film_list WHERE category="Horror" SELECT * FROM film_list WHERE id=1



15.2 Text Fields vs. Numeric Fields SQL memerlukan tanda kutip tunggal/ganda untuk nilai teks. Sedangkan untuk nilai angka, tidak perlu tanda kutip.



15.3 Operator WHERE Operator berikut digunakan dalam klausa WHERE: Operator Deskripsi = Sama



Tidak Sama. > Lebih Besar dari < Kurang dari >= Lebih Besar dari atau Sama (SELECT AVG(Price) FROM Products);



33 SQL COUNT() Function Fungsi COUNT() menghasilkan jumlah baris yang sesuai dengan kriteria tertentu. 33.1.1 SQL COUNT(column_name) Syntax Fungsi COUNT(column_name) menghasilkan jumlah baris pada kolom tertentu, dimana nilai NULL tidak akan dihitung: SELECT COUNT(column_name) FROM table_name;



33.1.2 SQL COUNT(*) Syntax Fungsi COUNT(*) menghasilkan jumlah seluruh record pada tabel: SELECT COUNT(*) FROM table_name; 33.1.3 Contoh Database Dalam contoh berikut, akan digunakan database Northwind. Berikut adalah data tabel "Orders": OrderID 10265 10266 10267



CustomerID 7 87 25



EmployeeID 2 3 4



OrderDate 1996-07-25 1996-07-26 1996-07-29



ShipperID 1 3 1



33.1.4 Contoh Pernyataan SQL menghitung jumlah order dari "CustomerID"=7 from untuk tabel "Orders": SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM Orders WHERE CustomerID=7; Pernyataan SQL menghitung jumlah total order dari tabel "Orders": SELECT COUNT(*) AS NumberOfOrders FROM Orders;



34 SQL MAX() Function Fungsi MAX() akan menghasilkan nilai terbesar dari kolom tertentu..



34.1 SQL MAX() Syntax SELECT MAX(column_name) FROM table_name; 34.1.1 Contoh Database Contoh berikut akan menggunakan data dari Northwind database. Berikut adalah data dari tabel "Products": ProductID 1 2 3 4 5



ProductName Chais Chang Aniseed Syrup Chef Anton's Cajun Seasoning Chef Anton's Gumbo Mix



SupplierID 1 1 1 2 2



CategoryID 1 1 2 2 2



Unit 10 boxes x 20 bags 24 - 12 oz bottles 12 - 550 ml bottles 48 - 6 oz jars 36 boxes



Price 18 19 10 21.35 25



34.1.2 Contoh Pernyataan SQL berikut menghasilkan nilai terbesar dari kolom "Price" dari table "Products": SELECT MAX(Price) AS HighestPrice FROM Products;



35 SQL MIN() Function Fungsi MIN() menghasilkan nilai terkecil dari kolom tertentu yang dipilih..



35.1 SQL MIN() Syntax SELECT MIN(column_name) FROM table_name; 35.1.1 Contoh Database Contoh berikut akan menggunakan database Nortwind. Berikut adalah contoh data dari table "Products": ProductID 1 2 3 4 5



ProductName Chais Chang Aniseed Syrup Chef Anton's Cajun Seasoning Chef Anton's Gumbo Mix



SupplierID 1 1 1 2 2



CategoryID 1 1 2 2 2



Unit 10 boxes x 20 bags 24 - 12 oz bottles 12 - 550 ml bottles 48 - 6 oz jars 36 boxes



Price 18 19 10 21.35 25



35.1.2 Contoh Pernyataan SQL berikut akan menghasilkan nilai terkecil dari kolom "Price" dari table "Products": SELECT MIN(Price) AS SmallestOrderPrice FROM Products;



36 SQL SUM() Function Fungsi SUM() menghasilkan jumlah total dari kolom bertipe numerik.



36.1 SQL SUM() Syntax SELECT SUM(column_name) FROM table_name; 36.1.1 Contoh Database Pada contoh di bawah ini, akan digunakan database Northwind. Berikut adalah data dari tabel "OrderDetails": OrderDetailID 1 2 3 4 5



OrderID 10248 10248 10248 10249 10249



ProductID 11 42 72 14 51



Quantity 12 10 5 9 40



36.1.2 Contoh Pernyataan berikut menghitung jumlah total dari kolom "Quantity" untuk tabel "OrderDetails": SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;



37 SQL GROUP BY Statement Fungsi Aggregate sering membutuhkan pernyataan GROUP BY. Fungsi GROUP BY dipakai secara bersamaan dengan fungsi aggregate untuk menghasilkan nilai yang dikelompokan berdasarkan kriteria tertentu.



37.1 SQL GROUP BY Syntax SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; 37.1.1 Contoh Database Pada contoh berikut, akan digunakan database Northwind. Berikut adalah data dari tabel "Orders": OrderID 10248 10249 10250



CustomerID 90 81 34



EmployeeID 5 6 4



OrderDate 1996-07-04 1996-07-05 1996-07-08



ShipperID 3 1 2



dan data berikut dari tabel "Shippers": ShipperID 1 2 3



ShipperName Speedy Express United Package Federal Shipping



Phone (503) 555-9831 (503) 555-3199 (503) 555-9931



data data dari "Employees: EmployeeID 1 2 3



LastName Davolio Fuller Leverling



FirstName Nancy Andrew Janet



BirthDate 1968-12-08 1952-02-19 1963-08-30



Photo EmpID1.pic EmpID2.pic EmpID3.pic



Notes Education includes a BA.... Andrew received his BTS.... Janet has a BS degree....



37.1.2 Contoh Contoh berikut menghitung order digrup berdasarkan shipper: SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders LEFT JOIN Shippers ON Orders.ShipperID=Shippers.ShipperID GROUP BY ShipperName; SELECT Shippers.ShipperName, Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM ((Orders INNER JOIN Shippers ON Orders.ShipperID=Shippers.ShipperID) INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID) GROUP BY ShipperName,LastName;



38 SQL HAVING Clause Klausa HAVING ditambahkan di SQL karena ada model query dimana WHERE tidak bisa dipakai bersamaan dengan fungsi aggregat.



38.1 SQL HAVING Syntax SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value; 38.1.1 Contoh Database Berikut adalah data dari tabel "Orders": OrderID 10248 10249 10250



CustomerID 90 81 34



EmployeeID 5 6 4



OrderDate 1996-07-04 1996-07-05 1996-07-08



ShipperID 3 1 2



dan data berikut dari tabel "Employees": EmployeeID 1 2 3



LastName Davolio Fuller Leverling



FirstName Nancy Andrew Janet



BirthDate 1968-12-08 1952-02-19 1963-08-30



Photo EmpID1.pic EmpID2.pic EmpID3.pic



Notes Education includes a BA.... Andrew received his BTS.... Janet has a BS degree....



38.1.2 Contoh Berikut adalah contoh SQL untuk mencari jumlah employee yang terdaftar memililki lebih dari 10 order. SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM (Orders INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID) GROUP BY LastName HAVING COUNT(Orders.OrderID) > 10; Berikut adalah untuk mencari employees "Davolio" or "Fuller" yang telah teregister lebih dari 25 orders. SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID WHERE LastName='Davolio' OR LastName='Fuller' GROUP BY LastName HAVING COUNT(Orders.OrderID) > 25;



39 PHP MySQL Sistem Aplikasi berbasis web menggunakan server-side script seperti PHP untuk mengakses database. PHPMySQL adalah salah satu sistem yang paling populer untuk jenis aplikasi web. Dengan PHP, kita dapat melakukan Query untuk memanipulasi database, menambah dan menghapus database, table, dan record, serta mengupdate dan melakukan select untuk mengambil data.



39.1 Database Queries Query adalah permintaan data ke server database. Permintaan ini dilakukan melalui perintahperintah dalam bentuk bahasa Structured Query Language (SQL). Dengan Query, kita bisa mendapatkan informasi yang sepesifik melalui data yang dihasilkan/dikeluarkan olehnya.



PHP 5 dan versi setelahnya, dapat bekerja dengan MySQL database menggunakan fungsifungsi MySQLi Extension (huruf "i" berasal dari “improved”). Manual tentang aplikasi-aplikasi ini bisa dilihat di http://php.net/manual/en/book.mysqli.php



39.2 Membuka koneksi PHP ke MySQL Sebelum melaukan query, kita harus melalukan proses koneksi ke server. Kode PHP untuk koneksi adalah sebagai berikut. 39.2.1.1 Contoh kode PHP Koneksi ke MySQL



39.3 Menutup Koneksi PHP ke MySQL Setelah melakukan koneksi, dan kemudian melakukan query, kita harus menutup koneksi. Koneksi ini akan terputus secara otomatis jika skrip selesai. Jika kita akan menutup koneksi sebelum skrip berkhir, kode nya adalah sebagai berikut. 39.3.1.1 Contoh kode PHP untuk menutup koneksi: mysqli_close($conn);



40 Operasi Standar PHP MySQL Sistem 40.1 Menambah Data Setelah melakukan koneksi, berikutnya adalah menambah data ke database. Caranya dengan melakukan query SQL menggunakan SQL INSERT. Berikut adalah aturan yang harus diikuti dalam melakukan query SQL dalam PHP:    



Di PHP, Query SQL harus dalam bentuk quoted” * Nilai string dalam SQL harus dalam bentuk quoted” Nilai numerik tidak perlu quoted Nlai NULL tidak harus dalam bentuk quoted



*) Dalam bentuk quoted artinya pernyataan yang dibuat berada dalam pasangan tanda petik satu ‘.. ’atau dua “...“. Pernyataan dalam bentuk quoted akan dianggap STRING oleh PHP. Pernyataan SQL yang dipakai adalah INSERT INTO: INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...) 40.1.1.1 Contoh kode PHP MySQL INSERT: