20131016_materi7-classdanobjek

17
  STEVI EMA WIJAYANTI Page 1 MATERI 6  CLASS & OBJECT BAHASA PEMROGRAMAN I S1 SI STEVI EMA WIJAYANTI

Upload: r-zainnur-rojib-fauzi

Post on 03-Nov-2015

8 views

Category:

Documents


0 download

DESCRIPTION

bgus7576576rtfyfyvhgj

TRANSCRIPT

  • S T E V I E M A W I J A Y A N T I

    Page 1

    MATERI 6 CLASS & OBJECT

    BAHASA PEMROGRAMAN I S1 SI

    STEVI EMA WIJAYANTI

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 2

    DEFINISI PROGRAM

    Java merupakan salah satu bahasa pemrograman tingkat tinggi berorientasi objek yang

    diperkenalkan oleh Sun Microsystems sekitar tahun 1995 dan dapat dijalankan di hampir semua

    sistem operasi (multiplatform).

    Berdasarkan pernyataan resmi dari Sun Microsystems, Java memiliki karakteristik seperti berikut ini :

    1. Sederhana

    Bahasa pemrograman Java menggunakan sintaks mirip dengan C++, namun telah banyak

    diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance.

    Java juga menggunakan automatic memory allocation dan memory garbage collection.

    2. Berorientasi Objek (Object Oriented)

    Java menggunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara

    modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia

    nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.

    3. Dapat Didistribusikan dengan Mudah

    Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries

    networking yang terintegrasi pada Java.

    4. Interpreter

    Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM) . Hal ini

    menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan

    pada platform yang berbeda-beda.

    5. Robust

    Java mempunyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi

    error secara lebih teliti dibanding bahasa pemrograman lain. Java mempunyai runtime-Exception

    handling untuk membantu mengatasi error pada pemrograman.

    6. Aman

    Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa

    mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer

    yang menjalankan aplikasi tersebut.

    PENGENALAN BAHASA PEMROGRAMAN JAVA

    DEFINISI JAVA

    KARAKTERISTIK JAVA

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 3

    7. Architecture Neutral

    Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang

    dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.

    8. Portable

    Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda

    tanpa harus dikompilasi ulang.

    9. Performance

    Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat

    ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupun

    Symantec yang menggunakan Just in Time Compilers (JIT).

    Pemrograman adalah proses menulis, menguji, memperbaiki dan memelihara kode yang

    membangun sebuah program komputer dengan menggunakan bahasa pemrograman tertentu.

    Pemrograman Berorientasi Objek merupakan paradigma pemrograman atau teknik pemrograman

    yang berbasiskan hirarki kelas-kelas dan melibatkan objek. Pemrograman Berorientasi Object (OOP)

    adalah model pemrograman yang paling banyak dipakai saat ini. OOP telah menggantikan teknik

    pemrograman prosedural yang telah lama digunakan. Objek-objek yang dibuat seringkali

    merepresentasikan apa yang ada di dunia nyata.

    Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instan dari object. Class

    juga bisa disebut blok-blok bangun pada program Java. Class mendefinisikan atribut/properti atau

    biasa disebut dengan field dan perilaku (behavior) atau biasa disebut dengan method dari obyek

    yang dibuatnya.

    Attribute berlaku sebagai data, didefinisikan oleh class, individu, dan berbeda satu dengan lainnya.

    Attribute didefinisikan dalam class dengan menggunakan variabel.

    DEFINISI PEMROGRAMAN

    DEFINISI PEMROGRAMAN BERORIENTASI OBJEK

    CLASS DAN OBJEK

    DEFINISI CLASS

    DEFINISI ATTRIBUTE

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 4

    Behavior berlaku sebagai method (operasi). Untuk menentukan behavior atau perilaku dari object

    harus membuat methods.

    CONTOH :

    Class : Manusia

    Attribute : 1. Nama

    2. Gender

    3. Tempat tanggal lahir

    4. Alamat

    5. dan sebagainya.

    Behavior : 1. Berjalan

    2. Makan

    3. Tidur

    4. dan sebagainya.

    Bagaimana cara membuat mobil ?

    Langkah 1 :

    Menggambar desain mobil

    Langkah 2 :

    Menambahkan detail mobil, misalnya : desain pedal gas untuk maju, desain rem untuk

    berhenti, desain setir untuk belok kiri dan kanan, dan lain sebagainya.

    Langkah 3 :

    Proses pembuatan mobil dimulai

    Bagaimana pedal gas pada mobil bekerja ?

    1. Bagaimana proses yang terjadi di dalam mesin mobil ketika pedal gas diinjak ?

    2. Apakah pengendara mobil perlu mengetahui cara kerja pedal gas secara detail ?

    Pengendara mobil tentu tidak perlu mengetahui secara detail cara kerja pedal gas ketika diinjak.

    Pengendara cukup mengetahui aturan dan fungsi dari pedal gas tersebut, misalnya ketika pedal gas

    DEFINISI BEHAVIOR

    ANALOGI LAIN

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 5

    sebelah tengah diinjak maka mobil akan melaju. Hal tersebut dapat disimpulkan bahwa cara kerja

    pedal gas secara detail disembunyikan dari pengendara mobil.

    Dari analogi diatas dapat diambil kesimpulan :

    1. Mobil adalah sebuah CLASS, dimana class Mobil memiliki attribute dan behavior.

    2. Sama halnya penyembunyian cara kerja pedal gas secara detail pada sebuah mobil, pada

    OOP penyembunyian detail pemrograman di dalam sebuah METHOD.

    3. Method-method ini dibuat dan disimpan bersama-sama di dalam suatu desain yang disebut

    Class.

    Objek adalah intansiasi (instance) dari class. Jika class secara umum mempresentasikan (template)

    sebuah objek, sebuah instance adalah representasi nyata dari class itu sendiri.

    Cara pembuatan objek :

    Contoh : Dari class Mobil, dapat dibuat objek Sedan, Kijang, Truk, dan lain sebagainya.

    Method/metode adalah suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu objek

    atau dapat dikatakan method adalah perilaku dari objek.

    Method memiliki 4 (empat) bagian dasar, antara lain :

    1. Nama method

    2. Tipe Objek atau tipe primitive yang dikembalikan metode

    3. Daftar parameter

    4. Badan atau isi method

    Construktor merupakan method khusus yang digunakan untuk menginisialisasi objek dan

    masing-masing class pasti memiliki minimal satu construktor. Perbedaan method biasa dengan

    DEFINISI OBJECT

    DEFINISI METHOD

    NamaKelas NamaObjek = new NamaConstruktor();

    Atau

    NamaKelas NamaObjek;

    NamaObjek = new NamaConstruktor();

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 6

    construktor adalah nama method. Construktor memiliki nama method sama persis dengan nama

    classnya, tidak bertipe dan tidak memiliki nilai kembalian.

    Contoh 1 : Class dan Method Buah

    Buah.java

    AmbilBuah.java

    Contoh 2 : Program Perhitungan Volume Balok

    Balok.java

    CONTOH IMPLEMENTASI CLASS DAN OBJEK

    //deklarasi class

    public class Buah {

    //method Mangga

    public void mangga(){

    System.out.println(Ini method untuk buah mangga);

    }

    //method Apel

    public void apel(){

    System.out.println(Ini method untuk buah apel);

    }

    }

    //deklarasi class

    public class AmbilBuah{

    //deklarasi method utama/main method

    public static void main(String [] args){

    //instansiasi (instance) objek dari class Buah

    Buah b = new Buah();

    b.mangga();

    b.apel();

    }

    }

    //deklarasi kelas (class)

    public class Balok{

    //deklarasi attribute/property

    double panjang;

    double lebar;

    double tinggi;

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 7

    VolumeBalok.java

    Contoh 3 : Program Perhitungan SPP

    SPP.java

    //deklarasi kelas (class)

    public class VolumeBalok{

    //deklarasi method utama/main method

    public static void main(String [] args){

    double volume;

    //instansiasi objek dari class Balok

    Balok bl = new Balok();

    bl.panjang = 10;

    bl.lebar = 5;

    bl.tinggi = 5;

    //menghitung volume balok

    volume = bl.panjang * bl.lebar * bl.tinggi;

    System.out.println("Volume balok = "+volume+" cm3");

    }

    }

    public class SPP {

    String nama,nim;

    int spt,spv,sks;

    //construktor dengan parameter

    public SPP(String nama, String nim, int spt, int spv, int sks){

    this.nama = nama;

    this.nim = nim;

    this.spt = spt;

    this.spv = spv;

    this.sks = sks;

    }

    //method hitung dengan tipe int

    public int hitung(){

    //method non-void harus ada nilai kembalian/return value

    return (spt+(spv*sks));

    }

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 8

    DemoSPP.java

    import java.io.*;

    public class DemoSPP {

    public static void main (String [] args) throws IOException{

    //deklarasi variabel

    String nama,nim;

    int spt,spv,sks;

    //proses instansiasi objek dengan inputan manual

    SPP bayar = new SPP("Stevi","12.11.1234",950000,70000,24);

    //dengan inputan

    //Langkah 1 : menginisialisasi BufferedReader

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    //Langkah 2 : proses input

    System.out.print("Nama \t\t: ");

    nama = br.readLine();

    System.out.print("NIM \t\t: ");

    nim = br.readLine();

    System.out.print("SPP Tetap \t: ");

    spt = Integer.parseInt(br.readLine());

    System.out.print("SPP Variabel \t: ");

    spv = Integer.parseInt(br.readLine());

    System.out.print("SKS \t\t: ");

    sks = Integer.parseInt(br.readLine());

    //proses instansiasi objek dengan inputan

    SPP bayar2 = new SPP(nama,nim,spt,spv,sks);

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 9

    Lanjutan Kode DemoSPP.java

    //output perhitungan dengan inputan manual

    System.out.println("\n\n\n--------------- PROGRAM PERHITUNGAN SPP MANUAL ---------------\n");

    System.out.println("Nama \t\t: " + bayar.nama);

    System.out.println("NIM \t\t: " + bayar.nim);

    System.out.println("SPP Tetap \t: " + bayar.spt);

    System.out.println("SPP Variabel \t: " + bayar.spv);

    System.out.println("SKS \t\t: " + bayar.sks);

    System.out.println("Total SPP yang harus dibayarkan : Rp " + bayar.hitung() + ",-\n");

    System.out.println("------------------------ TERIMA KASIH ------------------------\n\n");

    //output perhitungan dengan inputan

    System.out.println("\n-------------- PROGRAM PERHITUNGAN SPP OTOMATIS --------------\n");

    System.out.println("Nama \t\t: " + bayar2.nama);

    System.out.println("NIM \t\t: " + bayar2.nim);

    System.out.println("SPP Tetap \t: " + bayar2.spt);

    System.out.println("SPP Variabel \t: " + bayar2.spv);

    System.out.println("SKS \t\t: " + bayar2.sks);

    System.out.println("Total SPP yang harus dibayarkan : Rp " + bayar2.hitung() + ",-\n");

    System.out.println("------------------------ TERIMA KASIH ------------------------\n");

    }

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 10

    Method Mutator merupakan method yang difungsikan untuk memberikan nilai pada suatu properti

    atau variabel.

    Cara penulisan method Mutator :

    Method Accessor merupakan method yang difungsikan untuk mengambil nilai dari suatu properti

    atau variabel.

    Cara penulisan method Accessor :

    Contoh 4 : Program Menghitung Nilai

    Nilai.java

    METHOD MUTATOR DAN METHOD ACCESSOR

    //mendeklarasikan method mutator dengan nama setNama() dan bertipe Void

    //method setNama() memiliki 1 paramater nama dan bertipe String

    public void setNama(String nama){

    this.nama = nama;

    }

    //mendeklarasikan method accessor dengan nama getNama() dan bertipe String

    public String getNama(){

    //karena non-void maka harus ada nilai kembalian (return value)

    return nama;

    }

    public class Nilai {

    String nama,nim;

    double uts,uas,tugas;

    //Constructor Default

    public Nilai(){

    nama = "";

    nim = "";

    uts = 0;

    uas = 0;

    tugas = 0;

    }

    //Method Mutator

    public void setNama(String nama){

    this.nama = nama;

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 11

    Lanjutan Kode Nilai.java

    //Method Accessor

    public String getNama(){

    return nama;

    }

    public void setNim(String nim){

    this.nim = nim;

    }

    public String getNim(){

    return nim;

    }

    public void setUts(double uts){

    this.uts = uts;

    }

    public double getUts(){

    return uts;

    }

    public void setUas(double uas){

    this.uas = uas;

    }

    public double getUas(){

    return uas;

    }

    public void setTugas(double tugas){

    this.tugas = tugas;

    }

    public double getTugas(){

    return tugas;

    }

    public double getNilai(){

    double nilai;

    nilai = (uts+uas+tugas)/3;

    return nilai;

    }

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 12

    DemoNilai.java

    Latihan 2 : Program Gaji Karyawan

    public class DemoNilai {

    public static void main (String [] args) {

    //instansiasi objek class Nilai

    Nilai n = new Nilai();

    //input data

    n.setNama("Stevi Ema Wijayanti");

    n.setNim("12.11.1234");

    n.setUts(90.0);

    n.setUas(80.0);

    n.setTugas(100);

    //output data

    System.out.println("\n\n-------- HASIL NILAI PEMROGRAMAN LANJUT --------\n");

    System.out.println("Nama Mahasiswa \t: " + n.getNama());

    System.out.println("NIM Mahasiswa \t: " + n.getNim());

    System.out.println("Nilai UTS \t: " + n.getUts());

    System.out.println("Nilai UAS \t: " + n.getUas());

    System.out.println("Nilai Tugas \t: " + n.getTugas());

    System.out.println("Nilai Akhir \t: " + n.getNilai());

    System.out.println("\n---------------- *************** ---------------");

    }

    }

    Buat sebuah program dinamis untuk menghitung gaji karyawan PT. ABCD Persero.

    1. Class Karyawan memiliki atribut-atribut :

    NIK, nama, gaji pokok, tunjangan, uang makan, uang transport

    2. Total gaji merupakan penjumlahan seluruh pendapatan yang diperoleh oleh karyawan.

    3. Buatlah program tersebut dengan method accessor dan mutator.

    4. Output program berupa data minimal 3 karyawan dengan identitas lengkap,

    keseluruhan pendapatan dan total gaji yang diperoleh masing-masing karyawan.

    ------ Selamat Mengerjakan -----

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 13

    Overloading Method adalah terdapat method yang sama pada satu class namun berbeda paramater.

    Contoh :

    Contoh 5 : Program Menghitung Nilai Mahasiswa

    OverloadConstructor.java

    OVERLOADING METHOD

    DEFINISI OVERLOADING METHOD

    IMPLEMENTASI OVERLOADING METHOD

    public class Mobil {

    String warna, merk;

    //contructor default

    public Mobil(){

    warna = Merah;

    merk = BMW

    }

    //overloading Constructor

    public Mobil(String colour, String merk){

    warna = colour;

    this.merk = merk;

    }

    }

    public class OverloadConstructor {

    String nama,nim;

    double uts,uas,tugas;

    //Constructor Default

    public OverloadConstructor(){

    nama = "-";

    nim = "-";

    uts = 0;

    uas = 0;

    tugas = 0;

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 14

    Lanjutan Kode OverloadConstructor.java

    //Overload Constructor

    public OverloadConstructor(String nama,String nim){

    this.nama = nama;

    this.nim = nim;

    }

    //Overload Constructor

    public OverloadConstructor(double uts, double uas, double tgs){

    this.uts = uts;

    this.uas = uas;

    tugas = tgs;

    }

    //Method Accessor

    public String getNama(){

    return nama;

    }

    public String getNim(){

    return nim;

    }

    public double getUts(){

    return uts;

    }

    public double getUas(){

    return uas;

    }

    public double getTugas(){

    return tugas;

    }

    public double getNilai(){

    double nilai;

    nilai = (uts+uas+tugas)/3;

    return nilai;

    }

    }

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 15

    DemoOverloadConstructor.java

    public class DemoOverloadConstructor {

    public static void main (String [] args) {

    //instansiasi objek class Nilai

    OverloadConstructor oc1 = new OverloadConstructor();

    OverloadConstructor oc2 = new OverloadConstructor("Stevi Ema Wijayanti",

    "12.11.1234");

    OverloadConstructor oc3 = new OverloadConstructor(90,80,100);

    //output data 1

    System.out.println("\n\n-------- HASIL NILAI 1 PEMROGRAMAN LANJUT --------\n");

    System.out.println("Nama Mahasiswa \t: " + oc1.getNama());

    System.out.println("NIM Mahasiswa \t: " + oc1.getNim());

    System.out.println("Nilai UTS \t: " + oc1.getUts());

    System.out.println("Nilai UAS \t: " + oc1.getUas());

    System.out.println("Nilai Tugas \t: " + oc1.getTugas());

    System.out.println("Nilai Akhir \t: " + oc1.getNilai());

    System.out.println("\n----------------- *************** ----------------");

    //output data 2

    System.out.println("\n\n-------- HASIL NILAI 2 PEMROGRAMAN LANJUT --------\n");

    System.out.println("Nama Mahasiswa \t: " + oc2.getNama());

    System.out.println("NIM Mahasiswa \t: " + oc2.getNim());

    System.out.println("Nilai UTS \t: " + oc2.getUts());

    System.out.println("Nilai UAS \t: " + oc2.getUas());

    System.out.println("Nilai Tugas \t: " + oc2.getTugas());

    System.out.println("Nilai Akhir \t: " + oc2.getNilai());

    System.out.println("\n----------------- *************** ----------------");

    //output data 3

    System.out.println("\n\n-------- HASIL NILAI 3 PEMROGRAMAN LANJUT --------\n");

    System.out.println("Nama Mahasiswa \t: " + oc3.getNama());

    System.out.println("NIM Mahasiswa \t: " + oc3.getNim());

    System.out.println("Nilai UTS \t: " + oc3.getUts());

    System.out.println("Nilai UAS \t: " + oc3.getUas());

    System.out.println("Nilai Tugas \t: " + oc3.getTugas());

    System.out.println("Nilai Akhir \t: " + oc3.getNilai());

    System.out.println("\n----------------- *************** ----------------");

  • October 11, 2013 [BAHASA PEMROGRAMAN I]

    S T E V I E M A W I J A Y A N T I

    Page 16

    Lanjutan kode DemoOverloadConstructor.java

    Output :

    //OUTPUT FINAL

    System.out.println("\n\n-------- HASIL NILAI FINAL PEMROGRAMAN LANJUT --------\n");

    System.out.println("Nama Mahasiswa \t: " + oc2.getNama());

    System.out.println("NIM Mahasiswa \t: " + oc2.getNim());

    System.out.println("Nilai UTS \t: " + oc3.getUts());

    System.out.println("Nilai UAS \t: " + oc3.getUas());

    System.out.println("Nilai Tugas \t: " + oc3.getTugas());

    System.out.println("Nilai Akhir \t: " + oc3.getNilai());

    System.out.println("\n------------------- *************** ------------------");

    }

    }