Modul Praktikum Pbo

28
MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK UNIVERSITAS GADJAH MADA SEKOLAH VOKASI DIPLOMA TEKNOLOGI JARINGAN 2014

description

membahas boject oriented

Transcript of Modul Praktikum Pbo

  • MODUL PRAKTIKUM

    PEMROGRAMAN BERORIENTASI

    OBJEK

    UNIVERSITAS GADJAH MADA

    SEKOLAH VOKASI

    DIPLOMA TEKNOLOGI JARINGAN

    2014

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 1

    BAB 1 PENGENALAN JAVA

    1. Tujuan

    Mengetahui cara instalasi Java sebagai bahasa implementasi praktikum

    pemrograman berorientasi objek

    Memahami struktur dasar / sintaks bahasa Java.

    Membuat program bahasa Java sederhana.

    2. Dasar Teori

    Mempersiapkan Lingkungan kerja JAVA

    Untuk menulis program JAVA digunakan editor. IDE (Integrated Development

    Environment) yang telah ada untuk Java, antara lain: NetBeans yang disponsori Sun

    Microsystems. Diperlukan penginstalan Java SDK dan Netbeans IDE 7.2.1.

    Java SDK : adalah platform dasar Java yang diperlukan agar PC dapat

    mengeksekusi kode-kode program yang menggunakan bahasa Java.

    NetBeans : adalah aplikasi editor terpadu (IDE) yang menyediakan kontrol-

    kontrol visual dalam pemrograman desktop.

    a. Instalasi JAVA SDK

    Java Development Kit (JDK) dapat didownload pada situs Java Sun Microsystem,

    yaitu: http://java.sun.com. Pada instalasi ini digunakan versi jdk1.7.1_02. Instalasi

    dilakukan dengan mengklik installer jdk yang akan mengekstrak file JDK membuat

    direktori yang diperlukan. Untuk versi jdk dibawah 1.6 diperlukan setting variable

    path.

    b. NETBEANS IDE 7.2.1

    Tampilan awal NETBEANS IDE 7.2.1 (Gambar 1.1)

    Memulai lembar project baru, pilih file New Project... pada bagian menu.

    Pada bagian choose project Categoty pilih java, dan pada bagian Projects pilih

    Java Application (Gambar 1.2)

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 2

    Masukkan project name dan project location seperti terlihat pada Gambar 1.3.

    Sebagai latihan berikan nama project dengan hello_world.

    Pada bagian create main class, dapat diberikan nama yang berbeda dari Project

    Name nya. Tidak perlu menambahkan .Main atau .Java, NetBeans akan secara

    otomatis memberikan ekstensi-nya. Setelah selesai, klik finish

    c. Aturan dasar program java

    Case sensitive : penggunaan huruf besar dan kecil memiliki arti berbeda

    Kurung kurawal{} : symbol menandai awal dan akhir suatu blok program

    Komentator : diawali tanda // atau tanda /**/

    titik koma (;) : setiap pernyataan diakhiri dengan symbol titk-koma

    3. Latihan

    Program sederhana mencetak baris kalimat

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 3

    Analisa program :

    Pada baris ini keyword public memanggil sebuah variable yang

    menentukan apakah dapat digunakan oleh bagian program. Keyword class

    yang menyatakan kelas dimana atribut dan fungsi berada di dalamnya.

    Kelas pertama Hello_world1 adalah kelas pengendali yaitu nama kelas

    yang akan dikenali compiler java. Pada saat kompilasi, compiler membuat

    file Hello_world1.class

    Baris ini memuat metode pertama program. Metode adalah fungsi yang

    menjalankan suatu aksi tertentu. Metode main() bersifat statis dan kosong.

    Eksekusi selalu dimulai dengan metode utama dari kelas yang

    mengendalikan aplikasi, yaitu kelas yang memiliki nama sama dengan file

    sumber aplikasi.

    Baris ini menampilkan pesan siap belajar java pada hasil running.

    System adalah kelas yang merupakan bagian dari pustaka java, out objek

    yang terdapat pada kelas system. Keyword println() mencetak baris

    menampilkan sebuah teks.

    Paket(package) : bagian standar java untuk mengelompokkan kelas dengan

    interface menjadi suatu unit

    4. Tugas

    a. Buatlah sebuah program yang mencetak data berikut :

    Nama : mutiara sugiharto

    NIM : 12/336147/PA/15080

    Alamat : Jl. Menteri Supeno No.45 Yogyakarta

    No.Telp : 0324-6575757

    Email : [email protected]

    Data bisa diganti dengan data anda

    b. Buatlah sebuah program untuk mencetak kalimat berikut

    Suatu saat perusahaan computer di dunia akan lebih dari lima dari sekarang.

    Thomas Watson, IBM, 1943.

    (Buatlah program dengan pseudocode di bawah ini)

    System.out.print(Suatu saat ..)

    System.out.println(akan ..)

    System.out.println(Thomas)

    A

    B

    C

    A

    B

    C

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 4

    BAB 2 TIPE DATA DAN OPERATOR

    1. Tujuan

    Praktikan dapat memahami operator dengan benar.

    Memahami struktur dasar / sintaks bahasa Java.

    Membuat program bahasa Java sederhana.

    2. Dasar Teori

    a. Identifier

    Adalah nama yang biasa digunakan dalam pemrograman untuk menyatakan : variable,

    konstanta, kelas, metode.

    Identifier valid :

    Identifier invalid :

    b. Keyword

    Identifier penggunaan khusus yang sudah ada pada pustaka Java, dan tidak dapat

    digunakan sebagai identifier

    Contoh keyword pada Java :

    c. Tipe Data

    Dibagi menjadi 2 kategori :

    1. Tipe data primitif : tipe data yang mempunyai nilai tertentu, bukan referensi kelas

    atau objek.Dibagi menjadi 4 tipe data primitive

    Tipe Data Jenis Storage Nilai

    Integer(bilangan

    bulat

    byte

    short

    long

    int

    8 bit

    16 bit

    64 bit

    32 bit

    -128 s/d 127

    32768 s/d 32767 922337203s/d 922337203

    2147483648 s/d 2147483647

    Float(bilangan nyata) float

    double

    32 bit

    64 bit

    3.4E-38 s/d 3.4E+38

    1.7E-308 s/d 1.7E+308

    char char 16 bit \u0000 s/d \uFFFF

    boolean boolean 1 bit True atau false

    2. Tipe data referensi : terbentuk dari tipe data sederhana dan tipe data referensi

    string array class interface

    d. Operator

    Operator digunakan untuk melakukan pengolahan data, melibatkan konstanta dan

    variabel yang telah kita buat.

    Jenis Operator Simbol

    Increment/ Decrement ++ , -

    Unary Operator + , - , ~ , ! , (cast)

    Perkalian/pembagian/modulus *, /, %

    Penambahan/pengurangan +, -

    Operator shift , >>>

    No kode_barang

    kodeBarang Pelanggan_alamat

    1_harga tidak boleh diawali angka

    %barang symbol % tidak boleh digunakan

    NamaPelanggan

    tidak boleh menggunakan spasi

    case package return new

    this public break class

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 5

    Perbandingan =,= =, != Bitwise AND, OR, XOR &, |, ^ Kondisional AND, OR &&, ||

    Operator penugasan (assignment) =

    Operator concatenation : Java menyediakan operator penghubung berupa tanda (+)

    yang digunakan untuk menyambung string.

    e. Output dan Input Data

    Output data : menggunakan objek out untuk menampilkan program langsung

    Input data : menggunakan kelas pustaka java IOExcepion, InputStreamReader,

    BufferedReader

    3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program

    pada lembar laporan)

    Pendefenisian variable char Analisa Program

    Untuk menuliskan konstanta bertipe char, karakter ditulis dengan tanda petik tunggal

    seperti A

    Pendefinisian variable char adalah char kar; / kar merupakan variable bertipe

    char

    Tanda petik tunggal untuk deklarasi sebuah data char, sedangkan petik ganda

    mendeklarasikan string atau kumpulan karakter

    . Contoh

    char kode=A; string nomorRumah=15 ; string Negara = Indonesia;

    Pemberian nilai karakter menggunakan nilai ASCII dari karakter tersebut, karakter F mempunyai nilai ASCII = 70 , deklarasinya

    kar=70;

    System.out.println(kar) mendeklarasikan nilai dari variable kar

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 6

    BAB 3 FLOWCONTROL

    1. Tujuan

    Praktikan mengenal beberapa perintah untuk seleksi kondisi

    Praktikan mampu menggunakan bernagai conditional statement

    2. Dasar Teori

    A. Percabangan

    Pernyataan bentuk if :

    if (kondisi)

    Pernyataan;

    Pernyataan bentuk if else :

    if (condition)

    statement;

    else

    statement;

    Bentuk Nested If Else(if bersarang) : if (condition){

    if (condition)

    statement;

    else

    statement;

    }

    else {

    if (condition)

    statement;

    else

    statement;

    }

    Bentuk Else if :

    if (condition){

    statement(s);

    }

    else if (condition)

    statement;

    else if (condition){

    statement(s);

    }

    else

    statement4;

    Terdapat empat pilihan:

    if

    else if

    else if

    else

    Switch : switch (identifier) {

    case value1:

    statements;

    break;

    case value2:

    statements;

    break;

    default:

    statements;

    break;

    }

    Terdapat tiga pilihan tergantung pada

    nilai variabel identifier:

    Value1

    Value2

    Default

    B. Perulangan

    While loop :

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 7

    while (condition) {

    statement(s);

    }

    Do While Loop :

    do {

    statement(s);

    } while (condition);

    For Loop

    for (initial; condition; post-iteration) {

    statement(s);

    }

    Nested Loop : terjadi ketika terdapat loop di dalam loop. Dengan demikian, jumlah perulangan yang terjadi lebih banyak; yaitu perkalian antara loop yang di dalam dengan loop yang di luar.

    C. Branching Statement Branching statement digunakan untuk menginterupsi proses yang sedang berjalan. Terdapat tiga

    jenis branching dalam Java:

    break : digunakan pada pencabangan maupun perulangan. Jika statement break dieksekusi, pencabangan atau perulangan akan dihentikan.

    Continue : jika terjadi continue, statement akan dilewati dan alur program kembali ke evaluasi kondisi.

    Return : Return dibutuhkan untuk keluar dari method

    3. Latihan (Praktekkan listing program berikut dan tulis hasil serta analisa program

    pada lembar laporan)

    statement if

    {

    int nilai = 70;

    if (nilai >=60) {

    System.out.println(Nilai= +

    nilai + lulus ujian);

    }

    }

    Statement if-else

    Int pembelian =110;

    System.out.println (Jumlah pembelian

    = + pembelian);

    If (pembelian>= 100) {

    System.out.println (Diskon = 20%);

    }

    else{

    System.out.println (Diskon= 5%);

    }

    Statement nested if else

    if (isSurplus == 0)

    if (salesTotal < 10000000)

    komisi = 0.02;

    else

    komisi = 0.04;

    else

    if (salesTotal < 10000000)

    komisi = 0.03;

    else

    komisi = 0.06;

    Statement else if int nilai;

    nilai = 75;

    System.out.println ("Nilai = " +

    nilai);

    if (nilai >= 80)

    System.out.println ("Predikat A");

    else if (nilai >= 69)

    System.out.println ("Predikat B");

    else if (nilai >= 56)

    System.out.println ("Predikat C");

    else if (nilai >= 40)

    System.out.println ("Predikat D");

    else

    System.out.println ("Predikat E");

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 8

    BAB IV KONSEP BERORIENTASI OBJEK

    1. Tujuan

    Praktikan memahami konsep pemrograman berorientasi objek

    Mengenal pewarisan dan overriding untuk membedakan OOP

    Mengenal objek dan kelas

    2. Dasar Teori

    a. Pemrograman berorientasi objek : berorientasikan kepada objek, jadi semua data dan

    fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.

    b. Kelas dan Objek

    Kelas : dengan satu atau lebih objek di dalamnya, didefinisikan sebagai sesuatu yang

    mempunyai data (sifat) dan fungsi (kelakuan).

    Konsep pewarisan (inheritance): Proses pembentukan kelas baru dari kelas yang sudah

    ada menjadi kelas Superclass dan kelas Subclasses. Proses pembentukan kelas

    menghasilkan hierarki kelas yaitu puncak hierarki yang disebut kelas abstrak.

    Konsep overriding : Objek subclass dapat melakukan perubahan perilaku dari metode

    yang diwarisinya dari objek superclass-nya.dimanfaatkan pada kasus inheritance dimana

    penamaan method yang sama namun berbeda implementasi.

    Objek : instance dari sebuah kelas, objek berisi semua variable dalam kelas/

    Variable kelas: digunakan bersama-sama oleh semua objek dalam kelas

    Variable objek: disebut instance variable dimana semua objek mempunyai salinan

    variable dari pendefinisian dalam kelas.

    Variable static: tidak dapat diubah oleh subkelas

    Metode : terdapat 2 macam metode dan 1 metode pengendali

    Metode kelas: dapat dieksekusi meskipun tidak terdapat objek pada kelas tersebut

    Metode objek: metode hanya dapat dieksekusi sehubungan dengan objek tertentu

    Metode main() : digunakan saat aplikasi java dimulai, berupa keyword static

    c. Instansiasi Objek : mendeklarasikan variabel yang digunakan sebagai referensi ke objek

    dari kelas bersangkutan. menginstansiasi kelas dengan menggunakan operator new dan

    memasukkan instance-nya ke dalam variable referensi yang baru saja dideklarasikan

    d. Latihan (Praktekkan program berikut, tulis hasil di lembar laporan serta analisa

    program)

    Mendefinisikan objek dalam

    kelas(instansiasi)

    Nama kelas

    Variable instance

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 9

    Buatlah file Rumah.java dan file Isirumah.java Pada program diatas menjelaskan kelas main memanggil fungsi lain. Pada file Rumah, terdapat kelas

    Rumah dan deklarasi metode r_tamu dan k_mandi. Keyword void tidak mengembalikan nilai metode.

    Pada file Isirumah di deklarasikan variable Panggil sebagai objek referensi ke metode k_mandi.

    Operator titik (.) untuk mengakses (instance variable dan method). Pada Rumah.r_tamu dan

    Panggil.k_mandi

    program variable instance dan kelas

    Analisa Program

    Variable instance dideklarasikan

    setelah dekalarasi kelas , tetapi

    sebelum deklarasi metode. Pada

    program , setiap objek berasal dari

    kelas Kucing memiliki variable

    Nama, Warna, Berat

    Variable Nama dan Warna bertipe

    data string dan variable Berat

    interger,

    Membuat objek baru dengan variable

    instance kucingku

    Operator titik (.) untuk mengakses

    (instance variable dan method).

    Kucingku.Nama=cepot

    kelas

    Objek berisi variable instance

    Menset nilai

    variable instance

    Metode

    main

    kelas

    metode

    metode

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 10

    Setiap objek atau instance dari suatu kelas akan memiliki salinan data sendiri-sendiri. Ini

    artinya, antara objek yang satu dengan yang lainnya, nilai data-datanya bisa berbeda.

    Perhatikan kode program di bawah ini.

    Contoh instansiasi lebih dari satu objek dari satu kelas yang sama

    Variabel referensi : kelas digunakan untuk mendeklarasikan sebuah variabel yang

    berupa objek. Variabel yang berupa objek ini sering disebut dengan referensi objek

    (object reference).

    Mengisi Nilai pada Referensi Objek:

    variabel karyawan002 sebagai referensi ke objek yang ditunjuk oleh karyawan001. Dengan

    demikian, variabel karyawan001 dan karyawan002 masing-masing menunjuk ke objek

    Karyawan yang sama. Maka dari itu, setiap perubahan yang terjadi pada objek yang

    bersangkutan melalui karyawan001 akan berpengaruh juga pada objek yang ditunjuk oleh

    karyawan002, karena keduanya sebenarnya adalah objek yang sama, begitu juga sebaliknya.

    public class PengaruhReferensiObjek1 {

    public static void main(String[] args) {

    /*Instansiasi 2 objek referensi yang mengacu pada 1 objek karyawan */

    Karyawan Karyawan001 = new Karyawan();

    Karyawan Karyawan002 = Karyawan001;

    //mengisi data Objek Karyawan melalui objek referensi 1

    Karyawan001.nama = "Mischella";

    Karyawan001.divisi = "HRD";

    //mencetak data object karyawan yang di acu 2 objek referensi

    System.out.println("Data Karyawan001");

    System.out.println("Nama : " + Karyawan001.nama);

    System.out.println("Divisi : " + Karyawan001.divisi);

    System.out.println(" ");

    System.out.println("Data Karyawan002");

    System.out.println("Nama : " + Karyawan002.nama);

    System.out.println("Divisi : " + Karyawan002.divisi);}}

    Karyawan Karyawan001,Karyawan002;

    Karyawan001 = new Karyawan();

    Karyawan002 = Karyawan001;

    Deklarasi variable referensi ke objek karyawan

    Objek karyawan menyimpan referensinya ke

    var karyawan001

    memasukkan karyawan001 ke dalam karyawan002

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 11

    BAB V PENGGUNAAN VARIABEL OLEH METHOD

    1. Tujuan

    Praktikan memahami konsep penggunaan variable oleh metode

    Mengenal parameter-parameter suatu metode

    Mengenal argument dan nilai kembalian

    2. Dasar Teori

    Konsep Method

    Dalam Java, kelas berisi kumpulan data dan method, yang selanjutnya akan saling bekerja

    sama dalam melakukan tugas-tugas spesifik tertentu sesuai dengan perilaku objek yang

    dimodelkan.Bentuk umum dari pembuatan method di dalam kelas.

    tipe namaMethod(daftar-parameter) {

    //kode yang akan dituliskan

    }

    Pengembalian nilai Java method terbagi menjadi dua: void dan non-void. Method void adalah method yang tidak

    mengembalikan nilai, sedangkan method non-void adalah method yang mengembalikan nilai.

    Jika method yang kita buat ditujukan untuk mengembalikan suatu nilai tertentu, maka di

    dalam method tersebut harus terdapat statemen return, yang diikuti dengan nilai yang akan

    dikembalikan, seperti berikut: return nilaiKembalian;

    Metode berparameter

    Pada kenyataannya sebagian besar method yang ditulis dalam program memiliki satu atau

    beberapa parameter. Dengan adanya parameter, sebuah method dapat bersifat dinamis dan

    general. Artinya, method tersebut dapat mengembalikan nilai yang beragam sesuai dengan

    nilai parameter yang dilewatkannya.

    Constructor

    Constructor adalah method khusus yang didefinisikan di dalam kelas dan akan dipanggil

    secara otomatis tiap kali terjadi instansiasi objek. Constructor itu sendiri berfungsi untuk

    melakukan inisialisasi nilai terhadap data-data yang terdapat pada kelas yang

    bersangkutan. Jika kita tidak mendefinisikan constructor pada kelas yang kita buat, maka

    secara otomatis Java akan membuatkannya untuk kita. Constructor semacam ini

    dinamakan dengan default constructor

    Keyword This

    Java menyediakan kata kunci this. this merupakan referensi ke objek yang sedang aktif.

    this digunakan di dalam method untuk mewakili nama kelas bersangkutan.

    Overload terhadap method dan constructor

    Parameter dalam suatu method dikatakan berbeda dari method yang lainnya apabila:

    Jumlahnya berbeda, meskipun tipe datanya sama

    Tipe datanya berbeda, meskipun jumlahnya sama

    Jumlah dan tipe datanya berbeda

    Prose pendefinisian method dengan nama sama ini disebut dengan overload

    double volumeTabung() {

    return (3.14 * 7 * 7 * 10);

    }

    double volumeTabung(int jejari, int tinggi) {

    return (3.14 * jejari * jejari * tinggi);

    }

    Method tidak berparameter hanya dapat

    digunakan untuk tabung yang memiliki jari-

    jari alas 7 dan tinggi 10

    Method berparameter

    dapat digunakan untuk

    segala ukuran tabung.

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 12

    proses overload diaplikasikan ke dalam constructor suatu kelas. Hal ini disebabkan

    karena sebenarnya constructor juga adalah sebuah method yang mengembalikan tipe

    kelas (dirinya sendiri).

    3. Latihan

    Penambahan method void pada deklarasi

    kelas Karyawan

    public class Karyawan {

    String ID, nama, divisi;

    Double gaji;

    void cetakData() {

    System.out.println("Data Karyawan ");

    System.out.println("ID : " + ID);

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

    System.out.println("Divisi : " + divisi);

    System.out.println("Gaji : " + gaji);

    }}

    Contoh pemanggilan method void

    public class ImplementasiMethodVoid {

    public static void main(String[] args) {

    //instansiasi objek karyawan

    Karyawan Karyawan001 = new

    Karyawaan();

    //mengisi data pada objeck karyawan

    Karyawan001.ID = "K001";

    Karyawan001.nama = "Agus Ramadhan";

    Karyawan001.divisi = "Keuangan";

    Karyawan001.gaji = 1850000;

    //memanggil method cetakData();

    Karyawan001.cetakData();

    }

    }

    implementasi method non-void dengan return

    public class Karyawan {

    String ID, nama, divisi;

    double gaji;

    void cetakData() {

    System.out.println("Data Karyawan : ");

    System.out.println("ID : " + ID);

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

    System.out.println("Divisi : " + divisi);

    System.out.println("Gaji : " + gaji);

    }

    double hitungSumbanganZakat() {

    double zakat = gaji * 0.025;

    return zakat;

    }

    Pemanggilan method non-void

    public class ImplementasiMethodNonVoid {

    public static void main(String[] args) {

    //instantiasi objek Karyawan

    Karyawan karyawan001 = new Karyawan();

    //mengisi data pada objek Karyawan

    karyawan001.ID = "K001";

    karyawan001.nama = "Agus Ramadhan";

    karyawan001.divisi = "Keuangan";

    karyawan001.gaji = 1850000;

    //memanggil method cetakDAta()

    karyawan001.cetakData();

    //memanggil method hiungSumbanganZakat()

    System.out.println("Sumbangan Zakat : " +

    karyawan001.hitungSumbanganZakat());

    }

    }

    Implementasi method dengan parameter pada

    kelas Karyawan

    public class Karyawan {

    String ID, nama, divisi;

    double gaji;

    void isiData(String kode, String Nama, String

    Div, double Gaji) {

    ID = kode;

    nama = Nama;

    divisi = Div;

    gaji = Gaji;

    }

    void cetakData() {

    System.out.println("Data Karyawan : ");

    System.out.println("ID : " + ID);

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

    System.out.println("Divisi : " + divisi);

    System.out.println("Gaji : " + gaji);

    }

    Pemanggilan method berparameter pada kelas

    Karyawan

    public class ImplementasiMethodBerparameter {

    public static void main(String[] args) {

    //instatiasi objek Karyawan

    Karyawan karyawan001 = new Karyawan();

    /*mengisi data pada objek Karyawan

    melalui method isiData()*/

    karyawan001.isiData("k001", "Rommy",

    "Marketing", 2350000);

    //memanggil method cetakData();

    karyawan001.cetakData();

    }

    }

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 13

    double hitungSumbanganZakat() {

    double zakat = gaji * 0.025;

    return zakat;

    }

    }

    Deklarasi kelas Karyawan dengan constructor

    public class Karyawan {

    String ID, nama, divisi;

    double gaji;

    //constructor kelas karyawan

    Karyawan() {

    ID = "k001";

    nama = "Budi";

    divisi = "Produksi";

    gaji = "1750000";

    }

    void cetakData() {

    System.out.println("Data

    Karyawan :");

    System.out.println("ID

    : " + ID);

    System.out.println("Nama

    : " + nama);

    System.out.println("Divisi : " +

    divisi);

    System.out.println("Gaji

    : " + gaji);

    }

    double hitungSumbanganZakat()

    {

    double zakat = gaji *

    0.025;

    return zakat;

    }

    }

    Deklarasi kelas Karyawan dengan constructor

    dinamis

    public class Karyawan {

    String ID, nama, divisi;

    double gaji;

    //constructor kelas Karyawan

    Karyawan(String kode, String

    Nama, String Div, double Gaji) {

    ID = kode;

    nama = Nama;

    divisi = Div;

    gaji = Gaji;

    }

    void cetakData() {

    System.out.println("Data

    Karyawan :");

    System.out.println("ID

    : " + ID);

    System.out.println("Nama

    : " + nama);

    System.out.println("Divisi : " +

    divisi);

    System.out.println("Gaji

    : " + gaji);

    }

    double hitungSumbanganZakat()

    {

    double zakat = gaji *

    0.025;

    return zakat;

    }

    }

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 14

    BAB VI VARIABEL TERHADAP PERILAKU OBJEK

    1. Tujuan Praktikum

    Praktikan dapat mengimplementasikan enkapsulasi

    Dapat membedakan antara instance variable dan local variable

    Praktikan mampu menggunakan beberapa operator dan method yangmenyertai

    penerapan array dan string.

    2. Dasar teori

    1. Implementasi Enkapsulasi(pembungkusan)

    Suatu cara untuk meyembunyikan informasi detail dari suatu class, berupa information

    hiding dan interface to acsess data.Hak akses data dan perilaku objek memiliki tingkatan:

    Metode serta variable bersifat private: atribut kelas hanya dapat di akses oleh metode

    dalam kelas dimana di definisikan

    Metode serta variable bersifat public : variabael dan metode dapat diakses dari dalam

    maupun luar kelas

    Metode serta variable bersifat protected: atribut kelas hanya dapat di akses oleh kelas

    dan subkelas tersebut

    Metode serta variable bersifat default : hanya kelas dalam paket dapat mengakses

    variable dan metode kelas

    Pada enkapsulasi membuat variable bersifat private dan melakukan perubahan terhadap

    atribut yang di beri hak akses dengan cara membuat suatu interface berupa metode untuk

    menginisialisasi nilai dari suatu atribut disebut interface to acsess data. Secara umum,

    pembungkusan data dan method dari suatu kelas dapat dituliskan seperti berikut:

    class NamaKelas {

    tingkat-akses data1;

    tingkat-akses data2;

    .

    tingkat-akses dataN;

    tingkat-akses method1(daftar-parameter) {

    //kode untuk method1

    }

    tingkat-akses methodN(daftar-parameter) {

    //kode untuk methodN

    }

    .

    tingkat-akses methodN(daftar-parameter) {

    //kode untuk methodN

    }

    }

    2. Inisialisasi instan variable dan local variabel

    Untuk pengaksesan data di luar, metode statis dapat mengakses data statis dari kelas dan

    metode non statis dapat mengakses data setiap kelas.

    Variabel instan : sama dengan variable kelas tetapi tidak menggunakan keyword static

    Variabel local : dideklarasikan dan digunakan hanya di dalam badan metode tertentu.

    Static modifier: atribut atau metode sama untuk semua objek dari kelas tertentu

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 15

    Final modifier: memberikan spesifikasi bahwa variable mempunyai nilai konstan sama.

    Abstract: metode tidak dapat dijalankan dan harus digunakan subkelas yang tidak abstrak

    3. Kelas di dalam Kelas (Inner Class)

    Java mengizinkan untuk mendefinisikan suatu kelas di dalam kelas lainnya. Kelas semacam

    ini dinamakan sebagi inner class (kelas bagain dalam). Inner class dapat mengakses data dan

    method dari kelas yang berada di bagian luarnya, meskipun data dan method tersebut bersifat

    private.

    4. Penerapan operator dan method yang menyertai array dan string.

    Perilaku objek pada suatu array sama seperti objek-objek lainnya. Perbedaan dalam mengakses data

    a. Array : tipe data yang digunakan apabila data diberikan berupa kelompok data yang disajikan secara berurutan.

    tipe_data nama_variabel_array[]

    Untuk mengetahui jumlah elemen dari sekelompok data yang bertipe array, dapat

    digunakan perintah length .Sintaks: nama_variabel_array.length

    Array untuk dua dimensi

    b. String : String merupakan deretan karakter. Pada java, string merupakan objek dari kelas String. Penulisan string dilakukan dengan mengapit data menggunakan tanda petik

    (ganda).

    String judul = Pemrograman Berorientasi Objek;

    c. Latihan

    program yang menunjukkan pengaruh

    dari tingkat akses public dan private di

    dalam suatu kelas

    //deklarasi kelas mahasiswa

    public class Mahasiswa {

    int nim;

    public String nama;

    private double ipk;

    public void setIPK(double nilai)

    {

    ipk = nilai;

    }

    public double getIPK() {

    return ipk;

    }

    }

    terdapat tanda error (yang bergaris bawah) yang

    menandakan bahwa variabel ipk tidak bisa

    diakses secara langsung karena didefinisikan

    menggunakan hak akses private

    tingkat akses data dan method pada kelas

    Mahasiswa

    public class PengaruhHakAkses {

    public static void main(String[]

    args) {

    Mahasiswa Yahya = new

    Mahasiswa();

    //BENAR, karena nim secara

    default bersifat public

    Yahya.nim = 1009;

    //BENAR, karena nama bersifat

    public

    Yahya.nama = "Yahya Al-

    Mahandiz";

    Yahya.ipk = 3.77;//SALAH,karena

    ipk bersifat private

    //BENAR, karena method setC()

    bersifat public

    Yahya.setIPK(3.77);

    System.out.println("NIM : " +

    Yahya.nim);

    System.out.println("Nama : " +

    Yahya.nama);

    System.out.println("IPK : " +

    Yahya.getIPK());

    }}

    tipe_data nama_variabel_array[][]

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 16

    implementasi data dan method statis

    public class ContohStatic {

    static int dataA = 10;

    static int dataB = 7;

    int dataC = 4;//data non-statik

    static void test() {

    int dataC = dataA + dataB;

    System.out.println("dataA +

    dataB = " + dataC);

    //System.out.println("dataC

    = "+dataC);

    //SALAH, karena dataC non-

    statik

    }

    public static void main(String[]

    args) {

    test();

    }

    }

    dapat memanggil method test() tanpa harus membuat objek dari kelas ContohStatic. method test() tidak dapat mengakses dataC, karena data tersebut tidak dideklarasikan sebagai data statis.

    Deklarasi kelas yang menggunakan data dan method statis

    public class RobotStatic {

    static String nama;

    static String asalNegara;

    static void test() {

    System.out.println("Hello..");

    System.out.println("Saya adalah robot " + nama);

    System.out.println("Saya berasal

    dari " + asalNegara);

    }

    }

    pemanggilan data dan method statis public class ContohStatic2 {

    public static void main(String[]

    args) {

    RobotStatic.nama = "Gathotkaca";

    RobotStatic.asalNegara =

    "Indonesia";

    RobotStatic.test();

    }

    }

    program untuk array satu dimensi.

    public class Array {

    public static void main(String[]

    args) {

    int [] array = {2,5,6,3,2};

    for(int i =0;

    i

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 17

    BAB VII INHERITANCE

    1. Tujuan Praktikum

    Praktikan dapat membedakan pemakaian overloading dan overriding.

    Praktikan mampu menerapkan konsep pewarisan, overloading dan overriding dalam pemrograman dengan Java.

    Praktikan mampu menerapkan konsep pewarisan, overloading dan overriding dalam pemrograman dengan Java.

    2. Dasar teori

    a. Pewarisan (inheritance) adalah suatu cara pembuatan class baru dengan menggunakan kembali class yang sudah didefinisikan sebelumnya dengan menambahkan atribut dan

    method baru.Pada konsep pewarisan ada beberapa istilah yang perlu diketahui,yaitu:

    Sub class, digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari super class.

    Super class, digunakan untuk menunjukkan class induk secara hirarkis dari sub class (class anak).

    Extends, digunakan untuk menunjukkan bahwa suatu class merupakan turunan dari class lain. Misal A extends B, berarti class A adalah turunan dari class B. A merupakan

    subclass, sedangkan B merupakan superclass.

    Super, digunakan untuk memanggil konstruktor dari super class atau memanggil variabel yang mengacu pada super class. Misal super(x,y,z), berarti atribut x, y, dan z diambil dari

    atribut pada class induk.

    b. Cara Pewarisan Kelas.

    Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk :

    Class KelasTurunan extends KelasDasar{

    Tubuh kelas

    }

    c. Pemanggilan construktor Super Kelas

    Superkelas tidak mengandung konstruktor. Untuk itu digunakan kata kunci super.

    Super (nama , nim )

    Pemanggilan konstruktor kelas dasar harus memenuhi persyaratan berikut :

    Pemanggilan dengan super seperti diatas hanya bisa dilakukan pada konstruktor.

    Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan

    pertama dalam konstruktor.

    d. Overriding Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class

    induk apabila class anak menginginkan adanya informasi yang lain. Overriding dilakukan

    dengan cara menulis ulang method yang ada pada class induk dengan syarat bahwa nama

    dan parameter fungsi tersebut harus sama (tidak boleh diubah). Meskipun fungsi telah

    ditulis ulang oleh class anak, fungsi yang asli pada class induk masih dapat dipanggil di

    class anak dengan menggunakan class super.

    e. Overloading Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang memiliki

    nama yang sama. Pada bahasan overloading dikenal istilah signature. Signature sebuah

    fungsi adalah parameter lengkap dengan tipe datanya yang terdapat dalam fungsi tersebut.

    Misal terdapat fungsi: public int jumlahMahasiswa (int laki2, int

    perempuan,

    String kelas);

    maka signature dari fungsi tersebut adalah (int, int, String). Suatu fungsi dikatakan di-

    overload manakala terdapat beberapa fungsi dengan nama yang sama namun memiliki

    signature yang berbeda-beda, sebagai contoh:

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 18

    public void infoMahasiswa (int laki2, int perempuan,

    String

    kelas)

    {

    ...

    }

    public void infoMahasiswa (int mhsLama, int mhsBaru, int

    mhsCuti, int angkatan)

    {

    ...

    } f. Latihan

    1. Contoh Kasus Pewarisan

    Menunjukkan hirarki kelas dosen., memiliki turunan berupa kelas rektor, kelas dekan dan

    kelas kalab. class induk (class dosen) memiliki atribut nama, nik dan jurusan. Method

    yang dimiliki oleh class dosen adalah view(). Class turunan dari class dosen ada tiga

    class. Pada class rektor, terdapat tambahan atribut berupa th_mulai dan jabatan_ke, serta

    method viewRektor(). Pada class dekan terdapat tambahan atribut fakultas, dan method

    viewDekan(). Pada class kalab terdapat tambahan atribut laboratorium, dan method

    viewKalab().

    DOSEN

    nama

    nik

    jurusan

    View()

    DEKAN

    fakultas

    Viewdekan()

    KALAB

    laborat

    Viewkalab()

    REKTOR

    Th_mulai

    Jabatan

    Viewrektor()

    Pendefinisian class dosen

    Public class Dosen {

    protected String nama

    protected String nik;

    protected String jurusan;

    Dosen (String namaX, String nikX, String

    jurX)

    {

    nama = namaX;

    nik = nikX;

    jurusan = jurX;}

    public void view() {

    System.out.println(Nama : +nama);

    System.out.println(nik : +nik);

    System.out.println(jurusan : +jurusan)

    Pendefinisian class rektor

    public class rector extends Dosen{

    private int th_mulai;

    private int jabatan_ke;

    Rektor (String namaX, String nikX,

    String jurX, int thX, int keX){

    super(namaX, nikX, jurX);

    {th_mulai = thX;

    jabatan_ke = keX;

    }

    public void viewrektor(){

    System.out.println(Th mulai jabatan:

    +th_mulai);

    System.out.println(jabatan rector

    ke: +jabatan_ke);

    Memanggil variable

    yang mengacu pada

    dosen (super class)

    Constructor

    untuk kelas

    Dosen

    Method yang akan

    dilkukan overriding Overriding metode view

    pada superclass dosen

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 19

    Pendefinisian kelas dekan

    public class Dekan extends Dosen{

    private String fakultas;

    Dekan(String namaX, String nikX, String

    jurX, String fakX){

    super(namaX, nikX, jurX);

    fakultas = fakX;

    }

    public void viewdekan(){

    System.out.println(Fakultas :

    +fakultas):

    }

    }

    Pendefinisian class kalab

    Public class kalab extends Dosen{

    Private String laboratorium;

    Kalab (String namaX, String nikX,

    String jurX, String labX){

    Super(namaX, nikX, jurX);

    Laboratorium = labX;

    }

    Public void view kalab(){

    System.out.println(laboratorium :

    +laboratorium);

    }

    }

    Pewarisan pada kelas dosen

    public class Main{

    public static void main(String[] args){

    Rektor rek = new Rektor(Ahmad,

    005343594,informatika, 2006,2);

    Dekan dek = new Dekan (Dina,

    932221234,T.Kimia,TI);

    Kalab lab = new Kalab

    (Indah,068336234,Informatika,KSC);

    rek.view();

    rek.viewrektor();

    dek.view();

    dek.viewdekan();

    lab.view();

    lab.viewkalab();

    }

    }

    Contoh overloading (1)

    Public class mahasiswa{

    Public void infoMahasiswa(int laki2,

    int pr, String kelas){

    Int jumlah = laki2 + pr;

    System.out.prinyln(jumlah mhasiswa=

    +jumlah);

    }

    Public void infoMahasiswa(int mhsLama,

    int mhsbaru, int mhsCuti, int

    angkatan){

    Int jumlah = mhsLama+mhsBaru+mhsCuti);

    System.ou.println(sampai tahun

    +angkatan+ jumlah mahasiswa

    +jumlah);

    }

    }

    Contoh overloading (1)

    public class Main {

    public static void main(String[] args){

    mahasiswa M= new mahasiswa();

    M.infoMahasiswa(60,18,kelas A angkatan

    2013):

    M.infoMahasiswa(1000,400,25,2008);

    }}

    Pada class tersebut terdapat dua subclass

    dengan nama yang sama yaitu infoMahasiswa

    namun memiliki signature yang berbeda.

    Subclass pertama digunakan untuk menghitung

    jumlah mahasiswa kelas A angkatan 2008.

    Sedangkan pada subclass kedua digunakan

    untuk menghitung jumlah mahasiswa aktif

    sampai tahun 2008.

    Overloading fungsi ditentukan oleh signature

    nya, tidak ditentukan oleh nilai balikan fungsi.

    Dalam satu class, apabila ada dua atau lebih

    fungsi yang memiliki nilai balikan yang

    berbeda namun memiliki signatue yang sama,

    maka fungsi tersebut tidak dapat dikatakan

    sebagai overloading.

    Pemanggilan

    konstruktor

    Pemanggilan

    method di setiap

    subclass

    overloading

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 20

    BAB VIII POLIMORFISME

    1. Tujuan Praktikum

    Mampu membuat method Polimorfisme untuk implementasi listingcode yang berbeda sesuai dengan behavior masing- masing kelas.

    Mampu membuat Variabel instans sebagai penentu akses pada kelas public, kelas private dan protected

    2. Dasar teori

    Polimorfisme Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara

    yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa

    diisi dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan

    tipe.Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan

    yaitu:

    1. Semua kelas diturunkan dari suatu kelas yang sama 2. Method yang dipanggil harus melalui variabel dari super class. 3. Method yang dipanggil juga harus merupakan method yang ada pada super class. 4. Signature method harus sama baik yang ada pada super class maupun di subclass. 5. Method access attribute pada subclass tidak boleh lebih terbatas daripada yang ada

    pada super class.

    Program polimorfisme(1)

    class Binatang{

    public void info() {

    System.out.println(" Info tentang

    Hewan : ");

    }

    } class Herbivora extends Binatang {

    public void info() {

    System.out.println ("Info pada

    herbivora: Memakan makanan

    berupa tumbuh - tumbuhan");

    }

    }

    class Kelinci extends Herbivora{

    public void info(){

    System.out.println("Info pada Kelinci:

    Memakan makanan berupa

    wortel");

    }

    }

    public class Polimorfisme {

    public static void main(String[] args)

    {

    Herbivora herbivora;

    Kelinci kelinciku;

    Binatang hewan;

    herbivora=new Herbivora();

    kelinciku=new Kelinci();

    hewan=herbivora;

    hewan.info();

    hewan=kelinciku;

    hewan.info();

    }

    }

    Program polimorfisme (2)

    Pendefinisian class kendaraan

    public class kendaraan {

    private String model;

    public kendaraan (String model){

    this.model = model;

    }

    Public void informasi(){}

    }

    merupakan program untuk membangun class

    kendaraan. Pada class kendaraan mewarisi ke tiga

    class, yaitu class pesawat, mobil, dan kapal.

    Pendefinisian class pesawat

    Public class pesawat extends kendaraan{

    Private String nama;

    Private String jenis;

    }

    Public pesawat(String nama){

    Super(pesawat);

    This.nama = nama;

    Jenis = belum teridentifikasi;

    }

    Public pesawat (String nama, String

    jenis){

    Super(pesawat);

    This.nama=nama;

    This.jenis=jenis;

    }

    Public void informasi(){

    System.out.println(nama pesawat

    adalah+nama);

    System.out.println(jenis pesawat

    adalah+jenis);}}

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 21

    Program polimorfisme (3)

    Pendefinisian Kelas manusia /*

    Disimpan dalam file manusia.java

    */

    public class manusia

    {

    public String nama;

    public manusia(String n)

    {

    this.nama = n;

    }

    public String tampilkanNama()

    {

    return nama;

    }

    public void makan()

    {

    System.out.println("Nyam... nyam...

    nyam...");

    }

    public void kerja()

    {

    System.out.println("Kerja...kerjaaa...");

    }

    }

    Sebagai contoh kelas manusia diturunkan

    menjadi kelas: programmer, tentara /*

    Disimpan dalam file programmer.java

    */

    public class programmer extends manusia{

    public programmer(String n){

    super(n);

    }

    public void kerja(){

    System.out.println("TakTakKlik..");

    }

    public void bersantai(){

    System.out.println("Game over, You

    lose...");

    }

    }

    polimorfisme untuk alat-alat transportasi

    Pada program utama dilakukan pemanggilan

    terhadap ketiga class tersebut, masing-masing dengan

    parameter yang bersesuaian

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 22

    /*

    Disimpan dalam file tentara.java

    */

    class tentara extends manusia

    {

    public String pangkat;

    public tentara(String n, String p)

    {

    super(n);

    this.pangkat= p;

    }

    public String tampilkanPangkat()

    (4)

    {

    return pangkat;

    }

    public void kerja()

    {

    System.out.println("Dor... Dor...

    Dor..");

    }

    }

    dari manusia diturunkan kelas sopir. Kelas sopir

    diimplementasikan dalam java

    /*

    Disimpan dalam file sopir.java

    */

    public class sopir extends manusia

    {

    public sopir(String n)

    {

    super(n);

    }

    public void kerja()

    {

    System.out.println("Ngung... Ngung...

    Ngung...Ciiit..");

    }

    }

    Dedi adalah seorang sopir keturunan

    manusia, untuk menginstantiasi objek dedi

    ditunjukkan

    dalam kode berikut. /*

    Disimpan dalam file dedi.java

    */

    public class dedi

    {

    public static void main(String arg[])

    {

    sopir dedi= new sopir("Dedi");

    System.out.println("Nama= "+

    dedi.tampilkanNama());

    dedi.makan();

    dedi.kerja();

    }

    }

    Kemudian Andi sang programmer, Badu sang tentara

    dan Dedi sang sopir diperintahkan untuk bekerja, apa

    reaksinya? /*

    Disimpan dalam file pekerja.java

    */

    public class pekerja

    {

    public static void main(String args[])

    {

    manusia[] profesi= new manusia[3];

    profesi[0]=new programmer("Andii");

    profesi[1]=new tentara("Badu","Kopral");

    profesi[2]=new sopir("Dedi");

    for (int i=0; i

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 23

    BAB VIII INTERFACE

    1. Tujuan Praktikum

    Memahami konsep pewarisan ganda

    Memahami konsep interface

    Mengimplementasikan Interface pada Java untuk melakukan pewarisan ganda 2. Dasar Teori

    Untuk membuat suatu kelas dapat kita turunkan dengan pewarisan field-field dan metodh pada

    base classnya. Bagaimana kita membuat kelas yang menurunkan sifat dari beberapa base class?

    misalkan kita akan membuat kelas superman yang dia bisa membuat program layaknya

    programmer, dia juga ahli menggunakan senjata layaknya tentara, bahkan dia bisa terbang seperti

    elang (keturunan binatang)? Caranya adalah dengan pewarisan ganda. Dalam Java tidak dikenal

    pewarisan ganda, sehingga digunakan interface.

    /*

    Disimpan dalam file "superman.java"

    */

    interface programmer {

    void memrogram();

    }

    interface tentara {

    void menembak();

    }

    interface burung {

    void terbang();

    void buangKotoran();

    }

    class superman implements programmer,tentara,burung {

    public void memrogram(){};

    public void menembak(){};

    public void terbang(){};

    public void buangKotoran(){};

    }

    Kemudian kelas superman diinstantiasi menjadi objek bernama bejo, contoh kode

    program

    /*

    Disimpan dalam file "bejo.java"

    */

    public class bejo

    {

    public static void main(String arg[])

    {

    superman bj= new superman();

    bj.memrogram();

    {

    System.out.println("Implementasi memrogram ...tak..tik");

    }

    bj.menembak();

    {

    System.out.println("Implementasi menembak ...dor..dor");

    }

    bj.terbang();

    {

    System.out.println("Implementasi terbang......Zap....");

    }

    }

    }

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 24

    Dalam kode diatas bejo menentukan sendiri cara mengimplementasi beberapa metodh dari

    interface yang telah didefiniskan dalam kelas superman (misalkan cara memrogramnya

    bagaimana, cara menembaknya bagaimana dan cara terbangnya seperti apa), selain itu bejo tidak

    berminat untuk mengimplementasikan metodh buangKotorang dari interface burung (misalnya

    karena burung biasa membuang kotorang di sembarang tempat). Jadi interface dapat

    dianalogikan seperti menandatangani kontrak kerja, misalnya sebagai dosen dia wajib mengajar,

    membuat soal ujian dsb, akan tetapi cara mengajarnya dan membuat soalnya dilakukan terserah

    masing-masing dosen (tidak ditentukan dalam kontrak kerja).

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 25

    BAB X INPUT DAN OUTPUT

    1. Tujuan Praktikum

    Praktikan mampu mengenali dan memahami input dan output (I/O) dalam pemrograman

    dengan Java.

    Mampu membuat sistem stream untuk penanganan operasi input/output, buffered stream

    dan random accees file.

    2. Dasar teori

    Stream

    Operasi input dan output pada java menggunakan konsep aliran data,Aliran data sendiri

    sudah di lakukan dan di pelajari pada bab-bab sebelumnya yaitu aliran data dari device

    output dengan memanfaakan method println() pada objek System.out, dan device input pada

    objek System.in dari kelas System Stream adalah aliran data yang berupa aliran byte atau

    karakter, dari device input ke divice output pada saat program di eksekusi. Proses untuk

    membaca data dari layar lalu memprosesnya pada saat program dijalankan serta

    menampilkan hasil proses tersebut pada layar console dilakukan oleh kelas

    InputStreamReader, kelas ini akan membaca data yang diketikkan oleh user melalui console

    dan sekaligus memperlakukannya sebagai Stream, tahap yang dilakukan oleh kelas

    InputStreamReader meliputi 3 langkah yaitu:

    1. Membuat objek dari kelas InputStreamReader, dengan sintaks

    InputStreamReader dataIn = new

    InputStreamReader(System.in);

    2. Menampung objek Stream ke buffer

    BufferedReader bufIn = new BufferedReader(dataIn,1);

    3. Membaca data dari objek Stream

    String data = bufIn.readLine();

    Inputan dan penyimpanan sementara data dari keybord untuk proses kemudian di outputkan

    hasilnya bisa bermacam-macam cara antara lain:

    1. Dengan melakukan langkah-langkah seperti InputStreamReader diatas dimana kita harus

    membuat objek dari kelas InputStramReader, lalu menampung objek Stream ke buffer,

    kemudian membaca data dari objek stream

    import java.io.*;

    public class Persegi1

    {

    public static void main(String args[])

    {

    try

    {

    System.out.print("masukkan panjang = ");

    InputStreamReader pnj = new

    InputStreamReader(System.in);

    BufferedReader input1 = new BufferedReader(pnj,1);

    String panj = input1.readLine();

    int panjang=Integer.parseInt(panj);

    System.out.print("masukkan Lebar = ");

    InputStreamReader lbr = new

    InputStreamReader(System.in);

    BufferedReader input2 = new BufferedReader(lbr,1);

    String lebr = input2.readLine();

    int lebar=Integer.parseInt(lebr);

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 26

    int luas=panjang*lebar;

    System.out.println("Luas persegi = "+luas);

    }

    catch (IOException e)

    {

    e.printStackTrace();

    }

    }

    }

    2. Selain itu juga ada cara untuk mengimputkan data dari console dengan memanfaatkan

    kelas yang kita buat sendiri dimana kelas ini nantinya akan diwariskan pada suatu file

    yang memanggil dan membutuhkan warisan dari kelasyang kita buat, sehingga proses

    yang dilakukan oleh kelas InputStreamReader hanya ada pada kelas induk yang akan

    mewarisi

    import java.io.*;

    public class InputConsole{

    /**Membaca string dari keyboard*/

    public static String readString(){

    BufferedReader bfr = new BufferedReader(new

    InputStreamReader(System.in),1);

    // Menginisialisasi string

    String string = " ";

    // Get the string from the keyboard

    try{

    string = bfr.readLine();

    }

    catch (IOException ex){

    System.out.println(ex);

    }

    // Mengembalikan string hasil pembacaan dari keyboard

    return string;

    }

    /**Mengambil nilai int dengan parsing string input dari

    keyboard*/

    public static int readInt(){

    return Integer.parseInt(readString());

    }

    //Mengambil nilai byte dengan parsing string input dari keyboard

    public static byte readByte(){

    return Byte.parseByte(readString());

    }

    //Mengambil nilai short dengan parsing string input dari keyboard

    public static short readShort(){

    return Short.parseShort(readString());

    }

    //Mengambil nilai long dengan parsing string input dari keyboard

    public static long readLong(){

    return Long.parseLong(readString());

    }

    //Mengambil nilai float dengan parsing string input dari

    keyboard

    public static float readFloat()

    {

    return Float.parseFloat(readString());

    }

    //Mengambil nilai double dengan parsing string input dari

    keyboard

    public static double readDouble(){

    return Double.parseDouble(readString());

    }

    }

    Membuat kelas pemanggil agar kelas induk diatas bisa berguna

    public class Persegi2{

    public static void main(String args[]){

    int panjang;

    int lebar;

    int luas;

    System.out.println("Masukkan Panjang = " );

    panjang = InputConsole.readInt();

    System.out.println("Masukkan Lebar = ");

    lebar = InputConsole.readInt();

  • Modul Pemrograman Berorientasi Objek

    Laboratorium Teknologi Jaringan Page 27

    luas=panjang*lebar;

    System.out.println("Luas Persegi = "+luas);

    }

    }

    Membaca Input Data Karakter Untuk membaca input berupa karakter, kita bisa menggunakan method read() yang terdapat pula

    pada kelas BufferedReader. Berikut ini contoh program yang akan menunjukkan bagaimana

    menangani proses input data karakter.

    Program dengan proses input data karakter import java.io.*;

    class DemoInputKarakter {

    public static void main(String[] args) throws

    IOException {

    System.out.print("Masukkan sebuah karakter: ");

    char KarakterInput;

    InputStreamReader isr = new InputStreamReader(System.in);

    BufferedReader br = new BufferedReader(isr);

    KarakterInput = (char) br.read();

    System.out.println("Karakter yang dimasukkan adalah \'" +

    KarakterInput + "\'");

    }

    }

    Membaca Input Data String Untuk membaca input berupa string, kita bisa menggunakan method readLine(), bukan method

    read(). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input

    data string.

    Program dengan proses input data string import java.io.*;

    class DemoInputString {

    public static void main(String[] args) throws

    IOException {

    System.out.print("Masukkan nama Anda: ");

    String namaInput;

    InputStreamReader isr = new InputStreamReader(System.in);

    BufferedReader br = new BufferedReader(isr);

    namaInput = br.readLine();

    System.out.println("Halo " + namaInput + "...");

    System.out.println("Semoga Anda Sukses Selalu..");

    }

    }

    Membaca Input Data Numerik Untuk membaca input berupa data numerik, kita bisa menggunakan method readLine() seperti

    pada saat menangani input data string, dan selanjutnya string hasil input tersebut dikonversi ke

    tipe numerik. Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses

    input data numerik.

    Program dengan proses input data numerik import java.io.*;

    class DemoInputNumerik {

    public static void main(String[] args) throws

    IOException {

    System.out.print("Masukkan sebuah bilangan bulat : ");

    String temp;

    int bilanganInput = 0;

    InputStreamReader isr = new InputStreamReader(System.in);

    BufferedReader br = new BufferedReader(isr);

    // input data dianggap sebagai string

    temp = br.readLine();

    try {

    // konversi dari string ke integer

    bilanganInput = Integer.parseInt(temp);

    } catch (NumberFormatException nfe) {

    System.out.println("Nilai yang dimasukkan "

    + "bukan bilangan bulat");

    System.exit(1);

    }

    System.out.println("Bilangan yang anda masukkan adalah " +

    bilanganInput);

    }}