RENCANA PELAKSANAAN PEMBELAJARAN Oleh : Vickky Listyaningsih, S.Kom.,M.Kom.
Satuan Pendidikan : SMK
Kelas / Semester : XI Rekayasa Perangkat Lunak / 3
Tema : Sifat-Sifat Pemrograman Berorientasi Objek
Sub Tema : encapsulation, inheritance, polymorphism dengan overloading dan overriding
Pembelajaran ke : 1
Alokasi Waktu : 6 x 45 Menit
A. TUJUAN PEMBELAJARAN
1. Siswa dapat memahami dan menjelaskan konsep encapsulation dalam melindungi data dan informasi
2. Siswa dapat memahami dan membuat kode program encapsulation dalam melindungi data dan informasi
3. Siswa dapat memahami dan menjelaskan konsep inheritance atau pewarisan
4. Siswa dapat memahami dan membuat hubungan antara class dengan pola pewarisan 5. Siswa dapat memahami dan menjelaskan konsep polymorphism dengan overloading dan
overriding
6. Siswa dapat memahami dan membuat kode program sesuai konsep polymorphism dengan overloading dan overriding
B. KEGIATAN PEMBELAJARAN Pendahuluan
1. Guru mempersiapkan secara fisik dan psikis untuk mengikuti pembelajaran dengan diawali berdoa, menanyakan kehadiran siswa, kebersihan dan kerapian kelas, kesiapan buku tulis dan sumber belajar
2. Guru memberi motivasi dengan membimbing siswa memahami permasalahan yang berkaitan dengan encapsulation, inheritance, dan polymorphism
3. Guru mengingatkan kembali tentang konsep-konsep yang telah dipelajari oleh siswa yang berhubungan dengan materi baru yang akan dipelajari
4. Guru melakukan apersepsi melalui tanya jawab mengenai encapsulation, inheritance, dan polymorphism
5. Guru menyampaikan kompetensi dasar dan tujuan pembelajaran yang akan dicapai 6. Guru membimbing siswa melalui tanya jawab tentang manfaat proses pembelajaran 7. Guru menjelaskan materi dan kegiatan pembelajaran yang akan dilakukan siswa yaitu
menggunakan model Problem Base Learning, metode Cooperative Learning dengan Jigsaw
Kegiatan Inti
1. Guru membagi siswa menjadi 5 kelompok yang terdiri dari 3 orang, kelompok ini dinamakan kelompok asal
2. Setiap siswa dalam kelompok diberi materi yang berbeda.
3. Setiap siswa dengan materi yang sama akan berkumpul dalam kelompok yang dinamakan kelompok ahli. Dalam kelompok ahli, siswa mendiskusikan bagian materi pembelajaran yang sama, serta menyusun rencana bagaimana menyampaikan kepada temannya jika kembali ke kelompok asal. Setiap anggota kelompok ahli akan kembali ke kelompok asal memberikan informasi yang telah diperoleh atau dipelajari dalam kelompok ahli. Guru memfasilitasi diskusi kelompok baik yang ada pada kelompok ahli maupun kelompok asal.
4. Setelah selesai melakukan diskusi, guru meminta siswa untuk kembali ke kelompok asal dan meminta setiap siswa untuk mempresentasikan topik hasil diskusi dari kelompok ahli secara bergantian kepada anggota kelompok asal. Siswa lain diberi kesempatan untuk mengajukan pertanyaan sebagai klarifikasi.
5. Guru mengelilingi satu kelompok ke kelompok lain untuk mengamati proses.
6. Guru meminta siswa untuk membuat rangkuman dari hasil diskusi kelompoknya dan menyuruh perwakilan kelompok untuk menyampaikan kesimpulan diskusi agar guru dapat menyamakan persepsi pada materi pembelajaran yang telah didiskusikan.
Penutup
1. Guru membimbing siswa untuk menyimpulkan materi pembelajaran 2. Guru melakukan refleksi atas manfaat proses pembelajaran
3. Siswa mengerjakan tes tertulis secara individual menggunakan LMS. hasil nilai yang diperoleh tiap anggota kelompok dirata-rata untuk menentukan predikat kelompok.
4. Guru memberikan penghargaan pada kelompok berdasarkan rata-rata skor tes yang diperoleh anggota.
5. Guru meminta siswa untuk meningkatkan pemahamannya tentang konsep, prinsip, atau teori yang telah dipelajari dari buku-buku pelajaran yang relevan atau sumber informasi lainnya
6. Guru tugas literasi untuk rencana pembelajaran pada pertemuan berikutnya 7. Guru menutup pelajaran
C. PENILAIAN PEMBELAJARAN Penilaian Pengetahuan
Tes Tertulis (Pilihan Ganda)
Pilihlah satu jawaban yang paling tepat di bawah ini !
1. Pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi adalah pengertian ….
a. enkapsulasi d. constructor
b. inheritance e. interfaces
c. polimorfisme
2. Sesuatu yang memiliki banyak bentuk, yaitu memiliki nama sama, tetapi memiliki behaviour (method) yang berbeda adalah ….
a. enkapsulasi d. constructor
b. inheritance e. interfaces
c. polimorfisme
3. Untuk membuat objek di Java menggunakan perintah keyword ….
a. Main d. new
b. Void e. final
c. public
4. Dalam pemrograman Java ada tiga istilah dasar yang selalu digunakan yaitu class, method dan variabel. Suatu blueprint atau cetakan untuk menciptakan suatu instant dari object dalam pemrograman Java disebut ….
a. Inheritance d. class
b. Method e. objek
c. variabel
5. Cara untuk menyembunyikan detail informasi dari suatu class adalah ….
a. Constructor d. interfaces
b. Inheritance e. enkapsulasi
c. Polymorfisme
6. Perintah untuk mengeluarkan outputan yang benar adalah ....
a. System.Out.Println d. Readln b. System.out.println e. void main c. Writeln
7. Kumpulan beberapa perintah yang bisa dieksekusi bersama-sama di suatu class lain (dipanggil menggunakan objek) disebut ….
a. Class d. method
b. Package e. project
c. Objek
8. Berikut yang merupakan editor di Java adalah ….
a. Notepad, Eclipse, NetBeans d. Eclipse, Microsoft, Google b. Vsco, Inshot, VN, PS e. NetBeans, Notepad, Xampp c. Notepad, Inshot, NetBeans
9. Berikut ini merupakan ciri-ciri yang benar tentang prosedur ….
a. Dideklarasikan dengan menggunakan tipeData dan diikuti nama function b. Hanya dapat menjalankan satu hasil perintah atau satu value
c. Untuk menghasilkan atau mencetak nilai (value) menggunakan perintah return d. Menggunakan keyword void
e. Menggunakan keyword extends
10. access modifier yang digunakan pada java yang dapat diakses oleh semuanya adalah ….
a. Default d. Protected
b. Public e. Final
c. Private Kunci Jawaban 1. B
2. C 3. D 4. D 5. E 6. B 7. D 8. A 9. E 10. B
Nilai Pengetahuan = 10 soal x 10 = 100
Penilaian Keterampilan Penilaian Diskusi
No Nama Aspek Penilaian
NA Keaktifan Disiplin Kerjasama Hasil Diskusi
Rubrik Penilaian Diskusi
No Aspek Penilaian Rubrik Penilaian
<70 70-79 80-89 90-100
1 Keaktifan Kurang aktif
dalam kelompok
Cukup aktif dalam kelompok
Aktif dalam kelompok
Sangat aktif dalam kelompok
2 Disiplin Kurang
disiplin dalam mengerjakan tugas kelompok
Cukup disiplin dalam mengerjakan tugas kelompok
Disiplin dalam mengerjakan tugas kelompok
Sangat Disiplin dalam mengerjakan tugas kelompok
3 Kerjasama Kurang dapat
berkerjasama dalam kelompok
Cukup dapat berkerjasama dalam kelompok
Dapat berkerjasama dalam kelompok
Sangat dapat berkerjasama dalam kelompok
4 Hasil Diskusi Hasil diskusi kurang tepat
Hasil diskusi cukup tepat
Hasil diskusi tepat
Hasil diskusi sangat tepat
Nilai Akhir Diskusi =
Jumlah nilai semua aspek penilaian 4
Penilaian Sikap
No Nama
Aspek Penilaian
NA Jujur Tanggung
jawab
Peduli (gotong- royong, toleran)
Santun
Rubrik Penilaian Sikap
No Aspek Penilaian Rubrik Penilaian
<70 70-79 80-89 90-100
1 Jujur Kurang jujur Cukup jujur Jujur Sangat jujur
2 Tanggung jawab Kurang
tanggung jawab
Cukup tanggung jawab
Tanggung jawab
Sangat tanggung jawab
3 Peduli (gotong-royong, toleran)
Kurang peduli
Cukup peduli Peduli Sangat peduli
4 Santun Kurang
santun
Cukup santun
Santun Sangat santun
Nilai Akhir Sikap =
Jumlah nilai semua aspek penilaian 4
MATERI
A. Enkapsulasi
Enkapsulasi adalah suatu proses membungkus sebuah atribut (variabel) dedalam suatu method. Di Enkapsulasi variabel akan disembunyikan dari class dan package lain (private) dan hanya dapat diakses dan diubah value atributnya jika menggunakan suatu method.
Manfaat dari enkapsulasi yaitu : 1. Modularitas
Modularitas yaitu kode sumber dari sebuah objek dapat dikelola secara independen dari kode objek lain.
2. Information hiding
Information hiding yaitu menyembungikan informasi-informasi yang tidak perlu diketahui objek lain.
3. Melakukan validasi nilai Proses enkapsulasi yaitu :
1. Class dan method menggunakan hak akses public. Agar dapat diakses semuanya.
2. Deklarasikan atributnya menggunakan hak akses private. Untuk dapat mengakses atribut maka dibuatkanlah method GET dan SET .
3. Buatkan 2 method (per atribut) untuk mengambil value atribut (variabel) dan untuk mengubah atau memodifikasi value dari atribut.
Untuk lebih jelas perhatikan contoh latihan menggunakan enkapsulasi berikut : Buat Package latEnkapsulasi, kemudian buat classSiswa dan classMainEnkapsulasi.
Gambar 1. Penggunaan enkapsulasi dalam class Siswa
Gambar 2. Pemanggilan enkapsulasi pada class MainEnkapsulasi
Gambar 3. Tampilan program penggunaan enkapsulasi
B. Pewarisan
Setelah mempelajari tentang enkapsulasi dan interface kita akan belajar mengenai pewarisan atau inheritance. Sebelum mengetahui apa itu pewarisan, perhatikan bagan berikut ini.
Gambar 4. Pewarisan
Gambar tersebut menunjukkan ilustrasi tentang pewarisan. Pewarisan dari induk class (superclass) kepada anak class (subclass). Induk class dalam hal ini berupa bangun datar, yang memiliki anak class yaitu persegi, segitiga dan belah ketupat.
Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Class yang diwarisi class lain disebut dengan subclass (anak class), sedangkan class yang mewarisi disebut superclass (induk class). Salah satu dari keuntungan inheritance adalah subclass dapat merubah atau memodifikasi apa yang telah diwariskan oleh superclass. Untuk membuat class yang dapat mewarisi sebuah class yang lain, hal yang diperlukan adalah mendeklarasikan class tersebut menggunakan extends. Berikut penulisan deklarasi pewarisan :
Class namaSubClass extends namaParentClass {
// definisi class }
Perhatikan contoh kasus program berikut :
Jika diketahui parent class adalah BangunDatar, dan subclass berupa Persegi dan Segitiga.
BangunDatar memiliki atribut dan method, yang dapat digunakan pada class Persegi dan class Segitiga. Bagaimana penerapannya dalam program ?
Langkah penyelesaiannya adalah : 1. Buat parent class BagunDatar 2. Buat subclass Persegi
3. Buat subclass Segitiga
4. Buat class Main utk memanggil program dan running
Bangun Datar
Persegi Segitiga Belah
ketupat
Gambar 5. Penerapan Pewarisan
Gambar 6. Hasil Penerapan Pewarisan
Dari contoh kasus di atas dapat disimpulkan mengenai manfaat pewarisan yaitu : 1. Pewarisan bersifat reusable (dapat digunakan kembali)
2. Kemudahan dalam me-mange kelas yang memiliki data dan method yang sama
3. Sekali perilaku (method) didefinisikan pada parent class, maka method tersebut secara otomatis diwariskan ke subclass. Sehingga hanya perlu menulis method sekali dan bisa digunakan untuk semua subclassnya
4. Sekali property atau field didefinisikan di parent class, maka semua propertynya diwariskan ke semua subclass. Dengan kata lain, parentclass dan subclass berbagi property
5. Subclass hanya perlu mengimplementasikan jika ada perbedaan dengan parent-nya.
C. Polymorfisme
Polimorfisme mempunyai makna sesuatu yang memiliki banyak bentuk, yaitu memiliki nama sama, tetapi memiliki behaviour (method) yang berbeda. Perhatikan diagram di bawah ini !
Gambar 7. Polimorfisme
Class Hewan yang merupakan class induk (superclass) dari class Sapi dan Kucing mempunyai method suara(). Class-class anak (subclass) juga mempunyai method suara().
Meskipun ketiga class tersebut mempunyai nama method yang sama, tetapi isi (source code/yang dilakukan/output) dari masing-masing method tersebut berbeda.
Jika kita menginginkan sebuah objek yang dapat memanggil setiap method (yaitu method suara) yang ada pada setiap class (pada superclass maupun subclass), maka gunakanlah teknik Polimorfisme. Polimorfisme hanya berlaku pada method dan tidak berlaku untuk atribut. Untuk mendapatkan operasi Polimorfisme dari suatu method, maka method tersebut haruslah merupakan method yang ada di class induk (lihat diagram diatas bahwa method suara(), selain terdapat di class-class turunan class Hewan, juga terdapat di class Hewan). Bentuk umum polimorfisme :
Superclass objek = new Subclass();
Berikut ini contoh penerapan polimorfisme :
Gambar 8. Penerapan Polimorfisme
Gambar 9. Tampilan Hasil Penerapan Polimorfisme
Dari penerapan di atas method suara() menghasilkan output yang berbeda-beda. Dapat disimpulkan polimorfisme berguna untuk penggunaan kembali method class yang ada saat anda membuat class baru.
KELOMPOK AHLI ENCAPTULATION 1. Jelaskan pengertian encaptulation ! 2. Jelaskan manfaat encaptulation ! 3. Jelaskan proses encaptulation !
4. Bagaimana penerapan encaptulation dalam program !
KELOMPOK AHLI INHERITANCE 1. Jelaskan pengertian inheritance ! 2. Jelaskan manfaat inheritance !
3. Jelaskan perbedaan superclass dan subclass ! 4. Bagaimana penerapan inheritance dalam program !
KELOMPOK AHLI POLYMORPHISM 1. Jelaskan pengertian polymorphism ! 2. Jelaskan manfaat polymorphism !
3. Jelaskan perbedaan overloading dan overriding !
4. Bagaimana penerapan polymorphism dengan overloading dan overriding !