modul pbo

28
MODUL PRAKTIKUM PBO PEMROGRAMAN BERORIENTASI OBJEK DENGAN JAVA

Upload: fendyxcyber

Post on 23-Oct-2015

90 views

Category:

Documents


3 download

DESCRIPTION

modul

TRANSCRIPT

Page 1: MODUL PBO

MODUL PRAKTIKUM PBO

PEMROGRAMAN BERORIENTASI OBJEK DENGAN JAVA

Sekolah Tinggi Manajemen Informatika dan Komputer 

HIMSYA SEMARANG

Tugas: karno efendi

Page 2: MODUL PBO

INTRODUCTION JAVA

1. TUJUAN

Mahasiswa mampu :

Membuat class “Hello world” dengan java menggunakan command-prompt dan GUI

Melakukan konfigurasi path pada komputer

Memahami argument command line

2. ALAT YANG DIGUNAKAN

Compiler Java (JDK), JRE

Editor Java (Netbeans)

3. PROSEDUR PRAKTIKUM

1. Latihan 1 :

Melakukan instalasi J2SDK, kemudian melakukan konfigurasi path pada computer.

(Sesuai dengan arahan instruktur)

Tugas :

Tuliskan langkah per-langkah konfigurasi path pada kolom dibawah ini!

2. Latihan 2 :

Buka text editor pada computer (ex. Notepad), tuliskan kode program dibawah ini

dengan menggunakan text editor.

public class Hello {

public static void main(String[] args){

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

}

}

Simpan dengan nama “Hello.java” pada drive-D computer anda.

Buka command-prompt, masuk ke drive-D. Tuliskan perintah berikut ini :

Page 3: MODUL PBO

javac Hello.java

Jika tidak ada error, lanjutkan dengan menuliskan perintah : java Hello

Tugas :

Tuliskan output dari class Hello.java setelah dijalankan!

Jelaskan perbedaan perintah javac dan java untuk menjalankan program java pada

command prompt!

3. Latihan 3 :

Melakukan instalasi IDE (sesuai dengan arahan instruktur). Mengenal fitur-fitur IDE

terutama editor, perintah untuk compile dan run.

Tugas :

Buatlah class Hello seperti yang ada pada Latihan 2, tetapi dengan

menggunakan IDE.

Berikan printscreen output yang dihasilkan dan jelaskan dengan singkat kelebihan

IDE dibandingkan menggunakan text editor dan command prompt (sesuai dengan

pengalaman anda sendiri)!

4. Latihan 4 :

Argument Command-Line

Tugas :

Dapatkan input dari user dengan menggunakan argument command line dan cetak

semua argument ke layar. Sebagai contoh, jika user memasukan input sbb :

Maka program dapat mencetak :

Page 4: MODUL PBO

5. Latihan 5 :

Membuat program GUI sederhana dengan Java

Tugas :

Tampilkan kata Hello world” pada text area ketika tombol di-klik!

4. TUJUAN Mahasiswa memahami konsep dasar pemrograman Java Mahasiswa memahami tipe data dasar dan variable, tipe data, dan operator yang

terdapat di dalam bahasa Pemrograman Java Mahasiswa memahami dan mengimplementasikan percabangan dan control flow yang

terdapat di dalam bahasa Pemrograman Java Mahasiswa mampu memahami dan mengimplementasikan konsep array di java

5. ALAT YANG DIGUNAKAN Compiler Java (JDK) Editor Java (Netbeans)

6. DASAR TEORIBerkaitan dengan konsep dasar Pemrograman Java, tipe data, operator, variable, percabangan, control flow, dan array.

7. PROSEDUR PELAKSANAAN Tutorial.

◦ Input dan ouput dasar dalam pemrograman Java◦ Variabel dan tipe data dasar dalam pemrograman Java◦ Implementasi control flow (looping dan branching) di dalam program.

Mahasiswa mengerjakan soal-soal latihan berdasarkan topik-topik yang ada di dalam tutorial.

Mahasiswa mengerjakan soal tugas praktikum. Mahasiswa mendemokan tugas praktikum ke asisten Mahasiswa membuat laporan dari hasil praktikum

8. LATIHAN1. Program array sederhana untuk tipe data int dan char. Dengan cara instansiasi dan inisialisasi yang berbeda.

public class SimpleArray {

Page 5: MODUL PBO

public static void main(String[] args)

{

int angka[] = new int[10]; //deklarasi & instansiasi

//inisialisasi array angka

for(int i=1;i<10;i++)

angka[i]=i;

//pengaksesan array angka

for(int i=1;i<10;i++)

System.out.print(angka[i]);

System.out.println();

char huruf[] = {'a','b','c','d','e','f'}; //deklarasi, instansiasi, inisialisasi

for(int i=0;i<huruf.length;i++) //penggunaan length untuk panjang array

System.out.print(huruf[i]); //pengaksesan array huruf

}

}

2. Program untuk menampilkan text secara berulang sesuai dengan masukkan angka dari user dengan menggunakan class scanner.

import java.util.Scanner;

public class UlangNama {

public static void main(String[] args)

{

Scanner scan = new Scanner(System.in);

Page 6: MODUL PBO

System.out.print("Masukkan angka: ");

int angka = scan.nextInt();

for(int i=0;i<angka;i++)

System.out.println("Aku Cinta JAVA");

}

}

3. Program untuk menampilkan bintang * dengan bentuk tertentu

public static void main(String[] args)

{

for(int i=0;i<5;i++)

{

for(int j=0;j<=i;j++)

System.out.print("*");

System.out.println();

}

}

}

4. Jalankan program pada latihan 1,2,3 kemudian lakukan analisa untuk memahami struktur

array, pengkondisian dan perulangan.

5. Lakukan modifikasi pada program nomor 1. Buat panjang elemen array bersifat dinamis

dengan cara memasukan input dari keyboard. (Gunakan class scanner)

Ketik program dibawah ini, jika ada kesalahan ketika compile dan runtime, betulkan!

Program 1 ( simpan dengan nama : TestGreeting.java)

Page 7: MODUL PBO

Program 2 ( simpan dengan nama : Test2.java)

Program 3 ( simpan dengan nama : Test3.java)

Program 4 ( simpan dengan nama : Test4.java)

9. Program berikut mengilustrasikan bagaimana cara mendeklarasikan dan memberi nilai (inisialisasi) pada variabel dengan tipe data int, float, boolean, char, dan String.

Page 8: MODUL PBO

10. Default value tiap tipe data

11. Program untuk menampilkan bilangan basis 8. Jalankan program dibawah ini kemudian ganti angka 0 didepan angka menjadi 0x, apa yang terjadi?

Page 9: MODUL PBO

12. Menggunakan unicode

13. Program type casting/ primitif conversion. Jalankan program dibawah ini kemudian coba lakukan konversi dari int ke short, apa yang terjadi? (analisa hasilnya)

Page 10: MODUL PBO

6. TUGAS PRAKTIKUM

1. Perhatikan table berikut ini :

Tabel diatas berisi data nilai siswa. Setiap siswa memiliki tiga nilai : tugas rumah

(Homework average), kuis (exam average), dan ujian akhir (final exam). Masing-masing

nilai memiliki prosentase sbb : tugas rumah (45%), kuis (35%), dan ujian akhir (20%).

Nilai akhir adalah penjumlahan dari ketiga nilai diatas setelah dikalikan prosentasenya

masing-masing.

Tugas anda (berkelompok) adalah :

1. menghitung nilai akhir untuk setiap siswa (ada 15 siswa)

2. mengubah nilai akhir menjadi nilai huruf dengan aturan sbb :

• > 80 = A

Page 11: MODUL PBO

• 75 – 80 = B+

• 70 – 74,9= B

• 60 – 69 = C+

• 55 – 59,9 = C

• 40 – 54,9 = D

• < 40 = E

3. Hitung rata-rata nilai akhir keseluruhan siswa. Kemudian buatlah dua

pengelompokkan berdasarkan nilai rata-rata dibandingkan nilai akhir setiap siswa.

Jika nilai siswa < rata-rata, maka pesan = “Belajar lebih giat lagi”

Jika nilai siswa >= rata-rata, maka pesan = “Pertahankan prestasimu”

Petunjuk : Gunakan array untuk menyimpan data-data tersebut.

14.TUJUANMahasiswa mampu :

1. Mendeklarasikan class beserta member class

2. Mengakses member class

3. Memberikan nilai/inisialisasi class dengan menggunakan constructor

4. Membaca class diagram dan membuat program dari class diagram

15.ALAT YANG DIGUNAKAN Compiler Java (JDK) Editor Java (Netbeans)

16.DASAR TEORI CLASS & OBJECT

Class adalah blueprint/cetakan dari object yang dibentuk. Sedangkan object adalah hasil instansiasi/bentukan dari sebuah class. Dengan kata lain satu class dapat membentuk object sampai tak terhingga.

Syntax class :

Page 12: MODUL PBO

contoh :

class Sepeda{

//data-field :

int speed;

//method :

void ubahGear()

{

}

public static void main(String[] args)

{

System.out.println(“ini adalah main method”);

}

class nama_class{

//data-field .......//method.......

}

Page 13: MODUL PBO

}

Syntax pembuatan object :

contoh :

Sepeda.bike = new Sepeda(); //perintah untuk membuat object yang mengacu ke class Sepeda.

Variabel

Syntax pengaksesan field :

contoh :

bike.speed; //perintah untuk mengakses variabel speed melalui object speed.

Method

Syntax deklarasi :

nama_class nama_object = new nama_class();

nama_object.nama_field;

Page 14: MODUL PBO

Return type berhubungan dengan nilai yang akan dikembalikan oleh method (return value) ketika proses invoking/pemanggilan.

Return type bisa berupa tipe data primitif maupun tipe reference.

Method yang tidak memiliki return value memiliki return type void.

Method yang memiliki return value memiliki statement return didalam blok-nya.

Parameter adalah variabel yang akan menangkap argument yang dikirim ketika proses invoking method.

Aturan penulisan parameter sama seperti deklarasi variabel.

Ditulis diantara tanda ( dan) pada method signature.

Parameter bersifat optional. Method bisa memiliki parameter kosong.

Untuk method yang memiliki lebih dari satu parameter penulisannya dipisahkan dengan tanda koma (,)

Syntax pengaksesan method :

contoh :

bike.ubahGear();

PASS by Value

Mengirimkan value/nilai ke parameter method

<modifier> <return_type> <nama_metode> ([parameter])

{[<statement>]

}

nama_object.nama_method();

Page 15: MODUL PBO

PASS by REFERENCE

Mengirimkan alamat memori/referensi ke parameter method

Method Overload

Sebuah class dapat memiliki beberapa method dengan nama yang sama.

Pembeda antara method-method tersebut adalah parameter.

Method Accessor

digunakan untuk membaca value (variabel) dari class.

String nama = “Shanti”;

Mahasiswa.getNama(nama);

Student maba = new Mahasiswa();

Mahasiswa.getNama(maba);

public void print (String temp){

System.out.println(“Name:”+name);

System.out.println(“Address:”+address);

System.out.println(“Age”+age);

}

public void print(double eGrade, double mGrade, double sGrade){

System.out.println(“Name”+name);System.out.println(“Math Grade”+mGrade);System.out.println(“English Grade”+eGrade);System.out.println(“Science Grade”+sGrade);

}

Page 16: MODUL PBO

ditulis dengan menggunakan sintaks berikut:

get<NameOfInstanceVariable>

dapat me-return value.

Method Mutator

digunakan untuk menulis atau mengubah value (variabel) dari class.

Ditulis dengan menggunakan sintaks berikut:

set<NameOfInstanceVariable>

MODIFIER

Digunakan untuk mengatur hak akses class dan member class.

Terdiri dari access modifier : public, private, protected, dan no modifier.

dan modifier jenis lain: static, final, abstract, dll.

public class StudentRecord {

private String name;

public String getName(){

return name;

}}

public class StudentRecord {

private String name;

public void setName( String temp ){

name = temp;}

}

Page 17: MODUL PBO

CONSTRUCTOR

Digunakan untuk memberikan inisialisasi pada object.

Syntax constructor sama seperti method namun tidak memiliki return value.

Nama constructor harus sama dengan nama class.

Contoh :

Pengaksesan constructor :

Contoh pengaksesan constructor :

Pengaksesan constructor tanpa parameter :

Mahasiswa maba = new Mahasiswa();

Pengaksesan constructor dengan 1 parameter :

Mahasiswa maba = new Mahasiswa(“Santi”);

Pengaksesan constructor dengan 2 parameter :

Mahasiswa maba = new Mahasiswa(“1234”,”Santi”);

OverLoad Constructor

Sebuah class dapat memiliki lebih dari satu constructor.

class Buku(){

Buku(){

judul = “apa aja”;

pengarang = “siapa saja”;

}}

namaClass namaVariabel = new namaClass( nilai

constructor);

Page 18: MODUL PBO

Pembeda constructor overloading tersebut adalah parameter.

17.PROSEDUR PELAKSANAANProsedur pelaksanaan praktikum adalah sebagai berikut :

1. Mahasiswa mencoba latihan yang ada pada modul praktikum2. Mahasiswa menganalisa hasil dari program pada latihan yang telah dijalankan3. Mahasiswa mengerjakan tugas yang diberikan4. Mahasiswa membuat laporan dari tugas yang telah dikerjakan (dilengkapi dengan

Hasil praktikum dan kesimpulan).5. Upload laporan melalui e-labit.umm.ac.id6. Mahasiswa mendemonstrasikan program yang telah dikerjakan7. Asisten/dosen menilai pekerjaan mahasiswa

18.LATIHAN

19.TUGAS PRAKTIKUM

Gambar 1. Class diagram

public StudentRecord(){//beberapa kode inisialisasi di

sini}public StudentRecord(String temp){

this.name = temp;}public StudentRecord(String name, String address){

this.name = name;this.address = address;

}public StudentRecord(double mGrade,double eGrade,double sGrade){

mathGrade = mGrade;englishGrade = eGrade;scienceGrade = sGrade;

}

Page 19: MODUL PBO

Petunjuk : perhatikan gambar 1 diatas untuk mengerjakan tugas berikut secara berkelompok!

7.1 Buatlah Sebuah class yang merepresentasikan diagram “Data Siswa” pada gambar 1 diatas. Lengkapi member class dengan memahami penjelasan berikut : Deklarasikan seluruh atribut/variable yang ada pada diagram tersebut. Sesuaikan

juga tipe data untuk masing-masing variable sesuai dengan keterangan yang ada pada diagram.

Method add() : tambahkan 1 parameter pada method add() dengan nama nomor bertipe byte. Parameter ini digunakan untuk inisialisasi nilai ke variable “no pendaftaran”. Selanjutnya tambahkan statement pada body method untuk menampilkan pesan ke layar sebagai berikut : “No pendaftaran = [XXXX], nama = [XXXX] telah terdaftar”. Dimana XXXX adalah nilai hasil pengaksesan variable.

Tuliskan konstruktor pada class, dimana konstruktor akan melakukan inisialisasi seluruh variable kecuali “no pendaftaran”.

7.2 Buatlah Sebuah class yang merepresentasikan diagram “Hasil Seleksi” pada gambar 1 diatas. Lengkapi member class dengan memahami penjelasan berikut : Deklarasikan ketiga variable sesuai dengan tipe data yang diberikan. Method add() : [sesuaikan dengan tugas nomor 1] namun tambahkan 1 parameter

lagi bernama pilihKelas bertipe String untuk inisialisasi nilai ke variable “pemilihan kelas”. Jadi method ini memiliki 2 parameter. Selanjutnya tambahkan statement pada body method untuk menampilkan pesan ke layar sebagai berikut : “No pendaftaran = [XXXX], nama = [XXXX], pilihan kelas = [XXXX]”. Dimana XXXX adalah nilai hasil pengaksesan variable.

Method update() : jadikan return type-nya adalah string. Selanjutnya tambahkan 1 parameter bernama tanggal bertipe string. Pada body method tuliskan statement untuk menampilkan pesan ke layar sebagai berikut : “Data telah ter-update”. Jadikan variable tanggal sebagai return value.

Method select() : tambahkan 1 parameter bernama status bertipe Boolean. Pada body method tuliskan percabangan untuk mengecek nilai variable status. Jika

Page 20: MODUL PBO

status=true maka tampilkan pesan “Nama = [XXXX] lulus seleksi”. Jika status=0 tampilkan pesan “Nama = [XXXX] tidak lulus seleksi”. Dimana XXXX adalah nilai hasil pengaksesan variable nama.

7.3 Buatlah Sebuah class yang merepresentasikan diagram “Registrasi siswa” pada gambar 1 diatas. Lengkapi member class dengan memahami penjelasan berikut : Deklarasikan kedua variable sesuai dengan tipe data yang diberikan. Tambahkan konstruktor pada class, dimana konstruktor digunakan untuk

memberikan nilai default pada variable Kelas dengan nilai 1 (dimana nilai variable kelas yang dapat diberikan nantinya adalah dari nilai 1 sampai 6) sedangkan nilai default dari variable “daftar ulang” adalah 0000.

Method add() : Tuliskan statement pada body method untuk menampilkan pesan sebagai berikut “No pendaftaran = [XXXX] telah melakukan daftar ulang untuk kelas [XXXX]”. Dimana XXXX adalah nilai hasil pengaksesan variable.

Method edit() : tambahkan 2 parameter bernama kelas dan “no pendaftaran”, dimana masing-masing parameter memiliki tipe byte dan string. Parameter kelas digunakan untuk inisialisasi variable kelas, sedangkan variable “no pendaftaran” digunakan untuk inisialisasi variable “daftar ulang”. Berikan return value berupa true. Sesuaikan sendiri return-type yang ditambahkan pada deklarasi method.

Soal Latihan :

1. Class TrafficLight berikut adalah simulasi dari lampu lalu lintas. Coba lakukan setting pada TrafficLight tsb dengan menyalakan lampu merah sebanyak 5 kali, selanjutnya lampu kuning dinyalakan 2 kali, diakhiri dengan menyalakan lampu hijau 10 kali.

Petunjuk : Pada main method lakukan instansiasi obyek yang mengacu ke class TrafficLight. Untuk akses ketiga lampu dapat dilakukan melalui method turnLight().

public class TrafficLight{ boolean bred,bgreen,byellow; void turnLight(int color){ bred=bgreen=byellow=false; switch(color){ case 0: //merah bred = true; break; case 1: //hijau bgreen = true; break; case 2: //kuning byellow = true; break; } } public static void main(String args[]) { // instansiasi obyek ... }}

Page 21: MODUL PBO

. Tuliskan output dari kode program berikut :

. overload constractorperhatikan kode program berikut :

class Point{ int x=1,y=1; void getXY(int x, int y){ x = this.x - x; y = this.y + y; System.out.println(x); System.out.println(y); }

public static void main(String args[]){ Point titik = new Point(); titik.getXY(2,3); }}

class Employee{ String nama; Employee(){ System.out.println("Default constructor"); } Employee(String n){ this.nama = n; System.out.println("constructor dengan 1 parameter"); } void getDetails(){ System.out.println(nama); } public static void main(String args[]) { //Add some code here

Page 22: MODUL PBO

a. lakukan pemanggilan constructor yang memiliki satu parameter melalui obyeknya.b. lakukan overload constructor, tambahkan constructor dengan 3 parameter, yaitu : nama, jabatan, dan nomor induk pegawai. Kemudian lakukan pemanggilan constructor tersebut melalui obyeknya.

4. Tuliskan output yang dihasilkan dari runtime kode program berikut ini :

5. Contoh Override method

6. Method accessor & mutatorDari kode program berikut tentukan yang mana termasuk method accessor dan mutator, sebutkan dan berikan alasannya.

public class Employee{ Employee() { System.out.println("Konstruktor Employee() dijalankan"); }} class Manager extends Employee{ Manager() { System.out.println("Konstruktor Manager() dijalankan"); } public static void main(String args[]){ Manager e = new Manager(); }}

public class Point{ int x=2,y=4; int deltaX = 1, deltaY = 1; int getX() { return x+deltaX; } int getY() { return y+deltaY; }class Shape extends Point{ int x=5, y=7; int testSuper() {

public class Karyawan{ // instance variabel private String nama; private double gaji; void setNama(String nm){ nama = nm; } void setGaji(double gj){ gaji = gj; }

Page 23: MODUL PBO

Tugas Praktikum :

1. Buatlah program dengan membaca diagram class berikut ini :

Keterangan :Class Account merupakan superclass dari class CustomerVariabel :firstname : menyimpan nama depan customerlastname : menyimpan nama belakang customerMethod :getBalance : untuk mendapatkan nilai saldo saat ini.deposit : untuk menambah jumlah saldo sejumlah value yang dikirim pada parameter. Jika saldo berjumlah Rp. 500.000,- atau kelipatannya maka otomatis akan mendapatkan bunga sebesar 0.5% dari jumlah saldo.withdraw : untuk mengurangi jumlah saldo sejumlah value yang dikirim pada parameter. Untuk penarikan diatas Rp. 2.000.000,- akan dikenai biaya Rp. 15.000,-getFirstname : untuk mendapatkan nama depan dari customergetLastname : untuk mendapatkan nama belakang dari customergetAccount : method accesor untuk variabel accountsetAccount : method mutator untuk variabel account

perintah :a. buatlah main method pada class account. Buat akun untuk beberapa nasabah berikut :Firstname LastName Saldo awal Saldo awal+Bunga Saldo terakhir

public class Karyawan{ // instance variabel private String nama; private double gaji; void setNama(String nm){ nama = nm; } void setGaji(double gj){ gaji = gj; }

Page 24: MODUL PBO

Joko Kusumo 1.000.000 ? ?Indah Septiarini 350.000 ? ?Sujarwo Adiwijoyo 5.250.000 ? ?Muhammad Hasan 50.000 ? ?

b. Nasabah bernama Joko menabung sebesar 1.750.000, kemudian melakukan pengambilan sebesar 2.000.000c. Nasabah bernama Indah menabung sebesar 150.000, dan mengambil uang sebesar 500.000d. Nasabah bernama Sujarwo mengambil uang sebesar 6.000.000e. Nasabah bernama Muhammad mengambil uang sebesar 500.000petunjuk :tambahkan perintah untuk mengecek saldo nasabah. Jika saldo tidak cukup, maka tampilkan pesan peringatan.

2. InterfaceBuatlah sebuah interface dengan nama Pet yang memiliki 3 method yaitu : getName() : memiliki returnType bertipe stringsetName(String name) : memiliki 1 parameter bertipe stringPlay() : tidak memiliki returnType

Lebih jelasnya perhatikan class diagram dibawah ini :

Perintah : implemetasikan interface tersebut ke Class MyPet. Tambahkan private variabel bernama “name” pada class tersebut. Hasil overriding dari method play() diisi dengan perintah cetak kelayar “<name> sedang berguling-guling, lucu!”.