Tempatnya Jiwa muda yg Kreativ (Kreak tapi Aktiv)

Selasa, 24 Januari 2012


cthIcon.java
import javax.swing.*;
import java.awt.*;
public class cthIcon {
     public static void main(String [] args) {
     JFrame myFrame = new JFrame ("Contoh program AWT");
     Icon ikon = new ImageIcon ("JAVA.GIF");
     JLabel myLabel = new JLabel("Selamat belajar JAVA", ikon, SwingConstants.CENTER);
     JButton myButton = new JButton("SELESAI", ikon);
     myButton.setToolTipText("ini adalah Button");
     myLabel.setToolTipText("ini adalah Label");
     myFrame.setLayout(new BorderLayout());
     myFrame.add(myLabel, "South");
     myFrame.add(myButton, "North");
     myFrame.setSize(500,500);
     myFrame.setVisible(true);
     myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }
}
Out Put:

ContohJFileChooser.java
import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.File;
public class ContohJFileChooser extends JFrame {
     public static void main(String [] args) {
           ContohJFileChooser apl = new ContohJFileChooser();
     }
     public ContohJFileChooser() {
           setSize(400,150);
           JFileChooser jfc = new JFileChooser();
           FileFilter filterDotJava = new Akhiran(".java", "Berkas*.java");
           jfc.setFileFilter(filterDotJava);
           int hasil = jfc.showOpenDialog(this);
           if (hasil == JFileChooser.APPROVE_OPTION)
                setTitle("Tes JFileChooser. File: " +
                     jfc.getSelectedFile().getName());
           else
                setTitle("Tes JFileChooser. Batal memilih");
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           setVisible(true);
     }
}
class Akhiran extends FileFilter {
     private String ekstensi;
     private String keterangan;
     public Akhiran(String suffix, String deskripsi) {
           this.ekstensi = suffix;
           this.keterangan = deskripsi;
     }
     public boolean accept(File f) {
           if (f.isDirectory())
                return true;
           return f.getName().endsWith(ekstensi);
     }
     public String getDescription() {
           return keterangan;
     }
}
Out Put:
ContohJList.java     
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
class cthList extends JFrame {
     JList daftar;
     JTextArea tArea1, tArea2;
     JPanel Panel1, Panel2, Panel3, Panel4;
     JSpinner Spin;
     String daftarBunga[] = { "Melati", "Mawar", "Krisan", "Kenanga", "Cempaka", "Tulip", "Kamboja Jepang" };
     public cthList() {
           super("Tes JList");
           setSize(350,300);
           Spin = new JSpinner();
           Spin.setValue(new Integer(10));
           Panel1 = new JPanel();
           Panel2 = new JPanel();
           Panel3 = new JPanel();
           Panel4 = new JPanel();
           daftar = new JList(daftarBunga);
           daftar.setSelectedIndex(0);
           tArea1 = new JTextArea("",3,15);
           tArea1.setEditable(false);
           tArea2 = new JTextArea("",3,15);
           tArea2.setEditable(false);
           setLayout(new BorderLayout());
           add(Panel1, "North");
           add(Panel2, "West");
           add(Panel3, "East");
           add(Panel4, "South");
           Panel1.add(daftar);
           Panel2.add(tArea1);
           Panel3.add(tArea2);
           Panel4.add(Spin);
           setDefaultCloseOperation(3);
           setVisible(true);
           daftar.addListSelectionListener(new ListSelectionListener() {
                     public void valueChanged(ListSelectionEvent e) {
                           tArea1.setText("Yang terpilih: \n" +daftar.getSelectedValue());
                     }
           }
           );
           Spin.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                     tArea2.setText("Nilai : \n" +Spin.getValue());
                }
           }
           );
     }
}
public class ContohJList {
     public static void main(String[] args) {
           cthList apl = new cthList();
     }
}
Out Put:
ContohJProgressBar.java
import javax.swing.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class CthJProgressBar extends JFrame implements ActionListener {
     public final static int SELANG_WAKTU_TUNGGU = 1;
     public final static int MAKS = 1000;
     JProgressBar    pb;
     JButton         b;
     Timer           timer;
     int                  posisi = 0;
     public CthJProgressBar() {
           super("Tes JProgressBar");
           setSize(300,120);
           pb = new JProgressBar(0, MAKS);
           b  = new JButton("Mulai");
           JPanel p = new JPanel();
           p.add(b);
           setLayout(new BorderLayout());
           add("North",p);
           add("South",pb);
           // -- Set Timer
           timer = new Timer(SELANG_WAKTU_TUNGGU, new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                     posisi++;
                     pb.setValue(posisi);
                     if (posisi == MAKS) {
                           timer.stop();
                           b.setText("Mulai");
                     }
                }
           });
           b.addActionListener(this);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           setVisible(true);
     }
     public void actionPerformed(ActionEvent e) {
           String s = e.getActionCommand();
           if (s.equals("Mulai")) {
                b.setText("Stop");
                posisi = 0;
                pb.setValue(posisi);
                timer.start();
           }
           else {
                b.setText("Mulai");
                timer.stop();
           }
     }
}
public class ContohJProgressBar {
     public static void main(String [] args) {
           CthJProgressBar apl = new CthJProgressBar();
     }
}
Out Put:
ContohJTabbedPane.java
import javax.swing.*;
class CthJTabbedPane extends JFrame {
     JLabel lTab1, lTab2, lTab3, lTab4;
     JTabbedPane tab;
     public CthJTabbedPane() {
           super("Tes JTabbedPane");
           setSize(300,120);
           tab = new JTabbedPane();
           JPanel panel1 = new JPanel();
           tab.addTab("Satu", panel1);
           tab.setSelectedIndex(0);
           lTab1 = new JLabel("Tab Satu");
           panel1.add(lTab1);
           JPanel panel2 = new JPanel();
           tab.addTab("Dua", panel2);
           lTab2 = new JLabel("Tab Dua");
           panel2.add(lTab2);
           JPanel panel3 = new JPanel();
           tab.addTab("Tiga", panel3);
           lTab3 = new JLabel("Tab Tiga");
           panel3.add(lTab3);
           JPanel panel4 = new JPanel();
           tab.addTab("Empat", panel4);
           lTab4 = new JLabel("Tab Empat");
           panel4.add(lTab4);
           add(tab);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           setVisible(true);
     }
}
public class ContohJTabbedPane {
     public static void main(String [] args) {
           CthJTabbedPane apl = new CthJTabbedPane ();
     }
}
Out Put:
ContohJTable.java
import javax.swing.*;
import java.awt.*;
public class ContohJTable extends JFrame {
     public static void main(String [] args) {
           ContohJTable apl = new ContohJTable();
     }
     public ContohJTable() {
           super("Tes JTable");
           setSize(500,150);
           Object[][] data = {
                {"11234", "Asti Damayanti", "Akunting", new Long(2200000) },
                {"11235", "Eritria", "Pemasaran", new Long(1200000) },
                {"11236", "Satria", "Personalia", new Long(1200000) },
                {"11237", "Tri Setyowati", "EDP", new Long(1500000) },
                {"11238", "FahmiBasya", "Akunting", new Long(1250000) },
                {"11239", "Suadi Marwan", "Akunting", new Long(1000000) },
                {"11240", "Rani Ardini", "Pemasaran", new Long(1100000) },
                {"11241", "Listya", "Pemasaran", new Long(1100000) },
           };
           String[] judulKolom = {"NIP","Nama","Bagian","Gaji"};
           JTable tabel = new JTable(data, judulKolom);
           JScrollPane scrollPane = new JScrollPane(tabel);
           add(scrollPane);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           setVisible(true);
     }
}
Out Put:
ContohJTree.java
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
public class ContohJTree extends JFrame {
     public static void main(String[] args) {
           ContohJTree apl = new ContohJTree();
     }
     public ContohJTree() {
           super("Tes JTable");
           setSize(400,400);
           // --- Buat akar - Level 0
           DefaultMutableTreeNode akar = new DefaultMutableTreeNode("Benua");
           // --- Level 1
           DefaultMutableTreeNode afrika = new DefaultMutableTreeNode("Afrika");
           DefaultMutableTreeNode asia = new DefaultMutableTreeNode("Asia");
           DefaultMutableTreeNode amerika = new DefaultMutableTreeNode("Amerika");
           DefaultMutableTreeNode eropa = new DefaultMutableTreeNode("Eropa");
           // --- Level 2
           DefaultMutableTreeNode mesir = new DefaultMutableTreeNode("Mesir");
           DefaultMutableTreeNode libya = new DefaultMutableTreeNode("Libya");
           DefaultMutableTreeNode indonesia = new DefaultMutableTreeNode("Indonesia");
           DefaultMutableTreeNode jepang = new DefaultMutableTreeNode("Jepang");
           DefaultMutableTreeNode malaysia = new DefaultMutableTreeNode("Malaysia");
           DefaultMutableTreeNode kanada = new DefaultMutableTreeNode("Kanada");
           DefaultMutableTreeNode peru = new DefaultMutableTreeNode("Peru");
           DefaultMutableTreeNode bolivia = new DefaultMutableTreeNode("Bolivia");
           DefaultMutableTreeNode brazilia = new DefaultMutableTreeNode("Brazilia");
           DefaultMutableTreeNode austria = new DefaultMutableTreeNode("Austria");
           DefaultMutableTreeNode jerman = new DefaultMutableTreeNode("Jerman");
           // --- Membuat JTree
           JTree struktur = new JTree(akar);
           add(struktur);
           akar.add(afrika);
           akar.add(asia);
           akar.add(amerika);
           akar.add(eropa);
           afrika.add(mesir);
           afrika.add(libya);
           asia.add(indonesia);
           asia.add(jepang);
           asia.add(malaysia);
           amerika.add(kanada);
           amerika.add(peru);
           amerika.add(bolivia);
           amerika.add(brazilia);
           eropa.add(austria);
           eropa.add(jerman);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           // --- Tampilkan frame
           setVisible(true);
     }
}
Out Put:

Rabu, 11 Januari 2012

 JAVA 11

JMenu

MainMenu.Java


import java.awt.event.*; //mengimport  java.awt.event
import javax.swing.*; //mengimport javax.swing
import java.awt.*; // mengimport java.awt

class CobaMenu extends JFrame { //membuat class cobaMenu turunan dari JFrame
  JMenuBar menuBar; //mendeklarasikan JMenuBar dengan nama menubar
  JMenu file, doc, edit, help; //mendeklarasikan Jmenu dengan nama file, doc, edit, dan help
  JMenuItem open, save, exit, delete, copy, paste, about; //mendeklarasikan JMenuItem dengan nama open, save, exit

  public CobaMenu() { //method CobaMenu
  setTitle("Menu"); //memberi nama judul pada menu
  setSize(200,200); //mengatur ukuran frame
  file = new JMenu("File"); //membuat objek file (item File) pada JMenu
  file.setMnemonic('F'); //membuat garis bawah pada huruf F di  judul Menu File
  doc=new JMenu("Document"); //membuat objek doc (item Documen) pada JMenu
  doc.setMnemonic('D'); //membuat garis bawah pada huruf D di judul Menu Document
  edit = new JMenu("Edit"); //membuat objek edit(item Edit) pada JMenu
  edit.setMnemonic('E'); //membuat garis bawah pada huruf E di judul Menu Edit
  help = new JMenu("Help"); //membuat objek help (item Help) pada JMenu
  help.setMnemonic('H'); //membuat garis bawah pada huruf H di judul Menu Help
  open = new JMenuItem("Open"); //membuat objek open(item Open) pada JMenuItem
  open.setMnemonic('O'); //membuat garis bawah pada huruf O di Judul Menu Open
  save = new JMenuItem("Save"); //membuat objek save(item Save) pada JMenuItem
  save.setMnemonic('S'); //membuat garis bawah pada huruf S  di Judul Menu Save
  exit = new JMenuItem("Exit"); //membuat objek exit(item Exit) pada JMenuItem
  exit.setMnemonic('X'); //membuat garis bawah pada huruf X di judul Menu Exit
  delete = new JMenuItem("Delete"); //membuat objek delete(item Delete) pada JMenuItem
  delete.setMnemonic('D'); //membuat garis bawah pada huruf D di judul Menu Delete
  copy = new JMenuItem("Copy"); //membuat objek copy(item Copy) pada JMenuItem
  copy.setMnemonic('C'); //membuat garis bawah pada huruf C di judul Menu Copy
  paste = new JMenuItem("Paste"); //membuat objek paste(item Paste) pada JMenuItem
  paste.setMnemonic('P'); //membuat garis bawah pada huruf P di judul Menu Paste
  about = new JMenuItem("About"); //membuat objek about(item About) pada JMenuItem
  about.setMnemonic('A'); //membuat garis bawah pada huruf A di judul Menu About

menuBar = new JMenuBar(); //membuat objek menuBar
setJMenuBar(menuBar); //menuBar
menuBar.add(file); // memasukkan item file pada menuBar
file.add("open"); // memasukkan Item open pada menu file
file.add("save"); // memasukkan Item save pada menu file
file.addSeparator(); // Tanda pemisah antara item
file.add(exit); // memasukkan Item open pada menu file
menuBar.add(doc); // memasukkan item doc pada menuBar
doc.add(edit);// memasukkan Item edit  pada menu doc
edit.add(copy); // memasukkan Item copy pada item edit di menu file
edit.add(paste);// memasukkan Item copy pada item edit di menu file
edit.add(delete); // memasukkan Item copy pada item edit di menu file
menuBar.add(help); //memasukkan item help pada menuBar
help.add(about); //memasukkan item about pada menu help

exit.addActionListener(new ActionListener() { //memberikan Aksi pada menu exit
  public void actionPerformed (ActionEvent e) { //fungsi pada event
    System.exit(0);
    }
    });

    setDefaultCloseOperation(EXIT_ON_CLOSE); // keluar dari program atau aplikasi
    setVisible(true);
    }
    }

    public class MainMenu { //membuat class MainMenu (class utama)
     public static void main(String []neno) { //Fungsi utama
     CobaMenu m = new CobaMenu(); // membuat objek dengan nama m pada method CobaMenu
     }
     }
OUT PUT:












* FDialog.Java

import javax.swing.*; //mengimport javax.swing
import java.awt.*; //mengimport java.awt
import java.awt.event.*; //mengimport java.awt.event


class FDialog extends JDialog implements ActionListener { //membuat class FDialog turunan dari JDialog
JButton btnTutup = new JButton ("Tutup"); // membuat objek baru dengan nama btnTutup pada JButton


public FDialog() { //method FDialog
setTitle("DIALOG"); //memberi nama pada judul JDialog
setSize(200,100); //mengatur ukuran kotak menampilkan dialog
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); //keluar dari kotak dialog
setLayout(null); //mengatur tampilan layout
add(btnTutup); //memasukkan btnTutup
btnTutup.addActionListener(this); //memberikan aksi pada btnTutup
btnTutup.setBounds(40,20,100,20); //mengaturm posisi btnTutup pada dialog
setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource()==btnTutup){
dispose();
}
}
}

* FFrame.Java

import javax.swing.*; //mengimport javax.swing
import java.awt.*; //mengimport java.awt
import java.awt.event.*; //mengimport java.awt.event

class FFrame extends JFrame implements ActionListener{ //membuat class FFrame turunan dari JFrame implements dari ActionListener.
JButton btnTutup = new JButton("TUTUP"); // membuat objek btnTutup pada method JButton
public FFrame(){ // method FFreme
super ("FRAME");
setSize(200,100); // mengatur ukuran frame
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //keluar dari aplikasi atau program
setLayout(null); //mengatur tampilan
add(btnTutup); //memasukkan btnTutup
btnTutup.addActionListener(this); //memberi aksi pada btnTutup
btnTutup.setBounds(40,20,100,20); //mengatur posisi btnTutup pada frame
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btnTutup){
dispose();
}
}
}

* MainMenu.Java
import java.awt.event.*; //mengimport java.awt.event
import javax.swing.*; //mengimport javax.swing
import java.awt.*; //mengimport java.awt

class Menu extends JFrame{ //membuat class Menu turunan dari JFrame
JMenuBar menuBar; //mendeklarasikan JMenuBar dengan nama menuBar
JMenu file, buatBaru; //mendeklarasikan JMenu dengan nama file ,buatBaru
JMenuItem exit, frame, dialog, pesan; //mendeklarasikan JMenuItem dengan nama exit, frame, dialog, pesan.
public Menu() { //method Menu
setTitle ("Menu"); //membuat nama pada judul frame
setSize(200,200); //mengatur ukuran frame
file = new JMenu("File"); // membuat objek baru
file.setMnemonic('F'); //membuat garis bawah pada huruf F di menu File
buatBaru = new JMenu("BuatBaru"); // membuat objek baru
buatBaru.setMnemonic('B'); //membuat garis bawah pada huruf B di menu BuatBaru
exit = new JMenuItem("Exit");
exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));
frame = new JMenuItem("Frame");
frame.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,ActionEvent.CTRL_MASK));
dialog = new JMenuItem("Dialog");
dialog.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));
pesan = new JMenuItem("Pesan");
pesan.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,ActionEvent.CTRL_MASK));
menuBar = new JMenuBar();
setJMenuBar (menuBar); //menset JMenuBar
menuBar.add(file); //memasukkan file pada menuBar
 file.add(exit); //memasukkan item exit pada menu file
menuBar.add(buatBaru); //memasukkan menubar
 buatBaru.add(frame); //memasukkan frame pada bautBaru
 buatBaru.add(dialog); //memasukkan dialog pada bautBaru
 buatBaru.add(pesan); //memasukkan pesan pada bautBaru

exit.addActionListener(new ActionListener() { //memberi aksi pada item exit
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
);
frame.addActionListener(new ActionListener() { //memberi aksi pada frame
public void actionPerformed(ActionEvent e) {
new FFrame ();
}
}
);
dialog.addActionListener(new ActionListener() { //memberi aksi pada dialog
public void actionPerformed(ActionEvent e) {
new FDialog ();
}
}
);
pesan.addActionListener(new ActionListener() { //memberikan aksi pada pesan
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, //menampilkan pesan
"Tutup?", "Pesan", JOptionPane.QUESTION_MESSAGE); //menampilkan pesan dengan kata Tutup ?
}
}
);
setDefaultCloseOperation(EXIT_ON_CLOSE); //keluar dari program atau aplikasi
setVisible(true);
}
}
public class MainMenu{ // membuat class MainMenu(class Utama)
public static void main(String [] neno) { //Fungsi Utama
new Menu(); //membuat objek baru
}
}



OUT PUT:

Praktek JAVA Pertemuan 10

import java.awt.*; // untuk memanggil fungsi java awt
import java.awt.event.*;  // untuk memanggil fungsi java awt.event
import javax.swing.*;  // untuk memanggil fungsi java swing

class CheckBoxHandling extends JFrame implements ItemListener {
private JTextField teks; //Berfungsi untuk membuat TextField
private JPanel panel; // untuk membuat Panel
private JCheckBox rbTn1,rbTn2,rbTn3; // untuk membuat CheckBox

public CheckBoxHandling(){ //berfungsi untuk membuat event handler
setTitle("Coba CheckBox Handling");  //berfungsi untuk membuat judul program
teks=new JTextField("Jenis Kelamin : Pilihan");  //untuk membuat Judul TextField
teks.setHorizontalAlignment(SwingConstants.CENTER);  //untuk memenpatkan posisi text "center"
panel=new JPanel(new FlowLayout());  //Panel yang berfungsi untuk membuat FlowLayout
rbTn1=new JCheckBox("Pria");   //Untuk membuat nama CheckBox"Pria"
rbTn2=new JCheckBox("Wanita");  //Untuk membuat nama CheckBox "Wanita"
rbTn3=new JCheckBox("Banci");   //Untuk membuat nama CheckBox "Banci"

ButtonGroup group=new ButtonGroup();
group.add(rbTn1);
group.add(rbTn2);
group.add(rbTn3);
rbTn1.addItemListener(this);
rbTn2.addItemListener(this);
rbTn3.addItemListener(this);

setLayout (new BorderLayout());  // berfungsi untuk membuat border layout
add(teks,"North");
add(panel,"West");
panel.add(rbTn1);
panel.add(rbTn2);
panel.add(rbTn3);

pack();
setVisible(true);
setLocation(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

// untuk membuat List Pilihan jenis Kelamin dengan menggunakan Statement if
public void itemStateChanged(ItemEvent event){
if(event.getSource()==rbTn1){
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis Kelamin : Pria");
}
if(event.getSource()==rbTn2){
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis Kelamin : Wanita");
}
if(event.getSource()==rbTn3){
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis Kelamin : Banci");
}
}
}
public class Eventcheck{ //untuk membuat nama class Eventcheck
public static void main(String[]args){ //untuk memanggil fungsi utama
new CheckBoxHandling(); // berfungsi untuk membuat objek dengan nama CheckBoxHandling
}
}

Maka Outputnya adalah sebagai berikut :
Output Program

Selasa, 01 November 2011

LAPORAN V 
ABSTRACT, INTERFACE, INNER CLASS
BAB IV
1. Abstact Class
Abstract class adalah suatu class yang dinyatakan abstract, umumnya memiliki satu atau abstract method, abstract method adalah suatu method yang belum memiliki implementasi dan menggunakan modifier abstract. Abstract class biasanya dijadikan parent atau super class dari kelas – kelas yang dapat membuat objek, abstract class tidak dapat diinstanisasi.
            Analogi Inheritance dan Abstract Class :
Inheritence dapat dianalogikan seperti penggolongan kelas, ordo, phylum dalam biologi. Makhluk hidup dapat diturunkan atau diextend atau diperluas (di-inherit) menjadi burung, reptile, ikan dan lain – lain, jenjang penurunan tersebut disebut inheritance.
Kita mengetahui bahwa suatu kelas dapat diinstanisasi menjadi suatu objek, misal kelas manusia dapat diinstanisasi menjadi Joko, Susi, Ari, dan lain – lain, namun kita tidak mungkin dapat menginstanisasi kelas makhluk hidup, maupun kelas hewan, sebab kelas tersebut terlalu umum (abstract), kelas seperti inilah yang desebut sebagai abstract class, apabila class makhluk hidup mempunyai method bernafas, maka kita tidak dapat menentukan (meng-implementasikan) cara makhluk hidup tersebut bernafas, dengan paru – paru, insang atau stomata, dengan demikian kita dapat menyatakan bahwa di dalam kelas makhluk hidup, bernafas merupakan method yang abstract.
  1. Interface
Interface adalah suatu class yang berisi method – method tanpa imlementasi, namun tanpa modifier abstract, apabila suatu interface memiliki atribut, maka atributnya akan berlaku sebagai konstanta (static final).
*         Analogi Interface
Interface dapat dianaligikan sebagai kontrak yang dapat dipakai oleh setiap kelas. Dalam kehidupan nyata kita mengetahui bahwa ada yang bekerja sebagai penyayi, pengacara, pelawak, dsb, tentunya manusia –manusia tersebut selain harus memiliki method standar seorang manusia, juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat seorang objek Joko penyayi kita harus membuat kelas yang merupakan turunan kelas manusia yang mengimplementasikan interface penyayi.
  1. Inner Class
Inner Class adalah kelas yang disisipkan  di dalam kelas yang lain. Fungsi kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh kelas utamanya. Inner Class bersifat tersarang terhadap kelas – kelas utamanya, seperti halnya blok penyeleksian  (if, for) yang tersarang pada blok penyeleksian lainnya atau method yang tersarang pada method lainnya.
*         Analogi Inner Class
Inner Class dapat dianalogikan sebagi hubungan antara manusia dan paru – paru. Setipa manusia pasti bernafas dengan menggunakan paru – paru. Dalam hal ini berarti kinerja dari paru – paru turut mendukung/menetukan kinerja dari manusia. Dalam bahasa pemrograman berorientasi objek manusia dapat dikatakan sebagai outer class dan paru – paru sebagai inner  class-nya.
 Contoh Dalam Program Java.
Code Programnya: 


MakhlukHidup.Java   

abstract class MakhlukHidup {   //membuat kelas abstrak dengan nama MakhlukHidup
    protected boolean BisaTerbang = false; // mendeklarasikan atribut
    protected String Nama;  // mendeklarasikan atribut
    protected int JlhKaki;  // mendeklarasikan atribut
    public MakhlukHidup(String Nama1, int JlhKaki1, boolean BisaTerbang1) {   // mendeklarasikan        method dengan parameter Nama1, JlhKaji1, BiasTerbang1
        this.Nama = Nama1; // menyatakan bahwa nilai Nama = Nama1
        this.JlhKaki = JlhKaki1; //  menyatakan bahwa nilai JlhKaki = JlhKaki1
        this.BisaTerbang = BisaTerbang1; // menyatakan bahwa nilai BisaTerbang = BisaTerbang1
    }
   abstract void bernafas(); // mendeklarasikan method abstract dengan nama bernafas

    public void status() { // deklarasi method status
        System.out.println("Nama : "+Nama);  //mencetak nilai dari atribut Nama
        System.out.println("Jumlah kaki : "+JlhKaki);   //mencetak nilai dari atribut JlhKaki
        System.out.println("Bisa terbang : "+BisaTerbang);  //  mencetak nilai dari atribut BisaTerbang
    }
}
// Program diatas tidak dapat dirunkan karena tidak memiliki fungsi utama dan hanya dapat dicomfile 



Manusia.Java

public class Manusia extends MakhlukHidup {  // membuat class Manusia turunan dari class MakhlukHidup
    Manusia(String Nama){  //Construktor dari class Manusia
        super(Nama,2,false);  //method super  berisi nilai dari Nama,JlhKaki,BisaTerbang.
    }
    public void bernafas() { //deklarasi method bernafas
        System.out.println( Nama+ " bernafas dengan menghiruo O2");   //mencetak nilai dari Nama            ditambah kata ” bernafas dengan menghiruo O2”
    }
    public static void main(String[] args) { // fungsi utama
        Manusia m = new Manusia("Sayuti"); // membuat objek pada class Manusia dengan nama m dan mengirimkan nilai ”Sayuti “ pada parameter Nama di method Manusia
        m.status(); // memanggil dan mencetak isi dari method status pada class MakhlukHidup dan dengan parameter yang telah dikirimkan
        m.bernafas(); //mencetak isi dari method bernafas
    }
}
 Out Put :

Tumbuhan.Java

public class Tumbuhan extends MakhlukHidup { //deklarasikan class Tumbuhan turunan dari kelas MakhlukHidup
   Tumbuhan(String Nama){ //(Contruktor)deklarasi method Tumbuhan dengan parameter Nama
        super(Nama,0,false); // method super ,mengirimkan nilai dari Nama,JlhKaki,BisaTerbang pada kelas MaklukHidup.
    }
    public void bernafas() { // mendeklarasikan method abstract dengan nama bernafas
        System.out.println( Nama+ " bernafas dengan menghiruo CO2"); //mencetak nilai dari Nama            ditambah kata ” bernafas dengan menghiruo CO2”
    }
    public static void main(String[] args) { // fungsi utama
        Tumbuhan m = new Tumbuhan("Bayam"); // membuat objek pada class Tumbuhan dengan nama m dan mengirimkan nilai ”Bayam “ pada parameter Nama di method Tumbuhan
        m.status(); //mencetak isi dari method status pada class MakhlukHidup berdasarkan parameter yang telah dikirimkan
        m.bernafas();//mencetak isi dari method bernafas
    }
}
Out Put :

Pekerjaan.Java

interface Pekerjaan { // mendeklarasikan interface Pekerjaan
public void namaPekerjaan(); // mendeklarasikan method namaPekerjaan
public void gaji();// mendeklarasikan method gaji.
}
// Program diatas adalah Interface jadi tidak dapat dirunkan
.

Sasya.Java


public class  Sasya extends Manusia implements Pekerjaan { //mendeklarasikan class Sasya turunan dari class Manusia dan mengimplementasikan pada interface Pekerjaan.
public Sasya() { //Construktor Sasya
                super("Sasya");// method super dengan parameter Sasya
                }
public void namaPekerjaan() { // memanggil method namaPekerjaan pada interface Pekerjaan
                System.out.println("Pekerjaan :Sekretaris");  // menjetak ("Pekerjaan :Sekretaris")
}
public void gaji() { // memanggil method gaji pada interface Pekerjaan
                System.out.println("Gaji : Rp. 3.000.000"); // mencetak  ("Gaji : Rp. 3.000.000")
}
public static void main(String[] args) { // Fungsi Utama
Sasya s=new Sasya(); //membuat objek dengan nama s pada class Sasya
s.status () ; //memanggil dan mencetak isi dari method status pada class MakhlukHidup  berdasarkan parameter yang telah dikirimkan
s.bernafas();  //memanggil dan mencetak isi dari method bernafas pada class MakhlukHidup  dengan parameter yang telah dikirimkan
s.namaPekerjaan() ; // mencetak isi dari method namaPekerjaan
s.gaji(); // mencetak isi dari method namaPekerjaan
}
}
Out Put :

JantungManusia.Java


class Orang { // membuat class dengan nama Orang pada class JantungManusia
private int jumlKaki =2; // atribut jumlKaki dengan nilai 2
public void dengarBunyiJantung() { // mendeklarasikan method dengarBunyiJantung
                Jantung j=new Jantung(); //membuat objek baru dengan nama j pada method jantung
                j.bunyiJantung();  // objek j dari method bunyijantung
                }
public void tahanNafas() {  //mendeklarasikan method tahanNafas
System.out.println("Jantung berhenti berdetak!");  //mencetak ("Jantung berhenti berdetak!")
}
//inner class
                class Jantung { // membuta kelas baru dengan nama Jantung pada class JantungManusia
                public void bunyiJantung() { //memanggil method bunyiJantung
                System.out.println("deg...deg...deg.."); // mencetak  ("deg...deg...deg..")
}
                public void istirahat() {  // method istirahat
                System.out.println("Silahkan ke "+jumlKaki+" kaki."); // mencetak ("Silahkan ke "+jumlKaki+" kaki.")
                tahanNafas(); // memanggil method tahanNafas
}
}
}
class JantungManusia { // merupakan class utama dengan nama JantungManusia
                public static void main(String[] args){ //Fungsi Utama
                Orang o = new Orang(); // membuta objek baru dengan nama o pada method Orang
                Orang.Jantung p = o.new Jantung();// membuta objek baru dengan nama p pada method jantung pada class Orang.
                o.dengarBunyiJantung(); // mencetak nilai dari method dengar BunyiJantung pada class Orang
                p.istirahat(); // mencetak nilai dari method istirahat pada class Jantung
                }
                }
Out Put :