Thursday, November 28, 2013

Menara Hanoi

Berikut adalah algoritma membuat menara hanoi tidak menggunkan fungsi rekursif:

class Stack:

package hanoi;

public class Stack {

    private String name;
    private int[] data;
    private int size;
    private int top;

    public Stack() {
    }

    public Stack(String name, int[] data, int size, int top) {
        this.name = name;
        this.data = data;
        this.size = size;
        this.top = top;
    }

    public int[] getData() {
        return data;
    }

    public void setData(int[] data) {
        this.data = data;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public int getTop() {
        return top;
    }

    public void setTop(int top) {
        this.top = top;
    }

    public void push(int item) {
        if (top == size) {
           
        } else {
            data[top] = item;
            System.out.println("Push " + item + " to " + name);
            top++;
        }
    }

    public void pop() {
        if (top == 0) {
           
        } else {
            System.out.println("Pop " + data[top - 1] + " from " + name);
            top--;
        }
    }

    public int getTopStack() {
        int topStack = 0;
        if (top != 0) {
            topStack = data[top - 1];
        }
        return topStack;
    }
}

class Main

package hanoi;

public class Main {

    static void printData(Stack s) {
        System.out.print(s.getName() + ": ");
        for (int x = 0; x < s.getTop(); x++) {
            System.out.print(s.getData()[x] + " ");
        }
        System.out.println("");
    }

    static void move(Stack from, Stack to) {
        int willMove = from.getTopStack();
        from.pop();
        to.push(willMove);
    }

    static void leftToRight(Stack from, Stack to, Stack temp) {
        System.out.println("");
        while (from.getTop() != 0) {
            if (from.getTopStack() > temp.getTopStack() && temp.getTop() == 1) {
                break;
            } else {
                if (to.getTop() == 0 || to.getTopStack() > from.getTopStack()) {
                    move(from, to);
                } else {
                    move(from, temp);
                    rightToLeft(from, to, temp);
                }
            }
        }
        if (temp.getTop() > 0) {
            move(temp, from);
        }
    }

    static void rightToLeft(Stack from, Stack to, Stack temp) {
        System.out.println("");
        while (to.getTop() != 0) {
            if (to.getTopStack() > temp.getTopStack() && temp.getTop() == 1) {
                break;
            } else {
                if (from.getTop() == 0 || from.getTopStack() > to.getTopStack()) {
                    move(to, from);
                } else {
                    move(to, temp);
                    leftToRight(from, to, temp);
                }
            }
        }
        if (temp.getTop() > 0) {
            move(temp, to);
        }
    }

    static void hanoi(Stack from, Stack to, Stack temp) {
        while (to.getTop() != to.getSize()) {
            leftToRight(from, to, temp);
            if (from.getSize() == 0 && temp.getSize() == 0) {
                break;
            }
            System.out.println("==============================");
            printData(from);
            printData(temp);
            printData(to);
            System.out.println("==============================");
        }
    }

    public static void main(String[] args) {
        int size = 4;
        Stack s1 = new Stack("Tower 1", new int[size], size, 0);
        Stack s2 = new Stack("Tower 2", new int[size], size, 0);
        Stack s3 = new Stack("Tower 3", new int[size], size, 0);
        s1.push(4);
        s1.push(3);
        s1.push(2);
        s1.push(1);
        hanoi(s1, s3, s2);
    }
}

Monday, November 18, 2013

Merge Sort In C

#include <stdio.h>

int n = 7;
int bil[] = {5, 3, 8, 4, 7, 2, 1};

void swap(int first, int second) {
    int tampung = bil[second];
    int i;
    for (i = second - 1; i >= first; i--) {
        bil[i + 1] = bil[i];
    }
    bil[first] = tampung;
}

void mergeSort(int startBawah, int endAtas) {
    if (startBawah >= endAtas) {
        return;
    }
    int middle = (startBawah + endAtas) / 2;
    int endBawah = middle;
    int startAtas = middle + 1;
    mergeSort(startBawah, endBawah);
    mergeSort(startAtas, endAtas);
    while ((startBawah <= endBawah) && (startAtas <= endAtas)) {
        if (bil[startBawah] > bil[startAtas]) {
            swap(startBawah, startAtas);
            startBawah++;
            startAtas++;
            endBawah++;
        } else {
            startBawah++;
        }
    }
}

int main() {
    mergeSort(0, n - 1);
    int x;
    for (x = 0; x < n; x++) {
        printf("%d ", bil[x]);
    }
    return 0;
}


Quick Sort In C

#include <stdio.h>

int n = 7;
int bil[] = {5, 3, 8, 4, 7, 2, 1};

void swap(int first, int second) {
    int tampung = bil[first];
    bil[first] = bil[second];
    bil[second] = tampung;
}

void quickSort(int low, int high) {
    int x = low, y = high;
    int pivot = bil[low + (high - low) / 2];
    while (x <= y) {
        while (bil[x] < pivot) {
            x++;
        }
        while (bil[y] > pivot) {
            y--;
        }
        if (x <= y) {
            swap(x, y);
            x++;
            y--;
        }
    }
    if (low < y) {
        quickSort(low, y);
    }
    if (x < high) {
        quickSort(x, high);
    }
}

int main() {
    quickSort(0, n - 1);
    int x;
    for (x = 0; x < n; x++) {
        printf("%d ", bil[x]);
    }
    return 0;
}

Insertion Sort In C

#include <stdio.h>

int n = 7;
int bil[] = {5, 3, 8, 4, 7, 2, 1};

void swap(int first, int second) {
    int tampung = bil[first];
    bil[first] = bil[second];
    bil[second] = tampung;
}

void insertionSort() {
    int x, y, stop, tampung;
    for (x = 1; x < n; x++) {
        stop = x;
        for (y = (x - 1); y >= 0; y--) {
            if (bil[x] < bil[y]) {
                stop = y;
            }
        }
        tampung = bil[x];
        for (y = x - 1; y >= stop; y--) {
            swap(y, (y + 1));
        }
        bil[stop] = tampung;
    }
}

int main() {
    insertionSort();
    int x;
    for (x = 0; x < n; x++) {
        printf("%d ", bil[x]);
    }
    return 0;
}


Selection Sort In C

#include <stdio.h>

int n = 7;
int bil[] = {5, 3, 8, 4, 7, 2, 1};

void swap(int first, int second) {
    int tampung = bil[first];
    bil[first] = bil[second];
    bil[second] = tampung;
}

void selectionSort() {
    int x, y, min;
    for (x = 0; x < n; x++) {
        min = x;
        for (y = (x + 1); y < n; y++) {
            if (bil[min] > bil[y]) {
                min = y;
            }
        }
        swap(x, min);
    }
}

int main() {
    selectionSort();
    int x;
    for (x = 0; x < n; x++) {
        printf("%d ", bil[x]);
    }
    return 0;
}

Bubble Sort In C

#include <stdio.h>

int n = 7;
int bil[] = {5, 3, 8, 4, 7, 2, 1};

void swap(int first, int second) {
    int tampung = bil[first];
    bil[first] = bil[second];
    bil[second] = tampung;
}

void bubbleSort() {
    int x, y;
    for (x = 1; x < n; x++) {
        for (y = 0; y < n - x; y++) {
            if (bil[y] > bil[y + 1]) {
                swap(y, (y + 1));
            }
        }
    }
}

int main() {
    bubbleSort();
    int x;
    for (x = 0; x < n; x++) {
        printf("%d ", bil[x]);
    }
    return 0;
}

THIS HOUSE WOULD ALLOW STUDENT TO BRING MOBILE PHONE TO SCHOOL

This is some negative reason and also the effect from the motion
1.      Open Sexual Content Site On The Internet
Many people say that, students should bring handphone to school to help them search some content to support them on school activity or help them on their task. This is just wrong because they can open it at home. However, students are curious with the content from the internet. Even they dont open sexual content website thre will be some advertisement on some website which wiil direct them to porn or sexual content website. Thats why this is dangerous from the students to bring handphone to schools. Beside that, for some reason when the students are bring their phone to school they will feel free, they will open some website they want. This is posible for them to open sexual or porn website. However, children is children. They will act as they see, they will act as they hear, they will act as they feel comfortable. This is possible why there are a lot of crimes about porn which involve the students. It will destroy their future.

2.      Make The Children Play Games or Hearing Some Music
Not all the children at school are excited to the lesson they get. Sometime they will feel bored. At this time, students will try another activities that will not make them bored. In this case, if they bring mobile phone on their pockets, it will triggered they want to pull their phone on the pockets and as natural as a children when they are bored, they will play games. It will distract their concentration to the lesson. This is not good for them because the requirement to pass the school year are the minimal value of every lesson not one or some of them, but all the lessons. Not only to the children but also to the teacher. If the teacher caught them play games on the teaching activities, they will be punished by the teacher. We know that not all the teacher have good patient, sometime they are “killer” (means very grumpy) and it will caused violene at school. Sometime it will be some big problems and wil be printed on newspaper that “Mr. Theacher Kick Some Student’s Ass At School”. It will make the teacher be droped out from the school. And this is becaused of the children bring their phone to schools.

3.      Use Phone To Cheat

By bringing phone to schools, the children will use it as a media to cheat. They will use it to get some answer from their friends. For example when the final exam are coming, not only the children but also the teacher will help them to cheat. Based on my experience on my junior high school, the teacher will take some clever students and ask them to share their answer to the other students by mobile phone. Extremly this is not only happen in a school but also they do it to another school because in my case, the guard teacher when the exam was hold are the teacher from another school and they will leet us use our phone even there are several of them told as that “Boleh menyontek tapi jangan ramai dan jangan gadus”. This is crazy I think. It will make our mark for every lessons good but not real.

Saturday, September 28, 2013

Android Text To Speech

Berikut adalah beberapa tahapan membuat text to speech di android:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

MainActivity.java

import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Button;

public class MainActivity extends Activity implements TextToSpeech.OnInitListener {

private TextToSpeech speech;
private Button speak;
private EditText comments;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

speech = new TextToSpeech(this, this);
speak = (Button) findViewById(R.id.button1);
comments = (EditText) findViewById(R.id.editText1);
speak.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
speak();
}

});
}

@Override
public void onDestroy() {
if (speech != null) {
speech.stop();
speech.shutdown();
}
super.onDestroy();
}

@Override
public void onInit(int status) {

if (status == TextToSpeech.SUCCESS) {
int result = speech.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
speak.setEnabled(true);
speak();
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}

private void speak() {
String text = comments.getText().toString();
speech.speak(text, TextToSpeech.QUEUE_FLUSH, null);

}
}

Sunday, September 15, 2013

Pengalaman Selama Mengajar

Selama saya berada di SMKN PGRI 3 Malang, awalnya saya mengajar dan memberi pengenalan pada buku digital. Sebelum menginjak tentang pengenalan bagaimana membuat buku digital, saya memberi instruksi untuk menginstall software Sigil. Setelah itu saya memberi pelajaran tentang heading yang bisa dilakukan langsung di microsoft word dan juga bisa di lakukan di software Sigil. Setelah mengajari tentang heading, saya mengajari bagaimana cara memasukkan gambar di Microsoft Word agar pada saat memasukkan file Word ke Sigil, format tulisan tidak berantakan, yaitu dengan memasukkan gambar dalam format Wrap Text, InLine With Text. Setelah mengajari bagaimana memasukkan gambar yang benar agar format buku digital rapi, saya mengajari siswa bagaimana cara memasukkan file word ke Sigil.

Selang beberapa hari, Saya mendapat tugas untuk mengajar materi java, web atau mobile programming pada teman teman kelas 7. Kelas yang saya ambil adalah kelas 1 RPL-A dan 1 RPL-B. Saya memutuskan untuk mengajar java terlebih dahulu.Sebagai awalan mengenai java, saya mengajar tentang struktur kontrol dalam java. Hal pertama yang saya ajarkan adalah pengenalan tentang tipe data yang ada di dalam java. Setelah itu saya mengajarkan bagaimana menggunakan for, if, dan operasi pembandingnya seperti OR dan AND. Pertama kali, saya ajarkan tentang for. Pada saat saya mengajar for, untuk memudahkan siswa siswi disana, saya analogikan bahwa for memiliki 3 bagian yaitu mulai, kondisi dan behaviour. Untuk lebih lengkapnya, saya sengaja membuat sebuah artikel tentang for yang dapat dilihat di http://albycahaya.blogspot.com/2013/09/perulangan-for-dalam-java.html. Selanjutnya saya mengajar tentang if, dan untuk mempermudah siswa siswi di sana, saya menganalogikan, jika kita ingin mengerti sebuah kondisi if, maka blok di dalam if kita buat pertanyaan yang hasil keluarannya Ya/Tidak, Benar/Salah. Untuk lebih lengkapnya, saya sengaja membuat sebuah artikel tentang if yang dapat dilihat di http://albycahaya.blogspot.com/2013/09/kondisi-if-dalam-java.html

Sekian dari laporan dalam bentuk artikel dari saya, apabila ada kesalahan penulisan atau ejaan saya mohon maaf. Terima kasih.

Saturday, September 14, 2013

Selection Sort Dalam Java

kali ini saya mau share tentang bagaimana sorting secara selection sort. Pada kesempatan kali ini saya coba menjelaskan selection sort dengan menambah penjelasan dalam program itu sendiri. Silahkan membuat class baru lalu copy script di bawah ini:

    public static void main(String[] args) {
        int[] data = {8, 4, 2, 6, 3, 7, 17, 28};
        int tampung = 0;
        for (int x = 0; x < data.length; x++) {
            for (int y = x + 1; y < data.length; y++) {
                System.out.println("\nmembandingkan " + data[x] + " dengan " + data[y]);
                System.out.print("awalnya data[x] adalah " + data[x] + " lalu ");
                if (data[x] > data[y]) {
                    tampung = data[x];
                    data[x] = data[y];
                    data[y] = tampung; 
                    System.out.print("data[x] menjadi " + data[x] + ", data[y] menjadi " + data[y] + ". ");
                }
                else{
                    System.out.print("data[x] tidak ditukar karena tidak memenuhi kondisi if dan data[y] berlanjut. ");
                }
            }
            System.out.println("");
        }
    }

Keterangan yang warna merah akan membantu temen - temen dalam mengerti tentang  selection sort.
Semoga bermanfaat.

Penerapan Link List Dalam Java

Pada kesempatan kali ini saya mau sedikit share tentang link list sebagai lanjutan dari artikel sebelumnya. Kali ini saya  au share tentang penerapan link list dalam hal yang lebih luas yaitu penerapan link list dalam mencari data terkecil, terbesar, dan mengurutkan data yang berupa angka. Berikut script untuk mencari data terkecil:
Sebelumnya, buat class baru terlebih dahulu. Pada contoh kali ini nama classnya adalah LinkedList.
public class LinkedList {
int data;
 LinkedList next;
public LinkedList(){
}   
public LinkedList(int data){
this.data = data;
}
public void tampil(){
System.out.print(data + " ");
}
}
Setelah itu buat class baru lagi. Pada contoh kali ini adalah Process.
public class Process {
LinkedList awal;
int k = 0;
public void masuk(int data) {
LinkedList link = new LinkedList(data);
link.next = awal;
awal = link;
}
public void tampil() {
LinkedList link = awal;
while (link != null) {
link.tampil();
link = link.next;
}
}
public int min(){
LinkedList link = awal;
while(link != null){
link = link.next;
int n = 1;
k += n;
}
int data[] = new int[k];
for(int x = 0; x < data.length; x++){
data[x] = awal.data;
awal = awal.next;
}
boolean is = true;
int tampung = 0;
for(int x = 0; x < data.length; x++){
is = true;
for(int y = 0; y < data.length; y++){
if(data[x] > data[y]){
is = false;
}
}           
if(is){
tampung = data[x];
}
}
return tampung;
}
}
public int max(){
System.out.println("Bilangan terbesar");
LinkedList link = awal;
while(link != null){
link = link.next;
int n = 1;
k += n;
}
int data[] = new int[k];
for(int x = 0; x < data.length; x++){
data[x] = awal.data;
awal = awal.next;
}
boolean is = true;
int tampung = 0;
for(int x = 0; x < data.length; x++){
is = true;
for(int y = 0; y < data.length; y++){
if(data[x] < data[y]){
is = false;
}
}
if(is){
tampung = data[x];
}
}
return tampung;
}
Perhatikan pada blok yang berwarna merah, di dalamnya terdapat satu baris yang di tulis dengan huruf tebal dan berwarna hitam. Blok itu adalah blok yang digunakan untuk mencari data angka terkecil, apabila ingin mencari data  angka terbesar, hanya tinggal mengganti dengan if(data[x] < data[y]).
public int max(){
LinkedList link = awal;
while(link != null){
link = link.next;
int n = 1;
k += n;
}
int data[] = new int[k];
for(int x = 0; x < data.length; x++){
data[x] = awal.data;
awal = awal.next;
}
boolean is = true;
int tampung = 0;
for(int x = 0; x < data.length; x++){
is = true;
for(int y = 0; y < data.length; y++){
if(data[x] < data[y]){
is = false;
}
}           
if(is){
tampung = data[x];
}
}
return tampung;
}
}
public int max(){
System.out.println("Bilangan terbesar");
LinkedList link = awal;
while(link != null){
link = link.next;
int n = 1;
k += n;
}
int data[] = new int[k];
for(int x = 0; x < data.length; x++){
data[x] = awal.data;
awal = awal.next;
}
boolean is = true;
int tampung = 0;
for(int x = 0; x < data.length; x++){
is = true;
for(int y = 0; y < data.length; y++){
if(data[x] < data[y]){
is = false;
}
}
if(is){
tampung = data[x];
}
}
return tampung;
}

Nah, sekarang bagaimana untuk mengurutkan data menggunakan link list??? Pada contoh kali ini, data yang akan diurutkan akan ditampilkan yaitu fungsi berupa void. Kalo temen – temen ingin mengembalikan nilai dari data yang temen – temen urutkan, silahkan dimodifikasi sendiri. Silahkan tambahkan script mengurutkan data dengan fungsi tampil() yang ada di class process. Berikut scriptnya:
public void tampil() {
LinkedList link = awal;
while (link != null) {
int n = 1;
link.tampil();
link = link.next;
k += n;
}
System.out.println("\nAscending");
int data[] = new int[k];
for(int x = 0; x < data.length; x++){
data[x] = awal.data;
awal = awal.next;
}
int temp;
for(int x = 0; x < data.length;x++){
for(int y = x + 1; y < data.length; y++){
if(data[x] > data[y]){
temp = data[x];
data[x] = data[y];
data[y] = temp;
}
}
System.out.print(data[x] + " ");
}
System.out.println("\nDescending");
for(int x = 0; x < data.length;x++){
for(int y = x + 1; y < data.length; y++){
if(data[x] < data[y]){
temp = data[x];
data[x] = data[y];
data[y] = temp;
}           
}
System.out.print(data[x] + " ");
}   
}
Lalu buat class baru untuk menampilkan data – data yang ingin dimasukkan. Pada contoh kali ini nama classnya adalah Main.
public class Main {
public static void main(String[] args){
Process angky = new Process();
angky.masuk(4);
angky.masuk(8);
angky.masuk(3);
angky.masuk(1);
angky.masuk(2);
System.out.print(angky.min());
System.out.println("");
Process cahaya = new Process();
cahaya.masuk(4);
cahaya.masuk(8);
cahaya.masuk(3);
cahaya.masuk(1);
cahaya.masuk(2);
System.out.print(cahaya.max());
System.out.println("");
Process putra = new Process();
putra.masuk(4);
putra.masuk(8);
putra.masuk(3);
putra.masuk(1);
putra.masuk(2);
putra.tampil();
}
}
PENTING!!!
Tabulasi dalam java sangatlah penting, apabila temen – temen mengcopas script di atas, pasti nantinya tabulasi di atas akan lurus rata kiri. Solusinya (khusus yang menggunakan netbeans) yaitu setelah temen – temen mengcopas script di atas, tekan Shift + Alt + F. Secara otomatis netbeans akan mengatur tabulasi script yang tentu saja akan memudahkan pembacaan script.

Segitiga Pascal Dalam Java

Sebenarnya, menampilkan segitiga pascal dapat dilakukan hanya dalam fungsi main(public static void main(String[] args), namun cara ini lebih kompleks karena temen - temen harus mengatur fungsi faktorial sendiri di dalam fungsi main tersebut. Sebenarnya bisa, tapi lebih membingungkan. Sehubungan dengan kebingungan tersebut, pada artikel kali ini, akan saya buat fungsi - fungsi yang nantinya akan menjadi rumus menampilkan segitiga pascal tersebut. Fungsi ini ditunjukkan oleh script berwarna di bawah ini:

public class SegitigaPascal {

    public int proc(int angka) {
        if (angka == 0) {
            return 1;
        } else {
            return angka;
        }
    }

    public int minus(int x, int y) {
        if (x - y == 0) {
            return 1;
        } else {
            return x - y;
        }
    }

    public int faktorial(int angka) {
        int faktorial = 1;
        for (int x = 1; x <= angka; x++) {
            faktorial *= x;
        }
        return faktorial;
    }

    public static void main(String[] args) {
        SegitigaPascal panggil = new SegitigaPascal();
        int batas = 4;
        int xFaktorial = 1;
        int yFaktorial = 1;
        int minFaktorial = 1;
        int simpan;
        int hasil = 0;
        for (int x = 0; x <= batas; x++) {
            xFaktorial *= panggil.proc(x);
            for (int y = batas; y >= x; y--) {
                System.out.print(" ");
            }
            for (int y = 0; y <= x; y++) {
                yFaktorial *= panggil.proc(y);
                minFaktorial = panggil.minus(x, y);
                simpan = panggil.faktorial(minFaktorial);
                hasil = xFaktorial / (yFaktorial * (simpan));
                System.out.print(hasil + " ");;
            }
            yFaktorial = 1;
            System.out.println("");
        }
    }
}

Overriding Pada Java

Karena besok ada kuis nih di kampus, untuk membantu temen - temen yang belum ngerti ane pengen ngasih contoh ovveriding buat temen - temen:

Buat 3 class terlebih dahulu. pada contoh kali ini adalah Lingkaran, Tabung, Kerucut:
public class Lingkaran {

    int r;

    public int getLuasLingkaran(int r) {
        return (int) Math.PI * r * r;
    }

    public void luas() {
        int luas = getLuasLingkaran(this.r);
        System.out.println("Luas        : " + luas);
    }

    public int getKelilingLingkaran(int r) {
        return (int) Math.PI * (r * 2);
    }

    public void keliling() {
        int keliling = getKelilingLingkaran(this.r);
        System.out.println("Keliling    : " + keliling);
    }
}

public class Tabung extends Lingkaran{
    int tinggi;
    int jari;
   
    @Override
    public void luas(){
        int luas = (2 * super.getLuasLingkaran(this.jari)) + (tinggi * super.getKelilingLingkaran(this.jari));
        System.out.println("Luas        : " + luas);
    }
   
    public void volume(){
        int volume = super.getLuasLingkaran(this.jari) * tinggi;
        System.out.println("Volume      : " + volume);
    }
}

public class Kerucut extends Lingkaran{
    int tinggi;
    int jari;
    
    @Override
    public void luas(){
        int selimut = (int) Math.sqrt(Math.pow(this.tinggi,2) + Math.pow(this.jari,2));
        int luas = (super.getLuasLingkaran(this.jari) + (selimut * (int) Math.PI * this.jari));
        System.out.println("Luas        : " + luas);
    }
    
    public void volume(){
        int volume = (int)(0.333 * (super.getLuasLingkaran(this.jari) * tinggi));
        System.out.println("Volume      : " + volume);
    }
}

perlu diketahui bahwa class berwarna merah adalah super class dari class yang berwarna biru dan hijau. Dari sini akan tampak kegunaan overriding. Perhatikan fungsi luas() pada setiap class. ketiga fungsi tersebut bertipe fungsi sama, nama fungsi sama, dan nilai kembaliannyapun sama.Namun , di sinilah overriding berperan karena fungsi luas() di dalam tabung akan menampilkan luas tabung dan fungsi luas() pada kerucut akan menampilkan luas kerucut. Semoga Bermanfaat.