Modul Pbo
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
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 :
javac Hello.java Jika tidak ada error, lanjutkan dengan menuliskan perintah : java Hello
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 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)! Hello seperti yang ada pada Latihan 2, tetapi dengan
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 :
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
6. DASAR TEORI
Berkaitan 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. LATIHAN
1. Program array sederhana untuk tipe data int dan char. Dengan cara instansiasi dan inisialisasi yang berbeda.
public class SimpleArray { 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;
System.out.print("Masukkan angka: "); int angka = scan.nextInt(); for(int i=0;i<angka;i++) System.out.println("Aku Cinta JAVA"); } }
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)
9. Program berikut mengilustrasikan bagaimana cara mendeklarasikan dan memberi nilai (inisialisasi) pada variabel dengan tipe data int, float, boolean, char, dan String.
11. Program untuk menampilkan bilangan basis 8. Jalankan program dibawah ini kemudian ganti angka 0 didepan angka menjadi 0x, apa yang terjadi?
13. Program type casting/ primitif conversion. Jalankan program dibawah ini kemudian coba lakukan konversi dari int ke short, apa yang terjadi? (analisa hasilnya)
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
75 80
= B+
70 74,9= B 60 69 = C+
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
14. TUJUAN
Mahasiswa 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
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 :
contoh :
class Sepeda{
contoh :
Sepeda.bike = new Sepeda(); //perintah untuk membuat object yang mengacu ke class Sepeda.
Variabel
contoh : bike.speed; //perintah untuk mengakses variabel speed melalui object speed.
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 (,)
contoh : bike.ubahGear();
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. ditulis dengan menggunakan sintaks berikut:
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.
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. Pembeda constructor overloading tersebut adalah parameter.
18. LATIHAN
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 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 ... } }
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 .... } }
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 :
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() { System.out.println("(x,y) = " + x + ", " + y); 6. Method accessor & mutator System.out.println("(super.x,super.y) = " + super.x + Dari program berikut tentukan yang mana termasuk method accessor dan mutator, ", kode " + super.y); sebutkan dan berikan alasannya. System.out.println(); System.out.println("getX() = " + getX()); = " + super.getX()); public classSystem.out.println("super.getX() Karyawan{ return 0; // instance variabel }private String nama; int getX() private double gaji; { void setNama(String nm){ return nama =this.x; nm; } } int voidgetY() setGaji(double gj){ { gaji = gj; return this.y; } } String getNama(){ public static return void nama;main(String args[]) {} shp = new Shape().testSuper(); doubleShape getGaji(){ } return gaji; } } }
Tugas Praktikum :
Keterangan : Class Account merupakan superclass dari class Customer Variabel : firstname : menyimpan nama depan customer lastname : menyimpan nama belakang customer
Method : 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 customer getLastname : untuk mendapatkan nama belakang dari customer getAccount : method accesor untuk variabel account setAccount : 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 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.000 c. Nasabah bernama Indah menabung sebesar 150.000, dan mengambil uang sebesar 500.000 d. Nasabah bernama Sujarwo mengambil uang sebesar 6.000.000 e. Nasabah bernama Muhammad mengambil uang sebesar 500.000 petunjuk : tambahkan perintah untuk mengecek saldo nasabah. Jika saldo tidak cukup, maka tampilkan pesan peringatan. 2. Interface Buatlah sebuah interface dengan nama Pet yang memiliki 3 method yaitu : getName() : memiliki returnType bertipe string setName(String name) : memiliki 1 parameter bertipe string Play() : 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!.