PENGEMBANGAN KEPROFESIAN
BERKELANJUTAN BERBASIS KOMPETENSI
MENGIMPLEMENTASIKAN ALGORITMA PEMROGRAMAN
J.620100.022.02
BIDANG KEAHLIAN
REKAYASA PERANGKAT LUNAK
(RPL)
PROFESIONAL:
Instruksi Dasar Pemrograman Berorientasi Obyek
SUB JUDUL:
Implementasi Algoritma
Penulis:
Abdul Munif, S.Pd., S.ST., M.Kom. (abdmunif@gmail.com)
Penelaah:
Mardiana,S.Pd.,M.Pd. (dianarachman.pte@gmail.com)
Dr. A. Rahman Rahim, M.Hum. (rahimrahman23@yahoo.com)
Copyright © 2018
Direktorat Pembinaan Guru Pendidikan Dasar Direktorat Jenderal Guru dan Tenaga
Kependidikan Kementerian Pendidikan dan Kebudayaan
KATA PENGANTAR
Kami menyadari bahwa modul yang kami susun ini masih jauh dari sempurna.
Oleh karena itu, kami sangat mengharapkan saran dan masukan untuk perbaikan agar
tujuan dari penyusunan modul ini menjadi lebih efektif.
DAFTAR ISI
BATASAN VARIABEL
1. Konteks variabel
1.1. Memory adalah ruang yang digunakan program untuk menyimpan data.
2. Peralatan dan perlengkapan
2.1. Peralatan
2.1.1. Perangkat keras komputer atau mesin sejenis yang digunakan untuk
membuat code, mengksekusi code, dan menguji coba code
2.1.2. Perangkat lunak untuk pengujian seperti teks editor atau pun perangkat
lunak khusus untuk pembuatan algoritma
2.2. Perlengkapan
2.2.1. Petunjuk teknis bahasa pemrograman terkait
2.2.2. Perangkat lunak terkait
2.2.3. Menggunakan library yang sudah teruji
3. Peraturan yang diperlukan
(Tidak ada.)
4. Norma dan standar
4.1. Norma
4.1.1. Legalitas dan etika yang terkait dengan profesi bidang teknologi informasi
4.2. Standar
4.2.1. Standar algoritma yang ada
PANDUAN PENILAIAN
1. Konteks penilaian
1.1. Penilaian dapat dilakukan dengan cara: demonstrasi/praktik, baik di TUK dan/atau
di tempat kerja.
1.2. Permasalahan diberikan kepada programmer dengan meminta contoh masukan,
keluaran yang kemudian di representasikan dalam algoritma pemrograman
1.3. Penilaian unit ini mencakup pengetahuan, keterampilan dan sikap kerja yang
dipersyaratkan
2. Persyaratan kompetensi
2.1. J.620100.025.02 : Melakukan Debugging
2.2. J.620100.023.02 : Membuat Dokumen Kode Program
C. Silabus Diklat
Judul Unit Kompetensi : mengimplementasikan algoritma pemrograman
J.620100.022.02
Kode Unit Kompetensi :
Deskripsi Unit Kompetensi : Unit kompetensi ini berhubungan dengan sikap, pengetahuan, dan keterampilan yang dibutuhkan dalam
menerapkan algoritma pada setiap pemrograman, tanpa tergantung bahasa pemrograman yang akan dipakai.
Perkiraan Waktu Pelatihan : JP @ 45 Menit
Perkiraan
Kriteria Unjuk Indikator Unjuk Materi Diklat Waktu
Elemen Kompetensi
Kerja Kerja Diklat (JP)
Pengetahuan (P) Keterampilan (K) Sikap (S) P K
1.1. Tipe data telah • menjelaskan tipe data Ragam jenis tipe data identifikasi ragam Harus benar,
dijelaskan sesuai • mengidentifikasi jenis tipe data tepat, teliti dan
kaidah ragam jenis tipe data sesuai kaidah
pemrograman • Menyajikan hasil pemrograman
identifikasi ragam 15’ 30’
jenis tipe data dengan
benar, tepat, teliti dan
sesuai kaidah
pemrograman
1. Menjelaskan varian
1.2. Variabel telah • menjelaskan variabel Variabel identifikasi ragam jenis Harus benar,
dan invarian
dijelaskan sesuai • mengidentifikasi variabel tepat, teliti dan
kaidah ragam jenis variabel sesuai kaidah
pemrograman. • Menyajikan hasil pemrograman
identifikasi ragam 15’ 30’
jenis variabel dengan
benar, tepat, teliti
dan sesuai kaidah
pemrograman
1.3. Konstanta telah • menjelaskan Konstanta identifikasi ragam jenis Harus benar,
dijelaskan sesuai konstanta konstanta tepat, teliti dan
Judul Modul: Instruksi Dasar Pemrograman Berorientasi Obyek Halaman 8 dari 13
Modul - Versi 2018
Modul Pelatihan Berbasis Kompetensi Kode Modul
Sektor Teknologi Informasi dan Komunikasi Sub Sektor Rekayasa Perangkat Lunak J.620100.022.02
Perkiraan
Kriteria Unjuk Indikator Unjuk Materi Diklat Waktu
Elemen Kompetensi
Kerja Kerja Diklat (JP)
Pengetahuan (P) Keterampilan (K) Sikap (S) P K
kaidah • mengidentifikasi sesuai kaidah
pemrograman ragam jenis pemrograman
konstanta
• Menyajikan hasil
identifikasi ragam
jenis konstanta
dengan benar, tepat,
teliti dan sesuai
kaidah pemrograman
2.1. Metode yang • menjelaskan ragam Ragam jenis metode Identifikasi/analisis Harus cermat,
sesuai jenis metode pembuatan alur logika ragam jenis metode tepat, teliti dan
ditentukan. pembuatan alur logika pemrograman pembuatan alur sesuai dengan
pemrograman • Bahasa natural pemrograman kebutuhan yang
• mengidentifikasi • Pseudocode telah ditentukan
ragam jenis metode • flowchart
pembuatan alur logika
pemrograman 15’ 30’
• menyajikan hasil
analisis ragam jenis
metode pembuatan
alur logika
2. Membuat alur logika
pemrograman secara
pemrograman
cermat, tepat, teliti
dan sesuai ketentuan
2.2. Komponen yang • menjelaskan • Komponen- Identifikasi/penentuan Harus cermat,
dibutuhkan komponen-komponen Komponen dalam komponen-komponen tepat teliti sesuai
ditentukan. dalam penulisan pembuatan alur penyusun alur logika dengan
algoritma logika pemrograman. kebutuhan yang
• menentukan ragam pemrograman telah ditentukan
15’ 30’
jenis komponen sesuai algoritma
dengan kebutuhan • Struktur penulisan
• menyajikan hasil algoritma
penentuan ragam jenis
komponen secara
Perkiraan
Kriteria Unjuk Indikator Unjuk Materi Diklat Waktu
Elemen Kompetensi
Kerja Kerja Diklat (JP)
Pengetahuan (P) Keterampilan (K) Sikap (S) P K
cermat, tepat, teliti
dan sesuai ketentuan
yang dibutuhkan
2.3. Relasi antar • Menjelaskan relasi • Relasi antar Identifikasi/penetapan Harus cermat,
komponen antar komponen komponen relasi komponen tepat teliti sesuai
ditetapkan. • Menetapkan relasi penyusun alur logika dengan
antar komponen pemrograman. kebutuhan yang
• Menyajikan data ditentukan
penetapan relasi
komponen secara
cermat, tepat, teliti
dan sesuai ketentuan
yang dibutuhkan
2.4. Alur mulai dan • Menjelaskan alur mulai • Alur mulai algoritma Identifikasi/penetapan Harus cermat,
selesai dan selesai • Alur selesai alur mulai dan selesai tepat teliti sesuai
ditetapkan. • Menetapkan alur mulai algoritma logika pemrograman. dengan
dan selesai kebutuhan yang
• Menyajikan data ditentukan
penetapan alur mulai
dan selesai secara
cermat, tepat, teliti
dan sesuai ketentuan
yang dibutuhkan
3.1. Algoritma untuk • menjelaskan algoritma • Algoritma sorting • Pembuatan algoritma Harus cermat,
sorting dibuat. sorting sorting tepat, teliti dan
3. Menerapkan teknik • membuat algoritma sesuai dengan
dasar algoritma umum sorting spesifikasi
• Menyajikan data hasil 15’ 30’
algoritma sorting
secara cermat, tepat,
teliti dan sesuai
spesifikasi
Perkiraan
Kriteria Unjuk Indikator Unjuk Materi Diklat Waktu
Elemen Kompetensi
Kerja Kerja Diklat (JP)
Pengetahuan (P) Keterampilan (K) Sikap (S) P K
3.2. Algoritma untuk • menjelaskan algoritma • Algoritma searching • Pembuatan algoritma Harus cermat,
searching dibuat. sorting sorting. teliti dan tepat
• membuat algoritma sesuai dengan
sorting spesifikasi
• Menyajikan data hasil 15’ 30’
algoritma sorting
secara cermat, tepat,
teliti dan sesuai
spesifikasi
4. Menggunakan 4.1. Konsep • menjelaskan fungsi, • Konsep fungsi • Identifikasi fungsi dan Harus cermat,
prosedur dan fungsi penggunaan prosedur dan reusable • Konep prosedur prosedur tepat, teliti dan
kembali prosedur • menggunakan fungsi • Konsep reusable sesuai dengan
dan fungsi dapat dan prosedur spesifikasi
diidentifikasi. • Menyajikan hasil
penggunaan fungsi
dan prosedur secara
cermat, tepat, teliti
dan sesuai spesifikasi
4.2. Prosedur dapat • Menggunakan • konsep prosedur • Penerapan prosedur Harus cermat,
digunakan. prosedur tepat, teliti dan
• Menyajikan hasil sesuai dengan
penerapan prosedur spesifikasi
4.3. Fungsi dapat • Menggunakan fungsi • konsep fungsi • Penerapan fungsi Harus cermat,
digunakan. • Menyajikan hasil tepat, teliti dan
penerapan fungsi sesuai dengan
spesifikasi
5. Mengidentifikasikan 5.1. Kompleksitas • Menjelaskan • Konsep kompleksitas • Identifikasi Harus cermat,
kompleksitas waktu algoritma kompleksitas waktu waktu algoritma kompleksitas waktu tepat, teliti dan
algoritma diidentifikasi. algoritma algoritma sesuai dengan
• Mengidentifikasi spesifikasi
kompleksitas waktu
algoritma
• Menyajikan hasil
identifikasi
Perkiraan
Kriteria Unjuk Indikator Unjuk Materi Diklat Waktu
Elemen Kompetensi
Kerja Kerja Diklat (JP)
Pengetahuan (P) Keterampilan (K) Sikap (S) P K
kompleksitas waktu
algoritma
5.2. Kompleksitas • Menjelaskan • Konsep kompleksitas • Identifikasi Harus cermat,
penggunaan kompleksitas pengunaan memory kompleksitas tepat, teliti dan
memory pengunaan memory algoritma penggunaan memory sesuai dengan
algoritma algoritma algoritma spesifikasi
diidentifikasi. • Mengidentifikasi
kompleksitas
pengunaan memory
algoritma
• Menyajikan hasil
identifikasi
kompleksitas
pengunaan memory
algoritma
LAMPIRAN
A. BUKU INFORMASI
B. BUKU KERJA
C. BUKU PENILAIAN
DAFTAR ISI
BAB I PENDAHULUAN................................................................................................. 5
BAB II ....................................................................................................................... 6
3. Variabel. ....................................................................................................... 6
4. Konstanta...................................................................................................... 6
C. Sikap kerja yang diperlukan dalam menggunakan diagram program dan deskripsi
program ............................................................................................................... 32
BAB IV .................................................................................................................... 33
BAB V...................................................................................................................... 48
2. Prosedure.................................................................................................... 49
BAB I PENDAHULUAN
A. TUJUAN UMUM
B. TUJUAN KHUSUS
BAB II
MENJELASKAN VARIAN DAN INVARIAN
Varian adalah jenis atau turunan dari alur logikal yang digunakan sebelum
pembuatan aplikasi (pra-built aplication) sedangkan invarian adalah bentuk
logical dari external algoritma (fungsi/program bagian) yang terintegrasi
dengannya. Varian adalah variabel yang tidak mempunyai tipe data sedangkan
invarian adalah variabel yang mempunyai tipe data.
2. Identifier (pengenal)
Pengenal atau Identifier adalah suatu nama yang biasa dipakai dalam
pemrograman untuk menyatakan variabel, konstanta, tipe data, fungsi atau
prosedur. Data adalah segala sesuatu yang diproses oleh program. Program
adalah implementasi algoritma atau kumpulan instruksi yang disusun
sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk
menyelesaikan suatu persoalan.
Data adalah elemen-elemen yang digunakan untuk menjelaskan segala
sesuatu yang mempunyai besaran (ukuran/nilai), misalnya umur besarannya
bisa berupa bilangan desimal 42,5 (maksudnya 42½ tahun), golongan
seorang karyawan besarannya bisa berupa sebuah karakter A (maksudnya
golongan A) dan sebagainya.
3. Variabel.
• username = “angga”
• Nama = “Buku”
• Harga = 2500
• HargaTotal = 34000
4. Konstanta
Konstanta adalah identifier yang nilai datanya bersifat tetap dan tidak bisa
diubah.
Contoh :
Jika kita membuat program perhitungan matematik yang menggunakan nilai pi
(3.14159) yang mungkin akan muncul di banyak tempat pada kode program,
kita dapat membuat pi sebagai konstanta.
5. Tipe Data
Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi
kebutuhan dalam pemrograman komputer. Ketepatan pemilihan tipe data pada
variabel atau konstanta akan sangat menentukan pemakaian sumberdaya
komputer (terutama memori komputer). Terdapat banyak tipe data yang
tersedia tergantung dari jenis bahasa pemrograman yang dipakai. Namun
secara umum dapat dikelompokkan seperti berikut.
a. Tipe Primitive
Merupakan sebuah tipe data dasar yang tersedia secara langsung pada suatu
bahasa pemrograman
Tipe data numeric digunakan pada variabel (besaran yang nilainya berubah-ubah)
atau konstanta (besaran yang nilainya tetap) untuk menyimpan nilai dalam
bentuk bilangan bulat atau pecahan.
• Tipe data Integer (tipe data yang digunakan untuk merepresentasikan
bilangan bulat baik positif maupun negatif). Contoh:
Bilangan 1 : Integer (contoh deklarasi variabel bilangan 1 dengan tipe data
integer).
Bilangan 10 (contoh pmberian nilai variabel bilangan 1 dengan angka 10
• Tipe data real (tipe data yang digunakan untuk merepresentasikan
bilangan yang mengandung pecahan baik postif maupun negatif).
Contoh:
Pecahan 1 : real(contoh deklarasi variabel pecahan 1 dengan tipe data real
Pecahan 1 5,4 (contoh pemberian nilai variabel pecahan 1 dengan
angka 5,4
Nilai data karakter berupa sebuah karakter. Ranah nilai untuk tipe data ini adalah:
o Semua huruf di dalam alphabet ( a, b, .. z ; A, B, … Z)
o Semua angka ( 0,1,2 ..9)
o Tanda baca (. , ; ! ? dll)
o Operator aretmetika ( +, -, *, / )
o Karakter khusus (“$”, “#”,”@”,”^” dll)
Tipe data string hanya dapat digunakan menyimpan teks atau apapun sepanjang
berada dalam tanda
Contoh:
nama : String “namaku” ; ‘contoh pendeklarasian variabel nama bertipe data
string dan pemberian nilai variabel nama dengan “namaku”
Tipe data yang sudah terstruktur dengan baik, meskipun masih sederhana.
Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen)
dalam sebuah variabel. Array disusun oleh satu field ( array 1 demensi) atau
lebih filed (array n demensi). Array ini disusun dengan satu buah tipe data dasar.
Data array ditandai dengan menambahkan karakter [ ] di belakang nama variabel
pada saat deklarai variabel. Setiap array mempunyai ukuran atau panjang data
yang dapat kita kita atur. Ukuran array ini yang menyatakan jumlah data atau
baris yang akan kita tampung. Untuk memberikan ukuran dengan memberikan
nilai angka di antara tanda [ dan ]
Contoh :
Algoritma Mendeklarasikan variabel array untuk menampung data integer.
Deklarasi variabel :
Nilai[5] : integer {array satu demensi menampung 5 data integer }
Nilai[5][2] : integer { array 2 demensi menampung 10 data integer}
Tipe data record mampu menampung banyak data dengan tipe data berbeda-
beda (heterogen)
Nilai data untuk tanggal (Date) dan waktu (Time) secara internal disimpan dalam
format yang spesifik
1) Subrange
Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan
nilai tertentu
2) Enumerasi.
Tipe data ini merupakan tipe data yang mempunyai elemen-elemen yang
harus disebut satu persatu
Merupakan sebuah tipe data bentukan yang terdiri dari dua atau lebih tipe data
primitive.Tipe data bentukan dalah tipe data yang didefinisikan oleh pemrogram (
user defined type). Tipe ini disusun olah satu atau lebih tipe dasar. Terdapat dua
macam tipe data bentukan yaitu : 1) Tipe dasar yang diberi nama dengan tipe
baru dan 2) Rekaman / record / tipe terstruktur
1) Tipe dasar yang diberi nama dengan tipe baru
Kadang-kadang pemrogram ingin memberi nama baru terhadap tipe
dasar yang sudah dikenal. Alasan pemberian nama tipe baru mungkin agar
nama baru tersebut lebih akrab atau user friendly dan lebih mudah
diinterprestasikan oleh orang yang membaca teks algoritma. Kita dapat
memberi nama baru untuk tipe dasar tersebut dengan kata kunci type
Contoh :
type Bilangan Bulat : integer{ Deklarasi tipe data }
Contoh 1 :
Mendeklarasikan tipe data bentukan untuk menampung data titik
koordinat kartesian yang mempunyai dua variabel, dinyatakan sebagai
(x,y), dengan x adalah nilai absis dalam arah sumbu X dan y adalah nilai
ordinat dalam arah sumbu Y. x dan y adalah anggota himpunan bilangan
real ( y dan x € R ).
x y
Deklarasi tipe data
Type titik : record < x : real, y : real>
Type titik : struct< x : integer, y : integer>
Dekalrasi variabel
Posisi1 : titik
Akses variabel :
Jika dideklarasikan variebel dengan nama posisi1 bertipe titik maka cara
untuk mengakses tiap field pada rekaman posisi1 adalah :
posisi1.x (mengacu ke filed x)
posisi1.y (mengacu ke field y)
Contoh 2 :
BAB III
MEMBUAT ALUR LOGIKA PEMROGRAMAN
a. Definisi Algoritma
Keterangan:
• Judul (header) dalam algoritma di atas adalah: Program Luas_segiEmpat.
• Kamus: mendeklarasikan beberapa variabel panjang, lebar dan luas yang
masing-masing bertipe float.
• Pernyataan lebar: Integer 4 terdiri dari dua pernyataan yaitu: “lebar :
Integer“ merupakan deklarasi varibel lebar bertipe Integer dan “lebar 4“
merupakan inisialisasi atau pemberian nilai variabel lebar dengan 4
• Panjang 5 mengisi variabel panjang dengan 5
• Luas panjang * lebar adalah menghitung panjang dikalikan lebar dan
menyimpannya ke variabel Luas.
• Pernyataan constant phi : real 3.14159 terdiri dari dua pernyataan constant
phi : real merupakan deklarasi variabel phi bertipe pecahan dan phi
3.14159 merupakan pemberian nilai konstanta dengan nilai 3.14159
• write(......) adalah notasi algoritmis dalam pseudocode yang berfungsi untuk
menampilkan atau mencetak string atau isi variabel yang berada pada tanda (
...) ke layar piranti keluaran atau monitor. Notasi write(......) dapat pula
dituliskan dengan notasi output(.......)
Contoh2:
Contoh 3:
keyboard sebagai unit input, monitor sebagai unit keluaran, CPU sebagai unit
pemroses dan disket sebagai unit penyimpan data.
2) Flowchart Paperwork/Flowchart Dokumen
Flowchart Paperwork adalah flowchart yang digunakan untuk menelusuri alur dari
data yang ditulis melalui sistem. Flowchart Paperwork sering disebut juga dengan
Flowchart Dokumen. Kegunaan utamanya adalah untuk menelusuri alur form dan
laporan sistem dari satu bagian ke bagian lain baik bagaimana alur form dan
laporan diproses, dicatat dan disimpan.
3) Flowchart Skematik
Flowchart Skematik mirip dengan Flowchart Sistem yang menggambarkan
suatu sistem atau prosedur. Flowchart Skematik ini bukan hanya menggunakan
simbol-simbol flowchart standar, tetapi juga menggunakan gambar-gambar
komputer, peripheral, form-form atau peralatan lain yang digunakan dalam
sistem.
Flowchart Skematik digunakan sebagai alat komunikasi antara analis sistem
dengan seseorang yang tidak familiar dengan simbol-simbol flowchart yang
konvensional. Pemakaian gambar sebagai ganti dari simbol-simbol flowchart akan
menghemat waktu yang dibutuhkan oleh seseorang untuk mempelajari simbol
abstrak sebelum dapat mengerti flowchart.
Gambar-gambar ini mengurangi kemungkinan salah pengertian tentang
sistem, hal ini disebabkan oleh ketidak-mengertian tentang simbol-simbol yang
digunakan. Gambar-gambar juga memudahkan pengamat untuk mengerti segala
sesuatu yang dimaksudkan oleh analis, sehingga hasilnya lebih menyenangkan
dan tanpa ada salah pengertian.
4) Flowchart Program
Flowchart Program dihasilkan dari Flowchart Sistem. Flowchart Program
merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah
program atau prosedur sesungguhnya dilaksanakan. Flowchart ini menunjukkan
setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi.
Programmer menggunakan flowchart program untuk menggambarkan urutan
instruksi dari program komputer. Analis Sistem menggunakan flowchart program
untuk menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur atau
“Kondisi” yang ada pada simbol belah ketupat merupakan ekspresi kondisi
yang terdiri dari operator yang meliputi: operator perbandingan (<, >, ==, …..),
logika (OR, AND…), operand dapat berupa variabel atau nilai variabel. Tabel
dibawah ini menjelaskan ragam contoh ekspresi kondisi:
Operand Operand Operator Ekspresi Hasil
1 2 kondisi keluaran
1 4 < 1<4 false
4 2 > 5>2 true
A=5 B=5 == A == B true
loop) ini sering disebut dengan istilah nested loop. Salah satu contoh penerapan
algoritma nested loop adalah algoritma untuk tabel perkalian sebagai berikut :
Tabel 1. Tabel perkalian bilangan
1 2 3 4 5 6 7 8
1 1 2 3 4 5 6 7 8
2 2 4 6 8 10 12 14 16
3 3 3 9 12 15 18 21 24
4 4 8 12 16 20 24 28 32
5 5 10 15 20 25 30 35 40
6 6 12 18 24 30 36 42 48
7 7 14 21 28 35 42 49 56
8 8 16 24 32 40 48 56 64
Mulai
True
Cetak
kolom = kolom + 1
Pindah baris
baris = baris + 1
Selesai
BAB IV
MENERAPKAN TEKNIKDASAR ALGORITMA UMUM
Langkah 1.
Cari elemen maksimum dalam larik L[1..6] diperoleh nilai Maks → L[5] = 76
Tukar maks (L[5] dengan L[6], sehinga diperoleh :
29 27 10 8 21 76
1 2 3 4 5 6
Langkah 2
Berdasarkan susunan larik hasil langkah 1
Cari elemen maksimum dalam larik L[1..5]
Maks → L[1] = 29
Tukar maks (L[1]) dengan L[5], diperoleh :
21 27 10 8 29 76
1 2 3 4 5 6
Langkah 3
Berdasarkan susunan larik hasil langkah 2
Cari elemen maksimum dalam larik L[1..4] diperoleh nilai Maks → L[2] = 27
Tukar maks (L[2]) dengan L[4], diperoleh :
21 8 10 27 29 76
1 2 3 4 5 6
Langkah 4
Berdasarkan susunan larik hasil langkah 3
Cari elemen maksimum dalam larik L[1..3] diperoleh nilai Maks → L[1] = 21
Tukar maks (L[1]) dengan L[3], diperoleh :
10 8 21 27 29 76
1 2 3 4 5 6
Langkah 5
Berdasarkan susunan larik hasil langkah 4
Cari elemen maksimum dalam larik L[1..2] diperoleh nilai Maks → L[1] = 10
Tukar maks (L[1]) dengan L[2], diperoleh :
8 10 21 27 29 76
1 2 3 4 5 6
Imaks I j j
m
a
Judul Modul: Instruksi Dasar
k Pemrograman Berorientasi Obyek
Buku Informasi – Versi 2018 Halaman: 37 dari 71
s
Modul Pelatihan Berbasis Kompetensi Kode Modul
Sektor Teknologi Informasi dan Komunikasi Sub Sektor J.620100.022.02
Rekayasa Perangkat Lunak
Langkah 1.
Cari elemen maksimum dalam larik L[1..6] diperoleh nilai Imaks = 5→ L[Imaks] =
76
Tukar L[Imaks] dengan L[1], diperoleh :
76 27 10 8 29 21
1 2 3 4 5 6
Langkah 2.
{Berdasarkan susunan larik hail langkah 1 )
Cari elemen maksimum dalam larik L[2..6] diperoleh nilai Imaks = 5→ L[Imaks] =
29
Tukar L[Imaks] dengan L[2], diperoleh :
76 29 10 8 27 21
1 2 3 4 5 6
Langkah 3.
{Berdasarkan susunan larik hail langkah 2 )
Cari elemen maksimum dalam larik L[3...6] diperoleh nilai Imaks = 5→ L[Imaks]
= 27
Tukar L[Imaks] dengan L[3], diperoleh :
76 29 27 8 10 21
1 2 3 4 5 6
Langkah 4.
{Berdasarkan susunan larik hail langkah 3 )
Cari elemen maksimum dalam larik L[4...6] diperoleh nilai Imaks = 6→ L[Imaks]
= 21
Tukar L[Imaks] dengan L[4], diperoleh :
76 29 27 21 10 8
1 2 3 4 5 6
Langkah 5.
Berdasarkan susunan larik hail langkah 4 )
Cari elemen maksimum dalam larik L[4...6] diperoleh nilai Imaks = 5→ L[Imaks]
= 10
Tukar L[Imaks] dengan L[5], sebenarnya tidak perlu dilakukan sebab 10 sudah
berada pada posisi yang tepat, diperoleh :
76 29 27 21 10 8
1 2 3 4 5 6
Selesai, larik L sudah terurut menaik.
a. Pencarian beruntun
I=1 2 3 4 5 6 7 J=8
Misalkan data yang dicari adalah x = 18
Langkah 1 :
I =1, j=8
Indeks elemen tengah k = (1 + 8) div 2 = 4 diarsir
81 76 21 18 16 13 10 7
I=1 2 3 4 5 6 7 J=8
Kiri Kanan
Langkah 2 :
Apakah L[4] = 18 ya ( x ditemukan maka pencarian dihentikan)
I=1 2 3 4 5 6 7 J=8
Kiri Kanan
Langkah 2 :
Apakah L[4] = 16 tidak ? harus diputuskan apakah pencarian akan dilakukan
disebelah kiri atau dibagian kanan dengan pemeriksaan sebagai berikut :
L[4] > 16 ? ya, maka lakukan pencarian pada larik sebelah kanan dengan I = k +
1=5 dan j =8 (tetap)
16 13 10 7
5 6 7 J=8
Kanan
Langkah 1’
I=5, j =8
Indeks elemen tengah k = (5 + 8) DIV 2 = 6 (diarsir)
16 13 10 7
5 6 7 J=8
kiri kanan
Langkah 2’:
L[6] = 16 ? tidak . harus diputuskan pencarian disebelah kanan atau kiri
L[6] > 16 ? tidak ,lakukan pencarian disebelah kiri dengan I = 5 (tetap) dan j = k
-1 = 5
16
5
kiri
Langkah 2’’ :
L[5] = 16 ? ya ( x ditemukan pencarian dihentikan)
I=1 2 3 4 5 6 7 J=8
kiri Kanan
Langkah 2 :
Apakah L[4] = 100 tidak ? harus diputuskan apakah pencarian akan dilakukan
disebelah kiri atau dibagian kanan dengan pemeriksaan sebagai berikut :
I=1 2 3=j
Kiri
Langkah 1’:
i=1 j=3
indeks elemen tengah k = (1+3) DIV 2 = 2 (diarsir)
81 76 21
I=1 2 3=j
Kiri
Langkah 2’
L[2] = 100 ? tidak . harus diputuskan pencarian disebelah kanan atau kiri
L[6] > 100 ? tidak ,lakukan pencarian disebelah kiri dengan I = 1 (tetap) dan j =
k -1 = 2 – 1 = 1
81
I=1
Langkah 1’’
i=1, j=1
indeks elemen tengah k = 1 + 1 DIV 2 = 2 DIV 2 = 1
81
I=1
Langkah 2’’
L[1] = 100 ? tidak
Harus diputuskan apakah pencarian akan dilakukan disebelah kiri atau
kanandengan pemeriksaan sebagai berikut :
L[1] > 100 ? tidak
Lakukan pencarian pada larik baigian kiri dengan i=1 dan j=k-1 = 1-1 =0
Karena I > j maka tidakada bagian larik yang tersisa, dengan demikian x tidak
ditemukan didalam larik dan proses pencarian dihentikan.
BAB V
MENGGUNAKAN PROSEDUR DAN FUNGSI
2. Prosedure
3. Fungsi (function)
Fungsi diakses dengan cara memanggil namanya dari program pemanggil diikuti
dengan parameter aktual (bila ada). Karena fungsi menghasilkan nilai maka nilai
tersebut dapat ditampung dalam sebuah variabel yang bertipe sama dengan tipe
fungsi. Beberapa cara untuk memanggil fungsi :
1. nama_variabel namaFungsi(daftar parameter aktual);
2. write(nama_fungsi(daftar parameter aktual))
3. if nama_fungsi(daftar parameter aktual) < 0 then ......
4. z 2*nama_fungsi(dafatar parameter aktual) – x + y;
BAB IV
MENGIDENTIFIKASIKAN KOMPLEKSITAS ALGORITMA
1. Kompleksitas Algoritma
Sebuah algoritma tidak saja harus menghasilkan keluaran yang benar, tetapi
juga harus mangkus (efisien). Kebenaran suatu algoritma harus diuji dengan
jumlah masukan tertentu untuk melihat kinerja algoritma berupa waktu yang
diperlukan untuk menjalankan algoritmanya dan ruang memori yang diperlukan
untuk struktur datanya.
Algoritma yang bagus adalah algoritma yang mangkus (efisien).
Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang memori yang
dibutuhkan untuk menjalankan algoritma tersebut. Algoritma yang mangkus
adalah algoritma yang meminimumkan kebutuhan waktu dan ruang.
Implementasi sebuah algoritma dapat dikatakan baik atau efisien adalah
memerlukan kriteria formal yang digunakan untuk menilai algoritma tersebut yaitu
kemangkusan algoritma dengan kompleksitasnya. Besaran yang dipakai untuk
menerangkan model penilaian waktu/ruang algoritma adalah dengan
menggunakan kompleksitas algoritma. Ada dua macam kompleksitas algoritma,
yaitu kompleksitas waktu dan kompleksitas ruang.
2. Kompleksitas waktu
Kompleksitas waktu diukur dari jumlah tahapan komputasi yang dibutuhkan untuk
menjalankan algoritma sebagai fungsi dari ukuran masukan n. Kompleksitas
ruang berkaitan dengan sistem memori yang dibutuhkan dalam eksekusi program.
Kompleksitas ruang diukur dari memori yang digunakan oleh struktur data yang
terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.Pada tabel di
bawah diperlihatkan kelompok algoritma berdasarkan kompleksitas waktu
asimptotiknya.
Tabel
Kelompok Algoritma Nama
O(1) Konstan
O(log n) Logaritmik
O(n) Linear
O(n2) Kuadratik
O(n3) Kubik
O(2n) Eksponensial
O(n!) Faktorial
Gambar
Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran
masukan, yang secara khas adalah jumlah data yang diproses. Ukuran masukan
itu disimbolkan dengan n. Setelah menetapkan ukuran masukan, maka langkah
selanjutnya dalam mengukur kompleksitas waktu adalah menghitung banyaknya
operasi yang dilakukan algoritma sehingga didapatkan notasi kompleksitas
waktunya dalam fungsi n yaitu f(n).
Untuk mengukur kebutuhan waktu sebuah algoritma yaitu dengan
mengeksekusi langsung algoritma tersebut pada sebuah komputer, lalu dihitung
berapa lama durasi waktu yang dibutuhkan untuk menyelesaikan sebuah
persoalan dengan n yang berbeda-beda. Kemudian dibandingkan hasil komputasi
algoritma tersebut dengan notasi kompleksitas waktunya untuk mengetahui
efisiensi algoritmanya.
3. Kompleksitas Ruang
Keterangan
1. Operasi pengisian nilai (jumlah0, k1, jumlahjumlah+ak, kk+1, dan r
jumlah/n). Jumlah seluruh operasi pengisian nilai adalah
t1 = 1 + 1 + n + n + 1 = 3 + 2n
2. Operasi penjumlahan (jumlah+ak, dan k+1). Jumlah seluruh operasi
penjumlahan adalah
t2 = n + n = 2n
adalah T(n) = n.
Contoh 2. Algoritma untuk mencari elemen terbesar di dalam sebuah larik ( array)
yang berukuran n elemen.
procedure CariElemenTerbesar(input a1, a2, ..., an : integer, output maks : integer)
{ Mencari elemen terbesar dari sekumpulan elemen larik integer a1, a2, ..., an.
Elemen terbesar akan disimpan di dalam maks.
Masukan: a1, a2, ..., an
Keluaran: maks (nilai terbesar)
}
Deklarasi
k : integer
Algoritma
maksa1
k2
while k n do
if ak> maks then
maksak
endif
ii+1
endwhile
{k>n}
endif
1
n(1 + n)
(1 + 2 + 3 + ... + n) 2 (n + 1)
Tavg(n) = = =
n n 2
Suatu kompleksitas algoritma dinyatakan dalam suatu fungsi sebagai berikut: T(n)
= 2n2 + 6n + 1
Perbandingan pertumbuhan T(n) dengan n2diperlihatkan dalam tabel berikut
n T(n) = 2n2 + 6n + 1 n2
10 261 100
100 2061 1000
1000 2.006.001 1.000.000
10.000 1.000.060.001 1.000.000.000
Untuk n yang besar, pertumbuhan T(n) sebanding dengan n2. Pada kasus ini,
T(n) tumbuh seperti n2 tumbuh. T(n) tumbuh seperti n2 tumbuh saat n
bertambah. Kita katakan bahwa T(n) berorde n2 dan kita tuliskan
T(n) = O(n2)
Notasi “O” disebut notasi “O-Besar” (Big-O) yang merupakan notasi
kompleksitas waktu asimptotik.
DEFINISI.T(n) = O(f(n)) (dibaca “T(n) adalah O(f(n)” yang artinya T(n)
berorde paling besar f(n) ) bila terdapat konstanta C dan n0 sedemikian sehingga
untuk nn0.
else
writeln(x); O(1)
DAFTAR PUSTAKA
A. BukuReferensi
a. Renaldi Munir, 2009. Algoritma dan Pemrograman dalam bahasa pascal dan C,
Bandung: informatika.
b. Abdul Kadir, Pengenalan Algoritma, Pendekatan Secara Visual Dan Interaktif,
Penerbit Andi, 2013.
c. -------------, Algoritma Pemrograman, Modul Diklat Kompetensi Tingkat Dasar
Program Keahlian Teknik Komputer Dan Informatika Algoritma Pemrograman,
PPPPTK BOE, 2014
B. Referensi Lainnya
a. http://www.informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/Kompleksitas%20A
lgoritma.doc kompleksitas algoritma
A. Daftar Peralatan/Mesin
B. Daftar Bahan
DAFTAR PENYUSUN
1. Widyaiswara/Instruktur …
1. Abdul Munif, S.Pd.,S.St.,M.Kom 2. Asesor …
3. Anggota …
PENJELASAN UMUM
Ruang lingkup buku kerja ini meliputi pengerjaan tugas-tugas teori dan praktik per
elemen kompetensi dan kriteria unjuk kerja berdasarkan SKKNI kategori Informasi dan
Komunikasi Bidangsoftware development sub bidang pemrograman Ruang lingkup
buku kerja ini meliputi pengerjaan tugas-tugas teori dan praktik per elemen kompetensi
dan kriteria unjuk kerja berdasarkan SKKNI kategori Informasi dan Komunikasi Bidang
software development sub bidang pemrograman.
DAFTAR ISI
PENJELASAN UMUM
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
3. a. Jelaskan secara singkat definisi konstanta!
b. Kemukakan contoh penulisan algoritma untuk pendeklarasian dan pemberian nilai
empat jenis konstanta yang berbeda beserta tipe datanya .
Jawaban:
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
2. Lembar Evaluasi Tugas Teori : menjelaskan variabel, tipe data dan konstanta
Semua kesalahan harus diperbaiki terlebih dahulu sebelum ditandatangani.
1.
2.
3.
YA TIDAK
Catatan Penilai:
B. BAHAN
1. Materi/buku informasi
2. Lembar kerja / instrumen
3 Lembar jawaban Kertas HVS A4 bertas
folio bergaris
g. Standar Kinerja
1. Dikerjakan selesai tepat waktu, waktu yang digunakan tidak lebih dari
yang ditetapkan.
2. Toleransi kesalahan 5% dari hasil yang harus dicapai, tetapi bukan pada
kesalahan kegiatan kritis.
h. Tugas
i. Instruksi Kerja
Setelah membaca abstraksi nomor h selanjutnya ikuti instruksi kerja sebagai
berikut:
1) Identifikasi ragam jenis tipe data sesuai kebutuhan !
2) Identifikasi variabel sesuai kebutuhan !
3) Identifikasi konstanta sesuai kebutuhan !
Lembar Kerja 1(LK-1)Identifikasi variabel, type data dan Konstanta :
Nama variabel Type data Ukuran Nama Konstanta Type data Ukuran
Variabel minimal Konstanta Konstanta
variabel
Apakah semua instruksi kerja tugas praktik mengidentifikasi tipe data variabel
dan konstanta sesuai kebutuhan dilaksanakan dengan benar dengan waktu
yang telah ditentukan?
YA TIDAK
Catatan Penilai:
2. Jelaskan secara singkat komponen-komponen yang ada dalam dua metode pembuatan alur logika
pemrograman jawaban soal nomor 1 (KUK 2.2)
Jawaban:
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………………………………………………………………………………………………………………
…………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
1.
2.
3.
4.
5.
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
3. Tugas Praktik II Membuat alur logika pemrograman
a. Elemen Kompetensi : Membuat alur logika pemrograman
b. Waktu Penyelesaian : 30 menit
c. Capaian Unjuk Kerja :
Setelah menyelesaikan tugas menggunakan diagram program dan deskripsi
program peserta mampu:
k. Standar Kinerja
1. Dikerjakan selesai tepat waktu, waktu yang digunakan tidak lebih dari
yang ditetapkan.
l. Tugas
Abstraksi Tugas Praktik II
Seorang programmer ingin menampilkan sederetan bilangan di piranti
keluaran. Bilangan tersebut mempunyai siifat yang spesifik, yaitu jika dibagi
dengan 3 maka sisanya adalah Nol. Deretan bilangan tersebut dibatasi dalam
suatu jangkauan nilai tertentu dengan batas bawah dan batas bawah. Nilai
batas bawah dan batas atas bersifat dinamis yang dimasukkan dari
keyboard.Dengan batas bawah=10 dan batas atas =25.Sebelum membuat
kode program programmer tersebut akan membuat algoritma menggunakan
suatu metode dengan karakteristik sebagai berikut:
1. merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah
tau prosedur sesungguhnya dilaksanakan.
2. menunjukkan setiap langkah atau prosedur dalam urutan yang tepat saat
terjadi.
j. Instruksi Kerja
Setelah membaca abstraksi nomor h selanjutnya ikuti instruksi kerja
sebagai berikut:
1. Identifikasi metode pembuatan alur pemrograman apa yang tepat
digunakan oleh programmer untuk menyelesaikan kasus tersebut.
2. …………………………….
3. …………………………….
4. …………………………….
5. …………………………….
6. …………………………..
Jumlah:
Prosentase
Apakah semua instruksi kerja tugas praktik membuat alur logika pemrograman
dilaksanakan dengan benar dengan waktu yang telah ditentukan?
YA TIDAK
Catatan Penilai:
2. Jelaskan secara singkat definisi dan prinsip dasar pencarian data menggunakan metode squence search
? (KUK 3.2)
Jawaban:
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
1.
2.
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
2) menyajikan data hasil algoritma sorting secara cermat, tepat, teliti dan
sesuai spesifikasi
f. Standar Kinerja
1. Dikerjakan selesai tepat waktu, waktu yang digunakan tidak lebih dari
yang ditetapkan.
2. Toleransi kesalahan 5% dari hasil yang harus dicapai, tetapi bukan pada
kesalahan kegiatan kritis.
h. Instruksi Kerja
Setelah membaca abstraksi tugas praktek pada nomor h selanjutnya ikuti
instruksi kerja sebagai berikut:
1. Buatlah algoritma untuk melakukan pengurutan data diatas secara
menurun dengan menggunakan metoda bubble sort dan jelaskan langkah
langkah proses pengurutannya. Kelima data tersebut harus diinputkan
Apakah semua instruksi kerja tugas praktik III membuat algoritma pengurutan
data (sorting) dan pencarian data (searching)dilaksanakan dengan benar
dengan waktu yang telah ditentukan?
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
2. Jelaskan secara singkat tepat definisi prosedur buatlah ilustrasi (teks dan atau gambar) dan berikan
salah satu contoh sederhana ? (KUK 4.2)
Jawaban:
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
1.
2.
3.
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
g. Standar Kinerja
1. Dikerjakan selesai tepat waktu, waktu yang digunakan tidak lebih dari
yang ditetapkan.
2. Toleransi kesalahan 5% dari hasil yang harus dicapai, tetapi bukan pada
kesalahan kegiatan kritis.
i. Instruksi Kerja
Setelah membaca abstraksi tugas praktek pada nomor h selanjutnya ikuti
instruksi kerja sebagai berikut:
1. Buatlah algoritma untuk menyelesaikan masalah yang dihadapi system
designer diatas dengan menggunakan prosedur. Buat pula struktur modul
dan keterkaitan antar modul.
4. Daftar Cek Unjuk Kerja Tugas IVMenggunakan prosedur dan fungsi program
DAFTAR PENCAPAIAN PENILAIAN
NO POIN YANG DICEK
TUGAS/INSTRUKSI YA TIDAK K BK
1. Buatlah algoritma untuk • Struktur dan keterkaitan
menyelesaikan masalah modul
yang dihadapi system • Modul main
designer diatas dengan • Modul InputData
menggunakan prosedur • Modul TampilData
• Modul NilaiTerbesar
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
2. Jelaskan secara singkat definisi kompleksitas ruang (penggunaan memory) algoritma dan berikan
contoh cara menghitungnya ? (KUK 5.1)
Jawaban:
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
1.
2.
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
f. Standar Kinerja
i. Dikerjakan selesai tepat waktu, waktu yang digunakan tidak lebih dari
yang ditetapkan.
ii. Toleransi kesalahan 5% dari hasil yang harus dicapai, tetapi bukan
pada kesalahan kegiatan kritis.
h. Instruksi Kerja
Setelah membaca abstraksi tugas praktek pada nomor h selanjutnya ikuti
instruksi kerja sebagai berikut:
1. Identifikasi dan hitunglah kompleksitas penggunaan waktu algoritma di
atas (T(n) dan O(n) (KUK 5.1) !
2. Identifkasi dan hitunglah kompleksitas penggunaan memory algoritma di
atas (S(p)). (KUK 5.2) !
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
YA TIDAK
Catatan Penilai:
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………….
PENJELASAN UMUM
Adapun tujuan dibuatnya buku penilaian ini, yaitu untuk menguji kompetensi peserta
pelatihan setelah selesai menempuh buku informasi dan buku kerja secara
komprehensif dan berdasarkan hasil uji inilah peserta akan dinyatakan kompeten
atau belum kompeten terhadap unit kompetensi mengimplementasikan algoritma
pemrograman. Metoda Penilaian yang dilakukan meliputi penilaian dengan opsi
sebagai berikut:
1. Metoda Penilaian Pengetahuan
a. Tes Tertulis
Untuk menilai pengetahuan yang telah disampaikan selama proses pelatihan
terlebih dahulu dilakukan tes tertulis melalui pemberian materi tes dalam
bentuk tertulis yang dijawab secara tertulis juga. Untuk menilai pengetahuan
dalam proses pelatihan materi tes disampaikan lebih dominan dalam bentuk
obyektif tes, dalam hal ini jawaban singkat, menjodohkan, benar-salah, dan
pilihan ganda. Tes essay bisa diberikan selama tes essay tersebut tes essay
tertutup, tidak essay terbuka, hal ini dimaksudkan untuk mengurangi faktor
subyektif penilai.
b. Tes Wawancara
Tes wawancara dilakukan untuk menggali atau memastikan hasil tes tertulis
sejauh itu diperlukan. Tes wawancara ini dilakukan secara perseorangan antara
penilai dengan peserta uji/peserta pelatihan. Penilai sebaiknya lebih dari satu
orang.
b. Aktivitas Praktik
Penilaian dilakukan secara sebenarnya, di tempat kerja sebenarnya dengan
menggunakan obyek kerja sebenarnya.
DAFTAR ISI
BAB I
PENILAIAN TEORI
PETUNJUK UMUM
1. Jawablah materi tes ini pada lembar jawaban/kertas yang sudah disediakan.
2. Modul terkait dengan unit kompetensi agar disimpan.
3. Bacalah materi tes secara cermat dan teliti.
Isian
Lengkapilan kalimat di bawah ini dengan cara mencari jawabannya pada kolom sebelah
kanan dan tuliskan jawabannya saja pada kertas yang tersedia.
Pilihan Ganda
Jawablah pertanyaan/pernyataan di bawah ini dengan cara memilih pilihan jawaban
yang tepat dan menuliskan huruf A/B/C/D yang sesuai dengan pilihan tersebut.
1. Merupakan sebuah tipe data dasar yang tersedia secara langsung pada suatu
bahasa pemrograman: (1.1)
a. Tipe Bentukan c. Tipe composite
b. Tipe Primitive d. Tipe inheritancel
2. Tipe data yang hanya dapat digunakan untuk menyimpan dua nilai saja yaitu nilai
True/False (Benar/Salah) adalah (1.1)
a. Boolean c. String
b. Character d. Integer
5. bagian teks algoritma sebagai tempat untuk mendefinisikan beberapa hal antara
lain: Nama type data adalah : (2.2)
a. header c. kamus
b. deskrepsi d. Algoritma
8. Pengurutan untuk data berukuran besar dan data disimpan didalam memori
hardisk: (3.1)
a. Internal sort c. Bubble sort
b. External sort d. Selection sort
9. Pencarian yang diterapkan pada sekumpulan data yang sudah terurut baik terurut
naik atau turun, dapat memberikan waktu pencarian yang cepat.(KUK 3.2)
a. Squence search c. Binary search
b. Tree search d. Bubble search
Essay
Jawablah pertanyaan-pertanyaan di bawah ini dengan jelas dan benar!
1. ………….
2. ………..
Isian (menjodohkan)
1.1 1. Integer ( c )
1.2 2. string
1.2 3. Array ( g )
2.1 4. Finiteness. ( I )
2.1 5. Header (a)
2.2 6. Predefined Process ( k )
2.4 7. Terminal point (d)
3.1 8. Internal sort (j )
3.2 9. Bubble search ( f )
4.2 10. Prosedur ( h )
4.3 11. Fungsi ( e )
5.1 12 Kompleksitas waktu (Q)
5.2 13 Kompleksitas ruang (n)
Pilihan Ganda (PG)
1.1 1. B
1.1 2. B
1.2 3. c.
1.3 4. D
2.2 5. c
2.2 6. a
2.3 7. D
3.1 8. B
3.2 9. c
4.1 10. D
4.2 11. B
5.1 12. D
5.2 13. B
BAB II
PENILAIAN PRAKTIK
e. Standar Kinerja
1) Dikerjakan selesai tepat waktu, waktu yang digunakan tidak lebih dari
yang ditetapkan.
2) Toleransi kesalahan 5% dari hasil yang harus dicapai, tetapi bukan pada
kesalahan kegiatan kritis.
f. Tugas- Abstraksi Tugas Praktik
Tugas Sesi 1
Perhatikan dan amati Gambar dibawah ini. Gambar tersebut merupakan
sebuah interface yang digunakan untuk memanipulasi data mahasiswa.
Tugas Sesi 2
Seorang programmer ingin menampilkan sederetan bilangan di piranti
keluaran. Bilangan tersebut mempunyai siifat yang spesifik, yaitu jika dibagi
dengan 3 maka sisanya adalah Nol. Deretan bilangan tersebut dibatasi dalam
suatu jangkauan nilai tertentu dengan batas bawah dan batas bawah. Nilai
batas bawah dan batas atas bersifat dinamis yang dimasukkan dari keyboard.
Dengan batas bawah=10 dan batas atas =25. Sebelum membuat kode
program programmer tersebut akan membuat algoritma menggunakan suatu
metode dengan karakteristik sebagai berikut:
Tugas Sesi 3
Diberikan suatu kumpulan data bilangan yang terdiri dari lima bilangan
bertipe integer. Susunan kelima bilangan tersebut diperlihatkan dalam gambar
berikut:
Data 15 5 45 35 25
No indeks 0 1 2 3 4
Tugas Sesi 4
Diberikan dua buah data bilangan pecahan A dan B. data tersebut akan
dikelola menggunakan program komputer. system designer akan merancang
algritma yang akan mengelola data tersebut dengan ketentuan sebagai
berikut:
• Menggunakan pendekatan modular dengan memecah progam menjadi
beberapa bagian.
• Masing-masing bagian mempunya tugas-tugas yang spesifik.
• Modul InputData digunakan untuk membaca dua bilangan pecahan
tersebut yang diinputkan dari keyboard dan menyimpannya dalam variabel.
• Modul TampilData digunakan untuk menampilkan data ke piranti keluaran
yang telah dimasukkan.
Tugas Sesi 5
Diberikan suatu algoritma dalam bentuk pseudocode sebagai berikut:
Program Cetak_deret_Bilangan_habis_bagi_tiga
{ menampilakan deretan bilangan yang habis dibagi 3 antara 10 sampai 30.
Bilangan yang habis dibagi dengan 3 adalah bilangan yang jika dibagi dengan
3 sisanya adalah nol}
Deklarasi :
bil, sisa : integer
Diskripsi
bil 10
sisa 0
while bil <= 30
sisa bil Modulo 3
if bil == 0
write(bil); {instruksi mencetak isi variable bilangan}
write(“ ”) {instruksi mencetak karakter kosong atau spasi}
n n + 1 {tambahkan n dengan satu dan simpan ke variable n
endwhile
{ bil > 30 } { kondisi setelah pengulangan berhenti
i. Instruksi Kerja
Sesi 2:
4. Identifikasi metode pembuatan alur pemrograman apa yang tepat
digunakan oleh programmer untuk menyelesaikan kasus tersebut !
5. Tentukan komponen-komponen penyusun alur logika pemrograman yang
sesui dengan metode diatas !
Sesi 3:
8. Buatlah algoritma untuk melakukan pengurutan data diatas secara menurun
dengan menggunakan metoda bubble sort dan jelaskan langkah langkah
proses pengurutannya. Kelima data tersebut harus diinputkan secara
langsung pada program. Algoritma harus dapat menampilkan data sebelum
diurutkan dan setelah data diurutkan (KUK 3.1)
9. Buatlah algoritma untuk melakukan pencarian data menggunakan metoda
squence search dan jelaskan langkah-langkah proses pencarian untuk data
X=45 dan X =30. Algoritma harus dapat :
• menampilkan pesan ke piranti keluaran, “data ditemukan, berada pada
indek ke-2”, Untuk pencarian data X=45,
• menampilkan pesan ke piranti keluaran “Data tidak ditemukan”, untuk
pencarian data X=30.
Sesi 4
10. Buatlah algoritma untuk menyelesaikan masalah yang dihadapi system
designer diatas dengan menggunakan prosedur. Buat pula struktur modul
dan keterkaitan antar modul.
11. Buatlah algoritma untuk menyelesaikan masalah yang dihadapi system
designer diatas menggunakan fungsi dengan cara memodifikasi hasil
algoritma soal Nomor 1 dan pastikan setidaknya satu modul menggunakan
fungsi. Buat pula struktur modul dan keterkaitan antar modul.
Sesi 5
12. Identifikasi dan hitunglah kompleksitas penggunaan waktu algoritma di atas
(T(n) dan O(n) (KUK 5.1) !
13. Identifkasi dan hitunglah kompleksitas penggunaan memory algoritma di
atas (S(p)). (KUK 5.2) !
2. …………………………….
3. …………………………….
4. …………………………….
5. …………………………….
6. …………………………..
Jumlah:
Prosentase
…………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………….
PENCAPAIAN PENILAIAN
NO DAFTAR TUGAS/INSTRUKSI POIN YANG DICEK
YA TIDAK K BK
YA TIDAK
Catatan Penilai:
…………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………….
Tanda Tangan Perserta Pelatihan : ………………………………………
B. Catatan:
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
LAMPIRAN-LAMPIRAN
Isian (menjodohkan)
1.1 11. Integer ( c )
1.2 12. string
1.2 13. Array ( g )
2.1 14. Finiteness. ( I )
2.1 15. Header (a)
2.2 16. Predefined Process ( k )
2.4 17. Terminal point (d)
3.1 18. Internal sort (j )
3.2 19. Bubble search ( f )
4.2 20. Prosedur ( h )
4.3 11. Fungsi ( e )
5.1 12 Kompleksitas waktu (Q)
5.2 13 Kompleksitas ruang (n)
Pilihan Ganda (PG)
1.1 14. B
1.1 15. B
1.2 16. c.
1.3 17. D
2.2 18. c
2.2 19. a
2.3 20. D
3.1 21. B
3.2 22. c
4.1 23. D
4.2 24. B
5.1 25. D
5.2 26. B
8. …………………………….
9. …………………………….
10. …………………………….
11. …………………………….
12. …………………………..
Jumlah:
Prosentase