Minggu, 23 Desember 2012

Inharitance pada persegipanjang

telah di jelaskan pada inheritance pada lingkaran maka metode tersebut dapat juga kita pergunakan dalam mencari persegi panjang dan balok hal ini di karenakan balok merupakan turunan dari persegi panjang, kira kira seperti dibawah ini kodenya

class persegipanjang
{
private double panjang;
private double tinggi;
     public persegipanjang()
    {
        setpanjang(1);
        settinggi(1);
    }
    public persegipanjang(double p, double t)
    {
        setpanjang(p);
        settinggi(t);
    }
    public void setpanjang(double p)
    {
        if(p>0)
            panjang=p;
    }
    public void settinggi(double t)
    {
        if (t>0)
            tinggi=t;
    }
    public double getpanjang()
    {
        return(panjang);
    }
    public double gettinggi()
    {
        return(tinggi);
    }
    public double hitungluas()
    {
        return (panjang*tinggi);
    }
    public double hitungkeliling()
    {
        return(2.0*(panjang+tinggi));
    }
   
}
class balok extends persegipanjang
{
    private double lebar;
    public balok()
    {   
        settinggi(1);
        setpanjang(1);
        setlebar (1);       
               
    }
    public balok(double l, double p, double t)
    {   
        setlebar (l);
        settinggi(t);
        setpanjang(p);
       
    }
    public void setlebar (double l)
    {   
        if (l>0)
        lebar = l;   
    }
    public double getlebar()
    {   
        return (lebar);       
    }

    public double hitungvolume()
    {   
        return (lebar*super.hitungluas());       
    }
   }


public class hitungpersegipanjang
{
    public static void main(String[] args)
    {
        balok abc = new balok(0,5,4);
        balok xyz =new balok(2,3,4);
        System.out.println("data persegi panjang abc:");
        System.out.println("--------------------------");
        System.out.println("tinggi abc :" + abc.gettinggi());
        System.out.println("panjang abc :" + abc.getpanjang());
        System.out.println("luas abc :" + abc.hitungluas());
        System.out.println("keliling abc :" +abc.hitungkeliling());
        System.out.println();
   
System.out.println ("Data balok XYZ :");
            System.out.println ("-----------------------");
            System.out.println ("panjang XYZ     : " + xyz.getpanjang());
            System.out.println ("tinggi XYZ     : " + xyz.gettinggi());
            System.out.println ("lebar XYZ     : " + xyz.getlebar());
       
            System.out.println ("volume XYZ     : " + xyz.hitungvolume());
            System.out.println ();

    }
}


download source

Label:

inheritance pada lingkaran


Secara bebas Inheritance di terjemahkan sebahagai pewarisan.
Yaitu sebuah konsep dimana kita bisa membuat sebuah class baru dengan mengembangkan kelas yang pernah dibuat sebelumnya.
Metode OOP memungkinkan kita memperoleh seluruh data dari classinduk (base-class) untuk diberikan kepada class anak (derived-class) tanpa harus melakukan copy-and-paste seluruh kode base-class.

Contoh :

kita akan membuat class Silinder seperti digambarkan dibawah ini
 
 
Catt:

Selain tinggi silinder(t), silinder juga memiliki jari-jari (r) lingkaran pada kedua ujungnya.

 
dikarenakan silinder merupakan keturunan dari lingkaran maka untuk mencari silinder kita memerlukan beberapa rumus dari lingkaran
 dalam java inheritance dapat dilakukan seperti contoh berikut

pertama buat class lingkaran:

class lingkaran
{
private double jarijari;
     public lingkaran()
    {
        setjarijari(1);
    }
    public lingkaran(double r)
    {
        if (r>0)
        jarijari=r;
        else
        jarijari=100.0;
    }
    public void setjarijari(double r)
    {
        if(r>0)
            jarijari=r;
    }
    public double getjarijari()
    {
        return(jarijari);
    }
    public double hitungluas()
    {
        return (Math.PI*jarijari*jarijari);
    }
    public double hitungkeliling()
    {
        return(Math.PI*2.0*jarijari);
    }
   

//selanjutnya kita buat class silinder

class silinder extends lingkaran //class silinder merupakan turunan dari class lingkaran
{
    private double tinggi;
    public silinder()
    {   
        setjarijari (1);       
        settinggi (1);       
    }
    public silinder(double r, double t)
    {   
        setjarijari (r);
        settinggi (t);
    }
    public void settinggi (double t)
    {   
        if (t>0)
        tinggi = t;   
    }
    public double gettinggi()
    {   
        return (tinggi);       
    }
    public double hitungluas()
    {   
            return (super.hitungluas() * 2.0 + super.hitungkeliling() * tinggi);

//perintah super digunakan untuk memanggil class lingkaran
    }
    public double hitungvolume()
    {   
        return (Math.PI * 2.0 * super.getjarijari() * tinggi);       
    }
   }  

public class cobasilinder
{
    public static void main(String[] args)
    {
        silinder abc = new silinder(4,5);
        silinder xyz =new silinder(2,3);
        System.out.println("data silinder abc:");
        System.out.println("--------------------------");
        System.out.println("jari-jari abc :" + abc.getjarijari());
        System.out.println("tinggi abc :" + abc.gettinggi());
        System.out.println("luas abc :" + abc.hitungluas());
        System.out.println("keliling abc :" +abc.hitungkeliling());
        System.out.println();
   
System.out.println ("Data Silinder XYZ :");
            System.out.println ("-----------------------");
            System.out.println ("Jari-Jari ABC     : " + xyz.getjarijari());
            System.out.println ("Tinggi ABC     : " + xyz.gettinggi());
            System.out.println ("Luas ABC     : " + xyz.hitungluas());
            System.out.println ("volume ABC     : " + xyz.hitungvolume());
            System.out.println ();

    }

Label:

Selasa, 11 Desember 2012

Mencari Akar Kuadrat dengan Java

 Di dalam matematika, akar kuadrat dari bilangan x sama dengan bilangan r sedemikian sehingga r2 = x, atau, di dalam perkataan lain, bilangan r yang bila dikuadratkan (hasil kali dengan bilangan itu sendiri) sama dengan x.

Setiap bilangan real tak-negatif, katakanlah x memiliki akar kuadrat tak-negatif yang tunggal, disebut akar kuadrat utama, yang dilambangkan oleh akar ke-n sebagai \scriptstyle \sqrt{x}. Akar kuadrat dapat juga dituliskan dengan notasi eksponen, sebagai x1/2. Misalnya, akar kuadrat utama dari 9 adalah 3, dituliskan dengan \scriptstyle \sqrt{9} = 3, karena 32 = 3 × 3 = 9 dan 3 tak-negatif. Bagaimanapun, akar kuadrat utama dari sebuah bilangan positif hanya satu dari dua akar kuadratnya. (WIKI)

Untuk mencari akar dengan pemrograman java kita bisa menggunakan metod Math.sqrt yang telah di sediakan oleh java namun bagai mana jika kita ingin mencari dengan menggunakan logika biasa tanpa menggunakan bantuan dari metod yang telah di sediakan oleh java.

untuk mencari akar kita bisa dengan menggunakan pembagian dimana 3x3=9 maka 9/3=3 dengan hal ini maka saya mencoba melakukan pembagian untuk mencari akar dari angka 9 dengan menggunkaan pengulangan dengan for

sekarang kita langsung aja ke-kodenya
import java.io.*;//digunkaan saat kita menggunakna BufferedReader
import java.text.*;//digunakan saat kita menggunkan NumberFormat
import java.util.Scanner;
public class akar2{
        double bagi(double x, double y){ //merupakan method yang digunakan untuk
            return (x/y);//membagi sebuah bilangan yang di masukan
        }
    public static void main(String args[]){
    double hasil=0;
    int i;
    int a=0;
 //digunakan untuk memanggil mothod yang ada di class akar2 diatas
        akar2 hitung = new akar2();
//digunakan untuk menambahkan format decimal beberapa angka di belakang koma
//dari 0 menjadi 0.0000
        NumberFormat duaangka = new DecimalFormat("#.####");

        BufferedReader input;
        try{
            input=new BufferedReader(new InputStreamReader(System.in));
            System.out.println("masukan angka:");
            a = new Integer (input.readLine()).intValue();        
            for ( i=1;i<a;i++)
            {
                if ((a/i)==i)
                {
                hasil = hitung.bagi(a,i);//memanggil method bagi yang ada di atas
                 }                       
            }
        }
    catch (Exception e) {
        System.out.print("error");
    }
//memprint hasil dengan format yang sudah kita buat diatas dengan menggunakan duaangka,format(hasil)
             System.out.println("Akar dengan pengulangan dan pembagian dari angka "+a+" adalah " + duaangka.format(hasil));
//memprint langsung dengan menggunkaan metod Math.sqrt dari inputan a
             System.out.println("hasil dengan Math.sqrt adalah "+ Math.sqrt(a));
    }
}

=======================================================================
for ( i=1;i<a;i++)
            {
                if ((a/i)==i)
                {
                hasil = hitung.bagi(a,i);//memanggil method bagi yang ada di atas
                 }                       
            }
        }



kode apaan tuh 

kode diatas merupakan pengulangan yang saya gunakan untuk mencari hasil pembagian dari angka yang saya inputkan. cara kerja dari kode diatas seperti dibawah ini
misal kita akan mencari akar 9 maka a=9










a i=1 i<a a/i=i i++
9 1 TRUE 9/1==1 False 1+1=2
9 2 TRUE 9/2==2 False 1+2=3
9 3 TRUE 9/3==3TRUE


maka saat i=3 maka program akan menghitung hasil dengan rumus hasil =a/i dimana dengan menggukan method bagi yang ada di atas maka (a) diterjemahkan ke (x) dan (i) ke (y) dan di method berupa (x/y) dan hasil dari program di atas adalah sebagai berikut


download source

Label: