Anda di halaman 1dari 86

MATERI PELATIHAN BERBASIS KOMPETENSI

SEKTOR TELEMATIKA
SUB SEKTOR PROGRAMMER KOMPUTER

MEMBUAT ALGORITMA PEMROGRAMAN DASAR


TIK.PR02.001.01

BUKU INFORMASI
DEPARTEMEN TENAGA KERJA DAN TRANSMIGRASI R.I.
DIREKTORAT JENDERAL PEMBINAAN PELATIHAN DAN PRODUKTIVITAS
Jl. Jend. Gatot Subroto Kav.51 Lt.7.B Jakarta Selatan

DAFTAR ISI

Daftar Isi Hal 2

BAB I PENGANTAR ………………………………………………………………………….. 5

1.1. Konsep Dasar Pelatihan Berbasis Kompetensi …………………………. 5


1.2. Penjelasan Modul…………………………………………………………….. 5
1.3. Pengakuan Kompetensi Terkini (RCC)…………………………………… 7
1.4. Pengertian-pengertian Istilah……………………………………………… 8

BAB II STANDAR KOMPETENSI…………………………………………………………….. 10

2.1. Peta Paket Pelatihan ……………………………………………………….. 10


2.2. Pengertian Unit Standar …………………………………………………… 10
2.3. Unit Kompetensi yang Dipelajari ………………………………………… 10
2.3.1. Judul Unit ……………………………………………………….. 11
2.3.2. Kode Unit ………………………………………………………… 11
2.3.3. Deskripsi Unit …………………………………………………… 11
2.3.4. Elemen Kompetensi ……………………………………………. 11
2.3.5. Kriteria Unjuk Kerja ……………………………………………. 11
2.3.6. Batasan Variabel ……………………………………………….. 13
2.3.7. Panduan Penilaian ……………………………………………… 13
2.3.8. Kompetensi Kunci ………………………………………………. 15

BAB III STRATEGI DAN METODE PELATIHAN …………………………………………… 16

3.1. Strategi Pelatihan ………………………………………………………… 16


3.2. Metode Pelatihan …………………………………………………………. 17

BAB IV MATERI UNIT KOMPETENSI ………………………………………………………. 18

4.1 Tujuan Instruksional Umum ………………………………………………….. 18


4.2 Tujuan Instruksional Khusus ………………………………………………….. 18
4.3 Apa itu Algoritma Pemrograman. ……………………………………………. 19
4.4 Tipe Data, Variabel dan Konstanta ………………………………………….. 21
4.4.1 Tipe Data …………………………………………………………………….. 22
4.4.1.1 Tipe Data Dasar …………………………………………………. 22
4.4.1.2 Tipe Data Bentukan …………………………………………….. 28
4.4.2 Variabel …………………………………………………………….. 32
4.4.3 Konstanta …………………………………………………………… 35
4.5 Alur Logika Program …………………………………………………………… 35
4.5.1 Proses Sekuensial ……………………………………………….. 35
4.5.2 Proses Percabangan …………………………………………….. 37
4.5.2.1 Proses Percabangan Tunggal ……………………….. 38
4.5.2.2 Proses Percabangan Ganda …………………………. 39
4.5.2.3 Proses Percabangan Lebih Dari 2 ………………….. 41
4.5.2.4 Struktur Case ………………………………………….. 42
4.5.3 Proses Perulangan ………………………………………………. 43
4.5.3.1 Struktur WHILE – DO ………………………………… 44
4.5.3.2 Struktur Do – While / Repeat – Until ……………… 47
4.5.3.3 Struktur FOR …………………………………………… 49
4.6 Menerapkan Pengelolaan Array …………………………………………….. 51
4.6.1 Pengenalan Array ……………………………………………….. 51
4.6.2 Array N Dimensi …………………………………………………. 56
4.6.3 Algoritma Pengurutan Data (Sorting Data) ………………… 59
4.6.4 Algoritma Pencarian Data (Searching Data) ……………….. 61
4.7 Pengelolaan File ………………………………………………………………… 66
4.7.1 Membuka File …………………………………………………….. 68
4.7.2 Memanipulasi File ………………………………………………… 69
4.7.3 Menutup File ……………………………………………………… 71
BAB V SUMBER-SUMBER YANG DIPERLUKAN UNTUK PENCAPAIAN KOMPETENSI 73

5.1. Sumber Daya Manusia ………………………………………………………………. 73


5.2. Sumber-sumber Perpustakaan …………………………………………………….. 74
5.3. Daftar Peralatan/Mesin dan Bahan ……………………………………………….. 75

DAFTAR PUSTAKA……………………………………………………………………………. 76

BAB I
PENGANTAR

1.1. Konsep Dasar Pelatihan Berbasis Kompetensi


 Apakah pelatihan berdasarkan kompetensi?
Pelatihan berdasarkan kompetensi adalah pelatihan yang memperhatikan pengetahuan, keterampilan dan
sikap yang diperlukan di tempat kerja agar dapat melakukan pekerjaan dengan kompeten. Standar
Kompetensi dijelaskan oleh Kriteria Unjuk Kerja.

 Apakah artinya menjadi kompeten ditempat kerja?


Jika Anda kompeten dalam pekerjaan tertentu, Anda memiliki seluruh keterampilan, pengetahuan dan
sikap yang perlu untuk ditampilkan secara efektif ditempat kerja, sesuai dengan standar yang telah
disetujui.

1.2. Penjelasan Modul


Modul ini dikonsep agar dapat digunakan pada proses Pelatihan Konvensional/Klasikal dan Pelatihan
Individual/Mandiri. Yang dimaksud dengan Pelatihan Konvensional/Klasikal, yaitu pelatihan yang dilakukan
dengan melibatkan bantuan seorang pembimbing atau guru seperti proses belajar mengajar sebagaimana
biasanya dimana materi hampir sepenuhnya dijelaskan dan disampaikan pelatih/pembimbing yang
bersangkutan.
Sedangkan yang dimaksud dengan Pelatihan Mandiri/Individual adalah pelatihan yang dilakukan secara
mandiri oleh peserta sendiri berdasarkan materi dan sumber-sumber informasi dan pengetahuan yang
bersangkutan. Pelatihan mandiri cenderung lebih menekankan pada kemauan belajar peserta itu sendiri.
Singkatnya pelatihan ini dilaksanakan peserta dengan menambahkan unsur-unsur atau sumber-sumber
yang diperlukan baik dengan usahanya sendiri maupun melalui bantuan dari pelatih.

1.2.1 Desain Modul


Modul ini didisain untuk dapat digunakan pada Pelatihan Klasikal dan Pelatihan Individual/mandiri :
 Pelatihan klasikal adalah pelatihan yang disampaiakan oleh seorang pelatih.
 Pelatihan individual/mandiri adalah pelatihan yang dilaksanakan oleh peserta dengan menambahkan
unsur-unsur/sumber-sumber yang diperlukan dengan bantuan dari pelatih.

1.2.2. Isi Modul


a. Buku Informasi
Buku informasi ini adalah sumber pelatihan untuk pelatih maupun peserta pelatihan.
b. Buku Kerja
Buku kerja ini harus digunakan oleh peserta pelatihan untuk mencatat setiap pertanyaan dan kegiatan
praktik baik dalam Pelatihan Klasikal maupun Pelatihan Individual / mandiri.
Buku ini diberikan kepada peserta pelatihan dan berisi :
Kegiatan-kegiatan yang akan membantu peserta pelatihan untuk mempelajari dan memahami informasi.
 Kegiatan pemeriksaan yang digunakan untuk memonitor pencapaian keterampilan peserta pelatihan.
 Kegiatan penilaian untuk menilai kemampuan peserta pelatihan dalam melaksanakan praktik kerja.

c. Buku Penilaian
Buku penilaian ini digunakan oleh pelatih untuk menilai jawaban dan tanggapan peserta pelatihan pada
Buku Kerja dan berisi :
 Kegiatan-kegiatan yang dilakukan oleh peserta pelatihan sebagai pernyataan keterampilan.
 Metode-metode yang disarankan dalam proses penilaian keterampilan peserta pelatihan.
 Sumber-sumber yang digunakan oleh peserta pelatihan untuk mencapai keterampilan.
 Semua jawaban pada setiap pertanyaan yang diisikan pada Buku Kerja.
 Petunjuk bagi pelatih untuk menilai setiap kegiatan praktik.
 Catatan pencapaian keterampilan peserta pelatihan.

1.2.3. Pelaksanaan Modul


Pada pelatihan klasikal, pelatih akan :
 Menyediakan Buku Informasi yang dapat digunakan peserta pelatihan sebagai sumber pelatihan.
 Menyediakan salinan Buku Kerja kepada setiap peserta pelatihan.
 Menggunakan Buku Informasi sebagai sumber utama dalam penyelenggaraan pelatihan.
 Memastikan setiap peserta pelatihan memberikan jawaban / tanggapan dan menuliskan hasil tugas
praktiknya pada Buku Kerja.

Pada Pelatihan individual / mandiri, peserta pelatihan akan :


 Menggunakan Buku Informasi sebagai sumber utama pelatihan.
 Menyelesaikan setiap kegiatan yang terdapat pada buku Kerja.
 Memberikan jawaban pada Buku Kerja.
 Mengisikan hasil tugas praktik pada Buku Kerja.
 Memiliki tanggapan-tanggapan dan hasil penilaian oleh pelatih.

1.3 Pengakuan Kompetensi Terkini (RCC)


 Apakah Pengakuan Kompetensi Terkini (Recognition of Current Competency).
Jika Anda telah memiliki pengetahuan dan keterampilan yang diperlukan untuk elemen unit kompetensi
tertentu, Anda dapat mengajukan pengakuan kompetensi terkini (RCC). Berarti Anda tidak akan
dipersyaratkan untuk belajar kembali.
 Anda mungkin sudah memiliki pengetahuan dan keterampilan, karena Anda telah :
1. Bekerja dalam suatu pekerjaan yang memerlukan suatu pengetahuan dan keterampilan yang sama
atau
2. Berpartisipasi dalam pelatihan yang mempelajari kompetensi yang sama atau
3. Mempunyai pengalaman lainnya yang mengajarkan pengetahuan dan keterampilan yang sama.

1.4 Pengertian-pengertian Istilah


Profesi
Profesi adalah suatu bidang pekerjaan yang menuntut sikap, pengetahuan serta keterampilan/keahlian
kerja tertentu yang diperoleh dari proses pendidikan, pelatihan serta pengalaman kerja atau penguasaan
sekumpulan kompetensi tertentu yang dituntut oleh suatu pekerjaan/jabatan.

Standardisasi
Standardisasi adalah proses merumuskan, menetapkan serta menerapkan suatu standar tertentu.

Penilaian / Uji Kompetensi


Penilaian atau Uji Kompetensi adalah proses pengumpulan bukti melalui perencanaan, pelaksanaan dan
peninjauan ulang (review) penilaian serta keputusan mengenai apakah kompetensi sudah tercapai dengan
membandingkan bukti-bukti yang dikumpulkan terhadap standar yang
dipersyaratkan.

Pelatihan
Pelatihan adalah proses pembelajaran yang dilaksanakan untuk mencapai suatu kompetensi tertentu
dimana materi, metode dan fasilitas pelatihan serta lingkungan belajar yang ada terfokus kepada
pencapaian unjuk kerja pada kompetensi yang dipelajari.

Kompetensi
Kompetensi adalah kemampuan seseorang untuk menunjukkan aspek sikap, pengetahuan dan
keterampilan serta penerapan dari ketiga aspek tersebut ditempat kerja untuk mwncapai unjuk kerja yang
ditetapkan.

Standar Kompetensi
Standar kompetensi adalah standar yang ditampilkan dalam istilah-istilah hasil serta memiliki format
standar yang terdiri dari judul unit, deskripsi unit, elemen kompetensi, kriteria unjuk kerja, ruang lingkup
serta pedoman bukti.

Sertifikat Kompetensi
Adalah pengakuan tertulis atas penguasaan suatu kompetensi tertentu kepada seseorang yang dinyatakan
kompeten yang diberikan oleh Lembaga Sertifikasi Profesi.

Sertifikasi Kompetensi
Adalah proses penerbitan sertifikat kompetensi melalui proses penilaian / uji kompetensi.

BAB II
STANDAR KOMPETENSI

2.1. Peta Paket Pelatihan


Modul yang sedang Anda pelajari ini adalah untuk mencapai satu unit kompetensi, yang termasuk dalam
satu paket pelatihan, yang terdiri atas unit-unit kompetensi berikut:
2.1.1. TIK.PR2.001.01 Membuat Algoritma Pemrograman Dasar
2.1.2. OP02.003.01A Mengoperasikan Sistem Operasi Microsoft Windows
2.1.3. OP02.001.01 Mengoperasikan Komputer Personal Yang Berdiri Sendiri (PC Stand alone)

2.2. Pengertian Unit Standar Kompetensi


Apakah Standar Kompetensi?
Setiap Standar Kompetensi menentukan :
1. Pengetahuan dan keterampilan yang diperlukan untuk mencapai kompetensi.
2. Standar yang diperlukan untuk mendemonstrasikan kompetensi.
3. Kondisi dimana kompetensi dicapai.
Apa yang akan Anda pelajari dari Unit Kompetensi ini?
Anda akan mempelajari tentang Algoritma Pemrograman dasar.
Berapa lama Unit Kompetensi ini dapat diselesaikan?
Pada sistem pelatihan berdasarkan kompetensi, fokusnya ada pada pencapaian kompetensi, bukan pada
lamanya waktu. Namun diharapkan pelatihan ini dapat dilaksanakan dalam jangka waktu tiga sampai tujuh
hari. Pelatihan ini dijutukan bagi semua user terutama yang tugasnya berkaitan dengan programming,
seperti operator, programmer, staff support, dan staff admin.

Berapa banyak/kesempatan yang Anda miliki untuk mencapai kompetensi?


Jika Anda belum mencapai kompetensi pada usaha/kesempatan pertama, Pelatih Anda akan mengatur
rencana pelatihan dengan Anda. Rencana ini akan memberikan Anda kesempatan kembali untuk
meningkatkan level kompetensi Anda sesuai dengan level yang diperlukan.
Jumlah maksimum usaha/kesempatan yang disarankan adalah 3 (tiga) kali.

2.3. Unit Kompetensi yang Dipelajari


Dalam sistem pelatihan, Standar Kompetensi diharapkan menjadi panduan bagi peserta pelatihan untuk
dapat :
 mengidentifikasikan apa yang harus dikerjakan peserta pelatihan.
 memeriksa kemajuan peserta pelatihan.
 menyakinkan bahwa semua elemen (sub-kompetensi) dan criteria unjuk kerja telah dimasukkan
dalam pelatihan dan penilaian.

KODE UNIT : TIK.PR02.001.01

JUDUL UNIT : Membuat Algoritma Pemrograman Dasar


DESKRIPSI UNIT :

Unit ini menentukan kompetensi yang diperlukan untuk mempelajari algoritma yang akan diterapkan pada
program, tidak tergantung bahasa pemrograman yang akan digunakan. Algoritma pemrograman
merupakan materi dasar yang harus dikuasai oleh setiap programer.

Untuk tingkat dasar ini penekanan kepada penguasaan algoritma dengan struktur data yang sederhana
(melibatkan variabel statik)

ELEMEN KOMPETENSI KRITERIA UNJUK KERJA

01 Menjelaskan varian dan


invarian
1.1 Tipe data, variabel, konstanta dan parameter yang
berlaku umum pada pemrograman dijelaskan.

1.2 Tipe data baru dan tipe data yang ada dibuat dan
dijelaskan pemanfaatannya.

1.3 Pemakaian nama pada tipe data, variabel, konstanta


dan parameter dijelaskan.

02 Membuat alur logika


pemrograman
2.1 Algoritma dengan skema program sekuensial
dibuat.

2.2 Algoritma dengan skema program percabangan


dibuat.

2.3 Algoritma dengan skema program pengulangan


dibuat.
03 Menerapkan pengelolaan
array
3.1 Algoritma dibuat dengan array atau dimensi.

3.2 Algoritma pencarian data dan algoritma


pengurutan data (sorting) dibuat dengan
menggunakan array.

04 Memelihara pekerjaan secara


praktis
4.1 Algoritma program penulisan data dan pembacaan
data ke dalam media penyimpanan data berupa hard
disk, floppy disk atau lainnya dibuat dan ditunjukkan.

4.2 Algoritma program pembacaan dan penulisan data


dalam file dibuat secara sekuensial dan indeks.

BATASAN VARIABEL

1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi.
2. Menjaga etika bersifat internal pada bidang teknologi informasi dan komunikasi.

PANDUAN PENILAIAN

1. Pengetahuan dan keterampilan penunjang untuk mendemontrasikan kompetensi,


memerlukan bukti keterampilan dan pengetahuan di bidang berikut ini :

1.1 Pengetahuan dasar :


1.1.1 Matematika dasar dan matematika logika
1.1.2 Flowchart dan dasar pemrograman
1.2 Keterampilan dasar
Mengoperasikan sistem komputer

1. 2. Konteks penilaian

Kompetensi harus diujikan di tempat kerja atau di tempat lain secara teori dengan kondisi kerja sesuai
dengan keadaan normal.

1. 3. Aspek penting penilaian

Aspek yang harus diperhatikan:

3.1 Kemampuan mengidentifikasi varian dan invarian yang berlaku umum pada pemrograman.
3.2 Kemampuan mengidentifikasi alur logika pemrograman sekuensial dan membuat algoritma.
3.3 Kemampuan mengidentifikasi pengelolaan array pada program.
3.4 Kemampuan menyimpan program ke dalam media penyimpanan.
3.5 Kemampuan membuat program membaca dan menulis data ke dalam file secara sekuensial dan
indeks.

4. Kaitan dengan unit-unit lainnya


4.1 Unit ini didukung oleh pengetahuan dan keterampilan dalam unit-unit kompetensi yang berkaitan
dengan dasar-dasar teknologi informasi yaitu mengoperasikan PC dan sistem informasi.

4.2 Pengembangan pelatihan untuk memenuhi persyaratan dalam unit ini perlu dilakukan dengan hati-
hati. Untuk pelatihan pra kejuruan umum, institusi harus menyediakan pelatihan yang mempertimbangkan
serangkaian konteks industri seutuhnya tanpa bias terhadap sektor tertentu. Batasan variabel akan
membantu dalam hal ini. Untuk sektor tertentu/khusus, pelatihan harus disesuaikan untuk memenuhi
kebutuhan sektor tersebut.

Kompetensi Kunci

No Kompetensi Kunci Dalam Unit ini Tingkat


1 Mengumpulkan, mengorganisir dan menganalisa informasi 1
2 Mengkomunikasikan ide-ide dan informasi 2
3 Merencanakan dan mengorganisir aktivitas-aktivitas 2
4 Bekerja dengan orang lain dan kelompok 1
5 Menggunakan ide-ide dan teknik matematika 3
6 Memecahkan masalah 2
7 Menggunakan teknologi 1

BAB III
STRATEGI DAN METODE PELATIHAN

3.1. Strategi Pelatihan


Belajar dalam suatu sistem Berdasarkan Kompetensi berbeda dengan yang sedang “diajarkan” di kelas
oleh Pelatih. Pada sistem ini Anda akan bertanggung jawab terhadap belajar Anda sendiri, artinya bahwa
Anda perlu merencanakan belajar Anda dengan Pelatih dan kemudian melaksanakannya dengan tekun
sesuai dengan rencana yang telah dibuat.

Persiapan/perencanaan
1. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap belajar dengan tujuan
mendapatkan tinjauan umum mengenai isi proses belajar Anda.
2. Membuat catatan terhadap apa yang telah dibaca.
3. Memikirkan bagaimana pengetahuan baru yang diperoleh berhubungan dengan pengetahuan dan
pengalaman yang telah Anda miliki.
4. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda.

Permulaan dari proses pembelajaran


1. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik yang terdapat pada tahap belajar.
2. Merevisi dan meninjau materi belajar agar dapat menggabungkan pengetahuan Anda.

Pengamatan terhadap tugas praktik


1. Mengamati keterampilan praktik yang didemonstrasikan oleh Pelatih atau orang yang telah
berpengalaman lainnya.
2. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang Anda temukan.
Implementasi
1. Menerapkan pelatihan kerja yang aman.
2. Mengamati indicator kemajuan personal melalui kegiatan praktik.
3. Mempraktikkan keterampilan baru yang telah Anda peroleh.

Penilaian
Melaksanakan tugas penilaian untuk penyelesaian belajar Anda.

3.2. Metode Pelatihan


Terdapat tiga prinsip metode belajar yang dapat digunakan. Dalam beberapa kasus, kombinasi metode
belajar mungkin dapat digunakan.

Belajar secara mandiri


Belajar secara mandiri membolehkan Anda untuk belajar secara individual, sesuai dengan kecepatan
belajarnya masing-masing. Meskipun proses belajar dilaksanakan secara bebas, Anda disarankan untuk
menemui Pelatih setiap saat untuk mengkonfirmasikan kemajuan dan mengatasi kesulitan belajar.

Belajar Berkelompok
Belajar berkelompok memungkinkan peserta untuk dating bersama secara teratur dan berpartisipasi dalam
sesi belajar berkelompok. Walaupun proses belajar memiliki prinsip sesuai dengan kecepatan belajar
masing-masing, sesi kelompok memberikan interaksi antar peserta, Pelatih dan pakar/ahli dari tempat
kerja.

Belajar terstruktur
Belajar terstruktur meliputi sesi pertemuan kelas secara formal yang dilaksanakan oleh Pelatih atau ahli
lainnya. Sesi belajar ini umumnya mencakup topic tertentu.

BAB IV
MATERI UNIT KOMPETENSI
MEMBUAT ALGORITMA PEMROGRAMAN DASAR
4.1 Tujuan Instruksional Umum
 Siswa mampu mengerti tentang apa itu Algoritma Pemrograman.
 Siswa mampu mengerti dasar – dasar Algoritma Pemrograman.
 Siswa mampu berpikir secara logis dalam menyelesaikan masalah.
 Siswa mampu menganalisa masalah dan menciptakan solusti untuk menyelesaikan sebuah masalah

4.2 Tujuan Instruksional Khusus


 Siswa dapat mengetahui seberapa pentingnya Algoritma Pemrograman sebagai dasar untuk
mempelajari pemrograman lanjut.
 Siswa dapat mengerti dasar – dasar pemikiran dalam menyelesaikan masalah dalam pemrograman.
 Siswa dapat mengerti tentang logika dasar pemrograman.
 Siswa dapat mengerti tentang tipe – tipe data dasar dalam pemrograman.
 Siswa dapat memahami tentang alur program meliputi sekuensial, percabangan dan perulangan.
 Siswa dapat mengerti tentang dasar – dasar struktur data.
 Siswa dapat memahami mengenai dasar – dasar file beserta pengelolaannya.

Dasar – Dasar Pemrograman

4.3 Apa itu Algoritma Pemrograman ?


Algoritma adalah urutan langkah – langkah logis penyelesaian masalah yang disusun secara sistematis.
Berdasarkan defisini algoritma diatas maka dapat diartikan sebuah Algoritma Pemrograman adalah suatu
urutan yang logis dan sistematis yang digunakan untuk menyelesaikan sebuah penyususan program
komputer.

Dasar – dasar dari algoritma pemrograman dibagi menjadi 3 bagian, yaitu


1 Proses
2 Instruksi
3 Aksi

Pada dasarnya sebuah algoritma adalah deskripsi pelaksanaan suatu proses yang disusu berdasarkan
sederetan langkah instruksi yang logis. Tiap langkah instruksi tersebut melakukan suatu tindakan
(aksi) yang akan menghasilkan sejumlah operasi yang bersesuaian dengan aksi tersebut. Hasil yang
diperoleh dari pengerjaan suatu aksi tersebut dapat dibandingkan berdasarkan keadaan sebelum aksi
dimulai dan keadaan pada saat aksi selesai dikerjakan. (Lihat contoh dibawah)
.
Contoh kasus :
Terdapat 2 Gelas A dan B, gelas A berisi warna merah dan gelas B berisi warna biru. Bagaimana
memindahkan isi dari gelas A ke B dan gelas B ke A ?

Deskripisi :
Keadaan awal : Gelas A berisi warna merah dan gelas B berisi warna biru.
Aksi :

-
- Pindahkan isi dari gelas A ke dalam gelas C
- Pindahkan isi gelas B ke dalam gelas A
- Pindahkan isi gelas C ke dalam gelas A.

Keadaan akhir : Gelas A berisi warna biru dan gelas B berisi warna merah.
Contoh diatas memperlihatkan urutan yang logis dalam menyelesaikan suatu masalah / memperoleh hasil
yang diinginkan.

Struktur Dasar Algortima


1. 1. Runtunan (Sequence)
2. 2. Pemilihan (Selection)
3. 3. Pengulangan (Repetition)

Runtunan
Runtunan (Sequence) terdiri dari satu atau lebih instruksi yang akan dikerjakan secara berurutan sesuai
dengan urutan penulisannya. Urutan instruksi menentukan keadaan akhir algoritma, bila urutannya diubah
akan memberikan hasil yang berbeda.

Contoh :
Instruksi 1
Instruksi 2
Instruksi 3

Pemilihan
Pemilihan (Selection) adalah suatu kondisi dimana sebuah instruksi dijalankan apabila kondisi tertentu
dipenuhi. Ini akan mengakibatkan tidak semua instruksi akan dijalankan sesuai urutan dan tidak semua
instruksi akan dijalankan.

Contoh :
Jika nilai a lebih kecil dari 10 maka
Cetak nilai a sebanyak 10 kali ke layar monitor

Pengulangan
Salah satu kelebihan komputer adalah kemampuan untuk mengerjakan proses yang sama berulang kali
tanpa mengenal lelah. Ini akan mengakibatkan sebuah instruksi mungkin dijalankan beberapa kali sebelum
menjalankan instruksi yang lain.

Contoh :
Tuliskan angka dari 1 sampai 100

Angka = 0
Repeat
Tuliskan angka
Tambahkan nilai angka dengan 1
Until angka = 100

Pada praktenya, ketiga elemen itu dapat dikombinasikan menjadi sekumpulan instruksi yang membangun
sebuah program komputer. Namun pemahaman tentang dasar dari masing – masing elemen sangatlah
penting.

4.4 Tipe data, Variabel dan Konstanta


Dalam pembahasan mengenai pengertian dan dasar – dasar dari algoritma pemrograman telah dijelaskan
mengenai urutan kerja dari sekumpulan instruksi yang digunakan untuk memecahkan sebuah
permasalahan.
Pada pembahasan ini kita akan mempelajari beberapa hal, antara lain :
4.4.1 Tipe Data
Pada dasarnya sebuah program komputer bekerja dengan memanipulasi obyek (data) di dalam memori.
Obyek yang akan diprogram bermacam – macam jenis dan tipenya, misalnya nilai numerik, karakter, string
dan rekaman (record). Tipe data terbagi menjadi beberapa bagian, antara lain :

4.4.1.1 Tipe Data Dasar

1. A. Tipe Logika / Bilangan Logika


Tipe data ini hanya memiliki 2 nilai saja, benar atau salah atau 0 atau 1. Nilai 0 ini akan melambangkan
salah dan 1 akan melambangkan benar. Tipe data ini biasanya digunakan untuk operasi – operasi logika
(logical operation).
Operasi logika ini akan menghasilkan nilai dalam ranah tipe boolean, yaitu betul atau salah. Operasi yang
dapat digunakan untuk operasi logika adalah : not, and, or dan xor.
Dibawah ini akan diberikan contoh pemakaiannya :

Jika a dan b adalah peubah (variabel) yang bertipe boolean / logika maka hasil variabel a dan b dengan
operator boolean tersebut diberikan berdasarkan tabel kebenaran berikut :
A B A and B A or B A xor B
True True True true False
True false false True True
False True false True True
False False False False False

1. B. Tipe Bilangan Bulat


Tipe ini adalah tipe yang sudah kita kenal dengan baik dalam kehidupan sehari – hari. Tipe data ini
mempunyai nilai yang tidak
mengandung pecahan desimal, misalnya : 34, 8, 1200, 10 dan seterusnya. Nama tipe dari bilangan bulat
adalah integer. Secara teori, tipe bilangan bulat memiliki ranah nilai yang tidak terbatas dimulai dari minus
tidak terhingga sampai plus tidak terhingga. Namum dalam penerapan algoritma kita dapat mendefinisikan
tipe bilangan bulat dalam suatu rentang nilai tertentu. Penetapan rentang
nilai ini dimaksudkan untuk menyatakan bahwa nilai dari suatu obyek hanya boleh pada ranah nilai
tersebut.

Contoh :
Misalkan sebuah obyek jumlah murid 1 kelas yang berisi 100 orang, hendaknya didefinisikan pada tipe
bilangan bulat yang memiliki rentang nilai dari 1 .. 100. Apabila sebuah obyek tidak didefinisikan rentang
nilainya, maka dianggap obyek tersebut memiliki rentang nilai dari minus tidak terhingga sampai plus tidak
terhingga.

Pada implementasinya, tipe integer memulai rentang nilai yang terbatas dan tergantung dari setiap kompiler
dimana kita membuat program aplikasinya. Berikut saya berikan contoh pada kompiler Turbo Pascal.

Tipe Rentang Nilai Format


Byte 0 … 255 Unsigned 8 – bit
Shortlist - 128 … 127 Signed 8 – bit
Word 0 … 65535 Unsigned 16 – bit
Integer - 32768 … 32767 Signed 16 bit
Longint -2147483648 … 2147483647 Signed 32 bit

Rentang nilai dari tipe data ini sangat bervariatif dan bergantung pada jenis program kompilernya. Contoh
diatas tidak berlaku bagi semua jenis kompiler.

Operasi
Operasi yang dapat dilakukan pada tipe data ini ada 2 macam, yaitu : Operasi artimatika dan Operasi
perbandingan.
- Operasi Aritmatika
Operasi aritmatika pada bilangan bulat akan menghasilkan bilangan bulat juga. Operator aritmatika yang
digunakan antara lain :
+ (penjumlahan)
- (Pengurangan)
* (Perkalian)
Div (Pembagian)
Mod (sisa hasil bagi)

- Operasi Perbandingan
Operasi perbandingan terhadap bilangan bulat dengan menggunakan operator relasional akan
menghasilkan nilai

booelan (true atau false). Operator perbandingan yang digunakan antara lain :
< (lebih kecil)
< (lebih kecil atau sama dengan)
> (lebih besar atau sama dengan)
== (sama dengan)
≠ (tidak sama dengan)

Contoh operasi perbandingan :


3<8 (true)
9≤9 (true)
( 24 div 3) ≠ 8 (false)

1. C. Tipe Bilangan Riil


Tipe bilangan riil adalah bilangan yang mengandung nilai pecahan / desimal misalnya 3.65, 0.0003, 29.0
dan lain lain. Karakter yang identik dengan bilangan desimal adalah harus selalu mengandung “.”
(titik). Jadi apabila terdapat nilai 20 maka akan dianggap sebagai bilangan bulat, sedangkan nilai 20.0 akan
dianggap sebagai bilangan riil. Selain itu bilangan riil juga dapat dituliskan dengan notasi eksponential (E)
yang artinya perpangkatan sepuluh. Nama tipe dari bilangan riil ini lebih sering dikenal dengan real.
Secara teoritis, tipe data ini memiliki ranah nilai yang tidak terbatas dimulai dari minus tak terhingga hingga
plus tak terhingga. Namun
pada implementasinya, tipe bilangan riil juga memiliki batas nilai yang tergantung pada masing – masing
kompiler. Berikut akan diberikan contoh pada kompiler Turbo Pascal.

Tipe Rentang Nilai Format


Real 2.9 X 10 6 byte
Single 4 byte
Double 8 byte
Extended 10 byte

Operasi
Operasi yang dapat dilakukan pada tipe data ini ada 2 macam, yaitu : Operasi artimatika dan Operasi
perbandingan.

- Operasi Aritmatika
Operasi aritmatika pada bilangan riil akan menghasilkan bilangan riil juga. Operator aritmatika yang
digunakan antara lain :
+ (penjumlahan)
- (Pengurangan)
* (Perkalian)
Div (Pembagian)
Mod (sisa hasil bagi)

- Operasi Perbandingan
Operasi perbandingan terhadap bilangan riil dengan menggunakan operator relasional akan menghasilkan
nilai booelan (true atau false). Operator perbandingan yang digunakan antara lain :
< (lebih kecil)
< (lebih kecil atau sama dengan)
> (lebih besar atau sama dengan)
== (sama dengan)
≠ (tidak sama dengan)
Contoh operasi perbandingan :
0.003 < 0. 3 (true)
8.0 ≥ 5 (false)
3.0 ≠ 3.5 (true)

1. D. Tipe Karakter
Tipe data yang termasuk karakter ini adalah huruf – huruf alfabet, tanda baca, angka ‘0’, ‘1’, ‘2’, …. dan
karakter – karakter khusus seperti ‘<’, ‘?’, dan sebagainya. Tipe data ini biasa dikenal sebagi char.
Rentang nilai dari tipe data ini adalah karakter – karakter yang telah disebutkan diatas, untuk lebih detilnya
dapat melihat pada buku – buku yang memuat daftar tabel ASCII. Karakteristik yang identik dengan tipe
data ini adalah setiap karakter harus diapit dengan tanda petik tunggal.

Contoh :
‘a’, ‘1’, ‘ ‘, ‘+’, ‘?’, ‘&’.
Satu hal yang perlu diperhatikan adalah : bilangan 1 adalah integer dan ‘1’ adalah karakter.

Operasi
Satu – satunya operasi yang digunakan untuk tipe data ini adalah operasi perbandingan.
- Operasi perbandingan
Operasi perbandingan terhadap tipe data karakter dengan menggunakan operator relasional akan
menghasilkan nilai boolean (true atau false). Operator perbandingan yang digunakan antara lain :
< (lebih kecil)
< (lebih kecil atau sama dengan)
> (lebih besar atau sama dengan)
== (sama dengan)
≠ (tidak sama dengan)
Contoh :
‘a’ == ‘a’ (true)
‘m’ < ‘z’ (true)
‘y’ ≠ ‘Y’

Hal yang harus diperhatikan dalam operasi perbandingan pada tipe data karakter adalah operasi ini
membandingkan kode ASCII diantara 2 obyek yang dibandingkan. Jadi bisa dilihat pada contoh diatas
bahwa ‘y’ tidak sama dengan ‘Y’, ini dikarenakan kode ASCII dari 2 karakter tersebut memang berbeda.

4.4.1.2 Tipe Data Bentukan

1. A. String / Kalimat
String adalah sebuah kalimat atau dapat dikatakan merupakan kumpulan dari karakter. Tipe data ini
dikenal juga dengan nama string.
Rentang nilai dari string adalah sesuai dengan rentang nilai dari karakter (lihat pembahasan diatas). String
adalah bentukan dari sederetan karakter yang dikombinasikan menjadi satu untuk membentuk sebuah arti
tertentu.

Contoh :
“Bandung”, “Jakarta”, “ABCDE”, “12345”
hal yang perlu diperhatikan adalah string “123” berbeda dengan 123.

Operasi
Operasi yang dapat dilakukan pada tipe data string ada 2 macam, yaitu :

- Operasi Penyambungan (Concatenation)


Operasi penyambungan ini berfungsi untuk menggabungkan 2 string atau lebih. Operator yang digunakan
adalah “+” dan “&” (Tergantung dari jenis kompilernya)
Contoh Concatenation :
“TEKNIK “ + “INFORMATIKA” = “TEKNIK INFORMATIKA”
“1” + “2” = “12”
Hal yang perlu diperhatkan adalah operator “+” ini bukanlah operator penjumlahan / operator artimatika.

- Operasi Perbandingan
Operasi perbandingan terhadap tipe data string dengan menggunakan operator relasional akan
menghasilkan nilai booelan (true atau false). Operator perbandingan yang digunakan antara lain :
< (lebih kecil)
< (lebih kecil atau sama dengan)
> (lebih besar atau sama dengan)
== (sama dengan)
≠ (tidak sama dengan)

Contoh :
“abcde” == “abc” (false)
“aku” < “AKU” (true)
Hal yang perlu diperhatikan dalam operasi perbandingan pada tipe data string adalah kompiler akan
membandingkan berdasarkan kode ASCII dari tiap – tiap karakter terhadap kode ASCII dari obyek lainnya.
Prinsip ini sebenarnya sama dengan
prinisp operasi perbandingan pada tipe data karakter yang telah dijelaskan di atas.

1. B. Tipe data dasar yang diberi nama tipe baru


Pemrogram dapat memberi sebuah nama baru dati tipe data dasar yang ada, dengan menambahkan kata
kunci type. Pengubahan nama ini biasanya digunakan bagi para programmer untuk memudahkan dalam
penamaan pada variabel pada penulisan program.

Contoh :
Type bilBulat : integer
Penulisan diatas berarti bilBulat memiliki tipe yang sama dengan
integer dan dapat digunakan untuk mendeklarasikan sebuah obyek integer.

1. C. Record / Rekaman
Tipe data rekaman atau bisa disebut record. Record ini merupakan dasar daripada pemrograman basis
data. Pada dasarnya record adalah sekumpulan baris data yang tersusun dari beberapa field.
Contoh :
Nama Alamat Telp NO_Ktp
Budi Gelong Baru 72 713.26.905 123/456/789

Pada contoh diatas akan menjelaskan mengenai dasar dari field dan record sendiri. Field adalah setiap
kolom (nama, alamat, telp dan no ktp). Field ini adalah data tunggal yang berdiri sendiri dan belum memiliki
arti yang sempurna sebelum disusun menjadi 1 kesatuan. Record adalah 1 baris data (Budi, Gelong Beru
72, 713.26.905,123/456/789). Record adalah sekumpulan baris data yang disusun dari field – field.

Pendefinisian Tipe Data Record


Pendefinisian tipe data record sangat tergantung dari bahasa pemrograman yang digunakan, disini akan
diberikan contoh
menggunakan bahasa pemrograman Turbo Pascal.

Contoh :
Record DataMhs adalah record yang menyimpan nilai ujian mahasiswa beserta kode mata kuliah yang
diambil.

Type DataMhs : record


< NIM : string, Nama : string, KdMtk : string, nilai : real >

Pendefinisian tipe data record menggunakan kata kunci type kemudian dilanjutkan dengan menuliskan
nama Record dan menuliskan field – field yang ingin ditampung dalam 1 record.

Penulisan dan pembacaan dari Record


Sebelum mempelajar tentang bagaimana menulis dan membaca dari record, ada baiknya kita pelajari
dahulu bagaimana mendefinisikan obyek dari sebuah tipe data record yang telah didefinisikan.

Contoh :
Misalkan anda mempunyai sebuah struktur record yang bernama DataMhs, dan saat ini hendak memberi
nilai dari masing – masing field yang ada di dalam struktur tersebut.

Buatlah obyek yang merujuk ke struktur record.

DataMhs rudy
Mendefinisikan obyek rudy sebagai obyek nyata dari DataMhs

Memasukkan nilai ke dalam setiap field dalam struktur record

Rudy.Nama = “Rudy Haryanto”


Rudy.NIM = “0600671590”
Rudy.KdMtk = “MTK001”
Rudy.Nilai = 98

Menampilkan nilai dari struktur record ke standar output

Cetak Rudy.NIM + Rudy.Nama + Rudy.KdMtk + Rudy.Nilai


Akan memberikan hasil sama seperti contoh tabel diatas. Hal yang

harus diperhatikan pada operator ‘+’ tersebut bukanlah operator artimatika dan berupa operator
penggabungan string ( lihat pembahasan tipe data string ).

4.4.2 Variabel
Setiap mempelajari sebuah bahasa pemrograman anda pasti akan dihadapkan dengan yang namanya
variabel. Variabel merupakan sebuah obyek yang digunakan untuk menyimpan data tertentu berdasarkan
tipe data dasar tertentu.
Setiap obyek yang ada di dunia pasti memiliki nama, begitu pula dalam bahasa pemrograman. Seluruh
variabel yang dideklarasikan harus memiliki nama dan tipe dasarnya. Ini dimaksudkan untuk memudahkan
kompiler dalam mengidentifikasi variabel – variabel yang digunakan dalam proses perhitungan.
Variabel memiliki aturan dalam penamaan yang biasanya berlaku bagi hampir seluruh bahasa
pemrograman.

- Nama harus dimulai dengan huruf alfabet, tidak boleh dimulai dengan angka , spasi atau karakter
khusus lainnya

- Bagi bahasa pemgograman tertentu huruf besar dan kecil tidak berpengaruh, tapi bagi bahasa
pemrograman tertentu akan dibedakan.
- Tidak boleh mengandung operator artimatika, tanda baca dan karakter khusus lainnya.
- Tidak boleh dipisahkan menggunakan spasi, apabila ingin memisahkan harus menggunakan
karakter “_”.
- Panjang nama tidak dibatas, tetapi hendaknya tidak terlalu panjang sehingga tidak menimbuikan
kebingungan saat menulis program.
- Penamaan hendaknya disesuaikan dengan kegunaan dari variabel tersebut.

Contoh :
Integer nilai_ujian (variabel bernama nilai_ujian dengan tipe integer)
Integer nilai ujian (salah, mengandung spasi)
String nama-murid (salah, mengandung karakter ‘-‘)
String nama_murid (benar, menggunakan karakter “_”)

Pemberian nilai pada variabel


Setelah mempelajari bagaimana cara mendeklarasikan sebuah variabel, kita akan mempelajari bagaimana
cara memberi nilai kedalam sebuah variabel berdasarkan tipe data dasarnya.

1. A. Secara Langsung
Pemberian nilai secara langsung ini berarti memberikan sebuah nilai ke dalam variabel secara langsung di
dalam teks algortma program. Nilai yang diberikan dapat berupaq konstanta, tetapan atau nama variabel
lain. Tipe yang diberikan harus sesuai dengan tipe data dari variabel penerima.

Contoh :
Integer nilai
Nilai = 10 (benar)
Integer nilai_2
Nilai2 = nilai (benar, memasukkan nilai dari variabel lain)
Nilai2 = “alo” (salah, tipe dasarnya tidak sama)
1. B. Melalui Piranti Masukan (Standart Input)
Metode untuk memberikan nilai ke dalam sebuah variabel tidak hanya
dilakukan secara langsung, namun juga dapat dilakukan melalui sebuah piranti masukan (keyboard, file
ataupun database).
Setiap bahasa pemrograman menggunakan function yang berbeda – beda dalam menangani proses
inputan nilai dari piranti masukan. Contoih dibawah ini menggunakan bahasa Turbo Pascal.

Contoh :
Integer nilai
Read (nilai)
Function read() ini digunakan untuk menerima inputan dary keyboard. Jadi ketika anda mengetikkan angka
10 dan menekan ENTER, maka nilai akan berisikan angka 10.
Apabila anda mengetikkan nilai yang memiliki tipe yang berbeda dari pada tipe data dari variabel
penampungnya, respon yang akan diberikan oleh kompiler berbeda – beda dan tergantung dari masing –
masing kompiler. Ada yang langsung memberikan pesar error namun ada pula yang tetap dapat
menjalankan instruksi selanjutnya baru kemudian menampilkan nilai yang salah ketika hendak
mengakses isi dari variabel tersebut.

4.4.3 Konstanta
Konstanta adalah sebuah variabel yang memiliki nilai yang tetap
selama program berlangsung dan tidak dapat dirubah nilainya. Konstanta dibagi menjadi 2 bagian, yaitu :

1. A. Konstanta yang telah ditetapkan


Konstanta ini biasanya telah ada bersamaan dengan satu paket dari bahasa pemrograman yang
digunakan, dan nilainya tidak dapat dirubah. Biasanya digunakan untuk mendukung function –
function yang disediakan pada masing – masing bahasa pemrograman.

1. B. Konstanta yang kita tetapkan sendiri


Konstanta yang kita ciptakan sendiri, nama ataupun isi dari konstanta ini terserah pada kita. Kata kunci
yang digunakan biasanya adalah const.

Contoh :
Const PHI = 3.14
Const keyWords = “rahasia”
Const nMaks = 100

4.5 Alur Logika Program


Algoritma Pemrograman terdiri dari sekumpulan instruksi yang disusun berdasarkan urutan logis tertentu
untuk memecahkan suatu permasalahan.
Alur logika program dibagi menjadi 3 bagian besar, antara lain :

4.5.1 Proses sekuensial


Proses sekuensial berarti kompiler program akan menjalankan instruksi yang ada satu persatu hingga
ditemukan dari akhir sebuah instruksi.
Karakteristik dari proses sekuensial adalah :
- Setiap instruksi dikerjakan satu per satu
- Setiap instruksi dijalankan hanya sekali saja, tidak ada perulangan.
- Setiap instruksi dijalankan tepat sesuai dengan urutan sebagaimana ditulis di dalam teks algoritma
- Kompiler akan berhenti menjalankan instruksi setelah bertemu dengan instruksi terakhir.

Contoh :
Penulisan contoh ini menggunakan bahasa pseudocode dan bahasa pemgoraman Turbo C.

Pseudocode
String nama
Integer nilai
Read nama
Read nilai
Nilai = nilai * 1.4
Print “Nama anda : “ + nama + “ Nilai anda : “ + nilai

Bahasa C
#include <stdio.h>
void main(){
// deklarasi variabel berdasarkan tipe data dasarnya.
char *nama;
int nilai;
// instruksi secara sekuensial mulai dilaksanakan.
scanf(“%s”,nama);
scanf(“%d”,&nilai);
nilai = nilai * 1.4;
printf(“Nama anda : %s Nilai anda : %d“,nama,&nilai);
// akhir dari instruksi dilaksanakan.
}

Kedua contoh diatas sama – sama menggunakan konsep sekuensial meskipun menggunakan 2 jenis
bahasa pemrograman yang berbeda.
Program akan menjalankan instruksi pertama dengan mendeklarasikan variabel kemudian menjalankan
proses input data, mengalikan isi dari variabel nilai sebanyak 1.4 dan instruksi terakhir adalah menuliskan
hasilnya ke stardar output (biasanya monitor), setelah itu program akan sslesai karena tidak instruksi lagi
yang dijalankan.
Hal yang perlu diperhatikan adalah : Urutan sebuah instruksi sangat memgang peranan yang dominan,
apabila instruksi diatas posisinya ditukar antara :
Scanf(“%d”, &nilai); dan
Nilai = nilai * 1.4;
Maka dapat dipastikan akan memberikan hasil yang sangat berbeda dari yang kita inginkan, karena
kompiler hanya menjalankan sesuai dengan peletakan urutan instruksi saja.

4.5.2 Proses percabangan


Percabangan adalah suatu kondisi dimana sebuah instruksi tidak dijalankan secara sekuensial, tetapi lebih
berdasarkan pada kondisi – kondisi tertentu yang ditetapkan oleh pembuat program. Pada inti
pemrograman, percabangan memegang peranan yang sangat penting dalam penyusunan program.

Contoh :
- Sebuah sistem menginginkan adanya otorisasi kepada pengguna. Sehingga pengguna yang
namanya terdaftar di data perusahaan yang bisa menggunakan sistem tersebut.
- Sebuah program menginginkan pencatatan data hanya dapat dilakukan pada pukul 09.00 –
10.00.
- Dan lain sebagainya.

Proses percabangan memiliki 3 jenis, antara lain :

4.5.2.1 Percabangan Tunggal


Percabangan tunggal bekerja apabila hanya ada 1 alternatif instruksi saja yang dijalankan. Logika ini
memungkinkan kompiler untuk
menjalankan sebuah instruksi atau tidak sama sekali. Kompiler baru
akan menjalankan instruksi yang ada di dalam notasi percabangan apabila kondisi yang diinginkan
terpenuhi atau memberikan nilai akhir true. Apabila kondisi tersebut memberikan nilai akhir false maka
tidak akan ada instruksi yang dijalankan.

Notasi algortimik yang dgunakan adalah :


If (kondisi) {
Instruksi yang hendak dijalankan ……
}
Notasi algoritmik yang digunakan ini masing – masing berbeda tergantung dari bahasa pemrograman yang
dipakai. Pada pembahasan
ini kami menggunakan contoh menggunakan bahasa pemrograman Turbo C.

Contoh :
Program membaca inputan dari keyboard dan apabila diinput oleh karakter vokal maka program akan
menuliskan “Huruf Hidup” dan apabila bukan maka program tidak akan menjalankan apapun.

#include <stdio.h>
void main(){
char huruf;

scanf(“%c”,&huruf);
if (huruf == ‘a’ || huruf = ‘i’ || huruf = ‘u’ || huruf ==’e’ || huruf == ‘o’)
printf (“Huruf Hidup”);
}

Program membacan apakah bilangan yang diinput habis dibagi 2 atau tidak, apabila habis dibagi 2 maka
program akan menuliskan “Bilangan genap” dan bukan maka program tidak akan menjalankan apapun.

#include <stdio.h>

void main(){
int angka;
scanf(“%d”,&angka);
if (angka % 2 == 0)
printf (“Bilangan Genap”);}

4.5.2.2 Percabangan Ganda


Percabangan ganda apabila terdapat 2 alternatid instruksi yang dijalankan. Logika ini memungkinkan
kompiler menjalankan salah satu dari 2 alternatif instruksi yang ada, dan salah satu instruksi pasti
dijalankan.
Notasi algoritmik yang digunkanan :

If (kondisi) {
Instruksi pertama
}else{
Instruksi kedua
}

Contoh :
Program memeriksa inputan apakah bilangan ganjil atau genap. Apabila diperiksa bilangan genap maka
tulis “Bilangan genap” dan kalau bukan maka tulis “Bilangan ganjil”.

#include <stdio.h>

void main(){
int angka;
scanf(“%d”,&angka);
if (angka % 2 == 0)
printf (“Bilangan Genap”);
else
printf(“Bilangan Ganjil”);
}

Program memeriksa bilangan yang lebih besar dari 2 inputan bilangan.


#include <stdio.h>

void main(){
int angka1, angka2;
scanf(“%d”,&angka1);
scanf(“%d”,&angka2);
if (angka1 > angka2)
printf (“Bilangan pertama lebih besar dari Bilangan kedua”);
elseprintf (“Bilangan kedua lebih besar dari Bilangan pertama”);
}

4.5.2.3 Percabangan Lebih dari 2


Pada dasarnya hanya terdapat 2 jenis seleksi dalam struktur algoritma
pemrograman, namun bukan berarti hanya bisa dikembangkan pada 2 jenis tersebut saja. Struktur seleksi
dapat dikembangkan menjadi bentuk yang tidak terbatas dan dapat dikombinasikan kedalam bentuk
perulangan selama notasi penulisannya tidak terdapat kesalahan.
Kemampuan logika seseorang dalam merancang program dan mengamati dari permasalahan yang ada
menjadi bagian yang paling penting dalam melakukan pengembangan dari bentuk seleksi ini.
Dibawah ini akan diberikan contoh seleksi menggunakan kondisi lebih dari 2.
Contoh :
Program untuk menentukan grade dari sebuah nilai ujian, dengan aturan grade A untuk rentang nilai 80 –
100, grade B untuk nilai 70 – 80 dan grade C untuk nilai 50 – 70 dan grade D untuk nilai dibawah itu.

#include <stdio.h>

void main(){
int nilai;
scanf(“%d”,&nilai);
if (nilai >= 80 && nilai <= 100)
print(“Grade A”);
else if (nilai >= 70 && nilai <= 80)
printf(“Grade B”);
else if (nilai >= 50 && nilai <= 70)
printf(“Grade C”);
else
printf(“Grade D”);
}
4.5.2.4 Struktur Case
Struktur case sebenarnya memiliki fungsi yang sama dengan struktur if yang telah kita pelajari diatas.
Struktur case ini dapat meringkaskan alur logika yang terjadi apabila diaplikasikan pada pada alur seleksi
yang memiliki lebih dari 2 kondisi. Berikut adalah notasi algoritmiknya :

switch (kondisi){
case kondisi_1 :
break;
case kondisi2 :
break;
default : }
Struktur logika seleksi menggunakan struktur case ini jauh lebih ringkas apabila diaplikasikan pada struktur
seleksi yang memiliki kondisi lebih dari 2. Kompiler program akan menjalankan instruksi dari struktur case
dan memeriksa setiap kondisi yang ada, apabila belum ada kondisi yang bernilai benar maka kompiler
akan terus menjalankan instruksi dibawahnya sampai ditemukan kondisi yang bernilai benar. Namun
apabila hingga kondisi terakhir diperiksa dan tidak ditemukan kondisi yang bernilai benar maka kondisi
default yang akan dijalankan.

Contoh :
Program untuk menentukan apakah karakter ‘%’, spasi, ‘&’ atau ‘$’ yang ditekan oleh pengguna melalui
keyboard.
#include <stdio.h>

void main(){
int tombol;
scanf(“%d”,&tombol);

swicth(tombol){
case ‘32’:
printf(“Anda menekan tombol spasi”);
break;
case ’36: printf(“Anda menekan tombol $”);
break;
case ‘37’ : printf(“Anda menekan tombol %”);
break;
case ‘38’: printf(“Anda menekan tombol &”);
break;
default : printf(“Anda tidak mematahui aturan.”);
}}

Perbedaan yang paling jelas antara stukrut if dengan struktur case adalah :
- Struktur if dapat menerima kondisi yang berupa operasi logika. Sedangkan stuktur case tidak.
- Struktur case lebih efektif apabila digunakan untuk logika seleksi lebih dari 2 kondisi.
- Struktur case dan sktuktur if dapat dikombinasikan kedalam satu bagian, dengan catatan tata cara
penulisan notasi tidak terdapat kesalahan.
- Struktur case tidak dapat melakukan pengecekan terhadap tipe data string / kalimat.
4.5.3 Proses perulangan
Salah satu bagian yang paling membedakan antara manusia dengan komputer adalah : Komputer mampu
mengerjakan instruksi dalam hitungan ribuan bahkan jutaan kali tanpa mengenal lelah. Dalam mempelajari
algoritma pemrograman, struktur perulangan menjadi bagian yang sangat penting untuk dipelajari.

Struktur Perulangan
Struktur perulangan terdiri dari 2 bagian, yaitu :
1. Kondisi perulangan, yaitu ekspresi yang dilakukan sebelum pengulangan dilakukan pertama kali.
2. Body atau tubuh pengulangan, yaitu satu atau lebih instruksi yang diulang.
Selain itu biasanya di perulangan juga terdapat 2 hal dibawah ini, antara lain :
1. Inisialisasi : aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.
2. Terminasi : aksi yang dilakukan untuk membuat perulangan berakhir. Biasanya berupa sebuah
kondisi.

Dalam setiap bahasa pemrograman pada umumnya biasanya terdapat 3 jenis perulangan, antara lain :
1. Struktur WHILE – DO
2. Struktur Do – WHILE / REPEAT – UNTIL
3. Struktur FOR.
Ketiga jenis diatas hanyalah sebuah metode dan pada implementasinya, notasi penulisannya (sintaks)
sangat tergantung dari setiap bahasa pemrograman yang digunakan.

4.5.3.1 Struktur WHILE – DO


Ciri khas dari struktur ini adalah :
- Dilakukan pengencekan di awal pada kondisi sebelum menjalankan instruksi di tubuh perulangan.
- Ada kemungkinan tubuh perulangan tidak dijalankan sama sekali.
- Setiap kali hendak melakukan perulangan berikutnya, selalu memeriksa kondisi perulangan.
Apabila kondisi perulangan telah

- memberikan nilai false / salah. Maka perulangan akan dihentikan.


Notasi algoritmiknya adalah :

while (KONDISI){
tubuh perulangan yang berisi instruksi untuk dijalankan.
}
Contoh :
Progam membuat tulisan di angka 1 .. 100.

# include <stdio.h>

void main(){
int nilai_awal = 1; // inisialisasi awal. Sangat penting.
While (nilai_awal <= 100){
Printf(“/n%d”,nilai_awal);
Nilai_awal ++; // memanipulasi variabel awal agar tercapai kondisi terminasi.
}}

Dalam struktur perulangan ini, ada 2 hal yang harus diperhatikan untuk menghindari terjadinya kesalahan
logika pada program.

- Inisialisasi variabel awal.


Ini dimaksudkan agar ketika kompiler program melakukan pemeriksaan terhadap kondisi awal, ditemukan
kondisi yang benar. Pada beberapa bahasa pemrograman tertentu, apabila sebuah variabel tidak
diinisialisasikan maka nilainya bisa berupa random ataupun nol. (lihat contoh dibawah)

- Manipulasi variabel awal.


Banyak terjadi kesalahan pada programmer ketika mereka membuat program perulangan, memanipulasi
variabel kondisi sangat penting untuk menjaga program tetap sesuai dengan yang diinginkan. Ketika kita
lupa memanipulasi variabel awal, ada kemungkinan program mengulang terus menerus (looping forever)
karena kondisi yang diinginkan tercapat terus tanpa ada perubahan. (lihat contoh dbawah)

Contoh 1 :
Program menulis angka dari 1 .. 100.

# include <stdio.h>

void main(){
int nilai_awal ; // tidak dilakukan inisialisasi awal.
While (nilai_awal <= 100){
printf(“/n%d”,nilai_awal);
Nilai_awal ++; // memanipulasi variabel awal agar tercapai kondisi terminasi.
}}

Program diatas tidak melakukan inisialisasi awal terhadap variabel nilai_awal, sehingga ada kemungkinan
nilai_awal berisni nilai random. Misalkan nilai_awal berisi -1200, dan secara logika -1200 memang kurang
dari 100. Maka program bukan mencetak 1 – 100, melainkan mencetak -1200 – 100.
Contoh 2 :
Program menulis angka dari 1 .. 100.

# include <stdio.h>

void main(){
int nilai_awal = 1; // inisialisasi awal dilakukan
While (nilai_awal <= 100){
Printf(“/n%d”,nilai_awal);
}}

Program diatas tidak melakukan manipulasi terhadap nilai_awal , sehingga nilainya selalu 1. Program
bukannya mencetak 1 – 100, melainkan mencetak
angka 1 terus menerus dan tidak pernah berhenti karena kondisi perulangan selalu benar.
4.5.3.2 Struktur Do – WHILE / REPEAT – UNTIL
Struktur Do = WHILE / REPEAT – UNTIL hampir mirip dengan struktur WHILE – DO. Berikut adalah ciri
khas dari struktur perulangan ini.

- Tidak dilakukan pengecekan kondisi perulangan di awal eksekusi program.


- Minimal perulangan yang terjadi di tubuh program sebanyak 1 kali (Kerena tidak ada pengecekan
kondisi perulanga di awal).
- Setiap kali hendak melakukan perulangan berikutnya, selalu memeriksa kondisi perulangan. Apabila
kondisi perulangan telah memberikan nilai false / salah. Maka perulangan akan dihentikan.

Perbedaan paling mendasar sebenarnya terletak pada pengecekan kondisi perulangan, struktur ini
melakukan pengecekan kondisi perulangan di akhir tubuh perulangan (bukan di awal seperti struktur
WHILE – DO) sehingga mengakibatkan instruksi dijalankan minimal 1 kali.
Notasi algoritmiknya adalah :

do { repeat
Tubuh perulangan atau
}while (KONDISI); until KONDISI

Pada impelemntasinya notasi penulisan struktur perulangan ini juga bergantung pada bahasa pemgoraman
yang digunakan. Pembahasan ini menggunakan bahasa pemrograman Turbo C dan leih ditekankan
kepada
konsep – konsep perulangannya.
Contoh :
Program menulis angka dari 1 .. 100.

# include <stdio.h>
void main(){
int nilai_awal = 1; // inisialisasi awal dilakukan
do{
Printf(“/n%d”,nilai_awal);
Nilai_awal += 1;// tambahkan nilai_awal sebanyak 1.
}while(nilai_awal <= 100);
}

Program untuk meminta inputan dari keyboard, apabila pengguna menekan tombol esc maka program
akan berhenti.

#include <stdio.h>
#include <conio.h>

void main(){
char tombol;

do{
tombol = getch(); // peminta penekanan tombol dari keyboard.
// selama tombol yang ditekan tidak memiliki ASCII = 27 (tombol esc) maka //program akan tetap berjalan.
}while (tombol != 27);
// program berhenti, karena pengguna telah menekan tombol escape.
}

Kapan menggunakan WHILE – DO atau Do – WHILE ?


Pemilihan antara kedua struktur ini sangat tergantung pada permasalahan yang dihadapi. Apabila sebuah
program memerlukan instruksi dijalankan
dahulu dan baru diperiksa kondisinya maka strukltur DO – WHILE harus digunakan namun apabila sebuha
program harus memeriksa kondisi perulangan terlebih dahulu dan baru menjalankan tubuh perulangan,
maka kondisi WHILE – DO harus digunakan.

4.5.3.3 Struktur FOR


Struktur perulangan for ini digunakan untuk perulangan yang tidak perlu memeriksa kondisi apapun dan
hanya melaksanakan perulangan sejumlah kali tertentu.

Struktur perulangan ini paling cocok untuk proses perulangan yang telah diketahui batas akhirnya, karena
kompiler akan mengeksekusi lebih cepat daripada 2 jenis struktur perulangan diatas.

Notasi algoritmiknya :

For (variabel awal = nilai awal; kondisi ; faktor penaik){


Tubuh perulangan
}

Contoh :
Program menulis bilangan genap dari 2 – 100.

#include <stdio.h>

void main(){
int nilai_genap = 2; // inisialisasi awal.
for (nilai_genap =2; nilai_genap <= 100; nilai_genap+=2)
printf(“%d”,&nilai_genap);}
Program diatas akan melakukan inisialisasi nilai_genap sebanyak 2, dan setelah itu akan dilakukan
pemeriksaan apakan kondisi terpenuhi / memberikan nilai benar. Apabila kondisi terpenuhi maka tubuh
perulangna akan dijalankan ( mencetak nilai dari nilai_genap) dan kemudian menaikkan nilai_genap
sebanyak 2. Setlah itu akan dilakukan pemeriksaan kondisi sekali lagi, dan apabila kondisi tersebut
terpenuhi maka tubuh perulangan akan dijalankan lagi sedangkan apabila kondisi perulangan tidak
terpenuhi maka struktur perulangan akan berakhir.

Inti dari struktur perulangan ini adalah :

- Lebih cocok untuk jenis perulangan yang memiliki batas akhir yang sudah jelas.
- Pemeriksaan kondisi awal akan dilakukan di awal. Apabila kondisi terpenuhi, maka tubuh perulangan
akan dilakukan. Apabila tidak, maka tubuh perulangan tidak akan pernah dilakukan.
- Ada kemungkinan tubuh perulangan tidak dijalankan sama sekali.
- Memiliki proses yang lebih cepat dibandingkan bentuk DO – WHILE atau WHLE – DO dalam proses
perhitungan matematika.

4.6 Menerapkan Pengelolaan Array

4.6.1 Pengenalan Array.


Sebuah variabel hanya mampu menyimpan sebuah nilai berdasarkan tipe data tertentu, variabel tidak
mampu menyimpan beberapa buah data dengan tipe yang sejenis. Seringkali dalam pemrograman kita
harus mengolah sekumpulan data dengan tipe data yang sama. Misalnya nilau ujian 50 orang, no telp dari
seluruh karyawan, dan sebagainya. Apabila kita mengacu pada penggunaan variabel, maka dapat
dibayangkan berapa banyak nama variabel yang akan diperlukan dan betapa sukarnya untuk
mengorganisasi variabel sebanyak itu.
Array mampu memberikan solusi atas permasalah tersebut, karena dengan penggunaan array tidak
diperlukan lagi perulangan variabel yang memilikit tipe data dasar sama dengan nama berbeda.
Array adalah struktur data yang mampu menyimpan sekumpulan data dengan tipe yang sama, setiap
elemen data dipisahkan menggunakan indeks. Pada bahasa pemrograman pada umumnya, indeks dari
sebuah array selalu diawali dari 0 hingga n -1 (n = jumlah elemen maksimum).

Contoh :
Terdapat struktur data array bertipe integer, dengan 5 buah elemen didalamnya.
Indeks = 0 Indeks = 1 Indeks = 2 Indeks = 3 Indeks = 4
Nilai = 10 Nilai = 20 Nilai = 30 Nilai = 40 Nilai = 50

Pada tabel diatas terdapat 2 buah penamaan, indeks dan nilai.


Indeks adalah sebuah nilai yang menjadi identitas dari masing – masing elemen data dari sebuah struktur
array. Nilai adalah nilai nyata yang tersimpan pada setiap elemen pada indeks tertentu dari sebuah struktur
array.
Hal yang harus diperhatikan dalam menyimpan data pada elemen array adalah kesamaan tipe data, karena
tidak mungkin menyimpan data yang berbeda – beda kedalam sebuah struktur array.

Pendeklarasian Array
Pendeklarasian array tidak bedanya dengan pendeklarasian variabel biasa, terdapat aturan – aturan
penamaan yang sama persis dengan aturan penamaan variabel. Perbedaannya terletak pada :
- Saat pendeklarasian array, hendaknya menentukan tipe dari array tersebut.
- Saat pendeklarasian array, hendaknya menentukan jumlah dari elemen yang terkandung di dalam
struktur array tersebut.
Dalam menentukan jumlah elemen dari array hendaknya diperhatikan dengan baik, karena banyaknya
elemen array berarti memesan sejumlah tempat di memori komputer. Tipe data array dapat berupa tipe
sederhana (integer, char, double, boolean) ataupun tipe terstruktur (record).

Contoh :
int nilai[10];

Perintah diatas akan memberikan instruksi untuk memesan 10 tempat di memori komputer bertipe integer.
Variabel array nilai memiliki indeks mulai dari 0 hingga 9.

Contoh lain :
char nama[100], double nilai_ujian[100];

Mengakses Elemen Array


Setelah struktut array dideklarasikan, tiba saatnya untuk mengakses masing – masing elemen dari struktur
array tersebut. Cara pengaksesannya sangat
mudah dan hampir sama dengan proses pemberian nilai kepada sebuah variabel. Hanya disini yang harus
diperhatikan adalah indeks setiap elemen array, karena kesalahan yang timbul akibat kesalahan pemberian
indeks pada array akan mengakibatkan data dikirim pada tempat yang salah.

Contoh :
Int nilai[5]; // Pendeklarasian Array.
// memberi nilai pada indeks ke 0.
nilai[0] = 10;
nilai[1] = 20; nilai[2] = 30; nilai[3] = 40; nilai[4] = 50;

Perintah diatas akan mengisi kelima elemen yang dimiliki oleh array nilai, pemetaan di memory akan
menjadi seperti dibawah ini.

Indeks = 0 Indeks = 1 Indeks = 2 Indeks = 3 Indeks = 4


Nilai = 10 Nilai = 20 Nilai = 30 Nilai = 40 Nilai = 50

Cara menampilkan array juga sangat mudah, tinggal memilih data pada elemen ke berapa yang ingin
ditampilkan.

Contoh :
Cetak nilai[2] // maka akan menampilkan array pada indeks ke 2.
Harap diperhatikan indeks ke 2 berbeda dengan array ke 2. Pada contoh diatas indeks ke 2 berarti nilai =
30, sedangkan array ke 2 berarti nilai = 20.

Berikut akan diberikan contoh program untuk mengisi array dan menampilkan array menggunakan logika
perulangan.

Contoh :
Program untuk menginput nilai dari keyboard dan menyimpan ke dalam array kemudian menampilkan
hanya apabila nilainya ganjil.

#include <stdio.h>

void main(){
int nilai[100];
int inputan_nilai;

// ini untuk proses meminta input dari keyboard sebanyak 100 kali dan //menyimpan ke dalam array nilai.

for (int i = 0; i < 100; i++){


scanf(“%d”,& inputan_nilai);
nilai[i] = inputan_nilai;
}
// ini proses untuk membaca dari array nilai dan melakukan proses seleksi //apakah bilangan ganjil atau
bukan. Kalau ganjil, maka ditampilkan ke layar.

for (int i = 0 ; i < 100; i++){


if (nilai[i] % 2 == 1)
printf(“%d”,&nilai[i]);
}}

Mengakses Elemen Array Melalui Piranti Masukan


Untuk mengakses eleman dari strukut array selain dapat dilakukan dengan menggunakan pemberian nilai
melalui sebuah variabel, juga dapat dilakukan dengan menerima inputan langsung dari piranti masukan
(keyboard, file ataupun database). Konsep dasar proses pemberian nilai tetap sama dengan apa yang telah
dijelaskan pada pembahasan diatas. Notasi / sintaks yang
digunakan tiap – tiap bahasa pemrograman tidak sama, dan tergantung dari bahasa pemrograman yang
digunakan.

Contoh :
Program untuk menerima inputan dari keyboard dan langsug disimpan ke dalam struktur array.

#include <stdio.h>

void main(){
int nilai [10];
for (int i = 0; i < 10; i++){
scanf(“%d”, &nilai[i]);
// menginput nilai dari keyboard dan disimpan pada elemn ke i dari array nilai.
}}

Pada contoh program diatas hanya menunjukkan bahwa array dapat lansung dirujuk dari piranti masukan,
pembahasan detil metode yang digunakan diharapkan dapat mempelajari sesuai dengan bahasa
pemrograman yang akan digunakan.

Melakukan Inisialisasi Array


Inisialisasi array berarti mendeklarasikan array sekaligus memberi nilai ke tiap – tiap elemennya. Seperti
halnya variabel biasa, struktr array juga dapat melakukannya. Sekali lagi, sintaks / notasi yang digunakan
tergantung dari bahasa pemrograman yang digunakan. Dibawah ini akan diberikan contoh melakukan
inisialisasi array dalam bahasa Turbo C.

Contoh :
Program melakjukan inisialisasi array sebanyak 5 elemen dan langsung memberikan nilai ke dalamnya.

#include <stdio.h>

void main(){
int nilai[] = {10,20,30,40,50};
// melakukan inisialisasi 5 elemen array sekaligus memberi nilai didalamnya.
for (int i = 0; i < 5; i++)
printf(“%d”,nilai[i]); // mencetak tiap elemen array ke layar.
}

4.6.2 Array N Dimensi.


Kelebihan struktur data array dibandingkan variabel biasa adalah kemampuan array untuk menyimpan
elemen data lebih dari 1 dimensi. Secara teori tidak ada batas maksimum dari jumlah dimensi sebuah
struktur array, namun pada impelementasinya sangat jarang sekali ditemukan penggunaan array lebih
dari 3 dimensi. Jumlah dimensi pada array menentukan berapa banyak data yang dapat disimpan di dalam
array tersebut, semakin banyak jumlah dimensi yang dimiliki maka semakin banyak jumlah data yang dapat
disimpan di dalam array tersebut.
Pada pembahasan sebelumnya telah kita bahas mengenai pemakaian array 1 dimensi / array tunggal, saat
ini akan dijelaskan mengenai array 2 dimensi secara detil.
Definisi Array 2 Dimensi
Array 2 dimensi memungkinkan tiap elemen dari array untuk menyimpan data juga. Secara fisik memiliki
bentuk seperti tabel. Berikut akan diberikan contoh kasus untuk menjelaskan mengenai pemakaian array
2 dimensi.

Contoh :
Data keseluruhan kelulusan dari jurusan Teknik Informatika, Sistem informasi dan Komputer Akuntansi
pada sekolah tinggi komputer dari tahun 1995 – 1998 dirangkum pada tabel dibawah ini.

Jurusan 1995 1996 1997 1998


T. Informatika 300 345 279 336
S. Informasi 167 156 180 187
K. Akuntansi 467 465 435 398

Permasalahan diatas tidak dapat diselesaikan menggunakan pendekatan struktur array 1 dimensi,
dikarenakan terdapat 2 dimensi penilaian yang

digunakan yaitu : Tahun kelulusan dan Jurusan. Kedua elemen data ini harus disimpan terpisan hamun
masih tetap terjaga konsistensinya (Tidak menampilkan data yang salah). Menggunakan array 2 dimensi,
bentuknya menjadi :

Int jumlah_kelulusan[3][4]

Pada pendefinisian diatas menyatakan :


 3 menyatakan jumlah baris (mewakili Jurusan)
 4 menyatakan jumlah kolom (tahun kelulusan)

Jurusan 1995 1996 1997 1998


T. Informatika Baris 0 Baris 0 Baris 0 Baris o
Kolom 0 Kolom 1 Kolom 2 Kolom 3

Contoh :
Jumlah_kelulusan[0][0] = 300
Jumlah_kelulusan[0[[1] = 345
Hal diatas berarti, jumlah kelulusan jurusan Teknik Informatika pada tahun 1995 sebesar 300 dan pada
tahun 1996 sebesar 345.
Hal lain yang harus diperhatikan adalah indeks awal array bagi sebagian besar bahasa pemrograman
selalu berawal dari 0 dan ini berlaku bagi array dengan dimensi tunggal ataupun ganda. Metode untuk
memasukkan nilai ke dalam struktur array dimensi 2 sama persis dengan struktur array 1 dimensi.
Contoh :
Program menginput jumlah kelulusan untuk setiap tahunnya, mulai dari tahun 1995 – 1998 untuk jurusa n
Teknik Informatika.

#include <stdio.h>
void main(){
int jumlah_lulusan[1][4]; // karena hanya satu jurusan dan tahun 1995 – 1998.
for (int baris = 0; baris <1;baris++){
for(int kolom = 0; kolom < 4; kolom++){
scanf(“%d”, &jumlah_lulusan[baris][kolom]);
}}}

Pada contoh program diatas penggunaan 2 logika for (nested looping), saat kita menggunakan struktur
array 2 dimensi maka anda harus menggunakan logika perulangan bersarang (perulangan di dalam
perulangan). Tabel di bawah ini akan menjelaskan alur logika tersebut.

Jurusan 1995 1996 1997 1998


T. Informatika Baris 0 Baris 0 Baris 0 Baris 0
Kolom 0 Kolom 1 Kolom 2 Kolom 3
S. Informasi Baris 1 Baris 1 Baris 1 Baris 1
Kolom 0 Kolom 1 Kolom 2 Kolom 3

for (int baris = 0; baris <1;baris++){


for(int kolom = 0; kolom < 4; kolom++){
scanf(“%d”, &jumlah_lulusan[baris][kolom]);
}}
Alur logika program dimulai dari perulangan pertama yang akan memeriksa kondisi baris, apakah telah
mencapai akhir dari baris (dalam hal ini jurusan). Apabila belum, maka alur logika progam akan masuk
kedalam perulangan kedua yang akan memeriksa kondisi kolom apakah telah mencapai akhir
kolom (dalam hal ini tahun kelulusan). Apabila belum maka program akan dijalankan, ketiga akhir kolom
telah tercapai maka program akan keluar dari perulangan kedua dan kembali memerika perulangan
pertama, apabila masih belum mencapai akhir baris (jurusan) maka program akan berjalan terus.

4.6.3 Algoritma Pengurutan Data (Sorting Data)


Pengertian dari pengurutan data (sorting) adalah penyusunan urutan data sehingga tersusun berdasarkan
kata kunci tertentu dari nilai terkecil ke nilai terbesar (ascending) atau dari nilai terbesar ke nilai terkecil
(descending).
Pada dasarnya algoritma sorting dibagi menjadi 2 bagian, yaitu :

- Algortima Sorting Internal


Algoritma sorting internal akan memuat seluruh data ke dalam memori komputer. Penggunaan cara ini
apabila seluruh data masih memungkinkan untuk di muat ke dalam memori komputer.
- Algoritma Sorting Eksternal
Algoritma sorting eksternal tidak memuat seluruh data ke dalam memori komputer, data yang akan
diurutkan akan di pecah menjadi beberapa bagian dan akan diurutkan secara terpisah. Setelah pecahan
data tadi terurut, barulah data digabung menjadi satu.
Data yang akan diurutkan biasanya berbentu record dengan salah satu field yang berfungsi sebagai kata
kunci yang nilainya sebagai pembanding dalam mengurutkan data.
Pada pembahasan ini kita akan menggunakan nilai dari kunci pengurutan

daya dan akan menggunakan metode bubble sort, yang sangat terkenal kesederhanaannya meskipun
hanya bisa digunakan untuk pengurutan data yang tidak terlalu besar (internal sorting).

Algortima Bubble Sort


Algoritma Bubble Sort menggunakan metode membandingkan dua data yang berdekatan. Pertukaran data
akan terjadi apabila data ke i lebih besar dari pada data ke i + 1. Algoritma ini akan melakukan beberapa
kali putaran sampai data terurut secara keseluruhan.

Contoh :
Simulasi pengurutan data menggunakan algortima bubble sort dengan tipe menaik (ascending) terhadap
6 buah data dibawah ini b :
[0] [1] [2] [3] [4] [5]
70 60 30 50 40 20

Algoritma akan melakukan beberapa putaran dan pada setiap putarannya akan membandingkan data yang
ke i dengan data yang ke i + 1, apabila ada data data ke [i] lebih besar makan akan terjadi pertukaran.
Berikut simulasi sederhana nya :

Putaran Elemen yang dibandingkan


Ke 1 [5] vs [4], [4] vs [3], [3] vs [2], [2] vs [1], [1] vs [0]
Ke 2 [5] vs [4], [4] vs [3], [3] vs [2], [2] vs [1]
Ke 3 [5] vs [4], [4] vs [3], [3] vs [2]
Ke 4 [5] vs [4], [4] vs [3]
Ke 5 [5] vs [4]

Pada putaran tersebut terlihat bahwa putaran dimulai data terakhir / data indeks ke 5, dan perulangan
dilakukan dilakukan hingga putaran terakhir dimana data telah terurut secara keseluruhan. Banyaknya
putaran yang
dilakukan tergantung dari berapa banyak data yang akan diurutkan. Penggunaan operator pembanding
tergantung dari jenis pengurutan apa yang diinginkan (menaik atau menurun).
Berikut algortima lain yang dapat dilakukan dalam melakukan pengurutan data / sorting :
- Algoritma Selection Sort
- Algoritma Insertion Sort
- Algortima Quick Sort
- Algoritma Merge Sort
- Algortima Radix Sort dan Heap Sort.

4.6.4 Algoritma Pencarian Data (Searching Data)


- Pada suatu data seringkali dibutuhkan pembacaan kembali informasi (retrieval information) dengan
cara searching.
- Searching adalah pencarian data dengan menelusuri tempat pencarian data tersebut.
- Tempat pencarian data tersebut dapat berupa array dalam memori, bias juga pada file pada
penyimpanan eskternal.
Teknik-teknik Searching

1. 1. Sequential Search
- Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-
elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.
- Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen
array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal).
- Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir
(elemen array terakhir) sehingga
waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).

Contoh :
Misalkan ada sekumupulan data pada array 1 dimensi seperti dibawah ini :

Indeks 0 Indeks 1 Indeks 2 Indeks 3 Indeks 4 Indeks 5 Indeks 6 Indeks 7


8 10 6 -2 11 7 1 100

Program akan mencari data bernilai 6, apabila diketumkan maka akan menuliskan kalimat “ADA” dan kalau
tidak maka akan menuliskan kalimat “TIDAK ADA”.

# include <stdio.h>
# include <conio.h>

void main(){
clrscr();
int data[8] = {8,10,6,-2,11,7,1,100};
int cari;
int flag=0;
printf(“masukkan data yang ingin dicari = “);scanf(“%d”,&cari);
for(int i=0;i<8;i++){
if(data[i] == cari) flag=1;
}
if(flag==1) printf(“Data ada!\n”);
else printf(“Data tidak ada!\n”); }
Keterangan / simulasi program diatas adalah :

- Program melakukan perulangan untuk megakses satu persatu data pada elemen array.
- Program menggunakan sebuah variabel flag yang berguna untuk menadai ada atau tidaknya data
yang dicari dalam array data. Hanya bernilai 0 atau 1. Nilai variable flag akan diinisialisasi pada nilai 0.
- Apabila data ketemu, maka nilai variable flag akan diberi nilai 1, sedangkan apabila tidak ketemu nilai
flag tetap 0.
- Program akan mencari seluruh data pada elemen array dengan membandingkan satu persatu.

Algortima sequential search merupakan algortima yang paling sederhana dan mudah. Kelemahan
algoritma ini terletak pada jumlah data yang terbatas, ketika pencarian data melibatkan data yang sangar
besar akan sangat tidak efisien. Karena ada 2 kemungkinan, yaitu :

- Data terletak pada indeks paling akhir. Program akan mengulang sampai akhir secara berurutan.
- Data yang dicari telah ketemu sejak awal, dan program terus mengulang hingga akhir perulangan.
Sebenarnya ini dapat di pecahkan dengan menghentikan program ketika data telah ketemu.

2. Binary Search
Teknik pencarian yang akan membagi data menjadi dua pada setiap pengurutan data. Data yang ada harus
diurutkan terlebih dahulu berdasarkan urutan tertentu yang dijadikan kunci pencarian.

Prinsip pencarian biner adalah :

- Data diambil dari posisi 1 sampai posisi akhir N


- Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2
- Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil,
atau lebih besar.

- Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
- Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
- Jika data sama, maka pencarian berakhir. Data ketemu.
Contoh :

Misalkan program akan mencari data 17 dari sekumpulan data dibawah ini.

Idx 0 Idx 1 Idx 2 Idx 3 Idx 4 Idx 5 Idx 6 Idx 7 Idx 8


3 9 11 12 15 17 23 21 35
A B C

Karena 17 > 15, maka awal = tengah + 1


Idx 0 Idx 1 Idx 2 Idx 3 Idx 4 Idx 5 Idx 6 Idx 7 Idx 8
3 9 11 12 15 17 23 21 35
A B C

Karena 17 < 23 (data tengah), maka: akhir = tengah – 1


Idx 0 Idx 1 Idx 2 Idx 3 Idx 4 Idx 5 Idx 6 Idx 7 Idx 8
3 9 11 12 15 17 23 21 35
A=B=C

Karena 17 = 17 (data tengah), maka KETEMU!

3. Interpolation Search
Teknik ini dilakukan pada data yang telah terurut berdasarkan kata kunci tertentu. Metode ini menggunakan
perkiraan letak data.

Misalkan :
Apabila kita hendak mencari nama dalam buku telepon yang berinisial T, maka kita tidak akan mencari
pada awal dayta melainkan akan langsung mecari dengan membuka pada 2/3 atau ¾ dari buku tersebut.
Bisa dikatakan metode ini mencari data relatifd terhadap jumlah data.
Rumus relative yang digunakan adalah :

Posisi = kunci – data[low] / data[high] – data[low] X (high – low) + low


Contoh :
Kode Judul Buku Pengarang
025 C++ Programnming Abdul Kadir
063 Java Programming Ben Stiller
088 Visual Basic Programming Kaka

Kunci Pencarian ? 088


Low ? 0
High ? 7
Posisi = (088 – 025) / (096 – 025) * (7 – 0) + 0 = [6]
Kunci[6] = kunci pencarian, data ditemukan : Visual Basic 2005
Kunci Pencarian ? 060
Low ? 0
High ? 7
Posisi = (060 – 025) / (096 – 025) * (7 – 0) + 0 = [3]
Kunci[3] < kunci pencarian, maka teruskan

Low = 3 + 1 = 4
High = 7
Ternyata Kunci[4] adalah 063 yang lebih besar daripada 060.
Berarti tidak ada kunci 060.

Contoh programnya :
int interpolationsearch(int key,int n){
int low,high,pos,i;
low=0;
high=n-1;
do{
pos = (key – data[low]) * (high – low) / data[high] –
data[low] + low;
if (data[pos] == key] return pos;
if (data[pos] > key) high = pos-1;
else
if (data[pos] < key) low = pos + 1;
} while(key >= data[low] && key <= data[high]);
return -1 }

4.7 Pengelolaan File


File digunakan sebagai media penyimpanan data eksternal selain memori, media penyimpanan ini bersifat
non – volatile dan biasanya memiliki ukuran besar untuk dapat dibaca kembali.
Operasi yang biasa dilakukan terhadap sebuah file adalah : menulis, membaca, memeriksa keberadaan
file, mengetahui status file, ukuran file dan lain sebagainya. Setiap operasi untuk mengolah file pasti
memerlukan buffer untuk menampung sementara informasi dari file tersebut.

File Stream
Stream adalah kumpulan karakter yang disusun dalam baris-baris yang berpindah dari satu media ke media
lain pada sistem komputer. Semua data masukan dan keluaran pasti berupa stream. Pada bahasa
pemrograman C memperlakukan file sebagai stream, berikut terdapat 3 jenis stream yang otomatis
dijalankan dan masing – masing berasosiasi dengan sebuah file.

- Standar input stream, yang mengatur aliran masukan data melalui keyboard.
- Standard output stream, yang mengatur aliran data keluaran ke layar monitor
- Standard error stream, yang mengatur tampilan kesalahan ke layer monitor

Jenis File
File dibedakan menjadi 2 bagian berdasarka jenisnya, antara lain :
1. File Teks
File teks adalah file yang berisi data – data ASCII sehingga dapat ditampilkan dilayar apa adanya. Satu
karakter ASCII dalam teks berukuran 2 bytes.

1. File Biner
File biner adalah file yang berisi data – data biner dan berupa byte stream sehingga tidak dapat ditampilkan
apa adanya di layar. Satu karakter akan berukuran 1 byte, sedangkan nilai yang bukan karakter akan
disimpan sesuai dengan ukuran microprocessor. Ukuran tergantung pada ketentuan microprocessor dan
bukan tergantung pada jumlah digit bilangan.

Operasi dasar yang biasa dilakukan dalam manajemen file ada 3 bentuk, antara lain :

4.7.1 Membuka File


Membuka file merupakan operasi yang paling dasar dalam manajemen file, karena sebuah file harus dalam
kondisi terbuka terlebih dahulu agar dapat diakses.
Notasi yang digunakan adalah :

FILE * fopen(const char *filename, const char *mode)

Apabila proses pembukaan file gagal, maka pointer akan mengembalikan nilai null. Parameter yang harus
diperhatikan saat membuka file adalah :

Modus r à Membuka untuk dibaca.


Modus w à Membuka untuk menulis ( File tidak harus eksis dahulu)
Modus a à Membuka untuk menambahkan data.
Modus r+ à Membuka untuk membaca dan menulis.
Modus w+ à Membuka untuk membaca dan menulis (akan menimpa file)
Modus a+ à Membuka untuk membaca dan menulis (menambahjan
apabila file sudah ada sebelumnya)

File dapat dibuka sebagai file teks ataupun biner, aturan yang harus diperhatikan adalah :

 File teks menggunakan parameter tambahan menjadi rt. Wt, at, r+t, w+t dan a+t.
 File biner menggunakan parameter tambahan menjadi rb. Wb, ab, r+b, w+b dan a+b.
 Secara default kompiler akan mengenali sebagai odus teks (t).
Notasi algoritmik yang digunakan pada setiap bahasa pemrograman berbeda – beda, dalam pembahasan
ini kita akan menggunakan bahasa pemrograman Tubro C untuk membahas manajemen file lebih lanjut.
Contoh :
FILE *fp;
fp=fopen(“c:\\test.txt”, “r”);
if (fp==NULL) printf(“Error, file tidak dapat dibuka!”);

Program diatas akan membuka file bernama test.txt dengan modus operasi
pembacaan, dan apabila file tidak ditemukan maka akan memberikan nilai kembalian NULL.

4.7.2 Memanipulasi File


Berikut adalah beberapa cara / fungsi yang digunakan untuk melakukan manipulasi file (baca atau tulis).
Sekali lagi ditekankan bahwa pada setiap bahasa pemrograman memiliki ketentuang yang berbeda – beda.

Untuk menulis ke file dalam format tertentu:


int fprintf(fp, “Testing…\n”);
jika berhasil akan dikembalikan jumlah byte yang dituliskan sedangkan jika gagal dikembalikan EOF

Untuk membaca dari file dalam format field tertentu:


int fscanf(fp, “Testing…\n”);
jika berhasil akan dikembalikan jumlah field yang dibaca sedangkan jika gagal dikembalikan EOF

Untuk menulis karakter ke file teks:


int fputc( int c, FILE *fp );
jika berhasil akan dikembalikan karakter c sedangkan jika gagal dikembalikan EOF
Untuk membaca file teks perkarakter:
int fgetc (FILE *fp);
jika berhasil akan dikembalikan karakter c sedangkan jika gagal dikembalikan EOF
Untuk meletakkan nilai integer ke file:
int putw(int w, FILE *fp);
jika berhasil akan dikembalikan integer w sedangkan jika gagal dikembalikan EOF

Untuk membaca nilai integer:


int getw(FILE *fp);
jika berhasil akan dikembalikan integer w sedangkan jika gagal dikembalikan EOF

Untuk menulis string ke file tanpa ada karakter NULL dan newline:
int fputs(const char *s,FILE *fp);
jika berhasil akan dikembalikan string s sedangkan jika gagal dikembalikan EOF

Untuk membaca string dari file sebanyak n karakter atau bertemu karakter ‘\n’:
char *fgets(const char *s,int n,FILE *fp);
jika berhasil akan dikembalikan string s sedangkan jika gagal dikembalikan EOF

Untuk mengetahui akhir sebuah file stream:


int feof(FILE *fp);
jika berhasil akan dikembalikan nilai integer selain 0.

4.7.3 Menutup File


Operasi file tidak berakhir hanya pada bagaimana memanipulasi file yang telah dibuka, menutup hubungan
dengan file yang telah dibuka sebelumnya merupakan hal yang harus diperhatikan. Pada bahasa Turbo
C, notasi algoritmik yang digunakan adalah :

int fclose(FILE *a_filename);


int fcloseall(void);

Pada fungsi pertama akan menutup pada file tertentu saja, sedangkan pada
fungsi kedua akan menutup seluruh hubungan dengan file yang ada saat itu juga ( kecuali stdin, stdout,
stdprn, stdaux ).
Apabila proses penutupan file ini berhasil maka akan mengembalikan nilai 0 dan apabila gagal maka akan
mengembalikan nilai -1 (EOF).
Contoh :
FILE *fp;
fp=fopen(“c:\\test.txt”, “r”);
if (fp==NULL) printf(“Error, file tidak dapat dibuka!”);
fclose(fp);

Program diatas akan membuka file bernama test.txt dengan modus operasi membaca dan kemudian
langsung menutup hubungan dengan file tersebut.

Contoh :

Program untuk menulis ke dalam file yang disimpan di hardisk.


#include <stdio.h>
#include <stdlib.h>

void main(){
FILE *fp;
if((fp=fopen(“C:\\test.txt”,”w”))==NULL){ // bikin file test.txt di drive C.
printf(“error!”);
exit(1);
}
fputs(“ABCDE\n”,fp); // menulis ke dalam file test.txt
printf(“alamat file : %p\n”,fp->buffer); // tampilkan alamat file.
printf(“ukuran file : %d byte \n”,fp->bsize); // ukuran file.
printf(“posisi file : %p\n”,fp->curp); //
printf(“isi file :”);
for(int i=0;i<=4;i++){
printf(“%c”,*(fp->buffer+i)); // membaca dari buffer sampai habis.
}
printf(“\n”) // turun 1 baris.;
printf(“no pengenal file : %d\n”,fp->fd); // identifier file.
printf(“status file :\n”);
if((fp->flags & 1)==1) printf(“readonly\n”);
if((fp->flags & 2)==2) printf(“writeonly\n”);
if((fp->flags & 3)==3) printf(“read/write\n”);
if((fp->flags & 8)==8) printf(“file line\n”);
if((fp->flags & 16)==16) printf(“error\n”);
if((fp->flags & 32)==32) printf(“akhir file\n”);
if((fp->flags & 64)==64) printf(“file biner\n”); else printf(“file teks\n”);
if((fp->flags & 128)==128) printf(“data dari file\n”);
if((fp->flags & 256)==256) printf(“data ke file\n”);
if((fp->flags & 512)==512) printf(“file ada diterminal\n”); else printf(“file
di disk”);
fclose(fp);} // tutup hubungan ke dalam file

BAB V
SUMBER-SUMBER YANG DIPERLUKAN
UNTUK PENCAPAIAN KOMPETENSI

5.1. Sumber Daya Manusia

Pelatih
Pelatih Anda dipilih karena dia telah berpengalaman. Peran Pelatih adalah untuk :
1. Membantu Anda untuk merencanakan proses belajar.
2. Membimbing Anda melalui tugas-tugas pelatihan yang dijelaskan dalam tahap belajar.
3. Membantu Anda untuk memahami konsep dan praktik baru dan untuk menjawab pertanyaan Anda
mengenai proses belajar Anda.
4. Membantu Anda untuk menentukan dan mengakses sumber tambahan lain yang Anda perlukan untuk
belajar Anda.
5. Mengorganisir kegiatan belajar kelompok jika diperlukan.
6. Merencanakan seorang ahli dari tempat kerja untuk membantu jika diperlukan.

Penilai
Penilai Anda melaksanakan program pelatihan terstruktur untuk penilaian di tempat kerja. Penilai akan :
1. Melaksanakan penilaian apabila Anda telah siap dan merencanakan proses belajar dan penilaian
selanjutnya dengan Anda.
2. Menjelaskan kepada Anda mengenai bagian yang perlu untuk diperbaiki dan merundingkan rencana
pelatihan selanjutnya dengan Anda.
3. Mencatat pencapaian / perolehan Anda.
Teman kerja/sesama peserta pelatihan
Teman kerja Anda/sesama peserta pelatihan juga merupakan sumber dukungan dan bantuan. Anda juga
dapat mendiskusikan proses belajar dengan mereka.

Pendekatan ini akan menjadi suatu yang berharga dalam membangun semangat tim dalam lingkungan
belajar/kerja Anda dan dapat meningkatkan pengalaman belajar Anda.

5.2. Sumber-sumber Perpustakaan


Pengertian sumber-sumber adalah material yang menjadi pendukung proses pembelajaran ketika peserta
pelatihan sedang menggunakan Pedoman Belajar ini.
Sumber-sumber tersebut dapat meliputi :
1. Buku referensi dari perusahan
2. Lembar kerja
3. Gambar
4. Contoh tugas kerja
5. Rekaman dalam bentuk kaset, video, film dan lain-lain.

Ada beberapa sumber yang disebutkan dalam pedoman belajar ini untuk membantu peserta pelatihan
mencapai unjuk kerja yang tercakup pada suatu unit kompetensi.

Prinsip-prinsip dalam CBT mendorong kefleksibilitasan dari penggunaan sumber-sumber yang terbaik
dalam suatu unit kompetensi tertentu, dengan mengijinkan peserta untuk menggunakan sumber-sumber
alternative lain yang lebih baik atau jika ternyata sumber-sumber yang direkomendasikan dalam pedoman
belajar ini tidak tersedia/tidak ada.

5.3. Daftar Peralatan/Mesin dan Bahan

1. Judul/Nama Pelatihan : Algoritma Pemrograman Dasar


2. Kode Program Pelatihan : TIK.PR02.001.01

UNIT DAFTAR DAFTAR


NO KODE UNIT KETERANGAN
KOMPETENSI PERALATAN BAHAN
1. Algoritma dan TIK.PR02.001.01 - Unit PC - Program -
Pemrograman (Personal Borland C++
Dasar Computer) 3.1.
dengan CD -Buku
drive dan
Hard Disk. informasi
- PC dengan tentang
sistem operasi Algoritma
Windows XP Pemrograman
- Keyboard Dasar.
dan mouse
- RAM
dengan ukuran
yang sesuai
dengan
kebutuhan.

- Program
Borland C++
3.1

DAFTAR PUSTAKA

 Algoritma dan Pemrograman Dasar. Rinaldi Munir. Buku 1. Penerbit Informatika Bandung.
 Website:
 http://www.ilmukomputer.com
 http://www.ibii.ac.id/pdfs/bubble-sort.pdf
 http://www.ilkom.unsri.ac.id/dosen/sri/materi
 http://id.wikipedia.org
MATERI PELATIHAN BERBASIS KOMPETENSI
SEKTOR TELEMATIKA
SUB SEKTOR PROGRAMMER KOMPUTER

MEMBUAT ALGORITMA PEMROGRAMAN DASAR


TIK.PR02.001.01

BUKU KERJA

DEPARTEMEN TENAGA KERJA DAN TRANSMIGRASI R.I.


DIREKTORAT JENDERAL PEMBINAAN PELATIHAN DAN PRODUKTIVITAS
Jl. Jend. Gatot Subroto Kav.51 Lt.7.B Jakarta Selatan

DAFTAR ISI

Daftar Isi……………………………………………………………………………………………. 1

BAB I STANDAR KOMPETENSI………………………………………………………………. 2

1.1. Unit Kompetensi yang Dipelajari ………………………………………… 2


1.1.1 Judul dan Kode Unit ……………………………………………… 2
1.1.2 Deskripsi Unit …………………………………………………….. 2
1.1.3 Kemampuan Awal ………………………………………………… 2
1.1.4 Elemen Kompetensi ……………………………………………… 2
1.1.5 Kriteria Unjuk Kerja ……………………………………………… 2
1.1.6 Batasan Variabel ………………………………………………….. 4
1.1.7 Panduan Penilaian ……………………………………………….. 4
1.1.8 Kompetensi Kunci ………………………………………………… 6

BAB II TAHAPAN BELAJAR …………………………………………………………………… 7

BAB III TUGAS TEORI DAN UNJUK KERJA …………………………………………………. 8


3.1 Tugas Tertulis ……………………………………………………………………. 13
3.2 Tugas unjuk kerja ……………………………………………………………….. 20
3.3 Daftar cek unjuk kerja ………………………………………………………….. 21

Buku-buku Referensi untuk bahan pelatihan yang telah direkomendasikan:


- Data Buku Pendukung Teori

BAB I
STANDAR KOMPETENSI

KODE UNIT : TIK.PR02.001.01

JUDUL UNIT : Membuat Algoritma Pemrograman Dasar

DESKRIPSI UNIT :

Unit ini menentukan kompetensi yang diperlukan untuk mempelajari algoritma yang akan diterapkan pada
program, tidak tergantung bahasa pemrograman yang akan digunakan. Algoritma pemrograman
merupakan materi dasar yang harus dikuasai oleh setiap programer.
Untuk tingkat dasar ini penekanan kepada penguasaan algoritma dengan struktur data yang sederhana
(melibatkan variabel statik)
KRITERIA UNJUK KERJA
ELEMEN KOMPETENSI
01 Menjelaskan varian dan
invarian
1.1 Tipe data, variabel, konstanta dan parameter yang
berlaku umum pada pemrograman dijelaskan.

1.2 Tipe data baru dan tipe data yang ada dibuat dan
dijelaskan pemanfaatannya.

1.3 Pemakaian nama pada tipe data, variabel,


konstanta dan parameter dijelaskan

02 Membuat alur logika


pemrograman
2.1 Algoritma dengan skema program sekuensial
dibuat.

2.2 Algoritma dengan skema program percabangan


dibuat.

2.3 Algoritma dengan skema program pengulangan


dibuat.
03 Menerapkan pengelolaan
array
3.1 Algoritma dibuat dengan array atau dimensi.

3.2 Algoritma pencarian data dan algoritma


pengurutan data (sorting) dibuat dengan
menggunakan array.

04 Memelihara pekerjaan secara


praktis
4.1 Algoritma program penulisan data dan pembacaan
data ke dalam media penyimpanan data berupa hard
disk, floppy disk atau lainnya dibuat dan ditunjukkan.

4.2 Algoritma program pembacaan dan penulisan data


dalam file dibuat secara sekuensial dan indeks.

BATASAN VARIABEL

1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi.
2. Menjaga etika bersifat internal pada bidang teknologi informasi dan komunikasi.

PANDUAN PENILAIAN

1. 1. Pengetahuan dan keterampilan penunjang untuk mendemontrasikan kompetensi,


memerlukan bukti keterampilan dan pengetahuan di bidang berikut ini :

1.1 Pengetahuan dasar :


1.1.1 Matematika dasar dan matematika logika
1.1.2 Flowchart dan dasar pemrograman

1.2 Keterampilan dasar


Mengoperasikan sistem computer
1. 2. Konteks penilaian
Kompetensi harus diujikan di tempat kerja atau di tempat lain secara teori dengan kondisi kerja sesuai
dengan keadaan normal.

1. Aspek penting penilaian


Aspek yang harus diperhatikan:
3.1 Kemampuan mengidentifikasi varian dan invarian yang berlaku umum pada pemrograman.
3.2 Kemampuan mengidentifikasi alur logika pemrograman sekuensial dan membuat algoritma.
3.3 Kemampuan mengidentifikasi pengelolaan array pada program.
3.4 Kemampuan menyimpan program ke dalam media penyimpanan.
3.5 Kemampuan membuat program membaca dan menulis data ke dalam file secara sekuensial dan
indeks.

4. Kaitan dengan unit-unit lainnya


4.1 Unit ini didukung oleh pengetahuan dan keterampilan dalam unit-unit kompetensi yang berkaitan
dengan dasar-dasar teknologi informasi yaitu mengoperasikan PC dan sistem informasi.
4.2 Pengembangan pelatihan untuk memenuhi persyaratan dalam unit ini perlu dilakukan dengan hati-
hati. Untuk pelatihan pra kejuruan umum, institusi harus menyediakan pelatihan yang mempertimbangkan
serangkaian konteks industri seutuhnya tanpa bias terhadap sektor tertentu. Batasan variabel akan
membantu dalam hal ini. Untuk sektor tertentu/khusus, pelatihan harus disesuaikan untuk memenuhi
kebutuhan sektor tersebut.

Kompetensi Kunci

No Kompetensi Kunci Dalam Unit ini Tingkat


1 Mengumpulkan, mengorganisir dan menganalisa informasi 1
2 Mengkomunikasikan ide-ide dan informasi 2
3 Merencanakan dan mengorganisir aktivitas-aktivitas 2
4 Bekerja dengan orang lain dan kelompok 1
5 Menggunakan ide-ide dan teknik matematika 3
6 Memecahkan masalah 2
7 Menggunakan teknologi 1
BAB II
TAHAPAN BELAJAR

Langkah-langkah/tahapan belajar
 Penyajian bahan, pengajaran, peserta dan penilai harus yakin dapat memenuhi seluruh rincian yang
tertuang dalam standar kompetensi.
 Isi perencanaan merupakan kaitan antara criteria unjuk kerja dengan pokok-pokok keterampilan dan
pengetahuan.
 Peserta harus mengenali berbagai sintaks yang digunakan
 Peserta juga harus memiliki melatih kemampuan logika pemrograman yang benar
 Belajar membuat program yang benar dan efiesien

KUK Indikator Kerja Tahapan Belajar Sumber


1.1 Tipe data, variabel, Mengetahui tentang
konstanta dan tipe – tipe data dasar,  Mencari
parameter yang variabel dan konstanta  Internet
informasi
berlaku umum pada serta penggunaanya
pemrograman dalam program. tentang dasar –
dijelaskan. dasar algoritma

Mengetahui penulisan
variabel dengan benar.
Mampu memilih tipe
data yang tepat untuk dan
menyelesaikan pemrograman.
masalah
 Mencari
informasi di
buku dan
internet.

 Melakukan
praktek
penulisan
program dasar
menggunakan
Borland C++3.1
 Buku tentang
dasar – dasar
algoritma dan
Pemrograman.
1.2 Tipe data baru dan tipe Mampu
data yang ada dibuat mengaplikasikan tipe –  Membaca buku  Buku tentang
dan dijelaskan tipe data yang telah dasar – dasar dasar – dasar
pemanfaatannya. dipelajari dalam
menyelesaikan sebuah algoritma dan algoritma dan
masalah. pemrograman Pemrograman.

 Melakukan  Internet
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

1.3 Pemakaian nama pada Mengetahui tata cara


tipe data, variabel, penamaan dan aturan  Membaca buku  Buku tentang
konstanta dan dalam pendeklarasian dasar – dasar dasar – dasar
parameter dijelaskan. kode program.
algoritma dan algoritma dan
pemrograman Pemrograman.
 Melakukan  Internet
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

2.1 Algoritma dengan Mengetahui konsep


skema dasar dari eksekusi  Membaca buku  Internet
program sekuensial sebuah instruksi pada dasar – dasar
dibuat program.
algoritma dan  Buku tentang
pemrograman dasar – dasar
algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

2.2 Algoritma dengan Mengetahui dasar dari


skema percabangan dan  Membaca buku  Internet
program percabangan mampu dasar – dasar
dibuat mengaplikasikan pada
penulisan program. algoritma dan  Buku tentang
pemrograman dasar – dasar
algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1
2.3 Algoritma dengan Mengetahui dasar dari
skema percabangan dan  Membaca buku  Internet
program pengulangan mampu dasar – dasar
dibuat mengaplikasikan pada
penulisan program. algoritma dan  Buku tentang
pemrograman dasar – dasar
algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

3.1 Algoritma dibuat Mengetahui konsep


dengan array atau dasar dari struktur data  Membaca buku  Internet
dimensi. array dan aturan – dasar – dasar
aturan yang harus
diperhatikan dalam algoritma dan  Buku tentang
penulisan kode pemrograman dasar – dasar
program.
algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

3.2 Algoritma pencarian Mengetahui konsep


data dan algoritma dasar algoritma  Membaca buku  Internet
pengurutan pengurutan data dasar dasar – dasar
data (sorting) dibuat dan mampu
dengan mengimplementasikan algoritma dan  Buku tentang
menggunakan array. pada struktur data pemrograman dasar – dasar
array.
algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

4.1 Algoritma program Mengetahui konsep


penulisan data dan dasar dari pengelolaan  Membaca buku  Internet
pembacaan data ke file dan mengetahui dasar – dasar
dalam media fungsionalitas yang
penyimpanan data dapat dilakukan dalam algoritma dan  Buku tentang
berupa hard disk, melakukan pemrograman dasar – dasar
floppy disk atau lainnya pengelolaan file.
dibuat dan ditunjukkan algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1

4.2 Algoritma program Mengetahui konsep


pembacaan dan dasar dari pembacaan  Membaca buku  Internet
penulisan data file secara sekuensial dasar – dasar
dalam file dibuat dan menggunakan
secara sekuensial dan indeks. algoritma dan  Buku tentang
indeks. pemrograman dasar – dasar
algoritma dan
 Melakukan Pemrograman.
praktek
penulisan
program dasar
menggunakan
Borland C++
3.1
BAB III
TUGAS TEORI DAN UNJUK KERJA

3.1. Tugas Tertulis

Tugas tertulis dapat digunankan oleh panitia untuk mengidentifikasi kesiapan Anda untuk melaksanakan
penilaian unjuk kerja.

Penilaian akan menggunakan satu atau lebih pertanyaan untuk setiap elemen, jika penilai kurang puas
dengan kesiapan Anda dalam melakukan Penilaian Unjuk Kerja, maka rencana pelatihan atau Penilaian
Unjuk Kerja ulang /remidial akan dibicarakan antara Anda dengan Penilai.

1. Yang bukan merupakan struktur dasar Algoritma adalah (KUK 1.1):


a. Sequence
b. Selection
c. Repetition
d. Choosing

1. Sebuah variabel untuk menampung jumlah siswa dalam sebuah kelas yang memilikii jumlah murid
100 siswa. Tipe data apa yang paling tepat digunakan (KUK 1.1) :
a. tipe bilangan bulat
b. tipe bilangan riil
c. tipe booelan
d. tipe karakter

1. Terdapat 2 buah variabel string A = “ALGORITMA dan B = “PEMROGRAMAN”, kemudian dilakukan


operasi penjumlahan antara kedua buah variabel A dan B tersebut. Bagaimanakah hasil akhirnya
(KUK 1.2) :
a. error. Tidak dapat menggabungkan kalimat
b. “ALGORITMAPEMROGRAMAN”
c. “ALGORITMA PEMROGRAMAN”
d. “AB”

1. Terdapat 2 buah string : “aku” dan “AKU”. Di antara kedua variabel tersebut dilakukan operator
perbandingan, apakah hasil yang diperoleh (KUK 1.2) :
a. error. Tidak dapat membandingkan kalimat
b. “aku” akan lebih kecil dari “AKU”
c. “AKU” akan lebih kecil dari “aku”
d. memberikan hasil -1

1. Pilihlah salah satu penamaan variabel yang tepat sesuai dengan aturan – aturan penamaan yang
benar (KUK 1.3) :
a. jumlah mahasiswa
b. jumlah_mahasiswa
c. jumlah-mahasiswa
d. %jumlah_mahasiswa

1. Sebuah variabel yang memiliki nilai yang tetap selama program berlangsung disebut sebagai (KUK
1.1) :
a. operator
b. konstanta
c. identifier
d. tipe data

1. Terdapat operasi logika terhadap variabel bertipe booelan, pilihlah hasil yang salah dibawah ini
: (kondisi awal A = true dan B = true) (KUK 1.2)
a. A && B hasilnya adalah “true”
b. A && B hasilnya adalah “false”
c. A or B hasilnya adalah “true”
d. A xor B hasilnya adalah “false”

1. Salah satu struktur dasar dari Algoritma Pemrograman adalah sequence / runtunan. Manakah
pernyataan dibawah ini yang tepat (KUK 2.1):
a. Setiap instruksi akan dijalankan sesuai keinginan komputer
b. Setiap instruksi akan dijalankan sesuai dengan urutan yang ada
c. Setiap instruksi akan dijalankan secara acak
d. Setiap instruksi akan dijalankan sesuai urutan apabila terdapat proses pengulangan di dalamnya
1. Kemampuan komputer untuk melakukan proses perhitungan dalam jumlah yang besar dan berulang
kali tanpa berhenti disebut (KUK 2.3) :
a. Pengulangan
b. Runtunan
c. Percabangan
d. Abstraksi

10. Kemampuan komputer untuk menjalankan setiap instruksi dari awal sesuai dengan urutan hingga
instruksi terakhir disebut (KUK 2.1):
a. Runtunan / Sequence
b. Polymorphism
c. Pengulangan
d. Percabangan

11. Sebuah variabel A memiliki nilai = 10, dan akan dilakukan pengulangan dengan struktur WHILE – DO
dengan kondisi selama nilai variabel A < 10, maka pengulangan akan tetap dijalankan. Di dalam tubuh
perulangan terdapat instruksi untuk mencetak nilai A dan menambahkan 1 setiap instruksi dijalankan.
Berapakah nilai yang tercetak di layar ? (KUK 2.3)
a. tidak sama sekali. Karena nilai A sudah mencapai nilai 10.
b. Nilai 10.
c. Nilai 10 hingga 19.
d. Nilai 10 hingga 20.

12. Ketika sebuah program memanggil prosedur yang ada dalam dirinya sendiri secara terus menerus,
maka ini dinamakan (KUK 2.3) :
a. Rekursif
b. Polymorphism
c. Pengulangan
d. Percabangan

13. Apakah array itu (KUK 3.1) :


a. Array adalah variabel yang sejenis dan jumlahnya hanya satu.
b. Array adalah sebuah konstanta yang berarti nilainya akan tetap sama selama program berjalan.
c. Array adalah tipe data terstruktur yang berupa kumpulan data dengan tipe data dasar yang sama, dan
jumlahnya tergantung saat awal pendeklarasian.
d. Array adalah tipe data terstruktur yang berupa kumpulan data dengan tipe data dasar yang sama, dan
jumlahnya dideklarasikan secara acak oleh komputer saat proses berlangsung.

14. Terdapat sebuah variabel array dengan tipe bilangan bulat, dideklarasikan sebanyak 10 buah. Manakah
yang benar dalam mendeklarasikan variabel array dibawah ini (KUK 3.1) :
a. int [10]
b. int A[10]
c. A[10]
d. A_10

15. Proses untuk mengurutkan data dalam sebuah struktur data array disebut sebagai (KUK 3.2):
a. Encapsulation
b. Sorting
c. Inheritance
d. Pengulangan

16. Algoritma pengurutan yang memuat seluruh data yang akan diurutkan ke dalam memori komputer,
disebut sebagai algoritma (KUK 3.2) :
a. Algoritma Sorting Eksternal
b. Algoritma Sorting Internal
c. Merge Sort
d. Pengurutan array 2 dimensi

17. Algoritma pengurutan yang memecah data menjadi beberapa bagian dan mengurutkan secara serta
menggabungkan kembali saat data sudah terurut, disebut sebagai algoritma (KUK 3.2) :
a. Algoritma Sorting Eksternal
b. Algoritma Sorting Internal
c. Merge Sort
d. Pengurutan array 2 dimensi
18. Algoritma yang selalu membagi 2 data pada setiap pengurutan data, disebut sebagai algoritma (KUK
3.2):
a. Algoritma Sorting Eksternal
b. Algoritma Binary Search
c. Algoritma Linier Search
d. Algoritma Radix Search

19. Sekumpulan karakter yang disusun dalam baris – baris yang berpindah dari satu media ke media lain
dalam sistek komputer disebut (KUK 4.1) :
a. Struktur Data
b. Tipe Data
c. File Stream
d. Array

20. Struktur file yang berisi data – data ASCII sehingga dapat ditampilkan di layar apa adanya disebut (KUK
4.1):
a. File Biner
b. File Teks
c. Tipe Data Array
d. Struktur Data

21. Struktur file yang berupa byte stream sehingga tidak dapat ditampilkan apa adanya di layer, disebut
sebagai (KUK 4.1) :
a. File Biner
b. File Teks
c. Tipe Data Array
d. Struktur Data

22. Setiap karakter dalam file biner akan memiliki ukuran sebesar (KUK 4.1) :
a. 1 Byte
b. 1 Bit
c. 1 KByte
d. Tidak terbatas dan sesuai dengan kebutuhan.
23. Mekanisme dalam melakukan manipulas file pada dasarnya dibagi menjadi 3 bagian, yaitu (KUK 4.1) :
a. Open File – Manipulasi File – Close File
b. Open File – Manipulasi File (Otomatis akan di close saat tidak dipakai)
c. Open File – Sorting File – Manipulasi File – Close File
d. Tergantung dari kebutuhan dan dapat berubah – ubah.

3.2 Tugas unjuk kerja

1. Buatlah pseudocode program untuk meminta inputan dari pengguna menggunakan keyboard dan
memeriksa apakah yang diinput berupa bilangan atau bukan dan menampilkan apakah bilangan
tersebut ganjil atau genap. (KUK 1.1)
2. Tuliskan kode program dalam bahasa C untuk mengurutkan data 2,5,7,8,10,23,4,5,16 dalam
algoritma selection sort. (KUK 3.2)

1. Tuliskan kode program dalam bahasa C untuk proses algoritma sorting menggunakan algoritma
bubble sort. (KUK 3.2)
2. Buatlah sebuah runtunan algoritma untuk menghitung bilangan prima (bilangan yang hanya habis
dibagi 2 dan bilangan itu sendiri)
3. Buatlah pseudocode program untuk menampilkan bilangan ganjil dan genap dari 100 hingga 200.
(KUK 1.1)
4. Tulislah sebuah kode program dalam bahasa C untuk menuliskan kalimat “Selamat Belajar Algoritma
Pemrograman” ke dalam file testing.txt (Semua KUK)
5. Bacalah file tersebut lagi dan tampilkan isinya ke layar monitor. (Semua KUK)

3.3 Daftar Check Unjuk Kerja (Praktek)


Demonstrasikan validitas perencanaan berkaitan komponen standar kompetensi

Kode unit : TIK.PR02.001.01

Judul Unit Algoritma dan Pemrograman Tingkat Dasar

Nomor Elemen Ya Tidak KUK Ya Tidak


1.1 Tipe data, variabel,
1. Menjelaskan varian dan konstanta dan Parameter yang
invarian berlaku umum
pada pemrograman dijelaskan.
1.2 Tipe data baru dan tipe data
yang ada dibuat dan dijelaskan
pemanfaatannya.
1.3 Pemakaian nama pada tipe
data, variabel, konstanta dan
parameter dijelaskan.
2.1 Algoritma dengan skema
program sekuensial dibuat
2. Membuat alur logika 2.2 Algoritma dengan skema
pemrograman program percabangan dibuat
2.3 Algoritma dengan skema
program pengulangan dibuat
3. Menerapkan pengelolaan 3.1 Algoritma dibuat
array dengan array atau dimensi.
3.2 Algoritma pencarian data
dan algoritma pengurutan
data (sorting) dibuat dengan
menggunakan array.

4.1 Algoritma program


penulisan data dan pembacaan
data ke dalam media
Penyimpanan data berupa hard
disk, floppy disk atau lainnya
4. Memelihara pekerjaan dibuat dan ditunjukkan.
secara praktis

4.2 Algoritma program


pembacaan dan penulisan data
dalam file dibuat secara
sekuensial dan indeks.
Kondisi Unjuk Kerja
Penunjang Ketrampilan dan Pengetahuan
Aspek – aspek penting dalam Pengujian
MATERI PELATIHAN BERBASIS KOMPETENSI
SEKTOR TELEMATIKA
SUB SEKTOR PROGRAMMER KOMPUTER

MEMBUAT ALGORITMA
PEMROGRAMAN DASAR
TIK.PR02.001.01

BUKU PENILAIAN

DEPARTEMEN TENAGA KERJA DAN TRANSMIGRASI R.I.


DIREKTORAT JENDERAL PEMBINAAN PELATIHAN DAN PRODUKTIVITAS
Jl. Jend. Gatot Subroto Kav.51 Lt.7.B Jakarta Selatan

DAFTAR ISI

Daftar Isi……………………………………………………………………………………………. Hal

BAB I KONSEP PENILAIAN…………………………………………………………………… 2

1.1. Bagaimana Instruktur akan Menilai ……………………………………… 3


1.2. Tipe Penilaian ……………………………………………………………….. 3

BAB II PELAKSANAAN PENILAIAN ………………………………………………………….. 3


2.1. Kunci Jawaban Tugas-tugas Teori ……………………………………….. 6
2.2. Kunci Jawaban Tugas Unjuk Kerja ……………………………………….. 9
2.3. Daftar Check Unjuk Kerja (Praktek) …………………………………….. 15
2.4. Check List Teori dan Unjuk Kerja ………………………………………… 16

LEMBAR PENILAIAN

Buku-buku Referensi untuk bahan pelatihan yang telah direkomendasikan:

1.Data Buku Pendukung Teori

BAB I
KONSEP PENILAIAN

1.1. Bagaimana Instruktur akan Menilai

Dalam sistem berdasarkan Kompetensi, penilai akan mengumpulkan bukti dan membuat pertimbangan
mengenai pengetahuan, pemahaman dan unjuk kerja tugas-tugas Anda dan sikap Anda terhadap
pekerjaan. Anda akan dinilai untuk menentukan apakah Anda telah mencapai kompetensi sesuai dengan
standar yang dijelaskan dalam Kriteria Unjuk Kerja.

Pada pelatihan berdasarkan kompetensi, pendekatan yang banyak digunakan untuk penilaian
adalah “Penilaian berdasarkan criteria/Criterion-Referenced Assessment”. Pendekatan ini mengukur unjuk
kerja Anda terhadap sejumlah standar. Standar yang digunakan dijelaskan dalam Kriteria Unjuk Kerja.

Penilaian dapat dilaksanakan dengan tujuan sebagai bantuan dan dukungan belajar. Tipe penilaian ini
adalah formatif dan merupakan proses yang sedang berjalan.

Penilaian juga dapat dilaksanakan untuk menentukan apakah Anda telah mencapai hasil program belajar
(contohnya pencapaian kompetensi dalam Unit). Tipe penilaian ini adalah sumatif dan merupakan
penilaian akhir.
Penilaian dapat dilaksanakan di industri (ditempat kerja) atau dilembaga pelatihan (diluar tempat kerja).
Jika memungkinkan, sebaiknya penilaian dilaksanakan ditempat kerja sehingga penilai dapat mengamati
Anda melakukan kegiatan normal ditempat kerja.

1.2. Tipe Penilaian

Test Tertulis
Test tertulis akan menilai pengetahuan Anda dan pemahaman konsep dan prinsip yang merupakan dasar
unjuk kerja tugas-tugas Anda. Test tertulis biasanya berupa seri pertanyaan pilihan ganda atau beberapa
bentuk test tertulis objectif lainnya, yaitu tes dimana setiap pertanyaan memiliki satu jawaban benar.

Test Unjuk Kerja


Test unjuk kerja akan menilai kompetensi Anda dalam menampilkan tugas-tugas elemen terhadap standar
yang dijelaskan dalam Kriteria Unjuk Kerja. Oleh sebab itu Anda akan menerapkan pengetahuan dan
pemahaman Anda terhadap unjuk kerja tugas-tugas.
Penilai biasanya menggunakan daftar cek analisis elemen sebagai pedoman untuk menentukan
kompetensi Anda dan akan memberikan umpan balik mengenai

unjuk kerja dan jika perlu, merencanakan pelatihan lanjutan jika Anda belum mencapai kompetensi pada
usaha/kesempatan pertama.

BAB II
PELAKSANAAN PENILAIAN

2.1 Kunci Jawaban Tugas-tugas Teori dan praktek


1. Yang bukan merupakan struktur dasar Algoritma adalah (KUK 1.1)
Jawaban : d. Choosing

1. Sebuah variabel untuk menampung jumlah siswa dalam sebuah kelas yang memilikii jumlah murid
100 siswa. Tipe data apa yang paling tepat digunakan (KUK 1.2) :
Jawaban : a. tipe bilangan bulat
1. Terdapat 2 buah variabel string A = “ALGORITMA dan B = “PEMROGRAMAN”, kemudian dilakukan
operasi penjumlahan antara kedua buah variabel A dan B tersebut. Bagaimanakah hasil akhirnya
(KUK 1.2) :
Jawaban : b. “ALGORITMAPEMROGRAMAN”

1. Terdapat 2 buah string : “aku” dan “AKU”. Di antara kedua variabel tersebut dilakukan operator
perbandingan, apakah hasil yang diperoleh (KUK 1.2) :
Jawaban : b. “aku” akan lebih kecil dari “AKU”

1. Pilihlah salah satu penamaan variabel yang tepat sesuai dengan aturan – aturan penamaan yang
benar (KUK 1.2) :
Jawaban : b. jumlah_mahasiswa

1. Sebuah variabel yang memiliki nilai yang tetap selama program berlangsung disebut sebagai (KUK
1.2) :
Jawaban : b. Konstanta

1. Terdapat operasi logika terhadap variabel bertipe booelan, pilihlah hasil yang salah dibawah ini
: (kondisi awal A = true dan B = true) (KUK 1.2)
Jawaban : b. A && B hasilnya adalah “false”

1. Salah satu struktur dasar dari Algoritma Pemrograman adalah sequence / runtunan. Manakah
pernyataan dibawah ini yang tepat (KUK 1.1):
Jawaban : b. Setiap instruksi akan dijalankan sesuai dengan urutan yang ada

1. Kemampuan komputer untuk melakukan proses perhitungan dalam jumlah yang besar dan berulang
kali tanpa berhenti disebut (KUK 1.3) :
Jawaban : a. Pengulangan

1. 10. Kemampuan komputer untuk menjalankan setiap instruksi dari awal sesuai dengan urutan hingga
instruksi terakhir disebut (KUK 1.3):
Jawaban : a. Runtunan / Sequence
1. 11. Sebuah variabel A memiliki nilai = 10, dan akan dilakukan pengulangan dengan struktur WHILE
– DO dengan kondisi selama nilai variabel A < 10, maka pengulangan akan tetap dijalankan. Di dalam
tubuh perulangan terdapat instruksi untuk mencetak nilai A dan menambahkan 1 setiap instruksi
dijalankan. Berapakah nilai yang tercetak di layar ? (KUK 1.3)
Jawaban : a. tidak sama sekali. Karena nilai A sudah mencapai nilai 10.

1. 12. Ketika sebuah program memanggil prosedur yang ada dalam dirinya sendiri secara terus
menerus, maka ini dinamakan (KUK 1.3) :
Jawaban : a. Rekursif

13. Apakah array itu (KUK 1.4) :


Jawaban : c. Array adalah tipe data terstruktur yang berupa kumpulan data dengan tipe data dasar
yang sama, dan jumlahnya tergantung saat awal pendeklarasian.

14. Terdapat sebuah variabel array dengan tipe bilangan bulat, dideklarasikan sebanyak 10 buah. Manakah
yang benar dalam mendeklarasikan variabel array dibawah ini (KUK 1.4) :
Jawaban : b. int A[10]

15. Proses untuk mengurutkan data dalam sebuah struktur data array disebut sebagai (KUK 1.4):
Jawaban : b. Sorting

1. 16. Algoritma pengurutan yang memuat seluruh data yang akan diurutkan ke dalam memori
komputer, disebut sebagai algoritma (KUK 1.4) :
Jawaban : b. Algoritma Sorting Internal

17. Algoritma pengurutan yang memecah data menjadi beberapa bagian dan mengurutkan secara serta
menggabungkan kembali saat data sudah terurut, disebut sebagai algoritma (KUK 1.4) :
Jawaban : a. Algoritma Sorting Eksternal

1. 18. Algoritma yang selalu membagi 2 data pada setiap pengurutan data, disebut sebagai algoritma
(KUK 1.4):
Jawaban : b. Algoritma Binary Search
19. Sekumpulan karakter yang disusun dalam baris – baris yang berpindah dari satu media ke media lain
dalam sistek komputer disebut (KUK 1.5)
Jawaban : c. File Stream

20. Struktur file yang berisi data – data ASCII sehingga dapat ditampilkan di layar apa adanya disebut (KUK
1.5):
Jawaban : b. File Teks

21. Struktur file yang berupa byte stream sehingga tidak dapat ditampilkan apa adanya di layer, disebut
sebagai (KUK 1.5) :
Jawaban : a. File Biner

1. 22. Setiap karakter dalam file biner akan memiliki ukuran sebesar (KUK 1.5) :
Jawaban : a. 1 Byte

1. 23. Mekanisme dalam melakukan manipulas file pada dasarnya dibagi menjadi 3 bagian, yaitu (KUK
1.5) :
Jawaban : a. Open File – Manipulasi File – Close File

2.2 Kunci Jawaban Tugas Unjuk Kerja

1. Buatlah sebuah runtunan algoritma untuk menghitung bilangan prima (bilangan yang hanya habis dibagi
2 dan bilangan itu sendiri).
Jawaban :
1. Baca / Input bilangan
2. Bagi bilangan dengan nilai 2 dan bilangan itu sendiri
3. Jika nilainya benar, maka beri tanda nilai positif dan jika tidak beri tanda nilai negatif
4. Tampilkan tulisan “Bilangan Prima” jika tanda bernilai positif
5. Tampilkan tulisan “Bukan bilangan prima” jika tanda bernilai negatif
6. Program selesai

2. Buatlah pseudocode program untuk menampilkan bilangan ganjil dan genap dari 100 hingga 200.
Jawaban :
BEGIN
Batas_bawah = 100
Batas_atas = 200
DO
IF Batas_bawah % 2 = 0 THEN
Print “Bilangan : “ + Batas_bawah + “Adalah bilangan genap”
END IF
Batas_bawah = Batas_bawah + 1
WHILE Batas_bawah <= Batas_atas
END
3.Pseudocode program untuk meminta inputan dari pengguna dan memeriksa apakah bilangan ganjil atau
genap ?
Jawaban :
BEGIN
Genap = false
Bilangan = 0
Print “Masukkan sembarang bilangan dan akhiri dengan enter : “
Read Bilangan
IF Bilangan % 2 = 0 THEN
Print “Bilangan : “ + Bilangan + “ Adalah Bilangan Genap”
END IF
END

4. Tuliskan kode program dalam bahasa C untuk mengurutkan data 2,5,7,8,10,23,4,5,16 dalam algoritma
selection sort.
#include <stdio.h>
#include <conio.h>
// variable global
int n;
void tukar(int a,int b){
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void selection_sort(int data[]){
int pos,i,j;
for(i=0;i<n-1;i++){
pos = i;
for(j = i+1;j<n;j++){
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
printf(“selection sort selesai!\n”);
}
void Tampil(int data[]){
printf(“Data : “);
for(int i=0;i<n;i++){
printf(“%d “,data[i]);
}
printf(“\n”);}

void main(){
int data[] = {2,5,7,8,10,23,4,5,16};
// menampilkan data sebelum di urutkan
Tampil(data);
// mengurutkan data
selection_sort(data);
// menampilkan data setelah diurutkan
Tampil(data);
// end of program
}

5. Tuliskan kode program dalam bahasa C untuk proses algoritma sorting menggunakan algoritma bubble
sort.
Jawaban :
#include <stdio.h>
#include <conio.h>
void main(){

const N=10; //membuat konstanta, maksudnya N tidak boleh berubah(tetap=constant)

int a[N]; //mendeklarasikan variavel tipe array


int i,j,T;
//Masukkan data ke var array looping for
for(i=0;i<=N-1;i++){
printf(“Masukkan data integer untuk a[%d] :”,i);scanf(“%d”,&a[i]);
}
//Data pada array Sebelum Sorting
clrscr();

printf(“\nData pada var a sebelum disorting :”);


printf(“\n===================================”);
for(i=0;i<=N-1;i++){
printf(“\nData pada var a[%d] : %d”,i,a[i]);}

//proses sorting
//Perhatikan begaimana digunakan for dalam for (for bersarang = nested for)

for(i=0;i<=N-2;i++){
for(j=i+1;j<=N-1;j++){
if (a[i]<=a[j]){
T=a[i];
a[i]=a[j];
a[j]=T;
}}}
//Data pada array Setelah Sorting
printf(“\n\nData pada var a setelah disorting :”);
printf(“\n===================================”);
for(i=0;i<=N-1;i++){
printf(“\nData pada var a[%d] : %d”,i,a[i]);
}
printf(“\n\nBandingkan dengan sebelumnya…!”);getch();
}//akhir dari main()

1. Tulislah sebuah kode program dalam bahasa C untuk menuliskan kalimat “Selamat Belajar Algoritma
Pemrograman” ke dalam file testing.txt
Jawaban :
#include <stdio.h>

int main(void){
FILE *file;
/* create file */
file = fopen(“testing.txt”, “w+”);
if (file == NULL) {
printf(“Error. File tidak dapat di create”); exit(1); // exit program.
}
/* tulis data ke file teks */
fputs(“Selamat Belajar Bahasa Pemrograman”, file);
/* close the file */
fclose(file);
return 0;
}
7. Bacalah file tersebut lagi dan tampilkan isinya ke layar monitor.
Jawaban :
#include <stdio.h>
#include <string.h>
int main(void){
FILE *file;
char kalimat[50]; //variabel string sebanyak 50 karakter.
/* create file */
file = fopen(“testing.txt”, “r”);
if (file == NULL) {

printf(“Error. File tidak dapat di baca”); exit(1); }


// exit program.
/* baca data dari file teks */
fgets(kalimat, strlen(kalimat)+1, file);
/* close the file */
printf(“%s”,kalimat); // tampilkan ke layar monitor.
fclose(file);
return 0;}

2.3 Daftar Check Unjuk Kerja (Praktek)

TUGAS – TUGAS YANG DITAMPILKAN KOMPETEN BELUM TANGGAL


KOMPETEN
1.
Memahami dasar – dasar algoritma dan
pemrograman
2. Memahami dasar dan penerapan tipe
data dasar dan variabel

3. Memahami alur logika program

4. Memahami dasar dan penerapan


sekuensial, percabangan dan
perulangan

5. Memahami dasar – dasar struktur data

6. Memahami dasar dan penerapan array

7. Memahami dasar pengelolaan file


8. Memahami fungsionalitas pengelolaan
file

2.4 Check List Teori dan Praktek

Semua kesalahan harus diperbaiki terlebih dahulu sebelum ditandatangani


Penguasaan Bahan
Ya
Apakah semua petunjuk kerja diikuti ?
Apakah peserta pelatihan mampu memahami dasar – dasar Algoritma dan Pemrograman ?
Apakah peserta pelatihan mampu untuk memahami alur logika program ?
Apakah peserta pelatihan mampu mampu memahami tipe data dasar, variable dan konstanta serta
mengaplikasikannya secara langsung pada penulisan program ?.
Apakah peserta pelatihan mampu memahami alur sekuensial, percabangan dan perulangan pada
program ?

Apakah peserta pelatihan mampu menuliskan program yang benar menggunakan alur logika
program yang telah dipelajari ?
Apakah peserta pelatihan mampu memahami tentang dasar – dasar struktur data ?
Apakah peserta pelatihan telah mampu memahami dan mengaplikasikan array dalam penulisan
program ?
Apakah peserta pelatihan telah mampu memahami dasar – dasar pengelolaan file ?

Apakah peserta pelatihan mampu memahami fungsionalitas yang ada dalam pengelolaan file ?
Apakah peserta pelatihan mampu mengaplikasikan fungsionalitas dalam pengelolaan file ke dalam
penulisan program ?

LEMBAR PENILAIAN

Tanggal : ……………………………….

Peserta pelatihan telah dinilai

KOPMPETEN BELUM KOMPETEN

Nama Peserta Pelatihan Nama Penilai

…………………………….. ……………………………..
Tanda Tangan Tanda Tangan
Komentar / Saran

…………………………………………………………………………………………………………..

…………………………………………………………………………………………………………..

……………………………………………………………………………………………………………

…………………………………………………………………………………………………………..

……………………………………………………………………………………………………………

Buku-buku Referensi untuk bahan pelatihan yang telah direkomendasikan:

1. 2. Data Buku Manual

1. 3. Data Buku Pendukung Teori

Anda mungkin juga menyukai