Its My Blog

Cari Blog Ini

  • Home
    • Version 1
  • Download
  • Social
  • Features
    • Lifestyle
    • Sports Group
      • Category 1
      • Category 2
      • Category 3
      • Category 4
      • Category 5
    • Sub Menu 3
    • Sub Menu 4
  • Contact Us
A. Landasan Teori

     Untuk membuat report di Java-Netbeans dengan menggunakan JasperReport dan iReport, sebelumnya kita perlu mengetahui pengertian dari JasperReport dan iReport terlebih dahulu, sebelum kita nanti membuatnya. Berikut adalah pengertiannya :
JasperReport : software(library) open source untuk reporting.
iReport : Visual Designer untuk membuat laporan yang kompleks, menggunakan JasperReport Library.
Setelah kita mengetahui pengertian dari JasperReport dan iReport, selanjutnya kita akan melakukan installasi JasperReport dan iReport pada Java Netbeans. 
kali ini kita akan menggunakan :
iReport versi 5.3.1
JasperReport versi 3.5.1
Jasperserver versi 3.5.1
disamping itu, kita juga membutuhkan beberapa library pendukung JasperReport antara lain :
mysql-connector-java-5.1.5-binjasperreports-3.5.1jasper-compiler-jdtcommons-logging-1.1commons-logging-1.0.4commons-digester-1.7common-collections-2.1.1commons-beanutils-1.7

B. Hasil Praktikum

     Setelah kita mengetahui apa itu JasperReport, iReport, dan juga sudah tahu apa saja yang kita gunakan saat instalasi JasperReport dan iReport pada Java Netbeans. 
  • Proses Instalasi
  1. Klik Tools > Plugins

  2. Klik Download > Add Plugins.. (select all plugin yang sudah kalian download) > Open

  3. Setelah file plugins sudah kita Open, selanjutnya install semua pada plugins. tunggu sampai selesai.
  4. Finish (proses installasi selesai)
  • Membuat Class Report.jrxml dan Add Library pendukung JasperReport
  1. Buatlah class Report.jrxml dalam satu package dengan class koneksi dan table yang pernah kita buat sebelumnya. caranya adalah : 
  2. Klik Kanan pada package > New > Report Wizard
    kalau belum ada pilihan Report Wizard, caranya adalah :
    Klik Kanan pada package > New > Other > Pilih Report Wizard 

  3. Pada Step ini ada beberapa hal yang harus kita perhatikan, seperti berikut ini :
  • isikan Name and Location (untuk ekstensi file namenya biarkan .jrxml) > Next
  • Klik New (untuk mengganti Connections/Data Sources) > pilih Database JDBC Connection > Next.
  • Masih Pada Steps ke-2 setelah tadi kita Next,kita harus mengisikan Name Database JDBC Connection, JDBC Driver (sesuaikan dengan DBMS yang kita pakai), JDBC URL (sesuaikan dengan database yang kita gunakan), Username dan Password (sesuaikan dengan Username dan password saat kita mengakses database kita). setelah semua terisi, kemudian klik Save.
  • Kemudian, ketikkan Query berikut : Select * from Mahasiswa; setelah itu klik Next
untuk masuk ke tahap berikutnya, kita harus memasukkan password (sesuaikan dengan password yang kita masukkan pada Steps 2.c).
  • Pada tahap ini kita harus memindahkan semua Fields yang ada ke textfield sebealh yang kosong. kemudian Next.
berikut ini tampilan setelah di kita memindahkan semua Field yang ada.
  • Kosongkan semua Group By > Next
  • Pada Step terakhir ini, pilih Tabular Layout > Next
  • Klik Finish.

Tampilan Report

  • Proses Pemanggilan File JRXML di Java
Kali ini kita akan membahas bagaimana cara memanggil file iReport yang berekstensi .jrxml agar dapat dieksekusi dari program dan menampilkannya ke dalam sebuah window, sehingga kita dapat melihat hasil laporan yang telah kita buat dengan iReport.
Sebelumnya, jangan lupa untuk mengimport beberapa library standar (sesuaikan dengan versi iReport) berikut ini yang digunakan ketika menjalankan program ke dalam project.
  • mysql-connector-java-5.1.5-bin
  • jasperreports-3.5.1
  • jasper-compiler-jdt
  • commons-logging-1.1
  • commons-logging-1.0.4
  • commons-digester-1.7
  • common-collections-2.1.1
  • commons-beanutils-1.7
kemudian kita masukkan ke dalam library project yang sudah dibuat seperti berikut :
  • Klik kanan pada Library > Add JAR/Folder 
  • berikut ni adalah tampilan berikutnya, Select All Library > Open
  • Finish 
Berikut ini adala tampilan Librariesnya setelah semua Library pendukung Jasper Report sudah kita Open

Setelah semuanya selesai, maka kita bisa melanjutkannya dengan membuat class java untuk memanggil file yang telah dibuat. untuk mempermudah gambaran kode programnya disini terdapat beberapa contoh listing dimana file report dipanggil berdasarkan tombol "print" sebagai berikut :

Setelah kita mengetahui contoh listingnya,.. sekarang kita coba untuk mengujinya

1. Pastikan Project Table dan koneksi pada pertemuan kemarin masih ada.
2. Open Project Table > Design > Tambahkan button "Print". seperti berikut ini :
3. Ketikan source codenya sesuai dengan contoh listing di atas. Berikut ini contohnya :

4. Berikan Action pada Button Print yang sudah kita buat. berikut source codenya.

5. Setelah program di run, berikut ini adalah tampilan Reportnya saat kita Klik Tombol Print.

Sampai dari sini kita bisa manampilkan report yang sudah kita buat. Kalau kita menginginkan untuk menampilkan salah satu data saja,. kita bisa menambahkan Parameter., misalnya kita bisa menggunakan parameter "nim mahasiswa". 

1. Pastikan kalian masih dalam project yang sama yaaa,... 
2. Klik class report yang sudah kita buat > Designer > Report Inspector > Add Parameter.

3. ganti nama parameter yang sudah kita buat, misal dengan nama "nim". kemudian Klik properties
    dan ganti parameter classnya menjadi "java.lang.Integer".

4. Klik tombol Tombol di samping preview.

5. Ganti Querynya dengan Query di bawah ini. kemudian Klik OK

6. Masuk pada class utama, tempat kita buat table. kemudian ganti method "param.clear();" menjadi
    "param.put("nim", Integer.parseInt(txtNim.getText()));" setelah itu running programnya.
   
    NB : "nim" bisa di sesuaikan dengan nama parameter yang sudah kita buat.

7.  Masukkan salah satu Nim yang sudah ada pada database > Klik Print.
     Maka yang ditampilkan hanya satu data mahasiswa saja, sesuai dengan nim yang kita masukkan.

Ok,.. sampai disini dulu ya,. dan SELAMAT MENCOBA ! 


Kesimpulan, Kritik, Saran

Sebelum kita mencoba membuat iReport, sebaiknya kita harus mengetahui terlebih dahulu penjelasannya, kemudian bagaimana cara installasinya, dan apa saja yang di perlukan untuk installasi JasperReport dan iReport ini. kita juga harus mengetahui library pendukung untuk JasperReport. dan kita juga harus lebih teliti dalam menguji coba iReport kali ini, karena kita harus mencobanya step by step yang saling berhubungan.
Semoga bisa bermanfaat bagi pembaca, Amiiin..

MATERI

Langkah-langkah Koneksi database

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.sql
2. Memanggil Driver JDBC
3. Membangun Koneksi
4. Membuat Statement
5. Melakukan Query
6. 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.


2. 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}

3. 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
}
Sebenarnya ada beberapa macam argumen yang bisa digunakan untuk membangun koneksi melalui method tertentu, tapi disini akan di bahas satu arguman saja yang biasa digunakan untuk membangun koneksi yaitu argumen getConnection(String url, Properties info) :
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”);
}

4. 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();

5. 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();

6. 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();

Praktikum

Pada materi kali ini akan sedikit membubuhkan tutorial untuk pengkoneksian database ke postgreSQL. Seperti berikut langkah-langkahnya :

1. buatlah project baru pada netbeans
2. pada project tersebut, klik kanan – properties
3. pilih Libraries pada list Properties
4. add Library
7. add JAR/Folder
8. browse file konektor PostgreSQL
9. ambil file konektor, semisal :postgresql-9.0-801.jdbc4.jar atau versi yang lain.
10. kemudian open
11. Klik OK

12. coba lihat diproject netbeans – Libraries seperti gambar dibawah ini:


Setelah selesai mengkoneksikan JAVA dengan PostgreSQL menggunakan libraries yang tersedia, sekarang mari kita buat aplikasi menggunakan gui builder yang disediakan oleh netbeans melalui class JFrame. Buatlah gui sama seperti gambar berikut :


Untuk membuat class JFrame cukup dengan membuat class baru pada project yang sudah di ada. Seperti gambar berikut :

untuk membuat class JFrame cukup klik kanan pada package yang sudah ada kemudian pilih JFrame Form, kemudian akan muncul jendela New JFrame Form, isikan nama class kemudian klik finish.

Setelah masuk pada Form JFrame, kemudian buatlah desain menggunakan gui builder sehingga membentuk desain sama seperti gambar di atas.

Setelah gui nya jadi sekarang saatnya mendiskripsikan variabel yang nanti akan di gunakan untuk membangun system tersebut dan mengkoneksikannya menggunakan method koneksi, sebagai berikut :


Kemudian berikan event handling pada setiap button, yang pertama kita akan memberikan event handling pada button hapus. Berikut kode progran untuk delete :


Kemudian berikan event handling pada button simpan, berikut kode program untuk insert :


Kemudian berikan event handling pada button cari, berikut kode program untuk select :


Kemudian berikan event handling pada button edit, berikut kode program untuk update :


Kemudian berikan event handling pada button tampil, berikut kode program untuk select :


Pendukung Fungsi

PostgreSQL memiliki fungsi yang dapat mengubah suatu nilai dalam suatu kolom atau barismenjadi huruf besar. Fungsi tersebut bernama upper(nama_kolom), berfungsi memanggil fungsi upper dengan nama_kolom sebagaii argumen sehingga menghasilkan nilai pada kolom dalam huruf besar. Berikut Struktur SQL untuk menampilkan data dalam huruf besar semua :
  • SELECT upper [nama kolom] FROM [nama tabel];
Berikut struktur SQL untuk menampilkan data dimana huruf pertama saja yang besar :
  • SELECT initcap [nama kolom] FROM [nama tabel];

Fungsi

Fungsi SQL adalah sebuah kumpulan query, biasanya query yang detail dan panjang yang dibungkus menjadi satu dan disimpan dalam database dan kemudian apabila diperlukan hanya tinggal mengaksesnya tanpa mengetikan query detail.
Nah, dari definisi diatas, bisa kita perdalam lagi makna dari fungsi di PostgreSQL
Ada beberapa konsep yang menarik dari fungsi antara lain:
  • Bahasa yang dipakai dapat didefenisikan sendiri dengan tersedianya parameter LANGUAGE, tanpa harus mengkompilasi ulang PostgreSQL.
  • Kita dapat membuat dua buah fungsi dengan nama yang sama namun parametermasukkannya yang berbeda, baik tipe data maupun jumlahnya.
Ada beberapa faktor yang perlu diperhatikan dalam membuat fungsi antara lain:
  • Nama fungsi
  • Tipe dari fungsi argument
  • Tipe data dari setiap argument
  • Tipe dari hasil fungsi
  • Fungsi action
  • Bahasa yang digunakan oleh fungsi
Berikut contoh sederhana pembuatan fungsi SQL untuk perkalian dari tiga inputan:
db_personal=> CREATE FUNCTION perkalian (FLOAT, FLOAT, FLOAT)
db_personal-> RETURNS FLOAT
db_personal-> AS 'SELECT ($1 + $2) * $3;'
db_personal-> LANGUAGE 'sql';
CREATE
db_personal=> SELECT perkalian (10,10,10);
perkalian
-----------
200
(1 row)

Fungsi PL/PGSQL

PL/PGSQL merupakan bahasa yang lain untuk membuat sebuah fungsi, biasanya bahasa ini digunakan untuk menangani fungsi yang lebih kompleks. Pl/pgsql sudah terdapat dalam instalasi PostgreSQL.
Berikut adalah keuntungan penggunaan Fungsi PL/PGSQL:
  1. Meningkatkan kinerja karena mengurangi pengiriman kode dari klien ke server.
  2. Meningkatkan keamanan karena pengaksesan data tertentu ditangani dalam server.
  3. Meningkatkan konsistensi data saat sejumlah aplikasi memanggil prosedur yang sama
Sebaliknya kelemahannya yaitu server akan lebih terbebani karena banyak proses yang harus ditangani. Sedangkan query PL/PGSQL agar lebih mudah di pahami akan dibagi menjadi 2 yaitu pembuatan fungsi dan pembuatan definisi.

Berikut Struktur pembuatan fungsi dalam pl/pgsql
1. Pembuatan fungsi :
CREATE [OR REPLACE] FUNCTION nama_fungsi ( argtype , ... ])RETURNS tipe_dataAS ‘definisi’LANGUAGE ‘plpgsql’;
2. Pembuatan definisi :
DECLARE nama_variable tipe_data /* deklarasi variabel, type */
BEGIN   / * prosedural dan SQL masuk disini seperti select, update dan sebagainya*/
Return nama_variable /* blok ini yang wajib */
END; 
3. Menghapus fungsi :
DROP FUNCTION nama_fungsi(paramater, parameter, parameter ... );
Contoh :
DROP FUNCTION pembagian(text);   
 4. Triger
Trigger digunakan untuk menyisipkan sebuah fungsi pada saat suatu record di-INSERT, UPDATE dan DELETE. Trigger sangat ideal untuk mengecek atau memodifikasi sebuah data pada kolom sebelum dimasukkan ke dalam database, sehingga sebuah fungsi dapat dipanggil setiap saat secara otomatis ketika sebuah row akan dimodifikasi. Ciri khas dari fungsi yang diperuntukkan untuk trigger adalah menghasilkan output bertipe OPAQUE. Tipe opaque adalah sebuah tipe yang menginformasikan pada database bahwa fungsi tersebut tidak menghasilkan satu dari tipe data yang ditetapkan SQL dan tidak secara langsung dapat digunakan dalam statemen SQL. Language (bahasa) PL/PGSQL dapat digunakan untuk trigger procedure, fungsi untuk trigger ini memiliki beberapa variabel khusus yang terdeklarasi secara otomatis. Variabel tersebut antara lain:

  • NEW: Variabel yang berisi nilai baru suatu record pada saat INSERT atau UPDATE, bertipe RECORD.
  • OLD: Variabel yang berisi nilai lama suatu record pada saat UPDATE atau DELETE, juga bertipe RECORD.

Berikut ini beberapa contoh penggunaan fungsi sebagai trigger procedure:
Contoh : trigger berikut ini memastikan isi field atau kolom nama pada tabel anggota selalu huruf besar.
langkah pertama buatlah fungsinya terlebih dahulu :
db_personal=> CREATE FUNCTION tes_trigger()
db_personal-> RETURNS opaque
db_personal-> AS 'BEGIN
db_personal'> NEW.nama := UPPER(NEW.nama);
db_personal'> RETURN NEW;
db_personal'> END;'
db_personal-> LANGUAGE 'plpgsql';
CREATE
 Kemudian lanjutkan dengan pembuatan trigger yang berfungsi untuk memanggil fungsi secara otomatis ketika kita melakukan INSERT ataupun UPDATE pada tabel anggota.
db_personal=> CREATE TRIGGER tes1_triggerdb_personal-> BEFORE INSERTdb_personal-> ON anggotadb_personal-> FOR EACH ROWdb_personal-> EXECUTE PROCEDURE tes_trigger();CREATE
 cobalah INSERT beberapa data ke dalam tabel anggota:
db_personal=> INSERT INTO anggota (id, nama)
db_personal-> VALUES (26, 'andhie');
INSERT 70831 1
db_personal=> INSERT INTO anggota
db_personal-> VALUES (83, 'rWatia');
INSERT 70832 1
tampilkan isi dari tabel anggota, hasilnya seperti pada tabel di bawah ini. Jadi setiap data yang kita INSERT walaupun dalam penulisannya menggunakan huruf kecil Primary key namun secara otomatis trigger akan memanggil fungsi yang bertugas untuk mengganti setiap data yang masuk agar hasilnya nanti selalu menjadi huruf besar:
db_personal=> SELECT * FROM anggota;
id   | nama
----+-------------
26  | ANDHIE
83  | RWATIA
         (2 rows)

HASIL PRAKTIKUM

  • Buatlah fungsi konversi suhu dari Fahrenheit ke derajat celcius dengan rumus konversi sebagai berikut : ((celcius-32)/1.9).
  • Buatlah fungsi untuk mencari alamat mahasiswa dari tabel mahasiswa berdasarkan nama mahasiswa. Kemudian jalankan dengan perintah SELECT !
  • Untuk menampilkannya adalah sebagai berikut
  • Buatlah fungsi untuk menghitung nilai ini
  • Berikut fungsi yang harus di tuliskan
  • Tampilkan dengan select
  • Buatlah fungsi menggunakan pl/pgsql untuk mencari bilangan ganjil atau genap dari bilangan yang diinputkan. Kemudian jalankan dengan perintah SELECT !

  • Tambahkan kolom modifikasi pada tabel mahasiswa. Dimana setiap ada insert atau update maka tanggal pada kolom modifikasi akan menunjukkan tanggal perubahan tersebut dilakukan.
  • update tabel mahasiswa seperti biasanya
  • tampilkan kembali tabel mahasiswa untuk membuktikannya




Perbandingan Antara MySql dengan Postgresql
     Berdasarkan dari hasil praktikum dan dari percobaan di rumah yang telah dilakukan, maka dapat kita liat perbedaan yang mendasar antara Mysql dengan Postgresql dalam penggunaan fungsi, PL/Pgsql, dan Trigger, diantaranya adalah :

pada Mysql
  • Harus use database terlebih dahulu
  • Harus memakai "delimiter" dulu untuk menjalankan fungsinya
  • Tidak perlu menuliskan bahasa yang dipakai, sehingga bisa langsung mengeksekusi querynya.
  • Untuk mengahapus fungsi pada mysql cukup dengan query "DROP FUNCTION namaFungsi;". tanpa menggunakan tipe data yang di pakai.
  • Untuk melakukan pengecekan trigger pada mysql dengan insert/update, kita perlu mendeklarasikan terlebih dulu variabelnya.
pada Postgresql
  • Pada Postgresql kita tidak perlu memakai "delimiter".
  • Pada postgresql kita perlu menuliskan bahasa yang dipakai, misalnya : "plpgsql".
  • Untuk mengahapus fungsi pada postgresql kita harus menggunakan tipe data yang dipakai, misal : "DROP FUNCTION namaFungsi (tipeData);".
  • Untuk melakukan pengecekan Trigger pada postgresql kita bisa mendeklarasikan terlebih dahulu variabelnya pada saat insert/update datanya, atau bisa juga tidak menuliskan variablenya, hanya mengisi valuesnya langsung.

Kesimpulan, Kritik, dan Saran
     Melihat dari hasil praktikum dan cuga percobaan di rumah yang telah dilakukan, maka bisa di ambil kesimpulan bahwa antara Mysql dan Postgresql memiliki banyak perbedaan pada penggunaan Fungsi, PL/Pgsql, dan Triggernya.
     penulis blog ini berharap nantinya sedikit coretan di blog ini bisa bermanfaat bagi pembaca. dan yang terakhir, penulis blog mengucapkan terimakasih atas semua pembaca.
Landasan Teori


1.       SELECT INTO STATEMENT

Query  select  into  statement  merupakan  query  SQL  yang  digunakan  untuk mengopi informasi dari tabel ke tabel yang lain tanpa membuat tabel sebelumnya. Berikut  struktur  query  penggunaan  select  into  statement  untuk  mengopi  semua data dari tabel1 ke tabel yang baru :
SELECT * INTO newtable FROM table1;
Berikut struktur query penggunaan select into statement  untuk mengopi data  berdasarkan kolom tertentu dari tabel1 ke tabel yang baru :
SELECT column_name(s) INTO newtable [IN externaldb] FROM table1;
Contoh :
-   mengopi semua data dari tabel mahasiswa ke tabel baru yang dinamakan  „identitas  1‟:
Select * into identitas1 from mahasiswa;
-  mengopi  data  pada  kolom  nim  dan  nama  dari  tabel  mahasiswa  ke  tabel  baru  yang dinamakan „identitas 2‟:

Select nim_mhs, nama_mhs into identitas2 from mahasiswa;



 2.       SUB QUERY


Subquery atau query Nested merupakan bentuk query yang terdapat dalam query yang  lain.  Subquery  dapat  ditempatkan  dalam  klausa  where,  having,  from  bersama dengan  operator  perbandingan  seperti  =  untuk  baris  tunggal  dan  untuk  baris  berganda menggunakan    in,  not  in  atau  <>,  <  any,  >,  >=,<=.  Penggunaan  sub  query  dapat diterapkan  pada  pernyataan  SELECT,  UPDATE,  DELETE,  dan  INSERT.  Bentuk penggunaannya sebagai berikut :
Select  nama_kolom  from  nama_tabel  where  nama_kolom  operator (subquery);
Berikut contoh dari subquery menggunakan data pegawai :

-  Mencari  nama  pegawai  yang  memiliki  jabatan  yang  sama  dengan  pak  hendro  bisa
menggunakan query sebagai berikut :
Select  nama_peg,jabatan_peg  from  pegawai  where  jabatan_peg  in (select jabatan_peg from pegawai where nama_peg=’Hendro’);
Hasil :

-  Mencari nama pegawai yang gajinya lebih besar dari pegawai dengan nama Dodi bisa menggunakan query sebagai berikut :
select nama_peg,gaji_peg from pegawai where gaji_peg > any (select gaji_peg from pegawai where nama_peg =’Dodi’);
Hasil :

-  Mencari nama pegawai yang gajinya lebih besar dari  950000  dan  jabatannya bukan seperti jabatan pak hendro bisa menggunakan query sebagai berikut :
select nama_peg, jabatan_peg, gaji_peg  from pegawai where gaji_peg  >= 950000 and  jabatan_peg  <>  (select  jabatan_peg  from  pegawai  where nama_peg=’Hendro’);
Hasil :


 3.       INDEKS

Indeks  disini  berguna  dalam  suatu  pencarian  nilai  atau  data  dalam  database. Dalam  suatu  kasus  ketika  mengakses  sebuah  tabel  biasanya  DBMS  akan  membaca seluruh  tabel  baris  perbaris  hingga  selesai.  Ketika  baris  sangat  banyak  dan  hasil  dari query hanya sedikit, maka hal ini sangat tidak efisien. Seperti halnya ketika kita membaca sebuah buku dan ingin mencari kata atau istilah tertentu dalam buku maka biasanya akan di cari dengan membuka setiap halaman dari awal sampai akhir. Dengan adanya indeks buku  maka  kita  cukup  dengan  membuka  indeks,  sehingga  akan  cepat  dalam  pencarian kata  tersebut.  PostgreSQL  tidak  bisa  membuat  indeks  dengan  otomatis,  sehingga  user dapat  membuat  indeks  tersebut  untuk  sering  kali  digunakan  kolom,  biasanya  dalam clause WHERE. Berikut struktur SQL :
CREATE INDEX nama_index ON nama_tabel (nama kolom);
Contoh :

- Pada tabel pegawai kita berikan index pada kolom gaji untuk query sebagai berikut :
Create index gaji_index on pegawai(gaji_peg);
Hasil :

indeks sebaiknya jangan digunakan  pada tabel atau kolom yang sangat jarang atau tidak  pernah  diakses.  Selain  untuk  perintah  SELECT  Indeks  juga  bermanfaat  untuk UPDATE dan DELETE yang  menggunakan kondisi pencarian.  Sedangkan  Unique index mirip dengan indeks  tetapi lebih  digunakan untuk mencegah duplikasi  nilai yang terdapat dalam tabel. Jadi dengan adanya  unique index  berarti pembaca tidak  dapat meng-insert nilai yang sama dalam sebuah tabel. Berikut struktur SQL nya : 
CREATE UNIQUE INDEX nama_index ON nama_tabel (nama kolom);
Untuk menghapus index berikut strukturnya :
DROP INDEX Nama_index;
Contoh :
- Pada tabel pegawai kita berikan index yang bersifat unik pada kolom nama, untuk query sebagai berikut :
Create unique index unama_index on pegawai(nama_peg);
Hasil :

Apabila  kita memasukkan dengan nama yang sudah terdapat pada data terdahulu akan terdapat error.


4.       KOLOM UNIK


Unique berfungsi untuk menjaga agar tidak terjadinya duplikasi nilai (kesamaan data) dalam  sebuah kolom,  hal  ini dapat ditangani dengan membuat sebuah indeks  unik atau fungsi unik sendiri  pada kolom yang  dimaksud.  Unique ini sering digunakan dalam pembuatan  bukan  primary  key  namun  membutuhkan  cek  dupikasi  agar  tidak  ada  yang sama, karena dalam  primary key  sudah otomatis mempunyai sifat unik.  Berikut Struktur SQL saat pembuatan tabel baru :

CREATE TABLE nama_tabel (nama_kolom tipe_data unique);
Ketika tabel sudah ada kita bisa menggunakan  cara  seperti pada BAB. 2 berikut struktur SQL nya :
ALTER TABLE nama_tabel ADD UNIQUE (nama_kolom);
Untuk menghapus unique berikut caranya :
ALTER TABLE nama_table DROP CONSTRAINT NAMA_CONSTRAIN

5.       Check

Check  berfungsi  untuk  melakukan  pembatasan  nilai  masukan  dalam  sebuah kolom,  sebagai  contoh  misalkan  kita  ingin  agar  kolom  gender  yang  terdiri  dari  satu karakter hanya memiliki  dua pilihan karakter yaitu  M  (male) atau  F  (Fimale) ini dapat kita seting dengan menggunakan  CHECK. Dengan menggunakan CHECK maka sebuah kolom  hanya  bisa  diisi  dengan  data  yang  memenuhi  kriteria  dalam  CHECK.  Berikut
query contoh pengunaan check :
db_contoh=> CREATE TABLE pelanggan (
db_contoh(> nama varchar(35),
db_contoh(> kode_area CHAR(10) CHECK
(length(trim(kode_area)) = 2),
db_contoh(> umur INTEGER CHECK (umur >= 0),
db_contoh(> gender CHAR(1) CHECK (gender IN ('L', 'P')),
db_contoh(> ttl DATE CHECK (ttl BETWEEN '1998-01-01' AND
CURRENT_DATE),
db_contoh(> CHECK (upper(trim(nama)) != 'nita' OR
db_contoh(> upper(trim(nama)) != 'jeki')
db_contoh(> );
CREATE

 6.       Penggunaan TRIM

Suatu  ketika  pasti  akan  memiliki  data  yang  di  dalamnya  terdapat  spasi  kosong yang  tidak  diperlukan,  misalnya  spasi  ganda.  Jika  ada  masalah  seperti  ini,  kita  dapat membersihkan  spasi-spasi  kosong  yang  tidak  diperlukan  menggunakan  fungsi  TRIM, RTRIM, dan LTRIM. Ketiga fungsi ini memiliki bentuk penggunaan sebagai berikut :
-  RTRIM  :  digunakan  untuk  membersihkan  spasi  kosong  yang  ada  di  bagian  kanan (Right) String.
-  LTRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kiri (Left) 
String.
-  TRIM : digunakan untuk membersihkan spasi kosong yang ada di bagian kiri, kanan, maupun tengah String

Berikut Struktur SQL nya :
            Select trim(nama_kolom) from nama_tabel;
Dalam  penggunaannya,  fungsi  TRIM  memiliki  tiga  opsi.  Ketiga  opsi  ini  dapat digunakan  untuk  menentukan  karakter  apa  yang  akan  dihapus  dari  suatu  String.  Jadi, fungsi TRIM juga dapat menghilangkan karakter tertentu (bukan spasi kosong saja) dari suatu string. Opsinya sebagai berikut :
-  LEADING  :  merupakan  opsi  untuk  menghilangkan  karakter  terpilih  yang  ada  di sebelah kiri. Parameter Leading diartikan sebagai sufik dari karakter yang ada.
-  TRAILING  :  merupakan  opsi  untuk  menghilangkan  karakter  terpilih  yang  ada  di sebelah kanan String. Parameter Trailing diartikan sebagai sufik dari  karakter yang ada.
-  BOTH : merupakan opsi yang dapat menangani parameter Leading maupun Trailing.

Berikut Struktur SQL nya :
             Select trim(LEADING ‘karakter, misal : -’ from nama_kolom) from sama_tabel;

 -----


Hasil Praktikum Menggunakan MySQL

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

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

3.  Buatlah 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!

Kita insertkan data yang sama (kecuali nim) pada tabel mahasiswa.

Setelah itu kita buat lagi indeks yang bersifat unik pada tabel fakultas seperti pada gambar

Kemudian kita insertkan juga data yang sama (kecuali id fakultas)

Dari indeks dan unik indeks dapat kita ketahui bahwa pada unik indeks data yang dimasukkan tidak bisa sama walaupun id nya berbeda.

4.  Buat kolom nama di mahasiswa menjadi unik dan inputkan 2 data yang sama. Kemudian amati perbedaannya !
Untuk membuat suatu kolom menjadi unuk kita bisa menggunakan perintah alter table, seperti pada gambar berikut

Setelah itu kita masukkan data pada tabel tersebut dengan catatan nama mahasiswa harus sama

Maka apabila ada data yang sama pada nama mahasiswa akan tidak bisa di inputkan lagi.

5.  Pindahkan data dari tabel mahasiswa, fakultas ambil kolom nim, nama mahasiswa, alamat, nama fakultas ke tabel baru yang dinamai „tabel identitas‟.
Untuk memindahkan data dari tabel mahasiswa dan fakultas ke table udentitas, kita perlu membuat terlebih dahulu tabel identitas, dengan field nim, nama, alamat mahasiswa dan nama fakultas. Setelah itu kita bisa menggunakan perintah insert into statement. Hasilnya apabila sukses akan sama seperti pada gambar

6.  Inputkan data di tabel mahasiswa dimana pada kolom nama sebelum inputkan karakter dahulukan dengan spasi dan di akhiri dengan tanda “+” seperti berikut : “ andi cahyono++++”. kemudian munculkan seluruh data dan hilangkan spasi didepan!


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


 -----


Perbedaan

    Pada pembahasan sub query dan indeks kali ini, bisa kita lihat beberapa perbedaan antara  kedua DBMS yang kita pakai buat percobaan yaitu DBMS Postgresql dan DBMS MySQL. Yang pertama kedua DBMS ini memiliki perbedaan yang sudah kita pernah bahas sebelum-sebelumnya, yaitu ketika koneksi database yang kita pakai missal pada Mysql kita bisa menggunakan “USE nama_database” sedangkan pada Postgresql kita bisa menggunakan “\c nama_database”. yang kedua, yaitu pada Postgresql kita bisa melakukan perintah CHECK seperti yang di contohkan pada modul sedangkan pada Mysql kita bisa mebuat CHECK namun CHECK yang sudah kita buat tidak ada pengaruhnya, karena pada Mysql tidak ada perintah CHECK, sehingga yang terjadi pada mysql adalah ketika kita memasukkan data yang tidak sesuai dengan CHECK, data tersebut akan tetap masuk (terInsert).   

      
Kesimpulan, Kritik dan Saran

Sub Query merupakan query yang digunakan untuk menspesifikasikan perintah yang memiliki kondisi tertentu dengan cara memberikan perintah SELECT di dalam SELECT. Perintah tersebut akan sangat membantu kita apabila memiliki banyak sekali data, sehingga kita bisa menemukan data tersebut dengan cepat. Tetapi kita juga harus melihat suatu DBMS tersebut macam-macam query yang variatif atau tidak, karena apabila suatu DBMS tersebut terdapat satu SQL yang tidak ada sementara pada DBMS lain ada maka kita akan kekurangan satu fungsi perintah untuk mendapatkan data yang tepat. Jadi juga perhatikan DBMS yang digunakan agar kita bisa mendapatkan data yang tepat untuk di tampilkan.
Postingan Lebih Baru Postingan Lama Beranda

ABOUT ME

I could look back at my life and get a good story out of it. It's a picture of somebody trying to figure things out.

SUBSCRIBE & FOLLOW

POPULAR POSTS

  • Modul 9 - Koneksi PostgreSQL pada Java (Netbeans)

Categories

  • Laporan Praktikum 10

Advertisement

Formulir Kontak

Nama

Email *

Pesan *

What's Awesome

  • Modul 9 - Koneksi PostgreSQL pada Java (Netbeans)
    MATERI Langkah-langkah Koneksi database Terdapat beberapa langkah yang secara umum harus dilakukan sehingga aplikasi yang berbasi...
  • Modul 10 - pembuatan laporan dengan ireport
    A. Landasan Teori      Untuk membuat report di Java-Netbeans dengan menggunakan JasperReport dan iReport, sebelumnya kita perlu mengeta...
  • Modul 6 - Normalisasi
    Pengertian Normalisasi Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis data. selain dipakai sebagai met...
  • Modul 5 - Agregasi SQL dan View
    A. DASAR TEORI Desain Basis Data memiliki banyak sekali perintah yang bisa kita gunakan untuk mendesain Basis Data tersebut. Intinya ki...
  • Modul 3 - Perintah Dasar SQL
    pertemuan ketiga, tentang perintah dasar SQL.. sebelum kita lanjut, sebaiknya kita memahami lebih mendalam tentang modul sebelumnya, kalau...
  • Dasar Macromedia/Adobe Flash
    Langkah-langkah Pembuatan Background Langkah-langkah pembuatan background pada media pembelajaran adalah sebagai berikut: a. Membuka...
  • Bahasa Indonesia
    Pemakaian huruf: · Huruf abjad · Huruf vokal · Huruf konsonan : selain huruf fokal · Huruf gabungan konsona...
  • KARYA TULIS ILMIAH
    KARYA TULIS ILMIAH PERANAN GADGET       OLEH : ANAS ABDUR ROHIM K. ( ...
  • Langkah Dasar Notepad++
    Tutorial: 1. Install Notepad++ 2. Klik new file, pilih HTML 3. Save as ex. ‘Weboender.html’ 4. Setelah itu ketik script code dibawah ini ...
  • Modul 7 - SUB QUERY dan INDEKS
    Landasan Teori 1.       SELECT INTO STATEMENT Query  select  into  statement  merupakan  query  SQL  yang  digunakan  untuk mengo...

Explore The Archive

  • ▼  2014 (10)
    • ▼  Desember (2)
      • Modul 10 - pembuatan laporan dengan ireport
      • Modul 9 - Koneksi PostgreSQL pada Java (Netbeans)
    • ►  November (3)
      • Modul 8 - Fungsi, PL/PGSQL, dan Trigger
      • Modul 7 - SUB QUERY dan INDEKS
    • ►  Oktober (3)
    • ►  September (2)
  • ►  2013 (9)
    • ►  September (9)
Diberdayakan oleh Blogger.

Oddthemes

Copyright © Its My Blog. Designed by OddThemes