LAPORAN RESMI MODUL 6 PACKAGE COMMON COM

LAPORAN RESMI
PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

MODUL 6
“PACKAGE”

Disusun Oleh :
TANGGAL PRAKTIKUM

: 18 Desember 2012

NAMA

: Shobihatul Mubarokah Ayu A.

NRP

: 11.04.111.00039

KELAS


: C2

DOSEN PENGAMPU

: Muhammad Fuad,S.Kom

TELAH DISETUJUI TANGGAL
…………………………..
Asisten Praktikum

(Nur Islami Syabaniyah)
NRP. 09.04.111.00076

COMMON COMPUTING LABORATORY
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS
TRUNOJOYO
2012

BAB I

PENDAHULUAN
1.1 Latar Belakang
Ketika menangani program dalam skala kecil, tidak ada masalah untuk
meletakkan semua file java dalam satu direktori. Itu akan mempercepat dan
mempermudah pekerjaan dan masih aman. Tetapi jika project yang dikerjakan
semakin berkembang dan jumlah file yang dikerjakan semakin banyak serta
orang yang mengerjakan project lebih dari satu maka meletakkan file java ke
dalam satu direktori akan merepotkan pekerjaan karena software yang
dibangun akan tidak terstruktur. Maka dari itu Java menyediakan fitur untuk
menangani

hal

ini

dengan

memakai

“Package”.


Package

adalah

mengelompokkan kelas-kelas yang saling berelasi dan interfaces yang
memberikan proteksi terhadap access kelas yang tidak boleh diakses oleh
kelas lain karena tidak berelasi,dan manajemen nama. Ketentuan membuat
Package di Java yaitu :




package adalah 1 subfolder di file system.



atau library.




Package sangat berguna untuk mengorganisir file dalam suatu Project

Nama package menggunakan lowercase.
Keyword: package name.

1.2 Tujuan
1. Mahasiswa mengenal Package dalam program Java.
2. Mahasiswa mengerti dan memahami Package dalam pemrograman Java.

BAB II
DASAR TEORI
2.1 Teori Dasar
Package adalah cara Java untuk membuat suatu pustaka class. Kita
dapat membuat package berisi

sekumpulan class dan menggunakan package

tersebut dalam class atau program lain tanpa memindah kumpulan class ke dalam
direktori kerja. Untuk membuat package, letakkan beberapa file kode .java ke

dalam direktori dan tambahkan kata kunci package di awal setiap file kode
tersebut. Kemudian lakukan kompilasi sehingga dalam direktori terbentuk file
class. Sebelum suatu package dapat diimport oleh class lain, tambahkan path dari
package ke dalam CLASSPATH.

BAB III
TUGAS PENDAHULUAN

1. Bagaimana agar class dalam suatu package dapat digunakan?
2. Mana yang lebih dahulu ditulis, kata kunci package atau import?
3. Tanda separator apa yang digunakan untuk memisahkan antara nama
package dengan nama class?
Jawaban :

1. Gunakan hak akses public, karena dengan menggunakan keyword Public
dapat diakses sembarang object manapun dan dimanapun posisinya serta
dengan apapun caranya. Namun, ketika file program tidak berada di dalam
satu direktori/ berada dalam package yang berbeda maka diharuskan untuk
melakukan kompilasi menggunakan option-class path. Maka Class-class
dalam suatu package tersebut harus disimpan pada directory yang sama

dengan nama packagenya..
2. Deklarasi package diletakkan sebelum deklarasi import dari source code
setiap kelas yang dibungkus package tersebut.
3. Tanda separator yang digunakan adalah tanda titik (.)
Package.class object = new Package.class();

BAB IV
KEGIATAN PRAKTIKUM

Pada bagian kegiatan praktikum ini, kita akan belajar membuat class yang
dikelompokkan dalam package kemudian menggunakan package ini dari class
lain.
package matematika;
/**
*
* @author labdasar 20
*/
interface MtkDasar{
String tambah(int a, int b);
String kurang(int a, int b);

}

package matematika;
/**
*
* @author labdasar 20
*/
public class Pecahan implements MtkDasar{
private int pembilang, penyebut;

public Pecahan(int a, int b){
this.pembilang = a;
if (b!= 0){
this.penyebut=b;
}else{
System.out.print("penyebut
0");
}

tidak


boleh

}

@Override
public String tambah(int a, int b) {
int atas= (pembilang*b)+(penyebut*a);
int bawah=(penyebut*b);
return (""+atas+ "/"+bawah+"");
}

@Override
public String kurang(int a, int b) {
int atas= (pembilang*b)-(penyebut*a);
int bawah=(penyebut*b);
return (""+atas+ "/"+bawah+"");
}

public String toString(){

return pembilang + "/" + penyebut;
}
}

//

set CLASSPATH=c:/;.

package matematika;
import matematika.Pecahan;
/**
*
* @author labdasar 20
*/
public class CobaPecahan {
public static void main(String[] args) {
Pecahan pecahan1 = new Pecahan(1, 2);
System.out.println("" + pecahan1 + " + 1/4 " +
" = " + pecahan1.tambah(1, 4));
}

}

Print Screen Running Program

BAB V
TUGAS PRAKTIKUM

5.1 Tugas Akhir
1. Modifikasilah kode program interface MtkDasar.java, dan Pecahan.java
agar dapat menghasilkan return value berupa Object.
2. Lengkapi interface MtkDasar dengan kemampuan matematika dasar yang
lain yaitu kali (untuk mengerjakan operasi perkalian), dan bagi (untuk
mengerjakan operasi pembagian). Sesuaikan kedua class lain, Pecahan dan
CobaPecahan.
Jawab :
package matematika;

public interface MtkDasar {

String tambah(Object obj);


String kurang(Object obj);

String kali(Object obj);

String bagi(Object obj);
}

package matematika;

import matematika.Pecahan;

public class Pecahan implements MtkDasar {

private int pembilang, penyebut;

public Pecahan(int pembilang, int penyebut) {
this.pembilang = pembilang;
this.penyebut = penyebut;
}

public int getValuePembilang() {
return this.pembilang;
}

public int getValuePenyebut() {
return this.penyebut;
}

public int penyebutHsl(int a, int b) {
int hsl;
if (a % b == 0 || b % a == 0) {
if (a >= b) {
hsl = (a / b) * b;
} else {
hsl = (b / a) * a;
}
} else {
hsl = a * b;
}
return hsl;
}

public String tambah(Object obj) {
StringBuilder strHasil = new StringBuilder("
");
Pecahan data = new Pecahan(pembilang,

penyebut);
pembilang = data.getValuePembilang();
penyebut = data.getValuePenyebut();
Pecahan tambah = (Pecahan) obj;
int pembilang1 = tambah.getValuePembilang();
int penyebut1 = tambah.getValuePenyebut();
int penyHsl = tambah.penyebutHsl(penyebut,
penyebut1);
int hasil = (pembilang * (penyHsl / penyebut))
+ (pembilang1 * (penyHsl / penyebut1));
strHasil.insert(0, hasil);
strHasil.insert(strHasil.length() - 1, "/");
strHasil.insert(strHasil.length() - 1,
penyHsl);
return (strHasil.toString());
}

public String kurang(Object obj) {
StringBuilder strHasil = new StringBuilder("
");
Pecahan data = new Pecahan(pembilang,
penyebut);
pembilang = data.getValuePembilang();
penyebut = data.getValuePenyebut();
Pecahan tambah = (Pecahan) obj;
int pembilang1 = tambah.getValuePembilang();
int penyebut1 = tambah.getValuePenyebut();
int penyHsl = tambah.penyebutHsl(penyebut,
penyebut1);
int hasil = (pembilang * (penyHsl / penyebut))
- (pembilang1 * (penyHsl / penyebut1));
strHasil.insert(0, hasil);

strHasil.insert(strHasil.length() - 1, "/");
strHasil.insert(strHasil.length() - 1,
penyHsl);
return (strHasil.toString());
}

public String kali(Object obj) {
StringBuilder strHasil = new StringBuilder("
");
Pecahan data = new Pecahan(pembilang,
penyebut);
pembilang = data.getValuePembilang();
penyebut = data.getValuePenyebut();
Pecahan kali = (Pecahan) obj;
int pembilang1 = kali.getValuePembilang();
int penyebut1 = kali.getValuePenyebut();
int penyHsl = kali.penyebutHsl(penyebut,
penyebut1);
int hasil = (pembilang) * (pembilang1);
strHasil.insert(0, hasil);
strHasil.insert(strHasil.length() - 1, "/");
strHasil.insert(strHasil.length() - 1,
penyHsl);
return (strHasil.toString());
}

public String bagi(Object obj) {
StringBuilder strHasil = new StringBuilder("
");
Pecahan data = new Pecahan(pembilang,
penyebut);
pembilang = data.getValuePembilang();

penyebut = data.getValuePenyebut();
Pecahan bagi = (Pecahan) obj;
int pembilang1 = bagi.getValuePembilang();
int penyebut1 = bagi.getValuePenyebut();
int penyHsl = bagi.penyebutHsl(penyebut,
pembilang1);
int hasil = (pembilang) * (penyebut1);
strHasil.insert(0, hasil);
strHasil.insert(strHasil.length() - 1, "/");
strHasil.insert(strHasil.length() - 1,
penyHsl);
return (strHasil.toString());
}

public String toString() {
StringBuilder tampil = new StringBuilder(" ");
Pecahan data = new Pecahan(pembilang,
penyebut);
tampil.insert(0, data.getValuePembilang());
tampil.insert(tampil.length() - 1, "/");
tampil.insert(tampil.length() - 1,
data.getValuePenyebut());
return (tampil.toString());
}
}
package matematika;

import java.util.Scanner;
import matematika.Pecahan;

public class CobaPecahan {

public static void main(String[] args) {
int a;
int b;
int c;
int d;
Scanner x = new Scanner(System.in);

System.out.print("Masukkan nilai a : ");
a = x.nextInt();
System.out.print("Masukkan nilai b : ");
b = x.nextInt();
System.out.print("Masukkan nilai c : ");
c = x.nextInt();
System.out.print("Masukkan nilai d : ");
d = x.nextInt();
System.out.print("Operator [ + ; - ; * ; : ]
");
String op = x.next();

Pecahan pecahanku = new Pecahan(a, b);
Pecahan pecahan2 = new Pecahan(c, d);
if (op.compareTo("+") == 0) {
System.out.println("\n" + pecahanku + "+ "
+ c + "/" + d + " = " + pecahanku.tambah(pecahan2));
} else if (op.compareTo("-") == 0) {
System.out.println("\n" + pecahanku + "- "
+ c + "/" + d + " = " + pecahanku.kurang(pecahan2));
} else if (op.compareTo("*") == 0) {
System.out.println("\n" + pecahanku + "* "
+ c + "/" + d + " = " + pecahanku.kali(pecahan2));
} else if (op.compareTo(":") == 0) {
System.out.println("\n" + pecahanku + ": "

+ c + "/" + d + " = " + pecahanku.bagi(pecahan2));
}
}
}
Print Screen Running Program

5.2 Tugas Tambahan
1. Jelaskan perbedaan Interface dan Class
2. Jelaskan perbedaan Interface dan Abstract Class
Jawab :
1. Interface :




Sebuah blok signature kumpulan method tanpa tubuh (konstan).



class-class yang berbeda.

Sebuah definisi method yang umum/general yang dapat menghubungkan

Dengan kata lain, interface memungkinkan kita mengimplementasikan
method yang sama terhadap class yang tidak ada hubungan sama sekali



(tidak dalam satu hirarki)
Oleh karena itu interface bukanlah sebuah class, walaupun memiliki ciri
yang serupa dengan abstract class.
Class :





Mendefinisikan class yang nyata.



Object hanya bisa dibuat dari non-abstract class (concrete class)



Dapat membentuk atau instansiasi object.



Dapat menurunkan implementasi dari super class
Dapat

sebagai

base

class

pada

hierarchical

relationship

membutuhkan class lain untuk mewarisinya
2.
Abstract Class

Interface

Bisa berisi abstract dan non- Hanya boleh berisi abstract method.
abstract method.
Kita harus menuliskan sendiri Kita tidak perlu susah2 menulis public
modifiernya.

abstract di depan nama method.
Karena secara implisit, modifier untuk

dan

method di interface adalah public dan
abstract.

Bisa mendeklarasikan constant Hanya

bisa

dan instance variable.

Secara implisit variable

constant.
yang

mendeklarasikan

dideklarasikan

di

interface

bersifat public, static dan final.
Method boleh bersifat static.

Method tidak boleh bersifat static.

Method boleh bersifat final.

Method tidak boleh bersifat final.

Suatu abstact class hanya bisa Suatu interface bisa meng-extend satu
meng-extend satu abstract class atau lebih interface lainnya.
lainnya.
Suatu abstract class hanya bisa Suatu interface hanya bisa mengmeng-extend satu abstract class extend interface lainnya. Dan tidak
dan meng-implement beberapa bisa
interface.

meng-implement

interface lainnya.

class

atau

BAB VI
PENUTUP
6.1 Kesimpulan
Dari laporan praktikum modul 6 ini, dapat disimpulkan:
1. Package adalah sebuah kemasan

yang dapat digunakan untuk

mengelompokkan kelas- kelas sehingga memungkinkan beberapa kelas
yang bernama sama disimpan dalam package yang berbeda.
2. Sebuah package pada Java dapat digunakan oleh packag eyang lain
ataupun kelas-kelas di luar Package.
3. Packagepada bahasa pemrograman Java dinyatakan dengan kode:
package nama_package; yang ditulis pada bagian atas kode program kelas
anggota package. Misal sebuah kelas dengan nama Mahasiswa ada di
dalam package dengan nama example.shobi maka file yang menyimpan
kode program kelas Mahasiswa dimasukkan dalam direktori.
6.2 Saran
Dalam menjelaskan materi diharapkan asisten praktikum dapat menjelaskan
lebih detai dan lebih jelas. Dimohon untuk memberikan lebih banyak contoh
program, tidak hanya contoh dari modul.