Sabtu, 12 Januari 2019

PENGEMBANGAN BERORIENTASI OBYEK




Apa itu Pengembangan Berorientasi Obyek?

Pengembangan berorientasi objek yaitu cara berpikir baru tentang perangkat lunak berdasarkan abstraksi yang terdapat dalam dunia nyata. Dalam konteks pengembangan menunjuk pada bagian awal dari siklus hidup pengembangan sistem, yaitu survei, analis, desain, implementasi dan pemeliharaan sistem. Hal yang lebih penting dalam pengembangan berorientasi objek adalah konsep mengidentifikasi dan mengorganisasi domain aplikasi dari pada penggunakan bahasa pemrograman, berorientasi objek atau tidak.

Metodologi Berorientasi Objek

Metodologi merupakan sekumpulan aturan/panduan penerapan dan sekumpulan heuristic untuk menentukan kapan suatu tahapan dianggap lengkap. Dalam MBO terdapat istilah tahapan yang merupakan batas fase perkembangan pada siklus hidup perangkat lunak. Tahapan awal pengembangan suatu perangkat lunak hendaknya mencerminkan persoalan-persoalan nyata, dan tahapan akhir mencerminkan hasil/produk. Suatu metode dianggap baik apabila menyediakan produk terdefinisi untuk setiap tahapan (chart, diagram checklist) dan menggunakannya sebagai tool yang benar.
Suatu proses dalam suatu metodologi dianggap baik apabila :
  • Menyediakan mekanisme semi-otomatis dalam pencarian konsep persoalan yang akan dipecahkan.
  • Menyajikan mekanisme pengujian di setiap tahapan proses.

Struktur Obyek

Struktur Objek dan Hirarki Kelas

  • Struktur kelas dibagi dua macam, yaitu Whole-Part Structure dan Gen-Spec Structure.
1. Whole-Part Structure memperlihatkan hirarki dari suatu kelas sebagai komponen dari kelas lain yang disebut juga sub objek. Contohnya, kelas Mobil adalah Whole dan komponennya Mesin, Rangka, dan lain-lain, merupakan Part1, Part 2, …, Part n.

Notasi untuk whole-part structure
2. Gen-Spec Structure memperlihatkan kelas sebagai spesialisasi dari kelas di atasnya. Kelas yang mempunyai sifat umum disebut Generalization, Superclass atau Topclass, sedangkan kelas yang mempunyai sifat khusus disebut Specialization.

Notasi untuk gen-spec structure

Contohnya, kelas Mobil adalah Generalization, sedangkan Sedan, Truk, Minibus, dan lain-lain merupakan Specizlization1, Specialization2, …, Specialization n, yaitu kelas yang mempunyai sifat khusus.
  • Atribut
Atribut menggambarkan data yang dapat memberikan informasi mengenai kelas atau objek dimana atribut tersebut berada.
Notasi untuk atribut

  • Metode

Metode (method) disebut juga service atau operator adalah prosedur atau fungsi seperti yang terdapat dalam bahasa Pascal pada umumnya, tetapi cara kerjanya agak berlainan. Metode adalah subprogram yang tergabung dalam objek bersama-sama dengan atribut. Metode dipergunakan untuk pengaksesan terhadap data yang terdapat dalam objek tersebut.

Notasi untuk metode

  •  Pesan (Message)
Message merupakan cara untuk berhubungan antara satu objek dengan objek lain. Suatu pesan dikirimkan oleh suatu objek kepada objek tertentu dapat digambarkan dengan anak panah.

Notasi untuk message

Object Oriented Analysis

OOA (Object Oriented Analysis)

OOA mempelajari permasalahan dengan menspesifikasikannya atau mengobservasi permasalahn tersebut dengan menggunakan metode berorientasi objek. Biasanya analisa sistem dimulai dengan adanya dokumen permintaan (requirement) yang diperoleh dari semua pihak yang berkepentingan. (Misal: klien,developer, pakar, dan lain-lain).

Dokumen permintaan memiliki 2 fungsi yaitu : memformulasikan kebutuhan klien dan membuat suatu daftar tugas. Analisis berorientasi obyek (OOA) melihat pada domain masalah, dengan tujuan untuk memproduksi sebuah model konseptual informasi yang ada di daerah yang sedang dianalisis. Model analisis tidak mempertimbangkan kendala-kendala pelaksanaan apapun yang mungkin ada, seperti konkurensi, distribusi, ketekunan, atau bagaimana sistem harus dibangun. Kendala pelaksanaan ditangani selama desain berorientasi objek (OOD).

Sumber-sumber untuk analisis dapat persyaratan tertulis pernyataan, dokumen visi yang formal, wawancara dengan stakeholder atau pihak yang berkepentingan lainnya. Sebuah sistem dapat dibagi menjadi beberapa domain, yang mewakili bisnis yang berbeda, teknologi, atau bidang yang diminati, masing-masing dianalisis secara terpisah.

Hasil analisis berorientasi objek adalah deskripsi dari apa sistem secara fungsional diperlukan untuk melakukan, dalam bentuk sebuah model konseptual. Itu biasanya akan disajikan sebagai seperangkat menggunakan kasus, satu atau lebih UML diagram kelas, dan sejumlah diagram interaksi. Tujuan dari analisis berorientasi objek adalah untuk mengembangkan model yang menggambarkan perangkat lunak komputer karena bekerja untuk memenuhi seperangkat persyaratan yang ditentukan pelanggan.

UML (Unified Modeling Language) 

adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software. Unified Model Language (UML) adalah bahasa universal untuk :
memvisualisasikan grafis model yang tepat.
menetapkan model yang tepat, lengkap, dan tidak ambigu untuk mengampil semua keputusan penting dalam analisis, desain dan implementasi.
membangun model yang dapat dihubungkan langsung dengan bahasa pemrograman.
mendokumentasikan semua informasi yang dikumpulkan oleh tim sehingga memungkinkan untuk berbagi informasi.

Object Oriented Design

OOD (Object Oriented Design)

OOD mengubah model konseptual yang dihasilkan dalam analisis berorientasi objek memperhitungkan kendala yang dipaksakan oleh arsitektur yang dipilih dan setiap non-fungsional – teknologi atau lingkungan – kendala, seperti transaksi throughput, response time, run – waktu platform, lingkungan pengembangan, atau bahasa pemrograman.

Desain model berdasarkan model analisa tetapi berisi detail implementasi. Fokus dari object design adalah perencanaan struktur data dan algoritma yang diperlukan untuk implementasi setiap kelas. Objek domain aplikasi dan objek domain komputer dijelaskan dengan menggunakan konsep dan notasi berorientasi objek yang sama.
Class Diagram

Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment , pewarisan, asosiasi, dan lain-lain.

Class memiliki tiga area pokok :
  1. Nama (dan stereotype)
  2. Atribut
  3. Metoda

Atribut dan metoda dapat memiliki salah satu sifat berikut :

  1. Private , tidak dapat dipanggil dari luar class yang bersangkutan
  2. Protected , hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
  3. Public , dapat dipanggil oleh siapa saja

Class dapat merupakan implementasi dari sebuah interface , yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time .

Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package . Kita juga dapat membuat diagram yang terdiri atas package.


Hubungan Antar Class

  1. Asosiasi, yaitu hubungan statis antar class . Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class Panah navigability m enunjukkan arah query antar class .
  2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
  3. Pewarisan, yaitu hubungan hirarkis antar class . Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
  4. Hubungan dinamis, yaitu rangkaian pesan ( message ) yang di- passing dari satu class kepada class Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.

Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display , dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men- trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.

Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity .

Sekian dan terimakasih. semoga bermanfat.


Graphic User Interface (GUI)




A. Pengertian GUI Pada JAVA 

Graphic User Interface (GUI) adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. Tujuannya adalah menambahkan beberapa komponen yang tidak bisa dibuat dalam basis text.

Komponen-konponen tersebut bisa berupa tombol, gambar, dll. Tujuannya adalah untuk memudahkan user menggunakan program yang dibuat tersebut.

Kalau dilihat pengertian tentang GUI secara umum adalah Interaksi yang dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem operasi Microsoft Windows.

B. Jenis-Jenis Gui

Diantara jenis-jenis gui di java adalah:

a) AWT (Abstract Window Toolkit)

AWT (Abstract Window Toolkit) adalah GUI Toolkit pertama pada bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasi desktop secara lengkap (komponen tabel saja tidak ada ) Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) akan tampak seperti aplikasi native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada umum-nya, dan begitu juga jika dijalankan pada Sistem Operasi Mac ataupun GNU/Linux. Kenapa ini bisa terjadi, karena AWT (Abstract Window Toolkit) ini benar-benar memanggil native subrutin untuk menggambar setiap komponen-nya ke layar.

b) SWT (Standart Widget Tookit)

SWT (Standart Widget Toolkit) adalah sebuah GUI Toolkit yang dikeluaran oleh IBM sebagai alternatif dari AWT/Java Swing milik SUN Microsystem. SWT terdapat pada package java.swt. package java.swt berisis komponen-komponen GUI yang bersifat platform sistem operasi.

Tampilan dari java.swt menyesuaikan dengan sistem operasi sehingga mengakibatkan dependensi sistem. Namun performa dari SWT ini sama dengan swing. Yang membedakan antara SWT (Standart Widget Toolkit) dan AWT/Java Swing adalah SWT ini benar-benar mengakses native GUI library yang terdapat pada Sistem Operasi melalui JNI (Java Native Interface).

c) SWING

Java Swing adalah librari java yang digunkan untuk menciptakan Grafik User Interface (GUI). Dengan Java Swing kita dapat membuat user interface yang cross platform atau OS independent. Artinya user interface yang kita buat dapat dijalankan pada system operasi apa saja (OS yang suport Java) dengan tampilan yang relative sama. Bahkan kita dapat membuat user interface yang menyerupai Windows XP, Mac OS atau Linux tanpa tergantung dari OS yang kita gunakan. SWING, adalah salah satu bagian dari Java Foundation Classes (JFC). Pada JFC ini juga terdapat fasilitas untuk menambahkan Rich Graphic Functionality.

LANGKAH-LANGKAH PRAKTIKUM

cthAWT1.java
import java.awt.*;
public class cthAWT1 {
public static void main(String[] args) {
Frame myFrame = new Frame(“Contoh program AWT”);
Label myLabel = new Label(“Selamat belajar JAVA”);
myFrame.add(myLabel);
myFrame.setSize(200,150);
myFrame.show();
}
}
CthAWT2.java
import java.awt.*;
class frameTurunan extends Frame {
Label myLabel = new Label (“Selamat Belajar JAVA!”);
public frameTurunan(String judul) {
setTitle (judul);
setSize(200,200);
add(myLabel);
show();
}
}
public class chtAWT2 {
public static void main(String[] args) {
frameTurunan f = new frameTurunan(“Ini FrameTurunan”);
}
}
CthSWING1.java
import javax.swing.*;
public class cthSwing1 {
public static void main(String[] args) {
JFrame myFrame= new JFrame(“Contoh program Swing”);
Jlabel myLabel= new JLabel(“Selamat belajar JAVA”);
myFrame.add(myLabel);
myFrame.setSize(200,150);
myFrame.setVisible(true);
myFrame.SetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
cthSWING2.java
import javax.swing.*;
class frameTurunan extend JFrame {
JLabel myLabel= new JLabel(“Selamat Belajar JAVA!”);
public frameTurunan(String judul) {
setTitle(judul);
setSize(200,200);
add(myLabel);
setVisible(true);
}
}
public class cthSwing2 {
public static void main(String[] args) {
frameTurunan f = new frameTurunan(“Ini FrameTurunan”);
}
}
Dip

Komunikasi Dengan Database

Komunikasi Dengan Database




JAVA DATABASE CONECTIVITY (JDBC)

Sistem Basis Data pada Java

Database merupakan salah satu bagian inti dari Sistem Informasi yang menyimpan data untuk proses pengolahan nantinya. Agar aplikasi bisa mengakses data dari suatu database engine, maka diperlukan suatu mekanisme koneksi antara aplikasi dan database tersebut. Pada bahasa pemrograman java terdapat kumpulan kelas yang digunakan khusus untuk koneksi database.

Komponen database pada java mengikuti standar SQL (Structured Query Language), sehingga libraryfungsinya dapat ditemukan dalam package java.sql.* dan javax.sql.*.

Terdapat 3 langkah utama untuk melakukan koneksi ke database : (1) membuat koneksi sengan server database. (2) Membuat perintah dan mengirimkannya ke server database. (3) menerima dan mengolah hasil.

Untuk mendapatkan koneksi database, diperlukan 3 langkah, yaitu :
  1.  Menginstalasi driver database yang digunakan
  2.  menciptakan instance object dari server
  3.  melakukan registrasi koneksi ke database

Setelah berhasil dilakukan, maka kita hanya perlu melakukan registrasi koneksi, dan menciptakan koneksi melalui interface Connection berdasarkan URL disertai dengan username dan password database

PENGERTIAN

JDBC (Java database connectivity) adalah spesifikasi standar dari JavaSoft API (Aplication Programming Interface) yang memungkinkan program Java untuk mengakses sistem database manajemen. JDBC menyediakan methods untuk melakukan query dan modifikasi data pada RDBMS seperti Oracle, SQL Server, MySQL, dll menggunakan Driver Manager. JDBC mirip dengan ODBC (Open Database Connectivity), hanya saja JDBC spesifik digunakan untuk program Java. ODBC bersifat language independent.

JDBC memiliki beberapa kegunaan, yaitu membantu programmer untuk koneksi dengan data source, membantu mengirimkan query dan update statements ke database, dan menerima serta memroses hasil yang didapatkan dari database sesuai dengan query yang diberikan.Untuk melakukan koneksi ke suatu sumber data, diperlukan database driver yang akan menjadi jembatan antara Aplikasi dengan Database. Database driver ini bersifat spesifik untuk setiap sumber data. Misalnya, Database Driver MySQL hanya bisa digunakan untuk melakukan koneksi ke database MySQL, begitu juga dengan Database Driver PostgreSQL hanya untuk PostgreSQL.

Komponen utama JDBC

  1. Driver adalah komponen untuk menangani masalah komunikasi dengan server database.
  2. DriverManager adalah komponen untuk menangani objek driver.
  3. Connection adalah komponen yang menyimpan koneksi ke database.
  4. Statement adalah komponen yang menangani perintah SQL ke database.
  5. ResultSet adalah komponen yang menyimpan data hasil perintah ke database.
  6. SQLException adalah komponen untuk menangani kesalahan-kesalahan yang mungkin terjadi saat pengolahan database.


Memanggil Driver JDBC

Untuk menghubungkan database MySQL dengan Java, perlu dilakukan pemanggilan driver JDBC. Driver adalah sebuah library yang berisi perintah-perintah untuk berkomunikasi dengan server database.

Sebelum mulai menulis program, import terlebih dahulu package java.sql.*. karena di dalam library ini terdapat kelas-kelas seperti DriverManager, Connection, dan ResultSet.

import java.sql.*

Untuk memanggil driver JDBC bisa menggunakan

Class.forName(namaDriver);


atau

Class.forName(namaDriver).newInstance();

Keduanya bertujuan untuk registrasi Class Driver. Perintah tersebut dapat menghasilkan error bila driver tidak ditemukan, sehingga perlu dilakukan penanganan, menggunakan ClassNotFoundException.

try {

// perintah pemanggilan driver

} catch (ClassNotFoundException exc) {

// penanganan kesalahan

}


Membangun Koneksi

Setelah berhasil melakukan pemanggilan driver, maka dilanjutkan dengan membangun koneksi. Untuk membuat koneksi tidak perlu dengan menciptakan object baru. Karena pembuatan object telah dienkapsulasi pada kelas DriverManager. Jadi, untuk mendapatkan object hanya dengan syntax :

DriverManager.getConnection(url, username, password);
Sama seperti pemanggilan driver, perintah kali ini dapat menyebabkan error. Untuk itu, diperlukan penanganan. Namun, kali ini menggunakan SQLException, karena kesalahan yang mungkin terjadi ada di dalam database engine.

try {

Connection conn = DriverManager.getConnection(URL, username, password);

} catch (SQLException exc) {

// penanganan kesalahan

}


URL bisa dibuat dengan format : Jdbc:<DBServer>://[host]:[port]/<NamaDB>

Username : user pada server database

Password : password untuk user diatas


Membuat Object Statement

Statement merupakan objek interface yang diciptakan dari method Connection.createStatement().Objek Statement digunakan untuk penerimaan statement SQL tanpa parameter.

Perintah Statement :

Statement stat = Connection.createStatement();

Melakukan Eksekusi

Sekarang, objek statement telah dibuat dan sudah bisa digunakan untuk mengirim perintah SQL, kemudian mengeksekusinya. Untuk melakukan eksekusi, dibagi menjadi 2 bagian.
  1. Pertama, menggunakan method executeQuery(). Method ini dipakai untuk perintah SELECT,sehingga akan memberikan nilai kembalian dalam bentuk ResultSet.
  2. Kedua, menggunakan method executeUpdate(). Method ini dipakai pada perintah INSERT, UPDATE, dan DELETE. Untuk melakukan perintah DELETE :

PreparedStatement stat = conn.prepareStatement(perintah/query delete);

stat.executeUpdate();

Menerima hasil dan memprosesnya

Hasil statement akan memberikan hasil, jikaperintah yang digunakan adalah SELECT. Hasil kembalian berupa ResultSet.

ResultSet rs = stat.executeQuery(perintah SQL);

If( rs.next() ) {

// ambil nilai dan masukan ke dalam variabel

}


langkah-langkah diatas merupakan cara yang paling sederhana untuk melakukan akses database pada bahasa pemrograman Java.

EMPAT KOMPONEN PENTING DARI JDBC :

1. JDBC-API

JDBC-API menyediakan fasilitas untuk mengakses database relasional dari program berbahasa Java. Melalui komponen ini user dapat melakukan proses query dan perubahan data dalam database. JDBC-API memiliki package utama yang tersedia pada java.sql dan javax.sql.

2. JDBC Driver Manager

Merupakan komponen kelas utama yang mendefinisikan object yang mengkoneksikan aplikasi Java ke JDBC driver. Komponen ini berfungsi untuk mengatur beberapa tipe JDBC database driver yang berbeda. JDBC Driver Manager memilih driver mana yang sesuai untuk koneksi ke suatu database.

3. JDBC Test Suite

Komponen ketiga ini memastikan JDBC driver dapat menjalankan program user dan sangat berguna dalam melakukan testing sebuah aplikasi yang menggunakan teknologi JDBC.

4. JDBC-ODBC Bridge

Adalah database driver yang menggunakan ODBC driver untuk koneksi ke database serta memiliki fungsi utama untuk translasi dari JDBC method calls ke ODBC function calls dan mengimplementasikan JDBC untuk semua driver yang didukung oleh ODBC. Komponen ini dapat diimplementasikan dalam package sun.jdbc.odbc.

   JDBC MEMILIKI 10 ARSITEKTUR, YAITU :
  1. Database connections
  2. SQL Statements
  3. Result set
  4. Database metadata
  5. Prepared Statement
  6. Binary Large Objects (BLOBs)
  7. Character Large Objects (CLOBs)
  8. Callable statements
  9. Database Driver
  10. Driver Manager

Tipe 1 – JDBC-ODBC Bridge

Fungsi

  • Translasi query dari JDBC ke ODBC query
  • Client à JDBC Driver à ODBC Driver à Database

Keunggulan

  • Semua database yang didukung oleh ODBC dapat diakses

Kelemahan

  • Performance overhead 
  • ODBC driver harus diinstal di semua client
  • Dibutuhkan client-side software

Tipe 2 – Java to Native API

Fungsi

  • Konversi JDBC calls ke client API untuk database
  • Client à JDBC driver à Vendor Client DB Library à Database

Keunggulan

  •  Performa lebih baik daripada tipe 1

Kelemahan

  •  Vendor client library harus diinstal di client.
  • Tidak dapat digunakan di internet karena membutuhkan client-side software.
  • Tidak semua database memberikan client-side library.


Tipe 3 – Java to Network Protocol or All-Java Driver

Fungsi


  • Menggunakan pendekatan three-tier communication
  • Vendor independent
  • Client à JDBC Driver à Middleware-Net Server à Any database


Keunggulan

  •  Tidak membutuhkan instalasi pada client-side
  • Middleware server dapat memberikan fungsi tambahan dalam hal caching, load balancing, logging, auditing, dll.
  • Dapat digunakan di internet


Kelemahan


  •  Membutuhkan program yang bersifat database-specific untuk middle tier.
  • Extra layer dapat menyebabkan time-bottleneck.


Tipe 4 – Java to Database Protocol

Fungsi


  • Melakukan komunikasi langsung dengan database melalui koneksi socket.
  • Driver berfungsi mengubah JDBC call ke database protocol langsung.
  •  Diimplementasikan sepenuhnya dalam Java.
  • Client Machine à Native Protocol JDBC Driver à Database Server. Contoh: Oracle Thin Driver


Keunggulan

  • Performa cenderung meningkat à Tidak melakukan translasi ke ODBC, tidak menggunakan client API, tidak menggunakan middleware layer

Kelemahan

  • Pada sisi client, driver untuk masing-masing database harus terinstal.

BEBERAPA KONSEP PENTING DI DALAM JDBC :

Transactions

  • Secara default, semua transaksi pada JDBC bersifat auto-commit

Logging

  • Digunakan untuk mengatur apakah dilakukan logging kejadian selama transaksi dilakukan.


Concurrency

  • Memastikan transaksi terjadi sesuai urutan kronologis.
  • Berhubungan dengan kemungkinan terjadinya multikoneksi yang mengakses data yang sama.

JDBC MASIH MEMILIKI KOMPONEN PENTING LAIN, YAITU :

  1. Package java.sql : Berisi beberapa class, interface yang digunakan dalam transaksi.
  2. DriverManager : Menangani segala sesuatu yang berkaitan dengan driver yang dipakai.
  3. DataSource : Alternatif dari DriverManager untuk melakukan koneksi database.

JDBC Connection Object

Object untuk melakukan koneksi dengan database
Membuat Statement, PreparedStatement, dan CallableStatement untuk eksekusi SQL.
Melakukan commit dan rollback transaksi


KOMPONEN UTAMA JDBC API


JDBC API memiliki beberapa komponen utama yang berhubungan dengan mekanisme pengolahan data baik itu untuk berkomunikasi dengan database server, melakukan koneksi, mengirim perintah SQL, mendapatkan data, menutup koneksi, serta penanganan error yang mungkin terjadi dalam pengolahan data.
  1. Driver adalah komponen untuk menangani komunikasi dengan database server.
  2. DriverManager adalah komponen untuk menangani objek Driver dimana objek DriverManager juga mengabstraksi detail dari proses kerja objek Driver.
  3. Connection adalah komponen untuk merepresentasikan koneksi secara fisik ke database
  4. Statement adalah komponen untuk mengirim perintah-perintah SQL ke database.
  5. ResultSet adalah komponen untuk menyimpan data yang didapat dari database setelah perintah SQL dijalankan dengan menggunakan komponen Statement.
  6. SQLException adalah komponen untuk menangangi kesalahan-kesalahan (error) yang mengkin terjadi dalam pengolahan database

Basis data client-server

Basis data client-server




PENGERTIAN CLIENT – SERVER

Client-Server merupakan suatu paradigma hubungan antara computer yang menjadi penyedia dan computer yang menjadi penerima. Hubungan suatu CLIENT-SERVER adalah computer meminta sesuatu ke computer lain dan computer lain memenuhi permintaan. Hubungan ini menggunakan jaringan agar tetap terhubung satu sama lain,menggunakan metode LAN,MAN,atau WAN.

Metode LAN menghubungkan suatu Client ke Server yang lain dengan jarak yang sangat dekat, Metode MAN menghubungkan jarak yang sedang antara Client dan Server dan Metode WAN menghubungkan Cient dengan Server yang lain dengan jarak yang jauh,WAN bisa juga disebut dengan INTERNET .

Server digunakan untuk mengirimkan dan menyediakan keperluan dari client. Dalam penyediaannya server dapat membatasi file dan data yang di minta oleh client hal tersebut dilakukan untuk mencegah suatu kejadian yang tidak terduga seperti server di serang dengan cara mengirim program tidak bertanggung jawab atau virus. Sehingga server memiliki hak yang lebih tinggi dibandingkan dengan client.

SERVER atau KOMPUTER SERVER adalah suatu sistem komputer yang menyediakan layanan disebuah jaringan komputer yang dilengkapi dengan prosesor cepat dan RAM yang besar,dilengkapi dengan sistem operasi khusus untuk server.

Server mengontrol akses terhadap jaringan dan sumber daya yang terdapat di dalamnya seperti file atau printer, dan memberikan akses kepada Clients.

CLIENTS adalah suatu system yang mengakses suatu system computer yang menyediakan layanan atau server melalui jaringan seperti LAN,MAN,WAN. Clients meminta data ke server dan server memenuhi permintaan tersebut yang dikirimkan melalui jaringan.

Client Server terdiri dari 3 komponen pembentuk yaitu Client, Middleware, dan Server.

FUNGSI CLIENT SERVER

fungsi dari CLIENT-SERVER adalah untuk memudahkan pekerjaan dalam suatu system jaringan ,yang diminta oleh client dapat dipenuhi oleh server dalam waktu singkat ataupun sebaliknya. Sehingga pekerjaan menjadi efisien.berikut adalah tugas dari server dan client.

Server

  1. Menerima dan memproses basis data yang diminta dari client
  2. Memeriksa autorisasi
  3. Menjamin tidak terjadi pelanggaran terhadap integrity constraint
  4. Melakukan query/pemrosesan update dan memindahkan response ke client
  5. Memelihara data dictionary

Client

  1. Mengatur user interface
  2. Menerima dan memeriksa sintaks input dari pemakai
  3. Memproses aplikasi
  4. Generate permintaan basis data dan memindahkannya ke server
  5. Memberikan response balik kepada pemakai
  6. Menyediakan akses basis data secara bersamaan
  7. Menyediakan kontrol recovery


JENIS CLIENT-SERVER

  1. File Servers
  2. Database Servers
  3. Transaction Servers (Transaksi Server)
  4. Groupsware Servers
  5. Object Application Servers
  6. Web Application Servers (Aplikasi Web Servers)

TIPE CLIENT-SERVER

1. Standalone (one-tier)

Pemrosesan data dilakukan pada mainframe.
Keuntungan
  • Sangat mudah
  • Cepat dalam merancang dan mengaplikasikan
Kelemahan
  • Skala kecil
  • Susah diamankan
  • Menyebabkan perubahan terhadap salah satu komponen diatas tidak mungkin dilakukan, karena akan mengubah semua bagian.
  • Tidak memungkinkan adanya re-usable component dan code.
  • Cepat dalam merancang dan mengaplikasikan

2. Client/Server (two tier)

Pemrosesan data pada sebuah aplikasi terjadi pada client dan server.
Kelebihan:
  •  Mudah
  •  Menangani Database Server secara khusus
  •  Relatif lebih sederhana untuk di develop dan diimplementasikan.
  •  Lebih cocok diterapkan untuk bisnis kecil.
Kekurangan:
  •  Kurangnya skalabilitas
  •  Koneksi database dijaga
  •  Tidak ada keterbaharuan kode
  •  Tidak ada tingkat menengah untuk menangani keamanan dan transaksi skala kecil.
  •  Susah di amankan.
  •  Lebih mahal.

3. Three Tier

Arsitektur ini pengembangan arsitektur Client Server. Arsitektur Three Tier ini terdapat Application Server yang berdiri di antara Client dan Database Server. Contoh dari Application server adalah IIS, WebSphere, dan sebagainya.
Kelebihan:
  • Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil.
  • Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah
  • Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
  • Skala besar.
  •  Keamanan dibelakang firewall.
  •  Transfer informasi antara web server dan server database optimal.
  •  Komunikasi antara system-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih cepat dan berada pada tingkat yang lebih rendah.
  •  Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database.
Kekurangan:
  •  Lebih susah untuk merancang
  •  Lebih susah untuk mengatur
  •  Lebih mahal

4.Multi Tier</li

Arsitektur Multi Tier mirip dengan Three Tier. Kelebihan arsitektur ini dilengkapi UI (User Interface) dan Data Processing. Khususnya dengan adanya Business Logic Server.
Kelebihan:
  • Dengan menggunakan aplikasi multi-tier database, maka logika aplikasi dapat dipusatkan pada middle-tier, sehingga memudahkan untuk melakukan control terhadap client-client yang mengakses middle server dengan mengatur seting pada dcomcnfg.
  • Dengan menggunakan aplikasi multi-tier, maka database driver seperti BDE/ODBC untuk mengakses database hanya perlu diinstal sekali pada middle server, tidak perlu pada masing-masing client.
  • Pada aplikasi multi-tier, logika bisnis pada middle-tier dapat digunakan lagi untuk mengembangkan aplikasi client lain,sehingga mengurangi besarnya program untuk mengembangkan aplikasi lain. Selain itu meringankan beban pada tiap-tiap mesin karena program terdistribusi pada beberapa mesin.
  • Memerlukan adaptasi yang sangat luas ruang lingkupnya apabila terjadi perubahan sistem yang besar.
  • Kekurangan
  • Program aplikasi tidak bisa mengquery langsung ke database server, tetapi harus memanggil prosedur-prosedur yang telah dibuat dan disimpan pada middle-tier.
  • Lebih mahal

TUJUAN CLIENT-SERVER

Dibentuknua CLIENT – SERVER adlaah untuk memudahkan komunikasi antara satu computer dengan komputer yang lain dalam suatu sistem jaringan kerja,dengan bantuan Server dan Jaringan.
APLIKASI CLIENT-SERVER

Pengaplikasian dari CLIENT – SERVER adalah seperti LAN . Contoh aplikasi dalam CLIENT-SERVER adalah SKYPE ,kita mengirimkan data ke SKYPE dan Server SKYPE menerima data yang CLIENT kirim dimana SERVER SKYPE menerjemahkan kode yang kita kirim ke servernya setelah diterjemahkan SERVER mengirimkan data ke CLIENT sesuai apa yang SERVER sudah terjemahkan sebelumnya dan sebaliknya,adapun contoh aplikasi client server yang lain seperti Whatsapp Messenger,We Char dan sebagainya.




Open Database Connectivity (ODBC)

Open Database Connectivity (disingkat menjadi ODBC) adalah sebuah standar terbuka untuk konektivitas antar mesin basis data. Standar ini menyediakan API yang dapat digunakan untuk menjalankan dan mengoneksikan sebuah aplikasi dengan sebuah sistem manajemen basis data (SMBD). Para desainer ODBC membuatnya dengan tujuan agar ODBC terbebas dari penggunaan bahasa pemrograman tertentu, sistem manajemen basis data tertentu, dan sistem operasitertentu.

ODBC merupakan protokol standard yang dapat menghubungkan segala jenis database eksternal server atau file eksternal server. Driver ODBC yang digunakan oleh Mesin database Microsoft Jket dapat mengakses Microsoft SQL Server dan beberapa database eksternal lainnya. ODBC dapat mengakses sumber data baik lokal maupun jarak jauh (remote) dengan menggunakan driver ODBC. Driver ODBC 16 bit atau 32 bit keduanya dapat digunakan untuk mengakses sumber data.

Open Database Connectivity (ODBC) adalah Application Programming interface (API) database yang khusus digunakan untuk mengakses database relasional. ODBC terdapat dalam setiap komputer yang menggunakan sistem operasi windows, karena ODBC merupakan bagian dari Windows Open System Architecture (WOSA). Dalam ODBC disediakan berbagai Application Programming Interface (API) yang berguna untuk menyediaan dan memberikan stkitar bagi berbagai kegiatan pemrograman. Keuntungan utama menggunakan ODBC ini adalah fleksibilitas, fleksibel disini artinya pengubahan jenis database yang dipergunakan oleh sebuah aplikasi tidak akan mempengaruhi kode program aplikasi tersebut.

ODBC terdapat dalam Control Panel Windows, yang ditunjukkan dengan icon Data Source (ODBC). Hanya saja tempat tampilan ODBC tidak sama untuk beberapa jenis windows, seperti Windows98,2000,NT,XP,Me masing-masing akan mempunyai tampilan yang berbeda untuk lokasi ODBC.

Pada ODBC terdapat 2 hal penting yang berkaitan dengan koneksi database, yaitu :

  1. Database Driver adalah software/driver yang berfungsi untuk membuat koneksi ke database yang sesuai dengan database tersebut. Setiap database memiliki driver yang spesifik, sehingga dalam sebuah ODBC data berisi lebih dari 1 database driver.
  2. Data Source Name (DSN) adalah nama/alias dari database yang digunakan oleh program, yang koneksinya melalui ODBC.

Dalam ODBC terdapat beberapa jenis Data Source Name yang akan menentukan otoritas pemakai database, yaitu :

  1. User DSN bersifat private bagi user pembuatnya, artinya DSN jenis ini hanya dapat dipergunakan/tampak oleh user yang membuatnya (yaitu user yang login dengan username pembuat DSN tersebut), yang perlu menjadi catatan adalah bahwa sifat user DSN ini hanya berjalan pada Windows NT.
  2. System DSN bersifat public dalam sebuah komputer, artinya semua user yang menggunakan komputer dimana Sistem DSN di-install dapat menggunakannya walaupun bukan pembuatnya.
  3. File DSN adalah satu-satunya yang bisa di-share dan dapat dipergunakan komputer lain yang memiliki driver database yang sama, dengan demikian setting untuk koneksi database cukup dilakukan pada 1 komputer saja dan komputer yang lain cukup me-load-nya saja. File DSN ini umumnya dipergunakan untuk aplikasi multiuser pada suatu LAN.

ODBC memiliki beberapa komponen utama, yakni sebagai berikut:

  1. ODBC API: sekumpulan panggilan fungsi, kode-kode kesalahan dan sintaksis SQL yang mendefinisikan bagaimana data dalam sebuah DBMS diakses.
  2. Driver basis data ODBC: driver (yang berupa dynamic link library) yang mampu memproses panggilan fungsi ODBC untuk sebuah DBMS tertentu.
  3. ODBC Driver Manager: yang bertugas untuk memuat driver basis data ODBC yang dibutuhkan oleh aplikasi.

Pengguna sistem operasi Windows dapat mengonfigurasikan ODBC dengan menggunakan utilitas ODBC yang terdapat di dalam Control Panel. Utilitas ini mengizinkan mereka untuk mendefinisikan DSN (Data Source Name) untuk basis data yang hendak diakses dan juga driver yang digunakan untuk mengakses basis data tersebut. Untuk mengonfigurasikan ODBC dengan utilitas ini, mereka dapat mengasosiasikan sebuah DSN dengan sebuah driver ODBC, yang mengizinkan aplikasi untuk dapat berinterakse dengan sebuah basis data yang disimpan baik secara lokal di dalam mesin yang sama maupun di dalam server jaringan.

SQL pada basis data client-server

SQL pada basis data client-server



RETERIVAL DATA DENGAN KLAUSA WHERE

Yang termasuk pada data retrieval pada SQL (Struktur Query Language) adalah select statement. Walaupun banyak sebagian pendapat bahwa select statement masuk pada DML(Data Manipulation Language).Ada 5
  1. Basic select statement
  2. Select dengan kolom alias
  3. Select dengan klausa where
  4. Select dengan klausa order by
  5. Select dengan fungsi grup

Basic select statement

Basic select statement adalah jenis yang paling dasar, yaitu hanya menampilkan data semua atau sebagian dengan tidak menampilkan suatu kondisi pada statement tersebut. Contoh Basic select statement adalah :

Select * from pegawai;

Artinya adalah menampilkan semua data pada table pegawai.

Select dengan kolom alias

Select dengan kolom alias adalah jenis select statement dengan menampilkan kolom yang diinginkan sebagai alias. Jadi nama kolom asal diubah pada saat menampilkan tetapi tida mengubah nama kolom pada table asli. Contoh Select dengan kolom alias adalah :

Select emp_name as nama_pegawai from pegawai ;
Artinya adalah menampilkan kolom emp_name yang ada pada table pegawai dan nama kolomnya diubah menjadi nama_pegawai.


Select dengan klausa where

Select dengan klausa where adalah jenis select statement dengan memberikan kon
i baris yang akan ditampilkan. Contoh Select dengan klausa where adalah :

Select emp_name from pegawai where nip = 1110023 ;

Artinya adalah menampilkan emp_name dari table pegawai dengan nip = 1110023.

Select dengan klausa Order By

Select dengan klausa Order By adalah select statement dengan memberikan pengurutan pada data yang ditampilkan. Pengurutan berupa ascending atau descending. Cntoh Select dengan klausa Order By adalah :

Select nip, emp_name from pegawai order by nip asc;

Artinya adalah menampilkan emp_name dan nip dari table pegawai diurutkan berdasarkan nip secara ascending.

Select dengan fungsi Group

Select dengan fungsi Group adalah select statement dengan mengelompokan data berdasarkan kolom tertentu. Contoh dari Select dengan fungsi Group adalah :

Select nip, emp_name from pegawai Group by nip ;
Artinya adalah menampilkan emp_name dan nip dari table pegawai di kelompokan berdasarkan nip-nya.

UPDATE DATA

Perintah UPDATE ini berfungsi untuk memperbaharui data lama menjadi data yang baru, dalam penggunaanya harus disertai dengan klausa WHERE,

Syntax : UPDATE nama_tabel SET kolom_pertama = ‘data_kolom_pertama’, kolom_kedua = ‘data_kolom_kedua’, kolom_terakhir = ‘data_kolom_terakhir’, WHERE kondisi;

Parameter : set, where

Contoh : UPDATE datapribadi SET telp=’085545323101′ WHERE Nip=’120909′;

HAPUS DATA

Anda bisa menghapus record atau data di suatu table dengan menggunakan 2 cara, yaitu:

Delete Statement

Delete Statement digunakan untuk menghapus data berdasarkan query sesuai dengan keinginan pengguna. Delete statement termasuk salah satu perintah DML (Data Manipulation Language).

Truncate Statement

Sedangkan Truncate Statement adalah perintah untuk mengosongkan isi table. Sama seperti Delete Statement, tapi Truncate Statement tanpa menggunakan Where clause. Truncate Statement merupakan salah satu perintah DDL (Data Definition Language).

Menghapus Semua Data

Untuk menghapus semua data atau record di tabel, Anda bisa menggunakan Delete statement TANPA Where clause.

Contoh:

DELETE FROM mahasiswa =Perintah diatas akan menghapus semua data di tabel MAHASISWA.

  •  Menghapus Data Atau Record Tertentu
  •  Untuk menghapus data atau record tertentu pada table, Anda dapat menggunakan WHERE clause pada Delete statement.
Contoh:

DELETE FROM mahasiswa WHERE jurusan = ‘Teknik Informatika‘ AND gender = ‘L’;

Perintah diatas akan menghapus data pada tabel Mahasiswa yang berjenis kelamin laki-lai dan mempunyai jurusan Teknik Informatika.

Mengedit Constraint :

Alter table person; add constrain uc_personID unique (P_ID, Lastname);
Membuat tabel :

Create table contoh
(
nama varchar (20)
no int (12)
alamat varchar (25)
Primary key (nama);
)

MENGEDIT STRUKTUR TABLE

Alter table contoh ADD primary key (no);

Alter table contoh modify no varchar (12) not null;

Penggabungan Data

Penggabungan Data



Pengertian Join

Join adalah penggabungan tabel yang dilakukan melalui kolom / key tertentu yang memiliki nilai terkait untuk mendapatkan satu set data dengan informasi lengkap.

Pengelompokkan Instruksi Join:

  1. Inner Join
  2. Outer Join
  3. Cross Join
  4. Equi Join
  5. Natural Join
  6. Self Join

Natural Join

Join yang menghasilkan baris-baris yang minimal ada sebuah baris di kedua tabel yang sesuai dengan kondisi join.
Contohnya:

Select FIRST_NAME.JOB_TITLE
From EMPLOYEES
Natural join JOBS;

Equi Join

Adalah Join yang menggunakan tanda equal (=) untuk membandingkan operatornya.


Self Join

Adalah join yang dilakukan antar kolom dalam 1 tabel.

Non Equi Join

Merupakan join yang menggunakan tanda selain equal (=) , misalkan tanda !=, <,>,<=, dll.
Contohnya:

Select FIRST_NAME,SALARY,TAX_RATE
from EMPLOYEES
Join TAX
On SALARY between MIN_SALARY and
MAX_SALARY;

Inner Join

Adalah default dari join , digunakan mendapatkan data dari tabel lain berdasarkan kolom yang dihubungkan, bila tidak ditemukan maka baris data tersebut dibatalkan.
Contoh:

SELECT E.FIRST_NAME, J.JOB_TITLE FROM E INNER JOIN J ON
E.JOB_ID=J.JOB_ID;


Right Outer Join

Akan menampilkan semua baris pada tabel yang terletak pada kanan syntax JOIN walaupun tidak sesuai dengan tabel yang berada pada sebelah kiri JOIN.
Contohnya:

Select E.FIRST_NAME, J.JOB_TITLE
From EMPLOYEES E
Right outer join JOBS J
On E.JOB_ID=J.JOB_ID;


Left Outer Join

Akan menampilkan semua baris pada tabel yang terletak pada kiri syntax JOIN walaupun tidak sesuai dengan tabel yang berada pada sebelah kanan JOIN.
Contohnya:

Select E.FIRST_NAME, J.JOB_TITLE
From EMPLOYEES E
Left outer join JOBS J
On E.JOB_ID=J.JOB_ID;

Data Konditional

Data Konditional

NVL

NVL adalah fungsi yang akan membandingkan apakah dalam data dalam database terdapat nilai null dan menggantinya dengan sebuah nilai yang tidak null. Hal ini dikarenakan jika dalam suatu database terdapat nilai null, maka untuk beberapa fungsi tidak bisa mengolah nilai null sehingga hasilnya akan menyebabkan data tidak konsisten. Adapun syntax penulisan NVL ini yaitu:
Dimana :
Ekspresi1: ekspresi yang mungkin mengandung null
Ekspresi2: nilai untuk mengganti nilai null tersebut.

Nvl

Jadi, jika ekspresi1 bernilai null, maka fungsi akan mengembalikan ekspresi2 dan mengganti nilai dari ekspresi1 (null) dengan nilai ekspresi2. Dan jika ekspresi1 bernilai tidak null, maka fungsi akan tetap mengembalikan nilai dari ekspresi1 tersebut (tanpa diubah). Adapun contoh penggunaan dari fungsi NVL ditunjukkan pada gambar berikut.

Nvl 2

Fungsi NVL2 ini hampir sama seperti fungsi NVL. Bedanya, pada NVL2 ini menggunakan 3 buah ekspresi. Adapun syntax penulisan NVL2 ini yaitu sebagai berikut:
Dimana :
Ekspresi1: ekspresi yang mungkin mengandung nilai null
Ekspresi2: nilai yang dikembalikan jika ekspresi1 TIDAK null
Ekspresi3: nilai yang dikembalikan jika ekspresi1 bernilai null

Nvl 2

Contoh Penggunaan NVL 2 :
Penggunaan NVL2 tanpa null

Struktur kondisi case

Fungsi CASE ini merupakan alternatif penggunaan if-then-else pada pemrograman. Sehingga dengan menggunakan fungsi case, kita dapat memberikan hasil berdasarkan pemilihan kondisi yang telah ditetapkan. Adapun syntax penulisa case secara umum ditunjukkan sebagai berikut :
Struktur kondisi case
Dalam CASE ini terbagi menjadi 2 jenis yaitu:

Nilai Skalar

Pada jenis ini setelah pernyataan CASE dituliskan langsung ekspresi dari pengkondisian yang dibutuhkan. Contoh penggunaan :

Struktur kondisi case


Predikat Subqueri dalam bentuk pencarian

Pada jenis ini setelah pernyataan CASE tidak dituliskan ekspresi dari kondisi, melainkan dituliskan setelah penulisan WHEN, oleh sebab itu pada jenis ini disebut dengan pencarian. Kelebihan dari jenis ini adalah kita bisa menggunakannya pada kondisi yang tidak sama (gabungan dari beberapa kondisi yang tidak saling berhubungan).

Struktur kondisi case

Adapun contoh dari jenis ini ditunjukkan sebagai berikut :
Substitute variabel, merupakan jenis variabel yang sifatnya dinamis. Variabel substisuti pada penggunaannya di dalam blok PL/SQL dapat menerima input nilai dari luar blok PL/SQL tersebut. Nilai yang diinputkan dapat berubah-ubah setiap kali blok PL/SQL dijalankan. Tanda bahwa variabel tersebut variabel substitusi adalah terdapat danda “&” di awal nama variabel.

Berikut ini contoh blok PL/SQL yang memiliki 2 buah variabel substisuti :

Jika blok PL/SQL tersebut dijalankan maka akan meminta diinputkan 2 buah nilai ke dalam variabel in1 dan in2. Misalkan in1 diisikan nilai 10 dan in2 diisikan nilai 20 maka hasil yang ditampilkan adalah hasil penjumlahan in1 dan in2 yaitu 30.