Senin, 08 Desember 2014

Praktikum DBD Tugas 10

Kali ini kita akan membuat aplikasi iReport kwitansi dengan tampilan seperti dibawah ini :



1. Buatlah Sebuah table yang mengandung field no, nama, uang, terbilang, keterangan
2. Setelah itu buatlah iReports untuk menampilkan table tersebut, dan gambaran akhir dari iReports seperti dibawah ini :

3. Tambahkan parameter pr pada iReport


4. Buatlah form pada netbeans seperti gambar dibawah ini :

5. isikan action performed pada setiap tombol. Di laporan sebelumnya sudah dibahas tetang action performed tinggal copas saja, ini adalah gambar action dari tombol print yang sudah ada parameter pr :

hasil iReprts


Praktkum DBD Laporan 10

Pemanggilan File JRXML di Java
Kali ini akan membahas bagaimana cara memanggil file ireport yang berextensi .jrxml agar dapat dieksekusi dari program dan menampilkannya ke dalam sebuah window, sehingga kita dapat melihat hasil dari 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:
1. commons-beanutils-1.7.jar
2. commons-collections-2.1.jar
3. commons-digester-1.7.jar
4. commons-logging-1.0.jar
5. Jasperreport-3.5.1.jar
6. jasper-compiler-jdt.jar
Kemudian kita masukkan kedalam library project yang sudah dibuat seperti berikut :

Setelah selesai maka bisa dilanjutkan membuat kelas java untuk memanggil file yang telah dibuat.

Dalam praktek ini kita menggunaka database Mysql

1. Buatlah file jrxml seperti tutorial diatas namun menggunakan database akademik. Laporan berupa NIM,nama mahasiswa, nama Fakultas dan Jurusan.

Pertama, kita membuat file baru yang diletakkan dalam projek basis data, tipe filenya adalah Report Wizard karena memang tujuan kita adalah membuat iReport pada Netbeans

Setelah klik next, langkah berikutnya adalah membuat nama file yang berekstensi .jrxml yang merupakan file iReport

Lantas, kita akan koneksikan dengan database yang telah tersedia MySql.

Sukses mengkoneksi dengan database yang telah kita buat sebelumnya dalam MySql

Setelah koneksi sukses, kita akan menjalankan query untuk mencetak kolom-kolom yang terdapat dalam database yang kita koneksikan tadi.

Kemudian kita akan memakai seluruh kolom (field) untuk ditampilkan dalam iReport, jadi dipindah ke kanan semua.

Selanjutnya dipilih Tabular Layout karena mendukung membuat report seperti tabel

Berikut ini hasil report yang telah jadi dalam bentuk kasar. Judul dirubah menjadi data mahasiswa agar kompatibel dengan isi report


2. Buatlah form pada netbeans dan buatlah tombol untuk pemanggilan file ireport yang telah dibuat!

Buatlah form neetbeans sehingga menghasilkan beberapa fungsi tombol, fungsi tombol sama dengan praktikum 9, namun ditambah dengan tombol print yang berisi sourcode seperti dibawah ini :




3. Buat modifikasi laporan diatas sehingga laporan yang akan di print berdasarkan NIM mahasiswa yang berasal dari textfield!

Tambahkan parameter pada iReport seperti gambar dibawah ini

Tambahkan query report

Edit pada tombol print seperti gambar dibawah ini





Minggu, 30 November 2014

Praktikum DBD Laporan 9

KONEKSI DATABASE KE  NETBEANS

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();"


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>);

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

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

Praktek

Buatlah package baru java netbens
Buat class java gui JFrame
Buatlah seperti gambar di bawah
Buatlah database dari postges


1. membuat method koneksi:
tambahkan method koneksi dengan code :
 void Koneksi() {
        try {
            String connectionURL = "jdbc:postgresql://localhost:5432/dimas13650064";
            String username = "postgres";
            String password = "password";
            Class.forName("org.postgresql.Driver");
            connection = DriverManager.getConnection(connectionURL, username, password);
            System.err.println("Sukses Koneksi");
        } catch (Exception ex) {
            System.err.println("Tidak Berhasil Koneksi");
            System.exit(1);
        }
    }
ket =
isi user name dengan = user postgres anda
isi password dengan = password anda di postgres
isi jdbc:postgresql......./dimas13650064 bisa di isi dengan nama data base anda

2.tampilan gui


3. mengisi tombol table, klik 2 kali pada desaign gui

tombol simpan

tombol cari

tombol edit

tombol delete

tombol tampilkan

tombol reset

4. action tombol pada table tanpa menulis driver jdbc, url dan koneksi, buat di bawah javax.swing.JFrame = "Connection connection;"

tombol simpan

tombol cari

tombol edit

tombol hapus

tombol tampilkan


kesimpulan


untuk pengaplikasian database bisa dengan cara diatas yaitu membuat koneksi progam ke dalam databese. hal ini sangat membantu dalam penyimpanan data dari sebuah aplikasi

Senin, 24 November 2014

Praktikum DBD Laporan 8

Teori

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. Sedangkan untuk memunculkan fungsi dapat menggunakan query \df.
Ada beberapa konsep yang menarik dari fungsi antara lain:
• Bahasa yang dipakai dapat didefenisikan sendiri dengan tersedianya parameter LANGUAGE.
• 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
• Nomor dari fungsi argument
• Tipe data dari setiap argument
• Tipe dari hasil fungsi
• Fungsi action
• Bahasa yang digunakan oleh fungsi action.

berikut sintak umum fungsi

CREATE
    [DEFINER = { user | CURRENT_USER }]
    FUNCTION sp_name ([func_parameter[,...]])
    RETURNS type
    [characteristic ...] routine_body

TRIGGER

rigger 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 sintak umum trigger

CREATE
    [DEFINER = { user | CURRENT_USER }]
    TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_body

Praktek




1. membuat fungsi konversi dari farenheit ke celcius dengan sintak "create function konversi ($1 float) returns float return (($1-32)/1.9);"



2. membuat fungsi mencari alamat dari nama di table mahasiswa dengan sintak "create function alamat_mah (nama varchar (20)) returns text begin declare alamat text; select alamat_mah into alamat from mahasiswa where nama_mah = nama; return alamat; end $"



3. membuat fungsi menghitung
 
dengan sintak "create function nilai (hasil varchar(11)) returns varchar(11) begin declare hasilnya varchar(20); case when hasil >100 or hasil <0 then set hasilnya = "nilai salah"; when hasil >=90 then set hasilnya = "nilai A"; when hasil >=70 then set hasilnya = "nilai B"; when hasil >=60 then set hasilnya = "nilai C"; when hasil >=50 then set hasilnya = "nilai D"; when hasil <50 then set hasilnya = "nilai E"; else set hasilnya = "F"; end case; return hasilnya; end$"



4. membuat fungsi untuk menentukan nilai ganjil atau genap dengan sintak "create funcition cari5 (bilangan varchar (10)) returns varchar (10) begin declare angka varchar (10); if bilangan % 2 != 0 then set angka ="ganjil"; else set angka ="genap"; end if; return angka; end$"

5. untuk nomer 5 maaf belum bisa,, mungkin pada kesempatan selanjutnya akan saya lengkapi

perbedaan MySQL dengan Postgre

1. pada penggunaan funcition di Postgre di tuliskan bahasa yang digunakan (LANGUAGE 'sql') namun pada MySQL tidak harus
2. di akhir funcition pada MySQL harus ada (end$) namun pada Postgre tidak harus

kesimpulan

untuk mempermudah melakukan pengambilan / pengecekan / pemasukan data pada database kita dapat menggunakan funcition dan di tambah dengan triger untuk lebih spesifiknya pada sebuah table

sumber

http://mysql.phi-integration.com/sql/membuat-trigger-di-mysql
http://dendieisme.blogspot.com/2009/03/membuat-function-di-mysql.html
http://fickaajah.blogspot.com/2012/03/profesinalisme-guru.html
http://ahwat.blogspot.com/2012/05/membuat-function-di-mysql.html
https://ar3t4.wordpress.com/2014/04/16/belajar-trigger-stored-procedure-function-dan-view-di-mysql/

Minggu, 09 November 2014

Praktikum DBD Laporan 7

         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.

Kegunaan-kegunaan  Subquery dalam memanipulasi data:

  1.  Meng-copy data dari satu tabel ke tabel lain
  2.  Menerima data dari inline view
  3.  Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
  4.  Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
ATURAN SUB QUERY

         Klausa ORDER BY tidak boleh digunakan .di subquery. ORDER BY dapat digunakan ,di pernyataan SELECT luar. Klausa subquery SELECT harus beisi satu nama kolom tunggal atau ekspresi kecuali untuk subquery-subquery menggunakan kata kunci EXIST. secara default, nama-nama kolom di subquery mengacu ke nama table diklausa FROM di query lebih luar dengan mengkualifikasi nama kolom Saat subquery adalah salah satu dua operan dilibatkan di pembandingan, subquery harus muncul di sisi kanan pembandingan.

SELECT select_list FROM table WHERE expr operator ( SELECT select_list FROM table );

Operator EXIST dan NOT EXIST

     Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu baris di table hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE jika subquery mengirm table kosong NOT EXIST kebalian dan EXIST. Karena EXIST dan NOT EXIST hanya memeriksa keberadaan baris-baris di table hasil subquery.

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.

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.

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.

Sintaks untuk membuat Index:

CREATE INDEX index_name 
ON table_name (column_name1,column_name2...); 

Sintaks untuk membuat Index unik SQL:

CREATE UNIQUE INDEX index_name 
ON table_name (column_name1,column_name2...); 

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);

ALTER TABLE nama_tabel ADD UNIQUE (nama_kolom);

Untuk menghapus unique berikut caranya :

ALTER TABLE nama_table DROP CONSTRAINT NAMA_CONSTRAIN

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 nama_tabel;

Praktek

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

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

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!



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

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

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
.
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 hilangkan spasi didepan!


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



PERBEDAAN MYSQL dan POSTGRE SQL PADA SUB QUERY DAN INDEKS

- Ketika drop index menggunakan postgreSQL, perintah yang  digunakan adalah
Drop index nama_index;
 Sedangkan pada MySQL menggunakan perintah :
Alter table nama_table_dari_Index drop index nama_index;

- Ketika memindahkan data dari tabel mahasiswa di PostgreSQL cukup memberikan perintah kolom mana yang ingin ditampilkan kemudian langsung memasukkan kedalam tabel identitas seperti berikut
Select nim_mah, nama_mah, alamat_mah, nama_fak into identitas from mahasiswa, fakultas;
Sedangkan di MySQL harus membuat tabel setelah itu baru memasukkan kolom ke dalam tabel identitas,perintahnya sebagai berikut :
Create table identitas select nim_mah, nama_mah, alamat_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;


KESIMPULAN

Select into statement merupakan query  SQL yang digunakan untuk mengopi informasi dari tabel ke tabel yang lain tanpa membuat tabel sebelumnya. Subquery ialah bentuk query yang terdapat dalam query yang lain. Indeks berguna dalam suatu pencarian nilai atau data dalam database. 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. Check tidak berlaku dalam MySQL, namun dalam PostgreSQL ada. Trim digunakan untuk menghapus spasi dan karakter yang berlebih.


sumber 

http://catatankuliahum.blogspot.com/2013/02/sub-query-basis-data.html
http://codeoke.blogspot.com/2012/12/sub-query-mysql.html
http://beginner-sql-tutorial.com/id/sql-index.htm