Anda di halaman 1dari 132

RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan
potensi diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional,
regional, dan internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang
lazim dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja
Teknik Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.1 Menerapkan alur logika pemrograman komputer
4.1 Membuat alur logika pemrograman komputer
C. Indikator Pencapaian Kompetensi
3.1 Menerapkan alur logika pemrograman komputer
3.1.1 Memahami alur logika pemrograman komputer
3.1.2 Mempraktekkan alur logika pemrograman komputer
4.1 Membuat alur logika pemrograman komputer
4.1.1 Memodifikasi alur logika pemrograman komputer
4.1.2 Mengkonstruksi alur logika pemrograman komputer
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan alur logika
pemrograman komputer dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan alur logika
pemrograman komputer dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menkonstruksi alur logika
pemrograman komputer dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi alur logika
pemrograman komputer dengan tepat
D. Materi Pembelajaran
alur logika pemrograman komputer
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang alur logika pemrograman komputer
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan alur logika pemrograman komputer
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan cara alur logika pemrograman komputer di depan
2 Kegiatan Inti peserta didik
4. Peserta didik memperhatikan dan mencoba praktek membuat alur logika
pemrograman komputer sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara membuat alur logika pemrograman
komputer dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membu at alur
logika pem rograman komputer
3. Guru member tahukan jadwal alur logika pemro graman komputer kepada
peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengkonstruksi, memodifikasi alur logika pemrograman
komputer
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik mendemonstrasikan, mempraktekkan, mengkonstruksi,
memodifikasi alur logika pemrograman komputer
4. Guru memperhatikan peserta didik dalam membuat alur logika
pemrograman komputer
dan mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik membuat alur logika pemrograman
komputer
3. Peserta didik mengamati penjelasan guru jika ada salah dalam membuat
alur logika pemrograman komputer
4. Guru mengevaluasi dari hasil peserta didik dalam membuat alur logika
pemrograman komputer
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
alur logika pemrograman komputer
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang alur
logika pemrograman komputer
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar.
Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa
Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode
pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk
menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma
disajikan dengan gambar, yaitu dengan Flowchart

B. Flowchart (Diagram Alir)


Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu
program secara logika.
Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk
notasi-notasi tertentu. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan
demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan
dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan
pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga
berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu
proyek.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa
anjuran:
1) Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses
menjadi singkat.
2) Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
3) Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Berikut merupakan beberapa contoh simbol flowchart yang disepakati olehdunia pemrograman
Pengertian Simbol Flowchart:
1. Terminator : Notasi ini digunakan untuk menunjukkan awal dan akhir suatu algoritma
2. Aliran data : Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran
data dari proses satu ke proses lainnya.
3. Input / Output : Notasi ini disebut Data yang digunakan untuk mewakili data input atau output
atau menyatakan operasi pemasukan data dan pencetakan hasil.
4. Proses : Notasi ini disebut Process yang digunakan untuk mewakili suatu proses.
5. Percabangan : Notasi ini disebut Decision yang digunakan untuk suatu pemilihan,
penyeleksian kondisi di dalam suatu program
6. Preparation : Notasi ini digunakan untuk memberi nilai awal, nilai akhir, penambahan /
pengurangan bagi suatu variable counter.
7. Predefined Process / Call : Notasi ini digunakan untuk menunjukkan suatu operasi yang
rinciannya ditunjukkan ditempat lain (prosedur, sub-prosedur, fungsi)
8. Connector : Notasi ini digunakan untuk menunjukkan sambungan dari flowchart yang
terputus di halaman yang sama atau halaman berikutnya.
9. Off page Connector : Penghubung bagian-bagian flowchart yang berada pada halaman
berbeda
Contoh Flowchart :
Problem: Menghitung luas persegi panjang
Algoritma:
Masukkan panjang (p)
Masukkan lebar (l)
Hitung luas (L), yaitu panjang kali lebar
Cetak luas (L)
Algoritma Pemrograman :
<?php
$panjang =6;
$lebar =5;
$luas= $panjang*$lebar;
echo "Jadi Luas Persegi Panjang adalah . $luas";
?>
A. Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat
berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau
kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
1) Struktur Runtunan / Beruntun : Digunakan untuk program yang pernyataannya sequential atau
urutan.
2) Struktur Pemilihan / Percabangan : Digunakan untuk program yang menggunakan pemilihan
atau penyeleksian kondisi.
3) Struktur Perulangan : Digunakan untuk program yang pernyataannya akan dieksekusi berulang-
ulang.

1. Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan
(sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan
(looping). Sebuah algoritma biasanya akan menggabungkan ketiga buah
struktur ini untuk menyelesaikan masalah. Pada bagian ini kita akan bahas lebih dulu struktur
algoritma berurutan. Struktur berurutan dapat kita samakan dengan mobil yang sedang berjalan
pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar disamping Mobil
tersebut akan melewati kilometer demi kilometer jalan sampai tujuan Algoritma Runtunan
tercapai
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yaitu sebuah
instruksi dieksekusi setelah instruksi sebelumnya selesai dieksekusi. Urutan instruksi
menentukan keadaan akhir dari algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin
juga berubah. Menurut Goldshlager dan Lister (1988) struktur berurutan mengikuti ketentuan-
ketentuan sebagai berikut:
a. Tiap instruksi dikerjakan satu persatu
b. Tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang
c. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang
tertulis di dalam algoritmanya
d. Akhir dari instruksi terakhir merupakan akhir algoritma.

2. Struktur Algoritma Percabangan


Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-
kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan
program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan
atau keputusan.
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi
yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus
digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil
pengujian akan menentukan cabang mana yang akan ditempuh.

3. Struktur Algoritma Perulangan / Pengulangan


Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang
berkali.Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada
gambar ini Mobil-mobil peserta harus mengelilingi lintasan sirkuit berkali-kalisesuai yang
ditetapkan dalam aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang
menang.

Struktur pengulangan terdiri dari dua bagian :


1. Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat
ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau
salah (false)
2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang.
Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian terminasi.
Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian
insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan terminasi
adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan. Ada beberapa bentuk
pengulangan yang dapat digunakan, masing-masing dengan syarat dan karakteristik tersendiri.
Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada bentuk yang hanya cocok
untuk kasus tertentu saja. Pemilihan bentuk pengulangan untuk masalah tertentu dapat
mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang tepat bergantung pada
masalah yang akan diprogram.
a. Struktur pengulangan dengan For
Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua
dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini,
meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa
banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut
sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan.
Contoh :
Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, .., 19.
Buatlah flowchart untuk mencetak anggota himpunan tersebut.
Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart . Bagaimana menurut
kalian jawabannya? Marilah kita uraikan jalannya fowchart tersebut. Pada flowchart, setelah
Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang disebut
inisialisasi . Kita memberi nilai awal untuk A = 1. Variabel counter-nya adalah X dengan nilai
awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya adalah 1). Ketika
masuk ke badan loop untuk pertama kali maka akan dicetak langsung nilai variabel A. Nilai
variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan A = A + 2.
Pernyataan ini mungkin agak aneh, tapi ini adalah sesuatu yang pemrograman. Arti dari
pernyataan ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A lama ditambah
2. Sehingga A akan bernilai 3. Kemudian dilakukan pengulangan yang ke-dua. Pada kondisi ini
nilai A adalah 3, sehingga yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita
ganti dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga output
dari flowchart ini adalah 1,3, 5, 7, .., 19.
b. Struktur pengulangan dengan While
Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal
(start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu
pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban dari
permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan
struktur yang didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang
berbeda.
Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While
bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting
sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang.
Penyelesaian: Perhatikan Gambar 5.20. bisakah kalian menentukan hasil dari flowchart
tersebut? Perhatikan tahapan eksekusi flowchart berikut ini.
1. Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua variabel tersebut
kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum proses loop terjadi. Variabel A adalah
variabel counter.
2. Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (< 10). Jika Ya maka
perintah berikutnya dieksekusi, jika tidak maka program akan berhenti. Pada awal eksekusi ini
kondisi akan terpenuhi karena nilai A= 1.
3. Jalankan perintah Print B.
4. Nilai variabel A kemudian diganti dengan nilai A lama (1) ditambah 2. Sehingga nilai variabel A
baru adalah 3. Sedangkan nilai variabel B = 9 (hasil perkalian A = 3).
Program akan berputar kembali untuk memeriksa apakah nilai variabel A masih lebih kecil dari
10. Pada kondisi ini nilai A = 3, sehingga kondisi masih terpenuhi. Kemudian langkah berulang
ke langkah ke 3. Begitu seterusnya sampai nilai variabel A tidak lagi memenuhi syarat kurang
dari 10.

Latihan soal
1. Sebutkan penyajian algoritma?
2. Apa fungsi symbol connector pada symbol flowcart?
3. Sebutkan symbol – symbol flowchart!
4. Apa yang Anda ketahui tentang struktur pengulangan dengan for?
5. Apakah perbedaan inisialisasi dengan terminasi?

Jawaban
1. Tulisan dan gambar
2 Connector : Notasi ini digunakan untuk menunjukkan sambungan dari flowchart yang terputus
di halaman yang sama atau halaman berikutnya.
3. Terminator, Aliran data, input / output, proses, percxabangan, preparation, predefined process,
connector
4 Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua
dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini,
meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa
banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut
sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan.
5. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian
insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan terminasi
adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Juli 2017


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan
potensi diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional,
regional, dan internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang
lazim dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja
Teknik Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.2 Memahami perangkat lunak bahasa pemrograman
4.2 Melakukan Instalasi perangkat lunak bahasa pemrograman
C. Indikator Pencapaian Kompetensi
3.2 Memahami perangkat lunak bahasa pemrograman
3.2.1 Memahami peralatan perangkat lunak pada bahasa pemrograman komputer
3.2.2 Menyebutkan / menulis perangkat lunak pada bahasa pemrograman komputer

4.2 Melakukan Instalasi perangkat lunak bahasa pemrograman


4.2.1 Mengoperasikan instalasi perangkat lunak bahasa pemrograman
4.2.2 Menyusun instalasi perangkat lunak bahasa pemrograman
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memahami perangkat lunak bahasa
pemrograman dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menulis perangkat lunak bahasa
pemrograman dengan tepat

1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengoperasikan instalasi perangkat
lunak bahasa pemrograman dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menyusun instalasi perangkat lunak
bahasa pemrograman dengan tepat

D. Materi Pembelajaran
Perangkat lunak bahasa pemrograman
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Discovery Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Pemberian rangsangan
1. Guru meminta peserta didik untuk melihat materi di layar komputer tentang
perangkat lunak bahasa pemrograman
2. Guru meminta peserta didik untuk membaca buku panduan yang lainnya
agar dapat mudah dipahami
3. Peserta didik dapat mengidentifikasi masalah dari materi yang disajikan oleh
guru
Identifikasi masalah
1. Guru menugaskan peserta didik untuk memahami, menulis, mengoperasikan,
dan menyusun instalasi perangkat lunak bahasa pemrograman
2. Pesera didik berusaha untuk dapat memahami, menulis, mengoperasikan, dan
menyusun instalasi perangkat lunak bahasa pemrograman
3. Setelah peserta didik membaca buku panduan yang lainnya peserta didik
dapat memahami, menulis, mengoperasikan, dan menyusun instalasi
2 Kegiatan Inti perangkat lunak bahasa pemrograman
4. Peserta didik mendiskusikan dengan kelompok yang lainnya tentang
memahami, menulis, mengoperasikan, dan menyusun instalasi perangkat
lunak bahasa pemrograman
5. Peserta didik menyampaikan hasil diskusi di depan kelas, kelompok yang
lainnya memberikan tanggapan
Pengumpulan data
1. Guru meminta peserta didik untuk mencari buku panduan atau informasi
memahami, menulis, mengoperasikan, dan menyusun instalasi perangkat
lunak bahasa pemrograman
2. Peserta didik mencoba memahami, menulis, mengoperasikan, dan menyusun
instalasi perangkat lunak bahasa pemrograman petunjuk dari guru sebagai
pembuktian pengujian hipotesis
Pembuktian
1. Peserta didik memahami, menulis, mengoperasikan, dan menyusun instalasi
perangkat lunak bahasa pemrograman
2. Guru meminta peserta didik untuk menilai hasil yang telah dibuat oleh
peserta didik yang lainnya
3. Peserta didik menilai berdasar kan format peni laian yang sudah ada
Menarik Simpulan
1. Guru menjelaskan kepada peserta didik tentang memahami, menulis,
mengoperasikan, dan menyusun instalasi perangkat lunak bahasa
pemrograman
2. Guru menugaskan peserta didik un tuk memahami, menulis,
mengoperasikan, dan menyusun instalasi perangkat lunak bahasa
pemrograman
3. Peserta didik mengerjakan tugas dari guru untuk memahami, menulis,
mengoperasikan, dan menyusun instalasi perangkat lunak bahasa
pemrograman
4. Peserta didik yang lain menanggapi kesimpulan dari peserta didik yang
sedang maju untuk mempresentasikan hasilnya
5. Peserta didik memperbaiki hasil presentasi berdasarkan tanggapan dari
temannya
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
instalasi perangkat lunak bahasa pemrograman
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
instalasi perangkat lunak bahasa pemrograman
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Bahasa Pemrograman- Perangkat lunak bahasa pemrograman (language software) merupakan
program yang digunakan untuk menerjemahkan perintah-perintah yang ditulis dalam bahasa
program ke dalam bahasa mesin (machine languange), sehingga dapat diterima dan dimengerti oleh
komputer. Apabila languange software tidak tersedia, maka pembuat program harus menulis
programnya langsung dengan bahasa mesin yang berbentuk bilangan-bilangan binary. Suatu
instruksi program yang ditulis dalam bahasa mesin dapat berbentuk seperti 000100110010. Tanpa
mengetahui arti tertentu dari masing-masing bagian dari bilangan binary tersebut secara persis,
maka akan sangat sulit untuk mengerti dengan benar maksud dari instruksi tersebut.
Instruksi yang berbentuk bilangan binary disebut dengan object code. Sedangkan kumpulan dari
instruksi-instruksi yang membentuk suatu program dalam bahasa mesin disebut dengan object
program. Tiap-tiap instruksi object code terdiri dari operation code (op code) dan open and.
Penulisan program dengan bahasa mesin dirasakan terlalu sulit dan memakan banyak waktu, maka
dikembangkan languange software sebagai alternatif penulisan program yang lebih mudah.
Penerjemah bahasa pemrograman dibedakan menjadi 3 (tiga) macam, yaitu assembler, kompiler,
dan interpreter.
1) Asembler adalah program yang digunakan untuk menerjemahkan kode sumber dalam bahasa
rakitan (assembly) ke dalam bahasa mesin.
2) Kompiler adalah program penerjemah yang mengonversi semua kode sumber selain dalam
bahasa rakitan menjadi kode objek. Hasil berupa kode objek inilah yang dapat dijalankan oleh
komputer. Proses untuk melakukan penerjemahan ini biasa disebut kompilasi.
3) Intepreter adalah program yang menerjemahkan satu per satu instruksi dalam kode sumber
kemudian menjalankan instruksi yang telah diterjemahkan tersebut.
Perangkat lunak bahasa pemrograman (language software) merupakan program yang digunakan
untuk menerjemahkan perintah-perintah yang ditulis dalam bahasa program ke dalam bahasa
mesin sehingga dapat diterima dan dimengerti oleh komputer. Pada dasarnya bahasa komputer
dapat dibedakan menjadi empat macam, yaitu bahasa mesin dan bahasa assembly (kedua bahasa
ini termasuk bahasa tingkat rendah/low level language), bahasa tingkat tinggi (high level language),
dan bahasa generasi keempat.
1) Bahasa mesin
Bahasa mesin termasuk ke dalam bahasa tingkat rendah (low level language) karena sifat dari
bahasa mesin lebih berorientasi pada mesin. Bahasa ini hanya akan dipahami oleh komputer itu
sendiri. Bahasa ini berupa kode-kode yang terdiri dari sekumpulan angka yang ada di dalam
komputer yang biasanya diwakili oleh kode angka 1 (satu) dan 0 (nol). Kode ini merupakan sinyal
elektronik yang memberitahu komputer apa yang harus dikerjakan. Dalam penggunaannya biasanya
intruksi dituliskan dalam bentuk bahasa pemrograman yang akan disampaikan ke kompiler,
assembler, atau interpreter yang bertugas untuk menerjemahkan bahasa pemrograman tadi ke
bahasa mesin.
Assembler merupakan sebuah program. Program ini mengambil informasi yang dituliskan oleh
programmer dalam bahasa assembly dan menerjemahkannya ke sebuah program yang dapat
dieksekusi komputer. output assembler harus diproses oleh linker untuk menghasilkan program
akhir.
2) Bahasa assembly
Bahasa asembly adalah bahasa pemrograman yang menggunakan bahasa rakitan. Bahasa assembly
kebanyakan digunakan untuk pengendalian hardware yang diwujudkan dalam kependekan kata-
kata sebagai pengganti kode-kode biner, misalnya JNZ (jump non zero) yang artinya lompatlah jika
tidak sama dengan nol. Kelanjutan dari bahasa assembly adalah sebuah program yang berguna
untuk mengambil informasi yang dituliskan oleh seorang programmer dalam bahasa assembly serta
menerjemahkannya ke dalam sebuah program yang dapat dieksekusi oleh komputer, program ini
dinamakan assembler. Output assembler harus diproses oleh linker untuk menghasilkan program
akhir.
3) Bahasa tingkat tinggi (high level languange)
Bahasa tingkat tinggi memiliki arti bahwa bahasa ini lebih mudah dimengerti oleh banyak orang
karena memang dirancang untuk orang yang awam. Bahasa pemrograman yang termasuk dalam
bahasa tingkat tinggi adalah sebagai berikut.
a) BASIC (Beginners All-purposes Symbolic Instruction Code)
Bahasa program ini dikembangkan pada tahun 1965 di Darmouth College. Penciptanya adalah John
Kemeny dan Thomas Kurtz. BASIC dipergunakan dalam aplikasi matematika. Selain itu, BASIC juga
digunakan dalam beberapa aplikasi lainnya seperti akuntasi, permainan, file simulasi, dan lain-lain.
Keunggulan BASIC terletak pada kemudahan dalam pemakaiannya, sedangkan kelemahannya
adalah tidak mendukung operasi bilangan kompleks dan penanganan terhadap berkas sangat
terbatas sehingga tidak cocok untuk aplikasi bisnis.
b) LOGO
Bahasa ini dikembangkan untuk pendidikan dan simulasi pengajaran pada anak-anak dalam
menyelesaikan masalah dan melakukan pemrograman. Ditemukan pada tahun 1967 oleh Seymour
Papert dengan menggunakan LISP, yaitu satu jenis bahasa pemrograman untuk kecerdasan buatan.
Logo sangat mudah digunakan untuk membuat gambar, sehingga banyak digunakan dalam
menghasilkan laporan-laporan bisnis dalam bentuk grafik.
c) COBOL (Common Business Oriented Language)
Program jenis ini sering digunakan dalam dunia bisnis dan komersial, mulai dikembangkan pada
tahun 1959. Namun sampai saat ini, program ini masih banyak digunakan pada jenis komputer
minicomputer dan mainframe. COBOL memiliki keunggulan-keunggulan sebagai berikut.
1) Memiliki kode untuk semua flatform yang sama, sehingga tidak tergantung pada mesin.
2) Menggunakan kata-kata bahasa Inggris, sehingga sangat mudah dipahami oleh programmer.
3) Penanganan masukan dan keluaran mudah dilakukan.
4) Penanganan terhadap berkas sudah tersedia dan bahkan mendukung berbagai macam tipe-
tipe berkas seperti sekuensial dan indeks.
Kelemahan dari bahasa ini adalah struktur penulisan program yang sangat banyak dan sangat
kaku sehingga membuat programmer menjadi lelah dan bosan.
d) PASCAL
Bahasa ini ditemukan oleh Nicklaus Wirth tahun 1971. Bahasa ini dibuat untuk pengajaran
pemrograman. Bahasa ini sangat populer di kalangan mahasiswa ilmu komputer dan teknik.
Pascal memiliki keunggulan dibandingkan Fortran maupun Basic, yaitu sangat mudah
dipelajari serta memiliki dukungan fungsi-fungsi matematika yang sangat lengkap. Namun
Pascal juga memiliki kelemahan, yaitu tidak dapat mendukung operasi bilangan kompleks dan
tidak mendukung sarana aplikasi bisnis. Keberadaan Pascal dapat pula dijadikan bahasa dasar
dalam pembuatan kode perangkat lunak Delphi (software untuk pengembangan program di
lingkungan Windows). Pascal juga digunakan sebagai landasan pembuatan kode pada Kylix,
yaitu software pengembang program di lingkungan Linux.
e) Fortran (Formula Translator)
Fortran merupakan bahasa tingkat tinggi yang pertama kali diciptakan. Bahasa ini mulai
dikembangkan pada tahun 1956 oleh John Backus di IBM. Fortran digunakan dalam bidang
aplikasi matematika, yaitu dalam hal perumusan dan perhitungan sehingga menjadi andalan
keunggulan dari bahasa ini. Namun Fortran memiliki kelemahan, yaitu operasi masukan dan
keluarannya sangat kaku dan sulit dipahami. Untuk membuat bahasa fortran, seorang
programmer tidak harus mengetahui bahasa mesin, tetapi harus memahami tata bahasa dan
peraturan bahasa fortran.
f) Algol (Algoritma Language)
Algol merupakan bahasa automatic yang cocok untuk memecahkan permasalahan yang
membutuhkan perhitungan numerik untuk beberapa pengolahan logic.
g) PL/1 (Programming Language)
Programming language merupakan bahasa komputer yang dapat digunakan dalam segala
bahasa. Pada kenyataannya bahasa ini sulit dipelajari dan hanya dapat digunakan pada mesin
IBM.
h) RPG (Report Program Generation)
RPG adalah program untuk pengolahan laporan. Bahasa ini sangat populer di lingkungan
minicomputer dan mainframe IBM. RPG diluncurkan pertama kali pada tahun 1964.
i) APL (Aritmathic Programming Language)
APL adalah bahasa komputer untuk memecahkan soal-soal matematika (ilmu hitung).
Diperkenalkan dan diciptakan oleh Kenneth Iverson pada tahun 1962. Bahasa ini
menggunakan keyboard khusus yang berisikan simbol-simbol yang kompleks yang
memungkinkan untuk melakukan penyelesaian matematika yang kompleks.
4) Bahasa pemrograman generasi keempat
Bahasa pemrograman generasi keempat meliputi Microsoft Visual Basic, Visual J++, dan Visual
C++ yang dikembangkan dari keluarga besar bahasa tingkat tinggi untuk memudahkan
pemrograman.

Latihan soal
1. Apakah yang dimaksd dengan bahasa pemrograman?
2. Apakah yang dimaksud dengan object program?
3. Sebutkan penerjemah bahasa pemrograman!
4. Sebutkan keunggulan mini computer dan main frame COBOL?
5. Apakah kelemahan dari fortran?

Jawaban
1. Merupakan program yang digunakan untuk menerjemahkan perintah-perintah yang ditulis dalam
bahasa program ke dalam bahasa mesin (machine languange), sehingga dapat diterima dan
dimengerti oleh komputer
2. Kumpulan dari instruksi-instruksi yang membentuk suatu program dalam bahasa mesin
3. Assembler, kompiler, dan interpreter.
4. Komputer minicomputer dan mainframe. COBOL memiliki keunggulan-keunggulan sebagai
berikut.
1) Memiliki kode untuk semua flatform yang sama, sehingga tidak tergantung pada mesin.
2) Menggunakan kata-kata bahasa Inggris, sehingga sangat mudah dipahami oleh programmer.
3) Penanganan masukan dan keluaran mudah dilakukan.
5. Fortran memiliki kelemahan, yaitu operasi masukan dan keluarannya sangat kaku dan sulit
dipahami

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Agustus
2017
Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.3 Menerapkan alur pemrograman dengan struktur bahasa pemrograman komputer
4.3 Menulis kode pemrograman sesuai dengan aturan dan sintaks bahasa pemrograman
C. Indikator Pencapaian Kompetensi
3.3 Menerapkan alur pemrograman dengan struktur bahasa pemrograman komputer
3.3.1 Mempraktekkan alur pemrograman dengan struktur bahasa pemrograman komputer
3.3.2 Mendemonstrasikan / membuat alur pemrograman dengan struktur bahasa pemrograman
komputer

4.3 Menulis kode pemrograman sesuai dengan aturan dan sintaks bahasa pemrograman
4.3.1 Mengetahui kode – kode pemrograman dengan struktur bahasa pemrograman komputer
4.3.2 Memodifikasi kode – kode pemrograman dengan struktur bahasa pemrograman komputer

Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan alur pemrograman denga
bahasa pemrograman komputer dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan alur pemrograman denga
bahasa pemrograman komputer dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode pemrograman sesuai deng
sintaks bahasa pemrograman dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode pemrograman sesuai den
sintaks bahasa pemrograman dengan tepat
D. Materi Pembelajaran
Kode dan alur pemrograman dengan struktur bahasa pemrograman komputer
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Discovery Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Pemberian rangsangan
1. Guru meminta peserta didik untuk melihat materi di layar komputer tentang
alur pemrograman dengan struktur bahasa pemrograman komputer
2. Guru meminta peserta didik untuk membaca buku panduan yang lainnya agar
dapat mudah dipahami
3. Peserta didik dapat mengidentifikasi masalah dari materi yang disajikan oleh
guru
Identifikasi masalah
1. Guru menugaskan peserta didik untuk mendemonstrasikan, mempraktekkan,
mengubah dan memodifikasi kode pemrograman sesuai dengan aturan
sintaks bahasa pemrograman
2. Pesera didik berusaha untuk dapat mendemonstrasikan, mempraktekkan,
mengubah dan memodifikasi kode pemrograman sesuai dengan aturan
sintaks bahasa pemrograman
2 Kegiatan Inti 3. Setelah peserta didik membaca buku panduan yang lainnya peserta didik
dapat mendemonstrasikan, mempraktekkan, mengubah dan memodifikasi
kode pemrograman sesuai dengan aturan sintaks bahasa pemrograman
4. Peserta didik mendiskusikan dengan kelompok yang lainnya tentang
mendemonstrasikan, mempraktekkan, mengubah dan memodifikasi kode
pemrograman sesuai dengan aturan sintaks bahasa pemrograman
5. Peserta didik menyampaikan hasil diskusi di depan kelas, kelompok yang
lainnya memberikan tanggapan
Pengumpulan data
1. Guru meminta peserta didik untuk mencari buku panduan atau informasi
tentang mendemonstrasikan, memprak tekkan, mengubah dan memodifikasi
kode pemrograman sesuai dengan aturan sintaks bahasa pemrograman
2. Peserta didik mencoba mendemonstrasikan, mempraktekkan, mengubah dan
memodifikasi kode pemrograman sesuai dengan aturan sintaks bahasa
pemrograman petunjuk dari guru sebagai pembuktian pengujian hipotesis
Pembuktian
1. Peserta didik mampu mendemonstrasikan, mempraktekkan, mengubah dan
memodifikasi kode pemrograman sesuai dengan aturan sintaks bahasa
pemrograman
2. Guru meminta peserta didik untuk menilai hasil yang telah dibuat oleh
peserta didik yang lainnya
3. Peserta didik menilai berdasarkan format penilaian yang sudah ada
Menarik Simpulan
1. Guru menjelaskan kepada peserta didik tentang mendemonstrasikan,
mempraktekkan, mengubah dan memodifikasi kode pemrograman sesuai
dengan aturan sintaks bahasa pemrograman
2. Guru menugas kan peserta didik un tuk mende monstrasikan,
mempraktekkan, mengubah dan memodifikasi kode pemrograman sesuai
dengan atu ran sintaks bahasa pemrograman
3. Peserta didik mengerjakan tugas dari guru untuk mendemonstrasikan,
mempraktekkan, mengubah dan memodifikasi kode pemrograman sesuai
dengan aturan sintaks bahasa pemrograman
4. Peserta didik yang lain menanggapi kesimpulan dari peserta didik yang
sedang maju untuk mempresentasikan hasilnya
5. Peserta didik memperbaiki hasil presentasi berdasarkan tanggapan dari
temannya
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
kode dan alur bahasa pemrograman
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup 15 Menit
individu untuk mengerjakannya.
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang kode
dan alur bahasa pemrograman 5.Guru mengakhiri kegiatan belajar dengan
memberikan pesan pada peserta didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar.
Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa
Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode
pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk
menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma
disajikan dengan gambar, yaitu dengan Flowchart
B. Flowchart (Diagram Alir)
Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam
suatu program secara logika.
Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk
notasi-notasi tertentu. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan
demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan
dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk
melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di samping itu
flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja
dalam tim suatu proyek.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa
anjuran:
1) Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses
menjadi singkat.
2) Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
3) Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Berikut merupakan beberapa contoh simbol flowchart yang disepakati olehdunia pemrograman
Pengertian Simbol Flowchart:
1. Terminator : Notasi ini digunakan untuk menunjukkan awal dan akhir suatu algoritma
2. Aliran data : Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran
data dari proses satu ke proses lainnya.
3. Input / Output : Notasi ini disebut Data yang digunakan untuk mewakili data input atau output
atau menyatakan operasi pemasukan data dan pencetakan hasil.
4. Proses : Notasi ini disebut Process yang digunakan untuk mewakili suatu proses.
5. Percabangan : Notasi ini disebut Decision yang digunakan untuk suatu pemilihan,
penyeleksian kondisi di dalam suatu program
6. Preparation : Notasi ini digunakan untuk memberi nilai awal, nilai akhir, penambahan /
pengurangan bagi suatu variable counter.
7. Predefined Process / Call : Notasi ini digunakan untuk menunjukkan suatu operasi yang
rinciannya ditunjukkan ditempat lain (prosedur, sub-prosedur, fungsi)
8. Connector : Notasi ini digunakan untuk menunjukkan sambungan dari flowchart yang
terputus di halaman yang sama atau halaman berikutnya.
9. Off page Connector : Penghubung bagian-bagian flowchart yang berada pada halaman
berbeda

Contoh Flowchart :
Problem: Menghitung luas persegi panjang
Algoritma:
Masukkan panjang (p)
Masukkan lebar (l)
Hitung luas (L), yaitu panjang kali lebar
Cetak luas (L)
Algoritma Pemrograman :
<?php
$panjang =6;
$lebar =5;
$luas= $panjang*$lebar;
echo "Jadi Luas Persegi Panjang adalah . $luas";
?>

A. Struktur Dasar Algoritma


Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat
berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau
kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
1) Struktur Runtunan / Beruntun : Digunakan untuk program yang pernyataannya sequential atau
urutan.
2) Struktur Pemilihan / Percabangan : Digunakan untuk program yang menggunakan pemilihan
atau penyeleksian kondisi.
3) Struktur Perulangan : Digunakan untuk program yang pernyataannya akan dieksekusi berulang-
ulang.

1. Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan
(sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan
(looping). Sebuah algoritma biasanya akan menggabungkan ketiga
buah struktur ini untuk menyelesaikan masalah. Pada bagian ini kita akan bahas lebih dulu
struktur algoritma berurutan. Struktur berurutan dapat kita samakan dengan mobil yang sedang
berjalan pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar
disamping Mobil tersebut akan melewati kilometer demi kilometer jalan sampai tujuan
Algoritma Runtunan tercapai
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yaitu sebuah
instruksi dieksekusi setelah instruksi sebelumnya selesai dieksekusi. Urutan instruksi
menentukan keadaan akhir dari algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin
juga berubah. Menurut Goldshlager dan Lister (1988) struktur berurutan mengikuti ketentuan-
ketentuan sebagai berikut:
a. Tiap instruksi dikerjakan satu persatu
b. Tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang
c. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang
tertulis di dalam algoritmanya
d. Akhir dari instruksi terakhir merupakan akhir algoritma.
2. Struktur Algoritma Percabangan
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-
kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan
program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan
atau keputusan.
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi
yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus
digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil
pengujian akan menentukan cabang mana yang akan ditempuh.

3. Struktur Algoritma Perulangan / Pengulangan


Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang
berkali.Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada
gambar ini Mobil-mobil peserta harus mengelilingi lintasan sirkuit berkali-kali sesuai yang
ditetapkan dalam aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang
menang.

Struktur pengulangan terdiri dari dua bagian :


1. Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan.
Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar
(true) atau salah (false)
2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang.
Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian terminasi.
Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
Bagian insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan
terminasi adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan. Ada
beberapa bentuk pengulangan yang dapat digunakan, masing-masing dengan syarat dan
karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada
bentuk yang hanya cocok untuk kasus tertentu saja. Pemilihan bentuk pengulangan untuk
masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan
yang tepat bergantung pada masalah yang akan diprogram.
a. Struktur pengulangan dengan For
Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua
dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini,
meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu
seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa
disebut sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan.
Contoh :
Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, .., 19.
Buatlah flowchart untuk mencetak anggota himpunan tersebut.
Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart . Bagaimana menurut
kalian jawabannya? Marilah kita uraikan jalannya fowchart tersebut. Pada flowchart, setelah
Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang disebut
inisialisasi . Kita memberi nilai awal untuk A = 1. Variabel counter-nya adalah X dengan nilai
awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya adalah 1). Ketika
masuk ke badan loop untuk pertama kali maka akan dicetak langsung nilai variabel A. Nilai
variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan A = A + 2.
Pernyataan ini mungkin agak aneh, tapi ini adalah sesuatu yang pemrograman. Arti dari
pernyataan ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A lama ditambah
2. Sehingga A akan bernilai 3. Kemudian dilakukan pengulangan yang ke-dua. Pada kondisi
ini nilai A adalah 3, sehingga yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A
kita ganti dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga
output dari flowchart ini adalah 1,3, 5, 7, .., 19.
a. Struktur pengulangan dengan While
Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai
awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita
tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban
dari permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan
struktur yang didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang
berbeda.
Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While
bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting
sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang.
Penyelesaian: Perhatikan Gambar 5.20. bisakah kalian menentukan hasil dari flowchart
tersebut? Perhatikan tahapan eksekusi flowchart berikut ini.
1. Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua variabel tersebut
kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum proses loop terjadi. Variabel A adalah
variabel counter.
2. Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (< 10). Jika Ya maka
perintah berikutnya dieksekusi, jika tidak maka program akan berhenti. Pada awal eksekusi ini
kondisi akan terpenuhi karena nilai A= 1.
3. Jalankan perintah Print B.
4. Nilai variabel A kemudian diganti dengan nilai A lama (1) ditambah 2. Sehingga nilai variabel A
baru adalah 3. Sedangkan nilai variabel B = 9 (hasil perkalian A = 3).
Program akan berputar kembali untuk memeriksa apakah nilai variabel A masih lebih kecil dari
10. Pada kondisi ini nilai A = 3, sehingga kondisi masih terpenuhi. Kemudian langkah
berulang ke langkah ke 3. Begitu seterusnya sampai nilai variabel A tidak lagi memenuhi syarat
kurang dari 10.

Latihan soal
1. Sebutkan penyajian algoritma?
2. Apa fungsi symbol connector pada symbol flowcart?
3. Sebutkan symbol – symbol flowchart!
4. Apa yang Anda ketahui tentang struktur pengulangan dengan for?
5. Apakah perbedaan inisialisasi dengan terminasi?

Jawaban
1. Tulisan dan gambar
2 Connector : Notasi ini digunakan untuk menunjukkan sambungan dari flowchart yang terputus
di halaman yang sama atau halaman berikutnya.
3. Terminator, Aliran data, input / output, proses, percxabangan, preparation, predefined process,
connector
4 Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua
dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini,
meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa
banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut
sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan.
5. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian
insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan terminasi
adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan

Penskoran
No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Agustus
2017
Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.4 Menerapkan penggunaan tipe data, variabel, konstanta, operator, dan ekspresi
4.4 Membuat kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
C. Indikator Pencapaian Kompetensi
3.4 Menerapkan penggunaan tipe data, variabel, konstanta, operator, dan ekspresi
3.4.1 Mempraktekkan penggunaan tipe data, variabel, konstanta, operator, dan ekspresi
3.4.2 Mengetahui cara penggunaan tipe data, variabel, konstanta, operator, dan ekspresi
4.4 Membuat kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
4.4.1 Mengubah kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
4.4.2 Memodifikasi kode program dengan tipe data, variabel, konstanta, operator dan
ekspresi
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan penggunaan
tipe data, variable, konstanta, operator dan ekspresi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan penggunaan tipe
data, variable, konstanta, operator dan ekspresi dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode dengan tipe data,
variable, konstanta, operator dan ekspresi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode dengan tipe
data, variable, konstanta, operator dan ekspresi dengan tepat

D. Materi Pembelajaran
kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang pembuatan kode program dengan tipe data, variabel,
konstanta, operator dan ekspresi
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan Membuat kode program dengan tipe data,
variabel, konstanta, operator dan ekspresi
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
2 Kegiatan Inti peserta didik memahaminya
3. Guru mempraktekkan Membuat kode program dengan tipe data, variabel,
konstanta, operator dan ekspresi di depan peserta didik
4. Peserta didik memperhatikan dan mencoba praktek Membuat kode program
dengan tipe data, variabel, konstanta, operator dan ekspresi pemrograman
komputer sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara Membuat kode program dengan
tipe data, variabel, konstanta, operator dan ekspresi pemrograman komputer
dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam Membuat kode
program dengan tipe data, variabel, konstanta, operator dan ekspresi
pemrograman komputer
3. Guru memberitahukan jadwal Membuat kode program dengan tipe data,
variabel, konstanta, operator dan ekspresi pemrograman komputer kepada
peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah,, memodifikasi kode program dengan tipe data,
variabel, konstanta, operator dan ekspresi pemrograman komputer
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik mendemonstrasikan, mempraktekkan, mengubah,
memodifikasi kode program dengan tipe data, variabel, konstanta, operator
dan ekspresi pemrograman komputer
4. Guru memperhatikan peserta didik dalam mendemonstrasikan,
mempraktekkan, mengubah,, memodifikasi kode program dengan tipe data,
variabel, konstanta, operator dan ekspresi pemrograman komputer dan
mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat kode program dengan
tipe data, variabel, konstanta, operator dan ekspresi pemrograman komputer
3. Peserta didik mengamati penjelasan guru jika ada salah dalam membuat
kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
pemrograman komputer
4. Guru mengevaluasi dari hasil peserta didik dalam dalam membuat kode
program dengan tipe data, variabel, konstanta, operator dan ekspresi
pemrograman komputer
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
pemrograman komputer
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
kode program dengan tipe data, variabel, konstanta, operator dan ekspresi
pemrograman komputer
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
TIPE DATA, KONSTANTA, EKSPRESI, OPERATOR DAN VARIABEL PADA PASCAL
A. TIPE DATA
Tipe data biasanya digunakan untuk menentukan jenis nilai yang dapat ditampung oleh suatu
variabel, umumnya telah menyediakan tipe-tipe data yang sederhana (simple) maupun yang
terstruktur. Apabila kita membutuhkan tipe data yang belum tersedia, kita dapat mendefinisikan
sendiri tipe data baru yang disebut enumerated type.

Setiap data yang ada pada program pascal memiliki tipe data, baik berupa angka bulat (integer),
angka biasa (real), atau berupa karakter (char),(String) dan sebagainya.

Jenis - Jenis data yang di kenal dalam Bahasa Pascal yaitu :


 Tipe Data Sederhana
 Tipe Data Terstruktur
Tipe Data Sederhana
1. Bilangan bulat ( integer )
Tipe data ini menerima angka dan bisa dilakukan proses aritmatika. Tipe data ini adalah tipe data
bilangan bulat, yaitu Bilangan atau angka yang tidak memiliki titik desimal atau pecahan.
Contoh :
Program display_maxint;uses wincrt;
begin writeln (maxint)
end.
Hasilnya: 32.767
2. Bilangan biasa ( real )
Bilangan atau angka yang bisa memiliki titik desimal atau pecahan, Tipe data ini menerima
angka dan koma serta bisa dilakukan proses aritmatika.
Contoh :
a' 'B' '+', dsb.
3. Boolean
Boolean adalah tipe data yang hanya mempunyai dua kemungkinan, yaitu true dan false.
Biasanya digunakan untuk operasi logika dengan ungkapan AND, OR, atau NOT
Contoh :
Program display_bool;uses wincrt;
begin writeln(ord(true));
writeln(ord(false));
end.
Hasilnya: 1 0 3.2.
4. Karakter ( char )
Karakter adalah data tunggal yang mewakili semua huruf, simbol baca, dan juga simbol angka
yang tidak dapat dioprasikan secara matematis, misalnya: ’A’, ’B’, .....,’Z’, ’?’,’!’, dst. Tipe data
ini adalah tipe data yang menerima kumpulan karakter (huruf, angka, symbol) tipe data ini tidak
bisa dilakukan proses aritmatika.

5. String
String adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata
atau satu kalimat, yang biasanya diapit oleh dua tanda kutip. Tipe data yang menerima kumpulan
karakter (huruf, angka, symbol) tipe data ini tidak bisa dilakukan proses aritmatika
Tipe Data Terstruktur
1. Array
Array atau lark adalah tipe terstruktur yang mempunyai komonen dalam jumlah yang tetap dan
setiap komponen mempunyai tipe data yang sama. Posisi masing-masing komponen dalam array
dinyatakan sebagi nomor index.
Contoh:
Type
Tipe_saya=array[1..100] of integer
Var
Var_baru : tipe_saya;
2. Record
Definisi Record hampir sama dengan Array, tetapi yang membedakan antara keduanya adalah
kalau Array semua komponennya bertipe data yang sama sedangkan Record setiap
komponennya bisa bertipe data yang beda-beda.
Contoh:
TYPE my_rec = RECORD
Nama : STRING[90]; Npm : STRING[ 8] ;
Nilai : REAL;
END;
VAR
Data nya : my re c;

3. Set
Himpunan (set) adalah kumpulan obyek yang mempunyai tipe data yang sama dan urutan
penulisannya tidak diperhatikan. Setiap obyek dalam suatu himpunan disebut dengan anggota
atau elemen himpunan.
Contoh:
TYPE irama = (JAZZ, POP, ROCK ,DANGDUT, SKA);
Musik = SET OF irama;
VAR
Jenis musik : Musik;
4. File
File (Berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang jumlahnya
tidak tertentu, dan biasanya tersimpan dalam suatu media penyimpan luar
Tipe Data Penunjuk
Pointer
Tipe data pointer merupakan tipe data yang berbeda dengan yang lainnya. Semua tipe data yang
lainnya bersifat STATIS sedangkan tipe Pointer bersifat DINAMIS. Tipe ini merupakan tipe
data untuk suatu variabel, dimana isi variabel ini berupa alamat variabel lain, dalam artian
variabel pointer adalah variabel yang menunjuk nilai atau alamat variabel lainnya.
B. VARIABEL
Variabel adalah identifier yang berisi data yang dapat berubah-ubah nilainya di dalam program.
Variabel dapat disebut juga sebagai perubah nilai, yaitu sesuatu yang dapat digunakan untuk
menyimpan nilai, dimana nilai yang disimpan ini dapat selalu berubah-ubah.

JENIS-JENIS VARIABEL :
1. Boolean
Data boolean disebut juga data bilangan lojik. Tipe data boolean hanya mengenal dua buah nilai
yaitu benar (true) dan salah (false).
2. Integer
Data integrer merupakan nilai bilangan bulat dalam bentuk desimal misalnya 1, 2, 34, 765, 0, -
89, -70. tipe data integrer mempunyai ranah nilai yang tidak terbatas. Dalam Turbo Pascal
terdapat lima macam tipe data integrer, yaitu: byte, shorint, word, integer dan longint.
3. Real
Data real adalah data yang mengandung data desimal misalkan 3.65, 9.0876, 2.00, dan lain-lain.
Bilangan real juga dapat dituliskan dengan notasi E, yang artinya perpangkatan sepuluh.
Misalnya 230.40E32 artinya 230.40 x10³².
4. Karakter (char)
Data karakter ditulis dengan menggunakan tanda petik ( “ “ ) misalkan “A” ,”@”, “z”, “#”, “1”,
“-234”, “+”, “<” dan lain-lain. Tapi perlu diperhatikan “9” adalah karakter tetapi jika di tulis 9
maka tipenya menjadi integer. Maka sarat mutlak menulisan karakter harus menggunakan tanda
baca petik ( “ “ ).
5. String
Data string adalah untaian karakter-karakter dengan panjang tertentu yang terletak diantara tanda
petik tunggal. nilai data string akan menepati memori sebesar banyaknya karakter stringnya
ditambah dengan 1 byte. Contoh dari data sring adalah seperti ‘teknik’, ‘informatika’, ‘9876151’
dan sebagainya.
6. Pointer
Pointer adalah suatu variabel yang berisi alamat yang akan disimpan pada
memori.
7. Ordinal
ordinal adalah tipe data yang merupakan subset dari tipe data sederhana (tipe data standart dan
tipe data yang di definisikan sendiri oleh pemakai). Yang dimaksud dengan tipe data sederhana
adalah semua tipe data kecuali tipe data riel. Jadi yang termasuk tipe data ordinal adalah tipe
data stendart (integer, shortint, longit, byte, word, boolean, dan chart), dan tipe data yang
didefinisikan sendiri oleh pemakai

Pemberian nama variabel harus mengikuti aturan yang ditetapkan oleh bahasa pemrograman
yang kita gunakan. Namun secara umum ada aturan yang berlaku untuk hampir semua bahasa
pemrograman. Aturan-aturan tersebut yaitu:
 Nama variabel harus diawali dengan huruf.
 Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan karakter
underscore (_).
 Nama variabel tidak boleh mengandung karakter-karakter khusus, seperti : .,+, -, *, /, <, >, &, (, )
dan lain-lain.
 Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa pemrograman

C. KONSTANTA
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi konstanta
adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai datanya sepanjang
program berjalan tidak berubahubah, maka sebuah varibel lebih baik diperlakukan sebagai
konstanta. Pada sebuah kode program, biasanya nilai data dari konstanta diberikan langsung di
bagian deklarasi konstanta. Sedangkan untuk variabel biasanya hanya ditentukan nama variabel
dan tipe datanya tanpa isian nilai data. Aturan penamaan variabel juga berlaku untuk penamaan
konstanta. Demikian juga aturan penetapan tipe data. konstanta dibagi menjadi 4 :
 Konstanta integer, berupa integer biasa, integer panjang (long int) dan integer tak bertanda
(unsigned integer). Nilainya dapat berupa desimal, oktal atau hexadesimal
 Konstanta floating point, dapat mengandung nilai pecahan, yang biasa ditulis dalam bentuk
pecahan biasa maupun bentuk eksponensial dan selalu dinyatakan dalam double, kecuali jika
diakhiri dengan F atau f (menyatakan konstanta float).
 Konstanta string, merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik
ganda (“…“). Juga dapat mengandung karakter yang menggunakan tanda \ yang disebut karakter
escape (escape sequence).
 Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik tunggal (‘…’). Beberapa
konstanta karakter dapat diawali dengan tanda \ (penempatannya setelah tanda petik tunggal).
Sebagai contoh, jika kita membuat program perhitungan matematik yang menggunakan nilai
pi (3.14159) yang mungkin akan muncul dibanyak tempat pada kode program, kita dapat
membuat pi sebagai konstanta. Penggunaan konstanta pi akan lebih memudahkan penulisan
kode program dibanding harus mengetikkan nilai 3.14159 berulang-ulang.
Konstanta digunakan apabila anda sering menggunakan suatu nilai konstanta secara
berulang-ulang dalam kode anda, dan anda tidak ingin kerepotan untuk mengetikkan nilai
konstanta itu terus menerus.
Untuk membuat sebuah konstanta pada dasarnya sama sepertUntuk membuat sebuah konstanta
pada dasarnya sama seperti Variabel.
const NamaKonstanta: JenisKonstanta := NilaiKonstanta;

D. EKSPRESI
Ekspresi adalah transformasi nilai menjadi keluaran yang dilakukan melalui suatu perhitungan
(komputasi).
Ekspresi terdiri atas operand dan operator, contoh ekspresi: “a + b”.Hasil Evaluasi dari sebuah
Ekpresi adalah nilai yang sesuai dengan type operand yang dipakai
MACAM – MACAM EKPRESI
Ø Ekspresi aritmatika
Ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga bertipe numerik.
· Ekspresi aritmatika memakai operator aritmatika.
Pada ekspresi aritmetik terdapat 2 buah operator yaitu :
· Operator biner, yaitu ekspresi yang operatornya membutuhkan 2 buah operand.
Contoh a+ b
· Operator Uner, yaitu “-” atau operator yang punya 1 operand contoh “-2”
Contoh 2. (Penulisan ekspresi dengan notasi algoritma)
T = 5/9 * (c + 32)
Z = (2*x + y) / (5 * w)
Y = 5((a+b) / (c*d) + m (p + q))

Ø Ekspresi Perbandingan/ Relasional


Ekspresi relasional adalah ekspresi dengan operator <, ≤, >, ≥, =, dan ≠, not, and, or dan xor
dengan menghasilkan nilai bertipe boolean (true atau false). Biasanya ekspresi Relasional
disebut ekspresi boolean.

Ø Ekspresi Logika (Menggunakan Operator Boolean)


Adalah sebuah perintah yang akan mengeksekusi suatu perintah apabila kondisi tertenti
terpenuhi.
Operator boolean digunakan untuk menghubungkan dua buah ekspresi logika. Pada kesempatan
ini operator boolean yang akan dibahas adalah AND dan OR.
Operator AND digunakan untuk menghubungkan dua buah ekspresi logika dan hasilnya
TRUE jika kedua ekspresi tersebut bernilai TRUE.

Operator
Logika I Lgika II Hasil Akhir
Boolean
FALSE FALSE FALSE
FALSE AND TRUE FALSE
TRUE FALSE FALSE
TRUE TRUE TRUE

Operator OR dipergunakan untuk menghubungkan dua buah ekspresi logika dan hasilnya bernilai
TRUE jika minimal salah satu ekspresi logika bernilai TRUE.

Logika Operator
Lgika II Hasil Akhir
I Boolean
FALSE FALSE FALSE
FALSE OR TRUE TRUE
TRUE FALSE TRUE
TRUE TRUE TRUE

Contoh01
1. Program PenerimaanPegawai;
2. Uses Crt;
3. Var Umur : Integer;
4. Ket : String;
5. Begin
6. ClrScr;
7. Write(‘Umur calon pegawai : ‘); Readln(Umur);
8. If (Umur >= 20) AND (Umur <= 30) THEN Ket:=’DITERIMA’
9. ELSE Ket:=’DITOLAK’;
10. Writeln(‘Status pegawai : ‘,Ket);
11. End.

E. OPERATOR
OPERATOR DALAM BAHASA PASCAL
Operator adalah simbol-simbol khusus yang digunakan untuk mengoperasikan suatu nilai data .
Tanda operasi (operator) di dalam bahasa Pascal dikelompokkan ke dalam beberapa kategori, yaitu

· Operator Boolean
Operator yang menyatakan suatu kondisi tertentu.
Macam dari operator boolean ini adalah:
NO OPERATOR ARTI
1 Not Hasil ouput akan bernilai 1 apabila semua masukan bernilai 0
2 And Hasil output akan bernilai 1 apabila semua masukan bernilai 1
3 Or Hasil output akan bernilai 1 apabila masulan salah satunya
bernilai1

 Assignment operator
Menggunakan simbol titik dua diikuti oleh tanda sama dengan (:=).
Contoh :
A:=B;
 Binary operator
Untuk mengoperasikan dua buah operand. Operand dapat berbentuk konstanta ataupun variabel.
Operator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe data integer dan
real.
Operator Operasi Tipe Operand Tipe Hasil
* perkalian real, realinteger, integerreal, integer realintegerreal
Div pembagian bulat integer,integer integer
/ pembagian real real,realinteger,integerreal,integer Realrealreal
Mod sisa pembagian integer,integer integer
+ pertambahan real,realinteger,integerreal,integer realintegerreal
- pengurangan real,realinteger,integerreal,real realintegerreal

Contoh :
15*5 hasilnya 75
20/3 hasilnya 6.6666666667E+00
div 3 hasilnya 6
20 mod 3 hasilnya 2
 Unary operator
Dapat berupa unary minus dan unary plus. Unary minus digunakan untuk menunjukkan nilai negatif,
baik pada operang numerik real maupun integer. Unaru plus adalah operator untuk memberai tanda
plus.
Lihat pada table berikut : (operator pada unary operator)
Operator Arti
+ (Plus) Positif
- (Minus) Negatif
Contoh :
-5 +7
-2.5 +2.5
 Relational operator
Membandingkan hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, yaitu
True atau False.
Operator-operator yang terlibat adalah :
= : sama dengan
> : lebih besar
< : lebih kecil
<> : tidak sama dengan
>= : lebih besar atau sama dengan
<= : kurang atau sama dengan
 Logical operator
Terdapat 4 buah logical operator yaitu : NOT, AND, OR dan XOR. Operator ini bekerja dengan nilai-
nilai logika, yaitu True dan False.
True:jika tipe integer bernilai tidak nol(0)
False jika tipe integer bernilai nol(0)

 Address operator
Operator ini berhubungan dengan alamat di memori, yaitu :
@ : Addriess-of Operator adalah alamat dari suatu nilai variabel.
^ : Indirection Operator adalahnilai di alamt yang ditunjukkan.
Operator ini akan digunakan pada pembahasan mengenai pointer.
 Set operator Digunakan untuk operasi himpunan
Operator Operasi
+ Union
- Perbedaan himpunan
* Perkalian himpunan

 String operator Digunakan untuk operasi string. Hanya ada sebuah operator string saja,
yaitu operator + yang digunakan untuk menggabungkan dua buah nilai string.
Contoh :
Nama1 := ‘Asa‘;
Nama2 := ‘Anugrah’;
Nama3 := Nama1 + Nama2;
LAMBANG-LAMBANG:
Perioritas Operator Keterangan
I () Tanda kurung
II ++ -- Increment, Decrement
III * / % Kali, bagi dan sisa
IV + - Tambah dan kurang
V = += -= *= /= %= Operator pemberi nilai aritmatika
VI ! Operator logika NOT
VII < > <= >= Operator relasional
VIII && || Operator logika DAN dan ATAU

Latihan soal
1. Apakah fungsi tipe data?
2. Sebutkan jenis – jenis tipe data!
3. Apakah yang dimaksud dengan string?
4. Apakah fungsi dari ekspresi logika?
5. Apa yang Anda ketahui tentang ,logika operator?

Jawaban
1. Untuk menentukan jenis nilai yang dapat ditampung oleh suatu variable
2. Tipe Data Sederhana dan tipe data terstruktur
3. Tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata atau satu
kalimat yang biasanya diapit oleh dua tanda kutip
4. Untuk menghubungkan dua buah ekspresi logika.
5. Logika operator Terdapat 4 buah logical operator yaitu : NOT, AND, OR dan XOR. Operator ini
bekerja dengan nilai-nilai logika, yaitu True dan False.
True:jika tipe integer bernilai tidak nol(0)
False jika tipe integer bernilai nol(0)

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Agustus
2017
Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.5 Menerapkan operasi aritmatika dan logika
4.5 Membuat kode program dengan operasi aritmatika dan logika
C. Indikator Pencapaian Kompetensi
3.5 Menerapkan operasi aritmatika dan logika
3.5.1 Memahami operasi aritmatika dan logika
3.5.2 Menghitung atau mempraktekkan operasi aritmatika dan logika

4.5 Membuat kode program dengan operasi aritmatika dan logika


4.5.1 Mengubah kode program dengan operasi aritmatika dan logika
4.5.2 Memodifikasi kode program dengan operasi aritmatika dan logika
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan operasi
aritmatika dan logika dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan operasi
aritmatika dan logika dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode pemrograman
dengan operasi aritmatika dan logika dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode
pemrograman dengan operasi aritmatika dan logika dengan tepat
D. Materi Pembelajaran
Operasi dan kode aritmatika dan logika
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang Membuat kode program dengan operasi aritmatika dan
logika
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan Membuat kode program dengan operasi
aritmatika dan logika
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan Membuat kode program dengan operasi aritmatika dan
2 Kegiatan Inti
logika di depan peserta didik
4. Peserta didik memperhatikan dan mencoba praktek Membuat kode program
dengan operasi aritmatika dan logika sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara Membuat kode program dengan
operasi aritmatika dan logika dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat kode
program dengan operasi aritmatika dan logika
3. Guru memberitahukan jadwal membuat kode program dengan operasi
aritmatika dan logika kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah,, memodifikasi kode program dengan operasi
aritmatika dan logika
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha mendemonstrasikan, mempraktekkan, mengubah,,
memodifikasi kode program dengan operasi aritmatika dan logika
4. Guru memperhatikan peserta didik dalam mendemonstrasikan,
mempraktekkan, mengubah, kode program dengan operasi aritmatika dan
logika dan mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat kode program dengan
operasi aritmatika dan logika
3. Peserta didik mengamati penjelasan guru jika ada salah dalam membuat
kode program dengan operasi aritmatika dan logika
4. Guru mengevaluasi dari hasil peserta didik dalam dalam membuat kode
program dengan operasi aritmatika dan logika
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
kode program dengan operasi aritmatika dan logika
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
kode program dengan operasi aritmatika dan logika
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
 Definisi Operator dan Operand
Operand adalah nilai atau data asal yang digunakan dalam suatu operasi. Operator dapat
didefinisikan sebagai simbol atau instruksi khusus yang digunakan untuk memanipulasi operand.
 Operator Relasional
Operator Relasional adalah operator yang digunakan untuk menentukan relasi atau hubungan
dari dua buah operand.
 Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk melakukan operasi-operasi
perhitungan aritmatika seperti penjumlahan, pengurangan, pembagian, perkalian dll. Dalam
bahasa pemrograman Pascal operator aritmatika dapat dibagi menjadi 2, yaitu :
1. Operator Aritmatika Unair
Operator aritmatika unair adalah operator aritmatika yang hanya melibatkan 1 operand saja.
2. Operator Aritmatika Biner
Operator aritmatika biner adalah operator aritmatika yang melibatkan 2 buah operand.

berikut ini adalah contoh program sederhana yang memanfaatkan operasi aritmatika pada
FreePascal:
Contoh :
Jika diketahui a = 1 dan b = 2. Buatlah program pada FreePascal untuk memperoleh hasil operasi
a+b!

Program Penjumlahan;
var a,b:integer;
begin
a:=1;
b:=2;
Writeln('a + b = ', a+b);
Write('Press any key to continue...');
Readln;
end.

Contoh 1 :
Diketahui sebuah persegi panjang dengan panjang 10 cm dan lebar 5 cm. Buatlah program
menggunakan FreePascal untuk menghitung luas dari persegi panjang tersebut!

Program LuasPersegi;
var p,l:integer;
begin
p:=10;
l:=5;
Writeln('Luas Persegi = ', p*l ,’cm2’);
Write('Press any key to continue...');
Readln;
end.

Contoh 2 :
Willy mempunyai 7 buah permen. Dia berencana akan membagi permen yang dimiliki kepada 3
orang adiknya dengan jumlah yang sama banyak. Dengan menggunakan FreePascal hitunglah
jumlah permen yang diterima masing-masing adik willy dan apakah ada sisanya?

Program permen;
begin
writeln('permen yang diperoleh = ', 7div3);
writeln(‘sisa permen willy = ’,7mod3)
write('press any key to continue...');
readln;
end.

Kegiatan Belajar 2. Pemanfaatan Operator Aritmatika


Setelah kita memahami penggunaan operator aritmatika maka pada kegiatan belajar kali ini akan
membahas mengenai pemanfaatan operator aritmatika untuk menyelesaikan berbagai masalah
sehari-hari dengan memanfaatkan Freepascal.
Misalnya kita diminta menyelesaikan permasalah dibawah ini menggunakan program pascal :

Sebuah perusahaan komputer memiliki 5 unit penjualan dengan setiap unit memiliki laba per
bulannya adalah sebagai berikut :
unit 1 = Rp 2.456.750,00
unit 2 = Rp 2.738.900,00
unit 3 = Rp 1.578.000,00
unit 4 = Rp 1.875.000,00
unit 5 = Rp 2.123.000,00
akan dicari laba total dan rata-rata laba dari penjualan produk perusahaan komputer tersebut.

Tujuan dari penyelesaian masalah di atas adalah untuk mencari jumlah dan rata-rata laba dari
perusahaan komputer.

Langkah pertama yang harus dilakukan adalah menentukan input dan tipe data yang dibutuhkan
program yang akan dibuat. Apabila kita cermati, input dari masalah di atas adalah laba dari
setiap unit penjualan. Dari masalah tersebut kita dapat memisalkan :
Variabel a = laba dari unit penjualan 1
Variabel b = laba dari unit penjualan 2
Variabel c = laba dari unit penjualan 3
Variabel d = laba dari unit penjualan 4
Variabel e = laba dari unit penjualan 5
Dan variabel variabel tersebut bertipe integer. Kemudian kita harus mentranslasikan input di atas
menjadi kode yang dikenali oleh FreePascal, seperti di bawah ini :
//deklarasi tipe variabel
var a,b,c,d,e:integer;
rata,jumlah:real;
//input data
write('Masukkan laba dari toko a = Rp.');
readln(a);
write('Masukkan laba dari toko b = Rp.');
readln(b);
write('Masukkan laba dari toko c = Rp.');
readln(c);
write('Masukkan laba dari toko d = Rp.');
readln(d);
write('Masukkan laba dari toko e = Rp.');
readln(e);

Setelah menentukan input dari program yang akan dibuat maka langkah selanjutnya kita harus
menentukan cara atau metode untuk mengolah data input menjadi data yang dikehendaki. Dalam
masalah ini, data yang ingin dicari / ditampilkan adalah rata-rata dan jumlah laba dari semua unit
penjualan. Untuk memperoleh rata-rata dan jumlah laba maka kita harus melakukan perhitungan
sebagai berikut :
∑x=𝒙1+𝒙2+....+𝒙n
ẋ =𝒙1+𝒙2+....+𝒙n
n
Maka dalam konteks masalah di atas, untuk mencari rata-rata dan total laba dari semua unit
penjualan adalah
Total laba = Laba Unit 1 + Laba Unit 2 + Laba Unit 3 + Laba Unit 4 + Laba Unit 5
Rata-rata laba = Total laba : 5
Kemudian kita translasikan perhitungan di atas menjadi kode pascal :

//Menhitung Total Laba


jumlah :=(a+b+c+d+e);

//Menampilkan Total laba


writeln('Jumlah laba dari kelima toko tersebut adalah
Rp',jumlah:6:0);

// Menghitung Rata-rata Laba


rata :=((a+b+c+d+e)/5);

// Menampilkan Rata-rata Laba


writeln('laba rata-rata dari kelima toko tersebut adalah
Rp',rata:6:0);

Setelah komponen deklarasi variabel, input dan proses pengolahan variabel telah dibuat maka
langkah selanjutnya adalah merangkai semua komponen menjadi satu dan melengkapinya
dengan komponen tambahan agar program dapat berjalan dan ditampilkan dengan baik. Di
bawah ini adala sourcecode yang lengkap dari program menghitung rata-rata serta total laba dari
perusahaan komputer tersebut :
Program rata2;
uses crt;
//deklarasi variabel yang digunakan
var a,b,c,d,e,rata,jumlah:real;
begin
{Program untuk menghitung rata-rata dan jumlah laba}

//menghapus tampilan layar awal


clrscr;
writeln('==================================================’);
writeln('Program Perhitungan Rata-rata dan Jumlah Laba');
writeln('==================================================');
writeln('');

//input laba toko pertama


write('Masukkan laba dari dealer a = Rp'); readln(a);
writeln('');

//input laba toko kedua


write('Masukkan laba dari dealer b = Rp'); readln(b);
writeln('');

//input laba toko ketiga


write('Masukkan laba dari dealer c = Rp'); readln(c);
writeln('');

//input laba toko keempat


write('Masukkan laba dari dealer d = Rp'); readln(d);
writeln('');

//input laba toko kelima


write('Masukkan laba dari dealer e = Rp'); readln(e);
writeln('');
writeln('==============================================');
writeln('');
jumlah :=(a+b+c+d+e+f+g+h+i+j);
writeln('Jumlah laba dari perusahaan motor X tersebut adalah
Rp',jumlah:6:0);
writeln('');
rata :=((a+b+c+d+e)/5);
writeln('laba rata-rata dari semua dealer penjualan adalah
Rp',rata:6:0);
writeln('');
writeln('===============================================');
readln;
end.

Kegiatan Belajar 3. Fungsi Aritmatika


Kita dapat melakukan berbagai operasi dasar dengan
menggunakan operator aritmatika seperti penjumlahan, penguranga, pembagian dan
perkalian.Namun bagaimana jika kita dihadapkan dengan ekspresi matematika di bawah ini?
 Sin θ
 Cos θ
 A2 + B2
 A=πr2

Kita akan kesulitan mengakomodasi permasalahan di atas dalam FreePascal jika hanya
menggunakan operator aritmatika yang telah dipelajari sebelumnya. Maka Freepascal
mengakomodasi permasalahan tersebut dengan menyediakan berbagai bentuk fungsi matematika
yang lazim digunakan dalam kehidupan sehari-hari. Berikut contoh- contoh fungsi aritmatika
pada freepascal yang sering digunakan :
ABS
ABS merupakan fungsi matematika dalam pascal yang berguna untuk menghasilkan nilai mutlak
dari sebuah bilangan negatif . Sintax : ABS(x)
FRAC
Merupakan fungsi matematika dalam Pascal yang berguna untuk menghasilkan nilai desimal
dari
bilangan real. Sintax : FRAC(x)
INT
Berguna untuk membulatkan angka pecahan menjadi sebuah bilangan bulat positif. Sintax :
INT(x).
LN
Berfungsi untuk menghasilkan nilai logaritma dari sebuah bilangan. Sintax : Ln(x)
SIN
Sintaks sin berfungsi untuk menghitung nilai sinus dari sebuah bilangan yang biasanya
digunakan untuk menghitung sudut tertetu dari 0 derajat samapi 360 derajat pada operasi
metematika. Sintax : Sin(x).
SQR
Berfungsi untuk melakukan perhitungan kuadrat dari sebuah bilangan. Sintax : SQR(x)
SQRT
Berfungsi untuk melakukan penghitungan akar kuadrat dari sebuah bilangan. Sintax : Sqrt(x)
PRED
Perintah PRED digunakan untuk menghsilkan nilai yang lebih kecil darinya. Perintah PRED
hanya dapat digunakan pada tioe data numerik, character dan boolean. Sintax : PRED(x)
SUCC
Perintah SUCC digunakan untuk menghasilkan nilai yang lebih besar darinya. Sama seperti
perintah PRED, SUCC hanya dapat digunakan pada tipe data numerik, karakter dan boolean.
Sintax : SUCC(x)
ODD
Digunakan untuk menentukan sebuah bilangan apakah termasuk bilangan ganjil atau bukan.
Output dari operasi out adalah boolean. Sintax : ODD(x)
INC
Digunakan untuk menambah nilai bilangan numerik sebesar 1. Sintax : INC(x)
DEC
Digunakan untuk mengurangi nilai bilangan numerik sebesar 1. Sintax : DEC(x)

Kegiatan Belajar 4. Pemanfaatan Fungsi Aritmatika


Di bawah ini merupakan contoh masalah yang dapat kita selesaikan dengan memanfaatkan
fungsi aritmatika pada FreePascal :

Diketahui : Segitiga ABC dengan sudut siku-siku . Panjang AB = 3 cm dan panjang BC = 4 cm.
Tentukan panjang AC.

Untuk mencari panjang AC dapat memanfaatkan teorema Phytagoras yang telah dipelajari di
bangku sekolah dasar. Dari bentuk umum Phytagoras, apabila diamati bentuk tersebut secara
garis besar memanfaatkan bentuk kuadrat dan bentuk akar. Dan dalam bahasa pemrograman
Pascal juga dumuat tentang fungsi SQR (x) dan SQRT (x) yang mana kedua fungsi itu mengacu
pada operasi kuadrat dan operasi akar dari suatu bilangan.
Setelah itu, kita harus menyusun sourcecode yang sesuai dengan masalah 1. Berikut ini alternatif
code yang bisa digunakan untuk menyelesaikan masalah :
program Segitiga; uses crt;

//deklarasi variabel
var a,b:integer;
c:real;
begin
clrscr;

//judul program
writeln('=========================================');
writeln('Hitung sisi miring segitiga siku-siku');
writeln('=========================================');
writeln;

//pemberian nilai variabel a


a:=3;
//menampilkan isi variabel a
writeln('AB = ',a);

//pemberian nilai variabel b


b:=4;

//menampilkan isi variabel b


writeln('BC = ',b);
writeln('');
writeln('==========================================');

//operasi phytagoras
c:=sqrt(sqr(a)+sqr(b));

//menampilkan AC
writeln('AC = ',c:1:0);
writeln('===========================================');
readln;
end.

Kegiatan Belajar 5. Operasi Logika

Operator logika digunakan untuk menentukan nilai boolean dari satu atau beberapa operand.
Operator logika bekerja sebagaimana hukum-hukum logika yang ada dalam hukum matematika.
 Operator Bitwise
Operasi bit digunakan untuk melakukan manipulasi bit pada bilangan bertipe data Byte dan
word. Operator bitwise mirip dengan operator aljabar yang mengolah data bertipe byte dan word
sehingga menghasilkan nilai output berupa bilangan juga.
 Konversi Bilangan Biner
Bilangan biner terdiri atas dua jenis, yaitu true (1) dan false (0). Nilai true mewakili bilangan 1
atau kondisi saklar listrik dalam kondisi ON, sedangkan false mewakili bilangan 0 atau kondisi
saklar listrik dalam kondisi OFF.

Latihan Soal
1. Sebutkan dua jenis bilangan biner?
2. Apakah manfaat operator bitwise?
3. Apakah fungsi dari operasi logika?
4. Apakah yang dimaksud dengan operasi relasional?
5. Apa manfaat kode DE?C
Jawaban
1. True, n false
2. Untuk melakukan manipulasi bit pada bilangan bertipe data Byte dan word. Operator bitwise
mirip dengan operator aljabar yang mengolah data bertipe byte dan word sehingga menghasilkan
nilai output berupa bilangan juga.
3. Untuk menentukan nilai boolean dari satu atau beberapa operand. Operator logika bekerja
sebagaimana hukum-hukum logika yang ada dalam hukum matematika.
4. Operator Relasional adalah operator yang digunakan untuk menentukan relasi atau hubungan
dari dua buah operand.
5. Digunakan untuk mengurangi nilai bilangan numerik sebesar 1. Sintax : DEC(x)

Penskoran
No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, September
2017
Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.6 Menerapkan struktur kontrol Percabangan dalam bahasa pemrograman
4.6 Membuat kode program struktur kontrol percabangan
C. Indikator Pencapaian Kompetensi
3.6 Menerapkan struktur kontrol Percabangan dalam bahasa pemrograman
3.6.1 Memahami cara membuat struktur kontrol Percabangan dalam bahasa pemrograman
3.6.2 Mempraktekkan struktur kontrol Percabangan dalam bahasa pemrograman

4.6 Membuat kode program struktur kontrol percabangan


4.6.1 Mengubah kode program struktur kontrol percabangan
4.6.2 Memodifikasi kode program struktur kontrol percabangan
D. Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan struktur
control percabangan dalam bahasa pemrograman dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan struktur control
percabangan dalam bahasa pemrograman dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode program
struktur control percabangan dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode program
struktur control percabangan dengan tepat

E. Materi Pembelajaran
Struktur control dan kode percabangan dalam bahasa pemrograman
F. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
G. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang kode program struktur kontrol percabangan
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan kode program struktur kontrol percabangan
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan Membuat kode program struktur kontrol percabangan
di depan peserta didik
2 Kegiatan Inti
4. Peserta didik memperhatikan dan mencoba praktek Membuat kode program
struktur kontrol percabangan sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara Membuat kode program struktur
kontrol percabangan dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat kode
program struktur kontrol percabangan
3. Guru memberitahukan jadwal membuat kode program struktur kontrol
percabangan kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah,, memodifikasi kode program struktur kontrol
percabangan
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha mendemonstrasikan, mempraktekkan, mengubah,,
memodifikasi kode program struktur kontrol percabangan
4. Guru memperhatikan peserta didik dalam mendemonstrasikan,
mempraktekkan, mengubah, kode program struktur kontrol percabangan dan
mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat kode program
struktur kontrol percabangan
3. Peserta didik mengamati penjelasan guru jika ada salah dalam membuat
kode program struktur kontrol percabangan
4. Guru mengevaluasi dari hasil peserta didik dalam dalam membuat kode
program struktur kontrol percabangan
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan Struktur
control dank ode percabangan dalam b ahasa pemrograman
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
Struktur control dank ode percabangan dalam b ahasa pemrograman
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

H. Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

I. Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Struktur Kontrol Pecabangan merupakan suatu algoritma program memiliki suatu kondisi yang
dimana kondisi tersebutlah yang akan menentukan perintah-perintah yang akan dijalankan oleh suatu
program. Perintah dalam suatu kondisi akan dijalankan ketika kondisi tersebut bernilai benar, dan
sebaliknya

Apabila kondisi bernilai salah maka perintah didalamnya tidak akan dijalankan.
Ada beberapa macam Struktur Kontol Pecabangan yang ada didalam C++, yaitu :
Pecabangan if
Pecabangan if merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi. Bentuk umum
penulisannya adalah sebagai berikut.

if(kondisi){
statement;
}

Contoh Penerapannya dalam kode program adalah sebagai berikut :


#include <iostream.h>
#include <conio.h>
main(){
int a = 10;
int b = 7;
if(a>=b){
a = 7;
b = 10;
}
cout<<"Nilai A : "<<a<<endl;
cout<<"Nilai B : "<<b<<endl;
getch();
}
Percabangan if-else
Percabangan if-else merupakan struktur kontrol pecabangan yang memiliki sebuah kondisi yang
apabila kondisi tersebut benar maka perintah yang didalamnya akan dijalankan dan apabila
kondisinya salah maka ada perintah lainnya yang akan dijalankan oleh program. Bentuk umum
penulisannya adalah sebagai berikut.

if(kondisi){
statement;
}
else{
statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
int x;
int angka = 10;
cout<<"Angka 1 - 10"<<endl;
cout<<"Masukan Tebakan anda : ";cin>>x;
if(x==angka){
cout<<"Tebakan anda benar"<<endl;
cout<<"Selamat!";
}
else {
cout<<"Maaf tebakan anda salah!";
}
getch();
}
Percabangan if-else if-else
Percabangan if-else if-else merupakan struktur kontrol pecabangan yang memiliki banyak kondisi.
Bentuk umum penulisannya adalah sebagai berikut.

if(kondisi1){
statement;
}
else if(kondisi2){
statement;
}
else{
statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
int x;
int angka = 6;
cout<<"Angka 1 - 10"<<endl;
cout<<"Masukan Tebakan anda : ";cin>>x;
if(x==angka){
cout<<"Tebakan anda benar"<<endl;
cout<<"Selamat!";
}
else if(x>angka){
cout<<"Tebakan anda terlalu besar";
}
else{
cout<<"Tebakan anda terlalu kecil";
}
getch();
}
Percabangan switch
Percabangan switch merupakan struktur kontrol pecabangan yang juga memiliki banyak kondisi,
akan tetapi kondisi dalam percabangan switch ini bertipe numerik. Default berfungsi untuk
menjalankan perintah default/umum/dasar apabila kondisi tidak sesuai dengan nilai case yang
ada. Bentuk umum penulisannya adalah sebagai berikut.

switch(kondisi){
case konstanta_1:
statement;
break;
case konstanta_2:
statement;
break;
default:
statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
int nilai;
cout<<"Masukan Nilai anda 0 - 10 : ";cin>>nilai;
cout<<"Anda masuk kategori ";
switch(nilai){
case 10:
case 9:
cout<<"A";
break;
case 8:
case 7:
cout<<"B";
break;
case 6:
case 5:
cout<<"C";
break;
case 4:
case 3:
case 2:
case 1:
case 0:
cout<<"D";
break;
default:
cout<<"nilai anda tidak masuk kategori!";
}
getch();
Percabangan adalah suatu keadaan dimana pernyataan dapat dieksekusi apabila suatu
kondisi memenuhi syarat untuk mengerjakan pernyataan tersebut

Percabangan pada Java ada 2 yaitu :


 if
Percabangan if merupakan percabangan yang melibatkan lebih dari satu kondisi dam penggabungan
beberapa if dan bisa juga digabungkan menjadi if-else
 Switch
percabangan switch memberikan suatu cara untuk mengatasi banyak kemungkinan bermunculan
dengan cara memberikan nilai variabel atau pernyataan tunggal.

Berikut merupakan contoh percabangan dari if dan switch:


class teskeputusan{
public static void main (String[] args) {
char jeniskelamin='w';
//nested if
if (jeniskelamin=='L')
System.out.println("Cowok");
else if (jeniskelamin=='P')
System.out.println("Cewek");
else
System.out.println("Banci");
//tenary
System.out.println(jeniskelamin=='P'? "Dia Pasti Cowok." : "Dia Pasti Cewek");
//switch case
switch (jeniskelamin){
case 'L' : System.out.println("Cowok");
break;
case 'P' : System.out.println("Cewek");
break;
default : System.out.println("Banci");
break;
}}}
2. Perulangan

Perulangan atau looping adalah suatu proses di dalam pemrograman yang dapat meng eksesusi
beberapa statement yang sama dengan berulang ulang sampai berhenti pada kondisi tertentu.
Perulangan pada dasarnya memiliki fungsi "EFISIEN". ada 3 jenis perulangan yaitu:
 For
For merupakan perulangan yang memiliki variable untuk melakukan pengkondisian. Element pada
for yaitu nilai awal, syarat, dan penambahan atau pengurangan nilai. misalnya
 While
While merupakan perulangan yang berguna untuk terus melakukan proses perulangan selama
kondisinya benar (true) dan berhenti apabila salah (false). misalnya:

 do.....while
Do while merupakan perulangan yang hampir sama dengan while, namun while disini bersifat
memproses atau mengecek instruksi terlebih dahulu kemudian membandingkan (kondisi). sedangkan
pada while bersifat mengecek kondisi baru melakukan instruksi. Misal

3. Method
Method dalam java serupa dengan function pada bahasa pemrograman yang lain,yang berfungsi
memodularisasi, mem break atau memecah program yang komplek sehingga nantinya dapat
digunakan/dipanggil kembali

Mendeklarasikan Method
<methodDeclaration> ::=
<modifier> <returnType> <name>(<parameter>*) {
<statement>*
}
<parameter> ::=
<parameter_type> <parameter_name>[,]
contoh method:
class MethodDemo {
int data;
int getData() {
return data;
}
void setData(int data) {
this.data = data;
}
void setMaxData(int data1, int data2) {
data = (data1>data2)? data1 : data2;
}
}
contoh program dengan method:
public class TesMak
{
/** Main method */
public static void main(String[] args)
{
int i = 5;
int j = 2;
int k = mak(i, j);
System.out.println(“The maximum between ” + i + ” and ” + j + ” is ” + k);
}
/** Return the max between two numbers */
public static int mak(int num1, int num2)
{
int hasil;
if (num1 > num2)
hasil = num1;
else
hasil = num2;
return hasil;
}
}
Yang perlu anda ketahui, Di dalam java terdapat empat akses yaitu default,private,protected,dan
public tentunya tingkat akses tersebut mempunyai fungsi dan kegunaan masing-masing.untuk
keterangan dari tingkat akses akan saya jelaskan di bawah ini :
 Akses Default (Package Accessibility)
Tipe ini mensyaratkan bahwa hanya class dalam package yang sama yang memiliki hak akses
terhadap variabel dan methods dalam class.
contoh potongan program :
public class StudentRecord
{
//akses dasar terhadap variabel
int name;
//akses dasar terhadap metode
String getName(){
return name;
}
}
Pada contoh diatas, variabel nama dan method getName() dapat diakses dari object lain selama object
tersebut berada pada package yang sama dengan letak dari file StudentRecord.
 Akses Public
Tipe ini 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.
contoh potongan program :
public class StudentRecord
{
//akses dasar terhadap variabel
public int name;
//akses dasar terhadap metode
public String getName(){
return name;
}}
variabel name dan method getName() dapat diakses dari object lain.
 Akses Protected

Tipe ini hanya mengijinkan class member untuk diakses oleh method dalam class tersebut dan
elemen – elemen subclass.
contoh potongan program :
public class StudentRecord
{
//akses pada variabel
protected int name;
//akses pada metode
protected String getName(){
return name;
}}
variabel name dan method getName() hanya dapat diakses oleh method internal class dan subclass
dari class StudentRecord.
 Akses Private
Tipe ini mengijinkan pengaksesan class hanya dapat diakses oleh class dimana tipe ini dibuat.
contoh potongan program :
public class StudentRecord
{
//akses dasar terhadap variabel
private int name;
//akses dasar terhadap metode
private String getName(){
return name;
}
}
Pada contoh diatas, variabel name dan method getName() hanya dapat diakses oleh method internal
class tersebut.
Contoh Program :
package paket.a;
public class Contoh1 {
public static void main(String[] args) {
A a = new A();
a.printString();
}
}
class A {
public String s1 = “public”;
protected String s2 = “protected”;
String s3 = “default”;
private String s4 = “private”;

void printString() {
System.out.println(this.s1);
System.out.println(this.s2);
System.out.println(this.s3);
System.out.println(this.s4);
}
}
Outputnya sebagai berikut :
public
protected
default
private

Latihan soal
1. Apakah yang dimaksud dengan percabangan?
2. Sebutkan dua percabangan pada java?
3. Apakah yang Anda ketahui tentang percabangan if?
4. Apakah yang dimamksud perulangan?
5. Sebutkan jenis – jenis perulangan!

Jawaban
1. Suatu keadaan dimana pernyataan dapat dieksekusi apabila suatu
kondisi memenuhi syarat untuk mengerjakan pernyataan tersebut
2. Percabangan if dan percabangan switch
3. Merupakan percabangan yang melibatkan lebih dari satu kondisi dam penggabungan beberapa if
dan bisa juga digabungkan menjadi if-else
4. Suatu proses di dalam pemrograman yang dapat meng eksesusi beberapa statement yang sama
dengan berulang ulang sampai berhenti pada kondisi tertentu
5. for, while, do while

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Oktober 2017


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.7 Menerapkan struktur kontrol Perulangan dalam bahasa pemrograman
4.7 Membuat kode program struktur kontrol perulangan
C. Indikator Pencapaian Kompetensi
3.7 Menerapkan struktur kontrol Perulangan dalam bahasa pemrograman
3.7.1 Memahami struktur kontrol Perulangan dalam bahasa pemrograman
3.7.2 Mempraktekkan struktur kontrol Perulangan dalam bahasa pemrograman

4.7 Membuat kode program struktur kontrol perulangan


4.7.1 Mengubah kode program struktur kontrol perulangan
4.7.2 Memodifikasi kode program struktur kontrol perulangan
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan struktur
control perulangan dalam bahasa pemrograman dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan struktur control
perulangan dalam bahasa pemrograman dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode program
struktur control perulangan dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode program
struktur control perulangan dengan tepat

D. Materi Pembelajaran
Kode program struktur kontrol perulangan
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang struktur kontrol Perulangan dalam bahasa pemrograman
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan struktur kontrol Perulangan dalam bahasa
pemrograman
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan Membuat struktur kontrol Perulangan dalam bahasa
2 Kegiatan Inti
pemrograman di depan peserta didik
4. Peserta didik memperhatikan dan mencoba praktek Membuat struktur
kontrol Perulangan dalam bahasa pemrograman sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara Membuat struktur kontrol
Perulangan dalam bahasa pemrograman dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat
struktur kontrol Perulangan dalam bahasa pemrograman
3. Guru memberitahukan jadwal membuat struktur kontrol Perulangan dalam
bahasa pemrograman kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah,, memodifikasi struktur kontrol Perulangan
dalam bahasa pemrograman
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha mendemonstrasikan, mempraktekkan, mengubah,,
memodifikasi struktur kontrol Perulangan dalam bahasa pemrograman
4. Guru memperhatikan peserta didik dalam mendemonstrasikan,
mempraktekkan, mengubah, struktur kontrol Perulangan dalam bahasa
pemrograman dan mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat struktur kontrol
Perulangan dalam bahasa pemrograman
3. Peserta didik mengamati penjelasan guru jika ada salah dalam membuat
struktur kontrol Perulangan dalam bahasa pemrograman
4. Guru mengevaluasi dari hasil peserta didik dalam dalam membuat struktur
kontrol Perulangan dalam bahasa pemrograman
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan struktur
kontrol Perulangan dalam bahasa pemrograman
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
struktur kontrol Perulangan dalam bahasa pemrograman
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6.Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Dalam bahasa C++ dikenal beberapa macam Struktur Kontrol Perilangan, yaitu :
Perulangan For
Perulangan For merupakan struktur kontrol perulangan yang menjalankan satu atau lebih perintah
dengan jumlah perulangan yang sudah ditentukan pada proses inisialisasi kondisi. Bentuk umum
penulisannya adalah sebagai berikut.

for(kondisi){
Statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :
#include <iostream.h>
#include <conio.h>
main(){
int x;
for(x=0;x<10;x++){
cout<<x<<". Aku suka C++"<<endl;
}
getch();
}

Perulangan While
Perulangan while merupakan struktur kontrol perulangan yang akan melakukan pengulangan selama
kondisi yang dihasilkan dalam perulangan tersebut masih bernilai benar. Bentuk umum penulisannya
adalah sebagai berikut :

Deklarasi;
while(kondisi){
Statement;
}
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
int x = 5;
while(x>0){
cout<<x<<" ";
x--;
}
cout<<"Program Berhasil";
getch();
}

Perulangan Do-While
Perulangan do-while merupakan struktur kontrol perulangan yang menjalankan perintah yang ada
didalamnya terlebih dahulu dan melihat kondisi perulangan setelah perintah tersebut selesai
dijalankan. Dengan kata lain walaupun kondisinya bernilai salah, minimal perintah sudah dijalankan
sebanyak satu kali. Bentuk umum penulisannya sebagai berikut :

inisialisasi;
do
{
Statement;
}while(kondisi);

Contoh Penerapannya dalam kode program adalah sebagai berikut :


#include <iostream.h>
#include <conio.h>
main(){
char x = 'A';
cout<<"Abjad : "<<endl;
do{
cout<<x<<" ";
x++;
}while(x<='Z');
getch();
}

Perulangan Goto
Perulangan goto merupakan struktur kontrol perulangan yang memiliki label. Perintah akan
mengalami pengulangan apabila ada perintah untuk kembali atau menuju kesuatu label. Label disini
merupakan suatu pengenal (identifier).
Contoh Penerapannya dalam kode program adalah sebagai berikut :

#include <iostream.h>
#include <conio.h>
main(){
int angka;
char t;
atas:
cout<<"Masukan angka : ";cin>>angka;
cout<<" > "<<angka<<endl;;
cout<<"Ingin memasukan lagi[Y/T] ";cin>>t;
if(t=='y' ||t=='Y'){
goto atas;
}
else{
goto bawah;
}
getch();
bawah:
}
Latihan soal
1. Apakah yang dimamksud perulangan?
2. Sebutkan jenis – jenis perulangan!
3. Apakah yang dimaksud dengan perulangan for?
4. Sebutkan kode penerapan perulangan for?
5. Apakah yangv dimaksud perulangan while?

Jawaban
1. Suatu proses di dalam pemrograman yang dapat meng eksesusi beberapa statement yang sama
dengan berulang ulang sampai berhenti pada kondisi tertentu
2. for, while, do while
3. Struktur kontrol perulangan yang menjalankan satu atau lebih perintah dengan jumlah perulangan
yang sudah ditentukan pada proses inisialisasi kondisi
4. #include <iostream.h>
#include <conio.h>
main(){
int x;
for(x=0;x<10;x++){
cout<<x<<". Aku suka C++"<<endl;
}
getch();
}
5. Struktur kontrol perulangan yang akan melakukan pengulangan selama kondisi yang dihasilkan
dalam perulangan tersebut masih bernilai benar

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, November 2017


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1 (Satu)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.8 Menganalisis penggunaan array untuk penyimpanan data di memori
4.8 Membuat kode program untuk menampilkan kumpulan data array
C. Indikator Pencapaian Kompetensi
3.8 Menganalisis penggunaan array untuk penyimpanan data di memori
3.8.1 Mengubah kode program untuk menampilkan kumpulan data array
3.8.2 Memodifikasi kode program untuk menampilkan kumpulan data array

4.8 Membuat kode program untuk menampilkan kumpulan data array


4.8.1 Mendemonstrasikan penggunaan fungsi
4.8.2 Mempraktekkan penggunaan fungsi
D. Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode program untuk
menampilkan kumpulan data array dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode program
untuk menampilkan kumpulan data array dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan penggunaan
fungsi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan penggunaan
fungsi dengan tepat
E. Materi Pembelajaran
Data array
F. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
G. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang kode program untuk menampilkan kumpulan data array
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan kode program untuk menampilkan kumpulan
data array
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan Membuat kode program untuk menampilkan kumpulan
data array di depan peserta didik
2 Kegiatan Inti
4. Peserta didik memperhatikan dan mencoba praktek Membuat kode program
untuk menampilkan kumpulan data array sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara Membuat kode program untuk
menampilkan kumpulan data array dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat kode
program untuk menampilkan kumpulan data array
3 Guru memberitahukan jadwal membuat kode program untuk menampilkan
kumpulan data array kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju menghubungkan,
membagi, mengubah dan memodifikasi kode program untuk menampilkan
kumpulan data array
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha menghubungkan, membagi, mengubah dan
memodifikasi kode program untuk menampilkan kumpulan data array
4. Guru memperhatikan peserta didik dalam menghubungkan, membagi,
mengubah dan memodifikasi kode program untuk menampilkan kumpulan
data array dan mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat memodifikasi kode
program untuk menampilkan kumpulan data array
3. Peserta didik mengamati penjelasan guru jika ada salah dalam memodifikasi
kode program untuk menampilkan kumpulan data array
4. Guru mengevaluasi dari hasil peserta didik dalam dalam memodifikasi kode
program untuk menampilkan kumpulan data array
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan kode
program data array
2.Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang kode
program data array
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup
Alat/ bahan, Media Pembelajaran
Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Haskell menyediakan array yang dapat diindeks, yang dapat dianggap sebagai fungsi yang
domainnya adalah isomorfik ke subkumpulan bersebelahan dari bilangan bulat. Fungsi yang dibatasi
dengan cara ini dapat diterapkan secara efisien; Secara khusus, programmer mungkin cukup
mengharapkan akses cepat ke komponen. Untuk memastikan kemungkinan implementasi semacam
itu, array diperlakukan sebagai data, bukan fungsi umum.
Karena kebanyakan fungsi array melibatkan kelas Ix , modul ini diekspor dari Data.Array sehingga
modul tidak perlu mengimpor Data.Array dan Data.Ix.
modul data.Ix
data Array yaitu :: * -> * -> *
Jenis array tidak tempuh tidak ketat (kotak) dengan indeks di i dan elemen dalam e .
Contoh
Array IArray e

Functor ( Array i) Sejak: 2.1

Dilipat ( Array i) Sejak: 4.8.0.0

Ix i => Traversable ( Array i) Sejak: 2.1

( Ix i, Eq e) => Eq ( Array yaitu) Sejak: 2.1

( Ix i, Ord e) => Ord ( Array yaitu) Sejak: 2.1

( Ix a, Tampilkan a, Tampilkan b) => Tampilkan ( Array ab) Sejak: 2.1

Konstruksi array
array
:: Ix i
sepasang batas , masing-masing tipe indeks dari array. Batas ini adalah indeks
terendah dan tertinggi dalam array, dalam urutan itu. Sebagai contoh, vektor
=> (i, i)
satu asal dengan panjang '10' memiliki batas '(1,10)', dan matriks '10 'satu
dengan' 10 'memiliki batas' ((1,1), (10,10 )) '.

daftar asosiasi bentuk ( indeks , nilai ). Biasanya, daftar ini akan dinyatakan
-> [(i, e)] sebagai sebuah pemahaman. Sebuah asosiasi '(i, x)' mendefinisikan nilai dari
array pada indeks i menjadi x .
-> Array yaitu
Buatlah sebuah array dengan batas-batas yang ditentukan dan nilai yang mengandung nilai untuk
indeks yang diberikan di dalam batas-batas ini.
Array tidak terdefinisi (yaitu bagian bawah) jika ada indeks dalam daftar yang berada di luar batas.
Laporan Haskell 2010 selanjutnya menetapkan bahwa jika dua asosiasi dalam daftar memiliki indeks
yang sama, nilai pada indeks tersebut tidak terdefinisi (yaitu di bawah). Namun dalam implementasi
GHC, nilai pada indeks semacam itu adalah bagian nilai dari hubungan terakhir dengan indeks
tersebut dalam daftar.
Karena indeks harus diperiksa untuk kesalahan ini, array sangat ketat dalam argumen batas dan dalam
indeks daftar asosiasi, namun tidak ketat dalam nilai. Dengan demikian, kekambuhan seperti berikut
ini mungkin:
a = array (1,100) ((1,1): [(i, i * a! (i-1)) | i <- [2..100]])
Tidak setiap indeks dalam batas-batas kebutuhan array muncul dalam daftar asosiasi, namun nilai
yang terkait dengan indeks yang tidak muncul akan tidak terdefinisi (yaitu di bawah).
Jika, dalam dimensi apapun, batas bawah lebih besar dari batas atas, maka lariknya legal, tapi kosong.
Pengindeksan sebuah array kosong selalu memberikan error array-bounds, tapi bounds masih
menghasilkan batas yang dengannya array tersebut dibangun.
listArray :: Ix i => (i, i) -> [e] -> Array yaitu
Buatlah sebuah array dari sepasang batas dan daftar nilai dalam urutan indeks.
accumArray
:: Ix i
=> (e -> a -> e) fungsi akumulasi
-> e nilai awal
-> (i, i) batas dari array

-> [(i, a)] daftar asosiasi


-> Array yaitu
Fungsi accumArray berhubungan dengan indeks berulang dalam daftar asosiasi menggunakan fungsi
akumulasi yang menggabungkan nilai-nilai asosiasi dengan indeks yang sama. Sebagai contoh,
mengingat daftar nilai dari beberapa jenis indeks, hist menghasilkan histogram dari jumlah
kemunculan masing-masing indeks dalam kisaran yang ditentukan:
hist :: (Ix a, Num b) => (a, a) -> [a] -> Array ab
hist bnds adalah = accumArray (+) 0 bnds [(i, 1) | i <-ya, inRange bnds i]
Jika fungsi akumulasinya ketat, maka accumArray sangat ketat dalam nilai, serta indeks, dalam daftar
asosiasi. Jadi, tidak seperti array biasa yang dibangun dengan array , array akumulasi tidak boleh
secara umum bersifat rekursif.
Mengakses array
(!) :: Ix i => Array yaitu -> i -> e infixl 9
Nilai pada indeks yang diberikan dalam array.
batas :: Array yaitu -> (i, i)
Batas yang dengannya sebuah array dibangun.
indeks :: Ix i => Array yaitu -> [i]
Daftar indeks dari sebuah array dalam urutan menaik.
elems :: Array yaitu -> [e]
Daftar elemen array dalam urutan indeks.
assocs :: Ix i => Array yaitu -> [(i, e)]
Daftar asosiasi array dalam urutan indeks.
Update array tambahan
(//) :: Ix i => Array yaitu -> [(i, e)] -> Array yaitu infixl 9
Buat sebuah array yang identik dengan argumen pertama kecuali bahwa ia telah diperbarui oleh
asosiasi dalam argumen yang benar. Sebagai contoh, jika m adalah asal-1, n oleh n matriks, maka
m // [((i, i), 0) | i <- [1..n]]
adalah matriks yang sama, kecuali dengan diagonal nol.
Indeks berulang dalam daftar asosiasi ditangani seperti untuk array : Haskell 2010 menentukan
bahwa array yang dihasilkan tidak terdefinisi (yaitu di bawah), namun penerapan GHC menggunakan
asosiasi terakhir untuk setiap indeks.
Akumulasi :: Ix i => (e -> a -> e) -> Array yaitu -> [(i, a)] -> Array yaitu
akumulasi accum f mengambil sebuah array dan daftar asosiasi dan mengumpulkan pasangan dari
daftar ke dalam array dengan fungsi akumulasi f . Dengan demikian accumArray dapat didefinisikan
dengan menggunakan accum :
accumArray fzb = akumulasi f (array b [(i, z) | i <- range b])
Berasal array
ixmap :: ( Ix i, Ix j) => (i, i) -> (i -> j) -> Array je -> Array yaitu
ixmap memungkinkan transformasi pada indeks array. Ini dapat dianggap sebagai penyediaan
komposisi fungsi di sebelah kanan dengan pemetaan yang diciptakan oleh array asli.
Transformasi nilai array yang sama dapat dicapai dengan menggunakan fmap dari instance Array dari
kelas Functor .
Dalam ilmu komputer , struktur data array , atau sekadar array , adalah struktur data yang terdiri
dari kumpulan elemen ( nilai atau variabel ), masing-masing diidentifikasi oleh setidaknya satu indeks
atau kunci array . Sebuah array disimpan sehingga posisi masing-masing elemen dapat dihitung dari
[1] [2] [3]
tupel indeksnya dengan rumus matematika. Jenis struktur data yang paling sederhana adalah
array linier, yang juga disebut array satu dimensi.
Sebagai contoh, sebuah array dari 10 variabel integer 32-bit, dengan indeks 0 sampai 9, dapat
disimpan sebagai 10 kata pada alamat memori 2000, 2004, 2008, ... 2036, sehingga elemen dengan
indeks i memiliki alamat 2000 + 4 × i . [4]
Alamat memori dari elemen pertama dari sebuah array disebut alamat pertama atau alamat pondasi.
Karena konsep matematis suatu matriks dapat digambarkan sebagai grid dua dimensi, array dua
dimensi juga kadang disebut matriks. Dalam beberapa kasus, istilah "vektor" digunakan dalam
komputasi untuk merujuk pada sebuah array, walaupun tuple daripada vektor lebih tepat dari
persamaan matematis. Array sering digunakan untuk mengimplementasikan tabel , terutama tabel
lookup ; tabel kata kadang digunakan sebagai sinonim dari array .
Array adalah salah satu struktur data tertua dan paling penting, dan digunakan hampir oleh semua
program. Mereka juga digunakan untuk menerapkan banyak struktur data lainnya, seperti daftar dan
string . Mereka secara efektif mengeksploitasi logika pengalamatan komputer. Di sebagian besar
komputer modern dan banyak perangkat penyimpanan eksternal , memori adalah rangkaian kata-kata
satu dimensi, yang indeksnya adalah alamat mereka. Prosesor , terutama prosesor vektor , sering
dioptimalkan untuk operasi array.
Array berguna terutama karena indeks elemen dapat dihitung pada run time . Antara lain, fitur ini
memungkinkan satu pernyataan iteratif untuk memproses banyak elemen array secara sewenang-
wenang. Oleh karena itu, elemen struktur data array diperlukan untuk memiliki ukuran yang sama
dan harus menggunakan representasi data yang sama. Kumpulan tupel indeks yang valid dan alamat
[3] [5]
elemen (dan karenanya rumus pengalamatan elemen) biasanya, namun tidak selalu, [2] tetap saat
array sedang digunakan.
Istilah array sering digunakan untuk menggambarkan tipe data array , semacam tipe data yang
disediakan oleh sebagian besar bahasa pemrograman tingkat tinggi yang terdiri dari kumpulan nilai
atau variabel yang dapat dipilih oleh satu atau lebih indeks yang dihitung pada saat run-time. Jenis
array sering diimplementasikan oleh struktur array; Namun, dalam beberapa bahasa mereka mungkin
diimplementasikan oleh tabel hash , linked list , search tree , atau struktur data lainnya.
Istilah ini juga digunakan, terutama dalam deskripsi algoritma , yang berarti array asosiatif atau
"array abstrak", model ilmu komputer teoritis ( tipe data abstrak atau ADT)
Sejarah
Komputer digital pertama menggunakan bahasa pemrograman mesin untuk mengatur dan mengakses
struktur array untuk tabel data, perhitungan vektor dan matriks, dan untuk banyak keperluan lainnya.
John von Neumann menulis program penyortiran array pertama ( penggabungan sortir ) pada tahun
[6] hal. 159
1945, saat membangun komputer program tersimpan pertama . Pengindeksan Array pada
awalnya dilakukan dengan memodifikasi kode sendiri , dan kemudian menggunakan register indeks
dan pengalamatan tidak langsung . Beberapa mainframe yang dirancang pada 1960-an, seperti
Burroughs B5000 dan penerusnya, menggunakan segmentasi memori untuk melakukan pengecekan
batas-batas pada perangkat keras. [7]
Bahasa assembly umumnya tidak memiliki dukungan khusus untuk array, selain yang disediakan oleh
mesin itu sendiri. Bahasa pemrograman tingkat tinggi paling awal, termasuk FORTRAN (1957), Lisp
(1958), COBOL (1960), dan ALGOL 60 (1960), memiliki dukungan untuk array multi dimensi, dan
juga memiliki C (1972). Di C ++ (1983), template kelas ada untuk array multi dimensi yang
dimensinya tetap pada runtime [3] [5] dan juga untuk array runtime-fleksibel. [2]
Bagian ini membutuhkan ekspansi . Anda bisa membantu dengan menambahkannya. (Mei
2009)
Aplikasi
Array digunakan untuk menerapkan vektor matematis dan matriks , serta jenis tabel persegi panjang
lainnya. Banyak database , kecil dan besar, terdiri dari (atau termasuk) array satu dimensi yang
elemennya adalah catatan .
Array digunakan untuk mengimplementasikan struktur data lainnya, seperti daftar, tumpukan , tabel
hash , deques , antrian , tumpukan , string , dan VLists . Implementasi berbasis struktur data berbasis
array seringkali sederhana dan hemat ruang ( struktur data implisit ), memerlukan sedikit ruang
overhead , namun mungkin memiliki kompleksitas ruang yang buruk, terutama bila dimodifikasi,
dibandingkan dengan struktur data berbasis pohon (bandingkan susunan diurutkan ke pohon
pencarian ).
Satu atau lebih array besar terkadang digunakan untuk meniru alokasi memori dinamis dalam
program, terutama alokasi pool memori . Secara historis, terkadang ini adalah satu-satunya cara untuk
mengalokasikan "memori dinamis" secara mudah.
Array dapat digunakan untuk menentukan aliran kontrol parsial atau lengkap dalam program, sebagai
alternatif ringkas untuk (jika tidak berulang) beberapa pernyataan IF . Mereka dikenal dalam konteks
ini sebagai tabel kontrol dan digunakan bersamaan dengan interpreter tujuan dibangun yang aliran
kontrolnya diubah sesuai dengan nilai yang terdapat dalam array. Array mungkin berisi pointer
subrutin (atau nomor subrutin relatif yang dapat ditindaklanjuti oleh pernyataan SWITCH ) yang
mengarahkan jalan eksekusi.
Elemen pengenal dan formula pengalamatan
Ketika objek data disimpan dalam array, objek individual dipilih oleh indeks yang biasanya
merupakan bilangan bulat skalar non-negatif. Indeks juga disebut subscript. Sebuah indeks
memetakan nilai array ke objek yang tersimpan.
Ada tiga cara di mana elemen array dapat diindeks:
 0 ( pengindeksan berbasis nol ): Elemen pertama dari array diindeks oleh subskrip 0. [8]
 1 ( satu pengindeksan berbasis ): Elemen pertama dari array diindeks oleh subskrip 1. [9]
 n ( n-based indexing ): Indeks dasar sebuah array dapat dipilih secara bebas. Biasanya bahasa
pemrograman yang memungkinkan pengindeksan n berbasis juga memungkinkan nilai
indeks negatif dan tipe data skalar lainnya seperti enumerasi , atau karakter dapat digunakan
sebagai indeks array.
Array dapat memiliki banyak dimensi, sehingga tidak jarang mengakses array menggunakan
beberapa indeks. Misalnya, array dua dimensi A dengan tiga baris dan empat kolom mungkin
menyediakan akses ke elemen pada baris ke 2 dan kolom ke 4 dengan ungkapan A[1, 3] dalam kasus
sistem pengindeksan berbasis nol. Jadi dua indeks digunakan untuk array dua dimensi, tiga untuk
array tiga dimensi, dan n untuk array n- dimensi.
Jumlah indeks yang dibutuhkan untuk menentukan elemen disebut dimensi, dimensi, atau rangking
dari array.
Dalam array standar, setiap indeks dibatasi pada kisaran bilangan bulat berurutan tertentu (atau nilai
berturut-turut dari beberapa tipe yang disebutkan ), dan alamat elemen dihitung dengan formula
"linier" pada indeks.
Satu dimensi array
Array satu dimensi (atau array dimensi tunggal) adalah jenis array linier. Mengakses elemen-
elemennya melibatkan subskrip tunggal yang bisa mewakili indeks baris atau kolom.
Sebagai contoh perhatikan pernyataan deklarasi int anArrayName[10];
Sintaks: datatype anArrayname [sizeofArray];
Dalam contoh yang diberikan, array dapat berisi 10 elemen dari setiap nilai yang tersedia untuk tipe
int . Dalam C, indeks elemen array adalah 0-9 termasuk dalam kasus ini. Misalnya, ekspresi
anArrayName[0] dan anArrayName[9] adalah elemen pertama dan terakhir masing-masing.
Untuk sebuah vektor dengan pengalamatan linier, elemen dengan indeks i terletak pada alamat B + c
× i , di mana B adalah alamat basis tetap dan c konstanta tetap, kadang-kadang disebut kenaikan
alamat atau langkahnya .
Jika indeks elemen yang valid dimulai pada 0, konstanta B hanyalah alamat dari elemen pertama dari
array. Untuk alasan ini, bahasa pemrograman C menentukan bahwa indeks array selalu dimulai pada
0; dan banyak pemrogram akan memanggil elemen " zeroth " daripada "yang pertama".
Namun, seseorang dapat memilih indeks elemen pertama dengan pilihan yang tepat dari alamat dasar
B. Misalnya, jika array memiliki lima elemen, diindeks 1 sampai 5, dan alamat dasar B diganti
dengan B + 30 c , maka indeks dari elemen yang sama adalah 31 sampai 35. Jika penomoran tidak
dimulai pada 0, B konstan mungkin bukan alamat dari elemen manapun.
Array multidimensional
Untuk array multi dimensi, elemen dengan indeks i , j akan memiliki alamat B + c · i + d · j , di mana
koefisien c dan d adalah kenaikan baris dan kolom berturut - turut .
Secara umum, dalam array k- dimensi, alamat elemen dengan indeks i 1 , i 2 , ..., i k adalah
B + c 1 · i 1 + c 2 · i 2 + ... + c k · i k .
Sebagai contoh: int a [2] [3];
Ini berarti array memiliki 2 baris dan 3 kolom, dan array adalah tipe integer. Disini kita bisa
menyimpan 6 elemen yang tersimpan secara linear tapi mulai dari baris pertama linier kemudian
dilanjutkan dengan baris kedua. Array di atas akan disimpan sebagai 11 , 12 , a 13 , a 21 , a 22 , a 23 .
Rumus ini hanya membutuhkan k perkalian dan penambahan k , untuk setiap array yang sesuai
dengan memori. Apalagi jika ada koefisien daya tetap 2, perkaliannya bisa diganti dengan sedikit
pergeseran .
Koefisien c k harus dipilih sehingga setiap peta tupel yang valid memetakan ke alamat elemen yang
berbeda.
Jika nilai hukum minimum untuk setiap indeks adalah 0, maka B adalah alamat dari elemen yang
indeksnya nol semua. Seperti dalam kasus satu dimensi, indeks elemen dapat diubah dengan
mengubah alamat dasar B. Jadi, jika array dua dimensi memiliki baris dan kolom yang diindeks dari 1
sampai 10 dan 1 sampai 20, masing-masing, maka penggantian B oleh B + c 1 - - 3 c 1 akan
menyebabkannya dinomori ulang dari 0 sampai 9 dan 4 sampai 23, masing-masing. Dengan
memanfaatkan fitur ini, beberapa bahasa (seperti FORTRAN 77) menentukan bahwa indeks array
dimulai pada 1, seperti pada tradisi matematika sementara bahasa lainnya (seperti Fortran 90, Pascal
dan Algol) membiarkan pengguna memilih nilai minimum untuk setiap indeks.
Vektor Dope
Rumusan pengalamatan sepenuhnya ditentukan oleh dimensi d , alamat dasar B , dan penambahan c 1
, c 2 , ..., c k . Hal ini sering berguna untuk mengemas parameter ini ke dalam catatan yang disebut
[2] [3]
deskriptor array atau vektor stride atau vektor obat bius . Ukuran setiap elemen, dan nilai
minimum dan maksimum yang diperbolehkan untuk setiap indeks juga disertakan dalam vektor obat
bius. Vektor ganja adalah pegangan lengkap untuk array, dan merupakan cara mudah untuk
melewatkan array sebagai argumen pada prosedur . Banyak operasi slicing array yang berguna
(seperti memilih sub-array, swapping index, atau membalikkan arah indeks) dapat dilakukan dengan
sangat efisien dengan memanipulasi vektor obat bius. [2]
Tata letak yang kompak
Seringkali koefisien dipilih sehingga elemen menempati area memori yang berdekatan. Namun, itu
tidak perlu. Bahkan jika array selalu dibuat dengan elemen bersebelahan, beberapa operasi pengiris
array dapat membuat sub-array yang tidak bersebelahan darinya.
Ada dua layout kompak yang sistematis untuk array dua dimensi. Misalnya, perhatikan matriksnya
Pada deretan urutan utama (diadopsi oleh C untuk array yang dideklarasikan secara statis),
elemen di setiap baris disimpan dalam posisi berturut-turut dan semua elemen berturut-turut memiliki
alamat yang lebih rendah daripada elemen dari baris berturut-turut:
Dalam urutan kolom utama (yang secara tradisional digunakan oleh Fortran), elemen di setiap kolom
berurutan dalam memori dan semua elemen kolom memiliki alamat yang lebih rendah daripada
elemen kolom berturut-turut: Untuk array dengan tiga atau lebih indeks, "deretan pesanan utama"
menempatkan posisi berturut-turut dua elemen yang tupel indeksnya berbeda hanya satu di indeks
terakhir . "Urutan utama kolom" sama dengan indeks pertama .
Dalam sistem yang menggunakan cache prosesor atau memori virtual , pemindaian array jauh lebih
cepat jika elemen berturut-turut disimpan dalam posisi berurutan di memori, bukan yang jarang
tersebar. Banyak algoritma yang menggunakan array multidimensi akan memindai mereka dalam
urutan yang dapat diprediksi. Seorang programmer (atau compiler yang canggih) dapat menggunakan
informasi ini untuk memilih antara layout baris atau kolom utama untuk setiap array. Sebagai contoh,
ketika menghitung produk A · B dari dua matriks, akan lebih baik jika A tersimpan dalam urutan
utama, dan B dalam urutan kolom utama.
Mengubah ukuran
Artikel utama: array dinamis
Array statis memiliki ukuran yang tetap saat dibuat dan akibatnya tidak membiarkan elemen
disisipkan atau dihapus. Namun, dengan mengalokasikan array baru dan menyalin isi array lama ke
dalamnya, adalah mungkin untuk secara efektif menerapkan versi dinamis dari sebuah array; lihat
array dinamis Jika operasi ini dilakukan jarang, penyisipan pada akhir array hanya memerlukan
waktu konstan yang diamortisasi.
Beberapa struktur data array tidak mengalokasikan ulang penyimpanan, namun jangan menyimpan
hitungan jumlah elemen dari array yang digunakan, yang disebut hitungan atau ukuran. Ini secara
efektif membuat array array dinamis dengan ukuran maksimum atau kapasitas tetap; String Pascal
adalah contohnya.
Rumus non linier
Formula yang lebih rumit (non linier) kadang-kadang digunakan. Untuk array segitiga dua dimensi
kompak, misalnya, formula pengalamatan adalah polinomial derajat 2.
Efisiensi
Baik simpan dan pilih take (deterministic worst case) waktu konstan . Array mengambil ruang linier (
O ( n )) dalam jumlah elemen n yang mereka pegang.
Dalam sebuah array dengan ukuran elemen k dan pada sebuah mesin dengan ukuran garis cache dari
B bytes, iterasi melalui array n elemen memerlukan minimum ceiling ( nk / B) cache misses, karena
elemen-elemennya menempati lokasi memori bersebelahan. Ini kira-kira merupakan faktor B / k lebih
baik daripada jumlah cache misses yang dibutuhkan untuk mengakses n elemen pada lokasi memori
acak. Sebagai konsekuensinya, iterasi berurutan pada sebuah array terasa lebih cepat dalam praktik
daripada iterasi pada banyak struktur data lainnya, sebuah properti yang disebut locality of reference
(ini tidak berarti bagaimanapun, bahwa dengan menggunakan hash yang sempurna atau hash sepele
dalam array (lokal) yang sama , tidak akan lebih cepat lagi - dan dapat dicapai dalam waktu yang
konstan ). Perpustakaan menyediakan fasilitas tingkat rendah yang dioptimalkan untuk menyalin
rentang memori (seperti memcpy ) yang dapat digunakan untuk memindahkan blok elemen array
yang berdekatan secara signifikan lebih cepat daripada yang dapat dicapai melalui akses elemen
individual. Kecepatan rutinitas yang dioptimalkan seperti itu bervariasi tergantung ukuran elemen,
arsitektur, dan implementasinya.
Memory-wise, array adalah struktur data yang kompak tanpa overhead per elemen. Mungkin ada
overhead per array, misalnya untuk menyimpan batas indeks, tapi ini tergantung pada bahasa. Hal ini
juga dapat terjadi bahwa elemen yang tersimpan dalam array memerlukan memori lebih sedikit
daripada elemen yang sama yang tersimpan dalam variabel individual, karena beberapa elemen array
dapat disimpan dalam satu kata ; Array seperti itu sering disebut array packed . Kasus yang ekstrim
(tapi umum digunakan) adalah array bit , di mana setiap bit mewakili satu elemen. Sebuah oktet
tunggal dapat menahan hingga 256 kombinasi yang berbeda hingga 8 kondisi yang berbeda, dalam
bentuk yang paling kompak.
Akses Array dengan pola akses yang dapat diprediksi secara statis merupakan sumber utama
paralelisme data .
Perbandingan dengan struktur data lainnya
Perbandingan struktur data daftar
Pohon yang Daftar akses pohon array
Daftar yang ditautkan Array Array dinamis
seimbang acak hashed
Pengindeksan Θ(n) Θ (1) Θ (1) Θ (log n) Θ (log n) [10] Θ (1)
Sisipkan / hapus di
Θ (1) N/A Θ(n) Θ (log n) Θ (1) Θ(n)
awal
Θ (1) bila unsur terakhir
Insert / delete pada diketahui ; Θ (1) Θ (log n )
N/A Θ (log n ) Θ (1) diamortisasi
akhir Θ ( n ) bila elemen terakhir tidak diamortisasi perbarui
diketahui
Sisipkan / hapus di waktu pencarian + Θ (1) [11] [12]
Θ (log n )
[13] N/A Θ(n) Θ (log n ) Θ(n)
tengah perbarui
Ruang terbuang (rata-
Θ(n) 0 Θ ( n ) [14] Θ(n) Θ(n) Θ(√ n )
rata)
Array Growable mirip dengan array tapi menambahkan kemampuan untuk menyisipkan dan
menghapus elemen; menambahkan dan menghapus pada akhirnya sangat efisien. Namun, mereka
menyimpan penyimpanan tambahan linier ( Θ ( n )), sedangkan array tidak menyimpan penyimpanan
tambahan.
Array asosiatif menyediakan mekanisme untuk fungsi seperti array tanpa biaya penyimpanan yang
besar ketika nilai indeks jarang. Sebagai contoh, sebuah array yang berisi nilai hanya pada indeks 1
dan 2 miliar dapat mengambil manfaat dari penggunaan struktur semacam itu. Array asosiatif khusus
dengan kunci bilangan bulat termasuk Patricia mencoba , susunan Judy , dan pohon van Emde Boas .
Pohon yang seimbang membutuhkan waktu O (log n ) untuk akses yang terindeks, namun juga
mengizinkan penyisipan atau penghapusan elemen dalam waktu O (log n ), sedangkan array yang
menumbuhkan memerlukan waktu linier (Θ ( n )) untuk menyisipkan atau menghapus elemen pada
posisi sewenang-wenang
Daftar yang terhubung memungkinkan pemindahan dan penyisipan waktu konstan di tengah tetapi
mengambil waktu linier untuk akses yang diindeks. Penggunaan memori mereka biasanya lebih
buruk daripada array, namun masih linier.
Vektor Iliffe adalah alternatif dari struktur array multidimensional. Ini menggunakan array satu
dimensi referensi ke array satu dimensi lebih sedikit. Untuk dua dimensi, khususnya, struktur
alternatif ini akan menjadi vektor dari pointer ke vektor, satu untuk setiap baris. Jadi elemen pada
baris i dan kolom j dari array A akan diakses dengan pengindeksan ganda ( A [ i ] [ j ] pada notasi
tipikal). Struktur alternatif ini memungkinkan bergerigi array , di mana setiap baris mungkin
memiliki ukuran yang berbeda - atau, secara umum, di mana rentang yang berlaku dari setiap indeks
bergantung pada nilai semua indeks sebelumnya. Ini juga menghemat satu perkalian (dengan
penambahan kolom kolom) menggantikannya dengan sedikit pergeseran (untuk mengindeks vektor
pointer baris) dan satu akses memori tambahan (mengambil alamat baris), yang mungkin bermanfaat
di beberapa arsitektur.

Latihan soal
1. Dimensi apakah yang digunakan oleh array?
2. Apakah yang dimaksud array?
3. Apakah struktur sederhana dalam array?
4. Apa yang Anda ketahui tentang alamat pondasi?
5. Apakah fungsi array?

Jawaban
1. Subset diskrit
2. Struktur data yang terdiri dari kumpulan elemen ( nilai atau variabel ), masing-masing
diidentifikasi oleh setidaknya satu indeks atau kunci array
3. Array linier
4. Alamat memori dari elemen pertama dari sebuah array
5. Array berguna terutama karena indeks elemen dapat dihitung pada run time

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, November 2017


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1I (Dua)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 12x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.9 Menerapkan penggunaan fungsi
4.9 Membuat kode program menggunakan fungsi
C. Indikator Pencapaian Kompetensi
3.9 Menerapkan penggunaan fungsi
3.9.1 Memahami penggunaan fungsi
3.9.2 Menggunakan atau mempraktekkan penggunaan fungsi

4.9 Membuat kode program menggunakan fungsi


4.9.1 Memodifikasi kode program untuk menggunakan fungsi
4.9.2 Mengubah kode program untuk menggunakan fungsi
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan penggunaan
fungsi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan penggunaan fungsi
dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode program untuk
menggunakan fungsi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode program untuk
menggunakan fungsi dengan tepat

D. Materi Pembelajaran
Kode program untuk menggunakan fungsi
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 - 3
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar komputer
tentang kode program menggunakan fungsi
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum jelas untuk
ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk acuan dalam
mempraktekkan kode program menggunakan fungsi
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari guru dari
tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar peserta
didik memahaminya
3. Guru mempraktekkan Membuat kode kode program menggunakan fungsi di depan
peserta didik
4. Peserta didik memperhatikan dan mencoba praktek Membuat kode program
menggunakan fungsi sendiri
Menyusun Jadwal
2 Kegiatan Inti 1. Peserta didik memahami penjelasan cara kode program menggunakan fungsi dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat kode program
menggunakan fungsi
3. Guru memberitahukan kode program menggunakan fungsi kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah dan memodifikasi kode program menggunakan fungsi
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha mendemonstrasikan, mempraktekkan, mengubah dan
memodifikasi kode program menggunakan fungsi
4. Guru memperhatikan peserta didik dalam mendemonstrasikan, mempraktekkan,
mengubah dan memodifikasi kode program menggunakan fungsi dan mengarahkan
jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat memodifikasi kode program
menggunakan fungsi
3. Peserta didik mengamati penjelasan guru jika ada salah dalam memodifikasi kode
program menggunakan fungsi
4. Guru mengevaluasi dari hasil peserta didik dalam dalam memodifikasi kode program
menggunakan fungsi
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan memodifikasi kode
program menggunakan fungsi
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara individu
3 Penutup untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang memodifikasi
kode program menggunakan fungsi
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta didik untuk
mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup
Alat/ bahan, Media Pembelajaran
Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian
Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Bahasa pemrograman adalah suatu kumpulan kata (perintah) yang siap digunakan untuk menulis
suatu kode program sehingga kode-kode program yang kita tulis tersebut akan dapat dikenali oleh
kompilator yang sesuai. Kata-kata tersebut dalam bahasa pemrograman disebut dengan keyword
(reserve word). Untuk mempelajari bahasa pemrograman tertentu kita tidak harus menghafal semua
keyword (kata kunci) yang ada di dalamnya, namun yang perlu kita ketahui adalah fungsi dan aturan
penggunaannya.
Contoh dari beberapa keyword misalnya : int, main, for, while, do while, dsb.
Pada pembelajaran ini kita akan menggunakan salah satu bahasa pemrograman tingkat tinggi yaitu C
/ C++.

2 Penerjemah Bahasa Pemrograman


Program yang ditulis dalam bahasa pemrograman seperti C dan C++ sebenarnya tidak dimengerti
oleh computer secara langsung. Sebab computer hanya mengenali kode 0 dan 1 (binary digit ).
Supaya program dapat dijalankan oleh computer, program tersebut harus diterjemahkan terlebih
dahulu ke dalam bahasa mesin (atau biasa disebut kode objek). Proses penerjemahannya dilakukan
oleh program yang disebut Translator (penerjemah).
Translator dapat berupa :
 Interpreter
Interpreter menerjemahkan instruksi selama program diminta untuk dieksekusi. Jika seseorang
bermaksud menjalankan program tersebut (agar dapat dijalankan oleh computer, mula-mula kode
sumber (source code atau program asli yang diitulis olem pemrogram) ditermahkan dulu ke dalam
bentuk kode mesin baris perbaris instruksi. Setelah satu baris instruksi tersebut difahami oleh
computer, instruksi tersebut dijalankan. Interpreter kemudian kembali memproses baris instruksi
berikutnya.
 Kompiler
Kompiler menerjemahkan instruksi ke dalam kode objek secara keseluruhan (untuk semua instruksi).
Setelah semua instruksi diterjemahkan, instruksi yang dimengerti oleh computer dijalankan. Proses
penerjemahan seperti itu disebut kompilasi. Setelah kompilasi berakhir, compiler tidak diperlukan
lagi, sebab sesudah kompilasi akan terbentuk program yang dapat dijalankan secara langsung tanpa
melalui translator ( executable ).
3 Kerangka Program dalam Bahasa C / C++
Setiap program yang ditulis dengan menggunakan bahasa C harus mempunyai fungsi utama, fungsi
tersebut bernama main(). Fungsi inilah yang akan dipanggil pertama kali pada saat eksekusi program.
Apabila ada fungsi lain yang dibuat, maka fungsi tersebut akan dijankan ketika dipanggil di fungsi
utama. Hal ini karena bahasa C/C++ merupakan bahasa procedural yang menerapkan konsep runtutan
(program dieksekusi baris-perbaris dari atas ke bawah secara berurutan).
Ada dua bentuk kerangka fungsi utama yang sering digunakan :
 Bentuk dengan tanpa pengembalian nilai ke system operasi (dengan menuliskan Void
sebelum fungsi utama )
Contoh :
void main(void)
{
Kode program yang akan ditulis;
}
Kata kunci void dalam kurung bersifat opsional, artinya bias dituliskan atau juga tidak.
 Bentuk dengan pengembalian nilai 0 ke system operasi (dengan menuliskan tipe data
sebelum fungsi utama )
Contoh :
int main(void)
{
Kode program yang akan ditulis;
return 0;
}
Kata kunci void dalam kurung bersifat opsional, artinya bias dituliskan atau juga tidak.
Fungsi return 0 pada konsep di atas adalah fungsi main() ini dapat mengembalikan nilai 0 ke system
operasi yang menandakan bahwa program tersebut berjalan dengan baik tanpa adanya kesalahan.

4 Mengenal File Header ( *.h )Program dalam Bahasa C / C++


File header adalah file dengan eksetensi h ( *.h ) yaitu file bantuan yang digunakan untuk menyimpan
daftar-daftar fungsi yang akan digunakan di dalam program.
File header di dalam C/C++ misalnya adalah <stdio.h> atau <iostream.h> untuk proses masukan dan
keluaran (input/output). Tidak hanya dua file header tersebut karena masih banyak file header yang
disediakan oleh C/C++ untuk menangani kerword-keyword yang lain.
Di bawah ini akan digambarkan bagaimana cara penulisan file header dengan mengacu pada konsep
kerangka yang sudah dijelaskan di atas :
Contoh 1 : Penggunaan input/output dengan bahasa C
#include <stdio.h>
int main()
{
printf(“Selamat Belajar Algortima dan Pemrograman \n”);
return 0;
}

Contoh 2 : Penggunaan input/output dengan bahasa C


#include <stdio.h>
void main()
{
printf(“Selamat Belajar Algortima dan Pemrograman \n”);
}

Contoh 3 : Penggunaan input/output dengan bahasa C++


#include <iostream.h>
int main()
{
cout<<“Selamat Belajar Algortima dan Pemrograman \n”;
return 0;
}

Contoh 4 : Penggunaan input/output dengan bahasa C++


#include <iostream.h>
void main()
{
cout<<“Selamat Belajar Algortima dan Pemrograman \n”;
}

5 Mengenal Fungsi printf() dan scanf() dalam Bahasa C


Dalam pembuatan sebuah program computer, kita tidak akan lepas dari proses masukan (input) dan
keluaran (output). Dalam bahasa C perintah tersebut dikenal dengan penulisan scanf() sebagai
inputan dan printf() sebagai keluaran. Untuk file header yang diperlukan adalah stdio.h.
Contoh 1 : Memasukkan sebuah nilai bertipe integer
#include <stdio.h>
int main()
{
int x;
printf(“Masukkan sebuah nilai bilangan bulat = ”);
scanf(“%d”, &x);
printf(“Nilai yang anda masukkan adalah = %d”, x );
return 0;
}
Adak kode program yang di dalamnya terdapat tanda %d, maksudnya adalah masukan tersebut
membaca nilai bertipe int (format bilangan bulat) dari keyboard dan menyimpan nilai tersebut ke
dalam alamat di dalam memori yang ditempati oleh variable x.
Ada beberapa format yang lain untuk menentukan format yang dapat dipakai pada scanf().
Karakter Tipe Argumen Keterangan
%d, %i int Untuk membaca tipe bilangan bulat dalam bentuk decimal (basis 10)
%o int Untuk membaca tipe bilangan bulat dalam bentuk octal (basis 8) tanpa diawali angka 0
%u int Untuk membaca bilangan bulat tanda tanda (unsigned)
%c char Untuk membaca karakter
%s char* Untuk membaca string (kumpulan karakter)
%f float Untuk membaca bilangan real dengan tipe float
%lf float Untuk membaca bilangan real dengan tipe double
%ld float Untuk membaca bilangan real dengan tipe long int.
%e double Untuk membaca bilangan real dengan bentuk eksponen

Ada beberapa format yang lain untuk menentukan format yang dapat dipakai pada printf().
Karakter Tipe Argumen Keterangan
%d, %i int Untuk menampilkan tipe bilangan bulat dalam bentuk decimal (basis 10)
%o int Untuk menampilkan tipe bilangan bulat dalam bentuk octal (basis 8) tanpa diawali angka 0
Untuk menampilkan tipe bilangan bulat dalam bentuk heksadesimal (basis 16) tanpa diawali dengan tanda
%x, %X int 0x atau 0X. Format x digunakan untuk menampilkan hasil dalam huruf kecil dan huruf X untuk
menampilkan dalam huruf besar.
%u int Untuk menampilkan bilangan bulat tanda tanda (unsigned)
%c char Menampilkan karakter
%s char* Menampilkan string (kumpulan karakter)
%f float Menampilkan bilangan real dengan tipe float
%lf float Menampilkan bilangan real dengan tipe double
%ld float Menampilkan bilangan real dengan tipe long int.
%e , %E double Menampilkan bilangan real dengan bentuk eksponen
%g , %G double Menampilkan bilangan real dalam bentuk seperti %f, atau %E tergantung dari ekspresinya
%% Menyatakan symbol %

Ada beberapa tambahan dalam penggunaan bilangan real misalnya :


%.3f mencetak bilangan real dengan 3 angka di belakang koma
%2.3 mencetak bilangan real dengan 2 angka sebelum koma dan 3 angka sesudah koma.
Selain itu perlu juga diperhatikan sebuah karakter escape yaitu karakter yang ditulis dengan awalan
tanda \ diikuti dengan karakter tertentu yang memiliki sebuah tingkah laku.
Karakter Keterangan
\a Untuk membangkitkan suara atau speaker (bell)
\b Karakter backspace, kursor akan kembali ke depan sebanyak satu karakter
\f Formfeed : untuk meletakkan formfeed
\n Newline : untuk meletakkan baris baru(ganti baris )
\r Carriage return : untuk meletakkan kursor di awal baris bersangkutan
\t Horizontal tab : untuk meletakkan tab horizontal
\v Vertical tab : untuk meletakkan tab vertical
\\ Memunculkan karakter \
\” Memunculkan karakter “
\’ Memunculkan karakter ‘
\? Memunculkan karakter ?
Karakter-karakter tersebut seperti pada table di bawah ini :
6 Mengenal cin>> dan cout<< dalam Bahasa C++
Sama halnya fungsi scanf() dan printf(). Fungsi cin>> dan cout<< juga berfungsi sebagai inputan dan
keluaran. Yang berbeda adalah file headernya memakai <iostream.h>.
Contoh 1 : Memasukkan sebuah nilai bertipe integer
#include <iostream.h>
int main()
{
int x;
cout<< “Masukkan sebuah nilai bilangan bulat = ”;
cin>>x;
cout<<“Nilai yang anda masukkan adalah =”<< x;
return 0;
}

7 Mengenal fungsi aritmatike dengan header math.h


Di dalam bahasa C juga disediakan fungsi untuk penangan aritmatika. File ini terdapat di dalam
header math.h.
Perhatikan table di bawah ini :
Fungsi Argumen Keterangan
sqrt() double Memberikan nilai balik berupa akar x. Nilai balik bertipe double.
pow(x,y) double Memberikan nilai balik berupa xy. Nilai balik bertipe double.
Memberikan nilai balik berupa tangent x. Argumen x berupa nilai dalam satuan radian. Nilai balik bertipe
tan(x) double
double.
Memberikan nilai balik berupa sinus x. Argumen x berupa nilai dalam satuan radian. Nilai balik bertipe
sin(x) double
double.
Memberikan nilai balik berupa cosines x. Argumen x berupa nilai dalam satuan radian. Nilai balik bertipe
cos(x) double
double.
log(x) double Memberikan nilai balik berupa loge x. Nilai balik bertipe double.
log10(x) double Memberikan nilai balik berupa log10 x. Nilai balik bertipe double.
cabs(x) int Memberikan nilai balik berupa nilai absolute x. Nilai balik bertipe int.
fabs(x) double Memberikan nilai balik berupa nilai absolute x. Nilai balik bertipe double.

8 Mengenal Komentar
Komentar adalah sebuah teks yang dimasukkan di dalam kode program, tetapi teks tersebut tidak
akan dieksekusi sebagai kode program. Biasanya komentar digunakan untuk memberikan
penjelasan terhadap kode-kode program yang kita tuliskan, dapat juga berupa kegunaan
program, waktu dibuat dan penulis yang membuat.
Ada beberapa bentuk format dalam komentar.
 //isi komentar
Komentar ini digunakan pada C++
 /* isi komentar */
Komentar ini bias digunakan di C / C++

9 Fungsi Manipulasi String


Dalam sebuah kasus tertentu kita membutuhkan aktifitas untuk memanipulasi sebuah string,
misalnya ketika kita mau menjumlah string, memotong string, dan sebagainya.
Untuk menggunakan fungsi ini kita membutuhkan file header yang bernama string.h.
Ada beberapa fungsi manipulasi string diantaranya :
 Menentukan panjang string = strlen(string)
Fungsi ini digunakan untuk menghitung panjang dari sebuah string.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
char *nama = “Belajar Algoritma dan Pemrograman”;
cout<<strlen(nama);
}
 Mencari sebuah string = strchr(string, index)
Fungsi ini digunakan untuk memotong sebuah string dimulai dari index.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
char *nama = “Belajar Algoritma dan Pemrograman”;
cout<<strchr(nama,’A’);
}
 Mencari sebuah string = strstr(string, index)
Fungsi ini digunakan untuk memotong sebuah string dimulai dari index. Dengan ketentuan
bahwa index yang dicari harus tepat, jika tidak maka hasilnya kosong / null.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
char *nama = “Belajar Algoritma dan Pemrograman”;
cout<<strstr(nama,”ajar”);
}
 Membuat String menjadi huruf KAPITAL = strupr (string)
Fungsi ini digunakan membuat string menjadi huruf KAPITAL.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
char *nama = “Belajar Algoritma dan Pemrograman”;
cout<<strupr(nama);
}
 Membuat String menjadi huruf kecil = strlwr (string)
Fungsi ini digunakan membuat string menjadi huruf kecil.
Contoh 1 :
#include <iostream.h>
#include <string.h>
void main()
{
char *nama = “Belajar Algoritma dan Pemrograman”;
cout<<strlwr(nama);

Latihan soal
1. Apakah yang dimaksud bahasa pemrograman?
2. Sebutkan contoh keyword?
3. Apakah yang dimaksud dengan penulisan scanf?
4. Apa fungsi string?
5. Apa fungsi komentar?

Jawaban
1. Suatu kumpulan kata (perintah) yang siap digunakan untuk menulis suatu kode program sehingga
kode-kode program yang kita tulis tersebut akan dapat dikenali oleh kompilator yang sesuai
2. int, main, for, while, do while, dsb.
3. Dalam pembuatan sebuah program computer, kita tidak akan lepas dari proses masukan (input)
dan keluaran (output). Dalam bahasa C perintah
4. Membuat string menjadi huruf KAPITAL.
5. Digunakan untuk memberikan penjelasan terhadap kode-kode program yang kita tuliskan, dapat
juga berupa kegunaan program, waktu dibuat

Penskoran
No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Januari 2018


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1I (Dua)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 12x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.10 Menerapkan pembuatan antar muka (User Intreface) pada aplikasi
4.10 Membuat antar muka (User Intreface) pada aplikasi
C. Indikator Pencapaian Kompetensi
3.10 Menerapkan pembuatan antar muka (User Intreface) pada aplikasi
3.10.1 Memahami pembuatan antar muka (User Intreface) pada aplikasi
3.10.2 Mempraktekkan pembuatan antar muka (User Intreface) pada aplikasi

4.10 Membuat antar muka (User Intreface) pada aplikasi


4.10.1 Memodifikasi antar muka (user interface pada aplikasi
4.10.2 Mengubah antar muka (user interface pada aplikasi
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan pembuatan
antar muka (user Intreface) pada aplikasi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan pembuatan antar
muka (user Intreface) pada aplikasi dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah antar muka (user
interface pada aplikasi dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi antar muka (user
interface pada aplikasi dengan tepat

D. Materi Pembelajaran
Pembuatan antar muka (User Intreface) pada aplikasi
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 - 3
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang pembuatan antar muka (User Intreface) pada aplikasi
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan kode program menggunakan fungsi
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan antar muka (User Intreface) pada aplikasi di depan
2 Kegiatan Inti peserta didik
4. Peserta didik memperhatikan dan mencoba praktek Membuat kode program
menggunakan fungsi sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara kode antar muka (User Intreface)
pada aplikasi dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat antar
muka (User Intreface) pada aplikasi
3. Guru memberitahukan antar muka (User Intreface) pada aplikasi kepada
peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah dan memodifikasi antar muka (User Intreface)
pada aplikasi
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha mendemonstrasikan, mempraktekkan, mengubah dan
memodifikasi antar muka (User Intreface) pada aplikasi
4. Guru memperhatikan peserta didik dalam mendemonstrasikan,
mempraktekkan, mengubah dan memodifikasi antar muka (User Intreface)
pada aplikasi dan mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat memodifikasi antar
muka (User Intreface) pada aplikasi
3. Peserta didik mengamati penjelasan guru jika ada salah dalam memodifikasi
antar muka (User Intreface) pada aplikasi
4. Guru mengevaluasi dari hasil peserta didik dalam dalam memodifikasi
memodifikasi antar muka (User Intreface) pada aplikasi
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan
memodifikasi antar muka (User Intreface) pada aplikasi
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
memodifikasi antar muka (User Intreface) pada aplikasi
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Antarmuka merupakan topeng dari sebuah sistem atau sebuah pintu gerbang masuk ke sistem
dengan diwujudkan ke dalam sebuah aplikasi software. Oleh karena itu, sebuah software seolah-
olah mengenal usernya, mengenal karakteristik usernya, dari sifat sampai kebiasaan manusia
secara umum.
• Desainer harus mencari dan mengumpulkan berbagai karakteristik serta sifat dari user karena
antarmuka harus disesuaikan dengan user yang jumlahnya bisa jadi lebih dari satu dan
mempunyai karakter yang berbeda. Hal tersebut harus terpikirkan oleh desainer dan tidak
dianjurkan merancang antarmuka dengan didasarkan pada dirinya sendiri
Survey adalah hal yang paling tepat
2. Product compatibility
• Sebuah aplikasi yang bertopengkan antarmuka harus sesuai dengan sistem aslinya.
• Seringkali sebuah aplikasi menghasilkan hasil yang berbeda dengan sistem manual atau sistem
yang ada.
• Hal tersebut sangat tidak diharapkan dari perusahaan karena dengan adanya aplikasi software
diharapkan dapat menjaga produk yang dihasilkan dan dihasilkan produk yang jauh lebih baik.
Contoh: aplikasi sistem melalui antarmuka diharapkan menghasilkan report/ laporan serta
informasi yang detail dan akurat dibandingkan dengan sistem manual.
3. Task compatibility
• Sebuah aplikasi yang bertopengkan antarmuka harus mampu membantu para user dalam
menyelesaikan tugasnya. Semua pekerjaan serta tugas-tugas user harus diadopsi di dalam
aplikasi tersebut melalui antarmuka.
• Sebisa mungkin user tidak dihadapkan dengan kondisi memilih dan berpikir, tapi user
dihadapkan dengan pilihan yang mudah dan proses berpikir dari tugas-tugas user dipindahkan
dalam aplikasi melalui antarmuka
• Contoh: User hanya klik setup, tekan tombol next, next, next, finish, ok untuk menginstal suatu
sotfware.
4. Work flow compatibility
• Sebuah aplikasi sistem sudah pasti mengapdopsi sistem manualnya dan di dalamnya tentunya
terdapat urutan kerja dalam menyelesaikan pekerjaan.
• Dalam sebuah aplikasi, software engineer harus memikirkan berbagai rangkaian pekerjaan yang
ada pada sebuah sistem.
• Jangan sampai user mengalami kesulitan dalam menyelesaikan pekerjaannya karena user
mengalami kebingungan ketika urutan pekerjaan yang ada pada sistem manual tidak ditemukan
pada software yang dihadapinya.
• Selain itu user jangan dibingungkan dengan pilihan-pilihan menu yang terlalu banyak dan
semestinya menu-menu merupakan urutan dari rangkaian pekerjaan.
• Dengan workflow compatibility dapat membantu seorang user dalam mempercepat
pekerjaannya.
5. Consistency
• Sebuah sistem harus sesuai dengan sistem nyata serta sesuai dengan produk yang dihasilkan.
• Banyak perusahaan dalam menjalankan sistemnya menggunakan aplikasi sistem yang berbeda di
setiap divisi dalam perusahaan tersebut. Ada pula yang menggunakan aplikasi yang sama di
divisi yang berbeda, seringkali keseragaman dalam menjalankan sistem tidak diperhatikan
• Oleh karena itu software engineer harus memperhatikan hal-hal yang bersifat konsisten pada saat
merancang aplikasi khususnya antarmuka, contoh: penerapan warna, struktur menu, font, format
desain yang seragam pada antarmuka di berbagai bagian, sehingga user tidak mengalami
kesulitan pada saat berpindah posisi pekerjaan atau berpindah lokasi dalam menyelesaikan
pekerjaan.
• Hal itu didasarkan pada karakteristik manusia yang mempunyai pemikiran yang menggunakan
analogi serta kemampuan manusia dalam hal memprediksi.
• Contoh: keseragaman tampilan toolbar pada Word, Excell, PowerPoint, Access hampir sama.
6. Familiarity
Memberikan tampilan yang familiar terhadap user. Tampilan awal twitter.com sangatlah familiar
di mata user dan tidak membingungkan.
7. Simplicity
• Kesederhanaan perlu diperhatikan pada saat membangun antarmuka.
• Tidak selamanya antarmuka yang memiliki menu banyak adalah antarmuka yang baik.
• Kesederhanaan di sini lebih berarti sebagai hal yang ringkas dan tidak terlalu berbelit.
• User akan merasa jengah dan bosan jika pernyataan, pertanyaan dan menu bahkan informasi
yang dihasilkan terlalu panjang dan berbelit.
• User lebih menyukai hal-hal yang bersifat sederhana tetapi mempunyai kekuatan/ bobot.
8. Direct manipulation
• User berharap aplikasi yang dihadapinya mempunyai media atau tools yang dapat digunakan
untuk melakukan perubahan pada antarmuka tersebut.
• User ingin sekali aplikasi yang dihadapannya bisa disesuaikan dengan kebutuhan, sifat dan
karakteristik user tersebut. Selain itu, sifat dari user yang suka merubah atau mempunyai rasa
bosan.
Contoh: tampilan warna sesuai keinginan (misal pink) pada window bisa dirubah melalui
desktop properties, tampilan skin winamp bisa dirubah, dll.
9. Control
• Prinsip control ini berkenaan dengan sifat user yang mempunyai tingkat konsentrasi yang
berubah-ubah. Hal itu akan sangat mengganggu proses berjalannya sistem.
• Kejadian salah ketik atau salah entry merupakan hal yang biasa bagi seorang user. Akan tetapi
hal itu akan dapat mengganggu sistem dan akan berakibat sangat fatal karena salah memasukkan
data 1 digit/ 1 karakter saja informasi yang dihasilkan sangat dimungkinkan salah.
• Oleh karena itu software engineer haruslan merancang suatu kondisi yang mampu mengatasi dan
menanggulangi hal-hal seperti itu.
• Contoh: “illegal command”, “can’t recognize input” sebagai portal jika terjadi kesalahan.
10. WYSIWYG
• WYSIWYG (what you see is what you get), apa yang didapat adalah apa yang dilihatnya.
• Contoh: apa yang tercetak di printer merupakan informasi yang terkumpul dari data-data yang
terlihat di layar monitor pada saat mencari data.
• Hal ini juga perlu menjadi perhatian software engineer pada saat membangun antarmuka.
• Informasi yang dicari/ diinginkan harus sesuai dengan usaha dari user pada saat mencari data
dan juga harus sesuai dengan data yang ada pada aplikasi sistem (software).
• Jika sistem mempunyai informasi yang lebih dari yang diinginkan user, hendaknya dibuat
pilihan (optional) sesuai dengan keinginan user. Bisa jadi yang berlebihan itu justru tidak
diinginkan user.
• Yang mendasar di sini adalah harus sesuai dengan kemauan dan pilihan dari user.
11. Flexibility
• Fleksibel merupakan bentuk dari solusi pada saat menyelesaikan masalah.
• Software engineer dapat membuat berbagai solusi penyelesaian untuk satu masalah.
• Sebagai contoh adanya menu, hotkey, atau model dialog yang lainnya.
12. Responsiveness
• Setelah memberikan input atau memasukkan data ke aplikasi sistem melalui antarmuka,
sebaiknya sistem langsung memberi tanggapan/ respon dari hasil data yang diinputkan.
• Selain teknologi komputer semakin maju sesuai dengan tuntutan kebutuhan manusia, software
yang dibangun pun harus mempunyai reaksi tanggap yang cepat. Hal ini didasari pada sifat
manusia yang semakin dinamis/ tidak mau menunggu.
13. Invisible Technology
• Secara umum, user mempunyai keingintahuan sebuah kecanggihan dari aplikasi yang
digunakannya. Untuk itu aplikasi yang dibuat hendaknya mempunyai kelebihan yang
tersembunyi. Bisa saja kelebihan itu berhubungan dengan sistem yang melingkupinya atau bisa
saja kecanggihan atau kelebihan itu tidak ada hubungannya.
Contoh: sebuah aplikasi mempunyai voice recognize sebagai media inputan, pengolah kata yang
dilengkapi dengan language translator.
Speech Recognition adalah suatu SO dalam komputer yang memiliki kemampuan menerima
input berupa suara dan mampu memprosesnya sehingga komputer dapat melakukan perintah
kita. penggunaan speech recognition cukup dengan suara saja, kita dapat melakukan perintah
kepada komputer hanya dengan mengatakan satu kata program yang ada di dalam komputer.
dengan begitu komputer dengan otomatis akan memprosesnya. untuk lebih mudah menggunakan
speech recognition lebih baik menggunakan windows 7.
Alat dan bahan :
a. Komputer kusunya windows 7
b. Microphone
c. SO speech rocognition
Cara penggunaan:
1. Klik Start –> Control Panel
2. Pilih menu ease of acces (klik)
3. Klik pada menu speech recognition
4. Jika speech recognition belum terinstal di komputer, maka pilih jenis microphone dan ikuti
langkah selanjutnya untuk menginstal. tinggal klik next saja.
5. Setelah menginstal dan mengatur microphone –> start speech recognition setelah itu akan
muncul tanda speech recognition seperti gambar di atas.Setelah muncul tulisan listening pada
speech recognition katakan satu menu Yang ada dalam komputer melalui microphone. Maka
dengan otomatis speech recognition akan melakukan perintah tersebut selama pengucapan yang
dilakukan sesuai dengan pronouns dalam bahasa inggris.
Contoh hasil uji:
Setelah mengucapkan kata “start menu” maka dengan otomatis akan muncul start menu.
Saat kita membuka suatu aplikasi dan kita mengatakan “close” maka dengan sendirinya aplikasi
itu akan tertutup.
Selain untuk membuka suatu program alam komputer, speech rocognition juga dapat digunakan
untuk menulis dalam word atau notepad selama pengucapan yang diucapkan benar dan sesuai
dalam bahasa inggris. Jika speech recognition ini tidak digunakan maka dengan sendirinya akan
off (sleeping). Sedangkan jika kita mengucapkan kata “stop listening” maka dengan otmatis
speech recognition akan off.
14. Rebotsness
• Interaksi manusia dan komputer (pembangunan antarmuka) yang baik dapat berupa frase-frase
menu atau error handling yang sopan.
• Kata yang digunakan harus dalam kondisi bersahabat sehingga nuansa user friendly akan dapat
dirasakan oleh user selama menggunakan sistem .
• Contoh yang kurang baik: YOU FALSE !!!, BAD FILES !!!, FLOPPY ERROR, dsb. Akan lebih
baik jika BAD COMMAND OR FILES NAMES, DISK DRIVE NOT READY,dll
15. Protection
• Suasana nyaman perlu diciptakan oleh software engineer di antarmuka yang dibangunnya.
• Nyaman disini adalah suasana dimana user akan betah dan tidak menemui suasana kacau ketika
user salah memasukkan data atau salah eksekusi.
• Seorang user akan tetap merasa nyaman ketika dia melakukan kesalahan, misal ketika user
melakukan deleting atau menghapus files tanpa sengaja tidaklah menjadi kekacauan yang berarti
karena misal ada recovery tools seperti undo, recycle bin, dll atau “are you sure….”
• Proteksi disini lebih menjaga kenyamanan user ketika menggunakan aplikasi sistem khususnya
data-data berupa file.
16. Ease Of Learning And Ease Of Use
• Kemudahan dalam mengoperasikan software hanya dengan memandangi atau belajar beberapa
jam saja.
Kemudahan dalam memahami icon, menu-menu, alur data software, dsb.
• Sesudah mempelajari, user dengan mudah dan cepat menggunakan software tersebut. Jika sudah
memahami tentunya akan membantu proses menjalankan sistem dengan cepat dan baik.

Latihan Soal
1. Apakah yang dimaksud antarmuka?
2. Mengapa Desainer harus mencari dan mengumpulkan berbagai karakteristik serta sifat dari user?
3. Aplikasi apakah yang digunakan untuk memperingan pekerjaan manusia?
4. Apakah yang dimaksud Speech Recognition?
5. Apakah fungsi speech rocognition?

Jawaban
1. Topeng dari sebuah sistem atau sebuah pintu gerbang masuk ke sistem dengan diwujudkan ke
dalam sebuah aplikasi software
2. Karena antarmuka harus disesuaikan dengan user yang jumlahnya bisa jadi lebih dari satu dan
mempunyai karakter yang berbeda
3. Workflow compatibility
4. Suatu SO dalam komputer yang memiliki kemampuan menerima input berupa suara dan mampu
memprosesnya sehingga komputer dapat melakukan perintah
5. Digunakan untuk menulis dalam word atau notepad selama pengucapan yang diucapkan benar
dan sesuai dalam bahasa inggris.
Penskoran
No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Januari 2018


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1I (Dua)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 12x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.11 Menerapkan berbagai struktur kontrol dalam aplikasi antar muka (User Intreface).
4.11 Membuat kode program berbagai struktur kontrol dalam aplikasi antar muka (User
Intreface).
C. Indikator Pencapaian Kompetensi
3.11 Menerapkan berbagai struktur kontrol dalam aplikasi antar muka (User Intreface).
3.11.1 Memahami struktur kontrol dalam aplikasi antar muka (User Intreface).
3.11.2 Mempraktekkan berbagai struktur control dalam aplikasi antar muka (User Intreface

4.11 Membuat kode program berbagai struktur kontrol dalam aplikasi antar muka (User
Intreface).
4.11.1 Mengubah kode program struktur control dalam aplikasi antar muka (user interface)
4.11.2 Memodifikasi kode program struktur control dalam aplikasi antar muka (user
interface

Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mendemonstrasikan berbagai
struktur control dalam aplikasi antar muka (User Intreface) dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mempraktekkan berbagai struktur
control dalam aplikasi antar muka (User Intreface) dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah kode program struktur
control dalam aplikasi antar muka (user interface) dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi kode program
struktur control dalam aplikasi antar muka (user interface) dengan tepat

D. Materi Pembelajaran
struktur kontrol dalam aplikasi antar muka (User Intreface).
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 - 3
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai pembelajaran
Melakukan pengkondisian peserta didik
Menyampaikan tujuan pembelajaran yang akan dicapai.
1 Pendahuluan 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar komputer
tentang struktur kontrol dalam aplikasi antar muka (User Intreface).
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum jelas untuk
ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk acuan dalam
mempraktekkan struktur kontrol dalam aplikasi antar muka (User Intreface).
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari guru dari
tayangan video yang telah diputar
2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar peserta
didik memahaminya
3. Guru mempraktekkan struktur kontrol dalam aplikasi antar muka (User Intreface). di
depan peserta didik
2 Kegiatan Inti
4. Peserta didik memperhatikan dan mencoba praktek Membuat struktur kontrol dalam
aplikasi antar muka (User Intreface).sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara struktur kontrol dalam aplikasi antar muka
(User Intreface dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat struktur kontrol
dalam aplikasi antar muka (User Intreface)
3. Guru memberitahukan struktur kontrol dalam aplikasi antar muka (User Intreface
kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju mendemonstrasikan,
mempraktekkan, mengubah dan memodifikasi struktur kontrol dalam aplikasi antar
muka (User Intreface
2. Peserta didik maju satu persatu sesuai dengan panggilan guru
3. Peserta didik berusaha mendemonstrasikan, mempraktekkan, mengubah struktur
kontrol dalam aplikasi antar muka (User Intreface aplikasi
4. Guru memperhatikan peserta didik dalam mendemonstrasikan, mempraktekkan,
mengubah dan memodifikasi struktur kontrol dalam aplikasi antar muka (User
Intreface dan mengarahkan jika ada peserta didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam membuat memodifikasi struktur kontrol
dalam aplikasi antar muka (User Intreface
3. Peserta didik mengamati penjelasan guru jika ada salah dalam memodifikasi struktur
kontrol dalam aplikasi antar muka (User Intreface
4. Guru mengevaluasi dari hasil peserta didik dalam dalam memodifikasi struktur kontrol
dalam aplikasi antar muka (User Intreface
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan struktur kontrol
dalam aplikasi antar muka (User Intreface
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara individu
3 Penutup untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang struktur
kontrol dalam aplikasi antar muka (User Intreface
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta didik untuk
mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Antarmuka pemakai (User Interface) merupakan mekanisme komunikasi antara pengguna (user)
dengan sistem. Antarmuka pemakai (User Interface) dapat menerima informasi dari pengguna (user)
dan memberikan informasi kepada pengguna (user) untuk membantu mengarahkan alur penelusuran
masalah sampai ditemukan suatu solusi. Contoh konsep luas user interface mencakup aspek interaktif
sistem operasi komputer, perkakas tangan, operator kontrol mesin berat. dan proses kontrol.
Pertimbangan desain yang berlaku saat membuat user interface berkaitan dengan ergonomik dan
psikologi.
User interface yang ada untuk berbagai sistem, dan menyediakan cara :
• Input, memungkinkan pengguna untuk memanipulasi sistem.
• Output, memungkinkan sistem untuk menunjukkan efek manipulasi pengguna.
• Menyesuaikan antar muka pengguna dengan tugas.
• Membuat antar muka pengguna menjadi efisien.
• Memberikan arus balik yang tepat kepada pengguna.
• Memunculkan pertanyaan-pertanyaan yang dapat dimanfaatkan.
• Memperbaiki produktivitas dari pengetahuan pegawai

 Untuk membuat suatu interface yang baik dalam suatu aplikasi harus memperhatikan
beberapa hal penting :
• Harus memahami konsep dasar dari interaksi manusia dan komputer.
• Harus mendesain interaksi dan proses.
• Terdapat notasi,dialog dan desain dalam interface
• Model-model dari sistem
• Pendukung implementasi interface
 User interface bahasa alamiah
Ideal bagi user yang tidak berpengalaman, karena interface menggunakan bahasa sehari-hari
Adanya perbedaan bahasa antara komputer & manusia sehingga diperlukan penerjemah yang
mampu menerjemahkan 2 arah.
• Memberi kemudahan kepada user untuk mengontrol suatu aplikasi dengan
serangkaian tekanan tombol, perintah-perintah, frase atau beberapa rangkaian dari 3
metode ini.
• User Interface GUI
• Memungkinkan adanya manipulasi langsung pada tampilan grafis di layar, yang
dapat diselesaikan dengan inputan dari keyboard, joystick atau mouse
• Variable tempat kerja yang penting untuk dipertimbangkan:
• warna ruang komputer & pencahayaan
• tampilan layar
• keyborad user, mouse
• meja komputer & kursi
Ada 5 tipe utama interaksi untuk user interaction:
1. Direct manipulation – pengoperasian secara langsung : interaksi langsung dengan objek
pada layar. Misalnya delete file dengan memasukkannya ke trash. Contoh: Video games.
Kelebihan : Waktu pembelajaran user sangat singkat, feedback langsung diberikan pada tiap
aksi sehingga kesalahan terdeteksi dan diperbaiki dengan cepat.

Kekurangan : Interface tipe ini rumit dan memerlukan banyak fasilitas pada sistem
komputer, cocok untuk penggambaran secara visual untuk satu operasi atau objek.
Menu selection – pilihan berbentuk menu : Memilih perintah dari daftar yang disediakan.
Misalnya saat click kanan dan memilih aksi yang dikehendaki.
Kelebihan : User tidak perlu ingat nama perintah. Pengetikan minimal. Kesalahan rendah.
Kekurangan : Tidak ada logika AND atau OR. Perlu ada struktur menu jika banyak pilihan.
Menu dianggap lambat oleh expert user dibanding command language.
Command language – perintah tertulis : Menuliskan perintah yang sudah ditentukan pada
program. Contoh: operating system.
Kelebihan : Perintah diketikan langsung pada system. Misal UNIX, DOS command. Bisa
diterapkan pada terminal yang murah.Kombinasi perintah bisa dilakukan. Misal copy file dan
rename nama file.
Kekurangan : Perintah harus dipelajari dan diingat cara penggunaannya, tidak cocok untuk
user biasa. Kesalahan pakai perintah sering terjadi. Perlu ada sistem pemulihan
kesalahan.Kemampuan mengetik perlu.
Natural language – perintah dengan bahasa alami : Menggunakan bahasa alami untuk
mendapatkan hasil. Contoh: search engine di Internet.
Kelebihan: Perintah dalam bentuk bahasa alami, dengan kosa kata yang terbatas (singkat),
misalnya kata kunci yang kita tentukan untuk dicari oleh search engine. Ada kebebasan
menggunakan kata-kata.
Kekurangan: Tidak semua sistem cocok gunakan ini. Jika digunakan maka akan memerlukan
banyak pengetikan.
Tujuan sebuah user interface adalah mengkomunikasikan fitur-fitur sistem yang tersedia agar
user mengerti dan dapat menggunakan sistem tersebut. Dalam hal ini penggunaan bahasa
amat efektif untuk membantu pengertian, karena bahasa merupakan alat komunikasi tertua
kedua gestur, yang dipakai orang untuk berkomunikasi sehari-harinya.
Tanpa bahasa pun kadang ikon bisa tidak jelas maknanya, sebab tidak semua lambang ikon
bisa bersifat universal.
Meski penting, namun sayangnya kadang penggunaan bahasa, seperti pemilihan istilah,
sering dianggap kurang begitu penting. Bahasa sering menjadi sesuatu yang nomor dua
ketimbang elemen-elemen interface lainnya.

Latihan soal
1. Apakah yang dimaksud user interface?
2. Apakah tujuan dari user interface?
3. Sebutkan kelebihan dan kekujrangan dari natural language!
4. Berikan contoh dari Command language?
5. Sebutkan kelebihan dan kekurangan dari menu selection?
Jawaban
1. Merupakan mekanisme komunikasi antara pengguna (user) dengan sistem. Antarmuka pemakai
2. Mengkomunikasikan fitur-fitur sistem yang tersedia agar user mengerti dan dapat menggunakan
sistem tersebut.
3. Kelebihan: Perintah dalam bentuk bahasa alami, dengan kosa kata yang terbatas (singkat),
misalnya kata kunci yang kita tentukan untuk dicari oleh search engine. Ada kebebasan
menggunakan kata-kata.
Kekurangan: Tidak semua sistem cocok gunakan ini. Jika digunakan maka akan memerlukan
banyak pengetikan
4. Operating sistem
5. Kelebihan : User tidak perlu ingat nama perintah. Pengetikan minimal. Kesalahan rendah.
Kekurangan : Tidak ada logika AND atau OR. Perlu ada struktur menu jika banyak pilihan. Menu
dianggap lambat oleh expert user dibanding command language

Penskoran
No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Februari 2018


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1I (Dua)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 12x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.12 Menganalisis pembuatan aplikasi sederhana berbasis antar muka (User Intreface)
4.12 Membuat aplikasi sederhana berbasis antar muka (User Intreface)
C. Indikator Pencapaian Kompetensi
3.12 Menganalisis pembuatan aplikasi sederhana berbasis antar muka (User Intreface)
3.12.1 Mengetahui cara pembuatan aplikasi sederhana berbasis antar muka (User Intreface)
3.12.2 Memahami permasalahan dalam pembuatan aplikasi sederhana berbasis antar muka
(User Intreface)

4.12 Membuat aplikasi sederhana berbasis antar muka (User Intreface)


4.12.1 Memodifikasi aplikasi sederhana berbasis antar muka (user interface
4.12.2 Mengubah aplikasi sederhana berbasis antar muka (user interface)
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menghubungkan pembuatan
aplikasi sederhana berbasis antar muka (User Intreface) dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat membagi permasalahan
permasalahan pembuatan aplikasi sederhana berbasis antar muka (User Intreface) dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat mengubah aplikasi sederhana
berbasis antar muka (user interface) dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat memodifikasi aplikasi sederhana
berbasis antar muka (user interface)dengan tepat

D. Materi Pembelajaran
aplikasi sederhana berbasis antar muka (user interface)
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Project Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 - 3
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Penentuan pertanyaan mendasar
1. Guru meminta peserta didik untuk memperhatikan video yang ada di layar
komputer tentang pembuatan aplikasi sederhana berbasis antar muka (User
Intreface)
2. Guru meminta peserta didik memperhatikan dan menyimak tayangan video
tersebut
3. Peserta didik membuat catatan kecil tentang materi atau video yang belum
jelas untuk ditanyakan pada guru
4. Peserta didik mengajukan pertanyaan dari materi yang telah dicatat untuk
acuan dalam mempraktekkan pembuatan aplikasi sederhana berbasis antar
muka (User Intreface)
Merndesain Perencanaan Proyek
1. Peserta didik bertanya untuk memperoleh penjelasan yang mendetail dari
guru dari tayangan video yang telah diputar
2 Kegiatan Inti 2. Guru menjelaskan dari masing – masing pertranyaan dari peserta didik agar
peserta didik memahaminya
3. Guru mempraktekkan pembuatan aplikasi sederhana berbasis antar muka
(User Intreface) di depan peserta didik
4. Peserta didik memperhatikan dan mencoba praktek Membuat pembuatan
aplikasi sederhana berbasis antar muka (User Intreface) sendiri
Menyusun Jadwal
1. Peserta didik memahami penjelasan cara struktur kontrol dalam pembuatan
aplikasi sederhana berbasis antar muka (User Intreface) dari guru
2. Guru membuat jadwal untuk mengetes peserta didik dalam membuat
pembuatan aplikasi sederhana berbasis antar muka (User Intreface)
3. Guru memberi tahukan pembuatan aplikasi sederhana berbasis antar muka
(User Intreface) Kepada peserta didik
4. Peserta didik mendengarkan penjelasan atau informasi dari guru
Memonitor pese3rta didik dan kemajuan proyek
1. Guru memanggil peserta didik sesuai absen untuk maju menghubungkan,
membagi permasalahan, mengubah dan memodifikasi pembuatan aplikasi
sederhana berbasis antar muka (User Intreface)

2. Peserta didik maju satu persatu sesuai dengan panggilan guru


3. Peserta didik berusaha menghubungkan, membagi permasalahan, mengubah
dan memodifikasi pembuatan aplikasi sederhana berbasis antar muka (User
Intreface)
4. Guru memperhatikan peserta didik dalam menghubungkan, membagi
permasalahan, mengubah dan memodifikasi pembuatan aplikasi sederhana
berbasis antar muka (User Intreface) dan mengarahkan jika ada peserta
didik yang belum tahu
Menguji hasil evaluasi dan mengevaluasi pengalaman
1. Guru mengamati hasil yang telah dibuat oleh peserta didik
2. Guru menguji hasil dari peserta didik dalam menghubungkan, membagi
perma salahan, mengubah dan memodifikasi pembuatan aplika si sederhana
berba sis antar muka (User Intreface)
3. Peserta didik mengamati penjelasan guru jika ada salah dalam menghu
bungkan, membagi permasalahan, me ngubah dan memo difikasi
pembuatan aplikasi sederhana berbasis antar mu ka (User Intreface)
4. Guru mengevaluasi dari hasil peserta didik dalam dalam menghubungkan,
membagi permasalahan, me ngubah dan memo difikasi pembuatan aplikasi
sederhana berbasis antar mu ka (User Intreface)
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan aplikasi
sederhana berbasis antar muka
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
aplikasi sederhana berbasis antar muka
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek
URAIAN MATERI
1. Antarmuka Pemakai (User Interface) merupakan mekanisme komunikasi antara pengguna
(user) dengan sistem. Antarmuka pemakai (User Interface) dapat menerima informasi dari
pengguna (user) dan memberikan informasi kepada pengguna (user) untuk membantu
mengarahkan alur penelusuran masalah sampai ditemukan suatu solusi.
User Interface, berfungsi untuk menginputkan pengetahuan baru ke dalam basis pengetahuan
sistem pakar (ES), menampilkan penjelasan sistem dan memberikan panduan pemakaian sistem
secara menyeluruh step by step sehingga user mengerti apa yang akan dilakukan terhadap suatu
sistem. Yang terpenting dalam embangun user interface adalah kemudahan dalam memakai/
menjalankan sistem, interaktif, komunikatif, sedangkan kesulitan dalam mengembangkan/
membangun suatu program jangan terlalu diperlihatkan.
2. Tujuan Antar Muka (interface) Pengguna
 Menyesuaikan antar muka pengguna dengan tugas.
 Membuat antar muka pengguna menjadi efisien.
 Memberikan arus balik yang tepat kepada pengguna.
 Memunculkan pertanyaan-pertanyaan yang dapat dimanfaatkan.
 Memperbaiki produktivitas dari pengetahuan pegawai
3. Manfaat Antar Muka (Interface) pengguna
Manfaat User Interface untuk menghubungkan atau penterjemah informasi antara pengguna
dengan system operasi, sehingga computer dapat digunakan. Dengan demikian, user interface
bisa juga diartikan sebagai mekanisme inter-relasi atau integrasi total dari perangkat keras dan
lunak yang membentuk pengalaman bekomputer. Use interface dari sisi software bias berbentuk
Graphical User Interface (GUI) atau Command Line Interfae (CLI), sedangkan dari sisi
hardware bias berbentuk Aplle Desktop Bus (ADB), USB, dan fire wire.
4. Prinsip Desain User interface
User interface desain adalah desain komputer, peralatan, mesin, perangkat komunikasi mobile,
aplikasi perangkat lunak, dan situs web dengan fokus pada pengalaman pengguna dan interaksi.
Tujuan dari user interface design adalah membuat interaksi pengguna sesederhana dan seefisien
mungkin, dalam hal mencapai tujuan pengguna-apa yang sering disebut pengguna desain yang
berpusat. User interface design yang bagus memfasilitasi dan menyelesaikan tugas di tangan
tanpa menarik perhatian yang tidak perlu pada dirinya sendiri. Desain grafis dapat dimanfaatkan
untuk mendukung kegunaan. Proses desain harus menyeimbangkan fungsi teknis dan elemen
visual (misalnya, model mental) untuk menciptakan sebuah sistem yang tidak hanya operasional
saja tetapi juga bermanfaat serta dapat disesuaikan dengan kebutuhan pengguna berubah.
Interface design terlibat dalam berbagai proyek dari sistem komputer, untuk mobil, untuk
pesawat komersial; semua proyek-proyek ini melibatkan banyak interaksi sama manusia dasar,
namun juga membutuhkan beberapa keterampilan yang unik dan pengetahuan. Akibatnya,
desainer cenderung mengkhususkan diri pada jenis proyek tertentu dan memiliki kemampuan
berpusat di sekitar keahlian mereka, apakah itu perancangan perangkat lunak, penelitian
pengguna, desain web, atau desain industri.
5. Penyajian User Interface
 Fungsi persyaratan pengumpulan hingga perakitan daftar fungsi yang diperlukan oleh sistem
untuk mencapai tujuan proyek dan potensi kebutuhan pengguna.
 User analisis – menganalisis potensi pemakai sistem baik melalui diskusi dengan orang-orang
yang bekerja dengan pengguna dan / atau potensi pemakai sendiri. pertanyaan Khas meliputi:
 Apa yang akan pengguna ingin sistem untuk melakukan?
 Bagaimana sistem fit dengan alur kerja normal pengguna atau kegiatan sehari-hari?
 Bagaimana cerdas secara teknis adalah pengguna dan apa sistem tidak seupa pengguna sudah
gunakan?
 Seperti apa tampilan & merasa gaya banding kepada pengguna?
 Arsitektur Informasi – pengembangan proses dan / atau arus informasi darisistem(misalnya
untuk sistem pohon telepon, ini akan menjadi sebuah pohon pilihan flowchart dan untuk situs
web ini akan menjadi aliran situs yang menunjukkan hirarki dari halaman).
 Prototyping – pengembangan wireframes, baik dalam bentuk kertas atau prototip layar interaktif
sederhana. Prototipe ini dilepaskan dari semua tampak & merasa elemen dan konten yang paling
dalam rangka untuk berkonsentrasi pada antarmuka jaringan.
 Kegunaan pengujian – pengujian prototipe pada teknik pengguna-sering menggunakan yang
sebenarnya yang disebut berpikir keras protokol di mana Anda meminta pengguna untuk
berbicara tentang pikiran mereka selama pengalaman.
 Grafis Desain interface – tampilan yang sebenarnya & merasa User interface desain akhir grafis
(GUI). Ini mungkin didasarkan pada temuan dikembangkan selama pengujian kegunaan jika
kegunaan adalah terduga, atau berdasarkan tujuan komunikasi dan gaya yang menarik bagi
pengguna. Dalam kasus yang jarang terjadi, mungkin grafis drive prototipe, tergantung pada
pentingnya bentuk visual versus fungsi. Jika interface telah membutuhkan beberapa kulit,
mungkin ada beberapa desain interface untuk satu panel kontrol, fitur fungsional atau widget.
Fase ini sering merupakan upaya kolaborasi antara desainer grafis dan interface designer
pengguna, atau ditangani oleh orang yang ahli dalam kedua disiplin.
6. Perancangan Antar Muka ( interface) Pengguna
Tujuan dari Perancangan Antarmuka Pengguna adalah merancang interface yang efektif untuk
sistem perangkat lunak. Efektif artinya siap digunakan, dan hasilnya sesuai dg
kebutuhan. Kebutuhan disini adalah kebutuhan penggunanya. Pengguna sering menilai sistem
dari interface, bukan dari fungsinya melainkan dari user interfacenya. Jika desain user
interfacenya yang buruk, maka itu sering jadi alasan untuk tidak menggunakan software. Selain
itu interface yang buruk sebabkan pengguna membuat kesalahan fatal. Saat ini interface yang
banyak digunakan dalam software adalah GUI (Graphical User Interface). GUI memberikan
keuntungan seperti:
1. Gampang dipelajari oleh pengguna yang pengalaman dalam menggunakan komputer cukup
minim.
2. Berpindah dari satu layar ke layar yang lain tanpa kehilangan informasi dimungkinkan.
3. Akses penuh pada layar dengan segera untuk beberapa macam tugas/keperluan.
7. Tipe-Tipe Interaksi Antar Muka (Interface) Pengguna
Pemilihan tipe interaksi yang tepat dapat memberikan efek yang baik terhadap dialog antara
user dengan komputer. Terdapat beberapa tipe interaksi yang umum digunakan, yaitu :
1. Command Line Interface (CLI)
Merupakan bentuk dialog interaktif yang pertama digunakan dan masih dipakai hingga saat ini.
Dengan CLI, user memberikan instruksi secara langsung kepada komputer menggunakan
tombol fungsi, karakter tunggal, command dalam bentuk singkat maupun panjang. CLI
memungkinkan user mengakses dengan cepat fungsi sistem dan beberapa tools.
2. Menu
Pada menu-driven interface , sekumpulan opsi / pilihan yang tersedia bagi user ditampilkan
pada layar dan dapat dipilh dengan menggunakan mouse atau tombol numerik maupun
alfabetik. Pilihan pada menu harus merepresentasikan arti dan dikelompokkan berdasarkan
suatu kategori agar mudah dikenali dan memudahkan user memilih sesuai dengan tugas yang
akan dilaksanakan.
3. Natural language
Mungkin merupakan mekanisme komunikasi yang atraktif. Umumnya, komputer tidak dapat
mengerti instruksi yang dituliskan dalam bahasa sehari-hari. Natural language dapat mengerti
input tertulis (written input) dan suara (speech input). Namun masih ada kekurangan dalam hal
ambiguity (kerancuan) pada aspek sintaks dan semantik.
4. Q/A & query dialogue
Merupakan mekanisme sederhana untuk input pada beberapa aplikasi. User
diberikan serangkaian pertanyaan umumnya dalam bentuk jawaban ya/tidak (Y/N),
pilihan ganda atau dalam bentuk kode, dan dibimbing tahap demi tahap selama proses interaksi.
Interface ini mudah dipelajari namun terbatas fungsinya.
5. Form-fills and spreadsheet
Form-fill utamanya digunakan untuk aplikasi pemasukan (data entry) dan pencarian (data
retrieval) data. Bentuk form-fill adalah berupa display yang menyerupai selembar kertas dengan
beberapa slot / field untuk diisi. Spreadsheet adalah variasi dari form-fill. Spreadsheet terdiri
dari sel yang dapat berisi nilai atau formula.
6. WIMP interface (Windows, Icons, Menu, Pointers)
WIMP merupakan default interface untuk sebagian besar sistem komputer interaktif yang
digunakan saat ini terutama pada PC dan desktop workstation.
Window merupakan area layar yang berprilaku seperti terminal independent dan berisi grafik
atau teks yang dapat dipindahkan dan idiubah ukurannya. Satu layar dapat terdiri dari lebih 1
window yang memungkinkan lebih dari satu tugas aktif pada saat yang sama. Icon merupakan
sebuah gambar kecil yang digunakan untuk merepresentasikan windows yang sedang berada
dalam keadaan tertutup (closed). Window dapat diaktifkan / diperbesar dengan meng-klik icon
yang bersangkutan, dan sebaliknya jika user tidak menggunakan / mengerjakan tugas pada satu
window tertentu maka dia dapat menon-aktifkan window menjadi icon yang disebut sebagai
iconifying . Menu adalah tehnik interaksi yang umum digunakan bahkan oleh sistem non-
window sekalipun. Menu menampilkan pilihan operasi atau layanan yang diberikan / tersedia
oleh sistem. User dapat memperoleh petunjuk mengenai operasi apa saja pada sistem melalui
menu. Oleh karena itu penamaan pad amenu haruslah memiliki arti dan informatif. Pointer
merupakan komponen yang penting dalam sistem WIMP karena interaksi pada sistem ini
memerlukan aktifitas menunjuk (pointing) dan memilih (selecting). User diberikan cursor pada
layar yang dapat dikendalikan oleh peralatan input seperti mouse, joystick, ataupun trackball

Latihan soal
1. Apakah yang dimaksud user interface?
2. Apakah tujuan dari user interface?
3. Apasajakah yang termasuk dalam user interface?
4. Apakah tujuan dari perancangan user interface?
5. Sebutkan keuntungan dari GUI!

Jawaban
1. User Interface) merupakan mekanisme komunikasi antara pengguna (user) dengan sistem
2. Untuk menginputkan pengetahuan baru ke dalam basis pengetahuan sistem pakar (ES),
menampilkan penjelasan sistem dan memberikan panduan pemakaian sistem secara menyeluruh
step by step sehingga user mengerti apa yang akan dilakukan terhadap suatu sistem
3. Desain komputer, peralatan, mesin, perangkat komunikasi mobile, aplikasi perangkat lunak, dan
situs web dengan fokus pada pengalaman pengguna dan interaksi
4. Tujuan dari Perancangan Antarmuka Pengguna adalah merancang interface yang efektif untuk
sistem perangkat lunak.
5. Gampang dipelajari oleh pengguna yang pengalaman dalam menggunakan komputer cukup
minim.
Berpindah dari satu layar ke layar yang lain tanpa kehilangan informasi dimungkinkan.
Akses penuh pada layar dengan segera untuk beberapa macam tugas/keperluan.

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Maret 2018


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1I (Dua)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, dunia kerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.13 Mengevaluasi debuging pada aplikasi sederhana
4.13 Menggunakan debuging pada aplikasi sederhana
C. Indikator Pencapaian Kompetensi
3.13 Mengevaluasi debuging pada aplikasi sederhana
3.13.1 Menyimpulkan debuging aplikasi pada sederhana
3.13.2 Menilai debuging aplikasi pada sederhana

4.13 Menggunakan debuging pada aplikasi sederhana


4.13.1 Menerapkan debugging pada aplikasi sederhana
4.13.2 Menemukan debugging pada aplikasi sederhana
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menyimpulkan debuging aplikasi
pada sederhana dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menilai debuging aplikasi pada
sederhana dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menerapkan debugging pada
aplikasi sederhana dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menemukan debugging pada
aplikasi sederhana dengan tepat

D. Materi Pembelajaran
debugging pada aplikasi sederhana
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Discovery Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Pemberian rangsangan
1. Guru meminta peserta didik untuk melihat materi di layar komputer
debuging pada aplikasi sederhana
2. Guru meminta peserta didik untuk membaca buku panduan yang lainnya
agar dapat mudah dipahami
3. Peserta didik dapat mengidentifikasi masalah dari materi yang disajikan
oleh guru
Identifikasi masalah
1. Guru menugaskan peserta didik untuk menyimpulkan, menilai, menerapkan,
menemukan debugging pada aplikasi sederhana
2. Pesera didik berusaha untuk dapat menyimpulkan, menilai, menerapkan,
menemukan debugging pada aplikasi sederhana
3. Setelah peserta didik membaca buku panduan yang lainnya peserta didik
dapat menyimpulkan, menilai, menerapkan, menemukan debugging pada
aplikasi sederhana
2 Kegiatan Inti 4. Peserta didik mendiskusikan dengan kelompok yang lainnya tentang
menyimpulkan, menilai, menerapkan, menemukan debugging pada aplikasi
sederhana
5. Peserta didik menyampaikan hasil diskusi di depan kelas, kelompok yang
lainnya memberikan tanggapan
Pengumpulan data
1. Guru meminta peserta didik untuk mencari buku panduan atau informasi
menyimpulkan, menilai, menerapkan, menemukan debugging pada aplikasi
sederhana
2. Peserta didik mencoba menyimpulkan, menilai, menerapkan, menemukan
debugging pada aplikasi sederhana petunjuk dari guru sebagai pembuktian
pengujian hipotesis
Pembuktian
1. Peserta didik menyimpulkan, menilai, menerapkan, menemukan debugging
pada aplikasi sederhana
2. Guru meminta peserta didik untuk menilai hasil yang telah dibuat oleh
peserta didik yang lainnya
3. Peserta didik menilai berdasarkan format penilaian yang sudah ada
Menarik Simpulan
1. Guru menjelaskan kepada peserta didik tentang menyimpulkan, menilai,
menerapkan, menemukan debugging pada aplikasi sederhana
2. Guru menugaskan peserta didik untuk menyimpulkan, menilai,
menerapkan, menemukan debugging pada aplikasi sederhana
3. Peserta didik mengerjakan tugas dari guru untuk menyimpulkan, menilai,
menerapkan, menemukan debugging pada aplikasi sederhana
4. Peserta didik yang lain menanggapi kesimpulan dari peserta didik yang
sedang maju untuk mempresentasikan hasilnya
5. Peserta didik memperbaiki hasil presentasi berdasarkan tanggapan dari
temannya
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
debugging pada aplikasi sederhana
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
debugging pada aplikasi sederhana
5.Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup

Alat/ bahan, Media Pembelajaran


Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian

Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Istilah debugging dalam programming, artinya adalah mencari kesalahan algoritma dalam program
yang sedang dibuat. Lho… bagaimana kita tahu ada algoritma yang salah? Algoritma yang salah ini
akan mengakibatkan hasil atau output yang salah atau tidak seperti yang diharapkan. Istilah kesalahan
ini sering disebut ‘algoritmic error’.
Contoh sederhana dari algoritmic error ini adalah, misalkan kita akan membuat program untuk
menjumlahkan dua buah bilangan bulat, katakanlah A dan B. Dan program yang dibuat adalah
sebagai berikut (dalam Pascal):
program jumlahkan;
var a, b, hasil : integer;
begin
write('Masukkan nilai A : ');
readln(a);
write('Masukkan nilai B : ');
readln(b);
hasil := a - b;
write('Hasil penjumlahannya adalah : ',hasil);
end.
Apabila kita jalankan program di atas atau kita compile, maka tidak akan ada error yang muncul,
dalam hal ini syntax error (error yang terkait dengan aturan penulisan program). Namun ketika
dijalankan, dan misalkan kita masukkan nilai A = 5 dan B = 4, maka hasil yang muncul adalah 1
(bukannya 9). Nah… inilah yang dimaksud dengan algoritmic error, atau error yang disebabkan
kesalahan dalam langkah penyelesaian masalah.
Misalkan, diberikan algoritma untuk merebus mie instan sbb:
1. Buka bungkus mie
2. Siapkan panci dan taruh panci di atas kompor
3. Masukkan mie ke dalam panci
4. Nyalakan api kompor kira-kira 3 menit
5. Masukkan air mentah 2 gelas
6. Matikan kompor
7. Taruh mie ke dalam mangkuk
Nah… bagaimana pendapat Anda tentang algoritma di atas? Ya… kita akan tetap mendapatkan
output dari proses merebus mie, tapi tidak sesuai yang diharapkan, yaitu mienya gosong dan airnya

masih mentah Mengapa demikian? ya… hal ini karena ada langkah yang salah dalam merebus
mie. Inilah contoh algoritmic error.
So… saya harap Anda sudah tahu maksud algoritmic error. Sekarang, bila Anda mendapatkan
program yang Anda buat mengalami algoritmic error, apa yang harus dilakukan? Ya… langkah satu-
satunya adalah mencari letak proses yang salah dalam algoritmanya. Nah… proses pencarian ini
dinamakan debugging.

Mengapa disebut debugging? Konon istilah tersebut muncul karena si penemu kata ini pada
waktu itu juga sedang mencari kesalahan program, namun saking jengkelnya karena gak ketemu-
ketemu, trus dia menyebutnya si ‘kutu’ atau ‘bug’. Kemudian istilah mencari si kutu program ini,
sering disebut ‘debugging’.
Kalau kita mendapati syntax error, maka dapat dengan mudah dan cepat kita akan menemukannya.
Hal ini karena biasanya akan muncul warning adanya penulisan yang salah dan biasanya akan disertai
dengan nomor baris yang salah tersebut. Nah… kalau algoritmic error, proses pencariannya tidak
mudah.
So… bagi para mahasiswaku atau pengunjung setia blog ini, bila program Anda dicompile tidak ada
error, jangan bersenang-senang dahulu, karena tujuan proses compile itu hanya mencari ada tidaknya

syntax error. Siapa tahu program Anda menyimpan si kutu


OK… kita kembali ke laptop, eh salah… kembali ke teknik debugging
Trus… sekarang bagaimana langkah debugging, bila program sudah jadi namun hasilnya salah? Ya…
untuk proses ini, Anda harus mengeceknya step by step sesuai alur algoritma program yang Anda
buat. Bagaimana cara mengeceknya? Kalau saya pribadi, atau yang sering saya lakukan adalah
menampilkan output di setiap proses. Sedangkan proses setelah bagian yang sedang saya cek
tersebut, saya nonaktifkan atau saya buat menjadi komentar.
Perhatikan contoh berikut ini. Contoh ini baru saja saya gunakan untuk menjelaskan teknik
debugging ketika perkuliahan.
program cariKombinasi;
var n, m : integer;
kombinasi : real;

function faktorial(x : integer) : real;


var i : integer;
hasil : real;
begin
hasil := 1;
for i:=1 to x do
begin
hasil := hasil * i;
end;
faktorial := hasil;
end;

begin
n := 3;
m := 2;
kombinasi := faktorial(n)/faktorial(n-m)*faktorial(m);
write(kombinasi);
end.
Program di atas dibuat dengan tujuan untuk mencari hasil dari kombinasi n, m atau C(n, m). Dari
contoh di atas, dipilih n = 3 dan m = 2. Menurut perhitungan kita, hasil yang benar dari kombinasi
tersebut adalah 3. Namun apa yang terjadi bila program di atas dijalankan? Ya… dari sisi syntax error
tidak ada, namun hasilnya adalah 12. Tentu hal ini salah.
Lantas… bagaimana mengetahui letak kesalahannya? Ya… untuk melakukan hal ini, kita harus
mengecek terlebih dahulu apakah function faktorial() sudah berfungsi dengan baik atau belum. Untuk
mengeceknya, ya… kita tambahkan saja perintah write(faktorial(n));
begin
n := 3;
m := 2;
write(faktorial(n));
{ kombinasi := faktorial(n)/faktorial(n-m)*faktorial(m);
write(kombinasi);}
end.
Oya… untuk baris perintah setelah write(faktorial(n)) ini hendaknya kita jadikan komentar dahulu
supaya tidak ada interfensi dalam proses. Apabila dijalankan, maka akan muncul output 6. Ya… hasil
ini benar karena kita menampilkan n! atau dalam hal ini 3!. Sehingga function faktorial() tidak ada
masalah dan berfungsi dengan baik.
Selanjutnya akan kita cek untuk menghitung kombinasinya sendiri atau pada baris
kombinasi := faktorial(n)/faktorial(n-m)*faktorial(m);
Satu-satunya kemungkinan salah adalah di sini, karena proses inilah yang dilakukan tepat sebelum
ditampilkan outputnya. Apabila kita perhatikan dengan benar, maka ada bagian yang salah yaitu pada
pembagian. Ingat rumus mencari C(n, m). Rumus yang benar haruslah
kombinasi := faktorial(n)/(faktorial(n-m)*faktorial(m));
sehingga baris programnya menjadi
begin
n := 3;
m := 2;
kombinasi := faktorial(n)/(faktorial(n-m)*faktorial(m));
write(kombinasi);
end.
Nah… setelah diperbaiki, barulah program di atas akan menghasilkan output yang benar yaitu 3.
Sehingga kesimpulan dari teknik debug ini adalah ceklah output untuk setiap langkah proses dengan
menampilkannya ke layar. Untuk menghindari interfensi dari baris program yang lain, hendaknya
baris program di bawahnya atau selanjutnya, dibuat komentar (jangan dihapus) terlebih dahulu.
Teknik ini bisa diterapkan untuk bahasa pemrograman yang lain.
Debugging adalah sebuah metode yang dilakukan oleh para pemrogram dan pengembang perangkat
lunak untuk mencari dan mengurangi bug, atau kerusakan di dalam sebuah program komputer atau
perangkat keras sehingga perangkat tersebut bekerja sesuai dengan harapan. Debugging cenderung
lebih rumit ketika beberapa subsistem lainnya terikat dengan ketat dengannya, mengingat sebuah
perubahan di satu sisi, mungkin dapat menyebabkan munculnya bug lain di dalam subsistem lainnya.
Bug dengan terjemahan langsung ke bahasa Indonesia adalah serangga atau kutu. Bug merupakan
suatu kesalahan desain pada suatu perangkat keras komputer atau perangkat lunak komputer yang
menyebabkan peralatan atau program itu tidak berfungsi semestinya. Bug umumnya lebih umum
dalam dunia perangkat lunak dibandingkan dengan perangkat keras.
Kenapa dinamakan bug?
Tahun 1945 sewaktu ukuran komputer masih sebesar kamar, pihak militer Amerika Serikat
menggunakan komputer yang bernama “Mark 1”. Suatu hari komputer ini tidak berfungsi dengan
semestinya, setelah komputer itu diperiksa ternyata ada suatu bagian perangkat keras di mana
terdapat serangga yang tersangkut. Setelah serangga itu diangkat dari perangkat keras, komputer
dapat berfungsi dengan baik. Maka sejak saat itu kata bug lekat dengan masalah-masalah pada
komputer. Debugging adalah proses menghilangkan bug dari suatu program.
Pengujian perangkat lunak adalah proses yang dapat direncanakan dan ditentukan secara sistematis.
Desain test case dapat dilakukan, strategi dapat ditentukan, dan hasil dapat dievaluasi berdasarkan
harapan-harapan yang ditentukan sebelumnya.
Debugging terjadi sebagai akibat dari pengujian yang berhasil. Jika test case mengungkap kesalahan,
maka debugging adalah proses yang menghasilkan penghilangan kesalahan. Perekayasa perangkat
lunak yang mengevaluasi hasil suatu pengujian sering dihadapkan pada indikasi “simtomatis” dari
suatu masalah pernagkat lunak, yaitu bahwa manisfestasi eksternaldari kesalahan dan penyebab
internal kesalahan dapat tidak memiliki hubungan yang jelas satu dengan lainnya. Proses mental yang
dipahami secara buruk yang menghubungkan sebuah symptom dengan suatu penyebab disebut
debugging.
Proses Debugging
Debugging bukan merupakan pengujian, tetapi selalu terjadi sebagai bagian akibat dari pengujian.
Proses debungging dimulai dengan eksekusi terhadap suatu test case. Hasilnya dinilai, dan ditemukan
kurangnya hubungan antara harapan dan yang sesungguhnya. Dalam banyak kasus, data yang tidak
berkaitan merupakan gejala dari suatu penyebab pokok tetapi masih tersembunyi, sehingga perlu ada
koreksi kesalahan.
Proses debugging akan selalu memiliki salah satu dari dua hasil akhir berikut:
1. Penyebab akan ditemukan, dikoreksi, dan dihilangkan, atau
2. Penyebab tidak akan ditemukan.
Dalam kasus yang terakhir, orang yang melakukan debugging mungkin mencurigai suatu penyebab,
mendesainsuatu test case untuk membantu kecurigaannya, dan bekerja untuk koreksi kesalahan
dengan gaya yang iterative.
Beberapa karakteristik bug memberi kunci :
1. Gejala dan penyebab dapat jauh secara geografis, dimana gejala dapat muncul didalam satu
bagian dari suatu program, sementara penyebab dapat ditempatkan pada suatu sisi yang
terlepas jauh.
2. Gejala dapat hilang (kadang-kadang) ketika kesalahan yang lain dibetulkan.
3. Gejala dapat benar-benar disebabkan oleh sesuatu yang tidak salah (misalnya pembulatan
yang tidak akurat).
4. Simpton dapat disebabkan oleh kesalahan manusia yang tidak dapat dengan mudah ditelusuri.
5. Gejala dapat merupakan hasil dari masalah timing, dan bukan dari masalah pemrosesan.
6. Mungkin sulit untuk mereproduksi kondisi input secara akurat (misalnya aplikasi real time
dimana pengurutan input tidak ditentukan).
7. Gejala dapat sebentar-sebentar. Hal ini sangat umum pada system yang embedded yang
merangkai perangkat lunak dan perangkat keras yang tidak mungkin dilepaskan.
8. Gejala dapat berhubungan dengan penyebab yang didistribusikan melewati sejumlah tugas
yang bekerja pada prosesor yang berbeda.
Selama debugging, kita menemukan kesalahan-kesalahan mulai dari gangguan yang halus (missal
format output yang tidak betul) sampai katrastropis (misalnya kegagalan system yang menyebabkan
kerusakan fisik atau ekonomis).
Sebagai akibat dari peningkatan keslahan, jumlah tekanan untuk menemukan kesalahan juga
bertambah. Sering kali tekanan memaksa seorang pengembang perangkat lunak untuk membetulkan
keslahan dan pada saat yang sama memunculkan lagi dua kesalahan baru.
Pertimbangan Psikologis
Sayangnya muncul banyak bukti bahwa kekuatan debugging adalah sifat bawaan manusia. Banyak
orang yang cakap dalam hal ini, sementara banyak juga yang tidak. Menanggapi aspek manusia dari
debugging. Shneiderman [SHN80] menyatakan :
Debugging merupakan salah satu dari berbagai bagian pemrograman yang membuat lebih frustasi.
Debugging memiliki elemen pemecahan masalah atau pengganggu otak, yang bersama dengan
penghindaran kesadaran bahwa Anda melakukan suatu kesalahan. Kekhawatiran yang meningkat dan
keengganan untuk menerima, kesalahan akan meningkatkan kesulitan tugas. Sayangnya, ada keluhan
yang sangat mendalam mengenai pembebasan dan pengurangan ketegangan ketika pada akhirnya bug
……… dikoreksi.
Meskipun mungkin sulit untuk mempelajari debugging, sejumlah pendekatan terhadap masalah
tersebut dapat diusulkan. Kita akan melihat dalam sub bab selanjutnya.
Pendekatan-pendekatan Debugging
Tanpa memperhatikan pendekatan yang diambil, debugging memiliki satu sasaran yang diabaikan,
untuk menemukan dan mengkoreksi penyebab kesalahan perangkat lunak. Sasaran tersebut direalisasi
dengan suatu kombinasi evaluasi yang sistematis, intuisi, dan keberuntungan.
Bradley (BRA85) menggambarkan pendekatan Debugging dengan cara berikut :
Debugging adalah sebuah aplikasi langsung dari metodekeilmuan yang telah dikembangkan selama
2500 tahun. Dasar dari debugging adalah meletakkan sumber-sumber masalah (penyebab) dengan
partisi biner melalui hipotesis kerja yang memperkirakan nilai-nilai baru yang akan diuji.
Ambillah contoh non-perangkat lunak sederhana, yaitu :
Lampu dirumah saya tidak bekerja. Bila tidak ada yang bekerja didalam rumah itu, penyebabnya
tentu pada pemutus rangkaian utama atau sebab dari luar. Saya melihat sekeliling untuk melihat
apakah lampu para tetangga juga mati. Saya memasukkan lampu yang dicurigai kedalam soket yang
bekerja dan menyelidiki lampu rangkaian yang dicurigai. Begitulah berbagai pilihan hipotesa dan
pengujian.
Secara umum, tiga kategoti pendekatan debugging dapat diusulkan (MYE79) :
1. 1. Gaya yang kasar (Brute force)
Kategori debugging brute force mungkin merupakan yang paling umum dan metode yang paling
efisien untuk mengisolasi penyebab kesalahan perangkat lunak. Kita mengaplikasikan metode
debugging brute force bila semua yang lain telah gagal. Dengan menggunakan filosofi ”biarkan
komputer menemukan kesalahan”, tempat sampah memori dipakai, penelusuran runtime dilakukan,
dan program dibebani dengan statemen WRITE. Kita mengharapkan bahwa dimanapun didalam rawa
informasi yang diproduksi, kita akan menemukan suatu kunci yang akan membawa kita kepada
penyebab kesalahan. Meskipun banyaknya informasi yang dihasilkan pada akhirnya akan membawa
kita meraih sukses, lebih sering dia menyebabkan kita menghambur-hamburkan usaha dan waktu.
Kita harus memikirkannya terlebih dahulu.
1. 2. Penelusuran balik (backtracking)
Backtracking adalah pendekatan debugging yang sangat umum yang dapat digunakan secara sukses
didalam program yang kecil. Mulai pada sisi dimana suatu gejala diungkap, kode sumber ditelusuri
balik (secara manual) samapai sisi penyebab ditemukan. Sayangnya, bila jumlah baris sumber
bertambah, maka jumlah jalur balik potensial dapat sangat banyak.
1. 3. Eliminasi penyebab
Cause elimination dimanisfestasikan oleh induksi atau deduksi serta mengawali konsep partisi biner.
Data yang berhubungan dengan kejadian kesalahan dikumpulkan untuk mengisolasi penyebab
potensial. Hipotesis penyebab dibuat dan data digunakan untuk membuktikan penolakan hipotesis
tersebut. Sebagai alternatif, daftar semua penyebab yang mungkin dikembangkan dan dilakukan
pengujian untuk mengeliminasi masing-masing kesalahan. Jika pengujian awal menunjukkan bahwa
suatu hipotesis penyebab memberikan gambaran hasil yang jelas, maka data itu disaring sebagai
usaha untuk mengisolasi bug.
Masing-masing pendekatan debugging tersebut dapat ditambah dengan piranti debugging. Kita dapat
mengaplikasikan berbagai kompiler debugging yang luas, bantuan debugging yang dinamis (tracer),
generator test case, ruang sisa memori dan peta cross-reference. Namun piranti bukanlah pengganti
bagi evaluasi yang berhati-hati yang didasarkan atas dokumen desain perangkat lunak yang lengkap
dan kode sumber yang jelas.
Sekali bug ditemukan, bug harus dibetulkan. Tetapi seperti telah kita catat, koreksi terhadap suatu
bug dapat memunculkan kesalahan lain sehingga lebih banyak merugikan daripada menguntungkan.
Van Vleck (FAN89) mengusulkan tiga pertanyaan sederhana yang harus diajukan kepada perekayasa
perangkat lunak sebelum melakukan koreksi yang menghilangkan penyebab suatu bug, yaitu :
1. 1. Apakah penyebab bug direproduksi didalam bagian lain program tersebut?
Dalam berbagai situasi, kesalahan program disebabkan oleh sebuah contoh logika yang keliru yang
dapat dibuat ulang ditempat lain. Pertimbangan eksplisit dari contoh logika tersebut akan
menghasilkan penemuan kesalahan yang lain.
1. 2. Apa ”bug selanjutnya,” yang akan dimunculkan oleh perbaikan yang akan dibuat?
Sebelum koreksi dibuat, kode sumber (atau lebih baik,desain) harus dievaluasi untuk memperkirakan
pemasangan logika dan struktur data. Bila koreksi akan dilakukan pada bagian program yang akan
dirangkai, maka harus ada perhatian khusus bila banyak perubahan dilakukan.
1. 3. Apa yang dapat kita lakukan untuk menghindari bug ini didalam tempat pertama?
Pertanyaan ini merupakan langkah pertama untuk membangun pendekatan jaminan kualitas
perangkat lunak statistik. Bila kita mengkoreksi proses dan produk, bug akan dihilangkan dari
program yang ada dan dapat dieliminasi dari semua program selanjutnya.

Latihan soal
1. Apakah yang dimaksud dengan debugging?
2. Apakah fungsi dari debbuging?
3. Bagaimanakah proses debbuging?
4. Sebutkan dua hasil akhir debbuging!
5. Sebutkan beberapa karakteristik debbuging!
Jawaban
1. Sebuah metode yang dilakukan oleh para pemrogram dan pengembang perangkat lunak untuk
mencari dan mengurangi bug, atau kerusakan di dalam sebuah program komputer atau perangkat
keras sehingga perangkat tersebut bekerja sesuai dengan harapan
2. Untuk mencari kerusakan pada sistem komputer
3. Debugging bukan merupakan pengujian, tetapi selalu terjadi sebagai bagian akibat dari pengujian.
Proses debungging dimulai dengan eksekusi terhadap suatu test case. Hasilnya dinilai, dan
ditemukan kurangnya hubungan antara harapan dan yang sesungguhnya. Dalam banyak kasus,
data yang tidak berkaitan merupakan gejala dari suatu penyebab pokok tetapi masih tersembunyi,
sehingga perlu ada koreksi kesalahan.
4. Penyebab akan ditemukan, dikoreksi, dan dihilangkan, atau penyebab tidak akan ditemukan
5. Gejala dan penyebab dapat jauh secara geografis, dimana gejala dapat muncul didalam satu
bagian dari suatu program, sementara penyebab dapat ditempatkan pada suatu sisi yang
terlepas jauh.
Gejala dapat hilang (kadang-kadang) ketika kesalahan yang lain dibetulkan.
Gejala dapat benar-benar disebabkan oleh sesuatu yang tidak salah (misalnya pembulatan
yang tidak akurat).

Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, April 2018


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)
RENCANA PELAKSANA PEMBELAJARAN

A. Identitas Program Pendidikan


Nama Sekolah :
Mata Pelajaran : Pemrograman Dasar
Komp. Keahlian : TKJ
Kelas/Semester : X / 1I (Dua)
Tahun Pelajaran : 2017 / 2018
Alokasi Waktu : 8x 45 Menit

B. Kompetensi Inti dan Kompetensi Dasar


Kompetensi Inti
Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual,
konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika pada tingkat teknis, spesifik, detil, dan kompleks, berkenaan dengan
ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi
diri sebagai bagian dari keluarga, sekolah, duniakerja, warga masyarakat nasional, regional, dan
internasional.
Melaksanakan tugas spesifik, dengan menggunakan alat, informasi, dan prosedur kerja yang lazim
dilakukan serta menyelesaikan masalah sederhana sesuai dengan bidang dan lingkup kerja Teknik
Komputer dan Informatika
Menampilkan kinerja mandiri dengan mutu dan kuantitas yang terukur sesuai dengan standar
kompetensi kerja.
Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif,
kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan gerak mahir,
menjadikan gerak alami, sampai dengan tindakan orisinal dalam ranah konkret terkait dengan
pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik
dibawah pengawasan langsung.
Kompetensi Dasar
3.14 Mengevaluasi paket installer aplikasi sederhana
4.14 Memformulasikan paket installer aplikasi sederhana
C. Indikator Pencapaian Kompetensi
3.14 Mengevaluasi paket installer aplikasi sederhana
3.14.1 Menyimpulkan paket installer aplikasi sederhana
3.14.2 Menilai paket installer aplikasi sederhana

4.14 Memformulasikan paket installer aplikasi sederhana


4.14.1 Menyimpulkan paket installer aplikasi sederhana
4.14.2 Menilai paket installer aplikasi sederhana
Tujuan Pembelajaran
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menyimpulkan paket installer
aplikasi sederhana dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menilai paket installer aplikasi
sederhana dengan tepat
1. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menyimpulkan paket installer
aplikasi sederhana dengan benar
2. Setelah kegiatan pembelajaran diharapkan peserta didik dapat menilai paket installer aplikasi
sederhana dengan tepat

D. Materi Pembelajaran
Paket installer aplikasi sederhana
E. Pendekatan, Strategi, Metode
Pendekatan berfikir : Sientific
Model Pembelajaran : Discovery Based Learning
Metode Pembelajaran : Observasi, diskusi dan tanya jawab.
F. Kegiatan Pembelajaran
Pertemuan ke 1 dan 2
No Kegiatan Langkah – langkah Pembejalaran Waktu
Melakukan pembukaan dengan salam pembuka dan berdoa untuk memulai
pembelajaran
Melakukan pengkondisian peserta didik
1 Pendahuluan Menyampaikan tujuan pembelajaran yang akan dicapai. 15 Menit
Menyampaikan teknik penilaian yang akan digunakan
Menyampaikan metode pembelajaran yang akan digunakan
Melakukan Pre test.
Pemberian rangsangan
1. Guru meminta peserta didik untuk melihat materi di layar komputer tentang
paket installer aplikasi sederhana
2. Guru meminta peserta didik untuk membaca buku panduan yang lainnya agar
dapat mudah dipahami
3. Peserta didik dapat mengidentifikasi masalah dari materi yang disajikan oleh
guru
Identifikasi masalah
1. Guru menugaskan peserta didik untuk menyimpulkan, menilai, paket
installer aplikasi sederhana
2. Pesera didik berusaha untuk dapat menyimpulkan, menilai, paket installer
aplikasi sederhana
3. Setelah peserta didik membaca buku panduan yang lainnya peserta didik
2 Kegiatan Inti dapat menyimpulkan, menilai, paket installer aplikasi sederhana
4. Peserta didik mendiskusikan dengan kelompok yang lainnya tentang
menyimpulkan, menilai, paket installer aplikasi sederhana
5. Peserta didik menyampaikan hasil diskusi di depan kelas, kelompok yang
lainnya memberikan tanggapan
Pengumpulan data
1. Guru meminta peserta didik untuk mencari buku panduan atau informasi
menyimpulkan, menilai, paket installer aplikasi sederhana
2. Peserta didik mencoba menyimpulkan, menilai, paket installer aplikasi
sederhana petunjuk dari guru sebagai pembuktian pengujian hipotesis
Pembuktian
1. Peserta didik berusaha menyimpulkan, menilai, paket installer aplikasi
sederhana
2. Guru meminta peserta didik untuk menilai hasil yang telah dibuat oleh
peserta didik yang lainnya
3. Peserta didik menilai berdasarkan format penilaian yang sudah ada
Menarik Simpulan
1. Guru menjelaskan kepada peserta didik tentang menyimpulkan, menilai,
paket installer aplikasi sederhana
2. Guru menugaskan peserta didik un tuk menyimpulkan, menilai, paket
installer aplikasi sederhana
3. Peserta didik mengerjakan tugas dari guru untuk menyimpulkan, menilai,
paket installer aplikasi sederhana
4. Peserta didik yang lain menanggapi kesimpulan dari peserta didik yang
sedang maju untuk mempresentasikan hasilnya
5. Peserta didik memperbaiki hasil presentasi berdasarkan tanggapan dari
temannya
1. Secara bersama-sama peserta didik diminta untuk menyimpulkan tentang
paket installer aplikasi sederhana
2. Guru memberikan konfirmasi dan penguatan terhadap kesimpulan dari hasil
pembelajaran.
3. Guru memberikan evaluasi (post test) dan menyuruh peserta didik secara
3 Penutup individu untuk mengerjakannya. 15 Menit
4. Peserta didik diberi tugas untuk melakukan mengerjakan latihan tentang
paket installer aplikasi sederhana
5. Guru mengakhiri kegiatan belajar dengan memberikan pesan pada peserta
didik untuk mempelajari materi berikutnya.
6. Guru menyuruh salah satu peserta didik untuk memimpin doa penutup
Alat/ bahan, Media Pembelajaran
Daftar hadir
Spidol
Papan waith board
Leptop
LCD
Lembar penilaian
Sumber Belajar
Internet
Buku – buku penunjang KBM
Penilainan Pembelajaran
Teknik : Non Test dan Test
Bentuk :
 Penilaian pengetahuan : Tes tertulis uraian
 Penilaian keterampilan : Praktek

URAIAN MATERI
Aplikasi web menjadi sebuah paket instalasi (installer) agar aplikasi web tersebut bisa
didistribusikan dan diinstal dengan mudah oleh pengguna. Proses pengemasan aplikasi web
tersebut adalah dengan menggunakan program Nullsoft Scriptable Install System (NSIS), yaitu
sebuah program pembuat installer yang bersifat open source dan bebas digunakan tanpa biaya
lisensi. Versi NSIS yang digunakan oleh penulis pada artikel ini adalah 2.46, walaupun Anda
bebas menggunakan versi yang lebih baru.
Karena sebuah sebuah aplikasi web membutuhkan web server atau application server atau
bahkan database server untuk menjalankan aplikasi tersebut, maka aplikasi server yang
bersangkutan harus disertakan juga ke dalam installer. Pada pembahasan ini akan digunakan
XAMPP yaitu sebuah kumpulan aplikasi-aplikasi server yang di dalamnya terdapat:
 Apache
 MySQL
 PHP
 Mercury Mail Transport System
 FileZilla FTP Server
 Tomcat
Dengan digunakannya XAMPP, maka tipe aplikasi web yang bisa diterapkan adalah aplikasi
web yang berbasis PHP atau Java. Aplikasi web dengan platform yang lain seperti .NET yang
dijalankan pada IIS adalah di luar ruang lingkup pembahasan ini.
Sebelum melanjutkan uraian, pastikan pembaca telah menginstal program NSIS dan memiliki
pengetahuan dasar NSIS. Untuk mengetahui prinsip kerja NSIS dan dasar-dasarnya dengan
cepat, pembaca dipersilakan membaca terlebih dahulu dokumen sebelumnya yang berjudul
“Mengenal Nullsoft Scriptable Install System“ yang dibuat oleh penulis. Jika pembaca telah
cukup akrab dengan NSIS, silakan mengikuti langkah-langkah berikut ini.
1. Membuat Aplikasi Web
Langkah pertama pada pembuatan installer adalah mempersiapkan aplikasi web yang akan
dikemas. Seperti yang dijelaskan sebelumnya, aplikasi web yang dimaksud pada artikel ini
adalah aplikasi yang dapat dijalankan pada XAMPP, yaitu khususnya menggunakan Apache
atau Tomcat.
Jadi pastikan Anda telah memiliki XAMPP yang terinstal pada komputer kerja.
Catatan:
Distribusi XAMPP yang dianjurkan adalah yang berbentuk ZIP. Alasannya adalah karena
distribusi dalam bentuk ini hanya membutuhkan file tersebut diekstrak ke dalam komputer kerja
dan bisa langsung dijalankan tanpa membutuhkan proses instalasi. Hal ini sangat cocok dengan
pembuatan installer yang sedang dijelaskan di sini.
Untuk mendapatkan XAMPP dalam bentuk ZIP, silakan mengunduhnya dari:
http://sourceforge.net/projects/xampp/files/
Sekarang kita akan membuat dua buah contoh aplikasi web untuk dikemas. Aplikasi yang
pertama berbasis PHP dan yang satu lagi berbasis Java.
1.1. Aplikasi PHP dan MySQL
Aplikasi yang pertama adalah sebuah aplikasi PHP yang akan mengakses sebuah table di dalam
database MySQL. Hal ini untuk menunjukkan bahwa aplikasi yang dikemas dalam installer
bukan hanya sebuah aplikasi yang statik tetapi bisa merupakan aplikasi database yang dinamis
dengan operasi baca/tulis. Namun karena yang dijelaskan di sini adalah sebuah konsep, maka
yang akan diperlihatkan di sini adalah sebuah aplikasi PHP sederhana. Pada prakteknya pembaca
dapat mengembangkan ke tahap tingkat lanjut dengan menggunakan framework seperti
CodeIgniter, JQuery, Bootstrap dan sebagainya.
Silakan mengikuti langkah-langkah berikut ini:
1. Nyalakan service XAMPP dengan menjalankan ..\xampp\xampp_start.exe.
2. Buka XAMPP console dengan menggunakan sebuah browser dan ketikkan alamat:
http://localhost/xampp
3. Masuk ke dalam MySQL melalui link phpMyAdmin, kemudian buat sebuah database bernama
myDB.
4. Buat sebuah table bernama MyGuests dengan skrip berikut ini dan masukkan beberapa data
contoh.

1 CREATE TABLE IF NOT EXISTS myguests (


2 id int(11) NOT NULL,
3 firstname varchar(50) NOT NULL,
4 lastname varchar(50) NOT NULL
5 );
6
7 INSERT INTO myguests VALUES (1, 'John', 'Doe');
8 INSERT INTO myguests VALUES (2, 'Mary', 'Moe');
9 INSERT INTO myguests VALUES (3, 'Julie', 'Dooley');

Buatlah sebuah folder bernama php-exercise01 di dalam folder..\xampp\htdocs, kemudian buat


sebuah file bernama php.

<!DOCTYPE html>
1
<html>
2
<body>
3
4
<?php
5
$servername = "localhost";
6
$username = "root";
7
$password = "";
8
$dbname = "myDB";
9
10
// Create connection
11
$conn = new mysqli($servername, $username, $password, $dbname);
12
// Check connection
13
if ($conn->connect_error) {
14
die("Connection failed: " . $conn->connect_error);
15
}
16
17
$sql = "SELECT id, firstname, lastname FROM MyGuests";
18
$result = $conn->query($sql);
19
20
if ($result->num_rows > 0) {
21
// output data of each row
22
while($row = $result->fetch_assoc()) {
23
echo "<br> id: ". $row["id"]. " - Name: ". $row["firstname"]. " " . $row["lastname"] .
24
"<br>";
25
}
26
} else {
27
echo "0 results";
28
}
29
30
$conn->close();
31
?>
32
33
</body>
34
</html>

Silakan menyesuaikan parameter koneksi database pada program di atas ($servername,


$username, $password, $dbname) dengan konfigurasi database MySQL Anda.
Pembuatan aplikasi PHP yang pertama sudah selesai, silakan membuka sebuah browser ketikkan
alamat berikut ini:

http://localhost/php-exercise01/

Tampilan aplikasi PHP tersebut akan muncul seperti berikut ini.

Tampak aplikasi ini telah berjalan baik dengan menampilkan data dari dalam database MySQL.

1.2. Aplikasi Java

Aplikasi yang kedua adalah sebuah aplikasi Java yang berisi sebuah file JSP mengakses sebuah
servlet sederhana. Aplikasi ini dibuat mengggunakan Eclipse dan hasil compile-nya berbentuk
file WAR. Selanjutnya file WAR itu akan diinstal dan dijalankan pada Tomcat.

Silakan mengikuti langkah-langkah berikut ini:

1. Jalankan Eclipse dan buat sebuah projek baru dengan tipe “Dynamic Web Project” dan beri
nama web-exercise01.

Buat sebuah file JSP di dalam folder WebContent dan beri nama jsp.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"


1
pageEncoding="ISO-8859-1"%>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
3
"http://www.w3.org/TR/html4/loose.dtd">
4
<html>
5
<head>
6
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7
<title>Insert title here</title>
8
</head>
9
<body>
10
11
<form action="GreetingServlet" method="POST">
12
First Name: <input type="text" name="firstName" size="20"><br>
13
Surname: <input type="text" name="surname" size="20">
14
<br><br>
15
<input type="submit" value="Submit">
16
</form>
17
18
</body>
19
</html>

3. Buat sebuah servlet dengan package exercise01.web dan beri nama GreetingServlet.

Ketikkan baris-baris kode berikut ini.

1 package org.exercise01.web;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.annotation.WebServlet;
8 import javax.servlet.http.HttpServlet;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 /**
13 * Servlet implementation class GreetingServlet
14 */
15 @WebServlet("/GreetingServlet")
16 public class GreetingServlet extends HttpServlet {
17 private static final long serialVersionUID = 1L;
18
19 /**
20 * @see HttpServlet#HttpServlet()
21 */
22 public GreetingServlet() {
23 super();
24 // TODO Auto-generated constructor stub
25 }
26
27 /**
28 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
29 */
30 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
31 ServletException, IOException {
32 // TODO Auto-generated method stub
33 }
34
35 /**
36 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
37 */
38 protected void doPost(HttpServletRequest request, HttpServletResponse response)
39 throws ServletException, IOException {
40 response.setContentType("text/html;charset=UTF-8");
41 PrintWriter out = response.getWriter();
42 String firstName = request.getParameter("firstName").toString();
43 String surname = request.getParameter("surname").toString();
44 out.println("<html>");
45 out.println("<head>");
46 out.println("<title>Servlet GreetingServlet</title>");
47 out.println("</head>");
48 out.println("<body>");
49 out.println("<h1>Servlet GreetingServlet at " + request.getContextPath () + "</h1>");
50 out.println("<p>Welcome " + firstName + " " + surname + "</p>");
51 out.println("</body>");
52 out.println("</html>");
53 out.close();
54 }

5. Simpan semua file dan export projek tersebut menjadi sebuah file WAR.
6. Untuk menginstal file WAR tersebut di dalam Tomcat, terlebih dahulu perlu dibuat sebuah user
admin. Silakan masuk ke dalam folder ..\xampp\tomcat\conf dan edit file tomcat-users.xml.

Tambahkan beberapa baris berikut ini di bagian bawah file tersebut.

...
1
<role rolename="manager"/>
2
<role rolename="manager-gui"/>
3
<role rolename="admin"/>
4
<user username="admin" password="admin"
5
roles="admin,manager,manager-gui"/>
6
7
</tomcat-users>

Selanjutnya kita akan menggunakan user “admin” dengan password “admin” untuk melakukan
administrasi Tomcat. Simpan perubahan dan tutup file tersebut.
7. Nyalakan service Tomcat dengan menjalankan ..\xampp\catalina_start.bat.
8. Buka Tomcat console dengan menggunakan sebuah browser dan ketikkan alamat:

http://localhost:8080

Klik tombol “Manager App” dan masukkan user dan password admin yang dibuat tadi.

9. Lakukan deployment dari file WAR yang dibuat tadi.

Pembuatan aplikasi yang ke-dua sudah selesai, silakan membuka sebuah browser ketikkan
alamat berikut ini:

http://localhost:8080/web-exercise01/

Tampilan aplikasi Java tersebut akan muncul seperti berikut ini.

Pembuatan kedua aplikasi web sudah selesai dan kita sudah memastikan semua aplikasi web
telah berjalan dengan baik pada instalasi asalnya. Sekarang kedua aplikasi tersebut akan dikemas
ke dalam sebuah installer berikut semua aplikasi server yang dibutuhkan.

2. Membuat Skrip NSIS

Urutan langkah-langkah instalasi aplikasi web di dalam skrip NSIS dijelaskan sebagai berikut:

1. Masukkan folder XAMPP dan semua isinya (termasuk aplikasi PHP dan Java serta database
MySQL di dalamnya) ke dalam installer.

Pada contoh ini folder XAMPP diasumsikan berada di drive D, namun pada saat instalasi nanti
pembuatan folder XAMPP akan dilakukan di drive C. Dari eksperimen yang dilakukan penulis,
folder XAMPP tidak dapat diletakkan di dalam Program Files karena tidak bisa berjalan dengan
baik. Itu sebabnya folder XAMPP harus diletakkan di folder terluar dari sebuah drive (pada
contoh ini folder instalasinya ditetapkan c:\XAMPP, dan tidak bisa diubah).

2. Buat shortcut di Start à All Programs untuk menjalankan aplikasi PHP dan aplikasi Java
3. Buat shortcut di folder Startup untuk menjalankan service XAMPP dan Tomcat secara otomatis
ketika komputer dinyalakan. Telah dijelaskan sebelumnya bahwa service XAMPP dan Tomcat
dinyalakan dengan menjalankan ..\xampp\xampp_start.exe dan ..\xampp\catalina_start.bat. Pada
saat kedua file itu dijalankan maka shell windows-nya akan muncul di layar. Hal ini akan tampak
kurang baik karena dapat membingungkan pengguna yang awam. Kedua window itu akan lebih
baik jika berada dalam keadaaan minimize – walaupun sebetulnya masih tampak di taskbar
namun keadaanya tidak terpampang jelas di layar.

Untuk “mengakali” hal ini maka perlu dibuat sebuah file BAT yang berisi perintah:

start /min c:\xampp\xampp_start.exe

start /min c:\xampp\catalina_start.bat

start /min adalah shell command yang akan menjalankan sebuah file dalam keadaan minimize.
Silakan menyimpan skrip di atas menjadi file bernama webapp_start.bat dan tempatkan di
dalam folder d:\XAMPP supaya nanti terbawa ke dalam installer.

Selanjutnya langkah-langkah di atas dituangkan ke dalam skrip NSIS berikut ini.

1 ;--------------------------------
2 ;Include Modern UI
3
4 !include "MUI2.nsh"
5 ;--------------------------------
6
7 !define PRODUCT_NAME "WebApp Example"
8 !define PRODUCT_VERSION "1.0"
9 !define PRODUCT_PUBLISHER "My Company"
10 !define MUI_ABORTWARNING
11
12 ; The name of the installer
13 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
14
15 ; The file to write
16 OutFile "webapp-installer.exe"
17
18 ; The default installation directory
19 InstallDir "$PROGRAMFILES\WebApp Example"
20 ShowInstDetails show
21
22 ; Request application privileges for Windows Vista
23 RequestExecutionLevel admin
24
25 ;--------------------------------
26 ; Pages
27 !insertmacro MUI_PAGE_WELCOME
28 !insertmacro MUI_PAGE_LICENSE "License.txt"
29 !insertmacro MUI_PAGE_COMPONENTS
30 !insertmacro MUI_PAGE_DIRECTORY
31 !insertmacro MUI_PAGE_INSTFILES
32 !insertmacro MUI_UNPAGE_CONFIRM
33 !insertmacro MUI_UNPAGE_INSTFILES
34 !insertmacro MUI_PAGE_FINISH
35
36 ;--------------------------------
37
38 ;--------------------------------
39 ;Languages
40 !insertmacro MUI_LANGUAGE "English"
41
42 ;--------------------------------
43
44 Section "Web Application"
45 CreateDirectory "$SMPROGRAMS\WebApp Example"
46 CreateShortCut "$SMPROGRAMS\WebApp Example\PHP WebApp.lnk"
47 "http://localhost/php-exercise01/"
48 CreateShortCut "$SMPROGRAMS\WebApp Example\Java WebApp.lnk"
49 "http://localhost:8080/web-exercise01/"
50 CreateShortCut "$SMPROGRAMS\WebApp Example\Uninstall.lnk"
51 "$INSTDIR\uninstall.exe"
52
53 CreateShortCut "$SMSTARTUP\WebApp start.lnk" "c:\xampp\webapp_start.bat"
54
55 SetOutPath $INSTDIR
56 WriteUninstaller "uninstall.exe"
57
58 SetOutPath "c:\"
59 SetOverwrite on
60 File /r "d:\XAMPP"
61 SectionEnd
62
63 ; The uninstall section
64 Section "Uninstall"
65
66 # Remove Start Menu launcher
67 Delete "$SMPROGRAMS\WebApp Example\*.*"
68 Delete "$SMSTARTUP\WebApp start.lnk"
69
70 # Try to remove the Start Menu folder - this will only happen if it is empty
RMDir "$SMPROGRAMS\WebApp Example"

SectionEnd ; end the Uninstall section

Silakan compile skrip NSIS di atas menjadi sebuah file installer, dalam hal ini webapp-installer.exe.

Setelah installer dijalankan berikut ini adalah hasilnya:

1. Sebuah folder XAMPP terbentuk di drive C.

2. Shortcut terbentuk di Start à All Programs à WebApp Example.

3. Shortcut terbentuk di Start à All Programs –> Startup.

Komputer harus di-reboot setelah instalasi selesai agar shortcut di Startup ini dinyalakan. Pada
saat reboot dan service XAMPP dan Tomcat dinyalakan, perhatikan bagaimana shell window
keduanya berada dalam keadaan minimize.

Setelah kedua service menyala maka aplikasi PHP dan Java bisa dijalankan melalui shortcut di
Start –> All Programs –> WebApp Example.

4. Shortcut Uninstall pada Start à All Programs à WebApp Example dapat dijalankan untuk
menghapus aplikasi namun folder c:\xampp sengaja dibiarkan tidak terhapus karena
mengandung data. Folder itu dapat dihapus secara manual jika diinginkan.

Latihan soal

1. Apakah yang dimaksud dengan System (NSIS)?

2. Apakah fungsi database database server ?

3. Aplikasi apasajakah yang tersapat dalam XAMPP?

4. Apakah yang dimaksud dengan star min?

5. bagaimanakah cara menyalakan servis tomcat?

Jawaban

1. Yaitu sebuah program pembuat installer yang bersifat open source dan bebas digunakan tanpa
biaya lisensi

2. Untuk menjalankan aplikasi

3. Apache, MySQL, PHP, Mercury Mail Transport System, FireZilla FTP Server, Tomcat

4. Start /min adalah shell command yang akan menjalankan sebuah file dalam keadaan minimize

5. ..\xampp\catalina_start.bat.
Penskoran

No Skor
1 20
2 20
3 20
4 20
5 20
Jumlah 100

Nilai = Betul x 20

Tegal, Mei 2018


Mengetahui
Kepala Sekolah Guru Mapel

(…………………..) (…………………..)