20131016_materi7-classdanobjek
DESCRIPTION
bgus7576576rtfyfyvhgjTRANSCRIPT
-
S T E V I E M A W I J A Y A N T I
Page 1
MATERI 6 CLASS & OBJECT
BAHASA PEMROGRAMAN I S1 SI
STEVI EMA WIJAYANTI
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 2
DEFINISI PROGRAM
Java merupakan salah satu bahasa pemrograman tingkat tinggi berorientasi objek yang
diperkenalkan oleh Sun Microsystems sekitar tahun 1995 dan dapat dijalankan di hampir semua
sistem operasi (multiplatform).
Berdasarkan pernyataan resmi dari Sun Microsystems, Java memiliki karakteristik seperti berikut ini :
1. Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip dengan C++, namun telah banyak
diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance.
Java juga menggunakan automatic memory allocation dan memory garbage collection.
2. Berorientasi Objek (Object Oriented)
Java menggunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara
modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia
nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.
3. Dapat Didistribusikan dengan Mudah
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries
networking yang terintegrasi pada Java.
4. Interpreter
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM) . Hal ini
menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan
pada platform yang berbeda-beda.
5. Robust
Java mempunyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi
error secara lebih teliti dibanding bahasa pemrograman lain. Java mempunyai runtime-Exception
handling untuk membantu mengatasi error pada pemrograman.
6. Aman
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa
mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer
yang menjalankan aplikasi tersebut.
PENGENALAN BAHASA PEMROGRAMAN JAVA
DEFINISI JAVA
KARAKTERISTIK JAVA
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 3
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang
dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.
8. Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda
tanpa harus dikompilasi ulang.
9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat
ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupun
Symantec yang menggunakan Just in Time Compilers (JIT).
Pemrograman adalah proses menulis, menguji, memperbaiki dan memelihara kode yang
membangun sebuah program komputer dengan menggunakan bahasa pemrograman tertentu.
Pemrograman Berorientasi Objek merupakan paradigma pemrograman atau teknik pemrograman
yang berbasiskan hirarki kelas-kelas dan melibatkan objek. Pemrograman Berorientasi Object (OOP)
adalah model pemrograman yang paling banyak dipakai saat ini. OOP telah menggantikan teknik
pemrograman prosedural yang telah lama digunakan. Objek-objek yang dibuat seringkali
merepresentasikan apa yang ada di dunia nyata.
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instan dari object. Class
juga bisa disebut blok-blok bangun pada program Java. Class mendefinisikan atribut/properti atau
biasa disebut dengan field dan perilaku (behavior) atau biasa disebut dengan method dari obyek
yang dibuatnya.
Attribute berlaku sebagai data, didefinisikan oleh class, individu, dan berbeda satu dengan lainnya.
Attribute didefinisikan dalam class dengan menggunakan variabel.
DEFINISI PEMROGRAMAN
DEFINISI PEMROGRAMAN BERORIENTASI OBJEK
CLASS DAN OBJEK
DEFINISI CLASS
DEFINISI ATTRIBUTE
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 4
Behavior berlaku sebagai method (operasi). Untuk menentukan behavior atau perilaku dari object
harus membuat methods.
CONTOH :
Class : Manusia
Attribute : 1. Nama
2. Gender
3. Tempat tanggal lahir
4. Alamat
5. dan sebagainya.
Behavior : 1. Berjalan
2. Makan
3. Tidur
4. dan sebagainya.
Bagaimana cara membuat mobil ?
Langkah 1 :
Menggambar desain mobil
Langkah 2 :
Menambahkan detail mobil, misalnya : desain pedal gas untuk maju, desain rem untuk
berhenti, desain setir untuk belok kiri dan kanan, dan lain sebagainya.
Langkah 3 :
Proses pembuatan mobil dimulai
Bagaimana pedal gas pada mobil bekerja ?
1. Bagaimana proses yang terjadi di dalam mesin mobil ketika pedal gas diinjak ?
2. Apakah pengendara mobil perlu mengetahui cara kerja pedal gas secara detail ?
Pengendara mobil tentu tidak perlu mengetahui secara detail cara kerja pedal gas ketika diinjak.
Pengendara cukup mengetahui aturan dan fungsi dari pedal gas tersebut, misalnya ketika pedal gas
DEFINISI BEHAVIOR
ANALOGI LAIN
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 5
sebelah tengah diinjak maka mobil akan melaju. Hal tersebut dapat disimpulkan bahwa cara kerja
pedal gas secara detail disembunyikan dari pengendara mobil.
Dari analogi diatas dapat diambil kesimpulan :
1. Mobil adalah sebuah CLASS, dimana class Mobil memiliki attribute dan behavior.
2. Sama halnya penyembunyian cara kerja pedal gas secara detail pada sebuah mobil, pada
OOP penyembunyian detail pemrograman di dalam sebuah METHOD.
3. Method-method ini dibuat dan disimpan bersama-sama di dalam suatu desain yang disebut
Class.
Objek adalah intansiasi (instance) dari class. Jika class secara umum mempresentasikan (template)
sebuah objek, sebuah instance adalah representasi nyata dari class itu sendiri.
Cara pembuatan objek :
Contoh : Dari class Mobil, dapat dibuat objek Sedan, Kijang, Truk, dan lain sebagainya.
Method/metode adalah suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu objek
atau dapat dikatakan method adalah perilaku dari objek.
Method memiliki 4 (empat) bagian dasar, antara lain :
1. Nama method
2. Tipe Objek atau tipe primitive yang dikembalikan metode
3. Daftar parameter
4. Badan atau isi method
Construktor merupakan method khusus yang digunakan untuk menginisialisasi objek dan
masing-masing class pasti memiliki minimal satu construktor. Perbedaan method biasa dengan
DEFINISI OBJECT
DEFINISI METHOD
NamaKelas NamaObjek = new NamaConstruktor();
Atau
NamaKelas NamaObjek;
NamaObjek = new NamaConstruktor();
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 6
construktor adalah nama method. Construktor memiliki nama method sama persis dengan nama
classnya, tidak bertipe dan tidak memiliki nilai kembalian.
Contoh 1 : Class dan Method Buah
Buah.java
AmbilBuah.java
Contoh 2 : Program Perhitungan Volume Balok
Balok.java
CONTOH IMPLEMENTASI CLASS DAN OBJEK
//deklarasi class
public class Buah {
//method Mangga
public void mangga(){
System.out.println(Ini method untuk buah mangga);
}
//method Apel
public void apel(){
System.out.println(Ini method untuk buah apel);
}
}
//deklarasi class
public class AmbilBuah{
//deklarasi method utama/main method
public static void main(String [] args){
//instansiasi (instance) objek dari class Buah
Buah b = new Buah();
b.mangga();
b.apel();
}
}
//deklarasi kelas (class)
public class Balok{
//deklarasi attribute/property
double panjang;
double lebar;
double tinggi;
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 7
VolumeBalok.java
Contoh 3 : Program Perhitungan SPP
SPP.java
//deklarasi kelas (class)
public class VolumeBalok{
//deklarasi method utama/main method
public static void main(String [] args){
double volume;
//instansiasi objek dari class Balok
Balok bl = new Balok();
bl.panjang = 10;
bl.lebar = 5;
bl.tinggi = 5;
//menghitung volume balok
volume = bl.panjang * bl.lebar * bl.tinggi;
System.out.println("Volume balok = "+volume+" cm3");
}
}
public class SPP {
String nama,nim;
int spt,spv,sks;
//construktor dengan parameter
public SPP(String nama, String nim, int spt, int spv, int sks){
this.nama = nama;
this.nim = nim;
this.spt = spt;
this.spv = spv;
this.sks = sks;
}
//method hitung dengan tipe int
public int hitung(){
//method non-void harus ada nilai kembalian/return value
return (spt+(spv*sks));
}
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 8
DemoSPP.java
import java.io.*;
public class DemoSPP {
public static void main (String [] args) throws IOException{
//deklarasi variabel
String nama,nim;
int spt,spv,sks;
//proses instansiasi objek dengan inputan manual
SPP bayar = new SPP("Stevi","12.11.1234",950000,70000,24);
//dengan inputan
//Langkah 1 : menginisialisasi BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//Langkah 2 : proses input
System.out.print("Nama \t\t: ");
nama = br.readLine();
System.out.print("NIM \t\t: ");
nim = br.readLine();
System.out.print("SPP Tetap \t: ");
spt = Integer.parseInt(br.readLine());
System.out.print("SPP Variabel \t: ");
spv = Integer.parseInt(br.readLine());
System.out.print("SKS \t\t: ");
sks = Integer.parseInt(br.readLine());
//proses instansiasi objek dengan inputan
SPP bayar2 = new SPP(nama,nim,spt,spv,sks);
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 9
Lanjutan Kode DemoSPP.java
//output perhitungan dengan inputan manual
System.out.println("\n\n\n--------------- PROGRAM PERHITUNGAN SPP MANUAL ---------------\n");
System.out.println("Nama \t\t: " + bayar.nama);
System.out.println("NIM \t\t: " + bayar.nim);
System.out.println("SPP Tetap \t: " + bayar.spt);
System.out.println("SPP Variabel \t: " + bayar.spv);
System.out.println("SKS \t\t: " + bayar.sks);
System.out.println("Total SPP yang harus dibayarkan : Rp " + bayar.hitung() + ",-\n");
System.out.println("------------------------ TERIMA KASIH ------------------------\n\n");
//output perhitungan dengan inputan
System.out.println("\n-------------- PROGRAM PERHITUNGAN SPP OTOMATIS --------------\n");
System.out.println("Nama \t\t: " + bayar2.nama);
System.out.println("NIM \t\t: " + bayar2.nim);
System.out.println("SPP Tetap \t: " + bayar2.spt);
System.out.println("SPP Variabel \t: " + bayar2.spv);
System.out.println("SKS \t\t: " + bayar2.sks);
System.out.println("Total SPP yang harus dibayarkan : Rp " + bayar2.hitung() + ",-\n");
System.out.println("------------------------ TERIMA KASIH ------------------------\n");
}
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 10
Method Mutator merupakan method yang difungsikan untuk memberikan nilai pada suatu properti
atau variabel.
Cara penulisan method Mutator :
Method Accessor merupakan method yang difungsikan untuk mengambil nilai dari suatu properti
atau variabel.
Cara penulisan method Accessor :
Contoh 4 : Program Menghitung Nilai
Nilai.java
METHOD MUTATOR DAN METHOD ACCESSOR
//mendeklarasikan method mutator dengan nama setNama() dan bertipe Void
//method setNama() memiliki 1 paramater nama dan bertipe String
public void setNama(String nama){
this.nama = nama;
}
//mendeklarasikan method accessor dengan nama getNama() dan bertipe String
public String getNama(){
//karena non-void maka harus ada nilai kembalian (return value)
return nama;
}
public class Nilai {
String nama,nim;
double uts,uas,tugas;
//Constructor Default
public Nilai(){
nama = "";
nim = "";
uts = 0;
uas = 0;
tugas = 0;
}
//Method Mutator
public void setNama(String nama){
this.nama = nama;
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 11
Lanjutan Kode Nilai.java
//Method Accessor
public String getNama(){
return nama;
}
public void setNim(String nim){
this.nim = nim;
}
public String getNim(){
return nim;
}
public void setUts(double uts){
this.uts = uts;
}
public double getUts(){
return uts;
}
public void setUas(double uas){
this.uas = uas;
}
public double getUas(){
return uas;
}
public void setTugas(double tugas){
this.tugas = tugas;
}
public double getTugas(){
return tugas;
}
public double getNilai(){
double nilai;
nilai = (uts+uas+tugas)/3;
return nilai;
}
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 12
DemoNilai.java
Latihan 2 : Program Gaji Karyawan
public class DemoNilai {
public static void main (String [] args) {
//instansiasi objek class Nilai
Nilai n = new Nilai();
//input data
n.setNama("Stevi Ema Wijayanti");
n.setNim("12.11.1234");
n.setUts(90.0);
n.setUas(80.0);
n.setTugas(100);
//output data
System.out.println("\n\n-------- HASIL NILAI PEMROGRAMAN LANJUT --------\n");
System.out.println("Nama Mahasiswa \t: " + n.getNama());
System.out.println("NIM Mahasiswa \t: " + n.getNim());
System.out.println("Nilai UTS \t: " + n.getUts());
System.out.println("Nilai UAS \t: " + n.getUas());
System.out.println("Nilai Tugas \t: " + n.getTugas());
System.out.println("Nilai Akhir \t: " + n.getNilai());
System.out.println("\n---------------- *************** ---------------");
}
}
Buat sebuah program dinamis untuk menghitung gaji karyawan PT. ABCD Persero.
1. Class Karyawan memiliki atribut-atribut :
NIK, nama, gaji pokok, tunjangan, uang makan, uang transport
2. Total gaji merupakan penjumlahan seluruh pendapatan yang diperoleh oleh karyawan.
3. Buatlah program tersebut dengan method accessor dan mutator.
4. Output program berupa data minimal 3 karyawan dengan identitas lengkap,
keseluruhan pendapatan dan total gaji yang diperoleh masing-masing karyawan.
------ Selamat Mengerjakan -----
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 13
Overloading Method adalah terdapat method yang sama pada satu class namun berbeda paramater.
Contoh :
Contoh 5 : Program Menghitung Nilai Mahasiswa
OverloadConstructor.java
OVERLOADING METHOD
DEFINISI OVERLOADING METHOD
IMPLEMENTASI OVERLOADING METHOD
public class Mobil {
String warna, merk;
//contructor default
public Mobil(){
warna = Merah;
merk = BMW
}
//overloading Constructor
public Mobil(String colour, String merk){
warna = colour;
this.merk = merk;
}
}
public class OverloadConstructor {
String nama,nim;
double uts,uas,tugas;
//Constructor Default
public OverloadConstructor(){
nama = "-";
nim = "-";
uts = 0;
uas = 0;
tugas = 0;
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 14
Lanjutan Kode OverloadConstructor.java
//Overload Constructor
public OverloadConstructor(String nama,String nim){
this.nama = nama;
this.nim = nim;
}
//Overload Constructor
public OverloadConstructor(double uts, double uas, double tgs){
this.uts = uts;
this.uas = uas;
tugas = tgs;
}
//Method Accessor
public String getNama(){
return nama;
}
public String getNim(){
return nim;
}
public double getUts(){
return uts;
}
public double getUas(){
return uas;
}
public double getTugas(){
return tugas;
}
public double getNilai(){
double nilai;
nilai = (uts+uas+tugas)/3;
return nilai;
}
}
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 15
DemoOverloadConstructor.java
public class DemoOverloadConstructor {
public static void main (String [] args) {
//instansiasi objek class Nilai
OverloadConstructor oc1 = new OverloadConstructor();
OverloadConstructor oc2 = new OverloadConstructor("Stevi Ema Wijayanti",
"12.11.1234");
OverloadConstructor oc3 = new OverloadConstructor(90,80,100);
//output data 1
System.out.println("\n\n-------- HASIL NILAI 1 PEMROGRAMAN LANJUT --------\n");
System.out.println("Nama Mahasiswa \t: " + oc1.getNama());
System.out.println("NIM Mahasiswa \t: " + oc1.getNim());
System.out.println("Nilai UTS \t: " + oc1.getUts());
System.out.println("Nilai UAS \t: " + oc1.getUas());
System.out.println("Nilai Tugas \t: " + oc1.getTugas());
System.out.println("Nilai Akhir \t: " + oc1.getNilai());
System.out.println("\n----------------- *************** ----------------");
//output data 2
System.out.println("\n\n-------- HASIL NILAI 2 PEMROGRAMAN LANJUT --------\n");
System.out.println("Nama Mahasiswa \t: " + oc2.getNama());
System.out.println("NIM Mahasiswa \t: " + oc2.getNim());
System.out.println("Nilai UTS \t: " + oc2.getUts());
System.out.println("Nilai UAS \t: " + oc2.getUas());
System.out.println("Nilai Tugas \t: " + oc2.getTugas());
System.out.println("Nilai Akhir \t: " + oc2.getNilai());
System.out.println("\n----------------- *************** ----------------");
//output data 3
System.out.println("\n\n-------- HASIL NILAI 3 PEMROGRAMAN LANJUT --------\n");
System.out.println("Nama Mahasiswa \t: " + oc3.getNama());
System.out.println("NIM Mahasiswa \t: " + oc3.getNim());
System.out.println("Nilai UTS \t: " + oc3.getUts());
System.out.println("Nilai UAS \t: " + oc3.getUas());
System.out.println("Nilai Tugas \t: " + oc3.getTugas());
System.out.println("Nilai Akhir \t: " + oc3.getNilai());
System.out.println("\n----------------- *************** ----------------");
-
October 11, 2013 [BAHASA PEMROGRAMAN I]
S T E V I E M A W I J A Y A N T I
Page 16
Lanjutan kode DemoOverloadConstructor.java
Output :
//OUTPUT FINAL
System.out.println("\n\n-------- HASIL NILAI FINAL PEMROGRAMAN LANJUT --------\n");
System.out.println("Nama Mahasiswa \t: " + oc2.getNama());
System.out.println("NIM Mahasiswa \t: " + oc2.getNim());
System.out.println("Nilai UTS \t: " + oc3.getUts());
System.out.println("Nilai UAS \t: " + oc3.getUas());
System.out.println("Nilai Tugas \t: " + oc3.getTugas());
System.out.println("Nilai Akhir \t: " + oc3.getNilai());
System.out.println("\n------------------- *************** ------------------");
}
}