Kamis, 19 April 2012

Inheritance dan Polymorphism pada Java

Inheritance pada Java
Salah satu bagian penting dalam object oriented programming adalah inheritance / pewarisan. Inheritance adalah proses pewarisan data dan method dari suatu class kepada class yang lain. Secara default inheritance bersifat menyeluruh sehingga semua data dan method diturunkan kepada class yang baru. Kelas yang mewariskan disebut dengan super class sedangkan class turunan disebut dengan sub class.
Keuntungan dari inheritance
• Bersifat reusable. Bayangkan bila anda perlu membuat beberapa class yang mempunyai sifat dasar dan basis class yang sama, dan pada masing masing class tersebut ditambahkan data dan method yang unique. Tanpa inheritance anda harus menyalin semua data dan method dari suatu class. Hal tersebut mungkin masih bisa dilakukan jika basis class anda definisikan sendiri. Namun bagaiman jika anda ingin menggunakan method dari class standard API. Saya rasa itu tidak mungkin.
• Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama. Jika anda ingin melakukan modifikasi suatu data atau method pada semua sub class anda tidak perlu melakukan perubahan pada masing masing sub class. Modifikasi cukup dilakukan pada super class.
Dalam inheritance dikenal dengan istilah overriding. Overidding adalah kemampuan sub class untuk melakukan modifikasi data dan method dari super class. Sebelum anda melakukan overidding terhadap method atau data dari class induk, anda harus memperhatikan aksesibelitas dari data dan method dari super class.[ overidding hanya bisa dilakukan untuk data dan method yang memiliki modifier default, public dan protected.]
Note.
  • Untuk melakukan inheritance digunakan keyword extends
  • Dalam java hanya mendukung single inheritance
  • Data dengan modifier private tidak diwariskan ke sub class
  • Constructor super class tidak diwariskan ke sub class
contoh program :
import java.util.Scanner;

class ling{
Scanner in = new Scanner(System.in);
int r = in.nextInt();
    }

    class ling1 extends ling{
    double jari1;
    }
        class luas1 extends ling1{
            public void Luas(){
            jari1 = super.r;
            double luas = 3.14*jari1*jari1;
            System.out.format("Luas Lingkaran 1 = %.2f", luas);
            }
            }
        class keliling1 extends ling1{
            public void Keliling(){
            jari1 = super.r;
            double keliling = 3.14*2*jari1;
            System.out.format("Keliling Lingkaran 1 = %.2f", keliling);
            }
            }

    class ling2 extends ling{
    double jari2;
    }
        class luas2 extends ling2{
            public void Luas(){
            jari2 = super.r;
            double luas = 3.14*jari2*jari2;
            System.out.format("Luas Lingkaran 2 = %.2f", luas);
            }
            }
        class keliling2 extends ling2{
            public void Keliling(){
            jari2 = super.r;
            double keliling = 3.14*2*jari2;
            System.out.format("Keliling Lingkaran 2 = %.2f", keliling);
            }
            }

public class lingkar{
    public static void main ( String[]args ) {
    System.out.println("Masukkan jari-jari lingkaran");
    luas1 a=new luas1();
    keliling1 b=new keliling1();
    luas2 c=new luas2();
    keliling2 d=new keliling2();
  
    a.Luas();
        System.out.println();
    b.Keliling();
        System.out.println();
    c.Luas();
        System.out.println();
    d.Keliling();
    }
    }

output program : 


Polymorphism pada Java
Setelah inheritance, hal yang penting bagi object oriented programming adalah polymorphism. Secara leksikal polymorphism merupakan sesuatu yang mempunyai banyak bentuk. Dalam pemrograman polymorphism merupakan dapat diartikan suatu modul yang mempunyai nama sama, tapi memiliki behavior yang berbeda sehingga listing code implementasinya berbeda. Dan dalam bahasa yang lain adalah kemampuan dari reference untuk mengubah sifat sesuai dengan object yang dijadiin acuan. Polymorphism menyediakan menyediakan multiobject dari sub class yang berbeda diperlakukan sebagai object tunggal dari super class.

contoh program :
/*disimpan nama Hewan.java*/
class Hewan {
           
            String nama, jenis, bersuara;
     Hewan(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        this.nama=nama;
                        this.jenis=jenis;
                        this.bersuara=bersuara;
    }
    public String toString(){
            return "Ini adalah "+jenis+"\nNamanya "+nama+"\n"+bersuara;
    }
    public void bersuara(){                  
    }
}

/*disimpan nama Polimorfisme.java*/
import java.util.*;
class Polimorfisme{
    public static void main(String args[]){
        Hewan[] hewannya = {
          new Anjing("Broni", "Herder", "Hug Hug Hug......"),
          new Kucing("Kiti", "Persia", "Meong.. Meong... "),
          new Ayam("Toki", "Buras", "kuk kruyu. ")
        };
        Hewan pilihHewan;
       Random pilih = new Random();
        for (int i = 0; i<5 ; i++){
            pilihHewan = hewannya[pilih.nextInt(hewannya.length)];
           System.out.println("\nPilihan Anda:\n" + pilihHewan);
       
           
        }
    }
}

/*disimpan nama Ayam.java*/
class Ayam extends Hewan{
   
    private String nama,jenis,bersuara;
    Ayam(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
            super(nama, jenis, bersuara);
    }
    public void ShowAyam(){
           
            System.out.println("Nama Ayam : "+nama);
            System.out.println("Jenis Ayam : "+jenis);
           
           
//sintaks menampilkan nama dan jenis hewan

    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("kuk kruyu. ");
    }

}

/*disimpan nama Kucing.java*/
class Kucing extends Hewan
{
    private String nama,jenis,bersuara;
    Kucing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        super(nama, jenis, bersuara);
    }
    public void ShowKucing(){
           
            System.out.println("Nama Kucig : "+nama);
            System.out.println("Jenis Kucing : "+jenis);
           
//sintaks menampilkan nama dan jenis hewan
    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("Meong.. Meong... ");
    }
}

/*disimpan nama Anjing.java*/
class Anjing extends Hewan{
   
    private String nama,jenis,bersuara;
   
   
    Anjing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
                        super(nama, jenis, bersuara);
    }
    public void ShowAnjing(){
           
            System.out.println("Nama Anjing : "+nama);
            System.out.println("Jenis Anjing : "+jenis);
           
           
//sintaks menampilkan nama dan jenis hewan

    }
    public void bersuara(){
//sintaks menampilkan suara hewan
                        System.out.println("Hug Hug Hug...... ");
    }

}

output program : 


semoga bermanfaat :)
referensi
disini 
disini

BADAL FATAN RAYHAN 51410289
Anggota Kelompok: ALDY HARYADI

Kamis, 12 April 2012

Konsep Deseign New Media

New Media adalah media yang sedang berkembang saat ini dalam konteks teknologi,informasi maupun komunikasi. Media Modern menjadi Payung Kehidupan yang menghubungkan Manusia dengan Manusia, dan Manusia dengan Teknologi pada abad ini.
Teknologi yang paling digambarkan sebagai “media baru” adalah digital, sering memiliki karakteristik yang dimanipulasi, melalui jaringan, padat, kompresibel, dan interaktif [1]. Beberapa contoh mungkin internet, website, multimedia komputer, game komputer, CD-ROM, dan DVD. Media baru tidak termasuk program-program televisi, film, majalah, buku, atau kertas publikasi berbasis -. Kecuali mereka mengandung teknologi yang memungkinkan interaktivitas digital.

Sejarah dan Perkembangan New Media
Penggunaan komputer digital telah mengubah sisa ‘tua’ media, seperti yang disarankan oleh munculnya televisi digital dan publikasi online. Bahkan bentuk media tradisional seperti mesin cetak telah diubah melalui penerapan teknologi seperti perangkat lunak manipulasi gambar seperti Adobe Photoshop dan alat-alat desktop publishing.
Andrew L. Shapiro (1999) berpendapat bahwa “munculnya baru, teknologi digital sinyal pergeseran berpotensi radikal yang mengendalikan informasi, pengalaman dan sumber daya” (Shapiro dikutip dalam Croteau dan Hoynes 2003: 322). W. Russell Neuman (1991) menunjukkan bahwa sementara “media baru” memiliki kemampuan teknis untuk menarik satu arah, kekuatan ekonomi dan sosial tarik kembali dalam arah yang berlawanan
Cendekiawan, seperti serta Lister et al. (2003) dan Friedman (2005), telah menyoroti baik implikasi potensial dan aktual positif dan negatif dari teknologi media baru, menunjukkan bahwa beberapa karya awal ke dalam studi media baru bersalah determinisme teknologi – dimana efek dari media ditentukan oleh teknologi sendiri, daripada melalui menelusuri jaringan sosial kompleks yang diatur pengembangan, pendanaan, pelaksanaan dan pembangunan masa depan teknologi apapun.
Peran new media dalam beberapa aspek
1.Globalisasi dan media baru
Munculnya media baru telah meningkatkan komunikasi antara orang di seluruh dunia dan Internet. Ini telah memungkinkan orang untuk mengekspresikan diri melalui blog, website, gambar, dan lainnya user-generated media.
2.Sebagai alat untuk perubahan sosial
New Media komponen yang mengutip aktivis sebagai alat untuk perubahan yang belum dibahas secara luas seperti itu oleh akademisi. New Media juga menemukan digunakan dengan gerakan sosial yang kurang radikal seperti Kampanye Pelukan Gratis. Menggunakan website, blog, dan video online untuk menunjukkan efektivitas dari gerakan itu sendiri.
3.Keamanan nasional
New Media juga baru-baru menjadi menarik bagi komunitas spionase global karena mudah diakses secara elektronik dalam format database dan karenanya dapat cepat diambil dan sebaliknya direkayasa oleh pemerintah nasional. Terutama yang menarik bagi komunitas spionase adalah Facebook dan Twitter, dua situs di mana orang bebas mengungkapkan informasi pribadi yang kemudian dapat disaring melalui dan diarsipkan untuk penciptaan otomatis berkas pada kedua orang bunga dan rata-rata warga negara.
4.Interaktivitas dan media baru
Interaktivitas telah menjadi istilah untuk sejumlah media baru menggunakan opsi berkembang dari penyebaran cepat dari jalur akses Internet, digitalisasi media, dan konvergensi media. Pada tahun 1984, Rice didefinisikan sebagai media baru teknologi komunikasi yang memungkinkan atau memfasilitasi pengguna-untuk-pengguna interaktivitas dan interaktifitas antara pengguna dan informasi. New Media perubahan terus menerus karena selalu diubah dan didefinisikan ulang oleh interaksi antara pengguna, teknologi baru, perubahan budaya, dll
5.Industri
Industri media saham baru hubungan terbuka dengan segmen pasar banyak di daerah seperti perangkat lunak / desain video game, televisi, radio, dan terutama film, iklan dan pemasaran, di mana industri berusaha untuk mendapatkan keuntungan dari dua arah dialog dengan konsumen terutama melalui Internet. Industri periklanan telah dikapitalisasi pada proliferasi media baru dengan agen-agen besar menjalankan multi-juta dolar iklan interaktif anak.
Pendapat tentang new media
Pada dasarnya new media adalah jembatan antara manusia dengan manusia dan manusia dengan teknologi. Tentu ini merupakan sebuah gagasan atau ide dengan maksud positif. Banyak hal positif dan efisiensi yang sangat menarik dalam beberapa aspek,baik media sosial atau alat elektronika. Misalnya: surat elektronik,lebih mudah,cepat dan lebih efektif. Menurut saya pribadi tidak ada hal atau alasan untuk menyampingkan new media,karena yang saya rasa akan banyak sekali manfaat yang kita dapat.
sumber : disini

Konsep Enkapsulasi

Seperti yg telah kita tahu, Java adalah salah satu bahasa pemrograman berbasis OOP(Object Oriented Programming) . Dalam Pemrograman Berbasis Objek ini yang terdapat beberapa konsep yaitu Objek(object), Kelas(class), Abstraksi(Abstraction), Enkapsulasi/Pengkapsulan(Encapsulation), Polimorfisme, dan Inheritas.

Disini saya akan membahas tentang Enkapsulasi/Pengkapsulan(Encapsulation)


Enkapsulasi/pengkapsulan(Encapsulation)


Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Adapun contoh implikasi dari enkapsulasi dalam pemrograman java dapat teman-teman lihat dalam contoh LISTING program berikut ini:



import java.text.DecimalFormat;
public class DemoEnkapsulasi
{
public static void main(String[]args)
{
DecimalFormat digitPosisi=new DecimalFormat();
System.out.println("\nDemo Enkapsulasi");
HitungGaji bony=new HitungGaji();
bony.setGaji(250000000);
bony.hitungGaji();
System.out.println("Informasi Gaji Pegawai:");
System.out.println("\nBesar Gaji kotor : "+digitPosisi.format(bony.getgajiKotor()));
System.out.println("\nBesar Gaji yang dibawa pulang : "+digitPosisi.format(bony.getgajiBersih()));
}
}
class HitungGaji
{
private double gajiKotor,gajiSetelahPajak;
public double gajiBersih;
private double potongan=75000000;
public void setGaji(double gaji)
{
gajiKotor=gaji;
}
private void hitungGaji()
{
return gajiSetelahPajak=gajiKotor-(0.2/gajiKotor);
return gajiBersih=gajiSetelahPajak-potongan;
}
public double getgajiKotor()
{
return gajiKotor;
}
public double getgajiBersih()
{
return gajiBersih;
}

public double gethitungGaji()
{
return hitungGaji();
}

}

OUTPUT:
 
 
BADAL FATAN RAYHAN 51410289
Anggota Kelompok: ALDY HARYADI
 

Jumat, 06 April 2012

PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR

PERBEDAAN PEMROGRAMAN BERORIENTASI OBJEK DAN PEMROGRAMAN TERSTRUKTUR
Pengertian Pemrograman Berorientasi Objek
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. Visual Basic.NET
  6. SIMULA
  7. Smalltalk
  8. Ruby
  9. Python
  10. PHP
  11. C#
  12. Delphi
  13. Eiffel
  14. Perl
  15. Adobe Flash AS 3.0
Pengertian Pemrograman Terstruktur
Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program.
Selain pengertian diatas Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik / langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya / kembali lagi ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
Bahasa pemrograman yang mendukung pemrograman terstruktur:
  1. Cobol Turbo Prolog
  2. C
  3. Pascal
  4. Delphi
  5. Borland Delphi
Setelah mengetahu pengertiannya?
dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah
berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya tetapi permodelan ini lebih susah untuk dipahami oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program ).
Sementara itu pemrograman berorientasi objek memliki beberapa keuntungan seperti :
1.maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
2.pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
3.dapat digunakannya obyek-obyek sesering yang diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.
jadi, sangat jelas sekal bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.
permodelan yang mana yang lebh bagus? itu tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya. Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai anggaran, serta mudah digunakan, dimengerti dan dipelihara
Perbedaan mendasar antara OOP dan pemrograman terstruktur adalah:
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sedangkan untuk pemrograman terstruktur,  menggunakan prosedur/tata cara yang teratur untuk mengoperasikan data struktur
Untuk tata nama, keduanya pun memiliki tatanan yang sama walaupun memiliki pengertian tersendiri:
object oriented menggunakan “method” sedangkan terstruktur menggunakan “function”. Bila di OOP sering didengar mengenai “objects” maka di terstruktur kita mengenalnya dengan ” modules”. Begitu pula  halnya dengan “message” pada OO dan “argument” pada terstruktur. “attribute” pada OO juga memiliki tatanan nama yang sepadan dengan “variabel” pada pemrograman terstruktur.
Persamaan kedua pemrogaman
adalah keduanya termasuk ke dalam pemodelan pemrograman yang digunakan dewasa ini.
Mana yang lebih baik
tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur.
Kapan sama2 baik
Pemrograman prosedural akan dikatakan lebih baik apabila dalam segala situasi melibatkan kompleksitas moderat atau yang memerlukan signifikan kemudahan maintainability. Manfaat yang dirasakan dalam penggunaan pemrograman prosedural adalah kemampuan kembali menggunakan kode yang sama tanpa menggunakan kode yang berbeda ataupun mengkopinya kembali. Dengan menggunakan “goto”, memudahkan programmer melacak kumpulan data sehingga menghindarkan pemrograman terstruktur menjadi seperti spagethii code.
Pemrograman berorientasikan objek dikatakan lebih baik apabila Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

sumber : disini :)

BADAL FATAN RAYHAN 51410289
Anggota Kelompok: ALDY HARYADI

Minggu, 25 Maret 2012

Program Kalkulator Culun :p

 LISTING PROGRAM




LOGIKA
Program java yang kami buat adalah kalkultor dengan menggunakan variable awt dan swing. Pada baris pertama dan kedua merupakan pernyataan kalau kami memakai pemrograman dengan awt swing. Pada baris 4 sampai 6 menunjukkan nama kelas sekaligus pernyataan variable. Lalu pada baris ke 9 dan 10 menyatakan variable jendela.
Pada baris 11 dan 12 menyatakan ukuran kolom yang di buat. Pada baris 13 sampai 27 menyatakan untuk membuat program pada kolom dimana di sana akan terdapat angka, operator, sama dengan dan hasil dari penghitungan.
Pada baris ke 29 hingga baris 35 merupakan deklarasi method untuk menyatakan variabelnya, dimana angka pertama dan kedua di misalkan dengan a dan b. pada baris 36 sampai 46 menyatakan operator yang di gunakan. Dan variabel kembali menggunakan a dan b tadi. Pada baris 51 sampai 68 merupakan pernyataan benar atau salah.

OUTPUT


BADAL FATAN RAYHAN 51410289
Anggota Kelompok: ALDY HARYADI