Anda di halaman 1dari 16

RENCANA PELAKSANAAN PEMBELAJARAN

(RPP)

Nama Sekolah : SMK Negeri 3 Pamekasan


Program Keahlian : Teknik Komputer dan Informatika
Kompetensi Keahlian : Rekayasa Perangkat Lunak
Mata Pelajaran : Pemprograman Berorientasi Objek
Kelas/ Semester : XII/ 1 ( Satu )
Tahun Pelajaran : 2020/ 2021
Durasi : 8 X 45 Menit
Pertemuan : 4xTatapMuaka

A. Kompetensi Inti
KI-1 (Spriritual) Menghayati dan mengamalkan ajaran agama yang dianutnya

KI-2 (Sikap) Menghayati dan Mengamalkan perilaku jujur, disiplin, tanggung


jawab, peduli (gotong royong, kerjasama, toleran, damai), santun,
responsif dan proaktif dan menunjukan sikap sebagai bagian dari
solusi atas berbagai permasalahan dalam berinteraksi secara
efektif dengan lingkungan sosial dan alam serta dalam
menempatkan diri sebagai cerminan bangsa dalam pergaulan
dunia
KI-3 (Pengetahuan) : Memahami, menerapkan, menganalisis, dan mengevaluasi
tentang pengetahuan faktual, konseptual, operasional dasar, dan
metakognitif sesuai dengan bidang dan lingkup kerja
Pemrograman Dasar. Pada tingkat teknis, spesifik, detil, dan
kompleks, berkenaan dengan ilmu pengetahuan, teknologi, seni,
budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, dunia kerja, warga
masyarakat nasional, regional, dan internasional..
KI-4 (Keterampilan) : Melaksanakan tugas spesifik dengan menggunakan alat,
informasi, dan prosedur kerja yang lazim dilakukan serta
memecahkan masalah sesuai dengan bidang kerja Pemrograman
Dasar. Menampilkan kinerja di bawah bimbingan dengan mutu
dan kuantitas yang terukur sesuai dengan standar kompetensi
kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji
secara efektif, kreatif, produktif, kritis, mandiri, kolaboratif,
komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu
melaksanakan tugas spesifik di bawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru,
membiasakan, gerak mahir, menjadikan gerak alami dalam ranah
konkret terkait dengan pengembangan dari yang dipelajarinya di
sekolah, serta mampu melaksanakan tugas spesifik di bawah
pengawasan langsung.
B. Kompetensi Dasar dan Indikator Pencapaian Kompetensi

Kompetensi Dasar Indikator Pencapaian Kompetensi

3.1.1. Menjelaskan konsep dasar


3.4. Menerapkan dasar-dasar instruksi thread dalam
thread pemrograman aplikasi berorientasi
obyek.
3.1.2. Menjelaskan prosedur instruksi
thread dalam pemrograman aplikasi
berorientasi obyek.
4.4. Membuat instruksi - instruksi 3.1.3. Menentukan penggunaan
thread instruksi thread dalam
pemrograman aplikasi berorientasi
obyek.
4.1.1. Menerapkan instruksi thread dalam
pemrograman aplikasi berorientasi
obyek.
4.1.2. Merancang program aplikasi
berorientasi obyek dengan penerapan
instruksi thread.
4.1.3. Membuat kode program aplikasi
berorientasi obyek yang menerapkan
instruksi thread.
4.1.4. Menguji program aplikasi
berorientasi obyek yang menerapkan
instruksi thread.

C. Tujuan Pembelajaran
Setelah mengikuti pembelajaran dengan menggunakan pendekatan saintifik, model
pembelajaran Discovery Learning serta Melalui tayangan materi dengan
menggunakan media web meeting (zoom meeting /google meet) dan contoh yang
diberikan guru, serta diskusi yang dilakukan oleh guru dan peserta didik, maka
peserta didik mampu:
1. Menerapkan penggunaan dasar-dasar thread secara mandiri dan kreatif
2. Menganalisis penggunaan instruksi-instruksi thread dengan komunikatif
dan bersahabat.
3. Membuat kode program dengan instruksi-instruksi thread dan ekspresi
secara kreatif
4. Mendemonstrasikan kode program dengan instruksi-instruksi thread dengan
komunikatif dan bersahabat
D. Materi Pembelajaran

THREAD
Thread adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java
minimal memiliki satu buah thread. Sebuah thread bisa berada di salah satu dari 4 status,
yaitu new, runnable, blocked, dan dead.
A. Status Thread
1. New
Thread yang berada di status ini adalah objek dari kelas Thread yang baru dibuat,
yaitu saat instansiasi objek dengan statement new. Saat thread berada di status
new,belum ada sumber daya yang dialokasikan, sehingga thread belum bisa
menjalankan perintah apapun.
2. Runnable
Agar thread bisa menjalankan tugasnya, method start() dari kelas Thread harus
dipanggil. Ada dua hal yang terjadi saat pemanggilan method start(), yaitu alokasi
memori untuk thread yang dibuat dan pemanggilan method run(). Saat method run()
dipanggil, status thread berubah menjadi runnable, artinya thread tersebut sudah
memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang berjalan juga
berada di status runnable.
3. Blocked
Sebuah thread dikatakan berstatus blocked atau terhalang jika terjadi blocking
statement, misalnya pemanggilan method sleep(). sleep() adalah suatu method yang
menerima argumen bertipe integer dalam bentuk milisekon. Argumen tersebut
menunjukkan seberapa lama thread akan “tidur”. Selain sleep(), dulunya dikenal
method suspend(), tetapi sudah disarankan untuk tidak digunakan lagi karena
mengakibatkan terjadinya deadlock. Thread akan menjadi runnable kembali jika
interval method sleep()-nya sudah berakhir, atau pemanggilan method resume() jika
untuk menghalangi thread tadi digunakan method suspend()
4. Dead
Sebuah thread berada di status dead bila telah keluar dari method run(). Hal ini
bisa terjadi karena thread tersebut memang telah menyelesaikan pekerjaannya di
method run(), maupun karena adanya pembatalan thread. Status jelas dari sebuah
thread tidak dapat diketahui, tetapi method isAlive() mengembalikan nilai boolean
untuk mengetahui apakah thread tersebut dead atau tidak.

B. Pembentukan Thread dalam java


Untuk membuat thread dalam java terdapat dua cara :
a. Extends class Thread
Untuk menjalankan thread, dapat dilakukan dengan memanggil method start().
Saat start() dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi
untuk membuat thread, harus mendefinisikan method run() pada definisi class.
Konstruktor dari cara ini adalah:
SubThread namaObject = new
SubThread(); namaObject.start();

b. Implements interface Runnable


Cara ini merupakan cara yang paling sederhana dalam membuat thread.
Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface
ini hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi
fungsi run(),kita akan mendefinisikan instruksi yang membangun sebuah thread.
Konstruktor dari cara ini adalah:
MyThread myObject= new MyThread();
Thread namaObject = new
Thread(myObject); Atau dengan cara
singkat seperti :
New Thread(new ObjekRunnable());
MyThread merupakan class yang mengimplementasikan interface dari Runnable, dan
object dari class MyThread akan menjadi parameter instansi object class Thread.

c. Synchronized
Sinkronisasi adalah method atau blok yang memiliki tambahan keyword
synchronized,sehingga apabila dijalankan maka hanya satu thread pada suatu waktu
yang dapat menjalankan method atau blok program. Thread lain akan menunggu
thread yang sedang mengeksekusi method ini hingga selesai. Mekanisme sinkronisasi
penting apabila terjadi pembagian sumber daya maupun data di antara thread-
thread. Sinkronisasi juga melakukan penguncian pada sumber daya atau data yang
sedang diproses.
Sinkronisasi dapat dilakukan pada dua bagian yaitu
1. Sinkronisasi Blok
Sintak untuk sinkronisasi blok adalah sebagai berikut :
synchronized (<object reference expression>){ <code block> }
2. Sinkronisasi Method
Sintak untuk sinkronisasi method adalah sebagai berikut:
synchronized TypeBalikanMethod NamaMethod ( parameter){ }

C. Prioritas Thread
Dalam Java kita dapat membuat prioritas suatu thread relative terhadapa thread yang
lain. Sehingga thread yang mempunyai prioritas lebih tinggi mempunyai kesempatan lebih
besar untuk mengakses suatu sources.
Java Virtual Machine memilih thread yang runnable dengan prioritas tertinggi. Semua
thread java mempunyai prioritas dari 1 sampai 10. Prioritas tertinggi 10 dan berakhir
dengan 1 sebagai prioritas terendah. Sedangkan prioritas normal adalah 5.
Thread.MIN_PRIORITY = thread dengan prioritas terendah.
Thread.MAX_PRIORITY = thread dengan prioritas tertinggi.
Thread.NORM_PRIORITY = thread dengan prioritas normal.
Saat thread baru dibuat ia mempunyai prioritas yang sama dengan thread yang
menciptakannya. Prioritas thread dapat diubah dengan menggunakan setpriority()
method.
 activeCount()
Mengembalikan nilai sekarang yang aktif pada virtual mesin.

 currentThread()
Akan mengembalikan nilai object uang sekarang.

 getPriority()
Akan mengembalikan Prioritas thread.

 isAlive()
Mengecek aktifnya thread.

 join()
Menuggu hingga thread ini selesai.

 run()
jika thread ini dibangun harus menggunakan implementasi Runnable dan
menyantumkan object run maka otomatis object Runable akan memanggil method run.

 setPriority()
Merubah prioritas pada thread ini.

 sleep()
Untuk melaksanakan berhenti sementara dalam betuk milidetik.

 start()
Thread ini mengawali eksekusi.

 yield()
Thread ini untuk menunda dan mengijinkan thread lain untuk mengeksekusi.
Menggunakan Thread
Untuk diketahui, ada 2 cara dalam menggunakan class Thread ini:
1. Mendeklarasikan sebuah kelas yang menjadi turunan dari kelas Thread.
Sub kelas yang dibuat harus mengoverride method run dari kelas Thread, baru
kemudian kita bisa membuat sebuah instance dari kelas tersebut untuk
dialokasikan dan dijalankan.
Berikut contoh Thread yang akan melakukan penghitungan scoring.

class ThreadSkoring extends

Thread { ThreadSkoring() {

public void run() {

// operasi menghitung skor game

...

Pendeklarasian Class :
Membuat obyek ThreadSkoring dan menjalankannya:

ThreadSkoring p = new

ThreadSkoring(); p.start();

2. Mendeklarasikan sebuah kelas yang mengimplementasikan interface Runnable.


Kelas baru yang dibuat harus mengoverride method run dari kelas Runnable,
baru kemudian sebuah instance dari kelas tersebut bisa dialokasikan dan
dijalankan melalui argumen saat membuat obyek baru dari kelas Thread.
Pendeklarasian kelas:

class RunSkoring extends

Thread { RunSkoring() {

public void run() {

// operasi menghitung skor game

...

Membuat obyek RunSkoring dan menjalankannya:

RunSkoring p = new

RunSkoring(); new

Thread(p).start();

3. Menghentikan Thread
Setelah melihat daftar method-method Thread yang didukung pada J2ME di
atas, tampak tidak terdapat method stop() dan interrupt(). Keduanya didukung
pada J2SE, namun karena konfigurasi J2ME yang minim, keduanya tidak didukung.
Method stop() telah dihilangkan karena inherently unreliable dan tidak bisa
diimplementasikan pada semua platform dengan aman dan konsisten. Sedangkan
method interrupt() sudah diperkenalkan lagi pada CLDC versi 1.1 dan sepertinya
akan segera diperkenalkan juga pada CDC revisi berikutnya. Oleh karena itu, agar
thread yang kita buat dan jalankan bisa berhenti, maka kita perlu memberikan flag
agar tiap-tiap live thread bisa menghentikan dirinya sendiri. Flag ini sangat penting
didefinisikan untuk setiap thread pada sebuah aplikasi agar bisa menghentikan
dirinya sendiri. Cara paling mudah ialah agar thread secara periodik memeriksa
sebuah variabel flag untuk menentukan dirinya berjalan terus atau sudah harus
berhenti. Misalnya dengan mendefinisikan sebuah kelas MyThread sebagai berikut:

public class MyThread implements Runnable {

private boolean selesai = false;

public void run(){

while( !selesai ){

// lakukan operasi yang diperlukan

public void selesai(){

selesai = true;

Kelas di atas akan terus melakukan operasi pada method run() sampai kita
memanggil method selesai() yang sudah kita definisikan di dalam kelas itu.

E. Pendekatan, Metode dan Model Pembelajaran


1. Pendekatan : Saintifik
2. Metode : Penugasan, diskusi, tanya jawab
3. Model : Discovery Learning

F. Langkah Pembelajaran
SKENARIO PEMBELAJARAN PERTEMUAN I
Tahapan Media Alokasi
No. Deskripsi Kegiatan
Pembelajaran Daring Waktu
1. Pendahuluan (20 menit)
Persiapan / Guru: mempersiapkan media Zoom 5’
Koneksi yang digunakan dalam Meeting /
pembelajaran daring dan
Google
mengkondisikan Kelas Virtual
Google Meet Meeting

Peserta didik:
mempersiapkan diri untuk
menerima pelajaran sambil
menunggu teman yang lain
untuk bergabung pada kelas
online

Salam Guru : mengucapkan salam 1’


sebagai pembuka pelajaran
Peserta Didik: menjawab
salam guru dengan kompak
Doa (memulai Guru: menunjuk ketua kelas 1’
Pelajaran) untuk memimpin do’a sebelum
memulai pembelajaran agar
kegiatan pembelajaran
berrjalan lancar dan
mendapatkan ridho dari
ALLAH SWT
Peserta didik: berdo’a
menurut agama dan
kepercayaannya masing-
masing agar kegiatan
pembelajaran berjalan lancar
dan mendapatkan ridho dari
ALLAH SWT
Kehadiran Guru: mengecek kehadiran 3’
peserta didik dengan
memanggil satu-persatu nama
siswa sesuai nomor urut yang
ada di absensi
Peserta didik: menjawab
presensi dari guru dengan
mengacungkan tangan
dan menjawab “Hadir ”
(semua peserta didik
mengaktifkan kamera video)
Apersepsi dan Guru: 10’
Motivasi  memulai pembelajaran
dengan melakukan
apersepsi dengan cara
memberi gambaran
tentang materi yang akan
dipelajari dan
menunjukkan pentingnya
materi dalam kehidupan
sehari-hari dan untuk masa
depan peserta didik;
 membimbing dan
membantu peserta didik
untuk memahamkan tujuan
pembelajaran dengan
melontarkan pertanyaan-
pertanyaan agar anak-
anak aktif untuk
menentukan tujuan
pembelajaran
Peserta Didik:
 memperhatikan dan
termotivasi dengan
gambaran materi yang
diberikan oleh guru
dengan memberikan
respon yang baik dan
berusaha memahami
penyampaian guru
 memahami tujuan
pembelajaran dengan
menjawab pertanyan dari
guru dan secara aktif
mereka menyebutkan
tujuan pembelajaran sesuai
dengan
pemahaman peserta didik
2. Kegiatan Inti (100 menit)
Stimulus Guru: menampilkan tayangan Zoom 291’
tentang penggunaan Meeting /
instruksi-instruksi thread. Google
Peserta Didik: mengamati, Meeting
memperhatikan, dan
memahami tayangan tentang
penggunaan instruksi-
instruksi thread.

Identifikasi Guru: menanyakan maksud


Masalah dari tayangan tentang
penggunaan instruksi-
instruksi thread.
Peserta Didik: secara aktif
menjawab pertanyaan guru
tentang penggunaan instruksi-
instruksi thread dengan
semangat, komunikatif, dan
bertanya apa
yang masih kurang dipahami

Pengumpulan Guru: meminta Peserta didik


data menggali informasi tentang
penggunaan instruksi-
instruksi thread
Peserta Didik: menggali
informasi tentang tentang
penggunaan instruksi-
instruksi thread, seperti
menganalisis, mencari contoh
penggunaan, penerapan dalam
pemrograman dari materi
instruksi-instruksi thread

Pembuktian Guru: meminta peserta didik 25’


dengan memanggil secara acak
dan berdiskusi dengan teman
sekelas untuk menjelaskan
hasil dari pencarian informasi
tentang penggunaan instruksi-
instruksi thread
Peserta didik: menjelaskan
hasil dari pencarian informasi
tentang penggunaan, hasil
analisis, pencarian contoh
penggunaan, dan penerapan
instruksi-instruksi thread
dan ekspresi dengan
komunikatif dan bersahabat
serta teman lainnya
menanggapi hasil penjelasan
temannya dengan sopan

Menarik Guru: menunjuk salah satu 10’


Kesimpulan peserta didik untuk
menyimpulkan hasil diskusi
yang telah dijelaskan
Peserta didik: memaparkan
hasil kesimpulan yang dapat
diambil dari hasil diskusi
tentang penggunaan
instruksi-instruksi thread
dengan komunikatif,
bersahabat, dan
sopan
3. Penutup (15 menit)
Refleksi Guru: mengajak peserta didik Zoom 10’
untuk menyimpulkan hasil Meeting /
diskusi yang telah dilakukan Google
peserta didik dan memberikan Meeting,
reward untuk kelompok yang Google
aktif dalam diskusi Classroom
Peserta didik: aktif
menyampaikan kesimpulan
dengan bahasa sendiri dengan
antusias
Guru: mengajak para peserta
didik untuk merefleksi
belajarnya: apa yang sulit
dipelajari, masalah apa yang
dirasakan, bagaimana
kesuksesan dan/atau
kegagalan dalam
pekerjaannya. Peserta didik:
aktif menjawab dan
mengajukan pertanyaan
kepada guru dengan antusias
Tindak lanjut Guru: memberitahukan 3’
kepada peserta didik
tentang materi yang akan
dipelajari pada pertemuan
selanjutnya dan tugas yang
harus dikerjakan pada
Google Classroom.
Peserta didik:
memperhatikan dan mencatat
tentang materi yang akan
dipelajari pada pertemuan
berikutnya dan membuka
google classroom untuk
mengecek tugas yang harus
dikerjakan
Do’a Guru: menunjuk ketua kelas 1’
(Mengakhiri untuk memimpin do’a
Pelajaran) sebelum mengakhiri
pembelajaran agar kegiatan
pembelajaran berrjalan lancar
dan
mendapatkan ridho dari
ALLAH SWT
Peserta didik: berdo’a
menurut agama dan
kepercayaannya masing-
masing agar ilmu yang
diperoleh mendapatkan ridho
dari ALLAH SWT
Salam Guru: mengucapkan 1’
salam sebagai penutup
pelajaran Peserta didik:
menjawab
salam guru dengan kompak
G. Alat dan Media Pembelajaran
1 Slide Powerpoint.
2 Zoom Meeting / Google Meet
3 PC (Personal Computer)/Smart Phone Android
a. Bagi Guru digunakan sebagai media penyampaian materi pembelajaran
b. Bagi Peserta didik digunakan sebagai media mengerjakan tugas

H. Sumber Belajar
1. Modul J.E.N.I- -Intro2-Bab09-Threads
2. Internet

I. Penilaian Pembelajaran
No Aspek yang dinilai Teknik Waktu Penilaian
Penilaian
1. Sikap Observasi kinerja Selama
a. Kedisiplinan dengan pembelajaran
b. Kerjasama Rubrik
c. Prakarsa
d. Tanggung jawab
2. Pengetahuan Test Diakhir
Tentang penggunaan instruksi- (PG dan Essay) pembelajaran
instruksi thread

3. Keterampilan Portofolio Pada saat


Portofolio tentang penggunaan pengumpulan
instruksi-instruksi dalam tugas
pemrograman komputer

Pamekasan, 19 September 2020


Mengetahui,
Kepala SMKN 3 Pamekasan Guru Mata Pelajaran

Drs. MIFTAHOL Syarifal Hidayat


NIP. 19600826 198603 1 014 NIP. --

Anda mungkin juga menyukai