Pemrograman Web
Oleh :
dwi sakethi
dwijim@fmipunila.ac.id
www.dwijim.wordpress.com
mBandar Lampung
2019
Daftar Isi
1 Basis Data 1
1.1 Kesiapan Perangkat Lunak . . . . . . . . . . . . . . . . . . . . . 1
1.2 Akses ke Perangkat Lunak . . . . . . . . . . . . . . . . . . . . . 2
1.3 MariaDB Di GNU Linux . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Penentuan Tipe dan Ukuran Field . . . . . . . . . . . . . . . . 4
1.5 Field NPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Sistem Pengkodean . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Contoh Kasus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
i
ii DAFTAR ISI
Daftar Tabel
iii
iv DAFTAR TABEL
Daftar Gambar
v
Bab 1
Basis Data
1
2 BAB 1. BASIS DATA
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the current input statement.
mysql>
Sedangkan untuk akses pada sistem operasi Microsoft Windows, contohnya
seperti berikut:
C:\xampp\mysql\bin>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
1.3. MARIADB DI GNU LINUX 3
Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the current input statement.
mysql>
1. mysql -u root -p
Akses ke database server dengan menggunakan nama pemakai root.
4. flush privileges;
Menerapkan pengaturan hak akses.
Contohnya seperti berikut:
dwijim@debian:~$ su
Password:
root@debian:/home/dwijim# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
4 BAB 1. BASIS DATA
Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the current input statement.
MariaDB [(none)]>
Pada kasus dengan obyek yang sama, namun struktur tabel seperti berikut:
Pertanyaan-pertanyaan:
1. Pada tabel sebelumnya, ukuran dari NPM adalah 10, sedangkan di dalam
tabel ini, ukuran NPM adalah 12. Mana yang lebih tepat?
4. NPM biasanya menjadi primary key. Pada contoh tersebut npm var-
char(12), mengapa Null-nya bisa YES?
7. Mengapa di dalam tabel tabel transkrip ini tidak ada kolom untuk nama
mahasiswa?
8. Apakah tipe dan ukuran yang lebih tepat untuk semester varchar(4)?
1.6. SISTEM PENGKODEAN 7
+--------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+---------------+------+-----+---------+----------------+
| Nomor_Data | int(7) | NO | PRI | NULL | auto_increment |
| Nama_Lengkap | char(68) | NO | | - | |
| Jenis_Kelamin | enum(’L’,’P’) | NO | | NULL | |
| Tempat_Lahir | char(46) | NO | | - | |
| Tanggal_Lahir | date | NO | | NULL | |
| Alamat | varchar(123) | YES | | - | |
| RT | char(3) | YES | | - | |
| RW | char(3) | YES | | - | |
| Kecamatan | char(3) | YES | | - | |
| Kelurahan | int(5) | NO | | 0 | |
| Status_Marital | char(1) | YES | | NULL | |
| Suku | int(3) | YES | | 0 | |
| Tingkat_Pendidikan | tinyint(1) | YES | | 0 | |
| Program_Studi | int(4) | YES | | 0 | |
| Golongan_Darah | int(1) | YES | | 0 | |
| Telpon | char(23) | YES | | - | |
+--------------------+---------------+------+-----+---------+----------------+
BAB 1. BASIS DATA
1.7. CONTOH KASUS 9
Pertanyaan-pertanyaan:
2. Jika suatu kolom memiliki sifat auto increment seperti Nomor Data mi-
salnya, apakah isinya ada kemungkinan seperti ini: 1, 2, 3, 4, 6.
4. Suku berisi kode-kode suku yang ada di Indonesia. Tipe apa dan ukuran
berapa yang paling hemat tapi masih tetap dapat memenuhi kebutuhan
kode suku?
5. Untuk kolom Golongan Darah, tipe mana yang lebih tepat int(1) atau
char(1)?
Inti dari permasalah yang disampaikan di sini adalah bahwa penentuan tipe
dan ukuran dari suatu kolom hendaklah disesuaikan betul dengan kebutuhan
yang ada. Bukan dengan sembarangan.
Selain itu, isi dari suatu kolom (field ) juga harus diperhatikan. Kekeliruan
di dalam menentukan isi suatu kolom (field ) dapat menyebabkan kesalahan
pada sistem.
Untuk mengetahui ukuran suatu tabel perintah SQL-nya:
<?php
/* -----------------------------------------
program untuk mengisi tabel dengan banyak
data, tujuannya untuk mengetahui efek dari
penentuan tipe data yang berbeda ...
10 BAB 1. BASIS DATA
--
-- Database: ‘karakter‘
--
-- ------------------------------------------
--
-- Table structure for table ‘karakter10‘
--
-- ------------------------------------------
--
-- Table structure for table ‘karakter12‘
--
-- ------------------------------------------
--
-- Table structure for table ‘varchar12‘
--
----------------------------------------- */
mysql_connect(’localhost’,’root’,’dwisakethi’);
1.7. CONTOH KASUS 11
mysql_select_db(’karakter’);
// menentukan database yang digunakan
/* -----------------------------------------
mengisi data dengan karakter angka
dari 1 sampai dengan 1500
----------------------------------------- */
for ($i=1;$i<=1500;$i++)
{
$kueri = "insert into karakter10 (kode)
values (’$i’)
";
// kueri untuk isi data ke tabel karakter10
mysql_query($kueri);
// menjalankan kueri
mysql_query($kueri);
// menjalankan kueri
mysql_query($kueri);
// menjalankan kueri
echo "$i-";
}
/* -----------------------------------------
data dan ukuran tabel setelah diisi data
+------------+--------+
3 rows in set (0.00 sec)
1.8 SQL
Untuk materi SQL ini, basis data yang digunakan bernama latihan dengan
beberapa tabel seperti:
14
+--------------------+--------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------------------------+------+-----+---------+----------------+
| Nomor_Data | int(7) | NO | PRI | NULL | auto_increment |
| ID_SIK | int(7) | YES | | 0 | |
| Nama_Lengkap | char(68) | NO | | - | |
| Jenis_Kelamin | enum(’L’,’P’) | NO | | NULL | |
| Tempat_Lahir | char(46) | NO | | - | |
| Tanggal_Lahir | date | NO | | NULL | |
| Alamat | varchar(123) | YES | | - | |
| RT | char(3) | YES | | - | |
| RW | char(3) | YES | | - | |
| Kecamatan | char(3) | YES | | - | |
| Kelurahan | int(5) | NO | | 0 | |
| Status_Marital | char(1) | YES | | NULL | |
| Suku | int(3) | YES | | 0 | |
| Tingkat_Pendidikan | tinyint(1) | YES | | 0 | |
| Program_Studi | int(4) | YES | | 0 | |
| Golongan_Darah | int(1) | YES | | 0 | |
| Telpon | char(23) | YES | | - | |
| Email | char(46) | YES | | - | |
| Kelas_Sekarang | enum(’Kelas 1’,’Kelas 2’, | YES | | NULL | |
| | ’Kelas 3’,’Kelas 4’,’Kelas 5’) | | | | |
+--------------------+--------------------------------+------+-----+---------+----------------+
BAB 1. BASIS DATA
1.8. SQL 15
+-----------------------+--------------+------+-----+---------+-----------
| Field | Type | Null | Key | Default | Extra
+-----------------------+--------------+------+-----+---------+-----------
| kode_bidang_pekerjaan | int(2) | NO | PRI | NULL | auto_incre
| nama_bidang_pekerjaan | varchar(127) | NO | | NULL |
+-----------------------+--------------+------+-----+---------+-----------
+------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| kode | int(3) | NO | PRI | NULL | |
| keterangan | char(27) | NO | | NULL | |
+------------+----------+------+-----+---------+-------+
+------+------------+
| kode | keterangan |
+------+------------+
| 1 | Jawa |
| 2 | Sunda |
| 3 | Bali |
| 4 | Batak |
| 5 | Madura |
| 6 | Banten |
| 7 | India |
| 8 | Minang |
| 9 | Palembang |
| 10 | Melayu |
| 11 | Ambon |
| 12 | Manado |
| 13 | Betawi |
| 14 | Kutai |
| 15 | Cina |
| 16 | Lampung |
+------+------------+
16 BAB 1. BASIS DATA
+-------+-----------------------+
| 106 | Keperawatan |
| 107 | Keuangan |
| 108 | Data Control Keuangan |
| 109 | Asuransi |
| 110 | PNS |
| 111 | Dokter Gigi |
| 112 | Karyawan BUMN |
| 113 | PETERNAKAN |
+-------+-----------------------+
Kemudian tabel manusia diisi dengan data secukupnya, tapi lebih banyak
dan bervariasi, akan lebih baik.
Pertanyaan-pertanyaan untuk berlatih SQL.
2. Apakah nama field untuk menyimpan nomor telepon pada tabel manu-
sia?
8. Siapakah yang lahir pada bulan Mei? Lahirnya tanggal berapa saja?
11.
14.
1. show tables
2. desc manusia
4. select nama lengkap from manusia where nama lengkap like ’%lia%’
5. select count(nama lengkap) from manusia where nama lengkap like ’m%’
11.
12. select nama,alamat asal from tabel mahasiswa where nama like ’%rang-
kas%’
14.
18 BAB 1. BASIS DATA
Daftar Pustaka
19