Monday, May 20, 2013

CONTOH LAPORAN PRAKTIKUM SISTEM BASIS DATA



MODUL V
SQL

A.     TUJUAN
Mahasiswa memahami pengertian dari Query,View, dan Join; cara untuk membuat Query untuk mengambil data dari beberapa table; cara membuat view
B.     PRAKTIKUM
Dari data bases yang telah kita buat kita dapat memodifikasi, menambah data, maupun yang lainnya. Pada halnya dalam pelakasanaan praktikum dengan langkah sebagai berikut :
a.       Menampilkan seluruh data pada pada table-table dari data base yang telah kita buat dengan menggunakan perintah select*from nama_table;
Contoh;
mysql> select*from data_cabang;
+-----------+------------------+---------------+-------------+
| kd_cabang | nama             | alamat        | jml_nasabah |
+-----------+------------------+---------------+-------------+
| KC001     | KC AKAKOM        | JANTI         |           8 |
| KC002     | KC GEJAYAN       | GEJAYAN       |           5 |
| KC003     | KC WIROBRAJAN    | WIROBRAJAN    |           8 |
| KC005     | KC GEDUNG KUNING | GEDUNG KUNING |           8 |
| KC004     | KC BABARSARI     | BABARSARI     |           3 |
+-----------+------------------+---------------+-------------+
5 rows in set (0.00 sec)
Perintah select dapat juga digunakan untuk melihat sebagaian dari data pada table dengan nama kolom data,  contoh,
mysql> select nama, alamat from data_cabang;
+------------------+---------------+
| nama             | alamat        |
+------------------+---------------+
| KC AKAKOM        | JANTI         |
| KC GEJAYAN       | GEJAYAN       |
| KC WIROBRAJAN    | WIROBRAJAN    |
| KC GEDUNG KUNING | GEDUNG KUNING |
| KC BABARSARI     | BABARSARI     |
+------------------+---------------+
5    rows in set (0.00 sec)
b.  Menampilkan data menggunakan sebuah operator relasional (=, <>, <, >, <=), dan operator logika (AND, OR, XOR). Dengan  struktur kode select*from nama_table where nama_kolom. Contoh
mysql> select nama,alamat from nasabah where saldo >2000000;
+---------------+-------------+
| nama          | alamat      |
+---------------+-------------+
| Ruslan        | Janti       |
| Ricky         | Gamping     |
| Arifin        | Banguntapan |
| Ayat          | Banguntapan |
| Awang Nurhadi | Wonogiri    |
+---------------+-------------+
5    rows in set (0.02 sec)


c.       Menampilkan data pada kolom nama pada sebuah table dengan perintah distinct
mysql> select distinct nama from nasabah;
+---------------+
| nama          |
+---------------+
| Januar        |
| Ruslan        |
| Sutris        |
| Ricky         |
| Herman        |
| Arifin        |
| Ayat          |
| Wahyudi       |
| Awang Nurhadi |
+---------------+
9 rows in set (0.01 sec)
d.      Menampilkan nama nasabah yang mempunyai hurup awalan, akhiran, dan yang tengah, dengan perintah like.
mysql> select nama from nasabah where nama like 'R%';
+--------+
| nama   |
+--------+
| Ruslan |
| Ricky  |
+--------+
2 rows in set (0.00 sec)
mysql> select nama from nasabah where nama like '%e%'
+--------+
| nama   |
+--------+
| Herman |
+--------+
1 row in set (0.00 sec)
mysql> select nama from nasabah where nama like '%r';
+--------+
| nama   |
+--------+
| Januar |
+--------+
1 row in set (0.00 sec)
e.  Menampilkan jumlah nasabah dengan perintah select count (nip) from nama_table;
mysql> select nama count from nasabah;
mysql> select count(nama) from nasabah;
+-------------+
| count(nama) |
+-------------+
|           9 |
+-------------+
1 row in set (0.03 sec)





f.       Menamilkan semua karyawan dan alamat serta saldonya
mysql> select nama,alamat, saldo from nasabah ;
+---------------+---------------+---------+
| nama          | alamat        | saldo   |
+---------------+---------------+---------+
| Januar        | Condong Catur | 1500000 |
| Ruslan        | Janti         | 2500000 |
| Sutris        | Gejayan       | 1400000 |
| Ricky         | Gamping       | 7000000 |
| Herman        | Gamping       | 1200000 |
| Arifin        | Banguntapan   | 3200000 |
| Ayat          | Banguntapan   | 3300000 |
| Wahyudi       | Karang Jambe  | 1500000 |
| Awang Nurhadi | Wonogiri      | 3000000 |
+---------------+---------------+---------+
9 rows in set (0.00 sec)


PEMBAHASAN
Dari pelaksanaan praktikum di atas dapat kita ketahui, printah select dapat digunakan untuk menampilkan data dari table database dengan kriteria tertentu. Select*from nama_table merupakan perintah untuk menampilkan semua data yang ada pada table. Namun select nama_kolom from nama_table; merupakan perintah untuk menampilkan sebuah kolom yang ada pada table yang kita inginkan. Perintah-perintah yang ada pada modul seperti like, distinct, select, maupun order by, merupakan perintah untuk menampilkan data pada table dengan kentuan dan kruteria tertentu.
Perintah select nama_kolom from nama_table where nama_kolom <2000000; merupakan perintah untuk menmpilkan sebuah kolom pada table dengan kondisi kurang dari 2000000, where merupkan kondisi dan tanda < menjadi operasionalnya. Seprti contohnya.
mysql> select nama,alamat from nasabah where saldo >2000000;
+---------------+-------------+
| nama          | alamat      |
+---------------+-------------+
| Ruslan        | Janti       |
| Ricky         | Gamping     |
| Arifin        | Banguntapan |
| Ayat          | Banguntapan |
| Awang Nurhadi | Wonogiri    |
+---------------+-------------+
5 rows in set (0.00 sec)
Adapun perintah-perintah seperti count, max, min, avg maunpun sum merupakan operator yang berfungsi untuk mengoperasikan data pada table yang berupa integer kecuali count, karena count untuk menghitung jumlah data.
Contoh operasional diatas.

mysql> select max(saldo) from nasabah;
+------------+
| max(saldo) |
+------------+
|    7000000 |
+------------+
1 row in set (0.00 sec)
Perintah di atas berfungsi untuk menampilkan nilai maksimal/terbesar dari kolom saldo.


mysql> select min(saldo) from nasabah;
+------------+
| min(saldo) |
+------------+
|    1200000 |
+------------+
1 row in set (0.00 sec)
Perintah di atas berfungsi untuk menampilkan nilai minimal/terkecil dari kolom saldo.

mysql> select sum(saldo) from nasabah;
+------------+
| sum(saldo) |
+------------+
|   24600000 |
+------------+
1 row in set (0.05 sec)
Perintah di atas berfungsi untuk menampilkan jumlah nilai yang ada pada kolom saldo.
mysql> select avg(saldo) from nasabah;
+--------------+
| avg(saldo)   |
+--------------+
| 2733333.3333 |
+--------------+
1 row in set (0.00 sec)
Perintah di atas berfungsi untuk menampilkan jumlah nilai rata-rata yang ada pada kolom saldo. Sedangakan fungsi perintah-perintah yang lainnya dapat dilihan pada listing dan pelaksanaan praktikum di atas.

LATIHAN
Membuat data bases baru dengan data sesuai pada modul praktikum data bases yang ada.
mysql> create table Datacabang(
    -> Kd_cbng varhar(9)primaray key,
    -> Nama varchar(25)not null,
    -> Alamat varchar(15)not null,
    -> Jmlnsb varchar(2));
Query OK, 0 rows affected (0.08 sec)
mysql> select * from Datacabang;
+---------+------------------+---------------+--------+
| Kd_cbng | Nama             | Alamat        | Jmlnsb |
+---------+------------------+---------------+--------+
| KC001   | KC AKAKOM        | JANTI         | 8      |
| KC002   | KC GEJAYAN       | GEJAYAN       | 5      |
| KC003   | KC WIROBRAJAN    | WIROBRAJAN    | 8      |
| KC004   | KC GEDUNG KUNING | GEDUNG KUNING | 7      |
| KC005   | KC BABARSARI     | BABARSARI     | 3      |
+---------+------------------+---------------+--------+
5 rows in set (0.01 sec)

mysql> create table Datanasabah(
    -> Kd_Nsb varhar(9)primaray key,
    -> Nama varchar(25)not null,
    -> Alamat varchar(25)not null,
    -> Rekening varchar(15)not null,
    ->Kd_cbng varchar(7)not null,
    -> saldo varchar(22));
Query OK, 0 rows affected (0.08 sec)
mysql> select * from Datanasabah;
+--------+----------+---------------+----------+---------+---------+
| Kd_Nsb | Nama     | Alamat        | Rekening | Kd_cbng | saldo   |
+--------+----------+---------------+----------+---------+---------+
| N001   | Januar   | Condong Catur | 12340001 | KC002   | 1500000 |
| N002   | Febri    | Gejayan       | 12340002 | KC004   | 2500000 |
| N003   | Marina   | Gamping       | 12340003 | KC005   | 1400000 |
| N004   | Aprilia  | Janti         | 12340004 | KC001   | 7000000 |
| N005   | Memey    | Kotabaru      | 12340005 | KC003   | 2000000 |
| N006   | Junita   | Kalasan       | 12340006 | KC001   | 1200000 |
| N007   | Juliana  | Terban        | 12340007 | KC002   | 1300000 |
| N008   | Agusto   | Sleman        | 12340008 | KC005   | 2800000 |
| N009   | Septiana | Terban        | 12340009 | KC004   | 9000000 |
| N010   | Oktavia  | Segan         | 12340010 | KC003   | 4500000 |
| N011   | Novia    | Monjali       | 12340011 | KC001   | 750000  |
| N012   | Desia    | Timoho        | 12340012 | KC005   | 1200000 |
+--------+----------+---------------+----------+---------+---------+
12 rows in set (0.00 sec)

No. 2

a.  Menampilkan semua nasabah, alamat dan saldonya.
mysql> select Alamat, saldo from Datanasabah;
+---------------+---------+
| Alamat        | saldo   |
+---------------+---------+
| Condong Catur | 1500000 |
| Gejayan       | 2500000 |
| Gamping       | 1400000 |
| Janti         | 7000000 |
| Kotabaru      | 2000000 |
| Kalasan       | 1200000 |
| Terban        | 1300000 |
| Sleman        | 2800000 |
| Terban        | 9000000 |
| Segan         | 4500000 |
| Monjali       | 750000  |
| Timoho        | 1200000 |
+---------------+---------+
12 rows in set (0.00 sec)

b.  Menampilkan nama dengan saldo > 2000000
mysql> select * from Datanasabah where saldo > 2000000;
+--------+----------+---------+----------+---------+---------+
| Kd_Nsb | Nama     | Alamat  | Rekening | Kd_cbng | saldo   |
+--------+----------+---------+----------+---------+---------+
| N002   | Febri    | Gejayan | 12340002 | KC004   | 2500000 |
| N004   | Aprilia  | Janti   | 12340004 | KC001   | 7000000 |
| N008   | Agusto   | Sleman  | 12340008 | KC005   | 2800000 |
| N009   | Septiana | Terban  | 12340009 | KC004   | 9000000 |
| N010   | Oktavia  | Segan   | 12340010 | KC003   | 4500000 |
+--------+----------+---------+----------+---------+---------+
5 rows in set (0.00 sec)

c.  Menampilkan nasabah dengan alamat Gejayan.
mysql> select * from Datacabang where Alamat like'%Gejayan%';
+---------+------------+---------+--------+
| Kd_cbng | Nama       | Alamat  | Jmlnsb |
+---------+------------+---------+--------+
| KC002   | KC GEJAYAN | GEJAYAN | 5      |
+---------+------------+---------+--------+
1 row in set (0.00 sec)

d.  Menampilkan nama nasabah dengan kode cabang KC003.
mysql> select * from Datacabang where Kd_cbng like'%KC003%';
+---------+---------------+------------+--------+
| Kd_cbng | Nama          | Alamat     | Jmlnsb |
+---------+---------------+------------+--------+
| KC003   | KC WIROBRAJAN | WIROBRAJAN | 8      |
+---------+---------------+------------+--------+
1 row in set (0.00 sec)

e.  Menampilkan semua data kantor cabang (nama dan alamat)
mysql> select Nama,Alamat from Datacabang;
+------------------+---------------+
| Nama             | Alamat        |
+------------------+---------------+
| KC AKAKOM        | JANTI         |
| KC GEJAYAN       | GEJAYAN       |
| KC WIROBRAJAN    | WIROBRAJAN    |
| KC GEDUNG KUNING | GEDUNG KUNING |
| KC BABARSARI     | BABARSARI     |
+------------------+---------------+
5 rows in set (0.00 sec)

f.  Menampilkan nama kantor cabang dengan alamat janti.
mysql> select * from Datanasabah where Alamat like'%JANTI%';
+--------+---------+--------+----------+---------+---------+
| Kd_Nsb | Nama    | Alamat | Rekening | Kd_cbng | saldo   |
+--------+---------+--------+----------+---------+---------+
| N004   | Aprilia | Janti  | 12340004 | KC001   | 7000000 |
+--------+---------+--------+----------+---------+---------+
1 row in set (0.02 sec)

g.  Manampilkan nama kantor cabang dengan jumlah nasabah > 5 orang.
mysql> select * from Datacabang where Jmlnsb >5;
+---------+------------------+---------------+--------+
| Kd_cbng | Nama             | Alamat        | Jmlnsb |
+---------+------------------+---------------+--------+
| KC001   | KC AKAKOM        | JANTI         | 8      |
| KC003   | KC WIROBRAJAN    | WIROBRAJAN    | 8      |
| KC004   | KC GEDUNG KUNING | GEDUNG KUNING | 7      |
+---------+------------------+---------------+--------+
3 rows in set (0.00 sec


C.     TUGAS
Mengupdate data kantor cabang dengan kode KC002 menjadi:
Nama                     : KC AMBARUKMO
Alamat                   : AMBARUKMO
Jumlah Nasabah    : 15
mysql> update datacabang
    -> set nama = 'KC AMBARUKMO', alamat = 'AMBARUKMO', jml_nasabah = '15'
    -> where Kd_Cabang = 'KC002';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> select nama, alamat, jml_nasabah from datacabang where kd_cabang='KC002';
+--------------+-----------+-------------+
| nama         | alamat    | jml_nasabah |
+--------------+-----------+-------------+
| KC AMBARUKMO | AMBARUKMO |          15 |
+--------------+-----------+-------------+
1    row in set (0.00 sec)

     Menghapus data semua kantor cabang dengan jumlah nasabah kurang dari 5.
mysql> delete from datacabang where jml_nasabah<'5';
Query OK, 1 row affected (0.00 sec)

mysql> select * from datacabang;
+-----------+------------------+---------------+-------------+
| Kd_Cabang | Nama             | Alamat        | Jml_Nasabah |
+-----------+------------------+---------------+-------------+
| KC001     | KC AKAKOM        | JANTI         |           8 |
| KC002     | KC AMBARUKMO     | AMBARUKMO     |          15 |
| KC003     | KC WIROBRAJAN    | WIROBRAJAN    |           8 |
| KC004     | KC GEDUNG KUNING | GEDUNG KUNING |           7 |
+-----------+------------------+---------------+-------------+
4         rows in set (0.00 sec)

      Mengupdate data nasabah dengan kode N0010 menjadi:
Alamat : Monjali
Saldo   : 9000000
mysql> update datanasabah
    -> set alamat = 'Monjali', saldo='9000000'
    -> where kd_nasabah='N0010';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from datanasabah where kd_nasabah='N0010';
+------------+---------+---------+----------+-----------+---------+
| Kd_Nasabah | Nama    | Alamat  | Rekening | Kd_Cabang | Saldo   |
+------------+---------+---------+----------+-----------+---------+
| N0010      | Oktavia | Monjali | 12340010 | KC003     | 9000000 |
+------------+---------+---------+----------+-----------+---------+
1    row in set (0.00 sec)

      Menghapus semua nasabah dengan alamat Terban.
mysql> delete from datanasabah where alamat='Terban';
Query OK, 2 rows affected (0.00 sec)
Untuk melihat apakah datanya sudah dihapus, kita coba panggil nasabah dengan alamat Terban.
mysql> select * from datanasabah where alamat='Terban';
Empty set (0.00 sec)
Data tidak ditemukan, berarti data sudah benar terhapus.

      Menampilkan saldo maksimal.
mysql> select max(saldo) from datanasabah;
+------------+
| max(saldo) |
+------------+
|    9000000 |
+------------+
1   row in set (0.36 sec)
      Menampilkan rata-rata saldo nasabah.
mysql> select avg(saldo)from datanasabah;
+--------------+
| avg(saldo)   |
+--------------+
| 2935000.0000 |
+--------------+
1   row in set (0.00 sec)

     Menampilkan jumlah nasabah.
mysql> select count(kd_nasabah)from datanasabah;
+-------------------+
| count(kd_nasabah) |
+-------------------+
|                10 |
+-------------------+
1 row in set (0.00 sec)

No comments:

Post a Comment