12 php mysql 2 study case

Post on 21-Mar-2017

154 views 1 download

Transcript of 12 php mysql 2 study case

PHP + MYSQL (2) MySQL & SQL Language

Toni Tegar Sahidi tonitegarsahidi@gmail.com STT STIKMA Internasional

slide ini & slide setelahnya akan menggunakan contoh

kasus Perpustakaan

Study Case

PHP & MYSQL #1 Setup MySQL #2 SQL #3 SELECT #4 INSERT

#1 Setup MySQL

1/6

Nyalakan Apache Web Server & MySQL Server

Buka PhpMyAdmin (buka browser, ketik http://localhost/phpmyadmin/)

Buat Database Baru

Klik ‘Databases’

Ketik Nama Database Yang ingin dibuat, Jika sudah, klik tombol Create

Akan muncul database yang baru saja dibuat

Klik nama Database Untuk mengelola Database tersebut

Ini adalah tampilan Manajemen Database Perpustakaan

Kolom sebelah kiri menunjukkan daftar Tabel dalam Database Perpustakaan

Saat ini masih belum ada satu tabel pun dalam Database Perpustakaan

Bikin Tabel Baru Yuk! Klik ‘Create Table’

Atau klik Structure

Isi name dengan nama Tabel, dan Number of Columns dengan jumlah Kolom. Jika sudah klik ‘Go’

Isi dengan Struktur Tabel Untuk masing-masing kolom

Pastikan bagian idbuku Seperti ini... Jika sudah, klik Save

Database, yang baru terbentuk

Klik Nama Tabel Untuk mengelola tabel tersebut

Mari menambahkan Beberapa Data Awal, Klik Insert

Klik Browse untuk melihat Isi tabel buku

Ulangi proses Insert Isi dengan data lain seperti ini

Cara Lain

Setelah membuat Database, Impor konten database

tersebut dari sebuah File

Database sudah terbentuk Tapi belum ada tabel

Klik Import

Pilih File database Untuk di import

Klik Go jika Sudah

Selanjutnya, kita akan bermain SQL Query

Pada PhpMyAdmin, SQL ditulis pada menu SQL

Klik SQL

Tempat kode SQL Query

#2 SQL

1/6

Structured Query Language

Bahasa yang dipakai oleh kebanyakan Relational DBMS

(termasuk MySQL) untuk Mengelola Database

Cakupan SQL

# Data Manipulation Language (DML)

# Data Definition Language (DDL)

# Triggers & Advance Integrity Constraint

# Embedded & Dynamic SQL

# Transaction Management

# Security

# Advanced Features

Data Manipulation Language

Cara melakukan Query

(mengambil) data, Insert, Delete,

dan Update

Data Definition Language

Pembuatan, Penghapusan, dan

Modifikasi Tabel & View

Di Slide ini kita belajar tentang bagaimana cara mendapatkan

(query) data

Dan Menambahkan Data

Mau Lebih?

Further references : http://www.w3schools.com/sql

#3 SQL SELECT

1/4

Berfungsi untuk mengambil data

Syntax : SELECT [DISTINCT] select-list FROM from-list WHERE qualification

Select-list

Nama kolom apa saja yang ingin

ditampilkan, isi dengan tanda

bintang untuk menampilkan semua

kolom

from-list

Tabel dan view asal data yang ingin

kita pakai

qualification

Membatasi data yang ingin

diseleksi (semisal data mahasiswa

yang umurnya diatas 24 tahun)

contoh..

Query 1

Menampilkan Semua isi tabel Buku

Query 1

SELECT

*

FROM

perpustakaan.buku;

Query 2

Menampilkan isi dari kolom judul dan

penulis dari tabel buku.

Query 2

SELECT

judul,penulis

FROM

perpustakaan.buku;

Query 3

Menampilkan isi kolom penulis dan penerbit

dari tabel buku

Query 3

SELECT

penulis, penerbit

FROM

perpustakaan.buku;

Multiset Rows (duplikasi dari record

yang berbeda)

Multiset Rows (duplikasi dari record

yang berbeda)

BUKAN Multiset Rows

Karena isi kolom kedua beda

pakai DISTINCT untuk menghindari duplikasi

tampilan data

Query 4

SELECT DISTINCT

penulis, penerbit

FROM

perpustakaan.buku;

BUKAN Multiset Rows

Karena isi kolom kedua beda

BUKAN Multiset Rows

Karena isi kolom kedua beda

Query 5

Menampilkan daftar semua penulis buku

Query 5

SELECT DISTINCT

penulis

FROM

perpustakaan.buku;

dimanakah WHERE?

Query 6

Menampilkan semua buku yang terbit di

tahun 2007

Query 6

SELECT

*

FROM

perpustakaan.buku

WHERE

buku.tahunterbit=2007;

Query 7

Menampilkan semua buku yang jumlah

koleksinya lebih dari sama dengan 5.

Query 7

SELECT

*

FROM

perpustakaan.buku

WHERE

buku.jumlahkoleksi>=5;

Query 8

Menampilkan semua buku yang nama

penulisnya memiliki kata “AN”

Query 8

SELECT

*

FROM

perpustakaan.buku

WHERE

buku.penulis LIKE „%AN%‟;

Jadi?

Select-list memilih apa saja yang ditampillkan,

SELECT * .... SELECT penulis, penerbit ... SELECT judul, tahunterbit ... SELECT judul, max(jumlahkoleksi) ...

from-list memilih dari tabel mana data akan ditampilkan

... FROM perpustakaan.buku ....

... FROM perpustakaan.anggota ....

... FROM bank.nasabah, bank.rekening ....

DISTINCT bersifat opsional, jika ia dipakai, query yang

ditampilkan akan tidak mengandung duplikasi

Tanpa Distinct & dengan Distinct

nilai setelah WHERE bersifat boolean (benar / salah)

Klausa WHERE bisa menggunakan Operator

Operator Description

= Equal

<> Not equal

> Greater than

< Less than

>= Greater than or equal

<= Less than or equal

BETWEEN Between an inclusive range

LIKE Search for a pattern

IN To specify multiple possible values for a column

WHERE hanya menampilkan data yang dalam klausanya

bernilai benar.

... WHERE buku.tahunterbit = 2007 ...

... WHERE buku.jumlahkoleksi >= 5 ...

... WHERE buku.penulis LIKE ‘%AN%’ ...

... WHERE TRUE ...

... WHERE nilai > 50 AND sks>90 ...

Lanjut!

ORDER BY

ORDER BY mengurutkan sesuai kolom

... WHERE qualification ORDER BY order-list [ASC|DESC]

Query 9

Menampilkan judul, penulis, penerbit sesuai

urutan tahun

Query 9

SELECT

judul, penulis, tahunterbit

FROM

perpustakaan.buku

ORDER BY

tahunterbit;

jika urutannya diBALIK

Query 10

Menampilkan judul, penulis, penerbit sesuai

urutan tahun

Query 10

SELECT

judul, penulis, tahunterbit

FROM

perpustakaan.buku

ORDER BY

tahunterbit DESC;

AGGREGATE OPERATOR

AGGREGATE OPERATOR min,max,count,avg,sum

Query 11

Menampilkan total jumlah koleksi buku.

Query 11

SELECT

SUM(jumlahkoleksi)

FROM

perpustakaan.buku;

Query 12

Menampilkan jumlah judul buku yang

dimiliki perpustakaa.

Query 12

SELECT

COUNT(jumlahkoleksi)

FROM

perpustakaan.buku;

Anda dapat menggunakan Operator LOGIKA dalam Where

(AND, OR, XOR, NOT)

Query 13

Menampilkan buku yang ditulis Hepi Andi

Bustomi yang diterbitkan oleh Qalam

Press.

Query 13

Menampilkan buku yang ditulis Hepi Andi

Bustomi yang diterbitkan oleh Qalam

Press.

Analisis :

- Selain Hepi Andi tidak boleh tampil

- Dari bukunya Hepi Andi, hanya terbitan

Qalam Press yang tampil

Query 13

SELECT judul,penulis,penerbit

FROM perpustakaan.buku

WHERE

penulis = „HEPI ANDI BUSTOMI

AND

Penerbit = „QALAM PRESS‟;

adakalanya request manusia, dan implementasi bahasa SQL

sedikit berbeda.

Lakukan ANALISIS!

Query 14

Menampilkan buku yang diterbitkan oleh

Republika dan Tarbawi Press

Query 14

Menampilkan buku yang diterbitkan oleh

Republika dan Tarbawi Press

ANALISIS :

# jika penerbit = republika -> tampilkan

# jika penerbit = tarbawi -> juga tampilkan

# selain dua diatas, abaikan

# meskipun request diatas pakai kata „dan‟

namun implementasi sbenarnya pakai „or‟

Query 14

SELECT judul,penulis,penerbit

FROM perpustakaan.buku

WHERE

penerbit = 'TARBAWI PRESS'

OR

penerbit = 'REPUBLIKA';

Anda bisa gunakan operator logika untuk menampilkan

nilai-nilai ‘diantara’

contoh:

Query 15

Tampilkan buku yang terbit antara tahun

2007 dan 2010

Query 15

Tampilkan buku yang terbit antara tahun

2007 dan 2010

ANALISIS :

# tampilkan buku dimana tahun>= 2007

DAN

# tampilkan buku dimana tahun<= 2010

Query 15

SELECT judul,penulis,penerbit, tahunterbit

FROM perpustakaan.buku

WHERE

tahunterbit >= 2007

AND

tahunterbit <= 2010

ORDER BY tahunterbit;

Selain cara diatas, Anda dapat menggunakan ... WHERE ...

BETWEEN ... AND ...

Query 15b

SELECT judul,penulis,penerbit, tahunterbit

FROM perpustakaan.buku

WHERE

tahunterbit

BETWEEN

2007 AND 2010

ORDER BY tahunterbit;

Alias

1/4

anda bisa memberikan sebuah kolom atau tabel, nama ALIAS untuk digunakan / ditampilkan

... namaAsli AS namaAlias ...

Alias tidak mengubah struktur tabel

*nama kolom/tabel aslinya tetap, tidak berubah, hanya hasil query saja

contoh..

TANPA Alias

Query 16

Menampilkan judul & penulis dari buku

Query 16

SELECT

buku.judul, buku.penulis

FROM

perpustakaan.buku;

DENGAN Alias untuk NAMA TABEL

Alias NAMA TABEL hanya untuk mempermudah

penulisan query...

Query 16b

Menampilkan judul & penulis dari buku

(Alias untuk Nama Tabel)

Query 16b

SELECT

b.judul, b.penulis

FROM

perpustakaan.buku AS b;

hasil query 16b sama dengan

query 16

TIPS : gunakan Alias nama Tabel Pada query yang kompleks dengan nama-nama yang

panjang

DENGAN Alias untuk NAMA KOLOM

Alias NAMA KOLOM mengganti nama kolom

yang ditampilkan

Query 17

Menampilkan judul & penulis dari buku

Pada header kolom, kata judul diganti „Judul

Buku‟, dan kata penulis diganti jadi

pengarang.

Query 17

SELECT

buku.judul AS 'Judul Buku',

buku.penulis AS PENGARANG

FROM

perpustakaan.buku;

GROUP BY

1/4

masih ingat Aggregate Function?

masih ingat Aggregate Function?

(sum, count, max, min, avg)

contoh

Query 18

Menghitung judul buku (count) yang ada di

perpustakaan.

Query 18

SELECT

COUNT(judul) AS 'jumlah judul'

FROM

perpustakaan.buku;

semisal kita ingin mengelompokkan jumlah judul

tersebut berdasarkan pengarangnya

Gunakan GROUP BY

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name

Query 19

Menghitung judul buku (count) yang ada di

perpustakaan, dan kelompokkan

berdasarkan Penulisnya.

Query 19

SELECT

penulis,

COUNT(judul) AS 'jumlah judul'

FROM

perpustakaan.buku

GROUP BY

penulis;

HAVING

1/4

masih tetap Aggregate Function

Anda tidak dapat menggunakan Aggregate Function didalam

Where ‘secara langsung’

contoh

Query 20

tampilkan penulis yang total jumlah

koleksinya lebih dari sama dengan 5

Query 20

SELECT

penulis, SUM(jumlahkoleksi)

FROM

perpustakaan.buku

GROUP BY

penulis

WHERE

SUM(jumlahkoleksi) >= 5;

Query 20

SELECT

penulis, SUM(jumlahkoleksi)

FROM

perpustakaan.buku

GROUP BY

penulis

WHERE

SUM(jumlahkoleksi) >= 5;

TIPS : gunakan : HAVING

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

Query 20

tampilkan penulis yang total jumlah

koleksinya lebih dari sama dengan 5

Query 20

SELECT

penulis, SUM(jumlahkoleksi)

FROM

perpustakaan.buku

GROUP BY

penulis

HAVING SUM(jumlahkoleksi) > 5;

#4 INSERT

1/4

SELECT hanya mengambil data

Gunakan INSERT untuk MENAMBAHKAN DATA

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

Query 21

INSERT INTO `perpustakaan`.`buku` (

`idbuku` ,

`judul` ,

`penulis` ,

`penerbit` ,

`tahunterbit` ,

`jumlahkoleksi`

)

VALUES (

NULL , 'DALANG', 'TONI TEGAR SAHIDI', 'REPUBLIKA',

'2014', '6„ );

Further references : http://www.slideshare.net/ tonitegarsahidi1/newsfeed

Further references : http://www.ilmukomputer.org

Further references : http://www.w3schools.com

next session

PHP + MySQL