Oleh: lovesthi | September 11, 2009

Contoh Program OOP, JDBC dan Servlet/JSP

Contoh Program OOP

Dalam OOP terdapat 3 konsep dasar yaitu Encapsulation/Enkapsulasi, Polymorphisme dan Inheritance/Pewarisan. Ketiga konsep tersebut akan mempengaruhi seluruh program yang berorientasi pada object.

Misalnya terdapat kelas induk bernama Transformasi, berikut list programnya :

public abstract class Transformasi {
        int x=2;
        int y=4;
        public abstract void cetakTitikAsal();
}

Class Transformasi diatas merupakan Abstract Class yaitu class yang tidak dapat dibuat instancenya. Saat sebuah class ditandai sebagai abstract class, maka compiler akan menghentikan code apabila ada statement new diikuti nama class tersebut. Jika kita menandai class sebagai abstract class, maka kita tidak dapat membuat objek baru dari class tersebut, tetapi kita masih dapat menggunakan class tersebut sebagai tipe referensi yang dideklarasikan. Abstract class sebenarnya secara virtual no use, no value, no purpose in life, kecuali hanya untuk diperluas (is extended). Yang bekerja saat runtime adalah instance subclass dari abstract class.

Kemudian class Transformasi memiliki 3 class turunan yaitu class Dilatasi, class Refleksi dan class Translasi. Berikut list programnya:

Listing Program class Dilatasi

public class Dilatasi extends Transformasi {
       @Override
       public void cetakTitikAsal() {
       }
       public void hasilDilatasi(int k){
            System.out.println("Dilatasi oleh k menghasilkan titik ("+(k*x)+","+(k*y)+")");
       }
}

Listing Program class Refleksi

public class Refleksi extends Transformasi {
        int x=3;
        int y=-5;
        @Override
        public void cetakTitikAsal() {
             System.out.println("x = "+x+" dan y = "+y);
        }
        public void hasilRefleksi(){
        }
}

Listing Program class Translasi

public abstract class Translasi extends Transformasi {
        public abstract void hasilTranslasi();
}

Ketiga class diatas merupakan class turunan dari class Transformasi, ditandai dengan kata extends. Hal ini menggunakan konsep dasar Inheritance. Didalam Java inheritance berarti the subclass extends the superclass. Sebuah inhertance relationship berarti subclass mewarisi “the members of the superclass” (instance variables dan methods dari class tersebut).

Class Refleksi memiliki dua buah class turunan yaitu class RefleksiKeX dan class RefleksiKeY. Berikut list programnya :

Listing Program class RefleksiKeX

public class RefleksiKeX extends Refleksi {
        public void hasilRefleksi(int a){
        }
}

Listing Program class RefleksiKeY

public class RefleksiKeY extends Refleksi{
        public void hasilRefleksi (int b){
             System.out.println("Refleksi terhadap Y = "+b+" menghasilkan titik ("+x+","+(2*b-y)+")");
        }
}

Kedua class turunan diatas (class RefleksiKeX dan class RefleksiKeY) memiliki method yang mengoverriding dan mengoverloading method induknya yaitu class Refleksi. Overriding a method maksudnya adalah membuat method lain dengan nama, daftar argumen dan tipe kembalian yang sama, tetapi body method yang berbeda. Sedangkan overloading maksudnya adalah membuat method lain dengan nama yang sama tetapi memiliki daftar argumen yang berbeda.

Class Translasi juga memiliki 1 class turunan yaitu class TranslasiT. Berikut list programnya :

public class TranslasiT <strong>extends</strong> Translasi {
        public void hasilTranslasi(int a, int b){
             System.out.println("Translasi oleh T menghasilkan titik ("+(x+a)+","+(y+b)+")");
        }
        @Override
        public void hasilTranslasi() {
        }
        @Override
        public void cetakTitikAsal() {
        }
}

Class-class yang telah dibuat diatas dapat digunakan dengan membuat object yang menginstansiasi class yang digunakan. Sebelumnya class main dibuat terlebih dahulu dengan nama class TransformasiTestDrive. Berikut list programnya :

public class <strong>TransformasiTestDrive</strong> {
        public static void main(String[] args) {

             RefleksiKeX b1 = new RefleksiKeX();
             RefleksiKeY b2 = new RefleksiKeY();
             TranslasiT b3 = new TranslasiT();
             Dilatasi b4 = new Dilatasi();

             b1.<strong>cetakTitikAsal()</strong>;
             b2.<strong>hasilRefleksi(3)</strong>;
             b3.<strong>hasilTranslasi(-4, 5)</strong>;
             b4.<strong>hasilDilatasi(2)</strong>;
        }
}

Object yang dibuat adalah b1, b2, b3 dan b4. Masing-masing object akan menginstansiasi class dimana object tersebut dibuat. Object b1 akan menjalankan method cetakTitikAsal() yang diambil bukan dari class RefleksieX tetapi class Refleksi, karena method tersebut ada pada class Refleksi yang merupakan induk dari class RefleksiKeX.

Object b2 akan menjalankan method hasilRefleksi(3) dengan nilai argumen 3 yang merupakan method override dan overload dari class Refleksi.

Object b3 akan menjalankan method hasilTranslasi(-4, 5) dengan nilai argumen -4 dan 5 yang juga merupakan method yang telah dioverride dan dioverload dalam class TranslasiT.

Object b4 akan menjalankan method hasilDilatasi(2) dengan nilai argumen 2 yang terdapat dalam class Dilatasi.

Contoh Program JDBC

Koneksi Database Java Dengan MySQL

Dalam Java, untuk melakukan koneksi database dari java ke MySQL menggunakan JDBC. Sebelumnya kita harus meload atau mengaktifkan driver JDBC terlebih dahulu :

Class.forName("com.mysql.jdbc.Driver");

Setelah kita meload driver jdbc nya, koneksi ke database dapat dilakukan dengan perintah berikut:
Class.forName("com.mysql.jdbc.Driver");

Parameter pertama merupakan url atau informasi database yang meliputi jenis dbms, host dan nama database. Parameter kedua merupakan username, dan parameter ketiga merupakan password untuk koneksi ke database. Untuk lebih jelas, source code yang lebih lengkap dapat dilihat di bawah ini :

MySQLConnection.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;import java.util.logging.Level;
import java.util.logging.Logger;
/*
*To change this template, choose Tools | Templates
* and open the template in the editor.
*/
public class MySQLConnection {
        private String url = "jdbc:mysql://localhost:3306/sekolah";
        private String host = "localhost";
        private int port = 3306;
        private String username = "root";
        private String password = "vertrigo";
        private String database = "sekolah";
        private Connection conn = null;

        public MySQLConnection(){
        try {
             try {
                  Class.forName("com.mysql.jdbc.Driver").newInstance();
             } catch (InstantiationException ex) {
                  Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
             } catch (IllegalAccessException ex) {
                  Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
             }
         } catch (ClassNotFoundException ex) {
              Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
         }
         }

         public Connection getConn() {
              if(conn==null){
                   try {
                        conn = DriverManager.getConnection(getUrl(), getUsername(), getPassword());
                   } catch (SQLException ex) {
                        Logger.getLogger(MySQLConnection.class.getName()).log(Level.SEVERE, null, ex);
                   }
              }
              return conn;
        }

        public void setConn(Connection conn) {
             this.conn = conn;
        }
        public String getDatabase() {
             return database;
        }
        public void setDatabase(String database) {
             this.database = database;
        }

        public String getHost() {
             return host;
        }

        public void setHost(String host) {
             this.host = host;
        }

        public String getPassword() {
             return password;
        }

        public void setPassword(String password) {
             this.password = password;
        }

        public int getPort() {
             return port;
        }

        public void setPort(int port) {
             this.port = port;
        }

        public String getUrl() {
             return url;
        }

        public void setUrl(String url) {
             this.url = url;
        }

        public String getUsername() {
             return username;
        }

        public void setUsername(String username) {
             this.username = username;
        }
}

Kemudian kita buat fungsi Main untuk mencoba koneksi

Misal : Test.java

import com.mysql.jdbc.Connection;
public class Test {
        public static void main(String[] args) {
             MySQLConnection msqlc = new MySQLConnection();
             Connection conn = null;
             msqlc.setUrl("jdbc:mysql://localhost:3306/sekolah");
             msqlc.setUsername("root");
             msqlc.setPassword("vertrigo");
             try {
                  msqlc.setConn(conn);
                  msqlc.getConn();
                  System.out.println("Koneksi Berhasil");
             } catch (Exception e) {
                  e.printStackTrace();
                  System.out.println("Koneksi Gagal");
             }
        }
}

Jika koneksi berhasil maka output yang dihasilkan adalah string koneksi berhasil, tetapi jika koneksi gagal maka outputnya adalah string koneksi gagal.

Contoh Program SERVLET

Dalam servlet terdapat dua class untuk melakukan response kepada user yaitu HttpResponse dan ServletResponse. ServletResponse merupakan class yang digunakan untuk mempresentasikan data kepada user. Method yang paling penting dalam class ServletResponse adalah getWriter() dengan method ini kita bisa memanggil object.java.io.PrintWriter yang bisa digunakan untuk menulis kode HTML atau text biasa.

Listing file index.html

< !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd>
<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     <title>Send Request</title>
     </meta>
</head>
<body>
     <form action="Response" method="post">
          Author : <input type="text"/>
          <input type="submit" value="Submit"/>
     </form>
</body>
</html>

Listing class ResponseServlet

package com.insideservlet.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class for Servlet: ResponseServlet
*
*/
public class ResponseServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
        static final long serialVersionUID = 1L;
        /* (non-Java-doc)
        * @see javax.servlet.http.HttpServlet#HttpServlet()
        */
        public ResponseServlet() {
             super();
        }
        /* (non-Java-doc)
        * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
        */
        public void service(ServletRequest request, ServletResponse response) throws IOException{
             PrintWriter out = response.getWriter();
             out.println("<html>");
             out.println("<head>");
             out.println("<title>Servlet Response</title>");
             out.println("</head>");
             out.println("<body>");
             out.println("Server name : " + request.getServerName());
             out.println("Server port : " + request.getServerPort());
             out.println("Content Type : " + request.getContentType());
             out.println("Content Length : " + request.getContentLength());
             out.println("Protocol : " + request.getProtocol());
             out.println("Address : " +  request.getRemoteAddr());
             out.println("</body>");
             out.println("</html>");
        }
}

Kemudian konfigurasi web.xml diganti menjadi seperti program dibawah ini:

< ?xml version="1.0" encoding="UTF-8"?>
<web -app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display -name>
InsideServlet</display>
<servlet>
<description>
</description>
<display -name>
ResponseServlet</display>
</servlet>
<servlet -name>ResponseServlet</servlet>
<servlet -class>
com.insideservlet.servlet.ResponseServlet</servlet>

<servlet -mapping>
</servlet><servlet -name>ResponseServlet</servlet>
<url -pattern>/Response</url>

<welcome -file-list>
</welcome><welcome -file>index.html</welcome>
<welcome -file-list>
</welcome></web>

Kemudian deploy program dan jalankan maka pada browser akan muncul output sebagai berikut :

Servlet ResponseServer name : localhost Server port : 8080 Content Type : application/x-www-from-urlencoded Content Length : 21 Protocol : HTTP/1.1 Address : 127.0.0.1

Contoh Program Gabungan OOP, JDBC, Servlet

Program dibawah merupakan program gabungan antara servlet, oop dan jdbc yang dapat digunakan sebagai poin awal dalam mengembangkan servlet-servlet lain yang berhubungan dengan database MySQL.

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class HelloWorldServlet extends HttpServlet {
        public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
             res.setContentType("text/html");
             ServletOutputStream out = res.getOutputStream();
             out.println("<html>");
             out.println("<head><title>Hello World</title></head>");
             out.println("<body>");
             try {
                  // The newInstance() call is a work around for some
                  // broken Java implementations
                  out.println("asdf");
                  Class.forName("org.gjt.mm.mysql.Driver").newInstance();
             }
             catch (Exception E) {
                  out.println("Unable to load driver.");
                  E.printStackTrace();
             }
             out.println("
<hr />");
             try {
                  Connection Conn = DriverManager.getConnection("jdbc:mysql://sql.useractive.com/USERNAME?user=USERNAME&password=PASSWORD");
                  // Do something with the Connection
                  Statement Stmt = Conn.createStatement();
                  ResultSet RS = Stmt.executeQuery("SELECT * from SOMETABLE");
                  while (RS.next()) {
                       out.println(RS.getString(1));
                  }
                  // Clean up after ourselves
                  RS.close();
                  Stmt.close();
                  Conn.close();
             }
             catch (SQLException E) {
                  out.println("SQLException: " + E.getMessage());
                  out.println("SQLState:     " + E.getSQLState());
                  out.println("VendorError:  " + E.getErrorCode());
             }
             out.println("
<h1>Hello World. Sun... 1.4</h1>
");
             out.println("</body></html>");
        }
        public String getServletInfo() {
             return "Create a page that says <i>Hello World</i> and send it back";
        }
}

STMIK Pelita Nusantara bekerjasama dengan SUN Microsystem mau ngadain seminar neh, temanya “Get Different With FOSS”. Seminar ini bertujuan memperkenalkan produk-produk Free and Open Source Software kepada masyarakat umum khususnya mahasiswa-mahasiswa atau orang-orang yang tertarik dengan bidang IT dan Open Source. Dengan adanya seminar ini, diharapkan dapat menghilangkan anggapan bahwa FOSS itu sulit dan tidak berkualitas. Dalam seminar ini akan diperkenalkan beberapa produk FOSS yaitu Java, MySQL, dan Open Solaris sehingga dapat menjelaskan kepada masyarakat umum bahwa FOSS bukan hanya GNU/Linux.

Seminar ini dibagi menjadi 4 sesi :

  1. Why FOSS?
    Oleh : Yudianto Sujana (STMIK Pelita Nusantara)
    Pada sesi ini akan dipaparkan gambaran umum tentang FOSS, keuntungan dan kerugiannya serta perangkat lunak yang termasuk dalam FOSS.
  2. Introduction to Open Solaris
    Oleh : Alex Budiyanto (SUN Microsystem)
    Pada sesi ini akan dipaparkan terntang sistem operasi Open Solaris termasuk keunggulannya dibandingkan sistem operasi lain baik yang berbayar ataupun FOSS.
  3. The Power of Java
    Oleh : Iesa Maliek (JUG-Joglosemar)
    Pada sesi ini akan dipaparkan tentang teknologi Java, kekuatan dan keunggulannya dibandingkan dengan teknologi lainnya.
  4. Simplicity in Data Manipulation with MySQL
    Oleh : Theresia Herlina (STMIK Pelita Nusantara)
    Pada sesi ini akan dipaparkan kesederhanaan pengolah data dalam MySQL tanpa mengesampingkan kekuatannya.

Jadwal Kegiatan

  • Tempat pelaksanaan : Pelita Convention Centre, STMIK Pelita Nusantara
  • Alamat : Jl. C Simanjuntak No.99 Yogyakarta
  • Tanggal, jam : 7 Februari 2009, 09.00 – selesai
  • Pendaftaran : 29 Januari 2009 – 3 Februari 2009

Fasilitas

  • Sertifikat
  • Makan Siang
  • Snack
  • Souvenir (khusus yang telah bergabung di OSUM)
  • Doorprize

Acara ini bersifat GRATIS dengan peserta terbatas

Untuk pendaftaran silahkan kirim email ke seminarfoss@pelitanusa.ac.id dengan menyebutkan nama, alamat, no telepon, email, institusi, atau bisa langsung datang ke STMIK Pelita Nusantara untuk mendapatkan tiket masuk.

Untuk informasi dapat menghubungi Esthi (085725033179) atau Yudi (08568598739)

Poster Seminar FOSS 2009

Poster Seminar FOSS 2009

So, buruan daftar ya..sebelum kehabisan tempat..Oke, ditunggu ya emailnya..

Oleh: lovesthi | Desember 22, 2008

Belajar MySQL 3

Belajar MySQL 3

Menampilkan Data Dengan Perintah Select
Perintah ini digunakan untuk menyeleksi atau memilih atau menampilkan data-data yang terdapat di dalam tabel.

1. Menampilkan Semua Kolom

mysql> SELECT nim, nm_mhs FROM mahasiswa;
+---------+----------------+
| nim     | nm_mhs         |
+---------+----------------+
| 0601001 | Adi Kurniawan  |
| 0601002 | Esthi Budiasih |
| 0601003 | Hans Kristian  |
| 0601003 |                |
+---------+----------------+
4 rows in set (0.00 sec)

Sebenarnya kita bisa menampilkan data mahasiswa tidak harus urut, kita bisa juga mengacaknya sesui kebutuhan. Lihatlah contoh di bawah ini:
Baca Lanjutannya…

Oleh: lovesthi | November 12, 2008

Belajar MySQL 2

Menguasai Perintah DML(Data Manipulation Language)

Data Manipulation Language adalah sub bahasa SQL yang berfungsi memanipulasi data yang ada di dalam database.
Perintah yang termasuk di dalam DML adalah INSERT, SELECT, UPDATE, DELETE.

Keempat perintah tersebut dapat digunakan setelah sistem database dan tabel terbentuk. Perintah-perintah tersebut hanya digunakan untuk mengelola data saja, sedangkan untuk membangun database dan strukturnya diperlukan perintah DDL.

Baca Lanjutannya…

Oleh: lovesthi | Oktober 31, 2008

Belajar MySQL 1

Belajar MySQL (Menguasai perintah DDL)

DDL singkatan dari Data Definition Language yang merupakan sub bahasa dari SQL dan berfungsi mendefinisikan database dan tabel. Perintah-perintah SQL yang digunakan antara lain : CREATE, ALTER, dan DROP. Apabila kita sudah bisa menggunakan ketiga perintah tersebut, berarti kita sudah bisa membangun struktur data dengan lengkap.

Baca Lanjutannya…

Oleh: lovesthi | Oktober 18, 2008

Linux..??Mau..??

  • Apa itu Linux??

Linux adalah Sistem Operasi seperti UNIX, yang merupakan implementasi independen dari POSIX, meliputi true-multitasking, virtual memory, shared libraries, demand-loading, proper memory management, dan multiuser.

Sekarang Linux adalah sistem UNIX yang lengkap, bisa digunakan untuk jaringan (networking), pengembangan software, dan bahkan untuk sehari-hari. Linux sekarang merupakan alternatif OS yang jauh lebih murah jika dibandingkan dengan OS komersial, dengan kemampuan Linux yang setara bahkan lebih.

Linux seperti layaknya UNIX, mendukung banyak software mulai dari TEX, X Window, GNU C/C++ sampai ke TCP/IP.

Linux adalah sistem operasi yang disebarkan secara luas dengan gratis di bawah lisensi GNU General Public License (GPL), yang berarti juga source code Linux tersedia. Itulah yang membuat Linux bisa dibilang sangat spesial.

Linux masih dikembangkan oleh kelompok-kelompok tanpa dibayar, yang banyak dijumpai di Internet, tukar-menukar kode, melaporkan bug, dan membenahi segala masalah yang ada. Setiap orang yang tertarik dipersilahkan untuk bergabung dalam pengembangan Linux.

Linux pertama kali dibuat oleh Linus Torvalds di Universitas Helsinki, Finlandia. Kemudian Linux dikembangkan lagi dengan bantuan dari banyak programmer dan jagoan UNIX di Internet. Sekarang Linux bisa diperoleh dari distribusi-distribusi yang umum digunakan, misalnya RedHat, Debian, Slackware, Caldera, Stampede Linux, TurboLinux dan lain-lain. Kernel yang digunakan adalah sama-sama Linux, sedangkan perbedaannya hanyalah paket-paket aplikasi yang disertakan, sistem penyusunan direktori, init style, dll.

Mana yang lebih baik? Semua sama baiknya, tergantung selera. Jika diperdebatkan kelebihan dan kekurangan masing-masing, tidak akan pernah ada habisnya.

Baca Lanjutannya…

Kategori

Ikuti

Get every new post delivered to your Inbox.