Senin, 14 November 2011

Penerapan Polymorphism


polymorphism adalah kemampuan sebuah untuk menerjemahkan suatu method menjadi
berbagai macam aksi.

Polymorphism membolehkan kelas induk (superclass) untuk mendefinisikan method umum
untuk semua turunannya. Kelas-kelas turunannya dapat mengimplementasikan method tersebut
sesuai dengan karakteristik masing-masing kelas.

Contoh Penerapan polymorphism.

class Bangun
{
    public double hitungLuas()
    {
        System.out.println("Method umum");
        return 0;
    }
}

class BujurSangkar extends Bangun
{
    private double sisi;

    BujurSangkar(int s)
    {
        sisi = s;
    }

    //overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = sisi * sisi;
        return luas;
    }
}

class Segitiga extends Bangun
{
    private double alas;
    private double tinggi;

    Segitiga (int a, int t)
    {
        alas = a;
        tinggi = t;
    }

// overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = 0.5 * alas * tinggi;
        return luas;
    }
}

class Lingkaran extends Bangun
{
    private double jarijari;
    private final double PI = 3.1416;

    Lingkaran(int r)
    {
        jarijari = r;
    }

    //overriding method hitungLuas()
    public double hitungLuas()
    {
        double luas = PI * jarijari * jarijari;
        return luas;
    }
}

class DemoPolimorfisme2
{
    public static void main(String[] args)
    {
        Bentuk obyek;
        BujurSangkar b = new BujurSangkar(12);
        Segitiga s = new Segitiga(5, 6);
        Lingkaran l = new Lingkaran(4);

        // obyek mengacu pada objek BujurSangkar
        obyek = b;

        // akan memanggil method yang terdapat pada BujurSangkar
        System.out.println(“Luas bujursangkar : “ + obyek.hitungLuas());
        System.out.println();

        // obyek mengacu pada objek Segitiga
        obyek = s;
       
        // akan memanggil method yang terdapat pada Segitiga
        System.out.println(“Luas segitiga : “ + obyek.hitungLuas());
        System.out.println();

        // obyek mengacu pada objek Lingkaran
        obyek = l;

        // akan memanggil method yang terdapat pada Lingkaran
        System.out.println(“Luas lingkaran: “ + obyek.hitungLuas());
        System.out.println();
    }
}

Pada diatas kita menggabungkan contoh-contoh sebelumnya untuk menunjukkan bagaimana
polymorphism terbentuk.

Kelas induk adalah Bangun dan mempunyai subclass yaitu BujurSangkar, Segitiga dan Lingkaran.
Semuanya subclass mempunyai method hitungLuas() yang diturunkan dari kelas Bangun.

Perhatikan bahwa meskipun nama method hitungLuas() ada pada semua subclass,
ternyata penerapannya berbeda-beda tergantung pada subclass masing-masing.

Penerapan Inheritance atau pewarisan

Pewarisan adalah keuntungan besar dalam pemrograman beorientasi
obyek karena suatu sifat atau method yang telah didefinisikan dalam superclass,
secara otomatis diwariskan dari pada semua subclasses.

Jadi kita mungkin hanya perlu mendefinisikan method satu kali di superclass kemudian dapat kita
gunakan pada subclass.

contoh :

class SuperA
{
    private int a;
    public void setSuperA(int nilai)
    {
        a = nilai;
    }
   
    public int getSuperA() {
        return a;
    }
}

// membuat kelas turunan (subclass) dari kelas A
class SubB extends SuperA
{
    private int b;
    public void setSubB(int nilai)
    {
        b = nilai;
    }

    public int getSubB()
    {
        return b;
    }
}

class DemoKelasTurunan1
{
    public static void main(String[] args)
    {
   
    // melakukan instansiasi terhadap kelas B
    SubB ObyekB = new SubB();
   
    // mengeset nilai objek dari kelas B
    ObyekB.setSuperA(50);
    ObyekB.setSubB(200);

    // mendapatkan nilai yang terdapat dalam objek dari kelas B
    System.out.println("Nilai a : " + Obyek.getSuperA());
    System.out.println("Nilai b : " + Obyek.getSubB());
    }
}

Pada kode di atas, class SuperA adalah super class yang memiliki satu
data yaitu a dan dan dua method yaitu setSuperA dan getSuperA.

Class SubB adalah turunan dari kelas SuperA (perhatikan deklarasi class SubB extends SuperA).

Data dan method yang ada pada class SuperA secara otomatis akan dibawa ke class SubB.

Sehingga class SubB akan mempunyai dua data yaitu a dan b.

Data a adalah hasil warisan dari class SuperA sedang data b adalah milik class SubB sendiri.

Method pada class SubB akan terdiri dari empat method,
yaitu setSuperA dan getSuperA yang merupakan warisan dari class SuperA serta
class setSubB dan getSubB yang milik class SubB sendiri.





contoh Penerapan inheritance untuk menghitung luas dan volume.


class Bangun
{
    protected double panjang;
    protected double lebar;

    // constructor default
Bangun()
{
    panjang = lebar = 0;
}

Bangun(double p, double l)
{
    panjang = p;
    lebar = l;
}

// method yang mengembalikan nilai
public double hitungLuas()
{
    double luas = panjang * lebar;
    return luas;
}
}

class Box extends Bangun
{
    private double tinggi;
   
    // constructor class Box
    Box (int p, int l, int t) {
    panjang = p;
    lebar = l;
    tinggi = t;
}

public double getTinggi()
{
    return tinggi;
}

public double hitungVolume()
{
    double volume = panjang * lebar * tinggi;
    return volume;
}
}

class inheritBangun
{
    public static void main(String[] args)
    {
        Box kotak;

        // instansiasi obyek
        kotak = new Box(6, 8, 3);

        // memanggil method hitungLuas(), getTinggi() dan hitung volume()
        System.out.println("Luas salah satu sisi = " + kotak.hitungLuas());
        System.out.println("Tinggi kotak = " + kotak.getTinggi());
        System.out.println("Volume kotak = " + kotak.hitungVolume());
    }
}

Kelas Bangun di atas adalah superclass sedangkan Box adalah subclass.
Pada default constructor Bangun, nilai panjang dan lebar diinisialisasi dengan nilai 0.

Perhatikan didepan deklarasi variabel panjang dan lebar pada kelas Bangun dicantumkan kata

kunci protected yang berarti kelas turunan dari Bangun tetap dapat mengakses nilai dari variabel

tersebut namun yang tidak memiliki hubungan turunan tidak dapat mengaksesnya.

Pada Box yang merupakan subclass ditambahkan satu variabel yaitu tinggi
dengan tambahan kata kunci private diikuti tipe datanya.

Private menunjukkan bahwa variabel tinggi hanya bisa diakses didalam kelas Box. Lawan dari

private adalah public, yang berarti dapat diakses oleh siapapun dan dari manapun.

Pada kelas Box juga kita tambahkan satu method yaitu hitungVolume().
Pada contoh di atas obyek yang kita buat yaitu kotak, merupakan hasil instansiasi dari kelas Box.

Oleh karena kelas Box adalah turunan dari kelas Bangun, maka kita dapat mengakses method

hitungLuas() yang merupakan warisan dari kelas Bangun.

Tentu saja kita bisa mengakses method getTinggi() dan hitungVolume() yang merupakan method

pada kelas Box.




Pemrograman Berorientasi Obyek

Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP)
adalah programming paradigm yang menggunakan obyek dan interaksinya untuk
merancang aplikasi dan program komputer.

Ada beberapa konsep penting yang kalian harus pahami dalam
pemrograman berorientasi yaitu, abstraksi, enkapsulasi, inheritance dan polymorphism.

a. Abstraksi

Abstraction atau disebut juga composition merupakan prinsip
penyederhanaan dari sesuatu yang kompleks dengan cara memodelkan kelas
sesuai dengan masalahnya.

sebuah mobil jika dipecah-pecah bagian-bagiannya kita akan dapatkan
seperti ban, mesin, rangka, mobil, kaca, dan lain-lain dan hal in berlaku sebaliknya.
Jika kita gabungkan bagian-bagian tersebut maka kita akan mendapatkan sebuah kelas mobil.

Pada pemrograman berorientasi obyek biasanya kalau kita menjumpai beberapa kelas
atau obyek yang kalau diidentifikasi memiliki banyak kesamaan atribut dan
method maka kita akan menggabungkan kelas-kelas tersebut menjadi satu super
class.

b. Enkapsulasi

Prinsip encapsulation adalah prinsip penyembunyian detil dari sebuah
kelas terhadap obyek yang berinteraksi terhadapnya.

Sebagai contoh ketika kita menjalankan mobil, sebenarnya kita sedang berinteraksi dan
kita meminta kepada mobil untuk menjalankan methodnya seperti maju, mundur atau
berhenti. Kita berinteraksi hanya dengan beberapa bagian dari mobil (interface)
seperti persneling, setir, pijakan gas, pijakan rem dan bagian lain.

Tapi detil proses yang terjadi didalam mobil bagaimana bisa maju, mundur atau berhenti
kita tidak perlu tahu.

c. Inheritance

Inheritance atau pewarisan adalah prinsip pewarisan sifat dari orang tua
ke anak atau turunannya yang diterapkan pada kelas.

Orang tua memiliki atribut dan method yang lebih umum dibandingkan dengan anak
atau turunannya.

kita bisa tahu bahwa mobil memiliki atribut dan method yang
lebih umum dibandingkan dengan sedan , truk atau bus.

Mobil sebagai kelas yang mewarisi disebut sebagai super class, sedangkan sedan,
truk dan bus sebagai kelas yang diwarisi disebut sub class.

d. Polymorphism

Arti dari polymorphism adalah kemampuan dari suatu obyek untuk
mempunyai lebih dari satu bentuk.

Atau dalam pengertian lain adalah kita dapat menerapkan sesuatu hal yang berbeda melalui
suatu cara yang sama.

Sebagai contoh kalau ada empat ekor hewan berbeda
yaitu burung, ular, katak, dan singa kemudian kita minta untuk bergerak, maka
burung akan terbang, ular akan melata, katak melompat, singa mungkin akan
berlari.

Jadi suatu method yang sama mungkin bisa diterapkan secara lain jika
obyek yang menerapkan adalah berlainan.

1. Class

jawab :

Class atau kelas mendefinisikan karakteristik abstrak dari sesuatu
termasuk atribut atau sifat-sifat dari sesuatu dan apa yang dapat dikerjakan oleh
sesuatu (method). Sebagai contoh, mobil adalah sebuah kelas yang memiliki
attribut warna, merek, tipe dan lain-lain. Mobil juga punya method antara lain,
maju, mundur dan berhenti.

1.a. Pembuatan Kelas

Pada Java kelas didefinisikan dengan kata kunci class.
Bentuk umum untuk mendefinisikan kelas adalah sebagai berikut:

class NamaKelas
tipe data1;
tipe data2;

tipe dataN;
tipe method1 (daftar parameter) {
//blok kode untuk method1
}
tipe method2 (daftar parameter) {
//blok kode untuk method2
}

tipe methodN (daftar parameter) {
//blok kode untuk methodN
}
}

contoh :

class Siswa
{
    String name;
    String alamat;
    int usia;
}

Data atau variabel yang didefinisikan di dalam kelas sering disebut sebagai instance variable.

Nilai-nilai variabel ini akan dibaca melalui method-method yang tersedia.
Dengan demikian method digunakan sebagai antarmuka (interface) antara pemakai kelas dengan

data yang ada di dalam kelas tersebut.

2. Object

jawab :

Apakah obyek itu? Semua benda yang ada didunia ini dapat kita sebut
sebagai obyek. Guru mata pelajaran RPL kalian adalah suatu obyek.
Buku yang kalian pegang ini juga suatu obyek.
Bahkan mata pelajaran RPL adalah juga sebuah obyek.
Setiap obyek akan mempunyai karakteristik dan tingkah laku tertentu.
Karakteristik disebut attribute dan tingkah laku disebut sebagai behavior atau method.

contoh :

class Siswa
{
    String nama;
    String alamat;
    int usia;
}

public class DataSiswa
{
public static void main(String[] args)
{
    siswa siswa1 = new Siswa();
    siswa1.nama = "Roni";
    siswa1.alamat = "Mergosono Gg. 1 No. 34";
    siswa1.usia = 23;

    System.out.println("Nama :" + siswa1.nama);
    System.out.println("Alamat :" + siswa1.alamat);
    System.out.println("Usia :" + siswa1.usia);
}
}

Kode program di atas harus kita simpan dengan nama file DataSiswa.java,
bukan Siswa.java.

Hal ini karena method main berada pada class DataSiswa.

Pada kode di atas kelas Siswa kita gunakan pada kelas DataSiswa.
Kita membuat obyek aktual dari kelas Siswa dengan cara mengetikkan Siswa
siswa1 = new Siswa();.

Siswa1 adalah nama obyek aktual dari kelas Siswa.
Setelah itu baru kita dapat menggunakan variabel atau data yang ada pada kelas siswa.

3. Instantiate

Instansiasi Class Untuk membuat sebuah objek atau sebuah instance pada sebuah class.
Kita menggunakan operator new.

Sebagai contoh, jika anda ingin membuat instance dari class string,
kita menggunakan kode berikut :

String str2 = new String(“Hello world!”);

4. Instance Variable
jawab :
instance variabel adalah Data atau variabel yang didefinisikan di dalam kelas.

5. Instance Method

jawab :

Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau
dari method lainnya untuk menjalankan fungsi yang spesifik.

Petunjuk Penulisan method :
1. Nama method harus dimulai dengan huruf kecil
2. Nama method harus berupa kata kerja
3. Gunakan dokumentasi sebelum mendeklarasikan sebuah method.

Berikut adalah karakteristik dari method :
1.dapat mengembalikan satu nilai atau tidak sama sekali
2.dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali.
   Parameter bisa juga disebut sebagai argumen dari fungsi
3. setelah method telah selesai dieksekusi, dia akan kembali pada method yang memanggilnya.

contoh program :

class Siswa
{
    String nama;
    String alamat;
    int usia;
    double nilaiMatematika;
    double nilaiBhsInggris;
    double nilaiBhsIndonesia;
    double rerata;

// Menghasilkan nama dari Siswa
public String getNama()
{
    return nama;
}

public void setNama( String temp )
{
    nama = temp;
}

// Menghitung rata – rata nilai
public double getRerata()
{
    rerata = (nilaiMatematika+nilaiBhsInggris+nilaiBhsIndonesia )/3;
    return rerata;
}
}

public class DataSiswa
{
    public static void main(String[] args)
    {
        Siswa siswa1 = new Siswa();
        siswa1.setNama("Rony");
        siswa1.nilaiMatematika = 67;
        siswa1.nilaiBhsInggris = 87;
        siswa1.nilaiBhsIndonesia = 59;

        System.out.println("Nama :" +siswa1.getNama());
        System.out.println("Nilai Matematika :" + siswa1.nilaiMatematika);
        System.out.println("Nilai Bahasa Inggris :" + siswa1.nilaiBhsInggris);
        System.out.println("Nilai Bahasa Indonesia :" + siswa1.nilaiBhsIndonesia);
        System.out.println("Rerata :" + siswa1.getRerata());
    }
}

Contoh Pembuatan method tanpa pengembalian nilai.

Class Bangun
{
    double panjang;
    double lebar;

// Mendefinisikan method void (tidak mengembalikan nilai)
void cetakLuas()
{
    System.out.println(“Luas bangun = “ + (panjang * lebar));
}
}

class pakaiBangun
{
    public static void main(String[] args)
    {
    Bangun b1, b2;

    // instansiasi objek
    b1 = new Bangun();
    b2 = new Bangun();

    // mengisi data untuk objek b1
    b1.panjang = 4;
    b1.lebar = 3;

    // mengisi data untuk objek b2
    b2.panjang = 6;
    b2.lebar = 5;

    // memanggil method cetakLuas() untuk masing-masing objek
    b1.cetakLuas();
    b2.cetakLuas();
    }
}

Contoh Pembuatan method dengan pengembalian nilai.

Class Bangun
{
    double panjang;
    double lebar;

    // Mendefinisikan method yang mengembalikan nilai

    double hitungLuas()
    {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b1, b2;

        // instansiasi objek
        b1 = new Bangun();
        b2 = new Bangun();

        // mengisi data untuk objek b1
        b1.panjang = 4;
        b1.lebar = 3;

        // mengisi data untuk objek b2
        b2.panjang = 6;
        b2.lebar = 5;

        // memanggil method hitungLuas() untuk masing-masing objek
        System.out.println(“Luas b1 = “ + b1.hitungLuas());
        System.out.println(“Luas b2 = “ + b2.hitungLuas());
    }
}

Pada contoh diatas kita membuat metode hitungLuas yang mengembalikan nilai.

Perhatikan deklarasi method tidak lagi menggunakan void
tetapi menggunakan double yang merupakan tipe data nilai yang dikembalikan.

Untuk mengembalikan nilai digunakan kata kunci return.


Contoh Pembuatan method dengan argumen.

class Bangun
{
    double panjang;
    double lebar;
   
    // method dengan argumen
    void isiData(double p, double l)
    {
        panjang = p;
        lebar = l;
    }

    // method yang mengembalikan nilai
    double hitungLuas() {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b;
       
        // instansiasi obyek
        b = new Bangun();

        // memanggil method isiData dan mengisi argumennya
        b.isiData(6,8);

        // memanggil method hitungLuas() untuk objek b
        System.out.println("Luas b = " + b.hitungLuas());
    }
}

Pada contoh diatas kita menambahkan satu method lagi pada class Bangun yaitu isiData.
Karena tidak mengembalikan nilai maka kita menggunakan void.

Method ini mempunyai dua buah argument yaitu p dan l
yang digunakan untuk menampung nilai yang akan kita masukkan.

6. Class Variables atau static member variables

Disamping instance variable, kita juga dapat mendeklarasikan class variable atau variabel
yang dimiliki class sepenuhnya.

Nilai pada variabel ini sama pada semua object di class yang sama.

Anggaplah kita menginginkan jumlah dari siswa yang dimiliki dari seluruh class,
kita dapat mendeklarasikan satu static variable yang akan menampung nilai tersebut.

Kita beri nama variabel tersebut dengan nama studentCount.

Berikut penulisan static variable :

public class StudentRecord
{
    //area deklarasi instance variables
    private static int studentCount;

    //area penulisan kode selanjutnya
}

Kita gunakan keyword : ’static’

untuk mendeklarasikan bahwa variabel tersebut adalah static.

Maka keseluruhan kode yang dibuat terlihat sebagai berikut :

public class StudentRecord
{
    private String name;
    private String address;
    private int age;
    private double mathGrade;
    private double englishGrade;
    private double scienceGrade;
    private double average;
    private static int studentCount;

    //area penulisan kode selanjutnya
}


7. Constructor

Constructor yang merupakan method khusus, merupakan method yang
didefiniskan di dalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
pendefinisian (instansiasi) obyek.

Biasanya constructor berfungsi untuk melakukan inisialisasi nilai terhadap data-data
yang terdapat pada kelas yang bersangkutan.

Nama method constructor harus sama dengan nama kelas itu sendiri.
Constructor tidak memiliki kembalian nilai dan tidak void.

contoh :

class Bangun
{
    double panjang;
    double lebar;
   
    // constructor dengan argumen
    Bangun(double p, double l)
    {
        panjang = p;
        lebar = l;
    }

    // method yang mengembalikan nilai
   
    double hitungLuas()
    {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b;

        // instansiasi obyek
        b = new Bangun();
   
        // memanggil method isiData dan mengisi argumennya
        b.isiData(6,8);

        // memanggil method hitungLuas() untuk objek b
        System.out.println("Luas b = " + b.hitungLuas());
    }
}

Pada kode ini terdapat constructor dengan nama yang sama dengan kelasnya yaitu Bangun.

Constructor seperti halnya method yang lain boleh mempunyai argumen dan boleh tidak.
Pada contoh di atas kita constructor Bangun mempunyai argumen p dan l.

Senin, 07 November 2011

Penjumlahan dua matrik di java

soal selanjutnya...

yang atas kan sudah?
betul,  buat 2 buah matrik yaitu matrik A dan matrik B
kemudian jumlahkan kedua matrik tersebut? jumlah baris dan kolom kalian tentukan
jumlah baris dan kolom matrik A dan B harus sama.
contoh :
matrik A =
      5    7
      2    10
dan

Matrik B =
      6     3
      9     23

hasil penjumlahan:

matrik C =
     11    10
     11     33

kalian kan pernah mengerjakannya di c++
nah tinggal mengkonversi ke java aja kan beres.
yo dah klo ndak ngerti maksud dari soal diatas...kurang lebih jawabannya sebagai berikut...
mau ndak...? dikasih jawabane .....

jawab :

import javax.swing.JOptionPane;
import java.*;

public class MatrikJumlah
{
    public static void main(String [] args)
    {
        String jumlah="";
        int jumlahInt;
       
        jumlah=JOptionPane.showInputDialog("Jumlah Baris dan Kolom : ");
        jumlahInt=Integer.parseInt(jumlah);
       
        String matrikA[][]=new String[jumlahInt][jumlahInt];
        int mA[][]=new int[jumlahInt][jumlahInt];
       
        String matrikB[][]=new String[jumlahInt][jumlahInt];
        int mB[][]=new int[jumlahInt][jumlahInt];
       
        int mC[][]=new int[jumlahInt][jumlahInt];
           
        //isi matrik A
        System.out.println("MAtrik A");
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
            matrikA[i][j]=JOptionPane.showInputDialog("Matrik A["+i+","+j+"] = ");
            mA[i][j]=Integer.parseInt(matrikA[i][j]);
            System.out.print(mA[i][j]+"\t");
            }
            System.out.println("");
        }
           
        //isi matrik B
        System.out.println("\nMAtrik B");
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
            matrikB[i][j]=JOptionPane.showInputDialog("Matrik B["+i+","+j+"] = ");
            mB[i][j]=Integer.parseInt(matrikB[i][j]);
            System.out.print(mB[i][j]+"\t");
            }
            System.out.println("");
        }
           
        //penjumlahan matrik A dan matrik B
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
                mC[i][j]=mA[i][j]+mB[i][j];
            }
        }
           
        //hasil
        System.out.println("\nMatrik A + Matrik B = ");
        for(int i=0;i<jumlahInt;i++)
        {
            for(int j=0;j<jumlahInt;j++)
            {
                System.out.print(mC[i][j]+"\t");
            }
                System.out.println("");
        }   
    }
}

Contoh soal Array dua Dimensi

// buat array dua dimensi dengan inputan :
    a. jumlah data ?
    b. nama ?
    c. nilai1 ?
    d. nilai2 ?

dengan outputan sbb :
(auto)                    (auto)    (auto)
No      Nama         Nilai1     Nilai2     Total     Rata2
=====================================================
1    alex                  80          70          150    75
2    buyung             65          70          135    67,5
3    candra             50           50         100    50
4    jakram             80          90          170    85
5    nia                   65          80           145    72,5   

silahkan dikerjakan.....
jawab :

import javax.swing.JOptionPane;
import java.*;

public class ContohArray2
{
    public static void main(String [] args)
    {
        String juml="";
        int jumlah;
       
        juml=JOptionPane.showInputDialog("Jumlah Data : ");
        jumlah=Integer.parseInt(juml);
       
        int no[][]=new int [jumlah][6];
        String namaS[][]=new String [jumlah][6];
        String nilai1S[][]=new String [jumlah][6];
        String nilai2S[][]=new String [jumlah][6];
        double nilai1[][]=new double [jumlah][6];
        double nilai2[][]=new double [jumlah][6];
        double total[][]=new double [jumlah][6];
        double rata[][]=new double [jumlah][6];
       
       
        for(int i=0;i<jumlah;i++)
        {
                no[i][0]=(i+1);
                namaS[i][1]=JOptionPane.showInputDialog("Nama  Siswa ke -"+(i+1)+" : ");
                nilai1S[i][2]=JOptionPane.showInputDialog("Nilai 1 Siswa ke -"+(i+1)+" : ");
                nilai2S[i][3]=JOptionPane.showInputDialog("Nilai 2 Siswa ke -"+(i+1)+" : ");
                nilai1[i][2]=Double.parseDouble(nilai1S[i][2]);
                nilai2[i][3]=Double.parseDouble(nilai2S[i][3]);
                total[i][4]=(nilai1[i][2])+(nilai2[i][3]);
                rata[i][5]=(total[i][4])/2;
        }
       
        System.out.println("No\tNama\tNilai1\tNilai2\tTotal\tRata2");
        System.out.println("======================================");
       
        for(int i=0;i<jumlah;i++)
        {
                System.out.print(i+1);
                System.out.print("\t");
                System.out.print(namaS[i][1]);
                System.out.print("\t");
                System.out.print(nilai1[i][2]);
                System.out.print("\t");
                System.out.print(nilai2[i][3]);
                System.out.print("\t");
                System.out.print(total[i][4]);
                System.out.print("\t");
                System.out.print(rata[i][5]);
                System.out.println("");
        }
      }
}

Sabtu, 05 November 2011

Array menampilkan nilai max, min, rata dari sejumlah siswa

Buat program untuk menampilkan nilai siswa, dimana banyak nya siswa tidak                  
ditentukan, kemudian :
    a. Tampilkan data dari yang awal hingga akhir
    b. Hitung Jumlah nilai seluruh siswa
    c. Hitung rata-rata
    d. Nilai Maksimum
    e. Nilai Minimum

jawab :

import java.util.Scanner;

public class NilaiArray
{
   public static void main(String [] args)
   {
   
    int i,x;
    float total=0;
    float rata;
    Scanner scan=new Scanner(System.in);
    int [] nilai = {70,80,67,90,100};
   
    for (i=0;i<5;i++)
    {
        System.out.println("Nilai ke-"+(i+1)+" = "+nilai[i]);
    }
   
    java.util.Arrays.sort(nilai);
    System.out.println("Nilai urut dari yang terkecil ");
    for (i=0;i<5;i++)
    {
        System.out.print(nilai[i]+" ");
    }
   
    // 100 90 80 70 67

    System.out.println("\nNilai urut dari yang terbesar");
    for (i=(5-1);i>=0;i--)
    {
        System.out.print(nilai[i]+" ");
    }

    for (i=0;i<5;i++)
    {
        total=total+nilai[i];
    }
    System.out.println("\nTotal= "+total);
   
    rata=total/5;
    System.out.println("\n Rata-rata = "+rata);
   
    System.out.println("\n Max= "+nilai[4]);
    System.out.println("\n Min="+nilai[0]);
/*
    x=nilai[0]; // ==> 70
    for (i=1;i<5;i++) // ==> 80
    {
        if(nilai[i]>x)
        x=nilai[i];
    }
    System.out.print("\nNilai terbesar = "+x);
    System.out.println("\n");
*/
   
   }
}

Array mencari siswa yang tertua dan siswa yang paling muda

Buat program untuk mencari siapa siswa yang tertua dan siswa yang paling muda,
    dimana data yang dimasukkan belum ditentukan banyaknya.

misal :
masukkan jumlah siswa = 3
umur siswa ke 1 = 18
umur siswa ke 2 = 45
umur siswa ke 3 = 81

siswa yang paling muda berumur 18 tahun
siswa yang paling tua berumur 81 tahun

jawab :
import java.util.Scanner;

public class Siswa
{
    public static void main(String [] args)
    {
    int total=0,x;
    float rata;

    Scanner scan=new Scanner(System.in) ;
    System.out.print("Masukkan jumlah siswa= ");
    int siswa=scan.nextInt();

    int arraySiswa[]=new int[siswa];
    for (int i=1;i<siswa;i++)
    {
        System.out.print("Umur Siswa ke-"+i+" = ");
        arraySiswa[i]=scan.nextInt();
    }

    //tertua dan termuda

    x=arraySiswa[0];
    for (int indeks=1;indeks<siswa;indeks++)
    {
        if(arraySiswa[indeks]>x)
        x=arraySiswa[indeks];
    }
    System.out.print("\nUmur siswa yang paling tua = "+x);
    System.out.println("\n");

    x=arraySiswa[0];
    for (int indeks=1;indeks<siswa;indeks++)
    {
        if(arraySiswa[indeks]<x)
        x=arraySiswa[indeks];
    }
    System.out.print("\nUmur siswa yang paling muda = "+x);
    System.out.println("\n");
   

    }
}

Array menampilkan nilai dari sejumlah siswa dimana jumlah siswa

Buat program untuk menampilkan nilai dari sejumlah siswa dimana jumlah siswa tergantung dari masukkan user,dan semua nilai diinputkan, kemudian cari :
    a. Jumlah
    b. rata-rata
jawab :
import java.util.Scanner;

public class Rata
{
    public static void main(String [] args)
    {
    int total=0;
    float rata;

    Scanner scan=new Scanner(System.in) ;
    System.out.print("Berapa kali memasukkan nilai = ");
    int nilai=scan.nextInt();

    int arrayNilai[]=new int[nilai];
    for (int i=0;i<nilai;i++)
    {
        System.out.print("Nilai ke-"+i+" = ");
        arrayNilai[i]=scan.nextInt();
    }

    for (int j=0;j<nilai;j++)
    {
        total=total+arrayNilai[j];
    }
    rata=total/nilai;
    System.out.print("Total Nilai = "+total);
    System.out.print("\nRata-rata Nilai = "+rata);
    }
}

ARRAY menampilkan data nilai siswa

Buat program untuk menampilkan data nilai siswa!.
    dimana nilai[5]={70,80,67,90,100}

jawab :

import java.util.Scanner;

public class NilaiArray
{
   public static void main(String [] args)
   {
    Scanner scan=new Scanner(System.in);
    int [] nilai = {70,80,67,90,100};
   
    for (int i=0;i<5;i++)
    {
        System.out.println("Nilai ke-"+i+" = "+nilai[i]);
    }
   
   }
}

SOAL ARRAY SATU DIMENSI

buatlah dua buah array (A dan B) dengan jumlah anggota array (n)
ditentukan oleh user, kedua array tersebut harus memiliki jumlah
anggota yang sama. kemudian lakukan operasi-operasi berikut, dan
simpan hasilnya dalam sebuah array yang laen.
    a. A+B
    b. A*B
    c. A/B
    d. Cari nilai yang terbesar dan terkecil dari A dan B
    e. Balik urutan nilai A, dan jumlahkan dengan array B

jawab :

import java.util.Scanner;

public class PenjumlahanDuaArray
{
public static void main (String[]args)
{
    int a, b,x,w;

    Scanner scan=new Scanner(System.in);
    System.out.print("Masukkan jumlah array A = ");
    a=scan.nextInt();   
   
    System.out.print("Masukkan jumlah array B = ");
    b=scan.nextInt();   
    System.out.println("\n");

    // INPUT

    int arrayA[]=new int[a];
    for (int i=0;i<a;i++)
    {
        System.out.print("Masukkan nilai Array A ke-"+i+" =");
        arrayA[i]=scan.nextInt();   
    }
   
   
    System.out.println("\n");
    int arrayB[]=new int[b];
    for (int k=0;k<a;k++)
    {
        System.out.print("Masukkan nilai Array B ke-"+k+" =");
        arrayB[k]=scan.nextInt();   
    }
   
    //Penjumlahan

    int arrayC[]=new int[a];
    for (int m=0;m<arrayA.length;m++)
    {
        arrayC[m]=arrayA[m]+arrayB[m];
    }

    //Perkalian

    int arrayD[]=new int[a];
    for (int m=0;m<arrayA.length;m++)
    {
        arrayD[m]=arrayA[m]*arrayB[m];
    }

    //Pembagian

    int arrayE[]=new int[a];
    for (int m=0;m<arrayA.length;m++)
    {
        arrayE[m]=arrayA[m]/arrayB[m];
    }

    // OUTPUT

    System.out.println("\n");
    System.out.print("Array A = [ ");
    for (int j=0;j<a;j++)
    {
        System.out.print(arrayA[j]+" ");
    }
    System.out.print("]");
   
    System.out.println("\n");
    System.out.print("Array B = [ ");
    for (int l=0;l<a;l++)
    {
        System.out.print(arrayB[l]+" ");
    }
    System.out.print("]");
   
   
    System.out.println("\n");
    System.out.print("Hasil Penjumlahan = [ ");
    for (int n=0;n<arrayA.length;n++)
    {
        System.out.print(arrayC[n]+" ");
    }
    System.out.print("]");

    System.out.println("\n");
    System.out.print("Hasil Perkalian = [ ");
    for (int n=0;n<arrayA.length;n++)
    {
        System.out.print(arrayD[n]+" ");
    }
    System.out.print("]");

    System.out.println("\n");
    System.out.print("Hasil Pembagian = [ ");
    for (int n=0;n<arrayA.length;n++)
    {
        System.out.print(arrayE[n]+" ");
    }
    System.out.print("]");
    System.out.println("\n");

    //terbesar dan terkecil
    x=arrayA[0];
    for (int indeks=1;indeks<a;indeks++)
    {
        if(arrayA[indeks]>x)
        x=arrayA[indeks];
    }
    System.out.print("\nNilai terbesar dari Array A = "+x);
    System.out.println("\n");

    x=arrayA[0];
    for (int indeks=1;indeks<a;indeks++)
    {
        if(arrayA[indeks]<x)
        x=arrayA[indeks];
    }
    System.out.print("\nNilai terkecil dari Array A = "+x);
    System.out.println("\n");
   
    x=arrayB[0];
    for (int indeks=1;indeks<b;indeks++)
    {
        if(arrayB[indeks]>x)
        x=arrayB[indeks];
    }
    System.out.print("\nNilai terbesar dari Array B = "+x);
    System.out.println("\n");

    x=arrayB[0];
    for (int indeks=1;indeks<b;indeks++)
    {
        if(arrayB[indeks]<x)
        x=arrayB[indeks];
    }
    System.out.print("\nNilai terkecil dari Array B = "+x);
    System.out.println("\n");

    //membalik urutan array A
   
    int arrayBalikA[]=new int[a];
   
    for (int d=a-1;d>=0;d--)
    {
        arrayBalikA[a-1-d]=arrayA[d];   
    }   

    int arrayJmlBalikA[]=new int[a];
    for (int k=0;k<a;k++)
    {
        arrayJmlBalikA[k]=arrayBalikA[k]+arrayB[k];
    }

    System.out.println("\n");
    System.out.print("Hasil array A dibalik urutannya = [ ");
    for (int n=0;n<a;n++)
    {
        System.out.print(arrayBalikA[n]+" ");
    }
    System.out.print("]");

    System.out.println("\n");
    System.out.print("Hasil array A dibalik + array B = [ ");
    for (int n=0;n<a;n++)
    {
        System.out.print(arrayJmlBalikA[n]+" ");
    }
    System.out.print("]");
    System.out.println("\n");
   
}
}

soal ulangan java kode B

Buat program di java :

ada suatu kondisi dimana pada tempat fotokopi "MANDIRI Fotocopy"
apabila dia pelanggan pada tempat itu maka berapa lembar pun
banyaknya dia fotokopi di dapat harga Rp.75,-.

tapi jika dia bukan pelanggan maka :
a. jika dia fotokopi kurang dari 100 lembar maka dapet harga Rp.150,-
b. jika fotokopi sebanyak 100-200 lembar dapet harga Rp.100,-
c. tapi jika fotokopi lebih dari 200 lembar dia dapet harga Rp.80,-

contoh keluaran :

Apakah pelanggan ? = ...
Banyak fotokopi = ...

Harga = otomatis keluar
Bayar = ...(didapat dari jumlah lembar fotokopi x harga)

jawab :
//input dengan scanner type data string

import java.util.Scanner;

public class FotoKopi
{
    public static void main(String[] args)
    {
    String lagi="";
    String pelanggan="";
    do {
        Scanner sc = new Scanner (System.in);

        System.out.print("Apakah Pelanggan (y/t) = ");
        pelanggan = sc.nextLine ();
        if (pelanggan.equals("Y")||pelanggan.equals("y"))
        {
            System.out.print("Jumlah Fotokopi = ");
            int jumlah= sc.nextInt();
            int bayar = 75*jumlah;
            System.out.print("\nJumlah Fotokopi = "+jumlah);
            System.out.print("\nBayar = "+bayar);
        }
        else
        {
            System.out.print("\nJumlah Fotokopi = ");
            int jumlah= sc.nextInt();
            if (jumlah>=200)
            {
                int bayar = 85*jumlah;
                System.out.print("\nJumlah Fotokopi = "+jumlah);
                System.out.print("\nBayar = "+bayar);
            }
            else if (jumlah>=100)
            {
                int bayar = 100*jumlah;
                System.out.print("\nJumlah Fotokopi = "+jumlah);
                System.out.print("\nBayar = "+bayar);
            }
            else
            {
                int bayar = 150*jumlah;
                System.out.print("\nJumlah Fotokopi = "+jumlah);
                System.out.print("\nBayar = "+bayar);
            }   
        }
   
        System.out.print("\nCoba lagi(y/t) = ");
        lagi = sc.next();

          } while (lagi.equals("Y")||lagi.equals("y")) ;
   
    }
}

soal ulangan java kode A

Buat program Jika Laki-laki Tetap didalam kelas
       dan absen Genap mengerjakan soal A
       jika absen Ganjil kerjakan soal B,
        namun jika perempuan keluar kelas !.
       jika bukan laki2 dan bukan perempuan maka pulang.
    Program dilakukan perulangan

jawab :

import java.util.Scanner;

public class SoalAdanSoalB
{
public static void main(String [] args)
{
String Ulang="";
do{
    Scanner Input=new Scanner(System.in);
    System.out.print("Masukkan Jenis Kelamin(L/P) = ");
    String Kelamin=Input.next();
    if (Kelamin.equals("L") || Kelamin.equals("l"))
    {
        System.out.println("Tetap Didalam Kelas.");
        System.out.print("Masukkan Nomor Absen = ");
        int Absen=Input.nextInt();
        if (Absen%2==0)
        {           
            System.out.println("Kerjakan Soal A");
        }
        else
            System.out.println("Kerjakan Soal B");
    }
    else if (Kelamin.equals("P") || Kelamin.equals("p"))
        System.out.println("Keluar Kelas");
    else   
        System.out.println("Pulang");
   
System.out.print("Ulang (Y/T) = ");
Ulang=Input.next();
}while(Ulang.equals("Y")||Ulang.equals("y"));
}
}

input dari keyboard dengan fungsi Scanner

mendapat input dari keyboard dengan fungsi Scanner:
bagaimana caranya ?

begini :

import java.util.Scanner;

public class Penjumlahan {
public static void main (String[] args){
    Scanner x = new Scanner(System.in);

    System.out.print("Masukkan Nilai 1 = ");
    Int a=x.nextInt();

    System.out.print("Masukkan Nilai 2 = ");
    Int b=x.nextInt();

    int Jumlah = a+b;
   
    System.out.println("Hasil Penjumlahan = "+Jumlah);
   
   
}
}

TUGAS BASIS DATA

TUGAS BASIS DATA SOAL PRAKTIK BASIS DATA (TENTANG MENGGUNAKAN SQL DAN KLASIFIKASINYA) Sebuah sekolah akan membuat syste...