ALGORITMA & PEMROGRAMAN

dokumen-dokumen yang mirip
Algoritma Pemrograman

Algoritma Pemrograman

Konstruksi Dasar Algoritma

Algoritma Pemrograman

STRUKTUR DASAR ALGORITMA

LOOPING. Brigida Arie Minartiningtyas, M.Kom

Algoritma & Pemrograman

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Brigida Arie Minartiningtyas, M.Kom

STRUKTUR DASAR ALGORITMA

ALGORITMA TUGAS 2 RESUME ALGORITMA PERCABANGAN DAN ALGORITMA PERULANGAN. Disusun Oleh : Sakina Mawardah Teknik Informatika. Dosen : Asep M. Yusuf, S.

Algoritma dan Struktur Data I Mia Fitriawati, S.Kom, M.Kom

Nama, Tipe, Ekspresi, dan Nilai

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

ALGORITMA & FLOWCHART

Teori Algoritma. Struktur Algoritma

Algoritma dan Struktur Data

ALGORITMA DAN STRUKTUR DATA 1

TIPE, NAMA, DAN NILAI

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Kata Pengantar... Daftar Isi... Daftar Padan Kata Inggris - Indonesia Pengantar ke Algoritma... 1

Algoritma,Flowchart, Konsep

MODUL 3 ALGORITMA PEMROGRAMAN

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

Materi Pelajaran : Algoritma Pemrograman. Siswa memahami tentang dasar dasar Algoritma Pemrograman

algoritma & pemrograman

PENGANTAR ALGORITMA & PEMROGRAMAN C/C++ Analisis Algoritma dan Struktur Data (TKE 670)

Algoritma Pemrograman

MODUL PRAKTIKUM ALGORITMA PEMROGRAMAN TEKNIK INFORMATIKA

Bab 2 DASAR-DASAR ALGORITMA

Tinjau algoritma dibawah ini

Algoritma Pemrograman

Algoritma Pemrograman

Procedure. Pertemuan 10 Algoritma Pemrograman

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

ALGORTIMA DAN PEMROGRAMAN

2 ATURAN PENULISAN TEKS ALGORITMA

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Struktur Pengulangan

Prosedur merupakan modul program yang mengerjakan instruksi spesifik dan menghasilkan efek netto. Efek netto diketahui dengan membandingkan keadan awa

Struktur Program. Rinta Kridalukmana

Algoritma Pemrograman

04/03/2013. Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia

Algoritma dan Struktur Data

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma

PEMILIHAN. Runtunan. Dian Palupi Rini, M.Kom

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

Pertemuan Ke-3 (Tipe Data dan Nama) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

Bab 1 Algoritma dan Pemrograman Tersruktur

ALGORITMA PERULANGAN

Proses, Instruksi, dan Aksi

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

ALGORITMA DAN PEMROGRAMAN

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Algoritma. Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

ALGORITHM. 6 Algoritma, Flowchart & Program. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

Pertemuan 3 Penyeleksian Kondisi dan Perulangan

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

PROSEDUR (Lanjutan) Parameter. Mahasiswa dapat memahami penggunaan prosedur dengan parameter. Mahasiswa dapat membuat prosedur dengan parameter.

P A S C A L D A S A R

Definisi Percabangan

PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan

Pengenalan Algoritma

PENGENALAN KOMPUTER. Sistem Komputer. Dian Palupi Rini, M.Kom

Algoritma Pemrograman

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma Pemrograman

Algoritma Pemrograman

Algoritma Pemrograman

Algoritma Pemrograman

@copyright by Emy PENGANTAR ALGORITMA & PROGRAM & PROGRAM PENGERTIAN ALGORITMA NOTASI UNTUK ALGORITMA

Algoritma Pemrograman I

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

Prosedur dan Fungsi ALGORITMA DAN PEMROGRAMAN [IS ] Dosen: Yudha Saintika, S.T., M.T.I

Algoritma dan Struktur Data

Algoritma Pemrograman

Algoritma Pemrograman

SMA SANTO PAULUS PONTIANAK

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

ALGORITMA & PEMROGRAMAN

Alih Kontrol dengan Flowchart

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-4 - Hal 1

Pertemuan Ke- 6 dan 7 Pengulangan atau Looping. Rahmady Liyantanto. liyantanto.wordpress.com. S1 Teknik Informatika-Unijoyo

Dasar Komputer dan Pemrograman. Konsep Tipe Data dan Operator Nama dan Nilai Data

Algoritma Pemrograman

Algoritma Pemrograman Fery Updi,M.Kom

Pengenalan Pascal. Sejarah Singkat Pascal

Pengenalan Algoritma dan Pemrograman Pascal

ALGORITMA RINTA KRIDALUKMANA SISKOM UNDIP

Pengenalan Algoritma & Pemrograman

Refreshing Materi Kuliah Semester Pendek 2010/2011. Logika dan Algoritma. Heri Sismoro, M.Kom.

Algoritma Pemrograman

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

Dasar Komputer & Pemrogaman 2A

Modul Algoritma Dan Pemrograman Pascal

Transkripsi:

MODUL BAHAN AJAR ALGORITMA & PEMROGRAMAN Oleh : Shiyami M, S.Kom. JURUSAN MANAJEMEN INFORMATIKA POLITEKNIK POS INDONESIA BANDUNG 2011

DAFTAR ISI BAB I PENGENALAN ALGORITMA... 1 BAB II NOTASI ALGORITMIK, TIPE, NAMA DAN NILAI... 6 BAB III RUNTUNAN... 16 BAB IV STRUKTUR PEMILIHAN... 19 BAB V STRUKTUR PENGULANGAN... 29 BAB VI STUDI KASUS... 38 BAB VII TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN PROCEDURE... 40 BAB VIII TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN FUNCTION... 51 BAB IX ARRAY (LARIK) SATU DIMENSI... 59 BAB X ARRAY (LARIK) DUA DIMENSI... 68 MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN ii

BAB I PENGENALAN ALGORITMA 1.1 Definisi Algoritma Terdapat beberapa definisi mengenai kata Algoritma : 1. Algoritma adalah urutan langkah langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi Munir :2002). 2. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988). 3. Algoritma adalah suatu himpunan hingga dari instruksi instruksi yang secara jelas memperinci langkah langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988). Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. alam kehidupan sehari haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah lankah membuat masakan. Bila langkah langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan Algoritma berarti mengerjakan langkah langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus : 1. Mengerti setiap langkah dalam Algoritma 2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut. Kriteria Algoritma menurut Donald E. Knuth adalah : 1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar. 2. Output: algoritma harus memiliki minimal satu buah output keluaran. 3. Definiteness (pasti): algoritma memiliki instruksi instruksi yang jelas dan tidak ambigu. 4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 1

1.2 Mekanisme Algoritma dan Pemroses Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer. Sedangkan orang yang membuat program disebut pemrogram/programmer dan kegiatan merancang dan menulis program disebut pemrograman. Di dalam pemrograman terdapat aktivitas menulis kode program dinamakan coding. Secara garis besar komputer tersusun atas empat komponen utama yaitu : 1. Piranti Masukan dan Keluaran Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil hasil aktivitasnya. Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram 2. Unit Pemroses Utama Unit pemroses utama (Central Processing Unit CPU) adalah otak komputer, yang berfungsi mengerjakan operasi operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca, dan operasi menulis. 3. Memori Memori adalah komponen yang berfungsi menyimpan atau mengingat. Yang disimpan di dalam memori adalah program (berisi operasi operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi operasi). Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasi operasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor). Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa berupa aturan aturan tata bahasanya. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 2

Di dalam pemrograman lebih ditekankan pada pemecahan masalah, bila rancangan masalah sudah dibuat dengan skema yang benar yaitu berisi urutan langkah langkah pencapaian solusi yang ditulis dalam sebuah notasi yang biasa dinamakan dengan notasi algortimik, maka rancangan siap dikodekan ke dalam bahasa pemrograman agar program bisa di eksekusi oleh komputer. Bahasa pemorgraman dikelompokan kedalam dua macam : 1. Bahasa Tingkat Rendah Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin dan bahasa rakitan (assembly). CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin. 2. Bahasa Tingkat Tinggi Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih manusiawi, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, Cobol, Basic, Fortran, C, C++, dan sebagainya. 1.3 Notasi Algoritmik Notasi algoritmik bukan bahasa pemrograman, sehingga siapa pun dapat membuat notasi algoritmik yang berbeda yang penting mudah dibaca dan dimengerti. Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar yaitu dengan flowchart. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian bagian yang terlupakan dalam analisis masalah. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 3

Contoh : 1. Notasi algoritmik I, menyatakan langkah langkah algoritma dengan kalimat deskriptif PROGRAM Luas Persegi Panjang Menghitung luas persegi panjang dengan rumus L = p * l ALGORITMA : 1. Baca nilai p 2. Baca nilai l 3. Hitung luas persegi panjang dengan mengkalikan p dan l 4. Tulis nilai luas persegi panjang 2. Notasi algoritmik II, menggunakan pseudo code PROGRAM Luas Persegi Panjang Menghitung luas persegi panjang dengan rumus L = p * l DEKLARASI : p, l : integer (panjang dan lebar berupa bilangan bulat positif) L : integer (hasil luas persegi panjang) ALGORITMA : Read (p, l) L p * l Write (L) 3. Notasi algoritmik III, menggunakan flowchart MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 4

1.4 Struktur Dasar Algoritma Algoritma berisi langkah langkah penyelesaian suatu masalah. Langkah langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu: 1. Struktur Runtunan Digunakan untuk program yang pernyataannya sequential atau urutan. Runtutan adalah instruksi instruksi yang dikerjakan secara berurutan. Berurutan disini berarti sesuai dengan urutan penulisannya, yakni sebuah instruksi dijalankan setelah instruksi sebelumnya selesai dikerjakan. 2. Struktur Pemilihan Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. Pemilihan terjadi ketika suatu instruksi dikerjakan apabila suatu kondisi terpenuhi. Misalnya instruksi A dikerjakan karena kondisi X terpenuhi yangjuga berarti instruksi A tidak dikerjakan bila kondisi X tidak terpenuhi. 3. Struktur Perulangan Digunakan untuk program yang pernyataannya akan dieksekusi berulang ulang. Pengulangan terjadi ketika ada suatu instruksi yang dilakukan terus menerus selama suatu kondisi terpenuhi. Beberapa hal yang harus diperhatikan dalam membuat algoritma : 1. Teks algoritma berisi deskripsi langkah langkah Penyelesaian masalah. 2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. 3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. 4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. 5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. 6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 5

BAB II NOTASI ALGORITMIK, TIPE, NAMA DAN NILAI Algoritma berisi deskripsi langkah langkah penyelesaian masalah. Langkah langkah penyelesaian tersebut kita tuliskan dalam notasi algoritmik. 2.1 Pseudo code Notasi algoritmik yang baik adalah notasi yang mudah dibaca dan mudah ditranslasikan ke dalam notasi bahasa pemrograman. Pseudo code adalah cara untuk menuliskan sebuah algoritma secara high level (level tingkat tinggi). Biasanya Pseudo code dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika. Biasanya sebuah Pseudo code tidak terlalu detail dibandingkan dengan program. Notasi algoritmik berupa pseudo code mempunyai korespondesni dengan notasi bahasa pemrograman sehingga proses penerjemahan dari pseudo code ke kode program menjadi lebih mudah. Tidak ada aturan baku dalam membuat pseudo code asal notasinya bisa dipahami. Contoh : 1. Sebuah pernyataan dalam notasi deskriptif Tulis nilai x dan y Maka pseudo codenya dalam notasi algoritma menjadi : Write (x,y) Jika di translasikan ke dalam bahasa pascal menjadi : Write (x,y); Jika ditranslasikan ke dalam bahasa C : Printf ( %d %d, x,y); Jika ditransalasikan ke dalam bahasa basic : WRITE x,y 2. Sebuah pernyataan dalam notasi deskriptif Masukan nilai X ke dalam min Maka pseudo codenya dalam notasi algoritmik menjadi : Min X (notasi artinya assign atau = ) Jika di transalasikan ke dalam bahasa pascal menjadi : Min := X; Jika ditransalasikan ke dalam bahasa C : Min = X; Jika ditranslasikan ke dalam bahasa basic : Min = X; MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 6

2.2 Struktur Teks Algoritma Teks algoritma selalu terdiri dari tiga bagian yaitu : 1. Bagian Judul 2. Bagian Deklarasi 3. Bagian Algoritma Secara umum ketiga bagian tersebut ditunjukan dalam notasi algoritmik di bawah ini : ALGORITMA nama_program {Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah apa yangakan diselesaikan termasuk masukan dan keluarannya} DEKLARASI {semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah, nama prosedur dan nama fungsi ditulis disini} DESKRIPSI {berisi langkah langkah penyelesaian masalah} 1. Bagian Judul Judul adalah bagian teks algoritma tempat mendefinisikan apakah teks tersebut adalah program, prosedur, fungsi, modul atau sebuah skema program. Setelah judul disarankan untuk menuliskan spesifikasi singkat dari teks algoritma tersebut dengan memberikan tanda { } sebagai tanda komentar. Bagian judul ini berisi judul teks algoritma secara keseluruhan dan intisari teks algoritma tersebut. Contoh : ALGORITMA HelloWorld {program untuk mencetak tulisan Hello World pada layar} ALGORITMA Segitiga {program untuk menghitung dan mencetak hasil luas segitiga, masukan program ini adalah alas dan tinggi serta keluarannya adalah hasil dari luas segitiga tercetak di layar} 2. Bagian Deklarasi Bagian ini digunakan untuk mendefinisikan : Nama type, Nama konstanta, Nama variabel, Nama fungsi, Nama prosedur Semua nama yang dipakai dalam algoritma harus dikenali sebelum digunakan. Penulisan sekumpulan nama dalam deskripsi sebaiknya dikelompokan menurut jenis nama tersebut. Bagian deklarasi mungkin kosong jika tidak ada penggunaan nama. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 7

Nama tidak boleh mengandung spasi, tanda baca (seperti titik, koma dsb) dan operator (seperti +,, :, dsb) yang dapat digunakan hanya karakter garis bawah ( _ ) untuk menggantikan spasi. Contoh : DEKLARASI {nama type} Type point : <X:real, Y:real> {koordinat pada sumbu kartesian} {nama konstanta, harus menyebutkan type dan nilai} Constant phi : real = 3.14 Constant benar : boolean = true {nama peubah (variabel)} Nmax : integer {jumlah maksimum elemen tabel} P : char {karakter yang dibaca} Found : boolean {hasil pencarian, true jika ketemu} {nama fungsi dan procedure} Function Apakah_A (input C : char) boolean {mengembalikan nilai true bila C adalah karakter A atau false bila sebaliknya} Procedure Tulis (input pesan : string) {menulis isi pesan ke layar dengan masukan sembarang dan keluaran pesan tertulis di layar} 3. Bagian Deskripsi Deskripsi adalah bagian teks algoritmik yang berisi instruksi atau pemanggilan aksi yang telah didefinisikan, Inilah bagian inti dari sebuah program. Contoh : DESKRIPSI Write ( Hello World ) DESKRIPSI Read (a,t) L a * t / 2 Write ( Maka luas segitiga adalah,l) Contoh secara keseluruhan notasi algoritma untuk menghitung luas segitiga ALGORITMA Segitiga {program untuk menghitung dan mencetak hasil luas segitiga, masukan program ini adalah alas dan tinggi serta keluarannya adalah hasil dari luas segitiga tercetak di layar} DEKLARASI a,t : integer {variabel yg menunjukan alas dan tinggi segitiga } L : real {variabel yg menyimpan hasil dari luas segitiga} DESKRIPSI MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 8

Read (a,t) L a * t / 2 Write ( Maka luas segitiga adalah,l) Contoh Translasi teks algoritma menghitung luas segitiga ke bahasa pascal PROGRAM Segitiga {program untuk menghitung dan mencetak hasil luas segitiga, masukan program ini adalah alas dan tinggi serta keluarannya adalah hasil dari luas segitiga tercetak di layar} Var a,t : integer; {variabel yg menunjukan alas dan tinggi segitiga } L : real; {variabel yg menyimpan hasil dari luas segitiga} Begin Write ( Masukan Nilai Alas : ); readln(a); Write ( Masukan Nilai Tinggi : ); readln(t); L := a * t / 2; Writeln ( Maka luas segitiga adalah,l); End. 2.3 Tipe, Nama dan Nilai 1. Tipe Tipe data dikelompokan menjadi 2 macam yaitu tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yg dapat langsung dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar yg sudah didefinisikan sebelumnya. a. Tipe dasar Yang termasuk dalam tipe dasar adalah : bilangan lojik, bilangan bulat, karakter, bilangan riil dan string Operasi aritmatika dan operasi NO NAMA TIPE RANAH NILAI OPERASI 1 Bilangan Lojik Benar (true) atau salah Operasi logika : not, and, or dan xor boolean (false) 2 Bilangan Bulat Operasi aritmatika dan operasi Integer 32768 s.d 32767 perbandingan 3 Bilangan riil Real 2.9 x 10 39 s.d 1.7 x 10 38 perbandingan 4 Karakter Char 5 String String Semua huruf alfabet, angka desimal, tanda baca, operator aritmatika, dan karakter khusus (a..z, A..Z) (0..9) (., :,!,?, dll) ( +,, *, / ) (@, #, $, %, &, ^, ~) Deretan karakter yang telah didefinisikan pada ranah Operasi perbandingan Operasi penyambungan dan operasi perbandingan MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 9

karakter Contoh penggunaan operasi untuk setiap nama tipe Boolean Tabel kebenaran untuk operasi logika not, and, or dan xor a True False Not a False True A b a and b a or b a xor b True True True True False True False False True True False True False True True False False False False False Contoh penggunaan operasi : misal X,Y,Z adalah peubah bertipe boolean, X bernilai true, Y bernilai false dan Z bernilai true maka : Integer Operasi Logika Hasil (X and Y) or Z True X and (Y or Z) True Not (X and Y) True (Y xor Z) and Y False Operator aritmatika dan perbandingan yang didefinisikan pada tipe integer adalah : Operator Keterangan Operator Aritmatika + Penjumlahan Pengurangan * Perkalian Div Pembagian Mod Sisa hasil bagi Sqr Mengkuadratkan Operator Perbandingan < Lebih kecil > Lebih besar Lebih kecil atau sama dengan Lebih besar atau sama dengan = Sama dengan Tidak sama dengan MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 10

Contoh operasi aritmatika beserta hasilnya Operasi Hasil 30 + 13 43 40 6 34 25 * 2 50 27 div 3 9 27 mod 3 0 10 div 3 3 10 mod 3 1 Sqr (6) 36 Contoh operasi perbandingan beserta hasilnya Operasi Hasil 30 < 13 False 40 > 6 True 9 9 True 5 7 False 17 = 17 True (24 div 3) 8 False (10 mod 3) = 1 True Real Operator aritmatika dan perbandingan yang didefinisikan pada tipe real adalah : Operator Keterangan Operator Aritmatika + Penjumlahan Pengurangan / Pembagian * Perkalian Sqr Mengkuadratkan Sqrt Mengakarkan Operator Perbandingan < Lebih kecil > Lebih besar Lebih kecil atau sama dengan Lebih besar atau sama dengan Tidak sama dengan MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 11

Contoh operasi aritmatika beserta hasilnya Operasi Hasil 5.5 + 4.5 10 8.0 2.8 5.2 10.0 / 3.0 3.333... 7.2 * 2.5 3.6 Sqr (5) 25 Sqrt (36) 6 Contoh operasi perbandingan beserta hasilnya Operasi Hasil 3.0 > 3.5 False 8.0 5 True 3.0 3.5 True Char Operator perbandingan yang didefinisikan pada tipe char adalah : Operator Keterangan < Lebih kecil > Lebih besar Lebih kecil atau sama dengan Lebih besar atau sama dengan Tidak sama dengan = Sama dengan Contoh operasi perbandingan beserta hasilnya Operasi a = a T = t m < z Q > Z Hasil True False True False String Operator yang digunakan dalam operasi penyambungan pada tipe string adalah operator + operator disini berarti menyambungkan dua tau lebih karakter. Contoh penggunaan operasi penyambungan : Operasi Hasil Manajemen + Informatika ManajemenInformatika Manajemen + Informatika Manajemen Informatika xxx + + yyy + zzz xxx yyyzzz 22 + 33 + 11 2233 11 MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 12

Operator perbandingan yang didefinisikan pada tipe string adalah : Operator Keterangan < Lebih kecil > Lebih besar Lebih kecil atau sama dengan Lebih besar atau sama dengan Tidak sama dengan = Sama dengan Contoh operasi perbandingan beserta hasilnya Operasi abcde = abc TUTI > tuti Hasil False True b. Tipe bentukan Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram. Contoh : DEKLARASI Type Titik : record <x : real, y : real> Type jam : record < hh : integer, Mm : integer, Dd : integer> P : titik J1, J2 : jam 2. Nama Dalam algoritma nama dipakai sebagai pengidentifikasi sesuatu dan pemrogram mengacu sesuatu itu melalui namanya. Karena itu, tiap nama haruslah unik dan tidak boleh ada dua buah nama yang sama. Semua nama yang digunakan di dalam algoritma harus dideklarasikan dalam bagian DEKLARASI sebelum digunakan. Dalam algoritma objek yang diberi nama dapat berupa : Peubah (variable) Konstanta Tipe bentukan Nama fungsi Nama prosedur MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 13

3. Nilai Algoritma pada dasarnya memanipulasi nilai yang disimpan dalam peubah. Memanipulasi misalnya : mengisikan ke peubah lain yang bertipe sama, dipakai untuk perhitungan, atau dituliskan ke piranti keluaran. Pengisian nilai ke dalam peubah dapat dilakukan dengan dua cara : Pengisian nilai secara langsung Memasukan sebuah nilai ke dalam nama peubah langsung di dalam teks algoritma dengan syarat harus bertipe sama. Notasinya Nilai yang diberikan ke dalam peubah dapat berupa : Peubah konstanta Peubah1 peubah2 Peubah ekspresi Pembacaan nilai dari piranti masukan Nilai untuk nama peubah dapat diisi dari piranti masukan, misal dari papan keyboard. Operasi ini dinamakan pembacaan data. Notasinya read Contoh Read (nama1, nama2) Nilai konstanta, peubah dan hasil ekspresi dapat ditampilkan ke piranti keluaran (monitor). Notasinya write Contoh Write (nama1, nama2) Tabel transalasi notasi algoritmik, pengisian nilai, pembacaan dan penulisan ke dalam bahasa pascal Pernyataan Algoritmik Bahasa Pascal Keterangan Pengisian := Pembacaan Read Read Membaca masukan dari papan kunci, kursor tetap di baris yang sama Readln Membaca masukan dari papan kunci, kursor kemudian pindah ke baris berikutnya Penulisan Write Write Menulis keluaran ke layar, kursor tetap di baris yang sama Writeln Menulis keluaran ke layar, kursor kemudian pindah ke baris berikutnya MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 14

2.4 Latihan 1. Tentukan tipe data yang paling sesuai untuk data di bawah ini : a. NIM b. Nama c. Alamat d. Jenis Kelamin e. Jumlah Uang Saku f. No. Handphone g. Kode Buku h. PIN ATM i. Password j. Username 2. Tentukan hasil operasi logika di bawah ini jika diketahui X,Y,Z adalah peubah bertipe boolean, X bernilai true, Y bernilai false dan Z bernilai true : a. (X or Y) and Z b. X or (Y and Z) c. Not (X or Y) d. (Y xor Z) or Y 3. Tentukan hasil operasi aritmatika di bawah ini : a. 25 div 5 mod 2 b. 30 + 5 div 7 c. 90 mod 10 + 1 d. 15 * 5 div 3 e. Sqrt(sqr(5)+sqr(4)) f. Sqr(6) + sqr(3) (sqrt(64)) 4. Tentukan hasil dari operasi penyambungan di bawah ini : a. Susi + Susanti b. 202 + + 2 + 3 + 198 c. Jurusan + Manajemen + Informatika PPI d. 1 + 2 + 3 Dan jelaskan apa perbedaannya dengan hasil dari operasi 1+2+3 MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 15

BAB III RUNTUNAN 3.1 Pendahuluan Algoritma merupakan runtunan satu atau lebih instruksi, yang berarti bahwa : 1. Tiap Instruksi dikerjakan satu per Satu 2. Tiap instruksi dilaksanakan tepat sekali tidak ada instruksi yang diulang 3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang tertulis di dalam teks algoritmanya 4. akhir dari instruksi terakhir merupakan akhir algoritma Pengaruh urutan instruksi : Urutan instruksi dalam algoritma adalah penting. Urutan instruksi menunjukan urutan logik penyelesaian masalah. Urutan instruksi yang berbeda mungkin tidak ada pengaruh terhadap solusi persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda, tergantung pada masalahnya. Percobaan 1 : Algoritma pertukaran dua buah nilai A dan B Algoritma Runtunan_1 { mempertukarkan nilai A dan B. Nilai A dan B dibaca terlebih dahulu} Deklarasi : A, B, C : integer Deskripsi : read (A, B) C A A B B c write (A.B) Pascal : MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 16

Percobaan 2 : Algortima menghitung luas segiemapat Algoritma LuasSegiemapat {membaca panjang dan lebar segi empat lalau menghitung luasnya dan hasilnya di cetak ke piranti keluaran} Deklarasi : Luas : integer Panjang : integer lebar : integer Deskripsi : read (panjang,lebar) Luas panjang * lebar write (luas) Pascal : Percobaan 3 : Menghitung gaji bersih karyawan dengan ketentuan : Gaji bersih = gaji kotor pph Gaji kotor = gaji pokok + tunjangan Pph = 5% * gaji kotor Masukan program adalah nama karywan, gaji pokok dan tunjangan Keluaran program adalah nama karyawan, gaji kotor, pph dan gaji bersih Algoritma GajiBersih {menghitung gaji bersih karyawan} Deklarasi : GajiBersih, GajiKotor, GajiPokok, Tunjangan, pph : real Nama : string Deskripsi : Read (nama,gajipokok,tunjangan) GajiKotor GajiPokok + tunjangan Pph 5%*GajiKotor GajiBersih GajiKotor pph write (nama,gajikotor,pph,gajibersih) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 17

Pascal : 3.2 Latihan Praktikum 1. Buatlah Algoritma dan Program untuk mencetak tulisan Halo ini adalah program pertama anda, silahkan isi nama, NIM dan Alamat anda : lalu setelah menekan enter muncul perintah isian untuk mengisi Nama, NIM dan Alamat lalu setelah selesai mengisi perintah isian, menuliskan pesan Terima Kasih atas kunjungannya, <nama anda tampil disini> 2. Dibaca tiga buah bilangan bulat X,Y,Z tulislah algoritma dan program untuk mempertukarkan (X,Y,Z) menjadi (Y,Z,X) 3. Buatlah Algoritma dan Program untuk menghitung luas dan keliling lingkaran 4. Buatlah Algoritma dan Program untuk menghitung jarak tempuh mobil (dalam km), algoritma tersebut membaca masukan berupa v (kecepatan) dan t (waktu) dan menghitung jarak dengan rumus s=vt, lalu mencetak jarak tersebut. 5. Buatlah algortima dan program untuk mengukur berat badan ideal. Dengan rumus tinggi badan dikurangi 100 lalu dikurangi lagi dengan 10% dari hasil pengurangan pertama. Masukan berupa tinggi badan dan keluaran nilai berat badan idealnya. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 18

BAB IV STRUKTUR PEMILIHAN 4.1 Pendahuluan Yang dimaksud dengan Pemrograman dengan Struktur Pemilihan adalah sebuah cara pemrograman dengan instruksi instruksi tertentu yang dapat digunakan untuk mengambil keputusan berdasarkan suatu kondisi, contoh : Jika hari hujan, maka bawalah payung di sini keputusan membawa payung diambil berdasarkan kondisi hari hujan. Jika lapar, maka makan nasi keputusan untuk makan nasi diambil berdasarkan kondisi jika lapar. Struktur pemilihan ini terbagi atas 3 jenis yaitu : 1. Struktur pemilihan dengan satu kondisi 2. Struktur pemilihan dengan dua kondisi / lebih 3. Struktur pemilihan dengan instruksi case 4.2 Struktur Pemilihan dengan satu kondisi a. Instruksi IF THEN (menganalisis satu kasus) Instruksi IF digunakan untuk memeriksa sebuah kondisi dan mengeksekusi satu aksi, jika dan hanya jika kondisi terpenuhi. Bentuk Notasi algoritmik untuk instruksi ini adalah : IF <kondisi> THEN Aksi (endif) Aksi sesudah kata THEN dapat berupa satu atau lebih aksi hanya akan dilaksanakan bila <kondisi> bernilai benar, bila <kondisi> bernilai salah tidak ada yang dilaksanakan. Kata (endif) ditambahkan untuk mempertegas awal dan akhir struktur IF THEN b. Instruksi IF THEN dengan syarat tunggal Instruksi IF THEN dengan syarat tunggal merupakan instruksi untuk memeriksa sebuah kondisi saja. contoh : MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 19

Percobaan 1 : Jika Nilai lebih dari 6, maka statusnya lulus Algortima StatusNilai {menentukan status nilai mahasiswa jika lebih dari 6 maka lulus} Deklarasi Nilai : integer Nama : string Status : string Deskripsi Read (nama,nilai) IF nilai > 6 THEN Status lulus (endif) Write (nama,status) c. Instruksi IF THEN dengan syarat majemuk Merupakan sebuah instruksi untuk memeriksa lebih dari satu buah kondisi, kondisikondisi tersebut dihubungkan dengan operator operator logika seperti AND atau OR. Contoh : Percobaan 2 : Mahasiswa akan lulus apabila ia mendapatkan nilai > 6 dan ia sudah mengerjakan lebih dari 5 tugas. Algortima StatusMhs Deklarasi Nilai, tugas : integer Nama : string Status : string Deskripsi Read (nama,nilai) IF nilai > 6 AND tugas > 5 THEN Status lulus (endif) Write (nama,status) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 20

4.3 Struktur Pemilihan dengan Dua Kondisi atau lebih a. Instruksi IF THEN ELSE (menganalisis dua kasus atau lebih) Instruksi IF THEN ELSE (jika maka kalau tidak) digunakan untuk memeriksa satu atau lebih kondisi dan mengeksekusi satu aksi, jika kondisi terpenuhi. Bentuk Notasi algoritmik untuk dua kasus adalah : IF <kondisi> THEN Aksi_1 ELSE Aksi_2 (endif) Aksi_1 akan dilaksanakan jika <kondisi> bernilai benar, tetapi jika kondisi bernilai salah, aksi_2 yang akan dilaksanakan, ELSE menyatakan ingkaran dari kondisi. Contoh : Percobaan 3 : Jika a bernilai lebih dari 0 maka bilangan positif, jika tidak maka bilangan negatif. Algoritma BilanganPositifNegatif {menentukan apakah bilangan a adalah bilangan positif atau bilangan negatif} DEKLARASI A : integer DESKRIPSI Read (a) IF a > 0 THEN Write ( bilangan positif ) ELSE Write ( bilangan negatif ) (endif) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 21

b. Notasi Algoritmik untuk kondisi tiga kasus atau lebih IF <kondisi_1> THEN Aksi_1 ELSE IF <kondisi_2> THEN Aksi_2 ELSE IF <kondisi_3> THEN Aksi_3 (endif) (endif) (endif) Aksi_1 akan dilaksanakan jika <kondisi_1> bernilai benar, tetapi jika kondisi bernilai salah, akan memeriksa ke <kondisi_2> dan aksi_2 yang akan dilaksanakan dst. ELSE menyatakan ingkaran dari kondisi. Contoh : Percobaan 4 : Jika bilangan > o maka bilangan positif, jika bilangan < 0 maka bilangan negatif, jika bilangan = 0 maka nol Algoritma Bilangan {menentukan jenis bilangan jika >0 maka positif, <0 bilangan negatif dan =0 bilangan nol} DEKLARASI Bil : integer DESKRIPSI Read (bilangan) IF bil > 0 THEN Write ( bilangan positif ) ELSE IF bil < 0 THEN Write ( bilangan negatif ) ELSE IF bil = 0 THEN Write ( nol ) (endif) (endif) (endif) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 22

4.4 Instruksi CASE Untuk masalah dengan dua kasus atau lebih, struktur CASE dapat menyederhanakan penulisan IF THEN ELSE. Struktur CASE adalah sebagai berikut : CASE <nama> <kondisi1> : aksi1 <kondisi2> : aksi2 <kondisin> : aksin [otherwise aksix] (endcase) Untuk <kondisi1>, <kondisi2> dan <kondisin> bila bernilai salah atau benar, tiap kondisi akan diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang bernilai benar, jika tidak ada satupun <kondisi> yang benar maka aksi sesudah otherwise dikerjakan. Percobaan 5 : mencetak nilai kondisi, Jika A = 1 maka tulis satu, Jika A = 2 maka tulis dua, Jika A = 3 maka tulis tiga Algoritma cetakangka {mencetak nilai kondisi A, jika A=1 maka tulis satu, A=2 tulis dua, A=3 tulis tiga} DEKLARASI A : integer DESKRIPSI Read (A) CASE (A) A = 1 : write ( satu ) A = 2 : write ( dua ) A = 3 : write ( tiga ) (endcase) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 23

Percobaan 6 : Sebuah program mempunyai menu sebagai berikut : MENU 1. Baca Data 2. Cetak Data 3. Ubah Data 4. Hapus Data 5. Keluar Program Buatlah algoritma dan program yang mencetak menu tersebut dan membaca nomor pilihan menu. Untuk nomor menu yang dipilih, tuliskan pesan seperti contoh berikut : Anda memilih menu nomor <nomor menu yang dipilih> Algoritma Menu {mencetak menu dan membaca nomor pilihan menu} DEKLARASI Nomor_menu : integer DESKRIPSI {cetak menu} Write ( MENU ) Write ( 1. Baca Data ) Write ( 2. Cetak Data ) Write ( 3. Ubah Data ) Write ( 4. Hapus Data ) Write ( 5. Keluar Program ) Write ( Masukan pilihan anda (1/2/3/4/5)? ) Read (nomor_menu) Case (nomor_menu) Nomor_menu=1 : write ( Anda memilih menu nomor 1 ) Nomor_menu=2 : write ( Anda memilih menu nomor 2 ) Nomor_menu=3 : write ( Anda memilih menu nomor 3 ) Nomor_menu=4 : write ( Anda memilih menu nomor 4 ) Nomor_menu=5 : write ( Anda memilih menu nomor 5 ) endcase MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 24

Percobaan 7 : Buatlah algoritma dan program untuk menentukan luas persegi panjang, keliling empat persegi panjang dan panjang diagonal. Lengkapi program dengan pilihan menu : 1. Luas 2. Keliling 3. Panjang Diagonal 4. Keluar Program Pada setiap pilihan menu, dibaca panjang dan lebar persegi panjang. Algoritma PersegiPanjang {menentukan luas, keliling dan panjang diagonal persegi panjang dengan dilengkapi pilihan menu} DEKLARASI nomor_menu : integer panjang : real lebar : real luas : real keliling : real diagonal : real DESKRIPSI {cetak menu} REPEAT Write ( MENU PERSEGI PANJANG ) Write ( 1. Hitung Luas ) Write ( 2. Hitung Keliling ) Write ( 3. Hitung Diagonal ) Write ( 4. Keluar Program) Write ( Masukan pilihan anda (1/2/3/4)? ) Read (nomor_menu) Case (nomor_menu) Nomor_menu = 1 : read (panjang,lebar) luas panjang * lebar write (luas) Nomor_menu = 2 : read (panjang,lebar) keliling 2 * panjang + 2 * lebar write (keliling) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 25

Nomor_menu = 3 : read (panjang,lebar) diagonal sqrt (panjang * panjang + lebar * lebar) write (luas) Nomor_menu = 4 : write ( keluar program.sampai jumpa ) Endcase UNTIL nomor_menu = 4 MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 26

4.5 Latihan Praktikum 1. Minimarket serbamurah memberikan diskon belanja sebesar 10% untuk nilai pembelanjaan Rp.100.000 dan kupon undian untuk pembelanjaan setiap kelipatan Rp50.000. buatlah algoritma dan program untuk menentukan harga belanja setelah dikurangi diskon dan menentukan jumlah kupon yang diterima pelanggan. Data masukan adalah nilai total belanja pelanggan dan keluarannya adalah sbb : MINIMARKET SERBAMURAH JL. SARIJADI RAYA NO.10 TELP.022234567 TOTAL BELANJA : Rp.xxxxxx DISKON : Rp.xxxxx TOTAL BAYAR : Rp.xxxxxx JUMLAH KUPON : XX 2. Buatlah algoritma dan program untuk menentukan bilangan genap atau ganjil. Masukan adalah nilai bilangan dan keluaran adalah mencetak pesan ini adalah bilangan... 3. Buatlah algoritma dan program untuk menentukan apakah berat badan seseorang itu termasuk kedalam berat ideal, obesitas atau gemuk dengan menggunakan perhitungan IMT ketentuannya sbb : IMT = B / T B : berat badan T : tinggi badan dikuadratkan Kondisi Hasil IMT >= 18,5 dan IMT < 23 Berat Normal / Ideal IMT >= 23 dan IMT < 25 Gemuk IMT >= 25 dan IMT < 27 Obesitas Ringan IMT >= 27 dan IMT < 30 Obesitas Sedang IMT >= 30 Obesitas Berat Masukan adalah nama, berat badan dan tinggi badan. Keluaran adalah mencetak pesan berat badan <nama> termasuk ke dalam... MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 27

4. Buatlah algoritma dan program untuk menghitung gaji bersih karyawan PT.ABC dengan ketentuan sbb : Golongan Gaji Pokok A 350000 B 450000 C 550000 D 650000 Perhitungannya adalah sbb : Gaji bersih = gaji kotor pph Gaji kotor = gaji pokok + tunjangan Pph = 5% * gaji kotor Tunjangan = 10% * gaji pokok Masukan adalah nama karyawan dan golongan, keluaran adalah mencetak slip gaji dengan format sbb : SLIP GAJI PEGAWAI PT.ABC NAMA GOLONGAN GAJI POKOK TUNJANGAN : XXXXXXXX : X : Rp.xxxxxxx : Rp.xxxxxxx GAJI KOTOR PPH : Rp.xxxxxxx : Rp.xxxxxxx GAJI BERSIH : Rp.xxxxxxx MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 28

BAB V STRUKTUR PENGULANGAN 5.1 Pendahuluan Salah satu kelebihan komputer dibandingkan manusia adalah kemampuannya untuk melaksanakan suatu perintah berulangkali tanpa mengenal bosen atau lelah. Dalam algoritma pengulangan (loop) dapat dilakukan sejumlah kali atau sampai kondisi berhenti pengulangan tercapai. Struktur pengulangan terdiri atas 2 bagian yaitu : 1. kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan. 2. badan (body) pengulangan, yaitu satu atau lebih aksi yang akan diulang struktur pengulangan biasanya disertai dengan bagian : 1. inisialisasi, aksi yang dilakukan sebelum pengulangan dilakukan pertama kali 2. terminasi, aksi yang dilakukan setelah pengulangan selesai dialksanakan di dalam algoritma terdapat beberapa macam struktur pengulangan yang berbeda, beberapa struktur dapat dipakai untuk masalah yang sama, namun ada notasi pengulangan yang hanya cocok dipakai untuk masalah tertentu, struktur pengulangan tersebut adalah : 5.2 Struktur WHILE DO Bentuk umum struktur WHILE DO adalah while <kondisi> do Aksi endwhile aksi (atau runtunan aksi) akan dilaksanakan berulangkali sepanjang <kondisi> boolean masih tetap bernilai true, jika <kondisi> bernilai false, badan pengulangan tidak akan dilaksanakan. Pengulangan selesai. Percobaan 1 : Tuliskan algoritma untuk mencetak banyak HALO sebanyak 10 kali. Algoritma cetak_banyak_halo Deklarasi K : integer {pencacah pengulangan} Deskripsi K 1 {inisialisasi} While k 10 do Write ( HALO ) K K+1 Endwhile {kondisi berhenti : k > 10} MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 29

Percobaan 2 : Tuliskan Algoritma untuk mencetak urutan angka 1 s/d 10 Algoritma cetak_angka Deklarasi Angka : integer Deskripsi Angka 1 {inisialisasi} While angka 10 do Write (angka) angka angka +1 Endwhile 5.3 Struktur REPEAT UNTIL Bentuk umum struktur REPEAT UNTIL adalah : Repeat Aksi Until <kondisi> Struktur REPEAT UNTIL memiliki makna yang sama dengan WHILE DO namun ada perbedaan mendasar diantara keduanya. Pada struktur REPEAT UNTIL aksi (atau sekumpulan aksi) dilaksanakan minimal satu kali, karena kondisi pengulangan diperiksa pada akhir struktur, sedangkan pada struktur WHILE DO kondisi pengulangan diperiksa pada awal struktur sehingga memungkinkan pengulangan tidak pernah dilaksanakan bila kondisi pengulangan bernilai false MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 30

Percobaan 3 : Algoritma cetak banyak halo menggunakan repeat until Algoritma cetak_banyak_halo Deklarasi K : integer {pencacah pengulangan} Deskripsi K 1 {inisialisasi} Repeat Write ( HALO ) K K+1 Until k > 10 {kondisi berhenti : k > 10} Percobaan 4 : Tuliskan Algoritma untuk mencetak urutan angka 1 s/d 10 menggunakan repeatuntil Algoritma cetak_angka Deklarasi Angka : integer Deskripsi Angka 1 Repeat Write (angka) angka angka +1 until angka > 10 MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 31

5.4 Struktur FOR Struktur FOR digunakan untuk menghasilkan pengulangan sejumlah kali tanpa penggunaan kondisi apapu, struktur ini menyebabkan aksi diulangi sejumlah kali (tertentu) Bentuk umum struktur FOR ada 2 macam : menaik (ascending) dan menurun (descending) FOR menaik : Keterangan : For peubah nilai_awal to nilai_akhir do Aksi Endfor - peubah : haruslah bertipe sederhana - nilai_awal : haruslebih kecil atau sama dengan nilai_akhir - pada awalnya, peubah diinisialisasi dengan nilai_awal. Nilai peubah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah sama dengan nilai_akhir Percobaan 5 : mencetak banyak halo menggunakan FOR Algoritma cetak_banyak_halo Deklarasi K : integer {pencacah pengulangan} Deskripsi For K 1 to 10 do Write ( HALO ) Endfor {kondisi berhenti : k > 10} Percobaan 6 : Tuliskan Algoritma untuk mencetak urutan angka 1 s/d 10 menggunakan for Algoritma cetak_angka Deklarasi Angka : integer Deskripsi For angka 1 to 10 do Write (angka) Endfor MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 32

FOR menurun : For peubah nilai_akhir downto nilai_awal do Aksi Endfor Keterangan : - peubah : haruslah bertipe sederhana - nilai_akhir : harus lebih besar atau sama dengan nilai_awal - pada awalnya, peubah diinisialisasi dengan nilai_akhir. Nilai peubah secara otomatis berkurang satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah sama dengan nilai_awal Percobaan 7 : algoritma peluncuran roket dengan hitungan mundur, mulai dari 100, 99, 98,. 0 Algoritma peluncuran_roket Deklarasi K : integer Deskripsi For k 100 downto 0 do Write (k) Endfor Write ( GO! ) {roket meluncur} Percobaan 8 : algoritma menghitung rata rata deret bilangan bulat positif ke n Algoritma ratarata Deklarasi N, I, Bil : integer Jml : integer Rata : integer Deskripsi Read (n) For i 1 to n do MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 33

Jml jml + i Endfor Rata = jml / n Write (rata) 5.5 Nested Loop Adalah sebuah perulangan yang berada di dalam perulangan yang lainnya. Perulangan yang lebih dalam akan diulang terlebih dahulu sampai habis, kemudian perulangan yang lebih luar akan diproses selanjutnya. Perulangan seperti ini bisa terdiri dari beberapa perulangan yang jenisnya sama ataupun berbeda. Percobaan 9 : Algoritma penggunaan nested loop Algoritma Nestedloop Deklarasi a,b : integer Deskripsi For a 1 to 5 do For b to 3 do Write( Kutunggu kedatanganmu ) Write ( aku rinduuuu ) Endfor Endfor MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 34

Percobaan 10 : Percobaan 11 : membuat segitiga bintang seperti gb. Dibawah ini : * ** *** **** ***** MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 35

5.6 Latihan Praktikum 1. Buatlah algoritma dan program untuk menentukan luas persegi panjang, luas segitiga, dan luas lingkaran. Lengkapi program dengan pilihan menu : 1. Luas persegi panjang 2. Luas segitiga 3. Luas lingkaran 4. Keluar Program Pada setiap pilihan menu, dibaca masing masing rumus untuk menghitung luas. Dan buat pilihan menu tersebut dapat dipilih secara berulang ulang kali dan berhenti berulang sampai memilih menu no.4 (keluar program) menggunakan struktur REPEAT UNTIL 2. Buatlah algoritma dan program untuk menghitung jumlah dan rata rata bilangan ganjil ke n yaitu (1 + 3 + 5 + 7 +... + n) 3. Buatlah algoritma dan program untuk menghitung jumlah dan rata rata bilangan genap ke n yaitu (2 + 4 + 6 + 8 +... + n) 4. Identifikasi program dibawah ini bagaimana hasil keluarannya buat simulasinya. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 36

5. Identifikasi program di bawah ini bagaimana hasil keluarannya dan buat simulasinya 6. Buatlah algoritma dan program untuk membuat segitiga bintang seperti di bawah ini * ** *** **** ***** **** *** ** * 7. Buatlah algoritma dan program untuk membuat segitiga bintang seperti di bawah ini * ** *** **** ***** Coba Lagi [y/n]? (jika y maka gambar bintang akan muncul lagi) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 37

BAB VI STUDI KASUS Buatlah algoritma dan program ATM untuk mengelola data tabungan nasabah, dengan format keluaran dan ketentuan sbb : { TAMPILAN AWAL PROGRAM } SELAMAT DATANG DI BANK KAMI SILAHKAN MASUKAN PIN ATM ANDA : (Diasumsikan PIN = 12345, Jika PIN Salah Muncul Pesan Kesalahan PIN ANDA SALAH ULANGI Y/N? jika pilih Y maka akan muncul menu transaksi, Jika PIN benar maka akan muncul menu transaksi) MENU TRANSAKSI : 1. SETOR 2. TARIK TUNAI 3. CEK SALDO 4. CETAK RESI (MENCETAK SISA SALDO TERAKHIR) 5. KELUAR PILIH TRANSAKSI (1/2/3/4/5) Ketentuan untuk setiap transaksi : 1. Jumlah Setoran tidak dibatasi bebas 2. Tarik tunai dibatasi, jika sisa saldo <= 10000 maka dana yang ada dalam rekening tidak dapat di tarik muncul pesan Mohon Maaf Anda Tidak Dapat Melakukan Penarikan, sisa saldo anda hari ini Rp.xxxx jika sisa saldo > 10000 tapi pada saat akan tarik tunai ternyata jumlah penarikannya dapat mengurangi saldo sampai <= 10000 maka dana yang ada dalam rekening juga tidak dapat di tarik, dan muncul pesan Mohon Maaf Anda Tidak Dapat Melakukan Penarikan Anda harus Menyisakan Dana dalam Rekening Anda minimal Rp.10000 jika jumlah penarikan melebihi sisa saldo, maka maka dana yang ada dalam rekening tidak dapat di tarik muncul pesan Mohon Maaf Anda Tidak Dapat Melakukan Penarikan, Sisa saldo anda hari ini Rp.xxxxx 3. Cek saldo, dapat menampilkan saldo terakhir transaksi dengan menampilkan pesan Sisa Saldo Anda Hari ini Rp.xxxxx 4. Cetak resi, mencetak sisa saldo terakhir dan besaran tarik tunai terakhir dengan format resi sbb : MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 38

PT. BANK KAMI TARIK TUNAI Rp.xxxxxx SISA SALDO REKENING ANDA Rp. xxxxx TERIMA KASIH ATAS KUNJUNGAN ANDA 5. Pemilihan menu transaksi dapat dilakukan berulang ulang kali dan berhenti pada saat user memilih menu no. 4 dan 5 6. User dapat melakukan transaksi setor dan tarik tunai berulang ulang kali selama kondisi pada aturan no.2 7. Jumlah saldo dapat dicek berulang ulang kali dan dapat menampilkan data yang sesungguhnya. Peraturan pengerjaan : 1. Study kasus dikerjakan secara berkelompok maksimal 4 orang dan minimal 2 orang 2. Pengerjaan dilakukan di kelas pada jam teori (untuk pembuatan algoritma) dan pada jam praktek (untuk pembuatan program) pada pertemuan ke 6 / ke 7 3. Hasil algoritma dan program dikumpulkan pada jam terakhir MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 39

BAB VII TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN PROCEDURE 7.1 Pendahuluan Teknik Pemrograman Modular adalah teknik pemrograman dengan memecah program menjadi beberapa sub program yang lebih kecil dan bersifat independen. Modularisasi program memberikan dua keuntungan yaitu : 1. Untuk aktivitas yang harus dilakukan lebih dari satu kali, modularisasi menghindari penulisan teks program yang sama secara berulangkali. Di sini modul program cukup ditulis sekali saja, lalu modul tersebut dapat diakses (diistilahkan dengan dipanggil atau called) dari bagian lain di dalam program 2. Dapat mengurangi panjang program, memudahkan menulis dan menemukan kesalahan (debug) program. Kemudahan menulis akan sangat berguna pada masalah besar yang dikerjakan oleh satu tim pemrogram yang beranggotakan beberapa orang, masalah yang akan diprogram dipecah menjadi beberapa masalah yang lebih kecil. Setiap masalah yang lebih kecil tersebut ditulis kedalam modul individual yang spesifik dan dikerjakan oleh orang yang berbeda. Seluruh modul diintegrasikan menjadi satu buah program yang lengkap. Program yang modular menjadi lebih mudah untuk dibaca dan dimengerti tidak seperti program yang tidak modular yang sulit dipahami, khususnya kalau program tersebut panjang dan terdiri dari puluhan, ratusan atau ribuan baris instruksi. Pemecahan program menjadi modul modul individual umumnya dianggap sebagai praktek pemrograman yang baik. Terdapat dua jenis teknik pemrograman modular, yaitu : 1. Prosedur (Procedure) 2. Fungsi (Function) Struktur setiap modul tersebut pada hakikatnya sama dengan struktur Program biasa, yaitu : 1. Bagian judul (Header) yang berisi nama modul. 2. Bagian Deklarasi untuk mendefinisikan type data yang akan digunakan. Bagian badan (Body) program yang berisi instruksi yang akan dilaksanakan. 7.2 Procedure Tanpa Parameter Definisi Prosedur Prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto, suatu efek netto diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur. Oleh karena itu pada setiap prosedur kita harus mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan akhir yang diharapkan setelah rangkaian instruksi dilaksanakan. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 40

Mendefinisikan dan Memanggil Prosedur Tanpa Parameter Notasi Algoritmik yang digunakan untuk mendefinisikan struktur prosedur (tanpa parameter) adalah : Procedure NAMA_PROSEDUR { berisi penjelasan tentang apa yang dilakukan oleh prosedur ini } { K.Awal : keadaan sebelum prosedur dilaksanakan } { K.Akhir : keadaan setelah prosedur dilaksanakan } DEKLARASI { semua nama yang dipakai dalam prosedur dan ahanya berlaku local di dalam prosedur didefinisikan disini } DESKRIPSI { badan prosedur, berisi kumpulan instruksi } Percobaan 1 : Procedure HIT_LUAS_SEGITIGA { menghitung luas segitiga dengan rumus L = ½ a x t } { K. Awal : sembarang } { K. Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran } DEKLARASI a : real t : real L : real DESKRIPSI read (a) read (t) L a * t / 2 Write (L) Prosedur bukan program yang berdiri sendiri, jadi ia tidak dapat dieksekusi secara langsung. Instruksi instruksi dalam prosedur dapat dilaksanakan bila prosedur tersebut diakses. Prosedur diakses dengan cara memanggil namanya dari program pemanggil (program utama atau modul program lain) Di dalam program pemanggil, kita harus mendeklarasikan prosedur pada bagian DEKLARASI yang hanya berisi bagian header prosedur nya saja, tujuannya supaya program pemanggil mengenal nama prosedur tersebut. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 41

Pemanggilan prosedur Program Utama untuk memanggil prosedur HIT_LUAS_SEGITIGA Program LUAS_SEGITIGA { Program utama untuk menghitung luas segitiga } DEKLARASI Procedure HIT_LUAS_SEGITIGA DESKRIPSI Write ( Menghitung luas sebuah segitiga ) HIT_LUAS_SEGITIGA Write ( selesai ) Nama nama (tetapan, peubah, tipe, dll) yang dideklarasikan dalam bagian DEKLARASI prosedur hanya dikenal dalam badan prosedur yang bersangkutan. Nama nama dalam bagian DEKLARASI prosedur tersebut dikatakan Nama Lokal sedangkan nama nama yang dideklarasikan dalam program utama disebut Nama Global, nama global dapat digunakan di bagian manapun di dalam program baik dalam program utama maupun dalam prosedur. MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 42

7.3 Procedure Dengan Parameter Penggunaan parameter menawarkan mekanisme pertukaran informasi antara prosedur dan titik dimana ia dipanggil. Tiap item data ditransfer antara parameter actual dan parameter formal yang bersesuaian. Parameter actual adalah parameter yang disertakan pada waktu pemanggilan, sedangkan parameter formal parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri. Ketika prosedur dipanggil, parameter actual menggantikan parameter formal. Tiap tiap parameter actual berpasangan dengan parameter formal yang bersesuaian. Notasi Algoritmik yang digunakan untuk mendefinisikan struktur prosedur (menggunakan parameter) adalah : Procedure NAMA_PROSEDUR (daftar parameter formal) { berisi penjelasan tentang apa yang dilakukan oleh prosedur ini } { K.Awal : keadaan sebelum prosedur dilaksanakan } { K.Akhir : keadaan setelah prosedur dilaksanakan } DEKLARASI { semua nama yang dipakai dalam prosedur dan ahanya berlaku local di dalam prosedur didefinisikan disini } DESKRIPSI { badan prosedur, berisi kumpulan instruksi } Prosedur dengan parameter diakses dengan cara memanggil namanya dari program pemanggil (program utama atau modul program lain) disertai parameter aktualnya. Aturan penting antara parameter actual dan parameter formal adalah : 1. Jumlah parameter actual pada pemanggilan prosedur harus sama dengan jumlah parameter formal pada deklarasi prosedurnya 2. Tiap parameter actual harus bertipe sama dengan tipe parameter formal yang bersesuaian 3. Tiap parameter actual harus diekspresikan dengan parameter formal yang bersesuaian, bergantung pada jenis parameter formal. Jenis jenis parameter formal yag disertakan dalam prosedur : 1. Parameter masukan (input parameter) 2. Parameter keluaran (output parameter) 3. Parameter masukan/keluaran (input/output parameter) MODUL BAHAN AJAR ALGORITMA DAN PEMROGRAMAN 43