You are on page 1of 11

LAPORAN PEMROGRAMAN BERORIENTASI OBYEK

PERTEMUAN KE 6










Di Susun Oleh :
Nama : Mohamad Hanafi
Nim : 095410134
Jurusan : Teknik Informatika/Strata-1









LABORATORIUM TERPADU
Sekolah Tinggi Manajemen Informatika dan Komputer
AKAKOM
Yogyakarta
2011

PERTEMUAN KE-6
EXCEPTION HANDLING

A. LISTING
Terlampir

B. PEMBAHASAN LISTING
Listing Pertama :
import java.util.Scanner;
public class latihanJumlah
{
public static void main(String[] hanafi){
Scanner masuk = new Scanner(System.in);
int x,y;
int jum;
//mendeklarasikan tipe data yang mana pada tipe data tersebut akan digunakan untuk
menjumlahkan bertipe integer yaitu variabel x dan y dan untuk pada Scanner yaitu memberi
masukan pada keyboard untuk dimasukkan oleh user/programmer.

try{
System.out.print("Masukkan Angka ke-1: ");
x = masuk.nextInt();
System.out.print("Masukkan Angka ke-2: ");
y = masuk.nextInt();
jum = x + y;
System.out.println("Nilai penjumlahan = " + jum);
}
//program try digunakan untuk menagkap kesalahan oleh program dimana pada program
diatas manangkap kesalahan apabila user atau programmer memasukkan selain numerik
selain bertipe integer maka program akan menangkap kesalahan tersebut fungsi try sendiri
yaitu selalu menjalankan meskipun program terdapat kesalahan ataupun tidak.

catch (Exception e){
System.out.println("Maaf yang anda Masukkan salah silahkan coba ulangi");
System.out.print("Terdapat Kesalahan: "+ e);
System.out.println(e.getMessage());
}
//program diatas inilah yang akan dtangkap kesalahannya dan diberi pesan atau peringatan
oleh programmer yang ditangkap oleh Exception yaitu menangkap kesalah berupa inputan
dimana pada inputan yang dimasukkan oleh user tidsak sama dengan tipe data yang ada di
program tersebut dasn fungsi dari catch tidak akan selalu dikerjakan kecuali program
mendapatkan bug(error).

finally{
System.out.println("Sudah Dilakukan pengoreksian");
}
}
}
// dari program finally ini akan selalu dikerjakan meskipun program berjalan dengan benar
ataupun program mendapatkan kesalahan dari fungsinnya ini yaitu memberikan perbedaan
mana itu try,catch dan mana itu finally.



C. TUGAS
Praktikum ke-7 dengan judul Kelas Abstrak dan Interface:
Praktek kelas abstact :
public abstract class BangunDatar {
public abstract double hitungLuas();
public abstract double hitungKeliling();
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}

public class BujurSangkar extends BangunDatar {
private double sisi;
public BujurSangkar(double sisi){
this.sisi = sisi;
}
public double hitungLuas(){
return sisi * sisi;
}
public double hitungKeliling(){
return 4 * sisi;
}
}

public class AbstactSample {
public static void main(String[] hanafi){
BangunDatar obyek1 = new BujurSangkar(10);
System.out.println("Luas bujur sangkar dengan sisi 10 = "+obyek1.hitungLuas());
System.out.println("Kelilingnya = "+obyek1.hitungKeliling());
}
}
Hasil outputnya :


Praktek Interface :
public interface InterfaceBangunDatar {
static final String JENIS="Bangun Datar 2D";
public abstract double hitungLuas();
public abstract double hitungKeliling();
}

public class InterfaceBujurSangkar implements InterfaceBangunDatar {
private double sisi;
public String getJenis(){
return JENIS;
}
public InterfaceBujurSangkar(double sisi){
this.sisi = sisi;
}
public double hitungLuas(){
return sisi * sisi;
}
public double hitungKeliling(){
return 4 * sisi;
}
}

public class InterfaceSample {
public static void main(String[] hanafi){
InterfaceBujurSangkar obyek1 = new InterfaceBujurSangkar(10);
System.out.println("Jenisnya adalah: "+obyek1.getJenis());
System.out.println("Luas bujur sangkar dengan sisi 10 = "+obyek1.hitungLuas());
System.out.println("Kelilingnya = "+obyek1.hitungKeliling());
}
}

Hasil outputnya :


Latihan :
Menghitung luas dan keliling Lingkaran menggunakan abstract kelas
public abstract class hitungLingkaran {
public abstract double luasLingkaran();
public abstract double kelilingLingkaran();

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}

public class Lingkaran extends hitungLingkaran {
private double jari;
public Lingkaran(double jari){
this.jari = jari;
}
public double luasLingkaran(){
return 3.14 * jari * jari;
}
public double kelilingLingkaran(){
return 2 * 3.14 * jari;
}
}

public class outputLingkaran {
public static void main(String[] hanafi){
hitungLingkaran fungsi = new Lingkaran(12);
System.out.println("Luas Lingkaran dengan jari-jari 12 = "+fungsi.luasLingkaran());
System.out.println("Keliling Lingkaran dengan jari-jari 12 =
"+fungsi.kelilingLingkaran());
}
}
Hasil outputnya:


Menghitung luas dan keliling segitiga menggunakan Interface kelas
public interface hitungSegitiga {
public abstract int luasSegitiga();
public abstract int kelilingSegitiga();
}

public class InterfaceSegitiga implements hitungSegitiga {
private int panjang;
private int tinggi;
private int sisi;
public InterfaceSegitiga(int panjang, int tinggi, int sisi){
this.panjang = panjang;
this.tinggi = tinggi;
this.sisi = sisi;
}
public int luasSegitiga(){
return panjang * tinggi / 2;
}
public int kelilingSegitiga(){
return sisi * sisi * sisi;
}
}

public class outputSegitiga {
public static void main(String[] hanafi){
InterfaceSegitiga fungsi = new InterfaceSegitiga(13, 16, 7);
System.out.println("Luas segitiga = "+fungsi.luasSegitiga());
System.out.println("Keliling segitiga = "+fungsi.kelilingSegitiga());
}
}
Hasil outputnya :


Tugas :
1. Membuat kelas abstract Manusia
Untuk kelas Manusia :
public abstract class Manusia {
public abstract String Dosen();
public abstract String Mahasiswa();
protected String nama;
protected String alamat;
protected int umur;
protected String pendidikan;

public Manusia(){
nama = "";
alamat = "";
umur = 0;
pendidikan = "";
}

public Manusia(String nama, String alamat, int umur, String pendidikan){
this.nama = nama;
this.alamat = alamat;
this.umur = umur;
this.pendidikan = pendidikan;
}
public void info(){
System.out.println("Nama : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("Umur : "+umur);
System.out.println("Pendidikan : "+pendidikan);
}
}

Untuk kelas Mahasiswa :
public class Mahasiswa extends Manusia {
private int id;
private String jurusan;
public Mahasiswa(){
id = 0;
jurusan = "";
}

public Mahasiswa(int id, String jurusan, String nama, String alamat){
this.id = id;
this.jurusan = jurusan;
super.nama = nama;
super.alamat = alamat;
}
public void info(){
System.out.println("Identitas diri : "+id);
System.out.println("Jurusan : "+jurusan);
System.out.println("Nama : "+nama);
System.out.println("Alamat : "+alamat);
}
public String Dosen() {
return nama + alamat + id +pendidikan;
}
public String Mahasiswa() {
return nama + id + jurusan + alamat;
}
}

Untuk kelas Dosen :
public class Dosen extends Manusia {
private int id;
private String jurusan;
public Dosen(){
id = 0;
}
public Dosen(int id, String nama, String alamat, String pendidikan){
this.id = id;
super.nama = nama;
super.alamat = alamat;
super.pendidikan = pendidikan;
}
public void info(){
System.out.println("Identitas diri : "+id);
System.out.println("Nama Dosen : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("Pendidikan : "+pendidikan);
}
public String Dosen() {
return nama + alamat + id +pendidikan;
}
public String Mahasiswa() {
return nama + id + jurusan + alamat;
}
}

Kelas untuk menampilkan hasil dari Manusia dan Dosen :
public class outputManusia {
public static void main(String[] hanafi){
System.out.println("UNTUK KELAS MAHASISWA");
Manusia mh = new Mahasiswa(95410134, "TEKNIK INFORMATIKA",
"HANAFI", "NGAWI");
mh.info();
System.out.println("");
System.out.println("UNTUK KELAS DOSEN");
Manusia ds = new Dosen(98765, "CUK SUBIANTORO", "BANTUL", "Strata-2");
ds.info();
}
}
Hasil outputnya :



1. Perbedaan antara abstrak kelas dan interface
Abstract class adalah sebuah class setengah jadi (abstrak) yang memuat/memiliki method
dan atrribut.
Abstract class sebenarnya adalah sebuah class, sehingga memiliki semua sifat dari class
biasa (punya konstruktor). Hanya saja sifatnya masih abstrak, karena itu biasanya method
kosong/belum di implementasikan.
Namun Abstract class dapat mengimplementasikan method tersebut.
Abstract class akan selalu menjadi superclass / hirarki tertinggi dari subclass-subclass-
nya.
I nterface Adalah sebuah blok signature kumpulan method tanpa tubuh (konstan).
- Sebuah definisi method yang umum/general yang dapat menghubungkan class-class
yang berbeda.
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.

D. PEMBAHASAN TUGAS
Sebelum lebih jauh menjelaskan sedikt yang saya peroleh dari sumber buku tentang apa itu
kelas abstract dan interface
Kelas abstract
Kelas yang diimplementasikan secara parsial dan tujuannya untuk kenyamanan perancangan.
Kelas-kelas abstract disusun dari satu metode abstract atau lebih dimana metode-metode
dideklarasikan tapi tanpa badana(tidak diimplementasikan).
Terdapat batasan-batasan penggunaan abstract :
1. Kita tidak dapat membuat konstruktor yang abstract.
2. Kita tidak dapat membuat metode static yang abstract. Batasan ini menyatakan bahwa
metode static dideklarasikan untuk seluruh kelas, maka tidak akan ada implementasi
turunan untuk metode static yang abtract.
3. Kita tidak diizinkan membuat metode private yang abstract. Ketika kita menurunkan
kelas dari superkelas dengan metode abstract, maka kita harus melakukan penimpaan dan
mengimplementasikan semua metode abstract di kelas itu akan menyebabkan kelas masih
tetap abtract karena kita tidak dapat melakukan penimpaan terhadap metode private yang
abstract.

Interface
Prototipe untuk kelas yang berguna ditinjau dari perspektif rancangan logis. Deskripsi ini
hampir serupa dengan kelas abstract. Serupa namun tidak sama. Kelas abstract adalah kelas
yang diimplementasikan secara parsial. Interface adalah kelas abstrak yang sepenuhnya tidak
diimplementasikan. Sepenuhnya tidak diimplementasikan berarti tidak ada metode yang todak
diimplementasikan. Juga data anggota di interface dapat dipastikan final statis yang berati
konstanta merni.
Manfaat penggunaan interface banyak yang sama dengan menfaat kelas abstract. Interface
menyediakan sarana mendefinisikan protokol kelas tanpa kawatir rincian-rincian implemetasi.
Dengan cara ini kita dapat membuat proyek besaer menjadi sangat lebih mudah dikelola.
Begitu interface telah dirancang, maka pengmbangan kelas dapat dilakukan tanpa kawatir
mengenai komunikasi antar kelas-kelas.

Kelas manusia (Super kelas) :
public abstract class Manusia {
public abstract String Dosen();
public abstract String Mahasiswa();
protected String nama;
protected String alamat;
protected int umur;
protected String pendidikan;
//pemberian atribut yang dimiliki oleh umumnya manusia dan sebagai super kelas
sebagai kelas induk yang dibuat pada kelas abstract.

public Manusia(){
nama = "";
alamat = "";
umur = 0;
pendidikan = "";
}
//mandeklarasikan konstruktor dimana ketika konstruktor tersebut untuk menjaga apabila
user tidak memasukkan atribut-atribut yang ada di kelas manusia maka akan mandefault
kosong.

public Manusia(String nama, String alamat, int umur, String pendidikan){
this.nama = nama;
this.alamat = alamat;
this.umur = umur;
this.pendidikan = pendidikan;
}
//membuat konstruktor yang kedua dimana pada konstruktor tersebut untuk menginisiasi
pada tipe data yang dimiliki oleh kelas manusia fungsinya untuk menghasilkan output
mana yang sebagai tipe data dan mana yang sebagai untuk outputan program.

public void info(){
System.out.println("Nama : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("Umur : "+umur);
System.out.println("Pendidikan : "+pendidikan);
}
}
//digunakan untuk menghasilkan output pada program agar seorang programer tidak
kesulitan pada program utamannya untuk membuat tampilan output lagi. Tapi kalau
sudah dilakukan pembuatan metode yang sedemikian rupa maka seorang programmer
tinggal membuat obyek dan dilanjutkan dengan nama methodnya.
Kelas mahasiswa (subkelas)
public class Mahasiswa extends Manusia {
private int id;
private String jurusan;
public Mahasiswa(){
id = 0;
jurusan = "";
}
//program diatas yaitu pemberian atribut kenapa kok Cuma diberi dua atribut saja
karena dalam kelas mahasiswa itu sebagai subkelas jadi apabila memiliki atribut yang
sama maka tinggal diturunkannya atau diwarisi pada kelas manusia.

public Mahasiswa(int id, String jurusan, String nama, String alamat){
this.id = id;
this.jurusan = jurusan;
super.nama = nama;
super.alamat = alamat;
}
//pemberian konstruktor untuk menginisiasi kenapa dalam atribut yang diinisiasi diberi
super karena itulah yang menunjukkan atribut pada kelas induk untuk diturunkannya pada
kelas mahasiswa.

public void info(){
System.out.println("Identitas diri : "+id);
System.out.println("Jurusan : "+jurusan);
System.out.println("Nama : "+nama);
System.out.println("Alamat : "+alamat);
}
//membuat method yang digunakan untuk memberi keterangan hasil output pada program
yang telah dieksekusi.

public String Dosen() {
return nama + alamat + id +pendidikan;
}
.//kenapa dalam kelas mahasiswa terdapat method dosen soalnya pada kelas abstract
manusia (indukkelas) sudah dideklarasikan kelas mahasiswa dan kelas dosen apabila ini
dihapus maka program akan mengeluarkan kesalahan atau memberi pesan kurang pada
methodnya.

public String Mahasiswa() {
return nama + id + jurusan + alamat;
}
}
//method yang dideklarasikan pada kelas abstract yang dipanggil pada kelas mahasiswa
diikuti dengan atribut-atibut yang dimiliki oleh mahasiswa

public class Dosen extends Manusia {
private int id;
private String jurusan;
public Dosen(){
id = 0;
}
//untuk anak kelas terdapat pada kelas dosen mempunyai atribut 4 kenapa Cuma
dideklarasikan 2 saja soalnya atribut yang dimiliki oleh dosen itu 2 diantarannya sama
dengan kelas manusia itulah hebatnya pada penurunan kelas atau sering kita kenal dengan
pewarisan untungnya ialah seorang programmer tidak perlu capek-capek menulis lagi
pada anakkelasnya dengan catatan atribut yang dimiliki sama dengan induk kelasnya.

public Dosen(int id, String nama, String alamat, String pendidikan){
this.id = id;
super.nama = nama;
super.alamat = alamat;
super.pendidikan = pendidikan;
}
//konstruktor yang digunakan untuk menginisiasi atribut supaya program tidak ambigu
untuk membedakan mana yang atribut dan mana yang inisiasi dimasukkan pada program
utama.

public void info(){
System.out.println("Identitas diri : "+id);
System.out.println("Nama Dosen : "+nama);
System.out.println("Alamat : "+alamat);
System.out.println("Pendidikan : "+pendidikan);
}
//method yang digunakan untuk menghasilkan output.

public String Dosen() {
return nama + alamat + id +pendidikan;
}
public String Mahasiswa() {
return nama + id + jurusan + alamat;
}
}
//pejelasan ini hampir sama dengan kelas mahasiswa yang membedakan adalah pada
kelas dosen kenapa ada methot mahasiswa jawabnya pun sama.

public class outputManusia {
public static void main(String[] hanafi){
System.out.println("UNTUK KELAS MAHASISWA");
Manusia mh = new Mahasiswa(95410134, "TEKNIK INFORMATIKA",
"HANAFI", "NGAWI");
mh.info();
System.out.println("");
System.out.println("UNTUK KELAS DOSEN");
Manusia ds = new Dosen(98765, "CUK SUBIANTORO", "BANTUL", "Strata-2");
ds.info();
}
}
//untuk pemanggilan dari ke dua kelas yaitu pada mahasiswa dan dosen diberikan kelas
yang bernama outputmanusia disini kita Cuma membuat obyek untuk tiap kelasnya lalu
diikuti dengan nama kelas yang akan dilihat hasil akhirnya begitu juga kelas satunya
yaitu kelas dosen.

You might also like