A. Standar Kompetensi :
Menerapkan Algoritma Pemrograman Tingkat Dasar
B. Kompetensi Dasar :
Menjelaskan dasar dasar pemrograman
C. Indikator :
1. Kognitif
a. Produk
1) Mendeskripsikan dasar penulisan program, tipe file penyimpanan
program, pembuatan komentar dalam baris program.
2) Menghafal formula untuk deklarasi dan inisialisasi variabel
3) Menjelaskan fungsi operator
b. Proses
1) Menganalisis penulisan program, tipe file program, dan komentar.
2) Mengidentifikasi tipe data yang sesuai dengan variabel yang akan
dibuat.
3) Menganalisis operator yang sesuai untuk kasus pemrograman
tertentu.
2. Afektif
a. Mengembangkan perilaku berkarakter, meliputi :
1) Jujur
2) Tanggung jawab
3) Disiplin
4) Percaya diri
5) Rasa ingin tahu
b. Mengembangkan keterampilan sosial, meliputi :
1) Bertanya
2) Menjadi pendengar yang baik
D. Tujuan Pembelajaran
1. Kognitif
a. Produk
1) Secara mandiri siswa dapat mendeskripsikan dasar penulisan
program, tipe file penyimpanan program, pembuatan komentar
dalam baris program pada pemrograman JAVA sesuai deskripsi
yang tercantum pada kunci LP1 produk.
2) Secara mandiri dan tanpa membuka bahan ajar siswa dapat
menguraikan syntax untuk pendeklarasian variabel dan inisialisasi
variabel pada pemrograman JAVA sesuai deskripsi yang tercantum
pada kunci LP1 Produk.
3) Secara mandiri siswa dapat mendeskripsikan tentang operator
dalam pemrograman JAVA dan fungsi kegunaannya sesuai
deskripsi yang tercantum pada kunci LP1 Produk.
b. Proses
1) Diberikan potongan syntax menggunakan bahasa pemrograman
JAVA. Siswa mampu menganalisis bagian-bagian penulisan
program yang kurang tepat, mendeteksi bagian komentar, serta
memberi tipe file yang sesuai dalam pemrograman JAVA
berdasarkan syntax yang sudah diberikan pada LP2 Proses sesuai
kunci LP2 Proses.
2) Diberikan soal cerita dimana di dalamnya terdapat beberapa tipe
data. Siswa mampu mengidentifikasi dan merancang variabel dan
tipe data yang paling sesuai berdasarkan soal yang telah diberikan
pada LP2 Proses sesuai kunci LP2 Proses.
3) Diberikan kasus pemrograman. Siswa secara mandiri dapat
menganalisis penggunaan operator yang sesuai untuk kasus yang
telah diberikan pada LP2 Proses sesuai kunci LP2 Proses.
2. Afektif
a. Karakter
Terlibat dalam proses belajar mengajar berpusat pada siswa, paling
tidak siswa dinilai pengamat membuat kemajuan dalam menunjukkan
perilaku berkarakter dengan LP3 Format Pengamatan Perilaku
Berkarakter, meliputi :
1) Jujur : siswa secara jujur mampu mengerjakan tugas-tugas tentang
dasar-dasar pemrograman yang diberikan
2) Tanggung jawab : siswa bertanggung jawab terhadap dirinya
sendiri untuk memahami pelajaran tentang dasar-dasar
pemrograman JAVA.
3) Disiplin : siswa disiplin dalam pengumpulan tugas dan kehadiran
di kelas
4) Percaya diri : Siswa secara individu mampu mengerjakan tugas
yang telah diberikan tanpa mencontek temannya.
5) Rasa ingin tahu : siswa mempunyai dorongan untuk mengetahui
hal-hal baru terkait dasar-dasar pemrograman JAVA.
b. Perilaku Sosial
Terlibat dalam proses belajar mengajar berpusat pada siswa, paling
tidak siswa dinilai membuat kemajuan dalam menunjukkan perilaku
berkarakter dengan LP4 Format Pengamatan Keterampilan Sosial,
meliputi :
1) Bertanya : siswa aktif bertanya ketika penjelasan guru dirasa
kurang memberi pemahaman pada dirinya.
2) Menjadi pendengar yang baik : dalam proses pembelajaran dasar-
dasar pemrograman menggunakan JAVA dengan model
pembelajaran langsung, siswa secara tenang mendengarkan
penjelasan dari guru.
E. Materi Pembelajaran
1. Konsep dasar dari pemrograman JAVA
2. Tipe data dan variabel kontrol pada pemrograman JAVA
3. Operator pada pemrograman JAVA
G. Metode Pembelajaran
1. Model Pembelajaran : Model Pembelajaran Langsung
2. Metode Pembelajaran : Penjelasan singkat dan pemberian tugas
D. Variabel
Variabel adalah item yang digunakan data untuk menyimpan pernyataan
objek. Variabel memiliki tipe data dan nama. Tipe data menandakan tipe nilai
yang dapat dibentuk oleh variabel itu sendiri. Nama variabel harus mengikuti
aturan untuk identifier.
1. Deklarasi dan Inisialisasi Variabel
Untuk deklarasi variabel adalah sebagai berikut,
<data tipe> <name> [=initial value];
Catatan: Nilainya berada diantara <> adalah nilai yang disyaratkan, sementara
nilai dalam tanda [] bersifat optional.
Berikut ini adalah contoh program yang mendeklarasikan dan
menginisialisasi beberapa variabel,
Petunjuk Penulisan Program:
a. Sangat baik untuk menginisialisasi variabel yang Anda buat seperti Anda
mendeklarasikannya.
b. Gunakan nama yang bersifat menggambarkan deskriptif untuk variabel
yang Anda buat, jika Anda ingin mempunyai variabel yang terdiri atas
nilai siswa, beri nama dengan nama grade dan jangan hanya beberapa
huruf random yang Anda pilih.
c. Deklarasikan satu variabel tiap baris kode. Sebagai contoh , deklarasi
variabel adalah sebagai berikut,
double exam=0;
double quiz=10;
double grade = 0;
Bentuk yang lebih disukai ketika melakukan deklarasi adalah,
double exam=0, quiz=10, grade=0;
2. Menampilkan Data Variabel
Untuk mengeluarkan nilai dari variabel yang diinginkan, kita dapat
menggunakan perintah sebagai berikut,
System.out.println()
System.out.print()
E. Operator
Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator
relasi, operator logika, dan operator kondisi. Operator ini mengikuti bermacam-
macam prioritas yang pasti sehingga compilernya akan tahu yang mana operator
untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-
sama dalam satu pernyataan.
1. Operator Aritmatika
Berikut ini adalah dasar operator aritmatika yang dapat digunakan untuk
membuat suatu program Java,
Berikut ini adalah contoh program dalam penggunaan operator-operator ini :
public class aritmatikaDemo
{
public static void main(String[] args)
{
//sedikit angka
int i = 37;
int j = 42;
double x = 27.475;
double y = 7.22;
System.out.println("Variable values...");
System.out.println(" i = " + i);
System.out.println(" j = " + j);
System.out.println(" x = " + x);
System.out.println(" y = " + y);
//penjumlahan angka
System.out.println("Adding...");
System.out.println(" i + j = " + (i + j));
System.out.println(" x + y = " + (x +
y)); //pengurangan angka
System.out.println("Subtracting...");
System.out.println(" i - j = " + (i - j));
System.out.println(" x - y = " + (x -
y)); //perkalian angka
System.out.println("Multiplying...");
System.out.println(" i * j = " + (i * j));
System.out.println(" x * y = " + (x *
y)); //pembagian angka
System.out.println("Dividing...");
System.out.println(" i / j = " + (i / j));
System.out.println(" x / y = " + (x /
y)); //menghitung hasil modulus dari
pembagian
System.out.println("Computing the remainder...");
System.out.println(" i % j = " + (i % j));
System.out.println(" x % y = " + (x % y));
//tipe penggabungan
System.out.println("Mixing tipes...");
System.out.println(" j + y = " + (j + y));
System.out.println(" i * x = " + (i *
x)); }
}
Perbedaan dasar antara operator && dan & adalah bahwa &&
mensupports short-circuit evaluations (atau evaluasi perbagian), sementara
operator & tidak. Apa arti dari pernyataan tersebut?
Diberikan suatu pernyataan,
exp1 && exp2
&& akan mengevaluasi pernyataan exp1, dan segera mengembalikan
nilai false dan menyatakan bahwa exp1 bernilai false. Jika exp1 bernilai false,
operator tidak akan pernah mengevaluasi exp2 karena hasil operasi operator
akan menjadi false tanpa memperhatikan nilai dari exp2. Sebaliknya, operator
& selalu mengevaluasi kedua nilai dari exp1 dan exp2 sebelum
mengembalikan suatu nilai jawaban.
Berikut ini adalah suatu contoh source code yang menggunakan logika
dan boolean AND,
public class TestAND
{
public static void main( String[] args )
{ int i = 0;
int j = 10;
boolean test=
false; //demonstrasi
&&
test = (i > 10) && (j++ > 9);
System.out.println(i);
System.out.println(j);
System.out.println(test);
//demonstrasi &
test = (i > 10) & (j++ > 9);
System.out.println(i);
System.out.println(j);
System.out.println(test);
}
}
Output program tersebut adalah :
0
10
false
0
11
false
Catatan, bahwa j++ pada baris yang mengandung operator && tidak
dievaluasi sejak pernyataan pertama (i>10) yaitu telah bernilai sama dengan
false.
b. || (logika OR) dan | (boolean logika inclusive OR)
Berikut ini adalah tabel kebenaran untuk || dan |,
Hasil operasi operator exclusive OR adalah TRUE, jika dan hanya jika
satu operand bernilai TRUE dan yang lain bernilai False. Catatan jika kedua
operand harus selalu dievaluasi untuk menjumlahkan hasil dari suatu
exclusive OR.
Berikut ini adalah contoh source code yang menggunakan operator logika
exclusive OR,
d. ! (logika NOT)
Logika NOT digunakan dalam satu argumen, dimana argumen tersebut
dapat menjadi suatu pernyataan, variabel atau konstanta. Berikut ini adalah
tabel kebenaran untuk operator not!,
Berikut ini adalah contoh source code yang menggunakan operator logika
NOT,
public class TestNOT
{
public static void main( String[] args )
{ boolean val1 = true;
boolean val2 = false;
System.out.println(!val1);
System.out.println(!val2);
}
}
Hasil keluaran program adalah sebagai berikut,
false
true
5. Operator Kondisi(?:)
Operator kondisi ?: adalah operator ternary. Berarti bahwa operator ini
membawa tiga argumen yang membentuk suatu ekspresi bersyarat. Struktur
pernyataan yang menggunakan operator kondisi adalah,
exp1?exp2:exp3
Dimana nilai exp1 adalah suatu pernyataan boolean yang memiliki hasil yang
salah satunya harus berupa nilai true atau false.
Jika exp1 bernilai true, exp2 merupakan hasil operasi. Jika bernilai false,
kemudian exp3 merupakan hasil operasinya.
Sebagai contoh, diberikan code sebagai berikut,
public class ConditionalOperator
{
public static void main( String[] args )
{ String status = "";
int grade = 80;
//mendapatkan status pelajar
status = (grade >=
60)?"Passed":"Fail"; //print status
System.out.println( status );
}
}
Hasil keluaran dari program ini akan menjadi,
Passed
Berikut ini adalah flowchart yang menggambarkan bagaimana operator ?:
bekerja,
4. Baris komentar :
//Saya berhasil !
Atau
/* Saya berhasil ! */
5. } //tutup method
utama } // tutup class
6. Nama file : <nama siswa>.java
Ket : <nama siswa> harusnya diisi dengan nama siswa tanpa kurung siku
Kriteria Penilaian Kinerja Produk
Kriteria
No. Rincian produk yang diamati
Kriteria
No. Rincian produk yang diamati
LP 1B : PRODUK
Nama : __________________ Kelas :
________ No. Absen : __________________ Tanggal :
________
1. c
2. c
3. b
4. d
5. c
6. d
7. a
8. b
9. c
10. a
Penggunaan Kegunaan
OpX > OpZ
OpX >= OpZ
OpX < OpZ
OpX <= OpZ
OpX == OpZ
OpX != OpZ
4. Terdapat variabel OpX dan OpZ dimana operator tersebut berupa pernyataan
boolean. Berdasarkan penggunaan operator logika untuk variabel OpX dan
OpZ di bawah ini, jawablah kesimpulan hasil operasi dalam bentuk boolean
yang terletak di sebelahnya: (skor maksimal 20)
a. Operator AND (&&)
OpX OpZ Hasil
TRUE TRUE
TRUE FALSE
FALSE TRUE
FALSE FALSE
b. Operator OR (||)
OpX OpZ Hasil
TRUE TRUE
TRUE FALSE
FALSE TRUE
FALSE FALSE
c. Operator ExclusiveOR(XOR)
OpX OpZ Hasil
TRUE TRUE
TRUE FALSE
FALSE TRUE
FALSE FALSE
TRUE
FALSE
Penggunaan Kegunaan
OpX > OpZ Nilai OpX lebih besar dari pada OpZ
OpX >= OpZ Nilai OpX lebih besar atau sama dengan nilai OpZ
OpX < OpZ Nilai OpX kurang dari OpZ
OpX <= OpZ Nilai OpX kurang dari atau sama dengan OpZ
OpX == OpZ Nilai OpX sama dengan OpZ
OpX != OpZ Nilai OpX tidak sama dengan OpZ
4. Terdapat variabel OpX dan OpZ dimana operator tersebut berupa pernyataan
boolean. Berdasarkan penggunaan operator logika untuk variabel OpX dan
OpZ di bawah ini, jawablah kesimpulan hasil operasi dalam bentuk boolean
yang terletak di sebelahnya:
a. Operator AND (&&)
OpX OpZ Hasil
b. Operator OR (||)
OpX OpZ Hasil
c. Operator ExclusiveOR(XOR)
OpX OpZ Hasil
TRUE FALSE
FALSE TRUE
5. Maksud dari pernyataan
Hasil_Ujian>=70?Lulus:Silahkan Remedial;
adalah bahwa :
a. Hasil_Ujian>=70 merupakan pernyataan boolean untuk memberikan
hasil true atau false (jika Hasil_Ujian bernilai >=70, maka akan
mengembalikan nilai true. begitu pula sebaliknya)
b. Lulus merupakan hasil operasi. jika pernyataan di awal (poin no 1)
bernilai true maka hasil operasi akan mengembalikan nilai Lulus
c. Silahkan Remedial merupakan hasil operasi. jika pernyataan di awal
(poin no 1) bernilai false maka hasil operasi akan mengembalikan
nilai Silahkan Remedial
1. Operator Aritmatika 20
2. Operator Increment dan Decrement 20
3. Operator relasi 20
4. Operator Logika 20
5. Operator (?:) 20
Jumlah skor 100
KRITERIA PENILAIAN KINERJA PRODUK
Kriteria
No. Rincian produk yang diamati
LP 2A : PROSES
Nama : __________________ Kelas :
________ No. Absen : __________________ Tanggal :
________
Prosedur :
1. Siapkan program Test seperti yang tercantum di bawah ini menggunakan
notepad++ pada layar proyektor atau tulis di whiteboard :
kemudian tunjukkan pada siswa bahwa program Test disimpan dalam file
seperti di bawah ini. Atau jika tidak menggunakan proyektor, beri keterangan
bahwa program ini disimpan pada direktori komputer dengan nama seperti di
bawah ini :
2. Tugasi siswa melakukan pengamatan terhadap program Test di atas dan cara
penyimpanannya.
3. Berikan siswa tugas untuk melakukan identifikasi kesalahan pada baris
program Test dan file penyimpanannya dan menuliskannya di lembar
jawaban serta alasan kesalahannya.
4. Tugasi siswa untuk memperbaiki potongan program Test dan file
penyimpanannya dan menuliskannya di lembar jawaban.
5. Siswa diijinkan mengakses kinerja mereka sendiri dengan menggunakan
format ini.
Format Asesmen Kinerja Proses
No. Rincian Tugas Kinerja Skor Skor Asesmen
Maksimum Oleh siswa Oleh
sendiri guru
1. Dapat mengidentifikasi kesalahan yang terdapat 50
dalam program
2. Dapat memperbaiki program yang dicontohkan 50
LP 2B : PROSES
Nama : __________________ Kelas :
________ No. Absen : __________________ Tanggal :
________
Prosedur :
1. Diberikan soal cerita:
Pada sekolah SMK XYZ, guru mata pelajaran RPL membutuhkan sebuah
program yang dapat membantu guru menangani data siswa. Guru
menginginkan program yang dapat menyimpan data nama siswa, nomor induk
siswa, dan data nilai. data nilai ujian blok I, II, dan III, ujian semester, dan
data PR I, PR II, PR III(dalam skala 0-100) juga diharapkan dapat disimpan
dalam program tersebut. Kemudian dari data tersebut guru menginginkan
program dapat membuat rata-rata nilai, dan kemudian disimpan dalam
variabel tersendiri. Berdasarkan nilai rata-rata, kemudian didapat data siswa
tersebut lulus atau tidak, dan disimpan dalam variabel tersendiri.
2. Tugasi siswa untuk mengidentifikasi variabel apa saja yang dibutuhkan untuk
menyimpan data sesuai soal cerita pada poin 1.
3. Berikan siswa tugas untuk melakukan identifikasi tipe data yang sesuai
dengan variabel yang akan dibuat.
4. Format laporan dalam bentuk nama variabel fungsi tipe data
5. Siswa diijinkan mengakses kinerja mereka sendiri dengan menggunakan
format ini.
Format Asesmen Kinerja Proses
No. Rincian Tugas Kinerja Skor Skor Asesmen
Maksimum Oleh siswa Oleh guru
sendiri
1. Dapat mengidentifikasi variabel yang 25
diperlukan
2. Dapat menjelaskan fungsi masing-masing 25
variabel
3. Dapat mengidentifikasi tipe data yang sesuai 50
dengan variabel
Skor Total 100
Kunci LP 2B PROSES
Prosedur :
1. Diberikan soal :
a. terdapat tiga angka. buatlah fungsi main untuk menghasilkan output nilai
rata-rata dari tiga angka tersebut.
b. terdapat tiga angka. buatlah fungsi main untuk menghasilkan output nilai
terbesar dari tiga angka tersebut.
1. Potongan program :
public class Rata{
public static void main(String[] args)
{ int nilai1 = 15;
int nilai2 = 25;
int nilai3 = 20;
float rata2;
rata2 = (nilai1+nilai2+nilai3)/3;
system.out.println(Nilai rata-rata yang dicari
adalah = + rata2);
}
}
OUTPUT :
Nilai rata-rata yang dicari adalah = 20
2. Potongan program :
public class Rata{
public static void main(String[] args)
{ int nilai1 = 15;
int nilai2 = 25;
int nilai3 = 20;
int max;
max=nilai1;
max=(nilai1>nilai2)?nilai1:nilai2;
max=(max>nilai3)?max:nilai3;
system.out.println(Nilai maksimal yang dicari
adalah = + max);
}
}
OUTPUT :
KRITERIA PENILAIAN 2C KINERJA PROSES
Petunjuk :
Untuk setiap perilaku keterampilan sosial berikut ini, berilah penilaian atas
keterampilan sosial menggunakan skala berikut ini.
D = Memerlukan perbaikan B = Memuaskan
C = Menunjukkan kemajuan A = Sangat baik
Petunjuk :
Untuk setiap perilaku keterampilan sosial berikut ini, berilah penilaian atas
keterampilan sosial menggunakan skala berikut ini.
D = Memerlukan perbaikan B = Memuaskan
C = Menunjukkan kemajuan A = Sangat baik
A. Standar Kompetensi :
Merancang aplikasi teks dan desktop berbasis obyek
B. Kompetensi Dasar :
Menerapkan Fungsi
C. Indikator :
1. Kognitif
c. Produk
1) Menjelaskan struktur kontrol keputusan/pemilihan (if, else, dan
switch)
2) Menjelaskan struktur kontrol perulangan / looping
d. Proses
1) Merancang program yang didalamnya terdapat struktur kontrol
keputusan/pemilihan dengan mendapat inputan dari keyboard
2) Merancang program yang didalamnya terdapat struktur kontrol
perulangan dengan mendapat inputan dari keyboard
e. Psikomotor
1) Membuat program yang didalamnya terdapat penerapan struktur
kontrol keputusan/pemilihan dengan mendapat inputan dari
keyboard
2) Membuat program yang didalamnya terdapat penerapan struktur
kontrol perulangan dengan mendapat inputan dari keyboard
2. Afektif
c. Mengembangkan perilaku berkarakter, meliputi :
1) Jujur
2) Tanggung jawab
3) Kerjasama
4) Disiplin
d. Mengembangkan keterampilan sosial, meliputi :
3) Bertanya
4) Menyumbang ide atau berpendapat
D. Tujuan Pembelajaran
3. Kognitif
a. Produk
1) Secara mandiri dan tanpa membuka bahan ajar siswa dapat
menjelaskan struktur kontrol/pemilihan (if, else dan switch) pada
pemrograman JAVA sesuai deskripsi yang tercantum pada kunci
LP1 produk.
2) Secara mandiri dan tanpa membuka bahan ajar siswa dapat
menjelaskan struktur kontrol perulangan / looping (while, do-
while, for) pada pemrograman JAVA sesuai deskripsi yang
tercantum pada kunci LP1 Produk.
b. Proses
1) Diberikan program/aplikasi java yang sudah jadi. Siswa secara
berkelompok mampu untuk merancang algoritma fungsi untuk
struktur kontrol/keputusan sesuai dengan program yang sudah
diberikan menggunakan bahasa pemrograman JAVA berdasarkan
format LP2 Proses sesuai kunci LP2 Proses.
2) Diberikan program/aplikasi java yang sudah jadi. Siswa secara
berkelompok mampu untuk merancang algoritma fungsi untuk
struktur perulangan sesuai dengan program yang sudah diberikan
menggunakan bahasa pemrograman JAVA berdasarkan format
LP2 Proses sesuai kunci LP2 Proses.
c. Psikomotor
1) Diberikan program/aplikasi java yang sudah jadi. Siswa secara
berkelompok mampu untuk membuat program dengan
menerapkan struktur kontrol keputusan/pemilihan
untuk menghasilkan program yang sesuai dengan apa yang
telah diberikan menggunakan bahasa pemrograman JAVA
dan menggunakan inputan dari keyboard berdasarkan format
LP3 Psikomotor sesuai kunci LP3 Psikomotor.
2) Diberikan program/aplikasi java yang sudah jadi. Siswa secara
berkelompok mampu untuk membuat program dengan
menerapkan struktur kontrol perulangan untuk menghasilkan
program yang sesuai dengan apa yang telah diberikan
menggunakan bahasa pemrograman JAVA dan menggunakan
inputan dari keyboard berdasarkan format LP3 Psikomotor sesuai
kunci LP3 Psikomotor.
4. Afektif
c. Karakter
Terlibat dalam proses belajar mengajar berpusat pada siswa, paling
tidak siswa dinilai pengamat membuat kemajuan dalam menunjukkan
perilaku berkarakter dengan LP3 Format Pengamatan Perilaku
Berkarakter, meliputi :
1) Jujur : siswa secara jujur mampu mengerjakan tugas-tugas
tentang penerapan fungsi pada pemrograman JAVA
2) Tanggung jawab : siswa bertanggung jawab terhadap dirinya
sendiri untuk memahami pelajaran tentang penerapan fungsi pada
pemrograman JAVA.
3) Kerjasama : siswa memiliki kemampuan bekerjasama yang baik
antara satu sama lain, karena pembelajaran penerapan fungsi pada
pemrograman JAVA dilaksanakan secara berkelompok
menggunakan model pembelajaran berdasar masalah.
4) Disiplin : siswa disiplin dalam pengumpulan tugas dengan tepat
waktu dan kehadiran di kelas.
d. Perilaku Sosial
Terlibat dalam proses belajar mengajar berpusat pada siswa, paling
tidak siswa dinilai membuat kemajuan dalam menunjukkan perilaku
berkarakter dengan LP4 Format Pengamatan Keterampilan Sosial,
meliputi :
1) Bertanya : siswa aktif bertanya ketika penjelasan guru dirasa
kurang memberi pemahaman pada dirinya.
2) Menyumbang ide atau berpendapat : siswa aktif menyumbangkan
ide atau berpendapat dalam kegiatan berkelompok untuk
menyelesaikan masalah yang muncul pada saat pengerjaan tugas.
E. Materi Pembelajaran
1. Mendapatkan input dari keyboard pada pemrograman JAVA
2. Struktur kontrol keputusan untuk memilih bagian dari program yang akan
di eksekusi pemrograman JAVA
3. Struktur kontrol perulangan untuk mengkesekusi blok kode berulang-
ulang sesuai dengan jumlah tertentu yang diinginkan pemrograman JAVA
G. Metode Pembelajaran
1. Model Pembelajaran : Model Pembelajaran Berdasar Masalah(MPBM)
2. Metode Pembelajaran: Penjelasan singkat dan pemberian tugas untuk
kelompok
H. Proses Belajar Mengajar
Tabel Proses Belajar Mengajar Pertemuan I : Input Dari Keyboard Dan
Struktur Kontrol Keputusan
Penilaian
Kegiatan
1 2 3 4
Pendahuluan ( 15 menit)
3. Memotivasi siswa dengan memberi penjelasan kepada
peserta didik tentang penggunaan struktur kontrol
keputusan dan apa saja yang bisa dibuat dengan
menggunakan struktur kontrol keputusan pada
pemrograman JAVA dengan menunjukkan aplikasi
jadi yang di dalamnya terdapat struktur kontrol
keputusan. Selanjutnya guru mengorientasikan kepada
masalah yang akan dicari pemecahannya oleh siswa
secara berkelompok. Masalah
tersebut adalah Mengkonsep dan
mengimplementasikan cara membuat aplikasi sesuai
dengan apa yang sudah diperlihatkan oleh guru di
awal pelajaran(Fase 1 MPBM)
4. Menyampaikan inti tujuan pembelajaran
Inti ( 130 menit) produk, proses, psikomotor,
9. Mengorganisasikan siswa untuk belajar dengan cara
memberikan Modul ajar : Penerapan fungsi pada
pemrograman JAVA untuk memperkuat pemahaman siswa
mengenai materi struktur dan penggunaan kontrol
keputusan. Sebagai panduan dalam pemecahan masalah
yang telah ditentukan. Guru meminta siswa untuk jujur
mengungkapkan hal-hal yang belum dimengerti dalam
Modul tersebut dan memberi kesempatan kepada siswa
lain untuk memberikan ide atau berpendapat untuk
memberi penjelasan terkait pertanyaan yang diajukan oleh
temannya. Guru mengingatkan supaya siswa dapat
memecahkan masalah terkait penerapan struktur dan
penggunaan kontrol keputusan pada pemrograman JAVA
dengan mudah harus mempelajari struktur kontrol
keputusan pada pemrograman JAVA. (Fase 2 MPBM)
10. Membimbing siswa untuk melakukan pendeskripsian
program baris demi baris dari hasil output yang dihasilkan
oleh program untuk dapat menganalisis syntax
pemrograman yang digunakan. Secara berkelompok siswa
diminta bekerja sama tentang pendeskripsian hasil output
program/aplikasi. Siswa diharapkan mampu memberikan
ide atau berpendapat pada saat diskusi kelompok
berlangsung (Fase 3 MPBM)
11. Selanjutnya siswa dibimbing untuk merencanakan dan
merancang program (algoritma fungsinya saja) untuk
membuat program sesuai dengan apa yang diberikan
oleh guru. (Fase 3 MPBM)
12. Guru membimbing siswa mengembangkan algoritma
yang telah dibuat untuk menjadi program utuh yang
dapat dijalankan dan memberikan hasil yang sesuai
dengan apa yang telah ditunjukkan pada awal
pertemuan. (Fase 3 MPBM)
13. Para siswa dibimbing untuk menyajikan hasil karya yaitu
program utuh yang telah jadi dan dapat dijalankan dengan
hasil output yang sesuai dengan apa yang diminta.
Kemudian para siswa diminta mempresentasikan hasil
14. Bersama siswa guru melakukan analisis dan evaluasi
proses pemecahan masalah penerapan fungsi pada
pemrograman JAVA dalam hal ini mengkritisi hasil
kerja yang telah dibuat oleh semua kelompok. (Fase 5
Penutup ( 35 menit)
1. Guru menugaskan siswa untuk mengerjakan LP 1 Produk
2. Guru menegaskan kepada siswa supaya memeriksa
kembali hasil program yang telah dibuat dan memastikan
bahwa masukan guru dan hasil diskusi sudah
dipertimbangkan untuk pengumpulan laporan. Guru
mengingatkan untuk mengumpulkan laporan hasil
J. Sumber Pembelajaran
1. LKS SMK 1 LP 2 Proses : Penerapan Fungsi Kontrol Pemilihan
2. LKS SMK 2 LP 2 Proses : Penerapan Fungsi Kontrol Perulangan
3. JENI (JAVA Education Network Indonesia)
4. Tabel spesifikasi lembar penilaian
5. Silabus
MODUL SMK
PENERAPAN FUNGSI
MENGGUNAKAN BAHASA PEMROGRAMAN JAVA
Dalam statement,
BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
kita mendeklarasikan sebuah variabel bernama dataIn dengan tipe class
BufferedReader. Jangan mengkhawatirkan tentang maksud dari syntax
saat ini. Kita akan menjelaskannya pada akhir pembahasan.
Sekarang, kita akan mendeklarasikan variabel String dengan identifier
name,
String name = "";
Pernyataan di atas merupakan tempat untuk menyimpan input dari user.
Nama variabel
diinisialisasi sebagai String kosong "". Sebaiknya kita selalu
menginisialisasi sebuah variabel setelah kita mendeklarasikannya.
Baris berikutnya adalah memberikan output sebuah String pada layar yang
menanyakan nama user.
System.out.print("Please Enter Your Name:");
Statement pertama,
import javax.swing.JOptionPane;
Menjelaskan bahwa kita mengimpor class JoptionPane dari package
javax.swing. Bisa juga ditulis seperti,
import javax.swing.*;
Pernyataan,
name = JOptionPane.showInputDialog("Please enter your
name");
membuat sebuah input dialog JOptionPane, yang akan menampilkan
dialog dengan sebuah pesan, sebuah textfield dan tombol OK seperti pada
gambar. Hasil dari dialog tersebut adalah String dan disimpan ke dalam
variabel name.
Sekarang kita membuat pesan selamat datang, yang akan disimpan ke
dalam variabe
msg,
String msg = "Hello " + name + "!";
Baris selanjutnya adalah menampilkan sebuah dialog yang berisi sebuah
pesan dan
tombol OK,
JOptionPane.showMessageDialog(null, msg);
B. Struktur Kontrol
a. Struktur Kontrol Pemilihan
Struktur kontrol pemilihan adalah pernyataan dari Java yang mengijinkan
user untuk memilih dan mengeksekusi blok kode spesifik dan
mengabaikan blok kode yang lain.
i. Statement if
Pernyataan if akan menentukan sebuah pernyataan (atau blok kode)
yang akan eksekusi jika dan hanya jika persyaratan bernilai
benar(true).
Bentuk dari pernyataan if,
if( boolean_expression )
statement;
atau
if( boolean_expression )
{ statement1;
statement2;
. . .
}
dimana, boolean_expression adalah sebuah penyataan logika
(true/false) atau variabel bertipe boolean.
Gambar 4. Flowchart Statement If
Berikut ini adalah potongan kode dari pernyataan if:
int grade = 68;
if( grade > 60 )
System.out.println("Congratulations!");
atau
int grade = 68;
if( grade > 60 ){
System.out.println("Congratulations!");
System.out.println("You passed!");
}
Petunjuk Penulisan Program :
1. Boolean_expression pada pernyataan if harus merupakan
nilai boolean.Hal ini berarti persyaratan harus bernilai true
atau false.
2. Masukkan statement di dalam blok if. Contohnya,
if( boolean_expression )
{ //statement1;
//statement2;
}
ii. Statement if-else
Pernyataan if-else digunakan apabila kita ingin mengeksekusi
beberapa pernyataan dengan kondisi true dan pernyataan yang lain
dengan kondisi false.
Bentuk statement if-else,
if( boolean_expression )
statement;
else
statement;
dapat juga ditulis seperti,
if( boolean_expression )
{ statement1;
statement2;
. . .
}
else{
statement1;
statement2;
. . .
}
Berikut ini contoh code statement if-else,
int grade = 68;
if( grade > 60 )
System.out.println("Congratulations!");
else System.out.println("Sorry you failed");
atau
int grade = 68;
if( grade > 60 ){
System.out.println("Congratulations!");
System.out.println("You passed!");
}
else{
System.out.println("Sorry you
failed"); }
Panduan pemrograman:
1. Kesalahan pemrograman yang biasa terjadi ketika menggunakan
do-while loop adalah lupa untuk menulis titik koma (;) setelah
ekspresi while.
do{ ..
.
}while(boolean_expression)// salah>tidak ada
titik koma(;)
2. Seperti pada while loop, pastikan do-while loop anda berhenti
pada suatu kondisi.
iii. for loop
Pernyataan for loop memiliki kondisi hampir mirip seperti struktur
pengulangan
sebelumnya yaitu melakukan pengulangan untuk mengeksekusi kode
yang sama
sebanyak jumlah yang telah ditentukan.
Bentuk dari for loop,
for (InitializationExpression; LoopCondition;
StepExpression){
statement1;
statement2;
. . .
}
dimana,
InitializationExpression inisialisasi dari variabel loop.
LoopCondition - membandingkan variabel loop pada nilai
batas
tertentu
. StepExpression - melakukan update pada variabel loop.
Berikut ini adalah contoh dari for loop,
int i;
for( i = 0; i < 10; i++ )
{ System.out.print(i);
}
Pada contoh ini, pernyataan i=0 merupakan inisialisasi dari variabel.
Selanjutnya, kondisi i<10 diperiksa. Jika kondisi bernilai true,
pernyataan di dalam for loop dieksekusi. Kemudian, ekspresi i++
dieksekusi, lalu akan kembali pada bagian pemeriksaan terhadap
kondisi i<10 lagi. Kondisi ini akan dilakukan berulang-ulang sampai
mencapai nilai yang salah (false).
Contoh tadi, adalah contoh yang sama dari while loop,
int i = 0;
while( i < 10 ){
System.out.print(i);
i++;
}
c. Pernyataan Percabangan
Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi
program. Java memberikan tiga bentuk pernyataan percabangan: break,
continue dan return.
i. Pernyataan Break
Pernyataan break memiliki dua bentuk: tidak berlabel (unlabeled)
dan berlabel (labeled).
1. Pernyataan break tidak berlabel (unlabeled)
Pernyataan break tidak berlabel (unlabeled) digunakan untuk
menghentikan jalannya pernyataan switch. Selain itu pernyataan
break unlabeled juga bisa digunakan untuk menghentikan
pernyataan-pernyataan for, while atau do-while loop.
Contohnya,
String names[] = {"Beah", "Bianca", "Lance",
"Belle","Nico", "Yza", "Gem", "Ethan"};
String searchName = "Yza";
boolean foundName = false;
for( int i=0; i< names.length; i++ ){
if( names[i].equals( searchName ))
{ foundName = true;
break;
}
}
if( foundName ){
System.out.println( searchName + "
found!" );
}
else{
System.out.println( searchName + " not
found." );
}
Pada contoh diatas, jika string Yza ditemukan, pengulangan
pada for loop akan dihentikan dan akan dilanjutkan ke
pernyataan berikutnya yang terletak setelah pernyataan for.
2. Pernyataan break berlabel (labeled)
Bentuk label dari pernyataan break akan menghentikan
pernyataan di luarnya, dimana sebelumnya harus diberikan label
yang sudah di spesifikasikan pada program pada pernyataan
break. Program berikut ini akan mencari nilai dalam array dua
dimensi. Terdapat dua pengulangan bersarang (nested loop).
Ketika sebuah nilai ditemukan, brea akan menghentikan
pernyataan yang diberi label searchLabel yang terletak di
luar pernyataan for loop.
int[][] numbers = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int searchNum = 5;
boolean foundNum = false;
searchLabel:
for( int i=0; i<numbers.length; i++ ){
for( int j=0; j<numbers[i].length; j++ )
{ if( searchNum == numbers[i][j] ){
foundNum = true;
break searchLabel;
}
}
}
if( foundNum ){
System.out.println( searchNum + "
found!" );
}
else{
System.out.println( searchNum + " not
found!" );
}
Pernyataan break menghentikan pernyataan yang diberi label;
dan tidak menjalankan aliran kontrol apapun pada label. Aliran
kontrol pada label akan diberikan secara otomatis pada
pernyataan yang terletak dibawah label.
ii. Pernyataan Continue
Pernyataan continue memiliki dua bentuk: berlabel dan tidak
berlabel. Anda dapat menggunakan pernyataan continue untuk
melanjutkan pengulangan yang sedang dijalankan oleh pernyataan
for, while, atau do- while loop.
1. Pernyataan continue tidak berlabel (unlabeled)
setelah pernyataan ini dituliskan dan memeriksa eksepresi logika
(boolean) yang mengkontrol pengulangan. Jika ekspresi logika
(boolean) masih bernilai true, maka pengulangan tetap
dilanjutkan. Pada dasarnya pernyataan ini akan melanjutkan
bagian pengulangan pada pernyataan loop.
Berikut ini adalah contoh dari penghitungan angka dari Beah
dalam suatu array.
String names[] = {"Beah", "Bianca", "Lance",
"Beah"};
int count = 0;
for( int i=0; i<names.length; i++ )
{ if( !names[i].equals("Beah") )
{
continue; //skip next
statement }
count+
+; }
System.out.println("There are " + count + "
Beahs in the list");
2. Pernyataan continue berlabel
Bentuk pernyataan continue berlabel (labeled) akan melanjutkan
pengulangan yang sedang terjadi dan dilanjuti ke pengulangan
berikutnya dari pernyataan pengulangan yang diberi label
(tanda).
outerLoop:
for( int i=0; i<5; i++ ){
for( int j=0; j<5; j++ )
{ System.out.println("Inside for(j)
loop"); //message1
if( j == 2 ) continue
outerLoop; }
System.out.println("Inside for(i)
loop"); //message2
}
Pada contoh ini, bagian message2 tidak pernah akan dicetak,
karena pernyataan continue akan melewati pengulangan.
iii. Pernyataan Return
Pernyataan return digunakan untuk keluar dari sebuah method.
Pernyataan return memiliki dua bentuk: memberikan sebuah nilai,
dan tidak memberikan nilai.
Untuk memberikan sebuah nilai, cukup berikan nilai (atau ekspresi
yang menghasilkan sebuah nilai) sesudah kata return. Contohnya,
return ++count;
atau
return "Hello";
Tipe data dari nilai yang diberikan harus sama dengan tipe dari
method yang dibuat. Ketika sebuah method void dideklariskan,
gunakan bentuk return yang tidak memberikan nilai. Contohnya,
return;
Kita akan membahas lebih lanjut tentang pernyataan return ketika
mempelajari tentang method.
LKS SMK 1 LP2 Proses : Penerapan Fungsi Kontrol Pemilihan
Rangkuman materi :
Struktur kontrol pemilihan terdiri dari :
a. If
b. If-else
c. If-else-if
d. If-else-else if
e. Switch
Tujuan : menerapkan fungsi yang tepat untuk baris program yang hilang sesuai
output yang dikehendaki
Langkah-langkah :
1. Bersama kelompokmu identifikasi baris program yang hilang pada
program
2. Diskusikan untuk mengisi baris program yang hilang tersebut dengan baris
program yang tepat agar sesuai dengan output yang dikehendaki.
Output
Jika grade = 100, output = Exellent!
Jika grade = 90, output = Good job!
Jika grade = 80, output = Study harder!
Selain itu, output = Sorry, you failed.
Format Asesmen Kinerja Proses
No. Rincian Tugas Kinerja Skor Maksimum Skor Asesmen
Oleh siswa Oleh
sendiri guru
1. Merancang fungsi yang sesuai 100
dengan output program
Skor Total 100
Kunci LKS SMK 1 LP2 Proses : Penerapan Fungsi Kontrol Pemilihan
Program 1, convert nilai ke dalam format teks untuk mengetahui derajat kelulusan
menggunakan if-else:
Program 2 convert nilai ke dalam format teks untuk mengetahui derajat kelulusan
menggunakan switch:
LKS SMK 2 LP2 Proses : Penerapan Fungsi Kontrol Perulangan
Rangkuman materi :
Struktur kontrol perulangan terdiri dari :
a. While
b. Do-while
c. for
Tujuan : menerapkan fungsi yang tepat untuk baris program yang hilang sesuai
output yang dikehendaki
Langkah-langkah :
1. Bersama kelompokmu identifikasi baris program yang hilang pada
program
2. Diskusikan untuk mengisi baris program yang hilang tersebut dengan baris
program yang tepat agar sesuai dengan output yang dikehendaki.
Output :
Dilakukan perulangan pada names[] untuk mencari nama Yza. Program
berjalan dengan baik bila nama ditemukan, dan output yang muncul Yza
found!.
Program 2 convert nilai ke dalam format teks untuk mengetahui derajat
kelulusan menggunakan switch:
Output
Output yang dihasilkan adalah :
Format Asesmen Kinerja Proses
No. Rincian Tugas Kinerja Skor Maksimum Skor Asesmen
Oleh siswa sendiri Oleh guru
1. Merancang fungsi yang sesuai dengan 100
output program
Skor Total 100
Kunci LKS SMK 2 LP2 Proses : Penerapan Fungsi Kontrol Perulangan
2 {
4 {
7 System.out.println( "Excellent!" );
8 }
10 System.out.println("Good job!" );
11 }
14 }
15 else{
17 }
18 }
19 }
8. Buatlah struktur kontrol switch dalam bentuk flowchart mulai dari start
sampai end. (skor maksimal 15)
KUNCI LP 1A PRODUK
1. Fungsi dari struktur kontrol pemilihan pada pernyataan dari JAVA adalah
untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan
blok kode yang lain.
2. struktur kontrol if dalam bentuk flowchart mulai dari start sampai end.
5. Struktur kontrol if-else dalam bentuk flowchart mulai dari start sampai
end.
6. Struktur kontrol if-else if dalam bentuk flowchart mulai dari start sampai
end.
8. Struktur kontrol switch dalam bentuk flowchart mulai dari start sampai
end.
Format Asesmen Kinerja Produk 1A
Kriteria
No. Rincian produk yang diamati
LP 1B : PRODUK
Nama : __________________ Kelas :
________ No. Absen : __________________ Tanggal :
________
3. Apa perbedaan while loop dengan do-while loop? (skor maksimal 25)
Kriteria
No. Rincian produk yang diamati
LP 2A : PROSES
Nama : __________________ Kelas : ________
No. Absen : __________________ Tanggal : ________
Prosedur :
1. Kondisikan siswa membentuk kelompok kerja dengan 1 komputer untuk
masing-masing kelompok
2. Siapkan LKS SMK 1 : LP2 Proses Penerapan fungsi Kontrol Pemilihan
3. Berikan tugas kepada siswa untuk merancang fungsi sesuai dengan output
program pada LKS.
4. Penentuan skor kinerja siswa mengacu pada kunci LKS SMK 1 : LP2
Proses Penerapan fungsi dan format asesmen kinerja di bawah ini.
5. Berikan siswa kesempatan untuk mempelajari format asesmen ini sebelum
asesmen dilakukan.
6. Siswa diijinkan mengakses kinerja mereka sendiri dengan menggunakan
format ini.
1. Merancang fungsi yang sesuai 50 = dapat merancang fungsi yg sesuai dengan output
dengan output program pada 40 = fungsi yang dirancang atau output belum sesuai
program 1 dengan kunci LP tetapi sudah mendekati
20 = fungsi yang dirancang atau output belum sesuai
dengan kunci LP
2. Merancang fungsi yang sesuai 50 = dapat merancang fungsi yg sesuai dengan output
dengan output program pada 40 = fungsi yang dirancang atau output belum sesuai
program 2 dengan kunci LP tetapi sudah mendekati
20 = fungsi yang dirancang atau output belum sesuai
dengan kunci LP
LP 2B : PROSES
Prosedur :
1. Kondisikan siswa membentuk kelompok kerja dengan 1 komputer untuk
masing-masing kelompok
2. Siapkan LKS SMK 2 : LP2 Proses Penerapan fungsi Kontrol Perulangan
3. Berikan tugas kepada siswa untuk merancang fungsi sesuai dengan output
program pada LKS.
4. Penentuan skor kinerja siswa mengacu pada kunci LKS SMK 1 : LP2
Proses Penerapan fungsi dan format asesmen kinerja di bawah ini.
5. Berikan siswa kesempatan untuk mempelajari format asesmen ini sebelum
asesmen dilakukan.
6. Siswa diijinkan mengakses kinerja mereka sendiri dengan menggunakan
format ini.
1. Merancang fungsi yang sesuai 50 = dapat merancang fungsi yg sesuai dengan output
dengan output program pada 40 = fungsi yang dirancang atau output belum sesuai
program 1 dengan kunci LP tetapi sudah mendekati
20 = fungsi yang dirancang atau output belum sesuai
dengan kunci LP
Merancang fungsi yang sesuai 50 = dapat merancang fungsi yg sesuai dengan output
dengan output program pada 40 = fungsi yang dirancang atau output belum sesuai
program 2 dengan kunci LP tetapi sudah mendekati
20 = fungsi yang dirancang atau output belum sesuai
dengan kunci LP
LP 3A : PSIKOMOTOR
Nama : __________________ Kelas : ________
No. Absen : __________________ Tanggal : ________
Prosedur :
1. Disiapkan sebuah komputer dan software netbeans untuk masing-masing
kelompok
2. Tugasi siswa untuk mengimplementasikan hasil diskusi kelompok pada LKS 1
SMK : LP2 Proses Penerapan Fungsi Kontrol Pemilihan pada software
netbeans
3. Amati siswa dalam mengerjakan tugas tersebut
4. Berikan skor kinerja kelompok dengan mengacu pada format asesment kinerja
di bawah ini.
5. Berikan format ini kepada siswa sebelum asesmen dilakukan
6. Siswa diijinkan mengakses kinerja mereka sendiri dengan menggunakan
format ini.
LP 3B : Psikomotor
Nama : __________________ Kelas : ________
No. Absen : __________________ Tanggal : ________
Prosedur :
1. Disiapkan sebuah komputer dan software netbeans untuk masing-masing
kelompok
2. Tugasi siswa untuk mengimplementasikan hasil diskusi kelompok pada LKS 2
SMK : LP2 Proses Penerapan Fungsi Kontrol Perulangan pada software
netbeans
3. Amati siswa dalam mengerjakan tugas tersebut
4. Berikan skor kinerja kelompok dengan mengacu pada format asesment kinerja
di bawah ini.
5. Berikan format ini kepada siswa sebelum asesmen dilakukan
6. Siswa diijinkan mengakses kinerja mereka sendiri dengan menggunakan
format ini.
Petunjuk :
Untuk setiap perilaku keterampilan sosial berikut ini, berilah penilaian atas
keterampilan sosial menggunakan skala berikut ini.
D = Memerlukan perbaikan B = Memuaskan
C = Menunjukkan kemajuan A = Sangat baik
A. Standar Kompetensi :
Merancang aplikasi teks dan desktop berbasis obyek
B. Kompetensi Dasar :
Menerapkan Pointer
C. Indikator :
1. Kognitif
a. Produk
1) Menjelaskan cara membuat dan menerapkan array
2) Menjelaskan array dinamis
3) Menjelaskan array multidimensi
b. Proses
Merancang pemrograman dengan menggunakan array
c. Psikomotor
Membuat pemrograman dengan array
2. Afektif
a. Mengembangkan perilaku berkarakter, meliputi :
1) Jujur
2) Tanggung jawab
3) Kerjasama
4) Disiplin
b. Mengembangkan keterampilan sosial, meliputi :
1) Bertanya
2) Menyumbang ide atau berpendapat
D. Tujuan Pembelajaran
1. Kognitif
a. Produk
1) Secara mandiri dan tanpa membuka bahan ajar siswa dapat
menjelaskan cara membuat dan menerapkan array pada
pemrograman JAVA sesuai deskripsi yang tercantum pada kunci
LP1 produk
2) Secara mandiri dan tanpa membuka bahan ajar siswa dapat
menjelaskan mengenai array dinamis pada pemrograman JAVA
sesuai deskripsi yang tercantum pada kunci LP1 produk.\
3) Secara mandiri dan tanpa membuka bahan ajar siswa dapat
menjelaskan mengenai array multidimensi pada pemrograman
JAVA sesuai deskripsi yang tercantum pada kunci LP1 produk.
b. Proses
1) Diberikan program/aplikasi java yang sudah jadi. Siswa secara
individual mampu untuk merancang algoritma fungsi untuk
pemrograman menggunakan array sesuai dengan program yang
sudah diberikan menggunakan bahasa pemrograman JAVA
berdasarkan format LP2 Proses sesuai kunci LP2 Proses.
c. Psikomotor
1) Diberikan program/aplikasi java yang sudah jadi. Siswa secara
individual mampu untuk membuat program dengan menerapkan
array untuk menghasilkan program yang sesuai dengan apa yang
telah diberikan menggunakan bahasa pemrograman JAVA dan
menggunakan inputan dari keyboard berdasarkan format LP3
Psikomotor sesuai kunci LP3 Psikomotor.
2. Afektif
a. Karakter
Terlibat dalam proses belajar mengajar berpusat pada siswa, paling
tidak siswa dinilai pengamat membuat kemajuan dalam menunjukkan
perilaku berkarakter dengan LP3 Format Pengamatan Perilaku
Berkarakter, meliputi :
1) Jujur : siswa secara jujur mampu mengerjakan tugas-tugas tentang
penerapan fungsi pada pemrograman JAVA
2) Tanggung jawab : siswa bertanggung jawab terhadap dirinya
sendiri untuk memahami pelajaran tentang penerapan pointer pada
pemrograman JAVA.
3) Kerjasama : siswa memiliki kemampuan bekerjasama yang baik
antara satu sama lain, karena pembelajaran penerapan pointer pada
pemrograman JAVA dilaksanakan secara berkelompok
menggunakan model pembelajaran kooperatif.
4) Disiplin : siswa disiplin dalam pengumpulan tugas dengan tepat
waktu dan kehadiran di kelas.
b. Perilaku Sosial
Terlibat dalam proses belajar mengajar berpusat pada siswa, paling
tidak siswa dinilai membuat kemajuan dalam menunjukkan perilaku
berkarakter dengan LP4 Format Pengamatan Keterampilan Sosial,
meliputi :
1) Bertanya : siswa aktif bertanya ketika penjelasan guru dirasa
kurang memberi pemahaman pada dirinya.
2) Menyumbang ide atau berpendapat : siswa aktif menyumbangkan
ide atau berpendapat dalam kegiatan berkelompok untuk
menyelesaikan masalah yang muncul pada saat pengerjaan tugas.
E. Materi Pembelajaran
1. Membuat dan menerapkan array
2. Pemrograman dengan array
3. Array dinamis
4. Array multidimensi
J. Sumber Pembelajaran
1. LKS SMK 1 LP 2 Proses : Penerapan Fungsi Kontrol Pemilihan
2. LKS SMK 2 LP 2 Proses : Penerapan Fungsi Kontrol Perulangan
3. JENI (JAVA Education Network Indonesia)
4. Tabel spesifikasi lembar penilaian
5. Silabus
MODUL SMK
PENERAPAN POINTER
MENGGUNAKAN BAHASA PEMROGRAMAN JAVA
Jika sekumpulan data digabungkan dalam satu unit, hasilnya adalah suatu
struktur data. Data struktur dapat berupa struktur yang sangat kompleks, akan
tetapi dalam banyak aplikasi, data struktur yang cocok hanya terdiri dari
kumpulan data berurutan. Struktur data sederhana seperti ini bisa berupa array
atau record.
Istilah "record" sebetulnya tidak digunakan pada Java. Suatu record pada
intinya mirip dengan objek pada Java yang hanya memiliki variabel instansi
tanpa metode instansi. Beberapa bahasa pemrograman lain yang tidak
mendukung objek biasanya mendukung record. Dalam bahasa C yang bukan
bahasa berorientasi objek, misalnya, memiliki tipe data record, dimana pada C
disebut "struct". Data pada record -- dalam Java, adalah variabel instansi suatu
objek -- disebut field suatu record. Masing-masing item disebut nama field.
Dalam Java, nama field adalah nama variabel instansi. Perbedaan sifat dari
suatu record adalah bahwa item pada record dipanggil berdasarkan namanya,
dan field yang berbeda dapat berupa tipe yang berbeda. Misalnya, kelas Orang
didefisikan sebagai :
class Orang
{ String
nama; int
nomorID;
Date tanggalLahir;
int umur;
}
maka objek dari kelas Orang bisa disebut juga sebagai record dengan 4 field.
Nama fieldnya adalah nama, nomorID, tanggalLahir dan umur. Lihat bahwa
tipe datanya berbeda-beda yaitu String, int, dan Date.
Karena record hanya merupakan bagian lebih kecil dari objek, kita tidak akan
bahas lebih lanjut di sini.
Seperti record, suatu array adalah kumpulan item. Akan tetapi, item pada
record dipanggil dengan nama, sedangkan item pada array dinomori, dan
masing-masing item dipanggil besarkan nomor posisi pada array tersebut.
Semua item pada array harus bertipe sama. Definisi suatu array adalah :
kumpulan item bernomor yang semuanya bertipe sama. Jumlah item dalam
suatu array disebut panjang array. Nomor posisi dari array disebut indeks item
tersebut dalam array. Tipe dari item tersebut disebut tipe dasar dari array.
Tipe dasar suatu array bisa berupa tipe Java apa saja, baik berupa tipe primitif,
nama kelas, atau nama interface. Jika tipe dasar suatu array adalah int, maka
array tersebut disebut "array int". Suatu array bertipe String disebut "array
String". Akan tetapi array bukan urutan int atau urutan String atau urutan nilai
bertipe apapun. Lebih baik jika array adalah urutan variabel bertipe int atau
String atau tipe lainnya.
Seperti biasa, ada dua kemungkinan kegunaan variabel : sebagai nama suatu
lokasi di memori, dan nama suatu nilai yang disimpan pada lokasi memori.
Setiap posisi pada array bersifat seperti variabel. Setiap posisi dapat
menyimpan nilai dengan tipe tertentu (yaitu tipe dasar array). Isinya
bisa
diganti kapanpun. Nilai tersebut disimpan di dalam array. Array merupakan
kontainer bukan kumpulan nilai.
Item pada array (maksudnya setiap anggota variabel dalam array tersebut)
sering juga disebut elemen array. Dalam Java, elemen array selalu dinomori
mulai dari nol. Yaitu, indeks dari elemen pertama suatu array adalah nol. Jika
panjang array adalah N, maka indeks elemen terakhir adalah N-1. Sekali array
dibuat, maka panjangnya tidak bisa diubah lagi.
Dalam Java, array adalah objek. Ada beberapa konsekuensi yang lahir dari
fakta ini. Array harus dibuat dengan operator new. Variabel tidak bisa
menyimpan array; variabel hanya bisa merujuk pada array. Variabel lain yang
bisa merujuk array juga bisa bernilai null yang berarti ia tidak merujuk pada
lokasi memori apapun. Seperti objek lain, array juga bagian dari suatu kelas,
di mana seperti kelas lain adalah kelas turunan dari kelas Object. Elemen array
pada dasarnya adalah variabel instansi dalam objek array, kecuali mereka
dipanggil dalam indeksnya bukan namanya.
Meskipun array berupa objek, ada beberapa perbedaan antara array dan objek
lainnya, dan ada beberapa fitur khusus Java untuk membuat dan menggunakan
array.
Misalnya A adalah variabel yang merujuk pada suatu array. Maka indeks k di
dalam A bisa dipanggil dengan A[k]. Item pertama adalah A[0], yang kedua
adalah A[i], dan seterusnya. A[k] adalah suatu variabel dan bisa digunakan
seperti variabel lainnya. Kita bisa memberinya nilai, bisa menggunakannya
dalam ekspresi, dan bisa diberikan sebagai parameter pada subrutin.
Semuanya akan didiskusikan di bawah nanti. Untuk sekarang ingat sintaks
berikut
variabel_array [ekspresi_integer]
Meskipun setiap array merupakan suatu objek, kelas array tidak harus
didefinisikan sebelumnya. Jika suatu tipe telah ada, maka kelas array dari tipe
tersebut otomatis ada. Jika nama suatu tipe adalah TipeDasar, maka nama
kelas arraynya adalah TipeDasar[]. Artinya, suatu objek yang diciptakan dari
kelas TipeDasar[] adalah array dari item yang tiap itemnya bertipe TipeDasar.
Tanda kurung "[]" dimaksudkan untuk mengingat sintaks untuk mengambil
item di dalam suatu array. "TipeDasar[]" dibaca seperti "array TipeDasar".
Mungkin perlu juga dijelaskan bahwa jika KelasA adalah kelas turunan dari
KelasB maka KelasA[] otomatis menjadi kelas turunan KelasB[].
Tipe dasar suatu array dapat berupa tipe apapun yang ada atau sudah
didefinisikan pada Java. Misalnya tipe primitif int akan diturunkan kelas array
int[]. Setiap elemen di dalam array int[] adalah variabel yang memiliki tipe int
dan bisa diisi dengan nilai dengan tipe int. Dari kelas yang bernama String
diturunkan tipe array String[]. Setiap elemen di dalam array String[] adalah
variabel dengan tipe String, yang bisa diisi dengan nilai bertipe String. Nilai
ini bisa null atau referensi ke objek yang bertipe String (dan juga kelas
turunan dari String)
Mari kita lihat contoh lebih konkrotnya menggunakan array bilangan bulat
sebagai contoh pertama kita. Karena int[] adalah sebuah kelas, maka kita bisa
menggunakannya untuk mendeklarasikan variabel. Misalnya,
int[] daftar;
yang membuat variabel bernama daftar dengan tipe int[]. Variabel ini bisa
menunjuk pada array int, akan tetapi nilai awalnya adalah null (jika
merupakan variabel anggota suatu kelas) atau tak tentu (jika merupakan
variabel lokal di dalam suatu metode). Operator new digunakan untuk
membuat objek array baru, yang kemudian bisa diberikan kepada daftar.
Sintaksnya sama seperti sintaks sebelumnya, yaitu :
Perlu dicatat bahwa array integer secara otomatis diisi dengan nol. Dalam
Java, array yang baru dibuat akan selalu diisi dengan nilai tertentu: nol untuk
angka, false untuk boolean, karakter dengan nilai Unicode 0 untuk char dan
null untuk objek.
Contoh berikut akan mencetak semua isi integer di dalam array daftar ke layar
:
for (int i = 0; i < daftar.length; i++)
{ System.out.println( daftar[i] );
}
Perulangan pertama adalah ketika i = 0, dan daftar[i] merujuk pada daftar[0].
Jadi nilai yang disimpan pada variabel daftar[0] akan dicetak ke layar.
Perulangan kedua adalah i = 1, sehingga nilai daftar[i] dicetak. Perulangan
berhenti setelah mencetak daftar[4] dan i menjadi sama dengan 5, sehingga
kondisi lanjutan "i < daftar.length" tidak lagi benar. Ini adalah contoh umum
dari menggunakan perulangan untuk mengolah suatu array.
Ada dua hal yang bisa salah di sini. Misalnya nilai daftar adalah null. Dalam
kasus ini, maka daftar tidak memiliki referensi sama sekali. Percobaan
merujuk suatu elemen pada suatu array kosong adalah suatu kesalahan. Kasus
ini akan menampilkan pesan kesalahan "pointer kosong". Kemungkinan
kesalahan kedua adalah jika daftar merujuk pada suatu array, akan tetapi k
berada di luar rentang indeks yang legal. Ini akan terjadi jika k < 0 atau jika k
>= daftar.length. Kasus ini disebut kesalahan "indeks array keluar batas".
Ketika kita menggunakan array dalam program, kita harus selalu ingat bahwa
kedua kesalahan tersebut mungkin terjadi. Dari kedua kasus di atas, kesalahan
indeks array keluar batas adalah kesalahan yang lebih sering terjadi.
Untuk suatu variabel array, seperti variabel lainnya, kita bisa mendeklarasikan
dan mengisinya dengan satu langkah sekaligus, misalnya :
Jika daftar merupakan variabel lokal dalam subrutin, maka perintah di atas
akan persis sama dengan dua perintah :
int[] daftar;
daftar = new int[5];
(Jika daftar adalah variabel instansi, tentukan kita tidak bisa mengganti "int[]
daftar = new int[5];" dengan "int[] daftar; daftar = new int[5];" karena ini
hanya bisa dilakukan di dalam subrutin)
Array yang baru dibuat akan diisi dengan nilai awal yang tergantung dari tipe
dasar array tersebut seperti dijelaskan sebelumnya. Akan tetapi Java juga
menyediakan cara untuk memberi isi array baru dengan daftar isinya. Dalam
pernyataan yang untuk membuat array, ini bisa dilakukan dengan
menggunakan penginisialiasi array (array initializer), misalny :
akan membuat array baru yang berisi 7 nilai, yaitu 1, 4, 9, 16, 25, 36, dan 49,
dan mengisi daftar dengan referensi ke array baru tersebut. Nilai daftar[0]
berisi 1, nilai daftar[1] berisi 4, dan seterusnya. Panjang daftar adalah 7,
karena kita memberikan 7 nilai awal kepada array ini.
Color[] palette =
{
Color.black,
Color.red,
Color.pink,
new Color(0,180,0), // hijau gelap
Color.green,
Color.blue,
new Color(180,180,255), // biru muda
Color.white
};
Inisialisasi array bentuk seperti ini hanya bisa digunakan dalam deklarasi
suatu variabel baru, akan tetapi tidak bisa digunakan seperti operator pemberi
nilai (=) di tengah-tengah suatu program. Akan tetapi ada cara lain yang bisa
digunakan sebagai pernyataan pemberian nilai atau diberikan ke dalam
subrutin. Yaitu menggunakan jenis lain dari operator new untuk membuat atau
menginisialisasi objek array baru. (Cara ini agak kaku dengan sintaks aneh,
seperti halnya sintaks kelas anonim yang telah didiskusikan sebelumnya).
Misalnya untuk memberi nilai kepada suatu variabel daftar, kita bisa
menggunakan :
Ini adalah suatu ekspresi yang isinya merupakan objek, dan bisa digunakan
untuk banyak situasi di mana suatu objek dengan tipe TipeDasar dipentingkan.
Misalnya buatTombol merupakan metode yang mengambil array String
sebagai parameter, maka kita bisa menuliskan
int[] daftar;
int daftar[];
di mana sintaks tersebut digunakan dalam bahasa C dan C++. Akan tetapi
sintaks alternatif ini tidak begitu masuk akan dalam Java, atau mungkin lebih
baik dihindari. Lagian, maksudnya adalah mendeklarasikan variabel dengan
tipe tertentu dan namanya adalah int[]. Akan lebih masuk akan untuk
mengikuti sintaks "nama_tipe nama_variabel" seperti pada bentuk bertama.
B. Pemrograman dengan Array
Array merupakan jenis struktur data yang sangat dasar dan sangat penting.
Teknik pengolahan array merupakan teknik pemrograman yang paling penting
yang kita harus kuasai. Dua jenis teknik pengolahan array -- pencarian dan
pengurutan -- akan dibahas kemudian. Bagian ini akan memperkenalkan
beberapa ide dasar pengolahan array secara umum.
Dalam banyak hal, pengolahan array berarti menggunakan operasi yang sama
kepada setiap elemen di dalam array. Biasanya sering dilakukan dengan
perulangan for. Perulangan untuk mengolah semua elemen dalam array A
dapat ditulis dalam bentuk :
Mulai dengan 0;
Tambah A[0]; (proses elemen pertama di dalam A)
Tambah A[1]; (proses elemen kedua di dalam A)
.
.
.
Tambah A[ A.length - 1 ]; (proses elemen terakhir di
dalam A)
perulangan, kita bisa ubah algoritma di atas menjadi bentuk perulangan for
seperti berikut:
Pada akhirnya, nanti Anda akan bisa membuat perulangan seperti di atas di
luar kepala. Kita akan lihat beberapa contohnya. Di sini perulangan akan
menghitung banyaknya elemen di dalam array A yang nilainya kurang dari nol
:
Kita bisa mengganti "A[i] < 0.0" jika kita ingin menghitung banyaknya
elemen di dalam array yang memiliki sifat tertentu. Variasinya akan memiliki
tema yang sama. Misalnya kita ingin menghitung banyaknya elemen di dalam
array A yang sama dengan elemen sesudahnya. Elemen setelah A[i] adalah
A[i+1], sehingga kita bisa mengganti klausa if dengan "if (A[i] == A[i+1])".
Akan tetapi tunggu dulu : Tes ini tidak bisa digunakan apabila A[i] adalah
elemen terakhir dalam array, karena tidak ada lagi array sesudahnya.
Komputer akan menolak pernyataan ini. Sehingga kita harus berhenti satu
elemen sebelum array terakhir, sehingga menjadi
int hitung = 0;
// lihat kondisi for berubah dibandingkan dengan
contoh sebelumnya
for (int i = 0; i < A.length - 1; i++)
{ if (A[i] == A[i+1])
hitung+
+; }
(Ada masalah yang lebih penting di sini. Java membolehkan array memiliki
panjang nol. Artinya bahkan A[0] pun tidak ada di dalam array, sehingga
memanggil A[0] akan menghasilkan kesalahan indeks keluar batas. Akan
tetapi array biasanya array dengan panjang nol biasanya sesuatu yang kita
ingin hindarkan dalam kehidupan sehari-hari. Lagian apa artinya mencari nilai
terbesar di dalam suatu array yang panjangnya nol?)
Contoh terakhir dari operasi array, misalnya kita ingin mengkopi suatu array.
Untuk mengkopi array A, tidak cukup untuk menggunakan perintah
double[] B = A;
karena perintah ini tidak membuat objek array baru. Yang dibuat di sini adalah
variabel baru yang merujuk pada objek yang sama dengan A. (Sehingga
perubahan yang terjadi pada A[i] akan juga menyebabkan B[i] berubah).
Untuk membuat array baru yang merupakan kopi dari array A, kita harus
membuat objek array baru, dan mengkopi isinya satu per satu dari array A ke
array baru, sehingga
Mengkopi nilai dari satu array ke array yang lain adalah operasi umum
sehingga Java memiliki subrutin untuk melakukannya, yaitu
System.arraycopy(), yang merupakan subrutin anggota statik dari kelas
standar System. Deklarasinya memiliki bentuk seperti :
Suatu tipe array, misalnya double[] adalah tipe Java biasa, sehingga kita bisa
menggunakannya seperti tipe-tipe Java lainnya. Termasuk juga digunakan
sebagai parameter formal di dalam suatu subrutin. Juga bisa digunakan
sebagai tipe keluaran suatu fungsi. Misalnya, kita bisa menulis fungsi yang
membuat kopi array dengan tipe double sebagai berikut :
Rutin main() memiliki parameter dengan tipe String[] yang merupakan array
String. Ketika sistem memanggil rutin main(), string di dalam array ini adalah
parameter dari baris perintah. Jika kita menggunakan konsol, user harus
mengetikkan perintah untuk menjalankan program. User bisa menambahkan
input tambahan dalam perintah ini setelah nama program yang akan
dijalankan.
Misalnya, jika kelas yang memiliki rutin main() bernama programKu, maka
user bisa menjalankan kelas tersebut dengan perintah "java programKu" di
konsol. Jika kita tulis dengan "java programKu satu dua tiga", maka parameter
dari baris perintahnya adalah "satu", "dua", dan "tiga". Sistem akan
memasukkan parameter-parameter ini ke dalam array String[] dan
memberikan array ini pada rutin main().
Berikut ini adalah contoh program sederhana yang hanya mencetak parameter
dari baris perintah yang dimasukkan oleh user.
Perhatikan bahwa parameter args tidak mungkin null meskipun tidak ada
parameter yang dimasukkan. Jika tidak ada parameter dari baris perintah yang
dimasukkan, maka panjang array ini adalah nol.
Tentunya jawabannya akan tergantung pada faktor yang bersifat acak, akan
tetapi kita bisa simulasikan dengan program komputer dan menjalankan
beberapa kali hingga kita tahu berapa kira-kira orang harus dicek.
Untuk mensimulasikan percobaan ini, kita harus mencatat semua ulang tahun
yang kita sudah tanyakan. Ada 365 kemungkinan hari ulang tahun (Kita
abaikan sementara tahun kabisat). Untuk setiap kemungkinan hari ulang
tahun, kita perlu tahu, apakah hari ulang tahun tersebut telah digunakan?
Jawabannya adalah nilai boolean true atau false. Untuk menyimpan data ini,
kita bisa gunakan array dari 365 nilai boolean:
boolean[] sudahDitanya;
sudahDitanya = new boolean[365];
Jika sudahDitanya[i] bernilai false, maka belum ada orang sebelum ini yang
memiliki hari ulang tahun tersebut. Kita akan ganti sudahDitanya[i] dengan
true, kemudian kita akan tanyakan lagi kepada orang lain, dan begitu
seterusnya hingga semua orang di dalam ruangan ditanyakan.
static void masalahUlangTahun() {
// Melakukan simulasi dengan memilih seseorang
secara acak
// dan mengecek hari ulang tahunnya. Jika hari
ulang tahunnya
// sama dengan orang yang pernah kita tanya
sebelumnya,
// hentikan program dan laporkan berapa orang yang
sudah dicek
boolean[] sudahDitanya;
// Untuk mencatat ulang tahun yang sudah
ditanyakan
// Nilai true pada sudahDitanya[i] berarti orang
lain
// sudah ada yang berulang tahun pada hari i
int hitung;
// Jumlah orang yang sudah pernah ditanya
hitung = 0;
while (true) {
// Ambil ulang tahun secara acak dari 0 hingga
364
// Jika ulang tahun telah ditanya sebelumnya,
keluar
// Jika tidak catat dalam array
Subrutin ini menggunakan fakta bahwa array boolean yang baru dibuat
memiliki seluruh elemen yang bernilai false. Jika kita ingin menggunakan
array yang sama untuk simulasi kedua, kita harus mereset ulang semua elemen
di dalamnya menjadi false kembali dengan perulangan for
Array paralel adalah menggunakan beberapa array dengan indeks yang sama.
Misalnya kita ingin membuat beberapa kolom secara paralel -- array x di
kolom pertama, array y di kolom kedua, array warna di kolom ketiga, dan
seterusnya. Data untuk baris ke-i bisa didapatkan dari masing-masing array
ini. Tidak ada yang salah dengan cara ini, akan tetapi cara ini berlawanan
dengan filosofi berorientasi objek yang mengumpulkan data yang
berhubungan di dalam satu objek. Jika kita mengikuti aturan seperti ini, amaka
kita tidak harus membayangkan hubungan data yang satu dan yang lainnya
karena semua data akan dikelompokkan di dalam satu tempat.
class DataString {
// Data dari salah satu pesan
int x,y; // Posisi pesan
Color warna; // Warna pesan
}
Untuk menyimpan data dalam beberapa pesan, kita bisa menggunakan array
bertipe DataString[], yang kemudian dideklarasikan sebagai variabel instansi
dengan nama data sehingga
DataString[] data;
Isi dari data bernilai null hingga kita membuat array baru, misalnya dengan
Setelah array ini dibuat, nilai setiap elemen array adalah null. Kita ingin
menyimpan data di dalam objek yang bertipe DataString, akan tetapi tidak ada
objek yang dibuat. Yang kita sudah buat hanyalah kontainernya saja. Elemen
di dalamnya berupa objek yang belum pernah kita buat. Untuk itu elemen di
dalamnya bisa kita buat dengan perulangan for seperti :
Sekarang kita bisa mengambil data setiap pesan dengan data[i].x, data[i].y,
dan data[i].warna.
switch (bulan)
{ case 0:
bulanString = "Januari";
break;
case 1:
bulanString = "Februari";
break;
case 2:
bulanString = "Maret";
break;
case 3:
bulanString = "April";
break;
.
.
.
case 11:
bulanString = "Desember";
break;
default:
bulanString = "Salah
bulan"; }
bulanString = namaBulan[bulan];
Panjang suatu array tidak bisa diubah setelah dibuat. Akan tetapi, sering kali
jumlah data yang disimpan dalam array bisa berubah setiap saat. Misalnya
dalam contoh berikut : Suatu array menyimpan baris teks dalam program
pengolah kata. Atau suatu array yang menyimpan daftar komputer yang
sedang mengakses halaman suatu website. Atau array yang berisi gambar
yang ditambahkan user oleh program gambar. Di sini jelas, bahwa kita butuh
sesuatu yang bisa menyimpan data di mana jumlahnya tidak tetap.
Bayangkan suatu aplikasi di mana sejumlah item yang ingin kita simpan di
dalam array akan berubah-ubah sepanjang program tersebut berjalan.
Karena ukuran array tidak bisa diubah, maka variabel terpisah digunakan
untuk menyimpan berapa banyak sisa tempat kosong yang masih bisa diisi
di dalam array.
Akan tetapi program tersebut harus melacak berapa banyak bilangan yang
sudah diambil dari user. Kita gunakan variabel terpisah bernama
jmlBilangan. Setiap kali suatu bilangan disimpan di dalam array, nilai
jmlBilangan akan bertambah satu.
while (true)
{ System.out.print("? ");
bil = KonsolIO.ambilInt();
if (bil <= 0)
break;
bilangan[jmlBilangan] = bil;
jmlBilangan++;
}
} // akhir main();
Ketika kita akan mencetak angka di dalam array, maka poisisi penuh
berikutnya adalah di lokasi jmlBilangan - 1, sehingga perulangan for
mencetak bilangan dari jmlBilangan - 1 hingga 0.
Mari kita lihat contoh lain yang lebih realistis. Misalkan kita ingin menulis
program game, di mana pemain bisa masuk ke dalam game dan keluar dari
game setiap saat. Sebagai programmer berorientasi objek yang baik,
mungkin kita memiliki kelas bernama Pemain sebagai lambang pemain di
dalam game. Daftar pemain yang sedang ada di dalam game, bisa
disimpan di dalam array ArrayPemain dengan tipe Pemain[].
Untuk menghapus seorang pemain mungkin sedikit lebih sulit karena kita
tidak ingin meninggalkan lubang di tengah-tengah array. Misalnya kita
ingin menghapus pemain pada indeks k pada ArrayPemain. Jika kita tidak
peduli urutan pemainnya, maka salah satu caranya adalah memindahkan
posisi pemain terakhir ke posisi pemain yang meninggalkan game,
misalnya :
ArrayPemain[k] = ArrayPemain[jumlahPemainAktif
-1];
jumlahPemainAktif--;
Pemain yang sebelumnya ada di posisi k, tidak lagi ada di dalam array.
Pemain yang sebelumnya ada di posisi jumlahPemainAktif -1 sekarang
ada di array sebanyak 2 kali. Akan tetapi sekarang ia berada di bagian
yang valid, karena nilai jumlahPemainAktif kita kurangi dengan satu.
Ingat bahwa setiap elemen di dalam array harus menyimpan satu nilai,
akan tetapi satu-satunya nilai dari posisi 0 hingga jumlahPemainAktif - 1
akan tetap diproses seperti biasa.
Misalnya kita ingin menghapus pemain di posisi k, akan tetapi kita ingin
agar urutan pemain tetap sama. Untuk melakukannya, semua pemain di
posisi k+1 ke atas harus dipindahkan satu posisi ke bawah. Pemain k+
mengganti pemain k yang keluar dari game. Pemain k+2 mengganti
pemain yang pindah sebelumnya, dan berikutnya. Kodenya bisa dibuat
seperti
Perlu ditekankan bahwa contoh Pemain di atas memiliki tipe dasar suatu
kelas. Elemennya bisa bernilai null atau referensi ke suatu objek yang
bertipe Pemain, Objek Pemain sendiri tidak disimpan di dalam array,
hanya referensinya saja yang disimpan di sana. Karena aturan pemberian
nilai pada Java, objek tersebut bisa saja berupa kelas turunan dari Pemain,
sehingga mungkin juga array tersebut menyimpan beberapa jenis Pemain
misalnya pemain komputer, pemain manusia, atau pemain lainnya, yang
semuanya adalah kelas turunan dari Pemain.
Contoh lainnya, misalnya kelas BentukGeometri menggambarkan suatu
bentuk geometri yang bisa digambar pada layar, dan ia memiliki kelas-
kelas turunan yang merupakan bentuk-bentuk khusus, seperti garis, kotak,
kotak bertepi bulat, oval, atau oval berisi warna, dan sebagainya.
(BentukGeometri sendiri bisa berbentuk kelas abstrak, seperti didiskusikan
sebelumnya). Kemudian array bertipe BentukGeometri[] bisa menyimpan
referensi objek yang bertipe kelas turunan dari BentukGeometri. Misalnya,
perhatikan contoh pernyataan berikut
2. Array Dinamis
Alternatif yang umum adalah membuat array yang sangat besar sehingga
bisa digunakan untuk dalam kehidupan sehari-hari. Akan tetapi cara ini
tidak baik, karena akan sangat banyak memori komputer yang terbuang
karena tidak digunakan. Memori itu mungkin lebih baik digunakan untuk
yang lain. Apalagi jika komputer yang akan digunakan tidak memiliki
memori yang cukup untuk menjalankan program tersebut.
Tentu saja, cara yang lebih baik adalah apabila kita bisa mengubah ukuran
array sesuka kita kapan saja. Ingat bahwa sebenarnya variabel array tidak
menyimpan array yang sesungguhnya. Variabel ini hanya menyimpan
referensi ke objek tersebut. Kita tidak bisa membuat array tersebut lebih
besar, akan tetapi kita bisa membuat array baru yang lebih besar,
kemudian mengubah isi variabel array tersebut ke array baru itu.
Tentunya kita harus mengkopi semua isi di array yang lama ke array baru.
Array lama akan diambil oleh pemulung memori, karena ia tidak lagi
digunakan.
Mari kita lihat kembali contoh game di atas, di mana ArrayPemain adalah
array dengan tipe Pemain[] dan jumlahPemainAktif[/code] adalah jumlah
pemain yang sudah digunakan array tersebut. Misalnya kita tidak ingin
membuat limit banyaknya pemainnya yang bisa ikut main. Jika pemain
baru masuk dan array tersebut sudah penuh, kita akan membuat array baru
yang lebih besar.
Variabel Array Pemain akan merujuk pada array baru. Ingat bahwa setelah
ini dilakukan, ArrayPemain[0] akan menunjuk pada lokasi memori yang
berbeda, akan tetapi nilai ArrayPemain[0] sama dengan sebelumnya.
Berikut ini adalah kode untuk melakukan hal di atas:
if (jumlahPemainAktif == ArrayPemain.length) {
// Array sudah penuh. Buat array baru yang lebih
besar,
// kemudian kopi isi array lama ke array baru lalu
ubah
// ArrayPemain ke array baru.
int ukuranBaru = 2 * ArrayPemain.length; //
Ukuran array baru
Pemain[] temp = new Pemain[ukuranBaru]; // Array
baru
System.arraycopy(ArrayPemain, 0, temp, 0,
ArrayPemain.length);
ArrayPemain = temp; // Ubah referensi ArrayPemain
ke array baru.
}
Jika kita akan melakukan hal ini terus menerus, akan lebih indah jika kita
membuat kelas untuk menangani hal ini. Objek mirip array yang bisa
berubah ukuran untuk mengakomodasi jumlah data yang bisa ia tampung
disebut array dinamis. Array dinamis memiliki jenis operasi yang sama
dengan array : mengisi nilai pada posisi tertentu dan mengambil nilai di
posisi tertentu. Akan tetapi tidak ada batas maksimum dari jumlah array
(hanya tergantung pada jumlah memori komputer yang tersedia). Dalam
kelas array dinamis, metode put dan get akan diimplementasikan sebagai
metode instansi.
Data pada objek ArrayDinamisInt disimpan dalam array biasa, akan tetapi
arraynya akan dibuang dan diganti dengan array baru yang lebih besar
apabila diperlukan. Jika bilangan adalah variable bertipe ArrayDinamisInt,
maka perintah bilangan.put(pos,nilai) akan menyimpan bilangan pada
posisi pos di array dinamis tersebut. Fungsi bilangan.get(pos) mengambil
nilai yang disimpan pada posisi pos.
while (true)
{ System.out.print("? ");
bil = KonsolIO.ambilInt();
if (bil <= 0)
break;
bilangan.put(jmlBilangan,bil);
jmlBilangan++;
}
} // akhir main();
D. Array Multidimensi
Tipe apapun bisa digunakan sebagai tipe dasar suatu array. Kita bisa membuat
array int, array String, array Object dan seterusnya. Terutama, karena array
adalah tipe Java kelas satu, kita bisa membuat array yang bertipe array.
Misalnya suatu array bertipe int[], juga otomatis memiliki array bertipe int[][],
yaitu "array bertipe array int". Array tersebut disebut array 2 dimensi.
Tentunya, dengan tipe int[][], kita juag bisa membuat arraynya dengan tipe
int[][][], yang merupakan array 3 dimensi, dan seterusnya. Tidak ada batasan
berapa dimensi array yang kita buat, akan tetapi bukan sesuatu yang biasa
dilakukan untuk membuat array lebih dari 3 dimensi. Pembahasan kita akan
lebih dikhususkan pada array 2 dimensi. Tipe TipeDasar[][] biasanya dibaca
"array 2 dimensi bertipe TipeDasar" atau "array dari array TipeDasar".
Deklarasi pernyataan "int[][] A;" adalah membuat variabel bernama A dengan
tipe int[][]. Variabel ini berisi objek yang bertipe int[][]. Pernyataan
pemberian nilai "A = new int[3][4];" akan membuat objek array 2 dimensi dan
mengisi A ke objek yang baru dibuat tersebut.
Seperti biasa, deklarasi dan pemberian nilai bisa digabung menjadi satu
pernyataan, seperti "int[][] A = new int[3][4];". Objek yang baru dibuat adalah
objek yang merupakan array dari array int. Bagian int[3][4] menyatakan
bahwa ada 3 array int di dalam array A, dan di setiap array int tersebut
terdapat 4 int.
Cara seperti itu mungkin sedikit membingungkan, akan tetapi akan lebih
mudah apabila kita bayangkan array tersebut seperti matriks. Istilah "int[3][4]"
bisa disebut sebagai matriks dengan 3 baris dan 4 kolom, seperti pada ilustrasi
berikut ini :
Pernyataan A[1] merujuk pada salah satu baris pada array A. Karena A[1] itu
sendiri sebenarnya adalah array int, kita bisa menambah indeks lain untuk
merujuk pada posisi pada baris tersebut. Misalnya A[1][3] adalah elemen
nomor 3 pada baris 1. Seperti biasa, ingat bahwa posisi baris dan kolom
dimulai dari 0. Jadi pada contoh di atas, A[1][3] bernilai 5. Lebih umum lagi,
A[i][j] adalah posisi pada baris i dan kolom j. Seluruh elemen pada A bisa
dinamakan seperti berikut :
A[i][j] adalah variabel bertipe int. Kita bisa mengisi nilainya atau
menggunakannya seperti variabel bertipe int biasa.
Perlu juga diketahui bahwa A.length akan memberikan jumlah baris pada A.
Untuk mendapatkan jumlah kolom pada A, kita harus mencari jumlah int
dalam setiap baris, yaitu yang disimpan pada A[0]. Jumlah kolom ini bisa
didapatkan dengan menggunakan A[0].length, atau A[1].length atau
A[2].length. (Tidak ada aturan baku yang menyatakan bahwa pada setiap baris
suatu array harus memiliki panjang yang sama, dan sebenarnya pada beberapa
aplikasi, juga digunakan array dengan panjang yang berbeda-beda pada setiap
barisnya. Akan tetapi apabila kita membuat array dengan perintah seperti di
atas, maka kita akan selalu mendapatkan array dengan panjang array yang
sama.)
Array 3 dimensi juga dibuat dan diolah dengan cara yang sama. Misalnya,
array 3 dimensi bertipe int bisa dibuat dengan pernyataan "int[][][] B = new
int [7][5][11];". Kita juga bisa mengilustrasikannya sebagai kubus 3-dimensi.
Masing-masing bloknya bertipe int yang bisa dipanggil dalam bentuk
B[i][j][k]. Array dimensi lain yang lebih tinggi juga mengikuti pola yang
sama, akan tetapi akan sangat sulit untuk membuat visualisasi struktur
arraynya.
Kita bisa mengisi array multi dimensi sekaligus pada saat dideklarasikan.
Ingat sebelumnya bagaimana array 1 dimensi biasa dideklarasikan, dan
bagaimana isinya diinisialisasikan, yaitu seperti daftar nilai-nilainya yang
dipisahkan dengan koma, dan diletakkan di dalam tanda kurung kurawal { dan
}.
Inisialisasi array bisa juga digunakan untuk array multi dimensi, yang terdiri
dari beberapa inisialisasi array 1 dimensi, masing-masing untuk setiap
barisnya. Misalnya, array A pada gambar di atas dapat dibuat dengan perintah
:
Int[][] A = { { 1, 0, 12, -1 },
{ 7, -3, 2, 5 },
{ -5, -2, 2, 9 }
};
Jika tidak ada inisialisasi yang diberikan untuk suatu array, maka nilainya
akan diisi dengan nilai awal tergantung pada tipenya : nol untuk bilangan,
false untuk boolean dan null untuk objek.
Seperti halnya array 1 dimensi, array 2 dimensi juga sering diolah dengan
menggunakan perulangan for. UNtuk mengolah semua elemen pada array 2
dimensi, kita bisa menggunakan pernyataan for bertingkat. Jika array A
dideklarasikan seperti
maka kita bisa mengisi 0 untuk semua elemen pada A dengan menggunakan
for (int baris = 0; baris < 3; baris++) {
for (int kolom = 0; kolom < 4; kolom++)
{ A[baris][kolom] = 0;
}
}
Pertama kali perulangan for bagian luar akan memproses dengan baris = 0.
Bagian dalamnya akan mengisi keempat kolom pada baris pertama, yaitu
A[0][0] = 0, A[0][1] = 0, A[0][2] = 0, dan A[0][3] = 0. Kemudian perulangan
for bagian luar akan mengisi baris kedua, dan seterusnya. Dan juga, kita bisa
menjumlah semua elemen pada A dengan
int jml = 0;
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; i++)
jml = jml + A[i][j];
Suatu array 2 dimensi bisa digunakan untuk menyimpan data yang secara
alami memang tersusun sebagai baris dan kolom. Misalnya papan catur terdiri
dari 8 baris dan 8 kolom. Jika suatu kelas dinamakan PapanCatur untuk
merepresentasikan papan catur, maka kita bisa deklarasikan dengan perintah
Anggap array untung telah diisi dengan data. Data ini bisa diolah lebih lanjut.
Misalnya, total keuntungan seluruh perusahaan -- sepanjang tahun dari seluruh
toko -- dapat dihitung dengan menjumlahkan semua elemen pada array :
Kadang-kadang kita juga perlu menghitung hanya satu baris atau satu kolom
saja, bukan keseluruhan array. Misalnya, kita ingin menghitung keuntungan
total perusahaan pada bulan Desember, yaitu bulan nomor 11, maka kita bisa
gunakan perulangan :
Sekarang mari kita buat array 1 dimensi yang berisi total keuntungan seluruh
toko setiap bulan :
A. Rangkuman Materi
a. Pengenalan Array
Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang
memiliki identifier berbeda untuk tiap variabel.
int number1;
int number2;
int number3;
number1 = 1;
number2 = 2;
number3 = 3;
Seperti yang dapat Anda perhatikan pada contoh diatas, kode tersebut
sebagai array.
b. Pendeklarasian Array
Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau
subscript telah diberikan kepada tiap anggota array, sehingga program
dan programmer dapat mengakses setiap nilai pada array apabila
dibutuhkan. Nilai indeks selalu dalam tipeinteger, dimulai dari
angkanol dan dilanjutkan ke angka berikutnya sampai akhir array.
Sebagai catatan bahwa indeks didalam array dimulai dari 0 sampai
dengan (ukuranArray-1).
Sebagai contoh, pada array yang kita deklarasikan tadi, kita mempunyai,
Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam
array. Dalam contoh ini digunakanlah pernyataan for loop, sehingga kode
kita menjadi lebih pendek.
int []arr;
arr = new int[100];
d. Panjang Array
arrayName.length
e. Array Multidimensi
System.out.print( dogs[0][0] );
B. Tujuan
Agar siswa memahami bagaimana proses penerapan pointer khususnya
array pada pemrograman JAVA
C. Alat Dan Bahan
a. Software Netbeans
b. Kertas
c. Pena/alat tulis
D. Perintah Kerja
Buat program menggunakan array untuk menampilkan output:
E. Langkah-Langkah
a. Klik icon Netbeans 7.0 pada desktop, hingga muncul tampilan seperti pada
gambar di bawah ini
package cobaarray;
import java.io.*;
public class CobaArray {
F. Tugas LKS
Berikut ini adalah program untuk mencari nilai rata-rata. Lengkapi kode
program berikut dengan mengisi titik-titik.
package helloworld;
double rata=0.0;
//buatlah pendeklarasian dengan perintah for
untuk melakukan perulangan dari setiap nilai array yang di
deklarasikan
rata += x[i];
rata /=x.length;
System.out.println("nilai rata-rata= " +
rata); }
}
double rata=0.0;
for(int i=0;i<x.length;i++)
rata += x[i];
rata /=x.length;
System.out.println("nilai rata-rata= " +
rata);
}
}
LP 1 : PRODUK
3. Item pada array (maksudnya setiap anggota variabel dalam array tersebut)
sering juga disebut elemen array. Jelaskan apa yang dimaksud dengan elemen
array! (skor maksimal
5. Buatlah contoh pencetakan elemen array untuk variabel nama. (skor maksimal
6. Pada array dinamis, apakah kita menentukan batas maksimum data yang kita
ingin masukkan? Jelaskan! (skor maksimal
8. Inisialisasikan isi dari array pada poin no 7 dengan data untuk kolom adalah 5
dan 9, sedangkan data untuk baris adalah 4 dan 8! (skor maksimal
KUNCI LP 1 PRODUK
1. Item pada record dipanggil dengan nama, sedangkan item pada array
dinomori, dan masing-masing item dipanggil besarkan nomor posisi pada
array tersebut.
2. kumpulan item bernomor yang semuanya bertipe sama. Jumlah item dalam
suatu array disebut panjang array. Nomor posisi dari array disebut indeks item
tersebut dalam array. Tipe dari item tersebut disebut tipe dasar dari array.
3. elemen array selalu dinomori mulai dari nol. Yaitu, indeks dari elemen
pertama suatu array adalah nol. Jika panjang array adalah N, maka indeks
elemen terakhir adalah N-1. Sekali array dibuat, maka panjangnya tidak bisa
diubah lagi.
4. Deklarasi variabel =
Ilustrasi penyimpanan :
7. Deklarasi :
Int [2][2] matriks; atau Int[]
[] matriks= new int[2][2];
Kriteria
No. Rincian produk yang diamati
LP 2 : PROSES
Prosedur :
Rancanglah array agar bisa menyimpan data dan menghasilkan output program
seperti berikut :
1.
2.
KUNCI LP 2 : PROSES
1. Program utuhnya :
*/import java.io.*;
public class Tgs2 {
public void tampilMahasiswa() throws
IOException{ int telp1,telp2,telp3;
String
nama1,nama2,nama3,alamat1,alamat2,alamat3;
BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));
System.out.println("====================");
System.out.print("Name :");
nama1=br.readLine();
System.out.print("Tel. #:");
telp1=Integer.parseInt(br.readLine());
System.out.print("Address :");
alamat1=br.readLine();
System.out.println("===================");
System.out.print("Name :");
nama2=br.readLine();
System.out.print("Tel. #:");
telp2=Integer.parseInt(br.readLine());
System.out.print("Address :");
alamat2=br.readLine();
System.out.println("=================");
System.out.print("Name :");
nama3=br.readLine();
System.out.print("Tel. #:");
telp3=Integer.parseInt(br.readLine());
System.out.print("Address :");
alamat3=br.readLine();
String[]nama={nama1,nama2,nama3};
String[]alamat={alamat1,alamat2,alamat3};
int[]telp={telp1,telp2,telp3};
System.out.println("Name :"+nama1);
System.out.println("Tel. #:"+telp1);
System.out.println("Address :"+alamat1);
System.out.println("Name :"+nama2);
System.out.println("Tel. #:"+telp2);
System.out.println("Address :"+alamat2);
System.out.println("Name :"+nama3);
System.out.println("Tel. #:"+telp3);
System.out.println("Address :"+alamat3);
}
}
class DataMahasiswa{
public static void main(String args[])throws
IOException{
BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));
Tgs2 stikom = new Tgs2();
stikom.tampilMahasiswa();
}
}
2. import java.io.*; //Header Java
1. Merancang fungsi yang sesuai 50 = dapat merancang fungsi yg sesuai dengan output
dengan output program pada 40 = fungsi yang dirancang atau output belum sesuai
program 1 dengan kunci LP tetapi sudah mendekati
20 = fungsi yang dirancang atau output belum sesuai
dengan kunci LP
2. Merancang fungsi yang sesuai 50 = dapat merancang fungsi yg sesuai dengan output
dengan output program pada 40 = fungsi yang dirancang atau output belum sesuai
program 2 dengan kunci LP tetapi sudah mendekati
20 = fungsi yang dirancang atau output belum sesuai
dengan kunci LP
LP 3 : PSIKOMOTOR
Prosedur :
1. Disiapkan sebuah komputer dan software netbeans untuk masing-masing
kelompok
Petunjuk :
Untuk setiap perilaku keterampilan sosial berikut ini, berilah penilaian atas
keterampilan sosial menggunakan skala berikut ini.
D = Memerlukan perbaikan B = Memuaskan
C = Menunjukkan kemajuan A = Sangat baik
A. Standar Kompetensi
Merancang aplikasi teks dan desktop berbasis objek
B. Kompetensi Dasar
Menjelaskan class
C. Indikator
1. Kognitif
a. Produk
1) Mengetahui konsep dari class
2) Menjelaskan fungsi class
b. Proses
1) Mengidentifikasi perbedaan class dan objek
2) Mengidentifikasi class dalam sebuah program
2. Psikomotor
a. Membuat class
b. Menerapkan class dalam pemrograman
3. Afektif
a. Karakter
Jujur,Tanggung jawab, Kerjasama, Disiplin Percaya Diri
b. Keterampilan social
Bertanya, Berdiskusi
D. Tujuan Pembelajaran:
1. Kognitif
a. Produk:
1) Secara berkelompok siswa dapat mengetahui konsep dari class pada
LP 1 Produk sesuai Kunci LP 1 Produk.
2) Secara mandiri siswa dapat menjelaskan fungsi class pada LP 1
Produk sesuai Kunci LP 1 Produk.
b. Proses
1) Melalui contoh program, siswa dapat membedakan antara class dan
objek dengan benar.
2) Secara mandiri siswa dapat mengidentifikasi class yang ada pada
program dengan benar
2. Psikomotor:
a. Siswa dapat membuat class dalam bahasa pemrograman Java sesuai
rincian tugas kinerja yang ditentukan pada LP1 Psikomotor.
b. Siswa dapat menerapkan class dalam sebuah program
3. Afektif
a. Karakter
Melalui kegiatan belajar mengajar berpusat pada siswa, siswa dinilai
pengamat membuat kemajuan dalam menunjukkan perilaku
berkarakter meliputi:
1) Jujur : siswa mengerjakan sendiri semua penugasan yang diberikan
oleh guru.
2) Tanggung jawab : siswa berhati-hati dalam menggunakan computer
pada saat mengerjakan LP1 psikomotor.
3) Kerja keras : melalui kebersamaan siswa berusaha sekuat tenaga dan
pikiran untuk mengetahui konsep class.
4) Disiplin : siswa mengerjakan tugas dan mengumpulkan hasilnya
tepat waktu.
5) Percaya diri: dengan yakin siswa mengerjakan tugas secara
independent tidak saling menggantungkan diri kepada teman lain.
b. Keterampilan social
Melalui kegiatan belajar mengajar berpusat pada siswa, siswa dinilai
membuat kemajuan dalam menunjukkan keterampilan sosial meliputi:
1) Bertanya : siswa mampu mengajukan pertanyaan yang berkualitas
ketika siswa mendapat kesulitan atau belum mengerti dalam tugas
yang dikerjakan.
2) Berdiskusi: siswa dapat berkomunikasi secara aktif dalam
menyelesaikan tugas.
E. Materi Ajar :
1. class dalam pemrograman OOP
2. Interface class pada program
3. Penerapan class dalam program
H. Alat
PC, buku materi, modul
I. Bahan
LP1, LP2, LP3, LP4, LP5
J. Kegiatan Pembelajaran
Tabel Proses Belajar Mengajar Pertemuan I
Kegiatan Penilaian
1 2 3 4
Pendahuluan ( 15 menit)
1. Membuka pelajaran dengan mengucapkan salam,
kemudian mengabsen siswa. (fase 1 MPK)
2. Mengingatkan siswa dengan materi pelajaran dasar-
dasar pemrograman berbasis desktop. (fase 1 MPK)
3. Menyampaikan tujuan pembelajaran produk, proses,
karakter dan keterampilan sosial. (fase 1 MPK)
Kegiatan Inti ( 150 menit)
Menyajikan informasi
1. Menggali pengetahuan siswa tentang konsep OOP
(Object oriented programming), dengan menjunjuk
beberapa siswa untuk diberi pertanyaan.(Fase 2 MPK)
2. Mengorganisasikan siswa untuk belajar dengan
menugaskan seorang siswa untuk bertanggung jawab
mengorganisasikan siswa dalam kelompok-kelompok
kooperatif yang beranggotakan 3-4 orang siswa. (Fase
3 MPK).
3. Membagikan modul: Class dalam OOP. (Fase 3 MPK)
4. Membimbing kelompok untuk menjawab rumusan
masalah yang diberikan tadi, serta menjawab
pertanyaan dengan mengacu pada LP 1 : Produk yaitu
mengetahui konsep dasar dan fungsi class. Guru
mendorong siswa untuk memiliki rasa jujur,
tanggungjawab, kerja keras, disiplin dan percaya diri
(Fase 4 MPK)
5. Memberikan kesempatan kepada siswa untuk bertanya
jika ada yang kurang jelas dari penjelasan yang sudah
diberikan. (Fase 4 MPK)
6. Melakukan evaluasi formatif dengan cara meminta
satu-dua kelompok menanggapi kelompok lain.
Siswa yang menunjukkan kerja sama dan
menyumbang ide atau berpendapat segera diberi
pujian sebagai umpan balik. (Fase 5 MPK)
Kegiatan Akhir ( 15 menit)
1. Dengan melibatkan siswa menutup pelajaran dan
memberi PR, memberikan kesimpulan kegiatan
pembelajaran
1 2 3 4
Pendahuluan ( 15 menit)
1. Membuka pelajaran dengan mengucapkan salam,
mengingatkan siswa agar selalu semangat dalam
mengikuti pelajaran. (fase 1 MPK)
2. Mengulas kembali materi konsep dasar class. (fase 1
MPK)
3. Menyampaikan tujuan pembelajaran produk, proses,
karakter dan keterampilan sosial. (fase 1 MPK)
Kegiatan Inti ( 150 menit)
Menyajikan informasi
1. Menjelaskan materi tentang object dalam OOP.(Fase 2
MPK)
2. Mengingatkan kembali materi class dengan menunjuk
beberapa siswa untuk menjawab pertanyaan tentang
konsep dasar class. (fase 2 MPK)
3. Mempersilahkan siswa untuk bergabung dengan
kelompok masing-masing dan memberikan
permasalahan yang harus dipecahkan berdasarkan
berbagai referensi yang dapat diakses oleh siswa.
(Fase 3 MPK).
4. Membimbing kelompok untuk menjawab
rumusan masalah pada LP2 Proses yaitu
mengidentifikasi perbedaan antara class dan object.
Dalam mengerjakan tugas Guru mengawasi dan
memotivasi siswa untuk memiliki rasa jujur,
tanggungjawab, kerja keras, disiplin dan percaya
diri agar pekerjaan yang dihasilkan dapat benar-
benar dimengerti oleh masing-masing anggota
kelompok. (Fase 4 MPK)
5. Memberikan kesempatan kepada siswa untuk bertanya
jika mengalami permasalahan dalam
mengerjakan tugas, memberikan kesempatan kepada
siswa untuk menjawab pertanyaan rekan siswa
yang kesulitan. (Fase 4 MPK)
6. Melakukan evaluasi formatif dengan cara meminta
satu-dua kelompok mempresentasikan hasil kerja
di depan. Kelompok lain mendengarkan dan
memberikan
Kegiatan Akhir tanggapan.
( 15 menit) (Fase 5 MPK)
1. Secara bersama-sama dengan siswa
menyimpulkan pelajaran kemudian menutup
1 2 3 4
Pendahuluan ( 15 menit)
1. Membuka pelajaran dengan mengucapkan salam,
mengajak siswa berdoa dan membangkitkan motivasi
belajar siswa dengan menunjukkan produk-produk
rekayasa perangkat lunak. (fase 1 MPK)
2. Mengulas kembali materi mengidentifikasi perbedaan
antara class dan object dalam OOP. (fase 1 MPK)
3. Menyampaikan tujuan pembelajaran produk, proses,
karakter dan keterampilan sosial. (fase 1 MPK)
Kegiatan Inti ( 150 menit)
Menyajikan informasi
1. Memberikan pertanyaan kepada beberapa siswa
tentang perbedaan anatar class dan object,
memberikan pujian kepada siswa yang
dengan benar dan memebrikan motivasi kepada
siswa yang belum dapat menjawab pertanyaan.
(Fase 2 MPK)
2. Mengorganisasikan siswa untuk bergabung dengan
kelompok masing-masing dan memberikan
permasalahan LP2 proses yaitu mengidentifikasi class
dan object dalam sebuah program. Masing-masing
kelompok diberikan soal yang sama. (fase 3 MPK)
3. Membimbing kelompok untuk menjawab
rumusan masalah yang telah diberikan.
Mengkondisikan siswa untuk tidak bekerjasama
dengan kelompok lain. (Fase 3 MPK)
4. Memberikan kesempatan kepada tiap kelompok untuk
mempresentasikan hasil kerja di depan kelas.
Kelompok lain diberi kesempatan untuk mengajukan
pertanyaan dan sanggahan. Mengkondisikan siswa
agar dapat berdiskusi dengan cara yang baik dan
saling menghargai walaupun berbeda pendapat. (Fase
4 MPK)
7. Secara langsung meluruskan pemahaman siswa dalam
memahami materi agar tidak menjadi kesalahan yang
berkelanjutan dikemudian hari.(fase 5 MPK)
Kegiatan Akhir ( 15 menit)
1. Memberikan pujian kepada hasil kerja siswa dan
secara bersama-sama menyimpulkan materi pelajaran.
1 2 3 4
Pendahuluan ( 15 menit)
1. Membuka pelajaran dengan mengucapkan salam,
kemudian mengabsen siswa. (fase 1 MPL)
2. Mengkondisikan agar siswa siap mengikuti pelajaran,
dengan memberikan motivasi dan semangat baru
dalam belajar. (fase 1 MPL)
4. Menyampaikan tujuan pembelajaran produk, proses,
karakter dan keterampilan sosial. (fase 1 MPL)
Kegiatan Inti ( 150 menit)
Menyajikan informasi
1. Mengkondisikan siswa untuk siap mengikuti
praktikum dan menghimbau untuk tetap
memperhatikan kesehatan dan keselamatan kerja
dalam praktikum komputer. (fase 2 MPL)
2. Membagikan modul praktik: membuat class serta
memberikan contoh class. (Fase 2 MPL)
3. Menjelaskan langkah-langkah dalam membuat class.
(Fase 3 MPK).
4. Membagikan modul: Class dalam OOP. (Fase 3 MPL)
5. Membimbing siswa untuk menyelesaikan masalah
rumusan masalah yang telah diberikan (LP3
psikomotor). Guru mendorong siswa untuk
memiliki rasa jujur, tanggungjawab, kerja keras,
disiplin dan percaya diri agar permasalahan dapat
diselesaikan dan dapat dimengerti dengan baik (Fase 3
MPL)
6. Memberikan kesempatan kepada siswa untuk
mempresentasikan hasil kerja didepan kelas.
Teman yang lain memberi masukan dan
pertanyaan, membimbing siswa agar dapat
bertanyajawab dengan baik. (Fase 4 MPL)
7. Melakukan evaluasi terhadap hasil pekerjaan siswa
kemudian memberikan kesempatan kepada
siswa untuk membuat sediri class dengan tema yang
mereka inginkan. (Fase 5 MPL)
Kegiatan Akhir ( 15 menit)
1. Dengan melibatkan siswa menutup pelajaran dan
memberikan kesimpulan kegiatan pembelajaran.
1 2 3 4
Pendahuluan ( 15 menit)
1. Membuka pelajaran dengan mengucapkan salam,
kemudian mengabsen siswa. (fase 1 PBM)
2. Menjelaskan pentingnya class dalam pembuatan
sebuah program. (fase 1 PBM)
3. Mengingatkan siswa tentang langkah-langkah
membuat class. (fase 1 PBM)
4. Menyampaikan tujuan pembelajaran produk, proses,
karakter dan keterampilan sosial. (fase 1 PBM)
Kegiatan Inti ( 150 menit)
Menyajikan informasi
1. Mengkondisikan siswa untuk kelompok, memberikan
permasalahan LP3 psikomotor: menerapan class
dalam pemrograman. Siswa diberikan kebebasan
dalam membuat program dengan tujuan merangsang
siswa untuk berfikir kreatif dan mandiri. (Fase 2
PBM).
2. Membimbing kelompok untuk menjawab
rumusan masalah yang telah diberikan. Mendorong
siswa untuk memiliki rasa jujur, tanggungjawab,
kerja keras, disiplin dan percaya diri.
Memfasilitasi kesulitan siswa dalam membuat
program (Fase 3 PBM)
3. Meminta beberapa kelompok untuk mempresentasikan
hasil karya di depan kelas, teman yang lain
memberikan pertanyaan dan masukan.
Mengkondisikan siswa agar dapat berdiskusi dengan
baik. (Fase 4 MPK)
4. Bersama-sama siswa guru melakukan analisis dan
evaluasi proses pemecahan masalah dalam hal ini
mengkritisi hasil program yang telah dibuat siswa.
Guru memberikan pujian dan penguatan terhadap hasil
kerja siswa (Fase 5 MPK)
Kegiatan Akhir ( 15 menit)
1. Dengan melibatkan siswa menutup pelajaran dan
memberi PR, memberikan kesimpulan kegiatan
pembelajaran.
K. Penilaian Hasil Belajar
1. LP 1: Produk dilengkapi dengan Kunci LP 1.
2. LP 2: Proses dilengkapi dengan Kunci LP 2.
3. LP 3: Psikomotor.
4. LP 4: Format Pengamatan Keterampilan Karakter.
5. LP 5: Format Pengamatan Keterampilan Sosial.
6. Tabel Spesifikasi Lembar Penilaian.
L. Sumber Belajar
1. LKS SMK
2. Kunci LKS SMK:
3. LP 1 : Produk dilengkapi dengan Kunci LP 1.
4. LP 2 : Proses dilengkapi dengan Kunci LP 2.
5. LP 3 : Psikomotor
6. LP 4 : Pengamatan Perilaku Berkarakter
7. LP 5 : Pengamatan Keterampilan Sosial
8. Tabel Spesifikasi Lembar Penilaian
9. Silabus
MODUL SMK
CLASS DALAM APLIKASI TEKS DAN DESKTOP BERBASIS OBJEK
1. Konsep OOP
OOP berputar pada konsep dari object sebagai dasar element dari program
anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan
beberapa objek disekitar kita, seperti mobil, singa, manusia dan seterusnya. Object
ini dikarakterisasi oleh sifat / attributnya dan tingkah lakunya. Contohnya, objek
sebuah mobil mempunyai sifat tipe transmisi, warna dan manufaktur. Mempunyai
kelakuan berbelok, mengerem dan berakselerasi. Dengan cara yang sama pula kita
dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa. Dengan
deskripsi ini, objek pada dunia nyata dapat secara mudah dimodelisasi sebagai
objek software menggunakan sifat sebagai data dan tingkah laku sebagai method.
Data disini dan method dapat digunakan dalam pemrograman game atausoftware
interaktif untuk menstimulasi objek dunia nyata. Contohnya adalah sebagai
software objek mobil dalam permainan balap mobil atau software objek
singadalam sebuah software pendidikan interaktif pada kebun binatang untuk
anak anak.
2. Pengertian class
Pada dunia software, sebuah objek adalah sebuah komponen software
yang stukturnya mirip dengan objek pada dunia nyata. Setiap objek dibuat dari
satu set data (sifat) dimana variable menjabarkan esensial karakter dari objek, dan
juga terdiri dari satu set dari methode (tingkah laku) yang menjabarkan bagaimana
tingkah laku dari objek. Jadi objek adalah sebuah berkas software dari variable
dan method yg berhubungan. Variable dan methods dalam objek Java scara
formal diketahui sebagai instance variable dan instance methods untuk
membedakannya dari variable klas dan method klas, dimana akan dibahas
kemudian.
Program-program yang ditulis menggunakan Java selalu menggunakan
kelas-kelas (class) yang mencerminkan objek-objek (object) yang sesungguhnya
hadir di dunia nyata. Hal ini berarti saat kita akan membuat program
menggunakan bahasa pemograman Java, kita harus mempertimbangkan objek-
objek apa saja yang semestinya hadir dalam program kita dan bukannya semua
objek yang ada di dunia nyata, dimana proses ini sering disebut sebagai abstraksi,
suatu kelas pada umumnya memiliki data/atribut yang berfungsi untuk
mendeskripsikan (menerangkan) kelas yang bersangkutan, dan juga pada
umumnya memiliki metode/fungsi yang menjelaskan apa yang akan/bisa
dilakukan oleh kelas yang bersangkutan.
Kelas merupakan konsep pokok di bahasa pemograman berorientasi
object, demikian juga di Java. Kelas merupakan bentuk logis yang menjadi
landasan bangun seluruh bahasa pemograman berorientasi object. Kelas
mendefinisikan bentuk dan perilaku object. Kelas sungguh sangat penting di Java.
Sembarang konsep/abstraksi yang diimplementasikan di Java harus di kapsulkan
di kelas.
Pemograman Java tidak mungkin dipisahkan dari kelas. Penggunaan
terpenting kelas adalah dalam pendefinisian type baru. Kelas adalah
template/prototype yang mendefinisikan type object. Kelas merupakan sarana
pengkapsulan kumpulan data dan metode-metode yang beroperasi pada kumpulan
data. Data dan metode untuk mendefinisikan isi dan kamampuan object. Kelas
adalah cetakan object. Object harus merupakan instan suatu kelas. Kelas
digunakan untuk menciptakan banyak object. Object-object dari kelas yang
sama mempunyai data sendiri tapi berbagi implementasi metode dengan object-
object lain di satu kelas. Kelas dapat merupakan realisasi/implementasi
abstraksi di domain persoalan.
Kelas merupakan blok pembangun terpenting di pendekatan berorientasi
object. Kelas adalah tipe data abstrak yang dilengkapi implementasi parsial atau
total. Kelas mendeskripsikan kelompok object dengan properti-properti (atribut-
atribut) serupa, perilaku (operasi-operasi) yang common, keterhubungan terhadap
himpunan object-object lain dan semantik yang common. Seperti juga tipe data
abstrak, kelas mendeskripsikan sekelompok struktur data yang dapat dibentuk
oleh kelas, disebut instan kelas atau object.
3. Berikut ini adalah kegunaan kelas :
a. Mengelompokkan object-object menjadi kelas-kelas berarti
mengabstraksikan persoalan yang dihadapi. Abstraksi memberi daya
keampuhan pemodelan dan memberikan kemampuan generalisasi
beberapa kasus spesifik menjadi induk kasus-kasus yang serupa.
b. Definisi-definisi common (seperti nama kelas dan atribut) cukup disimpan
sekali per kelas bukan sekali per instan kelas (object). Operasi-operasi
dapat ditulis sekali per kelas. Semua object dalam kelas mendapat manfaat
penggunaan kembali (reuse) kode itu.
Ketika diinisialisi, tiap objek mendapat satu set baru dari state variable.
Bagaimanapun, implementasi dari method dibagi diantara objek pada kelas yang
sama. Kelas menyediakan keuntungan dari reusability. Software programmers
dapat digunakan dari sebuah kelas lagi dan lagi untuk membuat beberapa objek.
5. Instansiasi Class
Untuk membuat sebuah objek atau sebuah instance pada sebuah kelas. Kita
menggunakan operator baru. Sebagai contoh, jika anda ingin membuat instance
dari kelas string, kita menggunakan kode berikut :
String str2 = new String(Hello world!);
or also equivalent to,
String str2 = "Hello";
dimana :
<modifier> adalah sebuah access modifier, yang dapat dikombinasikan dengan
tipe modifier lain. Pada bagian ini, kita akan membuat sebuah class yang berisi
record dari siswa. Jika kita telah mengidentifikasikan tujuan dari pembuatan kelas,
maka dapat dilakukan pemberian nama yang sesuai. Nama yang tepat pada class
ini adalah StudentRecord. Untuk mendefinisikan class, kita tuliskan :
public class StudentRecord
{
//area penulisan kode
selanjutnya }
dimana,
.
2. Contoh 2
3. Contoh Program:
//class
class Mobil
{ String
warna; int
tahun; String
merek;
}
class object {
public static void main(String[]args)
{ //object
Mobil G8 = new Mobil();
Mobil Jazz = new
Mobil(); //pemberian nilai
G8.warna = "Yellow";
G8.tahun = 2012;
G8.merek = "Audi";
Jazz.warna = "red";
Jazz.tahun = 2007;
Jazz.merek = "Honda";
//menampilkan
System.out.println("G8");
System.out.println("warna :" +G8.warna);
System.out.println("tahun :" +G8.tahun);
System.out.println("merek :" +G8.merek);
System.out.println("");
System.out.println("Jazz");
System.out.println("warna :" +Jazz.warna);
System.out.println("tahun :" +Jazz.tahun);
System.out.println("merek :" +Jazz.merek);
}
}
4. contoh lainnya:
//class
class Orang {
//state
String nama; //nama orang
int tinggibadan; //dalam cm
int beratbadan; //dalam kg
String warnarambut; //hitam, pirang, coklat
String warnakulit; // sawomatang, hitam,
String jeniskelamin; putih //pria atau wanita
boolean berkacamata; //bila berkacamata berarti true
//method
void menangis() {
System.out.println("hik...hikk...hik..");
}
void tertawa()
{ System.out.println("ha..ha...ha...ha...")
;
}
}
class objectorang {
public static void main(String[]args)
{ //mebuat object
Orang orang1 = new Orang();
//pemberian nilai
orang1.nama = "Aby";
orang1.tinggibadan = 170;
orang1.beratbadan = 55;
orang1.warnarambut = "hitam";
orang1.warnakulit = "putih";
orang1.jeniskelamin = "pria";
orang1.berkacamata = false;
//menampilkan
System.out.println("nama :" +orang1.nama);
System.out.println("tinggi :"
+orang1.tinggibadan);
System.out.println("berat :"
+orang1.beratbadan);
System.out.println("warna rambut :"
+orang1.warnarambut);
System.out.println("warna kulit :"
+orang1.warnakulit);
System.out.println("jenis kelamin :"
+orang1.jeniskelamin);
System.out.println("berkacamata :"
+orang1.berkacamata);
//pemanggilan method
orang1.tertawa();
}
}
LP1 PRODUK
1. Class adalah Kelas merupakan bentuk logis yang menjadi landasan bangun
seluruh bahasa pemograman berorientasi object. Kelas mendefinisikan
bentuk dan perilaku object. Kelas sungguh sangat penting di Java.
Sembarang konsep/abstraksi yang diimplementasikan di Java harus di
kapsulkan di kelas.
2. Karena klass berfungsi untuk
OOP berputar pada konsep dari object sebagai dasar element dari program
anda. Ketika kita membandingkan dengan dunia nyata, kita dapat
menemukan beberapa objek disekitar kita, seperti mobil, singa, manusia
dan seterusnya. Object ini dikarakterisasi oleh sifat / attributnya dan
tingkah lakunya. Contohnya, objek sebuah mobil mempunyai sifat tipe
transmisi, warna dan manufaktur. Mempunyai kelakuan berbelok,
mengerem dan berakselerasi. Dengan cara yang sama pula kita dapat
mendefinisikan perbedaan sifat dan tingkah laku dari singa. Dengan
deskripsi ini, objek pada dunia nyata dapat secara mudah dimodelisasi
sebagai objek software menggunakan sifat sebagai data dan tingkah laku
sebagai method.
LP2 PROSES
Contoh Program 1
class Mobil {
String warna;
int tahun;
String merek;
}
class object {
public static void main(String[]args) {
Mobil G8 = new Mobil();
Mobil Jazz = new
Mobil(); //pemberian nilai
G8.warna = "Yellow";
G8.tahun = 2012;
G8.merek = "Audi";
Jazz.warna = "red";
Jazz.tahun = 2007;
Jazz.merek = "Honda";
//menampilkan
System.out.println("G8");
System.out.println("warna :" +G8.warna);
System.out.println("tahun :" +G8.tahun);
System.out.println("merek :" +G8.merek);
System.out.println("");
System.out.println("Jazz");
System.out.println("warna :" +Jazz.warna);
System.out.println("tahun :" +Jazz.tahun);
System.out.println("merek :" +Jazz.merek);
}
}
contoh program 2
class Orang {
class objectorang {
public static void main(String[]args) {
//pemberian nilai
orang1.nama = "Aby";
orang1.tinggibadan = 170;
orang1.beratbadan = 55;
orang1.warnarambut = "hitam";
orang1.warnakulit = "putih";
orang1.jeniskelamin = "pria";
orang1.berkacamata = false;
//menampilkan
System.out.println("nama :" +orang1.nama);
System.out.println("tinggi :" +orang1.tinggibadan);
System.out.println("berat :" +orang1.beratbadan);
System.out.println("warna rambut :"
+orang1.warnarambut);
System.out.println("warna kulit :" +orang1.warnakulit);
System.out.println("jenis kelamin :"
+orang1.jeniskelamin);
System.out.println("berkacamata :"
+orang1.berkacamata);
//pemanggilan method
orang1.tertawa();
}
}
KUNCI LP 2 PROSES
Contoh Program 1
//class
class Mobil {
String warna;
int tahun;
String merek;
}
//object
class object {
public static void main(String[]args) {
Mobil G8 = new Mobil();
Mobil Jazz = new
Mobil(); //pemberian nilai
G8.warna = "Yellow";
G8.tahun = 2012;
G8.merek = "Audi";
Jazz.warna = "red";
Jazz.tahun = 2007;
Jazz.merek = "Honda";
//menampilkan
System.out.println("G8");
System.out.println("warna :" +G8.warna);
System.out.println("tahun :" +G8.tahun);
System.out.println("merek :" +G8.merek);
System.out.println("");
System.out.println("Jazz");
System.out.println("warna :" +Jazz.warna);
System.out.println("tahun :" +Jazz.tahun);
System.out.println("merek :" +Jazz.merek);
}
}
contoh program 2
//class
class Orang {
//pemberian nilai
orang1.nama = "Aby";
orang1.tinggibadan = 170;
orang1.beratbadan = 55;
orang1.warnarambut = "hitam";
orang1.warnakulit = "putih";
orang1.jeniskelamin = "pria";
orang1.berkacamata = false;
//menampilkan
System.out.println("nama :" +orang1.nama);
System.out.println("tinggi :" +orang1.tinggibadan);
System.out.println("berat :" +orang1.beratbadan);
System.out.println("warna rambut :"
+orang1.warnarambut);
System.out.println("warna kulit :" +orang1.warnakulit);
System.out.println("jenis kelamin :"
+orang1.jeniskelamin);
System.out.println("berkacamata :"
+orang1.berkacamata);
//pemanggilan method
orang1.tertawa();
}
}
RUBRIK ASESMEN PROSES
Petunjuk:
Untuk memberikan skor penilaian pada LP 2 Proses : mengidentifikasi class dan
objek dalam sebuah program, mengacu pada format penskoran di bawah ini.
A. Buatlah sebuah class, tema bebas sesuai dengan ide kalian masing-masing.
Setiap siswa harus memiliki pekerjaan yang berbeda
B. Buatlah sebuah program dengan menerapkan class dengan tema program
bebas.
Petunjuk:
Untuk setiap perilaku berkarakter berikut ini, beri penilaian atas perilaku
berkarakter siswa menggunakan skala berikut ini:
1. Jujur
2. Disiplin
3. Tanggung jawab
4. Percaya diri
5. Kerjasama
RUBRIK PENGAMATAN PERILAKU BERKARAKTER
Petunjuk:
Untuk setiap keterampilan sosial berikut ini, beri penilaian atas keterampilan
sosial siswa itu menggunakan skala berikut ini:
1 Bertanya
2 Berdiskusi
A. Standar Kompetensi :
Merancang aplikasi teks dan desktop berbasis objek
B. Kompetensi Dasar :
Merancang aplikasi berorientasi objek
C. Indikator:
1. Produk
1) Menjelaskan class diagram
2) Menjelaskan langkah-langkah membuat class dan object
3) Mengetahui konsep class private dan public
2. Proses
1) Merancang sebuah class melalui class diagram
2) Mengidentifikasikan antara class private dan class public
3. Psikomotor
1) Membuat program dengan menggunakan obyek dan class.
2) Membuat properti class yang akan direalisasikan dalam bentuk
prosedur atau fungsi.
3) Membuat Class private di dalam program
4) Membuat Class public di dalam program
4. Karakter
Mengembangkan perilaku berkarakter, meliputi : Jujur, Tanggung jawab,
Kerjasama, Disiplin, dan Percaya Diri
5. Keterampilan social
Mengembangkan keterampilan social meliputi: Bertanya danMenyumbang
ide atau berpendapat
D. Tujuan Pembelajaran
1. Produk
1) Secara mandiri siswa dapat menjelaskan class diagram sesuai deskripsi
yang tercantum pada kunci LP1:Produk
2) Tanpa melihat modul siswa dapat menjelaskan langkah-langkah
membuat class dan object sesuai deskripsi yang tercantum pada kunci
LP1: produk.
3) Secara mandiri siswa dapat mengetahui konsep class private dan class
public sesuai deskripsi yang tercantum pada kunci LP1: produk.
2. Proses
1) Diberikan modul membuat class diagram, siswa dapat membuat class
diagram sesuai dengan rincian tugas kerja pada LP2 proses.
2) Melalui berbagai sumber belajar (modul, internet, buku dll) siswa
dapat mengidentifikasikan perbedaan antara class private dan class
public
3. Psikomotor
1) Secara mandiri siswa dapat membuat program dengan menggunakan
obyek dan class sesuai dengan rincian tugas kerja pada LP3
psikomotor.
2) Secara mandiri siswa dapat membuat Class private di dalam program
sesuai dengan rincian tugas kerja pada LP3 psikomotor
3) Secara mandiri siswa dapat membuat Class public di dalam program
sesuai dengan rincian tugas kerja pada LP3 psikomotor.
4. Karakter
Terlibat dalam proses belajar mengajar berpusat pada siswa, dan diamati
dengan LP 4, diharapkan siswa dapat mengembangkan perilaku
berkarakter, meliputi :jujur, Tanggung jawab, Kerjasama, Disiplin,
Percaya Diri
5. Keterampilan social
Terlibat dalam proses belajar mengajar yang menerapkan MPL, diamati
dengan LP5, diharapkan siswa dapat membuat kemajuan dalam Bertanya
dan mengungkapkan pendapat atau ide.
E. Materi Ajar
Object Oriented Programming
F. Alokasi Waktu
16 x 45 menit ( empat pertemuan )
Kegiatan
1 2 3 4
Pendahuluan ( 15 menit)
Menyajikan informasi
7. membagikan LKS : Merancang aplikasi berorientasi objek dan
meminta siswa untuk mempelajari secara mandiri.
8. menjelaskan konsep class diagram mengenai kegunaan, notasi
dan contoh dari class diagram.(fase 2 MPL).
9. Melalui contoh dan penjelasan yang diberikan guru, siswa
membuat class diagram sesuai dengan rincian tugas kinerja
pada LP2:proses. (fase 3 MPL)
10. Membimbing dan memberi kesempatan kepada siswa
untuk menjelaskan class diagram sesuai dengan LP1 produk
(fase 3 MPL).
11. Mengecek pemahaman siswa dengan memberikan umpan
balik yaitu dengan memberikan tanya jawab materi class
diagram (fase 4 MPL).
Penutup ( 15 menit)
Kegiatan
1 2 3 4
Pendahuluan ( 15 menit)
Menyajikan informasi
1. Menjelaskan konsep class. (fase 2 MPL)
2. Memberikan sebuah contoh langkah-langkah membuat
class dan object berdasarkan class diagram yang telah dibuat.
(fase 2 MPL).
3. Meminta siswa menjelaskan langkah-langkah membuat
class dan object. (fase 3 MPL)
4. Membimbing dan memberi kesempatan kepada siswa
untuk mengimplementasikan class diagram yang telah
dibuat ke dalam class dan object. (fase 3 MPL).
5. Menunjuk beberapa siswa untuk maju ke depan kelas untuk
menyampaikan hasil kerjanya,teman yang lain
mendengarkan, memberikan masukan, dan pertanyaan.
Membimbing siswa agar dapat berdiskusi dengan baik,
mengingatkan siswa cara berdiskusi yang baik (fase 4 MPL).
6. Meminta siswa untuk mengamati pekerjaan teman, kemudian
memberikan komentar sebagai sarana evaluasi. (fase 5 MPL)
Penutup ( 15 menit)
Pendahuluan ( 15 menit)
Menyajikan informasi
1. menjelaskan konsep class public dan class privat.(fase 2 MPL)
2. Meminta siswa untuk menjelaskan konsep class public dan private
dan mencari perbedaan diatara keduanya (fase 3 MPL)
3. Membimbing dan memberikan kesempatan kepada siswa untuk
membuat class public dan class private. (fase 3 MPL).
4. Mengecek pemahaman siswa menunjuk beberapa siswa untuk
mempresentasikan hasil kerja. Teman yang lain bertanya,
menyampaikan pendapat, dan memberikan masukan. (fase 4 MPL).
Penutup ( 15 menit)
1. Class diagram
a. Definisi
Class adalah kumpulan objek-objek yang mempunyai struktur
umum, behavior umum, relasi umum, dan semantic/kata yang umum. Class-
class ditentukan/ditemukan dengan cara memeriksa objek-objek dalam
sequence diagram dan collaboration diagram. Sebuah class digambarkan
seperti sebuah bujur sangkar dengan tiga bagian ruangan. Class sebaiknya
diberi nama menggunakan kata benda sesuai dengan domain/bagian/
kelompoknya (Whitten L. Jeffery et al, 2004).
Class Diagram adalah diagram yang menunjukan class-class yang
ada dari sebuah sistem dan hubungannya secara logika. Class diagram
menggambarkan struktur statis dari sebuah sistem. Karena itu class diagram
merupakan tulang punggung atau kekuatan dasar dari hampir setiap metode
berorientasi objek termasuk UML (Henderi, 2008). Sementara menurut
(Whitten L. Jeffery et al 2004:432) class diagram adalah gambar grafis
mengenai struktur objek statis dari suatu sistem, menunjukan class-class
objek yang menyusun sebuah sistem dan juga hubungan antara class objek
tersebut.
Elemen-eleman class diagram dalam pemodelan UML terdiri dari:
Class-class, struktur class, sifat class (class behavior),
perkumpulan/gabungan (association), pengumpulan/kesatuan (agregation),
ketergantungan (dependency), relasi-relasi turunannya, keberagaman dan
indikator navigasi, dan role name (peranan/tugas nama). Simbol-simbol class
diagram. Berikut adalah notasi notasi yang ada pada class diagram :
Table notasi class diagram
Nama
Keterangan
Notasi
Class
Class adalah blok - blok pembangun pada pemrograman berorientasi obyek.Sebuah class
digambarkan sebagai sebuah kotak yang terbagi atas 3 bagian. Bagian atas adalah bagian
nama dari class. Bagian tengah mendefinisikan property/atribut class. Bagian akhir
mendefinisikan methodmethod dari sebuah clas.
Association
Sebuah asosiasi merupakan sebuah relationship paling umum antara 2 class dan
dilambangkan oleh sebuah garis yang menghubungkan antara 2 class. Garis ini bisa
melambangkan tipe-tipe relationship dan juga dapat menampilkan hukum-hukum
multiplisitas pada sebuah relationship.(Contoh: One-to-one, one-to-many,many-to-many).
Composition
Jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang
lain, maka class tersebut memiliki relasi Composition terhadap class tempat dia bergantung
tersebut. Sebuah relationship composition digambarkan sebagai garis dengan ujung
berbentuk jajaran genjang berisi/solid.
Dependency
Kadangkala sebuah class menggunakan class yang lain. Hal ini disebut dependency.
Umumnya penggunaan dependency digunakan untuk menunjukkan operasi pada suatu class
yang menggunakan class yang lain. Sebuah dependency dilambangkan sebagai sebuah
panah bertitik-titik.
Buku
+judul : String;
+pengarang : String;
+setJenis(String tipe);
+ambilHalaman() : int
2. Konstruktor
a. Definisi
Konstruktor adalah bagian dari definisi suatu kelas yang berfungsi
menciptakan instans dari kelas tersebut. Konstruktor ini bisa kita buat sendiri,
atau bila kita tidak mendefinisikannya, maka kompiler Java akan
membuatkan konstruktor default untuk kelas tersebut pada saat kompilasi.
Yang perlu diperhatikan adalah bahwa suatu konstrukor tidak termasuk
anggota suatu kelas seperti metode dan variabel dan bahwa konstruktor bisa
dibuat lebih dari satu.
Mahasiswa
+nrp : int;
+nama : String;
Dari definisi Class Orang di atas, kita bisa membuat objek-objek berdasar
Class tersebut.
Objek-objek yang dibuat perlu disimpan dalam variabel yang
akan menyimpanreferensi/address dari objek yang dibuat.
Proses pembuatan objek sering disebut sebagai instansiasi Class,
sedangkan objeknya disebutsebagai instance dari Class.
b. Method
Selain memiliki atribut atau STATE yang diimplementasikan sebagai
data member di atas, manusia juga dapat melakukan suatu aksi atau
pekerjaan tertentu (BEHAVIOR).
Contoh aksi/behavior yang umum adalah menangis dan tertawa.
Kedua behavior tsb bisa dipindahkan ke dalam bahasa
pemrograman menjadi method sbb :
void menangsi() {
System.out.println(hik..hikk..hik...);
}
void tertawa() {
System.out.println(ha..ha..ha..ha..);
}
Method merupakan perwujudan aksi atau tindakan dari dunia nyata di
dalam pemrograman komputer.
Method dalam dunia pemrograman juga pasti melakukan sesuatu
aksi, misalnya menampilkan String di konsol.
Class A
State:
Data Member/Variabel
Behavior :
method1();
method2();
b. Deklarasi Atribut
Contoh :
c. Deklarasi Metode
Contoh :
d. Pengaksesan anggota obyek
Contoh :
Contoh
Class Coin :
public Coin () {
flip();
}
public void flip (){
face = (int) (Math.random() *
2); }
public int getFace ()
{ return face;
}
Class Circle
Hasil :
5. Membuat Objek
LifeCycledariObjek Life Cycle dari Objek
a. Creation (Membuat objek)
//konstruktor
public MyDate(int day, int month, int year)
{.}
}
c. Akses Protected
Tipe ini hanya mengijinkan class memberuntuk diakses oleh method dalam
class tersebut dan elemen elemen subclass. Sebagai contoh :
13. Behavoiur adalah suatu aksi atau pekerjaan tertentu. Contoh aksi/behavior
yang umum adalah menangis dan tertawa. Kedua behavior tsb bisa
dipindahkan ke dalam bahasa pemrograman menjadi method sbb.
14. Class private adalah tipe yang mengijinkan pengaksesan class hanya dapat
diakses oleh class dimana tipe ini dibuat.
15. Class public adalah tipe yang mengijinkan seluruh class member untuk
diakses baik dari dalam dan luar class. Object apapun yang memiliki interaksi
pada class memiliki akses penuh terhadap member dari tipe ini.
RUBRIK PENILAIAN PRODUK
Tidak lengkap 0
LP 2 : PROSES
A. Merancang class
1. Buatlah definisi class Motor, yang memiliki data : nama (String) ,status
(boolean) memiliki metod : tampilkan() : mencetak keterangan nama
keadaan motor (status mati /hidup) memiliki metod : nyalakan() :berfungsi
men-set status dari mati (false) menjadi hidup (true). Jika status sudah hidup
dan dipanggil metod nyalakan(), maka akan ada komentar Mesin sudah
hidup, jika mesin belum hidup dan meetod nyalakan() dipanggil maka status
diubah menjadi true.
2. Buatlah definisi class TesMotor , untuk membuat objek motor : motorku ,
nama motor HONDA kondisi mati, panggil metod tampilkan() motormu,
nama motor YAMAHA , panggil metod nyalakan() dan tampilkan().
2 class Mahasiswa
{ private String
admin; private int
NIM; private String
nama;
public void setAdmin(String admin)
{ this.admin = admin;
}
public void setNIM(int NIM)
{ this.NIM = NIM;
}
public void setNama(String nama) {
this.nama =
nama; }
public void pesan()
{ System.out.println(Nama admin:
+admin); }
public int getNIM()
{ return NIM;
}
public String getNama()
{ return nama;
}
}
public class MainMahasiswa {
public static void main(String args[])
{ Mahasiswa m = new Mahasiswa();
m.setAdmin(kristantra);
m.setNIM(00224455);
m.setNama(Henry kristantra);
m.pesan();
System.out.println(NIM + m.getNIM() +
bernama + m.getNama());
}
}
4 class Murid {
private String nama;
}
KUNCI LP 2 PROSES
A. Class motor
Motor
tampilkan()
nyalakan()
A. Merancang class
Penilaian untuk setiap butir soal menggunakan panduan rubric
penilaian sebagai berikut:
Rincian Tugas Kerja Keterangan Skor
Dapat merancang membuat class dengan Nama class 30
benar meliputi: Atribut 30
Method 30
mengerjakan dengan 10
lengkap
Prosedur
1. Implementasikan class diagram pada LP2A: proses ke dalam program java.
2. Buatlah sebuah class dalam java.
3. Buatlah sebuah class private
4. Buatlah sebuah class public
Petunjuk:
Untuk setiap perilaku berkarakter berikut ini, beri penilaian atas perilaku
berkarakter siswa menggunakan skala berikut ini:
1. Jujur
2. Tanggung jawab
3. Kerja keras
4. Disiplin
5. Percaya diri
Rubrik Pengamatan Perilaku Berkarakter
No Rincian Tugas Kinerja yang Diamati Rubrik
A: sangat jujur
1. B: jujur
Jujur
C: cukup jujur
D: kurang jujur
A: sangat tanggung jawab
2. B: tanggung jawab
Tanggung jawab
C: cukup tanggung jawab
D: kurang tanggung jawab
A: sangat kerja keras
3. B: kerja keras
Kerja keras
C: cukup kerja keras
D: kurang kerja keras
A: sangat disiplin
4. B: disiplin
Disiplin
C: cukup disiplin
D: kurang disiplin
A: sangat Percaya diri
5 B: Percaya diri
Percaya diri
C: cukup Percaya diri
D: kurang Percaya diri
LP 5 : PENGAMATAN KETERAMPILAN SOSIAL
Petunjuk:
Untuk setiap keterampilan sosial berikut ini, beri penilaian atas keterampilan
sosial siswa itu menggunakan skala berikut ini: