Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berbasis Objek Yang Dibimbing oleh Azhar Ahmad Smaragdina,
Asisten Praktikum: Tantri Hari Mukti Endah Puji Rohmawati Wildan Setyo
Oleh: Izzati Alvandiar 130533608186 S1 PTI 2013 offering F
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO S1 PENDIDIKAN TEKNIK INFORMATIKA Agustus, 2014
LEMBAR PENGESAHAN LAPORAN
Nama : Izzati Alvandiar Nim : 130533608179 Off : F
Judul Laporan
Tgl/bln/Thn (Pengumpulan) Tgl/bln/Thn (Pengembalian) Tanda Tangan Asisten Keterangan
LAPORAN KE-2 PENGENALAN DASAR PEMPROGRAMAN JAVA II
A. TUJUAN 1. Mehasiswa mampu membuat class sendiri 2. Mahasiswa mampu mendeklarasikan struktur dan method pada class 3. Mahasiswa mampu menerapkan overload method
B. DASAR TEORI A. Class Class adalah wadah yang berisi abstraksi (pemodelan) dari suatu fungsi objek (benda), yang mendeskripsikan data (sifat karakteristik) dan fungsi yang dimiliki oleh objek tersebut. Karena kelas merupakan wadah yang akan digunakan untuk menciptakan objek, maka jelaslah bahwa kita harus membuat kelas terlebih dahulu sebelum membuat objek. Dalam pendefinisian class, umumnya dituliskan sebagai berikut: <modifier> class <name> f <attributeDeclaration>* <constructorDeclaratlon>* <methodDeclaration>*
B. Object Object adalah sekumpulan software yang terdiri dari variable dan method- method terkait. Object saling berinteraksi dengan saling memanggil metode dari satu object ke object lainnya, disebut message. Dengan kata lain, object merupakan instance sebenarnya dari sebuah class. Instance dibuat sewaktu kita melakukan inisialisasi class dengan menggunakan kata kunci new. Dalam bahasa pemrograman Java, object dapat ditulis dengan sintaks sebagai berikut: nama_class nama_instance = new nama_class();
C. Attribute Dalam pendeklarasian atribut, dapat dituliskan: <modifier> <type> <name> [= <default_value>];
D. Scoope Variable Variabel Scoope (cakupan variabel) menentukan seberapa luas variabel dapat diakses. Ruang lingkup atau scoope suatu variabel merupakan penempatan lokasi dimana variabel tersebut dideklarasikan dan dapat berlaku. Lingkup variabel terbagi dua, yaitu lingkup Global dan Local.
E. Overloading Methods Dalam class yang kita buat, kadangkala kita menginginkan untuk membuat method dengan nama yang sama namun mempunyai fungsi yang berbeda menurut parameter yang digunakan. Kemampuan ini dimungkinkan dalam pemrograman Java, dan dikenal sebagai overloading method.
F. Input / Output Berikut ini adalah langkah-langkah yang perlu dilakukan untuk mendapatkan input : 1. Tambahkan di bagian paling atas code anda: import java.io.*; 2. Tambahkan statemen berikut pada method main: BufferedReader dataIn = new BufferedReader (new InputStreamReader(System.in)); 3. Deklarasikan variabel String temporary dan gunakan fungsi readLine() untuk mendapatkan input serta ketikkan pada blog try-catch. try { String temp = dataIn.readLine(); } catch ( IOException e ){ System.out.println("Terjadi kesalahan saat anda melakukan input ") }
Berikut ini adalah langkah-langkah yang perlu dilakukan untuk mendapatkan input dari console dengan Scanner: 1. Menambahkan Import java.util.Scanner; 2. Membuat objek dari class Scanner Scanner input = new Scanner (System.in) ; 3. Memasukan nilai dari masing-masing variabel dengan menggunakan object dari Scanner System.out.print("Masukan nama); String nana = input.nextLine(); system.out .println (nama) ;
G. LATIHAN Latihan 1 : Kode Program : o Mahasiswa.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ public class Mahasiswa { public String nama; public int angkatan; public String asal;
public Mahasiswa() { nama = "Ani"; angkatan = 2010; asal = "Magelang";
}
public void ubah (String nm, int ak, String as)//method untuk mengisi value dari variable yang bersangkutan { nama = nm;//penyalur dari data dari testMahasiswa menuju Mahasiswa angkatan = ak;//penyalur dari data dari testMahasiswa menuju Mahasiswa asal=as;//penyalur dari data dari testMahasiswa menuju Mahasiswa } public void cetak(){//method untuk mencetak value dari variable yang bersangkutan System.out.println("nama : "+nama); System.out.println("angkatan : "+angkatan); System.out.println("asal : "+asal); } }
o TestMahasiswa.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ public class TestMahasiswa { public static void main (String args[]) { Mahasiswa MHS = new Mahasiswa();//objek baru yg tersambung pada class mahasiswa Mahasiswa MahasiswaPTI = new Mahasiswa();//objek baru yg tersambung pada class mahasiswa Mahasiswa MahasiswaPTE = new Mahasiswa();//objek baru yg tersambung pada class mahasiswa
System.out.println("Identitas Awal : ");
MHS.cetak();//menghasilkan output berupa data dari class mahasiswa yang telah didefinisikan
MHS.ubah("Ani", 2010, "Malang");//input data untuk method ubah() System.out.println("Identitas Akhir : "); MHS.cetak();
MahasiswaPTI.ubah("Yogiswara Utama", 2013, "Malang");//input data untuk method ubah() System.out.println("Identitas Akhir : "); MahasiswaPTI.cetak();//memanggil method cetak()
MahasiswaPTE.ubah("Utamakan belajar", 2013, "Batu");//input data untuk method ubah() System.out.println("Identias Akhir : "); MahasiswaPTE.cetak();//memanggil method cetak()
} }
Hasil Eksekusi :
Deskripsi program : Program berguna untuk menampilkan isi dari atribut class mahasiswa, mahasiswa terdiri dari nama,angkatan dan asal. Data diinputkan pada program tanpa
menggunakan keyboard dari end user. Data ditambilkan dengan method cetak, data diinputkan pada variable dengan method ubah.
Latihan 2 : Kode Program : o Lingkup.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ public class Lingkup { String sifat = "Marah";
void infoLingkup() { String sifat = "Malu"; System.out.println("sifat pada metode : "+sifat); System.out.println("sifat milik kelas : "+this.sifat);/* * menambahkan this. agar bisa memanggil variable dari luar namun 1 file */
} }
o TestLingkup.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar
*/ public class TestLingkup { public static void main (String args[]) { Lingkup varx = new Lingkup(); varx.infoLingkup(); } }
Hasil Eksekusi :
Deskripsi program : Program berguna untuk menampilkan pesan pada layar, yang mana pesan tersebut berasal dari class Lingkup, lalu nilai dari class lingkup tersebut dipanggil dengan menggunakan method infoLingkup(); . dengan memanfaatkan konstraktor Lingkup(). Di tambahkan this. Agar nilai untuk ditampilkan pada layar mengacu pada value untuk variable paling atas (variable deklarasi). Latihan 3 : Kode Program : o Scoope.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ public class Scoope { double angka = 20;//angka dengan tipe data double void infoScoope() { double angka1 = 12; System.out.println("angka di method : "+angka1); System.out.println("angka di kelas : "+this.angka);/* * ditambahkan .this agar bisa memanggil nilai dari suatu
variable yang dengan class public pada class Scoope */ double modulus = angka % angka1; System.out.println("sisa hasil :"+modulus); double bagi = angka / angka1; System.out.println("hasil bagi "+bagi); } }
o TestScoope.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ public class TestScoope { public static void main (String args[]) { Scoope varx = new Scoope();/* * membuat objek baru bernama varx yang terhubung dengan class scoope */ varx.infoScoope();//menambilkan data dari class infoScoope dengan memanggil vaiable batu (varx)
} }
Hasil Eksekusi :
Deskripsi program : Fungsi utama progam ialah untuk mendapatkan sisa hasil bagi dan hasil pembagian dari nilai pada variable angka dan angka1. Data diinputkan dari program tanpa interaksi dengan end user. Data menggunakan tipe data double untuk variable angka dan angka1, untuk mencetak hasil eksekusi program menggunkan method infoScoope yang terkoneksi menggunakan konstruktor/class Scoope()/Scoope.java;
Latihan 4 : Kode Program : o Report.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ import java.io.*;//mengimport semua library dalam java.io (untuk input dari keyboard dsb) public class Report { public static String inputkeyboard(){/* * API membaca inputan dari keyoard */ String baca = "";//menyimpan ketikan dari keyboard pada variable baca InputStreamReader masukan = new InputStreamReader(System.in);//objek baru bernama masukan BufferedReader garisi = new BufferedReader(masukan);//objek baru bernama garisi try { baca = garisi.readLine(); } catch ( IOException e) { System.out.println("Error!");
} return baca; } public static void main (String args []) { String nama = "";//variable nama dengan data kosong type string int nilaiMatematika; int nilaiFisika; int nilaiKimia; System.out.print("Masukan Nama : "); nama=inputkeyboard();//masukan data dari user untuk variable nama; System.out.print("Masukkan nilai Matematika : "); nilaiMatematika=Integer.parseInt(inputkeyboard());//masukan data integer untuk vairbale nilai System.out.print("Masukkan nilai Fisika : "); nilaiFisika=Integer.parseInt(inputkeyboard());//masukan data integer untuk vairbale nilai System.out.print("Masukkan nilai Kimia : "); nilaiKimia=Integer.parseInt(inputkeyboard());//masukan data integer untuk vairbale nilai
System.out.println("\n-------------------------"); System.out.println(""+nama); System.out.println("Nilai kamu adalah "); System.out.println("Matematika :"+nilaiMatematika); System.out.println("Fisika : "+nilaiFisika); System.out.println("Kimia : "+nilaiKimia); } }
Hasil Eksekusi :
Deskripsi program : Fungsi utama program adalah untuk menghasilkan report dari inputan end user, yang mana data untuk report tersebut diinputkan oleh end user itu sendiri (melalui keyboard), end user melakukan input untuk nama, nilai untuk matematika,fisika dan kimia, jika user telah melakukan input, maka hasil inputan user tadi akan ditampilkan kembali. Latihan 5 : Kode Program : o Persegi.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */
/** * * @author Izzati Alvandiar */ import java.io.*;//mengimport semua library dalam java.io (untuk input dari keyboard dsb) public class Persegi { public static void main (String args[]) { BufferedReader baca = new BufferedReader(new InputStreamReader(System.in)); String dataawal = ""; int hitungLuas = 0; System.out.println("---Luas Persegi---");
System.out.println("Masukan nilai sisi : ");
try { dataawal = baca.readLine(); int angka = Integer.parseInt(dataawal);/*input data dari dataawal bertipe string *dan disimpan pada variable angka bertipe integer */ hitungLuas = angka * angka;
} catch (Exception e) {/*jika data inputan tidak bertipe data int seperti yg diminta * akan menghasilkan pesan error */ System.out.println("error"); } System.out.println("Luas persegi dengan sisi " +dataawal+ " adalah " +hitungLuas); } }
Hasil Eksekusi :
Deskripsi program : Fungsi utama program adalah untuk menghitung luas sebuah persegi, dengan inputan berasal dari end user.
H. TUGAS PRAKTIKUM 1. Tugas Praktikum 1 o Tambah.java public class Tambah {
static double tambah(double a, double b){ return a+b; }
static int tambah(int a, int b, int c){ return a+b+c; } }
Hasil Eksekusi :
Deskripsi program : Program ini menggunakan overloading method untuk mengeksekusi program. Program dijalankan menurut masukan dari nilai tersebut. Program ini memiliki beberapa constructor. Setiap constructor memiliki metoda masing masing. 2. Tugas Praktikum 2 o Boolean.java public class Boolean { static boolean b = true;
public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Nilai b = " + b); System.out.println("Statemen awal eksekusi"); System.out.println("Nilai b = " + !b); System.out.println("Statemen ahir eksekusi"); b = (2>=7) ? true: false; System.out.println("2>=7mengembalikan nilai " + b); b = (3>9) ? true: false; System.out.println("3>9mengembalikan nilai " + b); b = (9<=9) ? true: false; System.out.println("9<=9mengembalikan nilai " + b); } }
Hasil Eksekusi :
Deskripsi program : Program ini menggunakan overloading method untuk mengambil nilai balikan dari suatu assignment. 3. Tugas Praktikum 3 o InputSederhana.java public class InputSederhana {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String inputNama = null; String inputChar = null; System.out.print("Input your name = "); try { inputNama = br.readLine(); } catch(IOException e){ e.printStackTrace(); } System.out.print("Input your character = "); try { inputChar = br.readLine(); } catch(IOException e){ e.printStackTrace(); } System.out.println("Hello..My Name is " + inputNama + "\nI'm a " + inputChar); }
}
Hasil Eksekusi :
Deskripsi program : Program ini method/fungsi I/O yaitu BufferedReader. BufferedReader hanya mengenal String. Jika ingin input selain String harus mengkonversinya.
I. TUGAS RUMAH 1.Tugas Rumah 1 o SegitigaSamaSisi.java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
public class SegitigaSamaSisi {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Membuat segitiga sama sisi"); String nilai = null; System.out.print("Masukkan sisi : "); try { nilai = br.readLine(); } catch(IOException e){ e.printStackTrace(); } int Nilai = Integer.valueOf(nilai).intValue(); for(int i = 0; i < Nilai; ++i) { for(int j = Nilai; j > i; --j) { System.out.print(" "); } for(int k = 0; k <= i; ++k) { System.out.print("* "); } System.out.println(); } } }
Hasil Eksekusi :
Deskripsi program : Program ini yaitu membuat segitiga (*) dengan nilai sisi sebagai inputan. o SegitigaSamakaki.java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
public class SegitigaSikuSiku {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(newInputStreamReader(System.in)); System.out.println("Masukkan sisi : "); String sisi = null; int i, j; try { sisi = br.readLine(); } catch(IOException e){ e.printStackTrace();} int Data = Integer.valueOf(sisi).intValue(); for(i = 1; i <= Data; i++){ for(j = Data; j > i; j--){ System.out.print(" ");} for(int k = 1; k <= i; ++k){ System.out.print("* "); } System.out.println();}}}
Hasil Eksekusi :
Deskripsi program : Program ini yaitu membuat segitiga (*) dengan alas sisi sebagai inputan. 2.Tugas Rumah 2 o InputSederhana.java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
e.printStackTrace(); } int Data = Integer.valueOf(angka).intValue(); System.out.print("Masukkan string : "); try { nama = br.readLine(); } catch(IOException e){ e.printStackTrace(); } for(int i = 1;i <= Data;i++){ System.out.println(i + ". " + nama);}}
Hasil Eksekusi :
Deskripsi program : Program ini menggunakan inputan angka sebagai jumlah karakter yang akan ditampilkan. 3. Tugas Rumah 3 o InputSederhana.java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
public class Absensi {
static int Menu; static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static String siswa[] = new String[20]; static int x;
public static void main(String[] args) { // TODO Auto-generated method stub Menu(); String inputMenu = null; try { inputMenu = br.readLine(); } catch(IOException e){ e.printStackTrace(); } int Menu = Integer.valueOf(inputMenu).intValue(); switch (Menu) { case 1: tambahData(); break; case 2: tampilData(); case 3:
public static void Menu(){ System.out.println("MENU : "); System.out.print("1. Menambah Siswa \n2. Lihat Siswa \n3. Hapus Siswa \n4. Exit\nPilihan Anda : "); } public static void tambahData(){ System.out.println("Masukkan jumlah siswa : "); String input = null; try { input = br.readLine(); }catch(IOException e){ e.printStackTrace(); } int x = Integer.valueOf(input).intValue(); for(int i = 0; i < x; ++i){ System.out.print("Masukkan String ke - " + i + " : "); String string = null; try { string = br.readLine(); }catch(IOException e){ e.printStackTrace(); } siswa[i] = string; } }
Hasil Eksekusi :
Deskripsi program : Program ini method/fungsi I/O yaitu BufferedReader. BufferedReader hanya mengenal String. Jika ingin input selain String harus mengkonversinya. J. KESIMPULAN
Pada praktikum kali ini membahas tentang overloading method dimana kita dapat menggunakan/memanggil method tertentu sesuai kebutuhan sehingga dapat menghapus duplikasi data pada saat kode. K. REFERENSI / DAFTAR PUSTAKA Modul 2 Praktikum OOP Velocity Documentation https://tutorialspoint.com Khannedy, Eko. 2011. Belajar Java Dasar.