Wednesday, December 14, 2016

Bab 4. PHP/MySQL: Langkah Demi Langkah



Pengantar MySQL






4.1 Menamai Elemen-Elemen Database

Sebelum Anda mulai bekerja dengan database, Anda perlu mengidentifikasi kebutuhan Anda. Tujuan dari aplikasi (atau situs Web, pada kasus ini) mendiktasi bagaimana database sebaiknya didesain. Dengan pemahaman ini, contoh-contoh pada bab ini dan pada bab selanjutnya akan menggunakan sebuah database yang menyimpan beberapa informasi registrasi user.

Ketika menciptakan database dan tabel, Anda memerlukan nama (atau secara formal dikenal dengan pengenal) yang jelas, berarti, dan mudah dikenali. Selain itu, pengenal
·         harus memuat huruf, angka, dan garis-bawah.
·         harus tidak sama dengan katakunci yang ada (seperti nama fungsi atau terminologi pada SQL).
·         berwatak case-sensitive.
·         tidak lebih panjang dari 64 karakter.
·         harus unik.

Aturan terakhir tersebut berarti bahwa sebuah tabel tidak bisa memiliki dua kolom dengan nama sama dan sebuah database tidak bisa memilki dua tabel dengan nama sama. Anda bisa menggunakan nama kolom sama pada dua tabel yang berbeda di dalam database yang sama.

Menamai elemen-elemen database
1.   Tentukan nama database. Ini merupakan langkah paling mudah. Anda hanya perlu memastikan bahwa nama harus unik. Jika Anda menggunakan server host, host Web Anda akan menyediakan sebuah nama database yang tidak sama dengan nama akun atau nama domain. Untuk contoh pertama ini, database akan dinamai dengan namasitus.

2.   Tentukan nama tabel. Nama tabel harus unik di dalam database ini. Untuk contoh ini, tabel dinamai dengan pengguna, yang menyimpan semua informasi tentang registrasi user.

3.   Tentukan nama kolom untuk tiap tabel. Tabel pengguna akan memiliki beberapa kolom untuk menyimpan ID user, nama depan, nama belakang, alamat email, password, dan tanggal registrasi. Tabel 4.1 menunjukkan kolom-kolom ini, dengan data contoh. Karena MySQL memiliki fungsi dengan nama password, Anda perlu mengubah nama kolom password menjadi pass.

TABEL 4.1 Tabel pengguna akan memiliki enam kolom untuk menyimpan rekaman-rekaman seperti data contoh di sini.
Nama Kolom
Contoh
id_user
23
nama_depan
kristof
nama_belakang
sintong
email
id@gmail.com
pass
kritof2014
tanggal_registrasi
2014-12-31 19:21:03



4.2 Memilih Tipe Kolom
Setelah Anda mengidentifikasi semua tabel dan kolom yang diperlukan oleh database, Anda perlu menentukan tipe data tiap kolom. Ketika menciptakan sebuah tabel, MySQL mensyaratkan bahwa Anda perlu secara eksplisit menyatakan jenis informasi yang akan disimpan pada tiap kolom. Ada tiga tipe primer, yang ada pada tiap aplikasi database:
·         Text
·         Number
·         Date dan Time

Di dalam tiap tipe data primer tersebut, ada sejumlah varian yang dapat Anda gunakan. Dengan memilih tipe data pada kolom secara benar, Anda tidak hanya mendiktasi informasi apa yang dapat disimpan tetapi juga bagaimana tipe data ini memengaruhi kinerja dari database. Tabel 4.2 mencantumkan sejumlah tipe data yang tersebut pada MySQL, berapa banyak ruang memori yang dibutuhkan, dan penjelasan singkat dari tiap tipe data.


TABEL 4.2 Sejumlah tipe data pada MySQL yang dapat digunakan untuk mendefinisikan kolom. Perhatian: ada beberapa tipe data yang tersedia pada versi tertentu dari MySQL.
Tipe Data
Ukuran
Penjelasan
CHAR[pjg]
sebanyak pjg byte
Sebuah bidang panjang-tetap dari 0 sampai 255 karakter.
VARCHAR[pjg]
Panjang string + 1 atau 2 byte
Sebuah bidang panjang-variabel dari 0 sampai 65535 karakter.
TINYTEXT
Panjang string + 1 byte
Sebuah string dengan panjang maksimum 255 karakter.
TEXT
Panjang string + 2 byte
Sebuah string dengan panjang maksimum 65535 karakter.
MEDIUMTEXT
Panjang string + 3 byte
Sebuah string dengan panjang maksimum 16777215 karakter.
LONGTEXT
Panjang string + 4 byte
Sebuah string dengan panjang maksimum 4294967295 karakter.
TINYINT[pjg]
1 byte
Rentang dari -128 sampai 127 atau 0 sampai 255 (unsigned)
SMALLINT[pjg]
2 byte
Rentang dari -32768 sampai 32767 atau 0 sampai 65535 (unsigned)
MEDIUMINT[pjg]
3 byte
Rentang dari -8388608 sampai 8388607 atau 0 sampai 16777215 (unsigned)
INT[pjg]
4 byte
Rentang dari -2147483648 sampai 2147483647 atau 0 sampai 4294967295 (unsigned)
BIGINT[pjg]
8 byte
Rentang dari –9223372036854775808 sampai 9223372036854775807 atau 0 sampai 18446744073709551615 (unsigned)
FLOAT[pjg, desimal]
4 byte
Angka kecil dengan titik desimal
DOUBLE[pjg, desimal]
8 byte
Angka besar dengan titik desimal
DECIMAL[pjg, desimal]
pjg + 1 atau 2 byte
Sebuah DOUBLE yang disimpan sebagai string
DATE
3 byte
Dalam format YYYY-MM-DD
DATETIME
8 byte
Dalam format YYYY-MM-DD HH:MM:SS
TIMESTAMP
4 byte
Dalam format YYYYMMDDHHMMSS; rentang yang dapat diterima sampai akhir tahun 2037
TIME
3 byte
Dalam format HH:MM:SS
ENUM
1 atau 2 byte
Singkatan dari enumeration, yang berarti bahwa tiap kolom dapat memiliki beberapa nilai.
SET
1, 2, 3, 4, atau 8 byte
Sama seperti ENUM kecuali bahwa tiap kolom dapat memiliki lebih dari satu nilai.


Memilih tipe data kolom
1.   Identifikasi apakah tipe sebuah kolom harus text, number atau date/time (Tabel 4.3). Ini merupakan langkah yang normal dan mudah, tetapi Anda perlu sespesifik mungkin. Sebagai contoh, tanggal 2014-08-02 (format MySQL) dapat disimpan sebagai sebuah string menjadi August 2, 2014. Tetapi jika Anda ingin menggunakan format tanggal yang tepat, Anda akan memiliki database yang lebih bagus dan berguna (akan Anda lihat bahwa ada fungsi yang dapat mengubah 2014—8-2 menjadi August 2, 2014).

TABEL 4.3 Tabel pengguna dengan tipe-tipe data generik.
Nama Kolom
Tipe data umum
id_user
number
nama_depan
text
nama_belakang
text
email
text
pass
text
tanggal_registrasi
date/time

2.   Pilih subtipe yang paling sesuai untuk tiap kolom (Tabel 4.4). Untuk contoh ini, id_user ditetapkan sebagai MEDIUMINT, yang membolehkan sampai sejumlah 17 juta nilai. Kolom tanggal_registrasi ditetapkan sebagai DATETIME. Ia dapat menyimpan tanggal dan waktu spesifik saat user melakukan registrasi. Ketika memutuskan memilih sub-subtipe yang benar dari date, pertimbangkan apakah Anda akan atau tidak akan mengakses tanggal saja, waktu saja, atau keduanya. Kolom-kolom lain akan ditetapkan sebagai VARCHAR karena panjangnya berbeda dari rekaman yang satu ke rekaman lain. Satu-satunya pengecualian adalah kolom password, yang berupa karakter dengan panjang tetap, jadi Anda memilihnya sebagai CHAR.

TABEL 4.4 Tabel pengguna dengan tipe-tipe data spesifik.
Nama Kolom
Tipe data spesifik
id_user
MEDIUMINT
nama_depan
VARCHAR
nama_belakang
VARCHAR
email
VARCHAR
pass
CHAR
tanggal_registrasi
DATETIME

3.   Tetapkan panjang maksimum dari kolom text (Gambar 4.5).

TABEL 4.5 Tabel pengguna dengan atribut panjang karakter.
Nama Kolom
Tipe data spesifik
id_user
MEDIUMINT
nama_depan
VARCHAR(20)
nama_belakang
VARCHAR(40)
email
VARCHAR(60)
pass
CHAR(40)
tanggal_registrasi
DATETIME



4.3 Memilih Properti Lain Pada Kolom
Disamping menentukan tipe data dan ukuran untuk tiap kolom, Anda juga perlu mempertimbangkan beberapa properti lain.

Pertama, tiap kolom, apapun tipe datanya, dapat didefinisikan sebagai NOT NULL. Nilai NULL, dalam database dan pemrograman, ekivalen dengan mengatakan bahwa bidang tidak memiliki nilai. Idealnya, dalam perancangan database yang benar, setiap kolom pada tiap baris pada tiap tabel sebaiknya memiliki nilai, meskipun hal ini tidak harus. Untuk memaksa suatu nilai pada sebuah bidang, tambahkan deskripsi NOT NULL pada tipe data kolomnya. Sebagai contoh, jumlah rupiah dapat dideskripsikan sebagai

harga DECIMAL(5,2) NOT NULL

Ketika menciptakan sebuah tabel, Anda dapat pula menetapkan nilai default untuk tiap kolom, tanpa memandang tipe datanya. Pada kasus dimana mayoritas rekaman memiliki nilai yang sama pada sebuah kolom, penetapan nilai default tidak lagi mengharuskan Anda untuk menetapkan sebuah nilai ketika menyisipkan baris-baris baru. Sebagai contoh,

gender ENUM('M', 'F') default 'F'

Pada kolom gender, jika tidak ada nilai yang ditetapkan ketika menambah sebuah rekaman baru, nilai default ‘F’ akan digunakan.

Tipe data number dapat diberikan UNSIGNED, yang membatasi data yang akan disimpan hanya berupa angka positif atau nol. Ini juga efektif dapat menggandakan rentang nilai positif yang dapat disimpan. Anda juga dapat menggunakan bendera ZEROFILL pada tipe number. Ini menandakan bahwa kolom dengan tipa data number akan diganjal dengan nol ketika memiliki ruang ekstra.

Terakhir, ketika merancang sebuah database, Anda juga bisa menggunakan properti AUTO_INCREMENT untuk menciptakan indeks.

Memilih properti lain pada kolom
1.   Identifikasi kunci utama atau kunci primer (primary key). Kunci primer ini sangat penting. Kunci primer, yang selalu berupa angka, merupakan cara unik untuk mengacu ke rekaman tertentu. Pada tabel pengguna, kolom id_user akan dipakai sebagai kunci primer, yang dipakai untuk mengacu atau mengakses rekaman tertentu.

2.   Identifikasi kolom-kolom mana yang tidak bisa memiliki nilai NULL. Pada contoh ini, setiap bidang diperlukan atau disyaratkan (tidak dapat berupa NULL).

3.   Tetapkan nilai default untuk kolom tertentu. Pada contoh di sini, tidak ada kolom yang mengimplikasi nilai default. Lihat Tabel 4.6.

TABEL 4.6 Deskripsi akhir dari tabel pengguna. Bidang (kolom) id_user didefinisikan sebagai kunci primer dengan properti AUTO_INCREMENT.
Nama Kolom
Tipe data spesifik
id_user
MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT
nama_depan
VARCHAR(20) NOT NULL
nama_belakang
VARCHAR(40) NOT NULL
email
VARCHAR(60) NOT NULL
pass
CHAR(40) NOT NULL
tanggal_registrasi
DATETIME NOT NULL



4.4Menggunakan phpMyAdmin
phpMyAdmin (www.phpmyadmin.net) adalah salah satu aplikasi PHP yang paling populer dan terbaik. Tujuannya adalah untuk menyediakan antarmuka bagi sebuah server MySQL.

Pengaksesan phpMyAdmin dilakukan melalui browser Web Anda (Gambar 4.1). URL yang Anda gunakan tergantung situas Anda. Jika Anda menjalankannya di komputer sendiri, URL-nya adalah http://localhost/phpmyadmin. Jika Anda menjalankannya pada sebuah situs host, host Web Anda akan menyediakan URL yang sesuai.




Gambar 4.1 Halaman phpMyAdmin (ketika dikoneksikan sebagai user MySQL yang dapat mengakses beberapa database).


Perangkat phpMyAdmin ini  dapat Anda pakai untuk menciptakan database dan tabel secara visual. Hasilnya dapat Anda lihat langsung di sisi kiri jendela ini.













No comments:

Post a Comment