tik.pr02.001.01 b informasi

77
MATERI PELATIHAN BERBASIS KOMPETENSI SEKTOR TEKNOLOGI INFORMASI DAN KOMUNIKASI 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

Upload: lukmanulhakim-almamalik

Post on 08-Jul-2015

910 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Tik.pr02.001.01 b informasi

MATERI PELATIHAN BERBASIS KOMPETENSI

SEKTOR TEKNOLOGI INFORMASI DAN

KOMUNIKASI

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

Page 2: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 2 dari 77

DAFTAR ISI

Daftar IsiHal

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

Page 3: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 3 dari 77

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

Page 4: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 4 dari 77

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

Page 5: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 5 dari 77

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

Page 6: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 6 dari 77

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.

Page 7: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 7 dari 77

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.

Page 8: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 8 dari 77

• 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.3Pengakuan 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.

Page 9: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 9 dari 77

• Anda mungkin sudah memiliki pengetahuan dan keterampilan, karena

Anda telah :

a. Bekerja dalam suatu pekerjaan yang memerlukan suatu pengetahuan dan

keterampilan yang sama atau

b. Berpartisipasi dalam pelatihan yang mempelajari kompetensi yang sama

atau

c. Mempunyai pengalaman lainnya yang mengajarkan pengetahuan dan

keterampilan yang sama.

1.4Pengertian-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

Page 10: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 10 dari 77

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.

Page 11: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 11 dari 77

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 :

a. Pengetahuan dan keterampilan yang diperlukan untuk mencapai

kompetensi.

b. Standar yang diperlukan untuk mendemonstrasikan kompetensi.

c. 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.

Page 12: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 12 dari 77

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)

Page 13: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 13 dari 77

ELEMEN KOMPETENSI KRITERIA UNJUK KERJA

1 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.

2 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.

3 Menerapkan pengelolaan

array 3.1 Algoritma dibuat dengan array atau

dimensi.

3.2 Algoritma pencarian data dan algoritma

Page 14: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 14 dari 77

pengurutan data (sorting) dibuat dengan

menggunakan array.

4 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 :

Page 15: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 15 dari 77

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

2. Konteks penilaian

Kompetensi harus diujikan di tempat kerja atau di tempat lain secara teori dengan

kondisi kerja sesuai dengan keadaan normal.

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

0

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.

Page 16: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 16 dari 77

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 Tingkat1 Mengumpulkan, mengorganisir dan menganalisa informasi 12 Mengkomunikasikan ide-ide dan informasi 23 Merencanakan dan mengorganisir aktivitas-aktivitas 24 Bekerja dengan orang lain dan kelompok 15 Menggunakan ide-ide dan teknik matematika 36 Memecahkan masalah 27 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

Page 17: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 17 dari 77

belajar Anda dengan Pelatih dan kemudian melaksanakannya dengan tekun sesuai

dengan rencana yang telah dibuat.

Persiapan/perencanaan

a. Membaca bahan/materi yang telah diidentifikasi dalam setiap tahap belajar

dengan tujuan mendapatkan tinjauan umum mengenai isi proses belajar Anda.

b. Membuat catatan terhadap apa yang telah dibaca.

c. Memikirkan bagaimana pengetahuan baru yang diperoleh berhubungan dengan

pengetahuan dan pengalaman yang telah Anda miliki.

d. Merencanakan aplikasi praktik pengetahuan dan keterampilan Anda.

Permulaan dari proses pembelajaran

a. Mencoba mengerjakan seluruh pertanyaan dan tugas praktik yang terdapat pada

tahap belajar.

b. Merevisi dan meninjau materi belajar agar dapat menggabungkan pengetahuan

Anda.

Pengamatan terhadap tugas praktik

a. Mengamati keterampilan praktik yang didemonstrasikan oleh Pelatih atau orang

yang telah berpengalaman lainnya.

b. Mengajukan pertanyaan kepada Pelatih tentang konsep sulit yang Anda

temukan.

Implementasi

a. Menerapkan pelatihan kerja yang aman.

b. Mengamati indicator kemajuan personal melalui kegiatan praktik.

c. Mempraktikkan keterampilan baru yang telah Anda peroleh.

Penilaian

Melaksanakan tugas penilaian untuk penyelesaian belajar Anda.

Page 18: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 18 dari 77

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

Page 19: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 19 dari 77

4.1 Tujuan Instruksional Umum

o Siswa mampu mengerti tentang apa itu Algoritma Pemrograman.

o Siswa mampu mengerti dasar – dasar Algoritma Pemrograman.

o Siswa mampu berpikir secara logis dalam menyelesaikan masalah.

o Siswa mampu menganalisa masalah dan menciptakan solusti untuk

menyelesaikan sebuah masalah

4.2 Tujuan Instruksional Khusus

o Siswa dapat mengetahui seberapa pentingnya Algoritma Pemrograman

sebagai dasar untuk mempelajari pemrograman lanjut.

o Siswa dapat mengerti dasar – dasar pemikiran dalam menyelesaikan

masalah dalam pemrograman.

o Siswa dapat mengerti tentang logika dasar pemrograman.

o Siswa dapat mengerti tentang tipe – tipe data dasar dalam

pemrograman.

o Siswa dapat memahami tentang alur program meliputi sekuensial,

percabangan dan perulangan.

o Siswa dapat mengerti tentang dasar – dasar struktur data.

o Siswa dapat memahami mengenai dasar – dasar file beserta

pengelolaannya.

Dasar – Dasar Pemrograman

4.3 Apa itu Algoritma Pemrograman ?

Page 20: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 20 dari 77

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.

Page 21: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 21 dari 77

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. Runtunan (Sequence)

2. Pemilihan (Selection)

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

Page 22: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 22 dari 77

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 –

Page 23: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 23 dari 77

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

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 BTrue True True true FalseTrue false false True TrueFalse True false True TrueFalse False False False False

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.

Page 24: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 24 dari 77

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 FormatByte 0 ... 255 Unsigned 8 – bitShortlist - 128 ... 127 Signed 8 – bitWord 0 ... 65535 Unsigned 16 – bitInteger - 32768 ... 32767 Signed 16 bitLongint -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

Page 25: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 25 dari 77

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)

C. Tipe Bilangan Riil

Page 26: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 26 dari 77

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 FormatReal 2.9 X 10 6 byteSingle 4 byteDouble 8 byteExtended 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)

Page 27: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 27 dari 77

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)

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’, ‘ ‘, ‘+’, ‘?’, ‘&’.

Page 28: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 28 dari 77

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

Page 29: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 29 dari 77

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

Page 30: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 30 dari 77

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.

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.

C. Record / Rekaman

Page 31: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 31 dari 77

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_KtpBudi 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.

Page 32: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 32 dari 77

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 ).

Page 33: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 33 dari 77

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 :

Page 34: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 34 dari 77

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.

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)

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).

Page 35: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 35 dari 77

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 :

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 –

Page 36: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 36 dari 77

function yang disediakan pada masing – masing bahasa

pemrograman.

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 :

Page 37: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 37 dari 77

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

Page 38: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 38 dari 77

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

Page 39: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 39 dari 77

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”);

}

Page 40: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 40 dari 77

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”.

Page 41: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 41 dari 77

#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.

Page 42: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 42 dari 77

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){

Page 43: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 43 dari 77

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 %”);

Page 44: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 44 dari 77

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.

Page 45: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 45 dari 77

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 :

Page 46: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 46 dari 77

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)

Page 47: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 47 dari 77

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);

}}

Page 48: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 48 dari 77

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

Page 49: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 49 dari 77

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);

Page 50: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 50 dari 77

// 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.

Page 51: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 51 dari 77

#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.

Page 52: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 52 dari 77

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

Nilai = 10

Indeks = 1

Nilai = 20

Indeks = 2

Nilai = 30

Indeks = 3

Nilai = 40

Indeks = 4

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

Page 53: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 53 dari 77

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.

Page 54: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 54 dari 77

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

Nilai = 10

Indeks = 1

Nilai = 20

Indeks = 2

Nilai = 30

Indeks = 3

Nilai = 40

Indeks = 4

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(){

Page 55: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 55 dari 77

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 :

Page 56: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 56 dari 77

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>

Page 57: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 57 dari 77

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.

Page 58: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 58 dari 77

Jurusan 1995 1996 1997 1998T. Informatika 300 345 279 336S. Informasi 167 156 180 187K. 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 1998T. Informatika Baris 0

Kolom 0

Baris 0

Kolom 1

Baris 0

Kolom 2

Baris o

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.

Page 59: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 59 dari 77

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 1998T. Informatika Baris 0

Kolom 0

Baris 0

Kolom 1

Baris 0

Kolom 2

Baris 0

Kolom 3S. Informasi Baris 1

Kolom 0

Baris 1

Kolom 1

Baris 1

Kolom 2

Baris 1

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).

Page 60: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 60 dari 77

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).

Page 61: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 61 dari 77

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 dibandingkanKe 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 :

Page 62: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 62 dari 77

- 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. 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 :

Page 63: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 63 dari 77

Indeks 0 Indeks 1 Indeks 2 Indeks 3 Indeks 4 Indeks 5 Indeks 6 Indeks 78 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.

Page 64: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 64 dari 77

- 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

Page 65: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 65 dari 77

- 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 83 9 11 12 15 17 23 21 35A 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 83 9 11 12 15 17 23 21 35

A B CKarena 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 83 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 :

Page 66: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 66 dari 77

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

Contoh :

Kode Judul Buku Pengarang025 C++ Programnming Abdul Kadir063 Java Programming Ben Stiller088 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;

Page 67: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 67 dari 77

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 :

Page 68: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 68 dari 77

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.

2. 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)

Page 69: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 69 dari 77

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");

Page 70: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 70 dari 77

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

Page 71: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 71 dari 77

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);

Page 72: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 72 dari 77

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");

Page 73: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 73 dari 77

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 :

a. Membantu Anda untuk merencanakan proses belajar.

b. Membimbing Anda melalui tugas-tugas pelatihan yang dijelaskan dalam tahap

belajar.

c. Membantu Anda untuk memahami konsep dan praktik baru dan untuk

menjawab pertanyaan Anda mengenai proses belajar Anda.

d. Membantu Anda untuk menentukan dan mengakses sumber tambahan lain yang

Anda perlukan untuk belajar Anda.

e. Mengorganisir kegiatan belajar kelompok jika diperlukan.

f. Merencanakan seorang ahli dari tempat kerja untuk membantu jika diperlukan.

Penilai

Page 74: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 74 dari 77

Penilai Anda melaksanakan program pelatihan terstruktur untuk penilaian di tempat

kerja. Penilai akan :

a. Melaksanakan penilaian apabila Anda telah siap dan merencanakan proses

belajar dan penilaian selanjutnya dengan Anda.

b. Menjelaskan kepada Anda mengenai bagian yang perlu untuk diperbaiki dan

merundingkan rencana pelatihan selanjutnya dengan Anda.

c. 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

Page 75: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 75 dari 77

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

NO

UNIT

KOMPETE

NSI

KODE

UNIT

DAFTAR

PERALATANDAFTAR BAHAN

KETERANGA

N

1. Algoritma

dan

Pemrogra

man

Dasar

TIK.PR

02.001.

01

- Unit PC (Personal

Computer) dengan

CD drive dan Hard

Disk.

- PC dengan sistem

operasi Windows

XP

- Keyboard dan

mouse

- RAM dengan

ukuran yang sesuai

- Program

Borland C++

3.1.

-Buku informasi

tentang

Algoritma

Pemrograman

Dasar.

-

Page 76: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 76 dari 77

dengan kebutuhan.

- Program Borland

C++ 3.1

Page 77: Tik.pr02.001.01 b informasi

Materi Pelatihan Berbasis KompetensiSektor Telematika Sub Sektor Programmer Komputer

Kode ModulTIK.PR02.001.01

Judul Modul: Membuat Algoritma Pemrograman DasarBuku Informasi Versi: 01-09-2007 Halaman: 77 dari 77

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