analisis program java
DESCRIPTION
dfdfdfdfdsfdsfdTRANSCRIPT
1. Program Pengertian Data
package projectlatih100java; // kontainer untuk mengelompokan kelas-kelas
/**
*
* @author Pradana
*/
class kendaraan { // kelas kendaraan
String tahunpro; // data tahunpro bertipe String
double harga; // data harga bertipe double
static String bahanbkr="Bensin"; // data bahanbkr berisi Bensin bertipe String
kendaraan() // default konstruktor
{
}
kendaraan(String thnpro, double hrg) { /* mendefinisikan konstruktor untuk kelas kendaraan dengan parameter */
this.tahunpro = thnpro; // menunjuk ke data tahunpro yg terdapat dalam kelas kendaraan
this.harga = hrg; // menunjuk ke data harga yg terdapat dalam kelas kendaraan
}
}
public class Main { // kelas Main
public static void main(String[] args) { // method main
kendaraan sedan = new kendaraan("1990",150000000.00D); /* membuat objek kendaraan dengan nama sedan atau instans dari kelas kendaraan*/
kendaraan angkot = new kendaraan("2004",100000000.00D); /* membuat objek kendaraan dengan nama angkot atau instans dari kelas kendaraan*/
System.out.println("Tahun Produksi = "+sedan.tahunpro); /* menampilkan data tahunpro pada objek kendaraan dengan nama sedan*/
UNIVERSITAS NEGERI YOGYAKARTAANALISIS PROGRAM JAVA
NAMA: PRADANA SETIALANA
FAKULTAS TEKNIK NIM: 10520244004
PROGRAM: PENDIDIKAN TEKNIK INFORMATIKA
DOSEN PENGAMPU:YUNIAR INDRIHAPSARI
SEMESTER: 2TAHUN: 2011
System.out.println("Harga awal = "+sedan.harga); /* menampilkan data harga pada objek kendaraan dengan nama sedan*/
System.out.println("Bahan Bakar = "+kendaraan.bahanbkr); /* menampilkan data bahan bakar pada objek kendaraan */
System.out.println("\n");
System.out.println("Tahun Produksi = "+angkot.tahunpro); /* menampilkan data tahun pada objek kendaraan dengan nama angkot */
System.out.println("Harga awal = "+angkot.harga); /*menampilkan data harga pada objek kendaraan bernama angkot */
System.out.println("Bahan Bakar = "+kendaraan.bahanbkr); /* menampilkan data bahanbkr pada objek kendaraan */
}
}
/* Analisis:
* Data adalah suatu variabel yang terdapat pada objek disebut juga instans variabel
* seperti diatas, tahunpro, harga dan bahanbkr merupakan variabel yang dimiliki kendaraan
* isi Data diinputkan pada waktu membuat instans dari kelas kendaraan dengan menggunakan konstruktor
*/
2. Program Memanggil Method Kelas Super
package demosuperjava; // kontainer untuk mengelompokan kelas-kelas
/**
*
* @author Pradana
*/
public class Main { // kelas Main
/*Main Method*/
public static void main(String[] args) {
System.out.println("\nDemo 'super' PADA INHERITANCE");
System.out.println("—————————– \n");
// Membuat instans dari kelas anak dan memanggil
// method yang dimilikinya.
KelasAnak kA = new KelasAnak(); // membuat instanisiasi terhadap kelas KelasAnak
kA.methodAnak(); // memanggil method methodAnak pada kelas KelasAnak
}
}
/**Kelas Anak*/
class KelasAnak extends KelasInduk { /* membuat kelas turunan (subclass) KelasAnak dari kelas KelasInduk */
// Konstruktor kelas Anak memanggil konstruktor kelas Induk
public KelasAnak(){
super(); // memanggil konstruktor kelas Induk
}
// Method yang memanggil methodInduk dari kelas induknya
// dengan menggunakan keyword super.
public void methodAnak(){
super.methodInduk(); // memanggil methodInduk dari kelas Induknya
}
}
/**Kelas Induk*/
class KelasInduk {
// Konstruktor kelas Induk
public KelasInduk(){
System.out.println("Ini adalah konstruktor kelas Induk\n");
}
// Method kelas Induk
public void methodInduk(){
System.out.println("Method ini dimiliki oleh kelas Induk\n");
}
}
/* Analisis:
* super() atau super(parameter) digunakan untuk memanggil method kelas induk
* seperti pada KelasAnak() untuk dapat memanggil konstrutor KelasInduk dengan menggunakan super()
* sedangkan untuk memanggil method pada KelasInduk dengan menggunakan super.methodInduk
* jadi untuk memanggil konstrukor dan method pada KelasInduk pada KelasAnak dengan menggunakan super
*/
3. Program dengan Enkapsulasi
package demoenkapsulation; // kontainer untuk mengelompokan kelas-kelas
/**
*
* @author Pradana
*/
import java.text.DecimalFormat; /* mengimpor kelas DecimalFormat pada direktori java subdirektori text*/
public class Main {
/** Main Method */
public static void main(String[] args) {
// mengeset tampilan hasil menjadi dua digit desimal
DecimalFormat digitPresisi = new DecimalFormat("0.00"); /* membuat instans pada kelas DecimalFormat */
System.out.println("\nDEMO ENKAPSULASI");
System.out.println("--------------\n");
// membuat instans dari kelas hitungGaji untuk suatu
// pegawai dan memanggil method-methodnya
HitungGaji tony = new HitungGaji(); // membuat instans dari kelas HitungGaji dengan nama tony
tony.setGaji(2500000); // mengisikan nilai ke method setGaji yang dimiliki objek tony
tony.hitungGaji(); // memanggil method hitungGaji pada objek tony
System.out.println("Information Gaji Pegawai");
System.out.println("Besar Gaji Kotor :"+digitPresisi.format(tony.getGajiKotor()));
System.out.println("Besar Gaji yang dibawa pulang :"+digitPresisi.format(tony.getGajiBersih()));
// untuk dapat mengakses GajiKotor maka menggunakan method getGajiKotor
// karena GajiKotor dengan tingkat akses private
// begitu juga untuk GajiBersih
}
}
class HitungGaji { // kelas HitungGaji
private double gajisetelahPajak;
//Mendeklarasikan variabel-variabel internal kelas HitungGaji.
//Variabel potongan menyatakan dana untuk asuransi Kesehatan
//(Askes), iuran koperasi, cicilan kendaraan dan sebagainya.
//hanya variabel gajiKotor dan gajiBersih yang dapat diakses
//oleh "lingkungan luar"
private double gajiKotor, gajiSetelahPajak;
private double gajiBersih;
private double potongan = 75000.00;
//Method untuk mengeset variabel internal gajiKotor
public void setGaji(double gaji){
gajiKotor = gaji;
}
//Method untuk menghitung gaji bersih
public void hitungGaji(){
gajiSetelahPajak = gajiKotor-(0.2*gajiKotor);
gajiBersih = gajiSetelahPajak-potongan;
}
//Method yang mengembalikan gaji kotor
//untuk dapat mengakses GajiKotor maka menggunakan get
public double getGajiKotor(){
return gajiKotor;
}
//Method yang mengembalikan besar gaji bersih
//untuk dapat mengakses Gajibersih maka menggunakan get
public double getGajiBersih(){
return gajiBersih;
}
}
/* analisis:
* enkapsulasi(pembungkusan) merupakan cara penyembunyian informasi.
* Pada program diatas, akses private hanya dapat diakses oleh oleh kelas yang bersangkutan
* untuk dapat mengakses data dengan tingkat akses private dengan menggunakan method get
* method get digunakan untuk mendapatkan nilai dari data tersebut
*/
4. Program Membuat Kelas
package programlatihan127java; // kontainer untuk mengelompokan kelas-kelas
/**
*
* @author Pradana
*/
// superclass atau kelas induk
class orang { // kelas orang
public String nama; // data nama bertipe String dengan akses public
public String alt; // data alt bertipe String dengan akses public
public String kodeprof; // data kodeprof bertipe String dengan akses public
private String ket="termasuk makhluk hidup"; /* data ket yang sudah di inputkan bertipe String dengan akses private */
orang(){ // konstruktor orang
System.out.println("Konstruktor orang");
}
orang (String nm, String al, String kp) // konstruktor orang dengan parameter
{
this.nama=nm; // menunjuk ke data nama yg terdapat dalam kelas orang
this.alt=al; // menunjuk ke data alt yg terdapat dalam kelas orang
this.kodeprof=kp; // menunjuk ke data kodeprof yg terdapat dalam kelas orang
}
}
// menggunakan keyword extends untuk membuat subclass
class dosen extends orang{ // membuat kelas turunan (subclass) dosen dari kelas orang
public String nid; // data nid bertipe String, akses public
public String spesialis; // data spesialis bertipe String, akses public
public String kodeprof; // data kodeprof bertipe String, akses public
dosen() // konstruktor dosen
{
System.out.println("Konstruktor Dosen");
}
dosen(String nd, String s1, String kp){ // konstruktor dosen dengan prameter
this.nid=nd; // menunjuk ke data nid yg terdapat dalam kelas dosen
this.spesialis=s1; // menunjuk ke data spesialis yg terdapat dalam kelas dosen
this.kodeprof=kp; // menunjuk ke data kodeprof yg terdapat dalam kelas dosen
}
}
public class Main{ // kelas Main
public static void main(String [] args){ // method main
dosen orang1=new dosen("119","katarak","02"); /* membuat instans dari kelas dosen dan mengeset ke dalam methodnya */
orang1.nama="Heri"; // mengisikan nama ke dalam kelas dosen
System.out.println("NID Dosen="+orang1.nid); // menampilkan data nid pada objek orang1
System.out.println("Nama Dosen="+orang1.nama); /*menampilkan data nama pada objek orang1*/
System.out.println("keahlian Dosen="+orang1.spesialis); /* menampilkan data spesialis pada objek orang1*/
System.out.println("Kode Prosesi="+orang1.kodeprof); /* menampilkan data kodeprof pada objek orang1*/
}
}
/* Analisis:
* dengan menggunakan keyword extends maka dapat dibuat kelas turunan (subclass)
* kelas turunan akan mewarisi sifat-sifat dari kelas induk
*/
5. Program dengan Polymorphise
package programlatih128java; // kontainer untuk mengelompokan kelas-kelas
/**
*
* @author Pradana
*/
import java.util.Random; // mengimport kelas Random pada direktori java subdirektori util
class makhluk { // kelas makhluk
private String jenis; // variabel jenis bertipe String dengan akses private
public makhluk(String jenis) { // konstruktor dengan parameter
this.jenis=jenis; // menunjuk ke jenis pada yang terdapat pada kelas makhluk
}
// melakukan override pada method toString
// override adalah method dengan nama dan parameter yang ada pada setiap kelas
public String toString() { // method toString untuk menyambung string dengan suatu objek
return "ini adalah "+jenis;
}
// melakukan override pada method bernapas
public void bernapas() // method bernapas tidak mengembalikan nilai
{
}
}
class manusia extends makhluk { // membuat kelas turunan manusia dari kelas makhluk
public String jenis; // variabel jenis bertipe String dengan akses public
public manusia(String jenis) { // konstrutor dengan parameter
super("Manusia"); // memanggil konstrutor induk
this.jenis = jenis;
}
// melakukan override pada method bernapas
public void bernapas() { // method bernapas
System.out.println("Bernapas dengan paru-paru");
}
// melakukan override pada method toString
public String toString() { // untuk menyambungkan string dengan objek
return super.toString()+"\nDari jenis "+jenis; // memanggil method pada kelas induk
}
}
class cacing extends makhluk { // kelas turunan cacing dari kelas makhluk
public String jenis; // variabel jenis bertipe String dengan akses public
public cacing (String jenis) { // konstruktor dengan parameter
super("cacing"); // memanggil konstruktor induk
this.jenis=jenis;
}
// melakukan override pada method bernapas
public void bernapas() { // method bernapas
System.out.println("Bernapas dengan kulit");
}
// melakukan override pada method toString
public String toString() // untuk menyambung string dengan objek
{
return super.toString()+"\nDari jenis "+jenis; // memanggil method pada kelas induk
}
}
class ikan extends makhluk { // kelas turunan ikan dari kelas makhluk
public String jenis; // data jenis bertipe String dengan akses public
public ikan(String jenis) { // konstruktor dengan parameter
super("ikan"); // memanggil konstruktor induk
this.jenis=jenis;
}
// melakukan override pada method bernapas
public void bernapas() // method bernapas
{
System.out.println("Bernapas dengan ingsang");
}
// melakukan override pada method toString
public String toString() { // untuk menyamung string dengan objek
return super.toString()+"\nDari jenis "+jenis;
}
}
public class Main { // kelas main
public static void main(String[] args) { // method main
makhluk[] makhluknya={
new cacing("Tanah"),
new ikan("haruan"),
new manusia("Asia") }; // mengisikan data pada array makhluknya
makhluk pilihan;
Random pilih=new Random(); // membuat instans pada kelas random yang telah di import
for(int i=0;i<2;i++) { // melakukan pengulangan sebanyak 2x
pilihan=makhluknya[pilih.nextInt(makhluknya.length)];
/* memasukan data pada pilihan
* berdasarkan posisi array makhluknya
* posisi array makhluknya di Random dengan objek posisi
* output dari pilihan akan tergantung pada objek yg diacu
*/
System.out.println("\nPilihan Anda:\n"+pilihan);
// method yang dipanggil sama
// tetapi hasilnya berbeda-beda sesuai dengan tipe objek yang diacu
pilihan.bernapas(); // memanggil method bernapas pada objek pilihan
}
}
}
/* analisis:
*
* method dengan nama dan parameter yabg sama dalam setiap kelas disebut override
* override digunakan untuk mendukung polmorfise
* Pada main method terdapat pemanggilan method bernapas
* tetapi yang dihasilkan berbeda-beda sesuai dengan objek yang diacu
* ketika objek yang diacu adalah Tanah
* maka outputnya akan menghasilkan "Ini adalah cacing, dari jenis tanah, bernapas dengan kulit"
* begitu juga jika objek yang diacu ikan
* maka outputnya: "ini adalah ikan, dari jenis haruan, bernapas dengan ingsang
* Jadi Polimorfisme adalah kemampuan objek untuk mengungkapkan banyak hal melalui satu cara yang sama
*/