Anda di halaman 1dari 14

LAPORAN PEMROGRAMAN WEB

PERTEMUAN KE 3 DAN 4




Di Susun Oleh :
Nama : Mohamad Hanafi
Nim : 095410134
Jurusan : Teknik Informatika/Strata-1



LABORATORIUM TERPADU
Sekolah Tinggi Manajemen Informatika dan Komputer
AKAKOM
Yogyakarta
2012

PERTEMUAN KE 3
MYSQL

A. PEMBAHASAN
Sebelum membahas lebih lanjut tentang apa yang telah dipratekkan pada praktikum alangkah
baiknya kita mengetahui tentang apa itu MySQL.
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang
didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna
dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak
boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan
salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query
Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau
seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah
secara otomatis.
Praktek yang dilakukan pada praktikum sebagai berikut :
Untuk praktek yang pertama ini ada tools yang disediakan yaitu Appserv dan Command Prompt
pada femiliarnya kita semua menggunakan Appserv atau kita sering sebut dengan MySQL, kita
bisa menggunakan CMD tapi ya gitu agak ribet seperti yang saya praktikan pada praktikumnya :
C:\Documents and Settings\Student>mysql -hlocalhost -uroot -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.45-community-nt-log MySQL Community Edition
(GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Untuk perintah mysql -hlocalhost -uroot p ini untuk menghubungkan atau masuk
kedalam MySQL dengan nama user yaitu root dan setelah itu password yang akan diminta.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
| test |
+--------------------+
5 rows in set (0.00 sec)
Sebelum kita membuat suatu databases alangkah baiknya kita membuka dahulu isi database,
supaya apa....!!! agar kita dalam menciptakan nama dalam database tidak sama dengan nama
yang sudah pernah dibuat pada sebelumnya.
mysql> create database kantor;
Query OK, 1 row affected (0.03 sec)

Perintah ini digunakan untuk menciptakan nama dari database.
Setelah kita menciptakan database maka kita selanjutnya menggunakan nama database yang telah
dibuat setelah itu menciptakan nama tabel dengan aturan seperti berikut :
mysql> use kantor;
Database changed
mysql> create table pegawai (
-> nip char(10) not null primary key,
-> nama varchar(40) not null,
-> alamat varchar(80) not null,
-> sex char(1),
-> gaji int default 0);
Query OK, 0 rows affected (0.08 sec)

Dalam menciptakan tabel ada beberapa tipe data yang sering digunakan itu ialah char dan varchar
perbedaaan dari kedua ini sangat hampir tidak ketahuan kalau menurut buku yang saya baca
kalau varchar untuk data karakter / alfa dengan ukuran variatif numerik sedangkan char sesuai
dengan lebar data relatif sama misalnya no_pegawai, no_mahasiswa, kode_barang biasanya
degunakan untuk kunci primer dan mampu mempercepat pelacakan.
Untuk tabel pegawai diatas mengapa nip dikasih char dari fakta yang kita lihat ialah nip tidak
terlalu menggunakan angka maupun huruf yang besar jadi seumpama kita masukin dengan
varchar itu namanya pemborosan memori. Untuk nama menggunakan varchar ini sangat tepat
soalnya kenapa dari nama sendiri dalam kasus nyata membutuhkan huruf yang lumayan panjang
sama juga dengan alamat yang ada diatas. Untuk sex maksudnya jenis kelaminnya jangan berfikit
yang aneh-aneh yahhhh.....??? kenapa dalam sex tersebut diberi char tapi ukurannya Cuma 1
inilah yang dinamakan pengiritan memori kita berfikir secara logis dalam dunia nyata jenis
kelamin ada 2 yaitu kalau tidak pria ya wanita. Dan untuk gaji mengapa menggunakan tipe
datanya int soalnya disini pasti menggunakan bilangan atau numerik.

mysql> insert into pegawai value("001","Totok","Jalan Raya 10
Yogya","P",15000),
-> ("002","Andi","Tahunan UH 1 / 234 Yogya","P",4000000),
-> ("003","Siti","jalan berbatu 5 solo","W",750000),
-> ("004","Rudi","Kanoman RT 2 RW 1 Yogya","P",900000);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0

Perintah diatas berfungsi untuk memasukkan data kedalam tabel sedangkan yang ada dalam
kurung itu sesuai dengan isian pembuatan tabel (nama variabelnya) jika ada yang diberi tanda
petik ganda maka itu varchar maupun char adapun yang tidak memakai tanda petik ganda maka
itu bertipe int untuk kasus diatas.



Untuk menampilan data semua yang ada pada pegawai seperti tampilan yang ada di atas pada
sintak ada dua yang satu menggunakan titik koma (bisa juga diganti dengan \g) dan
menggunakan \G apa perbedaan dari kedua tersebut. Perbedaanya ialah untuk yang menggunakan
titik koma atau \g itu menampilkan barisnya menggunakan tabel jadi terlihat rapi sedangkan
untuk yang \G itu menampilkan barisnya tanpa menggunakan tabel.



Untuk menampilakn berdasarkan nama dan alamat bisa dilihat pada perintah yang pertama dan
untuk mengurutkan data bisa kita gunakan perintah ORDER BY seperti pada sintak yang kedua.
Untuk ORDER BY sendiri debagi menjadi 2 macam yaitu :
ASC berfungsi saebagai urut naik pengertainnya ialah untuk mengurutkan dari bilangan kecil
ke besar (secara default digunakan)
DESC berfungsi sebagai urut turun pengertiannya ialah untuk mengurutkan dai bilangan besar
ke kecil. Untuk sintak bisa kita lihat seperti berikut :
mysql> select nama, alamat, gaji from pegawai ORDER BY gaji;
+-------+--------------------------+---------+
| nama | alamat | gaji |
+-------+--------------------------+---------+
| Siti | jalan berbatu 5 solo | 750000 |
| Rudi | Kanoman RT 2 RW 1 Yogya | 900000 |
| Totok | Jalan Raya 10 Yogya | 1500000 |
| Andi | Tahunan UH 1 / 234 Yogya | 4000000 |
+-------+--------------------------+---------+
4 rows in set (0.00 sec)

mysql> select nama, alamat, gaji from pegawai ORDER BY gaji DESC;
+-------+--------------------------+---------+
| nama | alamat | gaji |
+-------+--------------------------+---------+
| Andi | Tahunan UH 1 / 234 Yogya | 4000000 |
| Totok | Jalan Raya 10 Yogya | 1500000 |
| Rudi | Kanoman RT 2 RW 1 Yogya | 900000 |
| Siti | jalan berbatu 5 solo | 750000 |
+-------+--------------------------+---------+
4 rows in set (0.00 sec)

Dan ada beberapa sintak dari MySQL yang dapat menampilkan data dengan kriteria tertentu
seperti pada tampilan berikut ini :



Untuk sintak yang pertama kita disajikan dengan menampilkan nama alamat dan gaji tetapi data
tersebut berdasarkan atas nama siti.
Dan untuk sintak yang kedua kita diminta untuk menampilkan semua data yang ada dipegawai
tetapi berdasarkan jenis kelamin pria pada sintak jenis kelamin seumpama dari anda ingin
merubah jenis kelamain diganti dengan huruf kecil ataupun diganti dengan tanda petik dua sintak
tersebut masih akan bisa berjalan.
Untuk praktikum yang selanjutnya kita diminta untuk membuat tabel baru yang bernama jabatan
dengan kode_jabat dengan tipe data char soalnya kita perlu 2 samapi 3 angka disinipun kita bisa
menggunakan int sebab apa tidak menggunakan kalau int memakan memori yang banyak toh
diinputan kode_jabat hanya butuh 2 angka saja maka dari itulah kita menggunakan char, untuk
nama_jabat menggunakan tipe data varchar dikarenakan untuk nama sendiri memakan huruf yang
lumayan panjang soalnya kenapa karena pada setiap orang nama sendiri satu dengan yang lain
akan berbeda ada seperti nama tambahan, nama marga, nama penghargaan dls. Dari itulah kita
menggunakan varchar.dan untuk tunjangan kita menggunakan tipe data float dikarenakan untuk
tunjangan sendiri tak pasti nilai yang diberikan berbentuk bilangan ada juga yang berbentuk
pecahan. Untuk mengetahui dari pembuatan dan pemasukan tabel kita bisa liat gambar dibawah
ini :
mysql> create table jabatan(
-> kode_jabat char(2)not null primary key,
-> nama_jabat varchar(20)not null,
-> tunjangan float default 0);
Query OK, 0 rows affected (0.05 sec)

mysql> insert into jabatan value("01","DIREKTUR",500000),
-> ("02","MANAJER",250000),
-> ("03","STAFF",0);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from jabatan;
+------------+------------+-----------+
| kode_jabat | nama_jabat | tunjangan |
+------------+------------+-----------+
| 01 | DIREKTUR | 500000 |
| 02 | MANAJER | 250000 |
| 03 | STAFF | 0 |
+------------+------------+-----------+
3 rows in set (0.00 sec)

Sintak- sintak diatas sama seperti yang dipratekkan sebelumnya jadi saya tak perlu lagi
membahas satu persatu.
Oh yah hampir lupa apa maksud dari primary key yaitu suatu kunci untuk menghubungkan dari
satu tabel ke tabel yang lainnya.
B. TUGAS
Membuat database toko :
mysql> create database toko;
Query OK, 1 row affected (0.05 sec)

mysql> use toko;
Database changed

Membuat tabel barang :
mysql> create table barang(
-> kode_brg char(5),
-> nama_brg varchar(40),
-> hjual float(12),
-> stok int(15),
-> primary key(kode_brg));
Query OK, 0 rows affected (0.09 sec)

Menambahkan field dari tabel barang :

mysql> alter table barang add column hbeli float(13);
Query OK, 0 rows affected (0.12 sec)
Records: 0 Duplicates: 0 Warnings: 0

Mengisikan 4 buah data barang :

mysql> insert into barang values("01","pasta
gigi",12500,5,12000),
-> ("02","sabun mandi",6000,10,6900),
-> ("03","sikat gigi",4000,15,4500),
-> ("04","shampoo",7000,8,8000);
Query OK, 4 rows affected (0.05 sec)
Records: 4 Duplicates: 0 Warnings: 0

Menampilkan kodebrg, namabrg, dan hjual :

mysql> select kode_brg, nama_brg, hjual from barang;
+----------+-------------+-------+
| kode_brg | nama_brg | hjual |
+----------+-------------+-------+
| 01 | pasta gigi | 12500 |
| 02 | sabun mandi | 6000 |
| 03 | sikat gigi | 4000 |
| 04 | shampoo | 7000 |
+----------+-------------+-------+
4 rows in set (0.02 sec)

Menampilkan semua field dari barang yang mempunyai stok lebih dari 5 urut stok :

mysql> select * from barang
-> where stok>5
-> order by stok;
+----------+-------------+-------+------+-------+
| kode_brg | nama_brg | hjual | stok | hbeli |
+----------+-------------+-------+------+-------+
| 04 | shampoo | 7000 | 8 | 8000 |
| 02 | sabun mandi | 6000 | 10 | 6900 |
| 03 | sikat gigi | 4000 | 15 | 4500 |
+----------+-------------+-------+------+-------+
3 rows in set (0.00 sec)

TUGAS tambahan :

mysql> create table beli(
-> nota int not null auto_increment,
-> kode_brg char(5),
-> tanggal date,
-> primary key(nota, kode_brg));
Query OK, 0 rows affected (0.08 sec)

mysql> insert into beli values(01,"B01",2009-05-01),
-> (02,"B02",2010-01-21),
-> (03,"B03",2003-11-10);
Query OK, 3 rows affected, 3 warnings (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 3

mysql> select * from beli;
+------+----------+------------+
| nota | kode_brg | tanggal |
+------+----------+------------+
| 1 | B01 | 2009-05-01 |
| 2 | B02 | 2010-01-21 |
| 3 | B03 | 2003-11-10 |
+------+----------+------------+
3 rows in set (0.00 sec)

mysql> select kode_brg, nota, nama_brg, hjual, hbeli, tanggal
-> from barang b, beli l
-> where b.kode_brg=l.kode_brng
-> AND hjual>6900;
+----------+------+------------+-------+-------+------------+
| kode_brg | nota | nama_brg | hjual | hbeli | tanggal |
+----------+------+------------+-------+-------+------------+
| B01 | 1 | pasta gigi | 12500 | 12000 | 2009-05-01 |
+----------+------+------------+-------+-------+------------+
1 row in set (0.00 sec)

mysql> select AVG(hjual)"rata harga jual" from barang;
+-----------------+
| rata harga jual |
+-----------------+
| 7375 |
+-----------------+
1 row in set (0.00 sec)

mysql> select AVG(hbeli)"rata harga beli" from barang;
+-----------------+
| rata harga beli |
+-----------------+
| 7850 |
+-----------------+
1 row in set (0.00 sec)

C. LISTING
Terlampir









PERTEMUAN KE 4
PENGAKSESAN DATABASE MYSQL MELALUI PHP

A. PEMBAHASAN
sebelum melangkah lebih jauh alangkah baiknya kita perlu mengetahui apa yang dimaksud pengaksesan
database MySQL melalui PHP yaitu connection atau penghubung antara MySQL dan PHP akan saling
bekerja sama dan pada pengaksesan ini mempunyai parameter seperti berikut :
Parameter pertama adalah alamat server database MySQL
Parameter kedua adalah username yang digunakan untuk mengakses database
Parameter ketiga adalah password dari username yang dipakai
Parameter keempat adalah penanda apakah fungsi tersebut selalu membuka koneksi baru
atau tidak
Praktikum yang dilakukan seperti berikut :
Praktek pertama :
<html>
<head>
<title>Praktek 1</title>
</head>
<body>

<?
$host = "localhost";
$user = "root";
$pass = "root";
$dbname = "kantor";

// variabel $host atau kita sebut dengan nama_host yaitu untuk menyatakan nama host tempat MySQL
diinstal
Variabel $user atau kita sebut dengan nama_user adalah nama pemakai yang diperbolehkan untuk
koneksi dengan database server MySQL
Variabel $pass adalah password yang dimiliki oleh pemakai
Variabel @dbname atau kita sebut nama database adalah menyatakan nama database yang akan dipilih.

$kon = mysql_connect ($host,$user,$pass);
if (!$kon)
die("Gagal Koneksi karena ".mysql_error());

//perintah ini digunakan untuk membentuk koneksi ke database server MySQL yang terdapat pada
localhost dengan user root dan password root dan $kon sebagai pengenal hubungan.
pada pengkodisian ini memberikan nilai balik yang dihasilkan true jika koneksi behasil dilakukan dan
false jika koneksi tidak berhasil dilakukan

$dbkon = mysql_select_db($dbname, $kon);
if (!$dbkon)
die ("Gagal Buka Database $dbname karena ".mysql_error());
?>
//digunakan untuk memilih database yang ada di database server MySQL
$dbname yaitu variabel yang difungsikan sebagai nama database yang menyatakan nama database yang
akan dipilih.
$kon yaitu variabel yang difungsikan sebagai pengenal_hubungan yang menyatakan nama pengenal dari
pemanggilan fungsi mysql_connect
Pengkondisin if yang diberikan ini sama dengan koneksi MySQL yang berada diatas yaitu memberikan
nilai balik yang dihasilkan true jika koneksi behasil dilakukan dan false jika koneksi tidak berhasil
dilakukan

</body>
</html>
Hasil outputnya :

Praktek kedua :
<html>
<head>
<title>Praktek 2</title>
</head>
<body>

<?
include "koneksi2.php";
//fungsi ini merupakan fungsi yang digunakan untuk menyertakan file lain kedalam file yang sedang
diproses jadi dengan fungsi ini kita tidak perlu menuliskan file yang sama berulang ulang karena
dengan fungsi include ini kita bisa menyertakan file lain.

$hasil = mysql_query("select * from pegawai");
if (!$hasil)
die ("Gagal Query data jabatan karena : ".mysql_error());
//digunakan untuk menjalankan permintaan terhadap sebuah database atau bisa dengan keterangan lain
merupakan pernyataan SQL yang digunakan untuk mengakses tabel dari database yang telah dipilih.
Dalam kasus diatas yaitu menampilkan semua data yang ada ditabel pegawai, dimana tabel pegawai ini
terdapat dalam database yang bernama kantor.


while ($row = mysql_fetch_array($hasil))
{
echo "Kode : $row[nip]</br>";
echo "Nama : $row[nama]</br>";
echo "Alamat: $row[alamat]</br>";
echo "Sex : $row[sex]</br>";
echo "Gaji : Rp ".number_format($row[gaji])."<hr/>";
}

?>
//perintah diatas digunakan untuk menghasilkan suatu array, yang terdiri dari seluruh isi kolom dan baris
pada suatu hasil permintaan fungsi ini mempunyai sifat akan membaca baris berikutnya dari haasil
permintaan dan menghasilkan nilai balik bilamana baris yang akan dibaca sudah tidak ada.

</body>
</html>
Hasil outputnya :


Praktek yang ketiga :
<html>
<head>
<title>Praktek 3</title>
</head>
<body>

<?
include "koneksi2.php";

$hasil = mysql_query("select * from pegawai");
if (!$hasil)
die ("Gagal Query data jabatan karena : ".mysql_error());
//perintah ini sudah saya singgung diatas jadi tak perlu lagi saya singgung initinya sama saja yo... siplah
pokonya!!!!

echo "DAFTAR PEGAWAI </br>";
echo"</br>";
//perintah ini memberikan tampilan keterangan bisa juga memberikan judul laporan yang berada diatas
tabel.

echo "<table border=1>
<tr>
<th>NIP</th>
<th>NAMA</th>
<th>ALAMAT</th>
<th>SEX</th>
<th>GAJI</th>
</tr>";
//perintah ini membuat tabel dengan kolom sebanyak 5 dengan menggunkan tag <th> yang berfungsi
membuat kolom pada tabel dan tabel border yaitu memberikan ketebalan garis pada tabel.

while ($row = mysql_fetch_array($hasil))
{
echo "<tr>";
echo "<td>".$row[nip]."</td>";
echo "<td>".$row[nama]."</td>";
echo "<td>".$row[alamat]."</td>";
echo "<td>".$row[sex]."</td>";
echo "<td> Rp.".number_format($row[gaji])."</td>";
echo "</tr>";
}
echo "</table>";
?>
// ini juga intinya sama aja pada praktek yang ketiga yang membedakan disini ialah pada pemberian baris
pada tabel dengan tag <td> yang jumlah baris sebanyak 4 baris pada praktek yang kedua hasil yang
dilihat pada web browser terlihat berantakan sehingga pada praktek yang ketiga Cuma pengembangan
dengan menambahkan tabel sehingga kelihatan tampak rapi. Dan perlu diketahui pada number_format ini
digunakan untuk pemberian titik atau tanda baca pada bilangan supaya user lebih mudah untuk membaca.

</body>
</html>
Hasil outputnya :

B. TUGAS
Membuat suatu relasi dengan sintak program seperti berikut :
Sintak ini untuk menghubungkan ke MySQL dan Databasenya
<html>
<head>
<title>Tugas 4</title>
</head>
<body>

<?
$host = "localhost";
$user = "root";
$pass = "root";
$dbname = "toko";

$kon = mysql_connect ($host,$user,$pass);
if (!$kon)
die("Gagal Koneksi karena ".mysql_error());

$dbkon = mysql_select_db($dbname, $kon);
if (!$dbkon)
die ("Gagal Buka Database $dbname karena ".mysql_error());
?>

</body>
</html>

Dan relasi antar tabel ini berikut sintak yang diketikkan :

<html>
<head>
<title>Tugas mas brow</title>
</head>
<body>

<?
include "koneksi2.php";

$hasil = mysql_query("select kode_brg, nota, nama_brg, hjual, hbeli, tanggal from barang b, beli
l where b.kode_brg=l.kode_brng");
if (!$hasil)
die ("Gagal Query karena : ".mysql_error());

echo "RELASI DUA TABEL DARI BARANG DAN BELI</br>";
echo "</br>";
echo "<table border=1>
<tr>
<th>KODE BARANG</th>
<th>NOTA</th>
<th>NAMA BARANG</th>
<th>HARGA JUAL</th>
<th>HARGA BELI</th>
<th>TANGGAL</th>
</tr>";

while ($row = mysql_fetch_array($hasil))
{
echo "<tr>";
echo "<td>".$row[kode_brg]."</td>";
echo "<td>".$row[nota]."</td>";
echo "<td>".$row[nama_brg]."</td>";
echo "<td>".number_format($row[hjual])."</td>";
echo "<td>".number_format($row[hbeli])."</td>";
echo "<td>".$row[tanggal]."</td>";
echo "</tr>";
}
echo "</table>";
?>

</body>
</html>
Hasil outputnya adalah sebagai berikut :



C. LISTING
Terlampir