Pembuatan Laporan dengan Ireport

Laporan 10

Tutorial Laporan Netbean dengan Ireport

Hai kawan setelah beberapa postingan tentang basis data maka sampailah penghujung laporan yaitu cara agar kita bisa mencetak data yang ada di basis data menggunakan Ireport dan Netbean.

iReport adalah Visual Designer untuk membuat laporan yang komplek, menggunakan jasperReport Libarary.

iReport  memudahkan Anda membuat laporan. Biasanya iReport di gunakan dalam bahasa pemrograman Java

Langsung saja tanpa basa – basi, pertama siapkan bahannya, netbean, database yang kita punya di mysql, plugin Ireport dan Librarynya. bisa di cari di mbah google.

Dalam praktikum ini kita akan menggunakan :

  •   iReport versi  5.0.4 dapat anda download di plugin.netbeans.org
  •   jasperReport  versi 5.1

disamping library jasperReport kita juga membutuhkan libarary pendukung dari jasperReport :

  • commons-beanutils-1.8
  • commons-collections-3.2
  • commons-digester-2.1
  • commons-logging-1.1.2
  • groovy-all-1.8
  • jdt-compiler/jasper-compiler-jdt

 

Oke, sekarang kita mulai tutorialnya.

1. Kita instal pluginnya

plugin1

plugin2 plugin3

Setelah itu Instal dan tutup netbean lalu masuk lagi.

 

2. Buat new wizard Ireport dengan pilihan new file

1 new wizard

klik next dan beri nama reoertnya seperti berikut :

2 report wizard

setelah itu next

3 querry

akan muncul jendela seperti diatas dan pertama pilih button new

4 new query

Pilih database JDBC conection dan klik next dan akan muncul jendela berikut

5 jdbc

isikan sesui data yang anda miliki dan coba klik button test, setelah berhasil klik button save.

maka akan muncul jendela berikut :

6 next

lalu pada jendela diatas isikan querry yang ungin ditampilkan dan klik tombol next, lalu muncul jendelaberikut

7

pindahkan ke kolom kanan data yang ingin ditampilkan lalu klik tombol next maka akan mucul jendela berikut dan sukses

9 finish

10 sukses

Setelah itu import librarynya :

library

 

3. Mengkoneksikan Ireport dengan button print.

Pertama buat button print pada aplikasi yang telah dibuat

12 GUI print

Lalu beri script seperti berikut

15 buat code

untuk membuat parameter data yang di print sesui dengan nim mahasiswa maka beri parameter seperti berikut

klik parameter dan buat baru dengan mengganti namanya menjadi “nim” dan jangan lupa diganti Integer pada properties.

13 buat parameter

Lalu ganti querrynya sebagai berikut

14 editquerry

Setelah itu kita coba untuk menjalankan aplikasinya, isikan nim dan tekan tombol print, hasilnya sebagai berikut

16 klik print

Taraa, sekarang anda bisa menyempurnakan sendiri dan membuat aplikasi seperti kasir.

 

Kesimpulan

Saya sedikit mengalami permasalahn dalam pembuatan Ireport ini, yang bermasalah adalah netbean versi 8 yang error ketika kita tekan tombol print, solusinya adalah dengan cara men-downgrade netbean kita ke versi 7.3
Dengan netbean tersebut bisa kita lihat hasilnya seperti diatas, jadi sekarang tinggal kreatifitas kita untuk mengembangkan aplikasi ini, bisa untuk kasir, atau nota pembayaran.

Koneksi MySQL pada Java

Laporan 9

Koneksi MySQL pada Java

 

Landasan Teori

Terdapat beberapa langkah yang secara umum harus dilakukan sehingga aplikasi yang berbasis Java dapat berinteraksi dengan database server. Langkah-langkah tersebut sebagai berikut :

  1. Impor package java.
  1. Memanggil Driver JDBC
  1. Membangun Koneksi
  1. Membuat Statement
  1. Melakukan Query
  1. Menutup Koneksi

 

  1. Impor package java.sql

Pertama-tama yang harus dilakukan sebelum Anda membuat program JDBC adalah mengimpor package java.sql terbih dahulu, karena di dalam package java.sql tersebut terdapat kelas-kelas yang akan digunakan dalam proses-proses berintekasi dengan database server misalnya kelas DriverMaganer, Connection, dan ResultSet.

Hal ini sangat penting dilakukan karena bagi pemula seringkali lupa untuk mengimpor package yang kelas-kelas yang akan digunakan terdapat di dalamnya, sehingga mengakibatkan kegagalan dalam mengkompile program Java.

Adapun listing untuk mengimpor package java.sql adalah sebagai berikut :

Import java.sql.*;

Listing ini dituliskan sebelum Anda menulis kelas

 

  1. Memanggil Driver JDBC

Langkah pertama untuk melakukan koneksi dengan database server adalah dengan  memanggil  JDBC  Driver  dari  database server  yang kita  gunakan.  Driver adalah library yang digunakan untuk berkomunikasi dengan database server. Driver dari setiap database server berbeda-beda, sehingga Anda harus menyesuaikan Driver JDBC sesuai dengan database server yang Anda gunakan.

Berikut ini adalah listing program untuk memanggil driver JDBC.

 

Class.forName(namaDriver);  atau   Class.forName(namaDriver).newInstance();

 

Kedua cara di atas memiliki fungsi yang sama yaitu melakukan registrasi class  driver   dan  melakukan  intansiasi.   Apabila   driver   yang  dimaksud   tidak ditemukan, maka program akan menghasilkan exception berupa ClassNotFoundException. Untuk menghasilkan exception apabila driver tidak ditemukan,  maka  diperlukan  penambahan  try-catch.  Adapun  cara  menambahkan try-catch untuk penanganan error apabila driver tidak ditemukan, sebagai berikut :

Try { Class.forName(namaDriver);

} catch (ClassNotFoundException e) {

… Penanganan Error ClassNotFoundException

}

Contoh listing memanggil driver menggunakan PosqgreSQL adalah :

try {

Class.forName(“org.postgresql.Driver”);

} catch (ClassNotFoundException e) { System.out.println(“Pesan Error : “ + e)

}

Berikut ini adalah daftar nama-nama driver dari beberapa database server yang sering digunakan.

 

Database Server Nama Driver
JDBC-ODBC sun.jdbc.odbc.JdbcOdbcDriver
MySQL com.mysql.jdbc.Driver
PostgreSQL org.postgresql.Driver
Microsoft SQLServer com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle oracle.jdbc.driver.OracleDriver
IBM DB2 COM.ibm.db2.jdbc.app.DB2Driver

 

  1. Membangun Koneksi

Setelah melakukan pemanggilan terhadap driver JDBC, langkah selanjutnya adalah membangun koneksi dengan menggunakan interface Connection. Object Connection yang dibuat untuk membangun koneksi dengan database server tidak dengan cara membuat object baru dari interface Connection melainkan dari class DriverManager dengan menggunakan methode getConnection().

Connection koneksi = DriverManager.getConnection(<argumen>);

 

Untuk menangani error yang mungkin terjadi pada proses melakukan koneksi dengan database maka ditambahkan try-catch. Exception yang akan dihasilkan pada proses ini adalah berupa SQLException. Adapun cara penulisan listingnya adalah sebagai berikut :

try {

… koneksi database

} catch (SQLException sqle){

… penanganan error koneksi

}

Ada beberapa macam argumen yang berbeda dari methode getConnection() yang dipanggil dari DriverManager, yaitu :

getConnection(String url)

 

Pada methode diatas hanya memerlukan argumen URL, sedangkan untuk data user dan password sudah diikutkan secara langsung. Adapun penulisan nilai sebagai berikut :

 

jdbc:<DBServer>://[Host][:Port]/<namaDB>?<user=User>&<password=Pa sword>

Berikut ini contoh penggunaan methode ini didalam program :

 

try {

String url = “jdbc: postgresql://localhost:3306/Dbase? User = adi & password

= pas”;

Connection koneksi = DriverManager.getConnection(url);

System.out.prinln(“Proses apabila koneksi sukses”);

} catch (SQLException sqle) {

System.out.println(“Proses apabila koneksi gagal dilakukan”);

}

getConnection(String url, Properties info)

 

Pada methode ini memerlukan URL dan sebuah object Properties. Sebelum  menggunakan  methode ini,  Anda  harus melakukan import  package berupa java.util.*, ini dikarenakan object Properties terdapat pada package tersebut. Object Properties berisikan spesifikasi dari setiap parameter database misalnya user name, password, autocommit, dan sebagainya.

Berikut ini contoh penggunaan methode ini didalam program :

 

try {

String url = “jdbc: postgresql://localhost:5432/praktikumdbd”; Properties prop = new java.util.Properties(); // tidak mengimpor kelas prop.put(“user”,”NamaUser”); prop.put(“password”,”datapassword”);

Connection koneksi = DriverManager.getConnection(url, prop);

System.out.prinln(“Proses apabila koneksi sukses”);

} catch (SQLException sqle) {

System.out.println(“Proses apabila koneksi gagal dilakukan”);

}

getConnection(String url, String user, String password)

 

Pada methode ini memerlukan argumen berupa URL, user name, dan password. Methode ini secara langsung mendefinisikan nilai URL, user name dan password.

Berikut ini contoh penggunaan methode ini didalam program :

 

try {

String url = “jdbc: postgresql://localhost:5432/ praktikumdbd”; String user = “adi”

String password “ternate”

Connection koneksi = DriverManager.getConnection(url, user, password);

System.out.prinln(“Proses apabila koneksi sukses”);

 

} catch (SQLException sqle) {

System.out.println(“Proses apabila koneksi gagal dilakukan”);

}

Berikut ini adalah daftar penulisan  URL dari beberapa database server yang

 

sering digunakan.

 

DatabaseServer Nama URL Contoh penggunaan
JDBC-ODBC jdbc:odbc:<NamaDatabase> jdbc:odbc:Dbase
MySQL jdbc:mysql://<nmHost>:<port>/<nmDB> jdbc:mysql://localhost:3306/Dbase
PostgreSQL jdbc:postgresql://<nmHost>:<port>/<nmDB> jdbc:postgresql://localhost:5432/Dbase
MicrosoftSQLServer jdbc:microsoft:sqlserver://<nmHost>:<port>; DatabaseName=<namaDatabase> jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=Dbase
Oracle jdbc:oracle:thin:@<nmHost>:<port>:<nmDB> jdbc:oracle:thin:@localhost:1521:Dbase
IBM DB2 jdbc:db2:<NamaDatabase> jdbc:db2:Dbase
  1. Membuat Statement

JDBC API menyediakan interface yang berfungsi untuk melakukan proses pengiriman statement SQL yang terdapat pada package java.sql. Statement yang ada secara umum digunakan terdiri dari berikut  :

Statement

Interface ini dibuat oleh methode Connection.createStatement(). Object

Statement digunakan untuk pengiriman statement SQL tanpa parameter serta

Setiap SQL statement yang dieksekusi dikirim secara utuh ke database.

Statement stat = Connection.createStatement();

 

PreparedStatement

 

Interface ini dibuat oleh methode Connection.prepareStatement(). Object PreparedStatement digunakan untuk pengiriman statement SQL dengan atau tanpa parameter. Interface ini memiliki performa lebih baik dibandingkan dengan interface Statement karena dapat menjalankan beberapa proses dalam sekali pengiriman perintah SQL, pengiriman selanjutnya hanya parametered querynta saja.

PreparedStatement stat = Connection.prepareStatement();

 

  1. Melakukan Query

 

Setelah kita  memiliki  object  statement, kita  dapat menggunakannya  untuk melakukan pengiriman perintah SQL dan mengeksekusinya. Methode eksekusi yang digunakan  untuk  perintah  SQL terbagi  menjadi  dua  bagian  yaitu  untuk  perintah SELECT methode eksekusi yang digunakan adalah executeQery() dengan nilai kembaliannya adalah ResultSet, dan untuk perintah INSERT, UPDATE, DELETE methode eksekusi yang digunakan adalah executeUpdate().

Berikut ini adalah contoh melakukan eksekusi perintah SQL dan mengambil hasilnya (ResultSet) dengan menggunakan perintah SELECT :

String sql = “SELECT kode, nama, alamat, kelas FROM dataSiswa”;

ResultSet set = stat.executeQuery(sql);

while (set.next()) {

String kode = set.getString(“kode”); String nama = set.getString(“nama”); String alamat = set.getString(“alamat”); String kelas = set.getString(“kelas”);

}

Berikut   ini   adalah   contoh   melakukan   eksekusi   perintah   SQL   dengan

 

menggunakan perintah DELETE.

 

String sql = “DELETE FROM data_siswa WHERE kode = “1234”; PreparedStatement stat = konek.prepareStatement(sql); stat.executeUpdate();

 

  1. Menutup Koneksi

 

Penutupan terhadap koneksi database perlu dilakukan agar sumber daya yang digunakan oleh object Connection dapat digunakan lagi oleh proses atau program yang  lain.  Sebelum  kita  menutup  koneksi  database,  kita  perlu  melepas  object Statement dengan kode sebagai berikut :

statement.close();

 

Untuk menutup koneksi dengan database server dapat kita lakukan dengan kode sebagai berikut :

connection.close()

 

Hasil Praktikum

1. Membuat class koneksi

Kita import dulu librarynya

import library

Setelah itu tulis codenya

1

2. Membuat form tampilan

2

3. Membuat Even setiap tombol : cari, simpan, edit, hapus, tampil, reset.

3 cari 3 edit 3 hapus 3 reset 3 simpan 3 tampil

 

4. Membuat class koneksi sendiri dan menghubungkannya

Pertama kita buat class koneksi

1

Setelah itu kita ganti setiap code pada button cari, simpan, edit, delete yang seperti ini

awal code

menjadi seperti ini

ganti code

 

Perbedaan Postgre dengan Mysql

Menurut saya tidak ada yang berbeda, hanya library yang berbeda dan sedikit coding pada perintah SQL yang sedikit berbeda, yang sudah dijelaskan pada laporan – laporan sebelumnya

Kesimpulan

Jadi dalam pembuatan aplikasi database kita bisa menggunakan salah satu bahasa pemrograman java, menurut saya hanya butuh kesabaran dan ketelitian untuk membuat aplikasi tersebut, karena salah sedikit saja codenya bisa gagal koneksi, dengan kesabaran dan ketelitian Insyaallah aplikasi tersebut bisa dibuat.

Daftar Pustaka

http://blog.uin-malang.ac.id/matkulku/2012/01/05/laporan-praktikum-8-dbd-koneksi-postgresql-pada-java-netbeans/

 

Fungsi dan Trigger SQL

Laporan 8

Fungsi dan Trigger SQL

Landasan Teori

Pengertian Function dalam Mysql

Dalam database server ada 2 ketegori fungsi: (1) fungsi aggregate adalah fungsi fungsi bawaan yang terdapat pada sistem database tersebut, (2) fungsi yang diciptakan oleh user sendiri.

Pada bagian ini akan dibahas tentang cara menciptakan, dang menggunakan fungsi yang dibuat oleh user sendiri.
Cara kerja fungsi fungsi “>hampir sama dengan Stored Procedure, namun fungsi mempunyai ada yang parameter masukan ada yang tidak. Selain parameter fungsi mengembalikan nilai balik lewat perintah RETURN.

DELIMITER $$
CREATE FUNCTION nama_fungsi (parameter[,...])
       RETURNS tipe_data_nilai_balik
       /* COMMENT keterangan_string */
BEGIN
   Deklasi variabel;
isi_perintah_fungsi;
RETRUN data_nilai_balik;
END$$
DELIMITER ;

 Pengertian Trigger

Terdapat tiga kejadian (event) umum yang dapat menyebabkan trigger dipicu :
– INSERT, berarti trigger dijalankan ketika terdapat sejumlah data baru yang diinput
– UPDATE, berarti trigger dijalankan ketika terdapat data / record yang diubah
– DELETE, berarti trigger dijalankan ketika terdapat data / record yang dihapus

Manfaat dari penggunaan trigger :

  1. Trigger merupakan salah satu mekanisme untuk menjalankan aturan bisnis dan menjaga integritas data dalam sebuah basis data. Mekanisme yang lainnya adalah penggunaan CONSTRAINT
  2. Trigger dapat mengevaluasi status dari sebuah tabel sebelum dan sesudah terjadi perubahan data dan melakukan aksinya sesuai perbedaan yang terjadi
  3. Trigger dapat melakukan perubahan cascade melalui melalui relasi tabel pada database, akan tetapi perubahan ini akan lebih efisien jika dieksekusi menggunakan referential integrity constraints.
  4. Trigger dapat melakukan pencegahan akses atas data yang kompleks dibanding dengan menggunakan CHECK CONSTRAINT
  5. Tidak seperti pada Check Constraint, Trigger dapat mereferensikan kolom / field dalam tabel yang berbeda.
  6. Dan lupa lagi
Syntax membuat Trigger :
 CREATE TRIGGER {Nama_Trigger}
 ON {Nama_Table}
 FOR {DELETE | INSERT | UPDATE}
 AS
 {SQL Statement}
Syntax menghapus Trigger :
 DROP TRIGGER {Nama_Trigger}
ALTER TRIGGER {Nama_Trigger}
 ON [Nama_Table}
 FOR {DELETE | INSERT | UPDATE}
 AS
 {SQL Statement}
Syntax mendapatkan informasi mengenai trigger :
 sp_helptext {Nama_Trigger}
 sp_help {Nama_Trigger}
 sp_columns {Nama_Trigger}

Hasil Praktikum

1. Membuat koversi dari Farenhait ke Celcius

1 konversi farenhait

2. Fungsi mecari alamat mahasiswa

2 cari alamat

3. Fungsi untuk menghitung nilai mahasiswa

3 nilai

4. Fungsi mencari ganjil atau genap

4 Ganjil Genap

5. Membuat trigger untuk log tanggal

5 create trigger

5 cek

 

Evaluasi Perbandingan Database

Banyak perbedaan diantara postgreSQL dan MySQL dalam bab ini, utamanya dalam hal penulisan. Dalam pembuatan fungsi, MySQL harus diikuti oleh delimiter agar bisa dibuat. Beirkut perbedaannya.

PostgresSQL 

  1. Perlu menuliskan Bahasa yang dipakai seperti pl pgsql.
  2. Pada tipe Char atau Varchar tidak perklu diberi ukuran.
  3. Tentang percabangan, setelah query if, atau else if serta else maka menggunakan select  into variable (values).
  4. Insert seperti biasanya.

MySQL 

  1. Tidak perlu menuliskan Bahasa yang dipakai dan bisa langsung meng eksekusi query.
  2. Pada tipe Char atau Varchar tidak diberi ukuran jika tidak maka akan error.
  3. Perlu adanya concat (nilai kembalian di akhir query).
  4. Tentang percabangan, setelah query if, atau else if serta else maka menggunakan then return concat (values).
  5. Untuk melakukan insert terlebih dahulu mendeklaraskan variabelnya.

Kesimpulan

Berdasarkan praktikum yang telah dilaksanakan didalam DBMS Mysql dan Postgre memiliki fungsi untuk membuat atau memudahkan dalam pemanggilan querry, sehingga lebuh memudahkan pengguna dan mempercepat akses pengguna.

 

Daftar Pustaka

Stored Function

Pengertian Trigger dalam mysql

Musthafa, Aziz (2013). Modul Praktikum Desain Basis Data. Fakultas Sains dan Teknologi UIN Malang.

 

Sub Querry dan Index

Laporan 7

Sub Querry dan Index

Landasan Teori

Pengertian Sub Query
Merupakan query yang terletak dalam query yang lain.
Contoh :
Akan ditampilkan nama pegawai yang mempunyai gaji paling besar

select nama from pegawai where sal = (select max(gaji) from pegawai);

Operator Exists
Merupakan jenis operator boolean, yang mengahasilkan nilai benar (true) atau salah (false). Operator exists akan memberikan nilai benar (true) kalau sub query menghasilkan paling tidak sebuah baris / record.
Contoh :
Akan ditampilkan daftar nama pegawai yang sudah mempunyai departemen.

select nama from pegawai where exists (select*from departemen where id_departemen = pegawai.id_departemen);

Keterangan :Perintah pada sub query diatas berisi pengecekan id_departemen pada tabel pegawai apakah ada?.

Contoh 2 :
Akan ditampilkan daftar nama pegawai yang tidak mempunyai departemen :

select nama from pegawai where not exists (select*from departemen where id_departemen = pegawai.id_departemen);

Keterangan :Perintah pada sub query diatas sama dengan contoh 1, hanya ditambahkan dengan not sebelum exists untuk pengecekan id_departemen di tabel pegawai apakah tidak ada?.

Operator Any(Some)
Operator Any (some) hampir sama penggunaannya seperti Exists. Tetapi operator relasi yang digunakan biasanya selain = (sama dengan). hal tersebut disebabkan apabila operator relasi = yang digunakan, maka sebetulnya fungsi operator Any (some) sama seperti operator IN, sehingga kondisi seperti itu tidak dianjurkan karena lebih mudah pemahamannya apabila menggunakan operator IN.
Contoh :
Akan menampilkan daftar nama pegawai dan gaji yang gajinya tidak paling sedikit :

select nama, gaji from pegawai where gaji > any (select gaji from pegawai);

Operator All
Operator all digunakan untuk melakukan pembandingan dengan sub query. Kondisi dengan all menghasilkan nilai benar jika pembandingan menghasilkan benar untuk setiap nilai dalam sub query.
Contoh :
Akan menampilkan nama dan gaji pegawai yang gajinya lebih rendah daripada semua pegawai yang pekerjaannya ‘SALESMAN’ :

select nama where gaji < all (select gaji from pegawai where pekerjaan = 'SALESMAN');

Sub query (seubselect) hanya dapat digunakan untuk MySQL versi 3.24, Sehingga parintah-perintah diatas tidak dapat dijalankan di MySQL ini(versi 3.23). Tetapi, dengan menggunakan option LEFT JOIN, masalah-masalah diatas dapat diselesaikan. Contoh :

select * from score where event_id in (select even_id from even where type = 'T');

Apabila dituliskan dengan cara lain menjadi :

select score.* from score, event where score.even_id = even.even_id and type = 'T';

Contoh 2 :

select nama from pegawai where gaji = (select max(gaji) from pegawai);

Apabila dituliskan dengan cara lain menjadi :

select max(gaji) from pegawai;
select nama from pegawai where gaji = 5000;

Contoh 3 :

select*from student where student_id not in (select student_id from absence);

Apabila dituliskan dengan cara LEFT JOIN menjadi :

select student.* from student left join absence on student.student_id = absence.student_id where absence.student_id is null;


Hasil Praktikum

1. Menampilkan nama fakultas dan jumlah mahasiswa yang mampunyai ketentuan nama fakultas yang dimunculkan dengan jumlah mahasiswanya terkecil.

1 tampil count

2. Menampilkan nama mahasiswa, nama fakultas, alamat dengan syarat nama fakultas sama dengan edi dan alamatnya tidak sama dengan luki.

2 tampil select

3. Membuat index di tabel mahasiswa(alamat). Kemudian buat  lagi index yang bersifat unik pada  tabel  fakultas(fak_nama)  kemudian amati perbedaannya  ketika memasukkan data yang sama.

3 index

 

Lakukan pengecekan, dan amati yang terjadi.

 

3 index cek

4. Buat  kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya.

4 create unique

LAkukan pengecekan.

4 create unique cek

5. Pindahkan data dari tabel mahasiswa, fakultas ambil kolom nim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai “identitas”.

5 memindah data

6. Buatlah contoh penggunaan check pada sub bab pembahasan CHECK. Kemudian masukkan beberapa data baik yang sesuai dengan criteria check maupun yang bukan dan amati perbedaannya.

“Tidak bisa dilakukan di Mysql”

7. Inputkan data di  tabel mahasiswa dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di  akhiri  dengan  tanda  “+”    seperti  berikut  :  “   paloh+++”. kemudian munculkan seluruh data dan ilangkan spasi didepan.

7 insert +++

Lakukan Pengecekan.

7 cek ltrim

8. Munculkan data mahasiswa dengan hilangkan karakter “+” di akhir data dan karakter “a” di awal kata pada kolom nama.

8 trim

 

Hasil Praktikum PostgreSQL

1. tampil count mysql 2 tampilkan nama 3 cek penambahan index 3 create index 4 alter unique 5 memindah tabel 6 check

7 insert +++7 ltrim

8 trim

Evaluasi Perbandingan Datasbase Mysql dengan PostgreSQL

1. Cara menghapus index:

postgreSQl :  DROP INDEX Nama_index;

Mysql : Alter table nama_table_dari_Index drop index nama_index;

2. Cara memindah data :

postgreSQl : Select nim_mah, nama_mah, alamat_mah, nama_fak into identitas from mahasiswa,fakultas;

Mysql : create identitas select nim_mah, nama_mah, alamat_mah, nama_fak feom mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak;

3. Cara membuat CHECK :

postgreSQL : alter table add check (gender in (‘L’,’P’);

Mysql : tidak bisa gan, saya baca – baca di artiker hanya bisa digunakan di Mysql Server.

 

Kesimpulan

Dalam pembuatan database kita dapat menggunakan sub querry untuk mempermudah penampilan hal -hal yang lumyan rumit dalam penyortiran, dan kita bisa membuat index untuk mempermudah pencarian dan mempercepat pencarian.

 

Daftar Pustaka

http://bloglieken.blogspot.com/2011/05/sub-query-subselect.html

Musthafa, Aziz (2013). Modul Praktikum Desain Basis Data. Fakultas Sains dan Teknologi UIN Malang.

Normalisasi Database

Laporan 6

Normalisasi Database

Landasan Teori

  1. Pengertian Normalisasi
    •Sebuah upaya untuk memperoleh sebuah basis data dengan struktur yang baik (ruang penyimpanan
    yang  efisien) dengan cara menerapkan sejumlah aturan (bentuk normal) pada setiap tabel yang menjadi
    anggota basis data tersebut.Tujuan Normalisasi
    •Agar data yang ada tidak redundan dan memiliki data integrity yang kuat sehingga ketika kita melakukan
    relasi antara tabel akan dengan mudah kita menjaga data integrity dan mendapatkan datanya.2. Langkah normalisasi
    1. Bentuk Normal ke Satu(1NF)
    a. Syarat :
    b. Tidak ada set atribut yang berulang atau bernilai ganda.
    c. Telah ditentukannya primary key untuk tabel atau relasi.
    d. Tiap atribut hanya memiliki satu pengertian.
    e. Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang
    terpisah.

    2. Bentuk Normal ke Dua(2NF)
    a. Syarat :
    b. Bentuk data telah memenuhi kriteria bentuk normal ke satu.
    c. Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada
    primary key

    3. Bentuk Normal ke Tiga(3NF)
    a. Syarat :
    b. Bentuk data telah memenuhi kriteria bentuk normal ke dua.
    c. Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap
    atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki
    ketergantungan fungsional terhadap primary key di relasi itu saja

  2. PENERAPAN BENTUK NORMALISASI

Pada proses perancangan database dapat dimulai dari dokumen dasar yang dipakai

dalam sistem sesuai dengan lingkup sistem yang akan dibuat rancangan databasenya. Berikut ini

adalah contoh dokumen mengenai faktur pembelian barang pada PT. Revanda Jaya.

dasar teori 1

Sehubungan dengan dokumen dasar tersebut, tahapan yang harus dilakukan untuk

melakukan normalisasi data adalah sebagai berikut:

  1. Bentuk Unnormalisasi
    Langkah pertama dalam melakukan normalisasi data adalah dengan membentuk contoh data
    tersebut didtas dengan membentuk unnormalisasi data, dengan cara mencantumkan semua
    atribut data yang ada apa adanya seperti terlihat berikut ini :
    dasar teori 2
    Gambar 7.2. Relasi faktur unnormalisasiPada relasi diatas adalah dengan menuliskan semua data yang ada yang akan direkam,
    data yang double tidak perlu ditulis. Terlihat baris / record yang tidak lengkap. Sulit dibayangkan
    bagaimana bentuk baris yang harus dibentuk untuk merekam data itu.2. Bentuk Normal Pertama (1 NF)
    Bentuklah menjadi bentuk normal pertama dengan memisah-misahkan data pada atributatribut
    yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya. Bentuk
    relasi adalah flat file. Dengan normal pertama kita dapat membuat satu tabel yang terdiri dari 11
    Atribut yaitu _
    (No_Faktur, Kode_Supplier, Nama_Supplier, Kode_Barang, Nama_Barang, Tanggal,
    Jatuh_Tempo, Qty, Harga, Jumlah, Total ).
    Sehingga hasil daripada pembentukan normal pertama (1 NF) adalah sebagai berikut ini :
    dasar teori 3
    Gambar 7.3. Relasi memenuhi 1 NF

    Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses
    ANOMALI insert, update dan delete berikut ini:
    a). Inserting / Penyisipan
    Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi
    pembelian, sehingga supplier baru bisa dimasukkan kalau ada transaksi pembelian.
    b). Deleting / Penghapusan
    Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada
    penghapusan data supplier S02 (Hitachi) padahal data tersebut masih diperlukan.
    c). Updating / Pengubahan
    Kode dan nama supplier terlihat ditulis berkali-kali, bila nama supplier berubah, maka di
    setiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten.
    Atribut jumlah (merupakan atribut turunan) seharusnya tidak perlu, karena setiap harga
    dikali kuantitas akan menghasilkan jumlah, sehingga hasilnya akan menjadi lebih konsisten.

    3. Bentuk Normal Kedua (2 NF)
    Bentuk normal kedua dengan melakukan dekomposisi relasi diatas menjadi beberapa
    relasi dan mencari kunci primer dari tiap-tiap relasi tersebut dan atribut kunci haruslah unik.
    Melihat permasalahan faktur di atas, maka dapat diambil beberapa kunci kandidat : ( No_Faktur,
    Kode_Supplier, dan Kode_Barang ). Kunci kandidat tersebut nantinya bisa menjadi kunci primer
    pada relasi hasil dekomposisi.
    Dengan melihat normal pertama, kita dapat mendekomposisi menjadi tiga relasi berserta
    kunci primer yang ada yaitu : relasi Supplier (Kode_Supplier), relasi Barang (Kode_Barang), dan
    Relasi Faktur (No_Faktur). Dengan melihat ketergantungan fungsional atribut-atribut lain terhadap
    atribut kunci, maka didapatkan 3 (tiga) relasi sebagai berikut :
    Relasi Supplier
    dasar teori 4

    Relasi Barang
    dasar teori 5

    Relasi Faktur
    dasar teori 6

Gambar 7.4. Relasi memenuhi 2 NF

Kamus Data dari masing-masing relasi tersebut diatas adalah sebagai berikut:
Supllier = { Kode_Supplier, Nama_Supplier }
Barang = { Kode_Barang, Nama_Barang, Harga }
Faktur = { No Faktur, Kode Barang Kode_Supplier, Tanggal, Jatuh_Tempo, Qty }

Dengan pemecahan relasi di atas, maka untuk pengujian bentuk normal kesatu (1 NF)
yaitu insert, update, dan delete akan terjawab. Kode dan nama supplier baru dapat masuk
kapanpun tanpa adanya transaksi pada tabel faktur. Demikian pula untuk proses update dan
delete untuk tabel Supplier dan Barang.
Pada bentuk normal kedua tersebut masih terjadi permasalahan yaitu pada relasi Faktur,
yaitu :
1). Atribut Quantitas pada relasi Faktur, tidak tergantung pada kunci utama, atribut tersebut
bergantung fungsi pada Kode Barang + no_faktur, hal ini dinamakan ketergatungan transitif
dan haruslah dipilah menjadi dua relasi.
2). Masih terdapat pengulangan, yaitu setiap kali satu faktur yang terdiri dari 5 macam barang
maka 5 kali juga dituliskan no_faktur, tanggal, dan jatuh_tempo. Hal ini harus dipisahkan bila
terjadi penggandaan tulisan berulang-ulang.

4. Bentuk Normal Ketiga (3 NF)
Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang
bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk
normal kedua (2 NF).
Untuk emmenuhi bentuk normal ketiga (3 NF), maka pada relasi faktur harus
didekomposisi (dipecah) lagi menjadi dua relasi yaitu relasi faktur dan relasi transaksi barang,
sehingga hasilnya adalah sebagai berikut ini:

dasar teori 7
Gambar 7.5. Relasi memenuhi 3 NF

 

 

Hasil Praktikum di Lab

Soal

Soal Lab

 

Langlah pertama Unnormalization

Unnormalitazion

 

Langkah kedua 1NF

1NF

 

Langkah ketiga 2NF

2NF

 

Langkah keempat 3NF

3NF

 

 

Hasil Tugas Rumah

Soal

soal tgs

 

Langkah pertama Unnormalization

Unnormalitazion-tgs

 

Langkah kedua 1NF

1NF-tgs

 

Langkah ketiga 2NF

2NF-tgs

 

Langkah keempat 3NF

3NF-tgs

 

 

Kesimpulan

Dari pembahasan  diatas,normalisasi adalah sebuah upaya untuk memperoleh sebuah basis data dengan struktur yang baik (ruang penyimpanan yang efisien) dengan cara menerapkan sejumlah aturan (bentuk normal) pada setiap tabel yang menjadi anggota basis data tersebut. Dari data diatas dapat disimpulkan,cara-cara melakukan normalisasi data: 1. Bentuk Normal ke Satu(1NF), 2. Bentuk Normal ke Dua(2NF), 3. Bentuk Normal ke Tiga(3NF)

AGREGASI SQL DAN VIEW

Laporan 4

AGREGASI SQL DAN VIEW

 

Landasan Teori

AGREGASI

Mengurutkan Data dengan ORDER BY
Mengurutkan data ascending maupun descending

select*from mhs order by nim asc;

Mengelompokkan data dengan GROUP BY
Ingin mengelompokkan data berdasarkan kota

select kota from mhs group by kota;

Menentukan kondisi pada GROUP BY
Perintah having hanya dapat digunakan jika group by di gunakan.
contoh :
akan dikelompokkan data pegawai berdasarkan pekerjaan, kecuali pegawai yang pekerjaanya ‘tukang sapu’

select pekerjaan from pegawai group by pekerjaan having pekerjaan > ‘tukang sapu’ ;

Menggunakan Fungsi Agregasi
Fungsi agregrasi adalah fungsi yang disediakan oleh MySQL untuk menghasilkan sebuah nilai berdasarkan sejumlah data. Adapun beberapa fungsi agregasi pada MySQL adalah :
AVG -> Rata-rata
COUNT -> Jumlah Data
MAX -> Terbesar
MIN -> Terkecil
SUM -> Jumlah Nilai
Fungsi AVG
menghitung rata-rata gaji pegawai

select avg(gaji) from pegawai;

menghitung rata-rata pegawai per pekerjaan

select pekerjaan, avg(gaji) from pegawai group by pekerjaan;

menghitung rata-rata gaji pegawai yang pekerjaannya SALESMAN

select pekerjaan,avg(gaji) from pegawai group by pekerjaan having job=’salesman’;

Fungsi COUNT
menghapus jumlah pegawai di tabel begawai.

select count(*) from pegawai;

menghitung jumlah pegawai per pekerjaan

select pekerjaan,count(*) from pegawai group by pekerjaan;

Fungsi MAX
menampilkan informasi gaji terbesar

select max(gaji) from pegawai;

menampilkan informasi gaji terbesar pegawai per pekerjaan.

select pekerjaan, max(gaji) from pegawai group by pekerjaan;

Fungsi MIN
menampilkan informasi gaji terkecil

select min(gaji) from pegawai;

menampilkan informasi gaji terkecil pegawai per pekerjaan.

select pekerjaan, min(gaji) from pegawai group by pekerjaan;

Fungsi SUM
menghitung total gaji pegawai.

select sum(gaji) from pegawai;

menghitung jumlah gaji pegawai per pekerjaan dengan tampilan urut naik berdasarkan pekerjaan.

select pekerjaan, sum(gaji) from pegawai group by pekerjaan order by pekerjaan asc;

menghitung jumlah gaji pegawai per pekerjaan dengan tampilan urut menurun berdasarkan jumlah gaji.

select pekerjaan, sum(gaji) as bayaran from pegawai group by pekerjaan order by bayaran desc;

CASE

CASE WHEN condition THEN result
[WHEN ...]
[ELSE result] END

Berikut contoh query penggunaan case, penentuan umur jika umurnya

dibawah 1986-01-01 dianggap dewasa dan lebih dari itu dianggap remaja :

select txt_namadepan, txt_namaakhir, dt_tgllahir, case when dt_tgllahir <

‘1986-01-01’ then ‘dewasa’ else ‘balita’ end as umur from pegawai ;

 

PANDANGAN (VIEW)

Pengertian Pandangan
Pandangan (view) adalah tabel semu karena secara fisik tidak ada.
Keuntungan view adalah :

  • Query yang kompleks dapat disembunyikan sehingga informasi dapat di akses dengan cepat.
  • Untuk mengatur data tertentu menjadi tersembunyi bagi pemakai
  • Untuk melindungi data yang besifat rahasia

Cara Menciptakan Pandangan
Untuk membuat pandangan / view digunakan perintah CREATE VIEW.
Contoh :

create view mhs_view as select nim, nama, alamat from mahasiswa;

Keterangan : mhs_view : nama view(pandangan)

Memperoleh Informasi Pada View
Setelah suatu view dibuat, maka view tersebut dapat diakses sebagaimana tabel.
Contoh :

select * from mhs_view;

Membuat View dari beberapa Tabel

create view hasil_view as select a.nim, a.nama, a.alamat from mahasiswa a, mkuliah b, krs c where a.nim = c.nim and b.kode_kul = c.kode_kul and b.nama_kul = 'PANCASILA';

Membuat View Pengelompokan
View yang di dasarkan pada pengelompokan juga dapat dibuat.
Contoh :

create view klp_view as select departemen, count(*) from pegawai group by departemen;

Memberi nama lain terhadap kolom
Judul kolom / field yang akan ditampilkan dapat diubah namanya dengan cara meletakkan nama – nama judul kolom diantara nama view dan as.
Contoh :

create view klp_view (nama_departemen, jumlah) as select departemen, count(*) from Pegawai group by departemen;

 

Hasil Praktikum

1.  Dari tabel mahasiswa yang telah dibuat tambahkan 3 data lagi , tambahkan kolom gender kemudian update datanya dan tampilkan banyaknya data mahasiswa yang telah di inputkan. Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
1

 

2.  Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 2.
2

 

3.  Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut:

Nama fakultas

Count(*)

  Saintek

1

  Psikologi

2


3

 

4.  Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
4

 

5.  Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan
5

 

6.  Buatlah view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas
6

 

 

Evaluasi Perbandingan DBMS PostgreSQL dan MySQL

Setelah membandingkan antara posgreSQL dengan mySQL, menurut saya sama semua perintahnya, tidak ada perbedaan.

 

Kesimpulan

Dalam pembuatan syntax sql, kita dapat menggunakan operasi hitung atau mencari data yang terbesar atau yang terkecil. Sehingga dapat memudahkan kita dalam penggunaan database sorting.

 

Daftar Pustaka

Pengenalan Operator Dasar

Laporan 4

Pengenalan Operator Dasar

Landasan Teori

Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan dengan tabel yang lainnya.

1)    Menampilkan data untuk semua kolom menggunakan asterisk (*)

Syntax : SELECT * FROM namatabel;

2)   Menampilkan data untuk kolom tertentu

Syntax : SELECT kolom1,kolom2,kolom-n FROM namatabel;

3)    Menampilkan data dengan kondisi data tertentu dengan klausa WHERE

Syntax : SELECT * FROM namatabel WHERE kondisi;

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain “=” adalah : > (lebih dari), < (kurang dari), < > (tidak sama dengan), >= (lebih dari atau sama dengan), <= (kurang dari atau sama dengan). Adapun operator lain, yaitu : AND, OR, NOT, BETWEEN-AND, IN dan LIKE.

4)    Memberikan nama lain pada kolom

Syntax : SELECT namakolomlama AS namakolombaru FROM namatabel;

5)    Menggunakan alias untuk nama tabel

Syntax : SELECT nmalias.jenis, nmalias.harga FROM namatabel nmalias;

6)   Menampilkan data lebih dari dua tabel

Syntax :

SELECT * from namatabel1,namatabel2,namatabel-n;

Isi tabel jenisfilm :

Isi tabel film :

7)    Nested Queries / Subquery (IN, NOT IN, EXISTS, NOT EXISTS)

Subquery berarti query di dalam query. Dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query di atasnya.

Subquery terletak di dalam klausa WHERE atau HAVING. Pada klausa WHERE, subquerydigunakan untuk memilih baris-baris tertentu yang kemudian digunakan oleh query. Sedangkan pada klausa HAVING, subquery digunakan untuk memilih kelompok baris yang kemudian digunakan oleh query.

8)    Operator comparison ANY dan ALL

Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUE. Ilustrasinya :

Gaji > ANY (S)

Jika subquery S menghasilkan G1, G2, …, Gn, maka kondisi di atas identik dengan :

(gaji > G1) OR (gaji > G2) OR … OR (gaji > Gn)

Operator ALL digunakan untuk melakukan perbandingan dengan subquery. Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nilai query terhadap hasil subquery.

9)    Aggregate Functions (COUNT, SUM, AVG, MIN, MAX)

      • COUNT : Perintah yang digunakan untuk menghitung jumlah baris suatu kolom pada tabel.
      • SUM : Perintah yang digunakan untuk menghitung jumlah nilai suatu kolom pada tabel.
      • AVG : Perintah yang digunakan untuk menghitung rata-rata dari nilai suatu kolom pada tabel.
      • MIN :  Perintah yang digunakan untuk menampilkan nilai terkecil dari suatu kolom pada tabel.
      • MAX : Perintah yang digunakan untuk menampilkan nilai terbesar dari suatu kolom pada tabel.

10)    SQL dengan GROUP BY dan HAVING

Klausa GROUP BY digunakan untuk melakukan pengelompokan data. Klausa HAVING digunakan untuk menentukan kondisi bagi klausa GROUP BY. Kelompok yang memenuhi HAVING saja yang akan dihasilkan.

11)    ORDER BY

Klausa ORDER BY digunakan untuk mengurutkan data berdasarkan kolom tertentu sesuai dengan tipe data yang dimiliki. atau tambahkan ASC untuk pengurutan secara ascending(menaik) dan DESC untuk pengurutan secara descending (menurun)

12)    UNION, INTERSECT dan EXCEPT

      • UNION

UNION merupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

      • INTERSECT

INTERSECT merupakan operator yang digunakan untuk memperoleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua querytersebut dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

Syntax : SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2.

Pada MySQL tidak terdapat operator INTERSECT namun sebagai gantinya dapat menggunakan operator IN seperti contoh 1 pada bagian Nested Queries.

      • EXCEPT / Set Difference

EXCEPT merupakan operator yang digunakan untuk memperoleh data dari dua buahquery dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

Syntax : SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2

Pada MySQL tidak terdapat operator EXCEPT namun sebagai gantinya dapat menggunakan operator NOT IN seperti contoh 2 pada bagian Nested Queries.

 

Hasil Praktikum

1. Tampilkan data mahasiswa dengan nama dari kolomnya berubah menjadi nomor_identitas, nama, alamat,nama_fakultas tanpa harus merubah nama kolom secara permanen.

1

 

 

2. Tampilkan  nama  mahasiswa   fakultas  saintek  yang  berjenis  kelamin  laki-laki. Kemudian nama mahasiswa fakultas saintek atau berjenis kelamin laki-laki.

2

 

3. Tampilkan data mahasiswa dari nomor 3 sampai dengan 5, kemudian tampilkan juga data mahasiswa yang bukan dari nomor 3 sampai dengan 5 menggunakan between dan tanpa menggunakan between

3

 

4. Tampilkan mahasiswa dengan nomor 2,3,5 menggunakan operator IN.

4

 

5. Tampilkan semua data mahasiswa yang namanya mempunyai awalan huruf “a”.

5

 

 

 

6. Tampilkan semua data mahasiswa yang namanya mempunyai akhiran “a” dan huruf ke-3 dari nama tersebut terdapat huruf “n”.

6

 

 

7. Tampilkan nomor fakultas di tabel mahasiswa dengan nomor harus tidak ada yang sama dari baris pertama sampai akhir.

7

 

8. Tampilkan data mahasiswa 3 baris saja.

8

 

 

9.   Tampilkan data mahasiswa dengan ciri-ciri memiliki nama awalan a kemudian kata selanjutnya boleh r atau boleh t atau boleh d. misalkan yang memenuhi kriteria ciri tersebut seperti adi, atik, arif, adam dll.

9

 

10. Buat tabel dan tampilkan  data  dari  kedua  tabel  tersebut  menggunakan  UNION,  EXCEPT  dan INTERSECT

10

 

Evaluasi Perbandingan DBMS PostgreSQL dan MySQL

Dari serangkaian praktikum yang dilakukan saya kira semua sama, hanya berbeda pada bagian EXCEPT  dan INTERSECT.

Pada PostgreSQL

Except :

select  nama_kolom  from  nama_tabel  except  select  nama_kolom  from nama_tabel;

Intersect :

select  nama_kolom  from  nama_tabel  intersect  select  nama_kolom  from nama_tabel;

Pada MySQL

Except :

SELECT * FROM namatabel1 WHERE kolom NOT IN (SELECT kolom FROM namatabel2);

Intersect :

SELECT * FROM namatabel1 WHERE kolom IN (SELECT kolom FROM namatabel2);

 

Kesimpulan

Saya kira kedua DBMS memiliki syntax yang sama, cuman berbeda sedikit pada Intersect dan Except, secara umum saya memilih postgreSQL karena syntax-nya lebih ringkas. Tapi untuk keperluan aplikasi mendatang sebaiknya kita belajar keduanya karena mungkin kelak kita akan membutuhkan salah satunya.

 

Daftar Pustaka

Pengenalan SQL

Dasar Dasar Perintah SQL

Laporan 3

Perintah Dasar MySQL

 

Landasan Teori

Materi pada bab ini adalah perintah – perintah dasar MySQL yaitu pengelolaan tabel, dan manipulasinya. Dalam dunia basis data, terdapat istilah hubungan antar tabel atau refernces. Untuk mengolah basis data sangat diperlukanlah yang namanya hubungan antar tabel tersebut agar setiap tabel yang di buat bisa saling terkait. Kita kenal kunci utama (primary key) dan kunci tamu (foreign key). Tujuan utama dari adanya kedua istilah tersebut adalah pengidentifikasian tiap table dan kejelasan hubungan antara 2 atau lebih table. Primary key adalah satu atau beberapa kolom pada table yang mengidentifikasikan tiap kolom dan baris pada table tersebut. Sedangkan Foreign Key adalah satu atau beberapa kolom pada table yang merupakan primary key pada table satu namun diletakan pada table dimana tablenya berelasi dengan table dirinya. (1)

Berikut perintah – perintahnya.

Perintah melihat database :

show databases;

Perintah membuat database :

Create database namadatabase;

Contoh : create kuliah;

Perintah menggunakan database yang telah dibuat :

Use namadatabase;

Contoh : create kuliah;

Perintah membuat table :

Create table namatabel (namafield1 type(length),namafield2 type(length),primary key(namafield1));

Contoh : create table mahasiswa(npm char(9), nama_mahasiswa varchar(20),umur int(2),alamat text, primary key(npm));

create table mata_kuliah(kode_matkul char(5), nama_matkul varchar(30), primary key(kode_matkul));

Contoh : create table krs(npm char(9), kode_matkul char(5), semester int(2), tahun_ajaran char(10), primary key (npm,kode_matkul,semester));

Perintah melihat table apa saja yang ada pada database :

Show tables;

Perintah melihat deskripsi table/melihat kolom apa saja beserta type, length yang ada pada table :

Desc namatabel;

Contoh : desc mahasiswa;

Perintah menambah field pada table :

Alter table namatabel add namafield type(length);

Contoh : alter table mahasiswa add jenis_kelamin int(1);

Perintah menghapus table :

drop table namatabel;

contoh : drop table mahasiswa;

Perintah mengganti nama field pada table :

Alter table namatabel change namafield_lama namafield_baru type(length);

Contoh : alter table mahasiswa change nama_mahasiswa name_student varchar(20);

Perintah mengubah ukuran (length) dari suatu field :

Alter table namatabel modify namafield type(length) not null;

Contoh : alter table mahasiswa modify name_student varchar(30);

Perintah menghapus field pada table :

Alter table namatabel drop namafield;

Contoh : alter table mahasiswa drop jenis_kelamin;

Perintah menginput satu data pada table langsung untuk semua field :

Insert into namatabel values(‘data1’,’dataA’);

Contoh : insert into mahasiswa values(‘G1A008023’,’Wiwid KZ’,’20’,’Bengkulu’);

Perintah menginput beberapa data pada table langsung untuk semua field :

Insert into namatabel values (‘data1’,’dataA’),(‘data2’,’dataB’);

Contoh : insert into mahasiswa values(‘A1F006010’,’Sanity KZ’,’23’,’Bengkulu’),(‘G1A008023’,’Wiwid KZ’,’20’,’Bengkulu’);

Perintah menginput data pada table hanya untuk field tertentu :

Insert into namatabel (namafield) values(‘data1),(‘data2’);

Contoh : insert into mahasiswa (npm) values(‘F1A006010’),(‘GiA008023’);

Perintah melihat isi table keseluruhan :

Select * from namatabel;

Contoh : select * from mahasiswa;

Perintah menampilkan isi table hanya untuk field tertentu saja :

Select namafield from namatabel;

Contoh : select npm from mahasiswa;

Perintah isi/data lengkap table pada baris tertentu saja :

Select * from namatabel where namafield_key=’data’;

Contoh : select * from mahasiswa where npm=’G1A008023’;

Perintah mengubah isi dari field yang diinginkan :

Update namatabel set namafield=’data_baru’ where namafield_key=’data_baru’;

Contoh : update mahasiswa set name_student=’Sanity Afsyawida KZ’ where npm=’A1F006010’;

Perintah menghapus baris yang diinginkan:

Delete from namatabel where namafield_key=’data’;

Contoh : delete from mahasiswa where npm=’G1A008023’;

Perintah menggabungkan beberapa tabel:

Alter table namatabel1 add foreign key(namafield_key) references namatabel2(namafield_key);

Contoh : alter table mahasiswa add foreign key(npm) references krs(npm);

Alter table mata_kuliah add foreign key(kode_matkul) references krs(kode_matkul);

Perintah memanggil beberapa data dari beberapa tabel :

Select namafield1,namafield2,namafield3 from namatabel1 inner join namatabel2 where namatabel1.namafield_key=namatabel2.namafield_key;

Contoh : select a.npm,a.nama,b.nama_matkul,c.semester from mahasiswa a inner join mata_kuliah b inner join krs c where a.npm=c.npm and b.kode_matkul=c.kode_matkul;

Perintah memanggil isi tabel yang dikelompokkan berdasarkan field tertentu:

Select * from namatabel group by namafield;

Contoh : select * from mahasiswa group by npm;

Perintah memanggil isi tabel yang diurutkan secara ascending descending

Ascending :

Select * from namatabel order by namafield;

Descending :

Select * from namatabel order by namafield desc;

Contoh : select * from mahasiswa order by npm desc;

Perintah mencari nilai maksimum pada suatu field pada tabel tertentu :

Select max(namafield) from namatabel;

Contoh : select max(umur) from mahasiswa;

Perintah mencari nilai minimum pada suatu field pada tabel tertentu :

Select min(namafield) from namatabel;

Contoh : select min(umur) from mahasiswa;

Perintah  mencari banyaknya record/data dalam sebuah field pada sebuah tabel :

Select count(namafield) from namatabel;

Contoh : select count(npm) from mahasiswa;

Perintah menjumlahkan isi dari field:

Select sum(namafield) from namatabel;

Contoh : select sum(umur) from mahasiswa;

Perintah mencari rata2 nilai isi dari suatu field :

Select avg(namafield) from namatabel;

Contoh : select avg (umur) from mahasiswa;

Perintah menentukan standard deviasi isi dari suatu field:

Select std(namfield) from namatabel;

Contoh : select std(umur) from mahasiswa;

—-(2)

 

Hasil Praktikum

  1. Gunakan tabel mahasiswa, membuat record.

Membuat tabel fakultas beserta recordnya :

1 create fakultas

 

Mengisi tabel fakultas :

1 create isi tabel fakultas

Membuat tabel mahasiswa dan merelasikannya ke tabel fakultas :

1 create mahasiswa

Mengisi tabel Mahasiswa :

1 create isi tabel mahasiswa

 

  1. Menampilkan data mahasiswa berupa nim dan nama.

2 tampilkan nim nama

 

  1. Menampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.

3 tampikan berdasarkan nim

 

  1. Menampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

4 tampikan relasi

 

  1. Menghapus data mahasiswa yang memiliki nim : 13

5 hapus record

 

  1. Mengubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim: 12

6 edit record

 

  1. Menampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim

mahasiswa, dan menampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

7 sorting

 

  1. Menampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.

8 tampikan semua tabel

 

  1. Menampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”

9 tampilkan mahasiswa saintek

 

10. Menampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.

10 mahasiswa non  saintek

 

11. Menghapus data fakultas “SAINTEK”.

11 delete saintek

 

 

Perbandingan DBMS MySQL dengan PostgreSQL :

Pada perintah dasar SQL ini menurut saya semua sama, tidak ada perbedaan yang mencolok pada kedua DBMS mySQL dan postgreSQL, jadi semua perintahnya mirip.

 

Kesimpulan

Pada dunia DBMS tidak selamanya perintah itu berbeda, jadi pada dasarnya perintah – perintah dasar manipilasi tabel adalah sama, karena mungkin sudah menjadi standart dalam dunia database.

 

Daftar Pustaka

Pembuatan dan Manajemen Tabel

Laporan 2

Pembuatan dan Manajemen Tabel

 

  1. Landasan Teori

Sebuah tabel terdiri dari baris (row) dan kolom (column), dimana jumlah dan  nama kolom harus didefinisikan terlabih dahulu di awal. Sedangkan baris merupakan  sebuah variable yang dapat dihapus  dan diisi kapanpun, sehingga jumlahnya selalu  berubah sesuai dengan jumlah data didalamnya.  Setiap kolom dalam tabel mempunyai  tipe data, tipe data digunakan untuk membatasi jenis data yang bisa dimasukkan,  sehingga akan mempermudah dalam menggunakannya dan melakukan pengelolaan  selanjutnya. Sangat disarankan pada saat akan membuat tabel, sebaiknya membuat  sebuah konvensi khusus dalam penentuan tabel-tabel yang akan dibuat dan memberikan  nama kolom maupun tipe datanya.(1)

Berikut syntax database mysql :

Membuat database

Untuk membuat database baru, sehingga tidak berlaku jika database sudah ada atau anda tidak memiliki privilege.

Sintaksnya :

CREATE DATABASE nama_db ;

Menghapus database

Untuk menghapus database beserta seluruh table di dalamnya. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege.

Sintaksnya :

DROP DATABASE nama_db ;

Menggunakan database

Untuk menjadikan database menjadi default dan referensi dari table yang nantinya anda gunakan. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege.

Sintaksnya :

USE nama_db ;

Menampilkan database

Untuk menampilkan daftar yang ada dalam system saat itu.

Sintaksnya :

SHOW DATABASES ;

Membuat Tabel

Untuk membuat table minimal anda harus menentukan namanya dan tipe kolom yang anda inginkan. Sintaks yang paling sederhana (tanpa ada definisi lain) adalah :

 Sintaxnya :

CREATE TABLE nama_tbl (kolom1 tipekolom1(),kolom2 tipekolom2()) ;

Membuat Temporary Tabel

Syntaxnya

CREATE TEMPORARY TABLE nama_table (kolom1 tipekolom1(),kolom2 tipekolom2()) ;

Menghapus table

Untuk menghapus table dalam database tertentu. Jika dilakukan maka semua isi, indeks dan atribut lain akan terhapus.

Sintaksnya :

DROP TABLE nama_tbl ;

Menghapus indeks

Untuk menghapus indeks pada suatu table.

Sintaksnya :

DROP INDEX nama-index ON nama_tbl ;

Melihat informasi table

Untuk melihat table apa saja yang ada di database tertentu.

Sintaksnya :

SHOW TABLES FROM nama_db ;

Sedangkan untuk melihat deskripsi table atau informasi tentang kolom gunakan sintaks :

DESC nama_tbl nama_kolom ;

atau

SHOW COLUMNS FROM nama_tbl FROM nama_db ;

Mendapatkan atau menampilkan informasi dari table

Untuk menampilkan isi table dengan option-option tertentu. Misalnya untuk menampilkan seluruh isi table digunakan :

SELECT * FROM nama_tbl ;

Untuk menampilkan kolom-kolom tertentu saja :

SELECT kolom1,kolom2,… FROM nama_tbl ;

Untuk menampilkan isi suatu kolom dengan kondisi tertentu

SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom ;

Modifikasi struktur table

Dapat digunakan untuk mengganti nama table atau mengubah strukturnya seperti manambah kolom atau indeks, menghapus kolom atau indeks, mengubah tipe kolom dsb.

Sintaks umum :

ALTER TABLE nama_tbl action ;

Untuk menambah kolom baru di tempat tertentu dapat menggunakan :

ALTER TABLE nama_tbl ADD kolom_baru type() definisi ;

Untuk menambah kolom_baru bertipe integer setelah kolom1 digunakan :

ALTER TABLE nama_tbl ADD kolom_baru INT NOT NULL AFTER kolom1 ;

Untuk menambah indeks baru pada table tertentu baik yang unik ataupun yang biasa:

ALTER TABLE nama_tbl ADD INDEX nama_index (nama_kolom) ;
ALTER TABLE nama_tbl ADD UNIQUE nama_indeks (nama_kolom) ;
ALTER TABLE nama_tbl ADD PRIMARY KEY nama_indeks (nama_kolom) ;

Untuk mengubah nama kolom dan definisinya, misalnya mengubah nama kolom_baru dengan tipe integer menjadi new_kolom dengan tipe char dengan lebar 30 digunakan:

ALTER TABLE nama_tbl CHANGE kolom_baru new_kolom CHAR(30) NOT NULL ;

Untuk menghapus suatu kolom dan seluruh atributnya, misal menghapus kolom1 :

ALTER TABLE nama_tbl DROP kolom1 ;

Untuk menghapus indeks baik yang unik ataupun yang biasa digunakan :

ALTER TABLE nama_tbl DROP nama_index ;
ALTER TABLE nama_tbl DROP PRIMARY KEY ;

——-(2)

Membuat Hak Akses Privilege

Untuk memberikan hak akses kepada sebuah user, MySQL menyediakan query GRANT. Berikut format dasar query GRANT:

GRANT hak_akses ON nama_database.nama_tabel TO 'nama_user'@'lokasi_user';

Berikut adalah format dasar penulisan query REVOKE:

REVOKE jenis_hak_akses (kolom1,kolom2) ON nama_database.nama_tabel FROM nama_user@lokasi_user;

——(3)

Hasil Praktikum

  1. Membuat tabel dengan nama abdan13650129 dan dengan fieldnya.

.1 create database

  1. Membuat tabel dengan nama pegawai dan fieldnya sama.

2. create table pegawai

  1. Menghapus kolom “alamat_idn” dan menampilkan struktur dari pegawai.

.3 drop colom

  1. Menambah kolom “pekerjaan_idn” dengan type data varchar dan menampilkan strukturnya.

.4 add colomn

  1. Mengubah nama tabel “pegawai” menjadi “pekerja13650129” dan mengubah kolom “pekerjaan_idn” menjadi “alamat_idn”.

.5 rename tble

  1. Membuat Primary Key pada tabel pekerja13650129 dan mengubah type data “alamat_idn” menjadi text.

.6 primary key

  1. Menghapus tabel pekerja13650129.

.7 drop kolom

  1. Membuat temporary tabel denagn nama mahasiswa_sementara dengan 3 kolom id, nama, dan tanggal lahir.

.8 temporary file

  1. Menghapus hak akses privilege pada tabel abdan13650129 dari user abdan_syakuro.

.10 revoke all

Mengecek revoke :

.10 cek revoke all

Memberikan hak akses privilege pada tabel abdan13650129 kepada user abdan_syakuro.

.10 grant all

Mengecek grant :

.10 cek grant all

Menghapus hak askes SELECT pada tabel abdan13650129 dari user abdan_syakuro.

.10 revoke select

Mengecek hak askes :

.10 cek revoke select

Perbandingan antara MySQL dengan PostgreSQL :

1.  Untuk pembuatan tabel tidak ada yang berbeda

2.  Untuk menghapus kolom ada perbedaan sedikit, yaitu ada penambahan ‘column’ dan tanda petik. Dan begitupula untuk perintah menambah kolom hanya penambahan kata ‘column’.

Contoh :

MySQL : alter table pegawai drop alamat_idn;

Postgre : alter table pegawai drop column “alamat_idn”;

3.  Untuk meruabah nama tabel hampir tidak ada perbedaannya, cuman postgreSQL ada tambahan ‘to’ setelh kata rename.

4.  Untuk penambahan primary key perintahnya sama.

5.  Untuk perintah mengubah type text ada perbedaan berikut perbedaanya :

MySQL :  alter table pekerja13650129 modify alamat_idn text;

Postgre :  alter table pekerja13650129 alter column alamat_idn type text;

6.  Untuk Hak akse pivilege, MySQL lebih rumit pendeklarasiannya, sedangkan Postgre lebih mudah.

7.  Untuk turunan Inherits di MySQL saya belum menemukan caranya, mungkin tidak ada. Dan inilah keunggulan Postgre lebih mudah digunakan ketika membuat table berdasarkan yang sudah ada.

 

Kesimpulan

Dari semua DBMS ada kelebihan dan kekurangannya, menurut saya MySQL lebih mudah digunakan Syntaxnya lebih simple ketimbang PostgreSQL, tetapi kita harus belajar keduanya karena mungkin suatu saat kita membutuhkan salah satunya. Sebagai Seorang programer kita dituntut untuk lebih sering berlatih coding agar lebih lancar untuk menyelesaikan masalah.

 

Daftar Pusataka

(1) Musthafa, Aziz (2013). Modul Praktikum Desain Basis Data. Fakultas Sains dan Teknologi UIN Malang.

(2) https://www.academia.edu/3276404/syntax_dasar_mysql

(3) http://www.duniailkom.com/cara-membuat-hak-akses-privileges-user-mysql-grant/

      http://www.duniailkom.com/cara-menghapus-hak-akses-user-mysql-revoke/