Jobsheet Praktikum OOP (v1.0)
2 – Class dan Object (1) PENDAHULUAN Konsep yang paling mendasar dari Object Oriented Programming adalah Class dan Object. Objek merepresentasikan suatu objek nyata yang ditemukan dalam suatu sistem. Sedangkan Class merepresentasikan rancangan/blueprint/template/desain untuk membuat objek. Jadi bisa dikatakan bahwa Objek sebenarnya merupakan hasil bentukan nyata (instance) dari suatu Class. Ketika membuat Class, di dalamnya dideklarasikan Atribut dan Method yang dimiliki oleh Class tersebut. Atribut merupakan data/property/elemen/komponen yang dimiliki oleh Class. Sedangkan method merupakan fungsi/behavior/perilakau yang bisa dikerjakan oleh Class tersebut. Struktur dari suatu Class digambarkan dalam Class Diagram. NamaClass namaAtribut1: tipeData namaAtribut2: tipeData namaMethod1(): tipeData namaMethod2(): tipeData Untuk membuat suatu Class, digunakan kata kunci class dan diikuti dengan nama Class yang akan dibuat. class NamaClass{ }
//deklarasi atribut //deklarasi method
Seperti diulas di bagian sebelumnya, bahwa Class di dalamnya terdapat Atribut dan Method. Untuk deklarasi Atribut dan Method harus dilakukan di dalam tubuh Class. Format deklarasi atribut adalah sebagai berikut:
accessModifier tipeData namaAtribut;
Sedangkan format deklarasi method adalah sebagai berikut:
accessModifier tipeData namaMethod(tipeData argumen1, tipeData argumen2, …..){ }
//isi method //isi method
Untuk Access Modifier tidak dibahas pada modul ini, melainkan akan dibahas pada modul berikutnya (Class dan Object bag. 2). Contoh deklarasi atribut:
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
int nim; String nama; float luas; Contoh deklarasi method:
void tampilData(){ System.out.println (“Hello World!!”); } int tambah(int a, int b, int c){ return a+b+c; }
Setelah Class dibuat, langkah selanjutnya adalah membuat Object. Proses pembuatan Object dari suatu Class disebut instansiasi. Format dasar instansiasi adalah sebagai berikut:
NamaClass namaObject = new NamaClass();
Proses instansiasi ditandai dengan kata kunci new Setelah dilakukan proses instansiasi, maka objek-‐ objek yang terbentuk sudah siap untuk diolah atau diproses (diakses atribut dan dipanggil methodnya). Catatan: • Aturan penamaan Class o Berupa kata benda o Diawali dengan HURUF BESAR o Jika terdiri dari 2 atau lebih kata, tiap kata diawali dengan HURUF BESAR dan antar kata disambung tidak (dipisah) o Contoh Mahasiswa, Dosen, DosenTetap dsb • Aturan penamaan Atribut o Berupa kata benda o Diawali dengan HURUF KECIL o Jika terdiri dari 2 atau lebih kata, kata pertama diawali HURUF KECIL sedangkan kata selanjutnya diawali HURUF BESAR. Dan antar kata disambung tidak (dipisah) o Contoh nama, alamat, gajiPokok, tunjanganJabatanTahunan dsb • Aturan penamaan Method o Berupa kata kerja o Diawali dengan HURUF KECIL o Jika terdiri dari 2 atau lebih kata, kata pertama diawali HURUF KECIL sedangkan kata selanjutnya diawali HURUF BESAR. Dan antar kata disambung tidak (dipisah) o Contoh tambah(), hitungGajiTotal() dsb • Aturan penamaan Objek o Sama persis dengan aturan penamaan Atribut
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
PERCOBAAN 1 : CLASS DIAGRAM Tujuan: Mahasiswa memahami cara menggambarkan desain klas menggunakan Class Diagram (Diagram Klas) Prosedur Percobaan: 1. Perhatikan kasus di bawah ini: Dalam suatu sistem informasi akademik, salah satu data yang diolah adalah data mahasiswa. Setiap mahasiswa memiliki NIM, nama, alamat, tahun masuk dan IPK. Setiap mahasiswa juga bisa menampilkan data-‐data yang dimilikinya. 2. Gambarkan desain klas menggunakan Class Diagram dari kasus di atas!
Pertanyaan: 1. Ada berapa klas yang bisa Anda identifikasi dari kasus tersebut? Sebutkan nama klas yang berhasil Anda identifikasi tersebut! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 2. Sebutkan atribut-‐atribut yang dimiliki oleh klas yang Anda sebutkan pada no. 1, beserta tipe datanya!
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
…………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 3. Sebutkan method-‐method yang dimiliki oleh klas yang Anda sebutkan di no. 1, beserta tipe data method nya dan parameternya jika ada! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 4. Apakah gunanya Class Diagram? …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
PERCOBAAN 2 : MENULISKAN PROGRAM DARI CLASS SEDERHANA Tujuan: 1. 2. 3. 4. 5. 6.
Memahami dan mengimplementasikan sintaks program dalam membuat Class Memahami dan mengimplementasikan sintaks program dalam membuat Atribut Memahami dan mengimplementasikan sintaks program dalam membuat Method Memahami dan mengimplementasikan sintaks program dalam membuat Objek Memahami dan mengimplementasikan sintaks program dalam membuat method main() Memahami dan mengimplementasikan sintaks program untuk menampilkan keluaran (output)
Prosedur Percobaan: 1. Buka perangkat lunak Text Editor, misalnya Notepad 2. Tuliskan kode program di bawah ini! Kode di bawah ini merupakan kode program yang mengimplementasikan desain klas yang telah digambarkan pada Class Diagram Percobaan 1.
3. Setelah selesai, pilih menu File > Save As 4. Pilih lokasi dimana file tersebut akan disimpan. Di File name isikan Mahasiswa.java (nama file harus sama dengan nama class). Di combo box Save as type pilih Text Documents (*.txt). Dan di combo box Encoding, pilih ANSI. 5. Setelah file tersimpan, buka Command Prompt, dan masuk ke lokasi folder dimana file program HelloWorld.java tersimpan. 6. Compile Mahasiswa.java, dengan perintah javac Mahasiswa.java
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
7. Jalankan Mahasiswa, dengan perintah java Mahasiswa. Anda akan menemukan Error.
8. Buka kembali class Mahasiswa.java, dan tambahkan method main (). Dan simpan perubahannya.
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
9. Compile kembali class Mahasiswa, dan jalankan!
Pertanyaan:
1. Ada berapakah atribut yang dimiliki oleh klas Mahasiswa pada program di atas? Sebutkan! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
2.
3.
4.
5.
6.
…………………………………………………………………………………………………………………………………………………….. Ada berapa method yang dimiliki oleh klas Mahasiswa pada program di atas? Sebutkan! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. Pada program tersebut, di manakah proses instansiasi terjadi ? Apakah kegunaan dari proses instansiasi? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. Ada berapa objek yang dibuat pada program tersebut? Coba berikan contoh untuk membuat objek yang lain dari class Mahasiswa, berikan juga contoh untuk mengakses atribut dan methodnya! …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. Apa yang sebenarnya dilakukan pada sintaks program mhs1.nim = “10986489502” ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. Apa yang sebenarnya dilakukan pada sintaks program mhs1.tampilData()? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
PERCOBAAN 3 : MENULISKAN METHOD YANG MEMILIKI ARGUMEN/PARAMETER DAN MEMILIKI RETURN Tujuan: 1. Memahami kegunaan parameter/argument 2. Memahami cara menulis dan memanggil method yang memiliki argument/paremeter Prosedur Percobaan: 1. Buka kembali program klas Mahasiswa yang sudah dibuat pada Percobaan 2 2. Tambahkan method int hitungTingkat(int tahunSekarang). Method tersebut digunakan untuk menghitung selisih tahun sekarang dan tahun masuk dari suatu mahasiswa. Selisih tersebut menunjukan mahasiswa tersebut sedang berada di tingkat berapa.
3. Compile kembali klas Mahasiswa tersebut dan jalankan! Perhatikan perubahan hasil output-‐nya!
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
Pertanyaan: 1. Ada berapakah argument yang dimiliki oleh method hitungTingkat() ? Apa nama argument tersebut? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 2. Apa gunanya argumen tersebut pada method hitungTingkat() ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 3. Argumen tersebut akan mendapatkan nilai dari mana ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 4. Ambil kesimpulan tentang kegunaan dari argumen dalam suatu method ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 5. Mengapa method hitungTingkat() tersebut memiliki return? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 6. Ambil kesimpulan tentang kegunaan dari kata kunci return, dan kapan suatu method harus memiliki return ? …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
…………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
PERCOBAAN 4 : MENERAPKAN KONSEP DASAR PEMROGRAMAN (VARIABEL, PENCABANGAN, OPERATOR DSB) UNTUK MENYELESAIKAN PERMASALAHAN DALAM SUATU METHOD Tujuan: 1. Memahami posisi konsep dasar pemrograman (variabel, pencabangan, perulangan, operator dsb) pada program 2. Mereview kembali konsep dasar pemrograman Prosedur Percobaan: 1. Buka kembali program klas Mahasiswa yang sudah dibuat pada Percobaan 3 2. Tambahkan method konversiIpkKeHuruf() !
3. Compile kembali klas Mahasiswa tersebut dan jalankan! Perhatikan perubahan hasil output-‐nya!
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
Pertanyaan: 1. Apakah kegunaan dari IF-‐ELSE IF-‐ELSE ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 2. Bagaimana format penulisan IF-‐ELSE IF-‐ELSE ? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. 3. Apakah kegunaan dari masing-‐masing operator && dan <=? …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………………..
Imam Fahrur Rozi, PSMI -‐ Polinema
Jobsheet Praktikum OOP (v1.0)
LATIHAN 1. Buatlah program dari Class Diagram di bawah ini!
Penjelasan: • Nilai atribut hargaDasar dalam Rupiah dan atribut diskon dalam % • Method hitungHargaJual() digunakan untuk menghitung harga jual dengan perhitungan berikut ini: harga jual = harga dasar – (diskon x harga dasar) • Method tampilData() digunakan untuk menampilkan nilai dari kode, namaBarang, hargaDasar, diskon dan harga jual. 2. Buatlah program dari Class Diagram berikut ini!
Penjelasan: • Gaji Total = gaji pokok + tunjangan + gaji mengajar • Aturan untuk mentukan gaji pokok : o Jika golongan 3A, gaji pokok = 10000 o Jika golongan 3B, gaji pokok = 15000 o Jika golongan 3C, gaji pokok = 20000 o Jika golongan 3D, gaji pokok = 25000 • Aturan untuk menentukan tunjangan : o Jika golongan 3A, gaji pokok = 1000 o Jika golongan 3B, gaji pokok = 1500 o Jika golongan 3C, gaji pokok = 2000 o Jika golongan 3D, gaji pokok = 2500 • Gaji mengajar per jam = 1000
Imam Fahrur Rozi, PSMI -‐ Polinema