You are on page 1of 36
Logika dan higoritma MATA KULIAH : LOGIKA DAN ALGORITMA DESKRIPSI SINGKAT MATA KULIAH Logika dan Algoritma merupakan mata kuliah yang menjelaskan dasar dari langkah- langkah dalam pemrograman cimana diberikan tahapan secara struktural dalam memecahkan masalah pemograman MATERI MATA KULIAH Struktur dasar Algoritma (Notasi, Kondis, Aksi), nama dan harga Tipe date dasar (Boolean, Integer, Real, Char, String) Tipe Bentuken (Record, Procedure, Fungi). Pengkoncisian (fendi, if else endif, case_endcase) Perintah Pengulangan (while_endvhile), (repeat_until) dan (for_endfor) Procedure (variabel global dan Lokal) dan parameter input, output dan input/output Function (parameter input dan output) Array (lark) DAFTAR PUSTAKA Niclause Wirth “Algorithm+Data StruktursProgram”, Prentice Hall, 1989 Knuth “Fundamental of Algorithm”, Addison Wisley, 1978 Harry R. Lewis and Larry Denenberg “Data Structures and Their Algorithms”, HarperCollins Publishers Inc, 1991 Inggriant Liem “Algoritma dan Pemrograman”, ITB, 1992 ‘Mewati Ayub, Ir “Dasar-Dasar Pernrograman”, DCI, 1994 Logika dan higoritma PENDAHULUAN PROGRAM KOMPUTER Program komputer adalah rangkaian kata perintah yang telah dimengerti oleh komputer untuk dikerjakannya. Kata-kata perintah tersebut membentuk suatu bahasa yang disebut dengan bahasa pemrograman. Sebagaimana bahase pada manusia, bahasa pemrograman juga terdirt atas banyak macam bahasa, dan memiliki aturannya masing-masing. Sulitnye, komputer saat ‘ni belum diberi hak inisiatif, sehingga jika ada secikit saja kesalahen penulisan perintah oleh pemrogram, ia tidak mau ‘memakluminya atau berusaha memperbaiki sendiri kesalahan tersebut. Serta merta ia “ngambek” dan tidak mau mengerjakan perintah-perintah lainnya. Komputer diciptakan melalui logika manusia, karenanya, ia bekerja secara logis, tanpa ‘campur-tangan “perasaan.” ALGORITMA PEMROGRAMAN Orang yang telah terbiasa “bergaul” dengan komputer menggunakan satu bahasa pemrograman tertentu (tingkat mahir), biasanya tidak lagi memerlukan Kertas coret-coretan untuk membuat suatu program komputer. Namun bagi pemula, pembelajar, atau yang belum mahir, diperlukan, kertas coret-coretan tersebut. Kertas coret-coretan itu akan digunaken untuk menyusun algoritma (langkah-langkah Penyelesaian maselzh), flowcharting (alur logika perintah, yang. merupakan aplikasi dari algoritma), maupun menuliskan perintah sesual dengan kaidah dari bahasa pemrograman yang akan digunakannya. Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perl menyesuaikan dengan) bahasa pemrogreman yang nanti akan kite guneken, Hal utema yang kita pikirkan adalah kaidah (hirark’) dari Komputer itu sendiri,yaitu input-proses-output. Input adalah data yang harus ada (sudah ada/ sudah tersedia), yang dapat diproses dengan aturan-aturan tertentu untuk menghasilkan output seperti yang dikehendaki. Data yang ada hharus logis (masuk akal) bahwa “ia” dapat diproses untuk menghasilkan output. PERLUNYA PERINTAH BAHASA PEMROGRAMAN DI DALAM ALGORITMA Meskipun sudah dikatakan, bahwa sewaktu kita menyusun algoritma kita tidak perlu tahu bahasa pemrograman apa yang akan digunakan kelak, namun, untuk penulisan algoritma yang. lebih efisien dan efektif, maka penggunaan sebagian perintah yang ada di dalam bahasa Pemrograman perlu dilakukan juga. ‘Adepun perintah bahasa pemrograman yang paling sering digunakan untuk menyusun algoritma adalah bahasa pemrogrman yang terstrukutur, seperti Pascal, C, COBOL, PL/1, dan sebagainya. Logika dan higoritma MATERI 4 STRUKTUR DASAR ALGORITMA 4.4 DEFINIS! Algoritma : Urutan dan langkah-langkah untuk menyelesaikan masalah dalam pemrograman, secara sistematis dan terperinci. ‘Tahapan Pembuatan Program — Mendefinisikan masalah dan menganalisanya. ‘Mencakup: tujuanpembuatanprogram, parameter yang digunakan, fasilitasyang disediakan, algoritma yang diterapkan dan behasaprogram yang digunakan, ~ Mereatisasikan dengan langkah-langkah dalam notasi algoritma. lotasi Algoritma: © Operasi Baca dan Tutis Read (x) berarti Baca variabel X ‘Write (X) berarti Menulis isi variabel x 2 Operasi Penugasan Tanda Penugasan © Notasi Pencabangan (Pengkondisian) IF (Kondisi) THEN (AKSI) ENDIF IF (Kondisi) THEN (AKSI-1) ELSE (AKSI-2) ENDIF © Notasi Pengulangan (lnisialisasi Awal) WHILE (Kondisi) DO. AKS| ENDWHILE Hakekataya Kondisi adalah ekpresi logika. Setiap ekpresi logika mempunyai 2 alternatif harge yaitu true dan false atau benar atau salah, Ekpresi logika bisa berupa operator ‘operator logika dan operator relasi aOperatorRelasi:> <0 Ee b. Operato Logika : And Or Not 1.2. ATURAN PENULISAN ALGORITMA + Judul Algoritma: ‘9 Berisi nama penjelasan algoritma © Deklarasi ‘0 Mendefinisikan semua tipe, veriable, fungsi dan prosedur + Algoritma o Bagian utama Algoritma 2 Sekumpulan perintzh untuk penyelesaian permasalahan © Ditulis dengan notasi tertentu (standar) Logika dan higoritma 1.3 STRUKTUR PENULISAN ALGORITMA, PROGRAM Nama Algoritma [Judul Program} DEKLARASI {Deklarasi semua variabel, function dan procedure} ALGORITMA {isi dari algoritma} Contoh : Tuliskan Algoritma untuk menuliskan atau mencetak "Hello World”. PROGRAM HelloWorld {Program untuk mencetak "Hello World”) DEKLARASI {tidak ada} ALGORITMA write(’Hello World’) LATIHAN 1 Buat algoritma untuk menampilkan name yang diinput dari piranti masukan atau keyboard yang diikuti dengan kalimat Hello! 2 Kathy adalah dosen mata kuliah Pemrograman Delhi, dia membutuhkan nilai rata~ rata dari Kelas yang diajarkannya, buat algoritma untuk menyelesatkan Permasalahan tersebut! Berikut ini tabel nilai siswa. No Siswa Score 1 26 2 38 3 5 4 67 5 B 3. Toko buku komputer melakukan diskon terhadap semua buku yang dijual dengan memberikan diskon sebesar 25 % dari harga buku yang dimasukan, buat algoritme Untuk menghitung diskon tersabut! 4, Buat algoritma untuk mencetak suhu derajat Celcius (C) dari suhu yang dimasukan dalam derajat Fahrenheit (F) dengan rumus : C= 5/9 (F-32) Logika dan higoritma MATERI 2 TIPE DATA DASAR DAN TIPE DATA BENTUKAN 2.4 TIPE DATA DASAR 4. Tipe Data Logika (Boolean) Nama tipe ini diambil dari nama matematikawan yaitu bernama George Boole Domain Nilai : [true, false] Nama Tipe: Boolean 2. Bilangan Bulat Bilangan yang sudah umum digunakan dalam kehidupan seheri-hari. Bilangan bulat adalah bilangan yang tidak mengandung pecahan desimal, misal : 32, 38, 123567, dst. Domain Nilai : Integer [-32768..32767] Nama Tipe: Integer Operasi Bilangan Bulat b. Operasi Aritmatika + (Tambah) = (Kurang) * (Kali) div (bagi) mod (sisa hasil bagi) ¢. Operasi Pembandingan < lebih kecil < lebih kecil atau same dengen > lebih besar lebih besar atau sama dengan sama dengan) tidak sama dengan 3. Bilangan Rill Bilangan Rill adalah bilangan yang mengandung pecahan desimal, misal 3.65, 3.45, 0.0004, dst Domain Nilai tidak terbates Tipe + real Operasi Bitangan Riil ’. Operasi Aritmatika + (Tambah) = (Kurang) * (kali) iv (bagi) mod (sisa hasil bagi) b. Operasi Pembandingan = lebih kecil lebih kecil atau sama dengan lebih besar lebih besar atau sama dengan sama dengan tidak sama dengen 4. Karakter Tipe ini adalah tipe yang termasuk dalam semua huruf-huruf abjad, semua tanda baca, angka '0’...'9, dan karakter-karakter Khusus seperti ’@", °"',"%","#", ..dst, Karakter kosong dilambangkan dengan tanda ”. Domain Nila: 'a',...'27,'A",.."Z",'0",..'9", dan karakter khusus lainnya Tipe char Operasi karakter Logika dan higoritma Operasi Pembandingan lebih kecit = lebih kecil atau sama dengan > \ebih besar 2 lebih besar atau sama dengan sama dengan tidak sama dengen 2.2 TIPE DATA BENTUKAN Tipe data bentukan adalah tipe data yang berasal atau disusun dari tipe data dasar 1 String String adalah uruten karakter dengan panjang tertentu, String merupakan gebungan dari tipe karakter Domain Nilai: nilai yang didefinisikan pada domain Karakter Nama Tipe: String Operasi String '2. Operasi Penggabungan b. Operasi Pembandingan lebin kecit lebih kecil atau sama dengen lebih besar lebih besar atau sama dengan sama dengan) tidak sama dengan Record Tipe terstruktur adalah tipe yang berbentuk rekaman (record). Rekaman disusun oleh satu atau lebih dua field yang tipe datanya tersusun dari tipe data dasar. Deklarasi : type variabelRekaman : < vart : tipe data dasar, var2: tipe data daser, contoh ‘type : mhs Pi mhs {cara mangakses data tipe record} P.npm mpm Logika dan higoritma MATERI 3 NOTASI PENCABANGAN 3.1, PENDAHULUAN 4 Notasi Pencabangan adalah notasi yang pada umumnya akan menyelesaikan suatu asus dengan beberapa alternatif pelaksanaan aksi. 4 Mengapa dibutuhken? 7 Untuk membantu dalam menentukan alternatif solusi pelaksanaan aksi yang akan dilakukan berdasarkan kondis! yang telah ditentukan, Algoritma Notasi Pencabangan dibagi berdasarkan kasus: 4 Satu Kasus (IF - THEN) 4 Dua Kasus (IF - THEN + ELSE) 4 Tiga Kasus atau lebih (|F - THEN - ELSE, CASE) 3.2. SATU KASUS (IF - THEN) Notasi algoritma untuk analisis dengan satu Kasus adalah dengan menggunakan konstruksi IF ‘THEN (jike-meka) dalam bentuk pernyataan: if kondisi the pernyataan endif Pernyataan sesudah kata then (dapat berupa satu atau lebih pernyataen) adalah aksi yang hhanya akan dilaksanakan bila kondisi bernilai benar (true). Bile kondisi bernilai salah (false), tidak ada pernyataan apapun yang dikerjakan. Kata endif sengaja ditambahkan untuk mempertegas aval dan akhir struktur IF-THEN. contoh-contoh: (@) fx» 100 then xisxe endif 0) «© CONTOH SATU KASUS 1. Buatlah algoritma yang membaca sebuah bilangan bulat dari suatu papan ketik, lalu mencetak pesan "Genap” jika bilangan tersebut adalah genap ! Buatlah algoritma untuk membaca sebuah karakter dan menentukan karakter yang dimasukan adalah karakter "4 Logika dan higoritma 3. Buatlah algoritma untuk membaca sebuah bilangan bulat dari suatu papan ketik, lalu mencetak pesan bahwa "Bilangan tersebut lebih besar dari 100” jika bilengan tersebut adalah lebih besar dari 1001 3.3. DUA KASUS (IF - THEN - ELSE) Notasi algoritma untuk analisis dengan dua kasus adalah dengan menggunakan konstruksi IF - ‘THEN - ELSE (jika-maka-kalau-tidak) dalam bentuk pernyataan: if kondisi then pernyataan, else pernyataan: endif pernyataan, dilaksanakan jike kondisi bemnilei benar, sebaliknya jika kondisi bernilai salah maka pernyataan, akan dilaksanakan, bisa diperhatikan bahwa else menyatakan ingkaran (negation) dari kondisi. contoh-contoh: ()— ifa-O then write(’bilangan posit") 2 write(’bukan bilangan positif") endif () if («mod 2 = 0) then write(’bilangan genap’) vwrite(bilangan ganjil’) endif CONTOH DUA KASUS 1. Buatlah algoritma yang membaca dua buah bilangan bulat deri piranti masuken, lalu menentukan bilangan yang terbesar! 2. Buatlah algoritma yang membaca angka tahun masehi dari papan kettk, (alu menentuken apakah tahun tersebut merupakan tahun kabisat! 3. Buatlah algoritma untuk menentukan bilangan yang dimasukan adalah habis ibagi 5, jika bilangan tersebut habis dibagi 5 maka pesan tertul's ‘bilangan habis dibegi 5 jika tidak 'bilangan tidak habis dibagi 5"! 3.4 TIGA KASUS atau lebih (IF - THEN - ELSE) Notasi algoritma untuk analisis dengan tiga kasus atau lebin adalah dengan menggunakan konstruksi IF - THEN - ELSE bertingkat-tingkat dalam bentuk pernyataan: Logika dan higoritma TIGA KASUS ENPAT KASUS if kondisi, then ‘if kondisi, then pernyataan, pernyataan, else else ‘if kondisi, then ‘if kondisi; then: pemyatean, pemystean, if kondisi; then if kondisi pernyata petryatean, endif else endif if kondisi, then encit pemyatecn. dan seterusnya untuk lima kesus, enam kasus,. Contoh Tulistah algoritma yang membaca sebuah bilangan bulat, lalu menentukan epakah bilangan tersebut positif, negatif atau nal! Analisa kasus: Kasus 1 : jika 0, maka x adalah bilangan positif Kasus 2: jika x0, maka x adalah bilangan negatif Kasus 3 : jika x=0, maka x adalah bilangan not PROGRAM BilanganPositifNegatifNol {[menentukan apakah sebuah bilangan bulat merupakan bilangan positif, negatif, atau nol} DEKLARAS! scinteger ALGORITMA read(x) ife> Othen write(‘positt”) alse fx 10) Tuliskan Algoritma untuk mencetak angka 1 sampai N; nila N dibaca terlebih dahulu (N-0)! Solusi: PROGRAM Tulis_1_sd_N {[menulisken angka 1 s/d N kali) DEKLARASI i + integer {pencacah pengulangan} No integer fpengulangan N kali) ALGORITMA Read(N) 1€1 finisialisast) while i 2 N do verite (i) ieiet endvhile ‘{kondisi berhenti: > N} Pernyataan FOR Pernyataan FOR digunakan untuk menghasilkan pengulangan sejumlah kali yang telah dispesifikesikan. Jumlah pengulangan ciketahui atau dapat ditentukan sebelum ‘eksekusi. Untuk mengetahui pengulangan yang akan dilakukan diperiukan_perubah (variabel) pencacah (counter). Perubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika pencaceh pengulangen sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti Bentuk Umum pernyataan FOR ada dua macam yaitu = FOR-TO-DO (ascending! menaik) = FOR-DOWNTO-0O (descending? menurun) FoR-TO-D0 for pencacah €nifei_ewel to nilej_ekhir do pernyatasn endfor keterangan: a) Pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer dan karakter. Tipe nil tidak dapat digunakan sebagai pencacah; bb) Pernyataan adalah satu atau lebih instruksi yang diulang: ©) nilai_awal harus lebih kecil atau sama dengan nile/_akhir. ike nilei_awal lebih besar dari niai_akhir, maka badan pengulangan tidak dimasuki Conteh Notasi Pengulangan dengan pernyataan FOR-TO-DO 8 Logika dan higoritma 1 Tuliskan Algoritma untuk mencetak tulisan "Algoritma” sebanyak 10 kali! Solust: PROGRAM Tulis_Algoritma [menuliskan pernyataan algoritma sebanyak 10 kali} DEKLARAS! 7 integer {pencacah pengulangen} ALGORITHA fori €1 to 10.do write ("Algoritma”) endfor {kondisi berhenti: i = 10} Tuliskan Algoritma untuk mencetak angka 1 sampai N; nila N dibaca terlebih dahulu (N-0)! Solust: PROGRAM Tulis_1_sd_N {[menuliskan angka 1 s/d N kali) DEKLARAS! 1+ integer (pencacah pengulangan} Nt integer (pengulangan N kal} ALGORITINA read(N) fori €1 ton do write (i) endfor ‘{kondisi berhenti: N} FOR-DOWNTO-DO for pencacsh €nilaj_ekhir downto nilai_awal do parnyateen encfor koterangant a) Pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer dan karakter. Tipe rill tidak dapat digunakan sebagai pencacah; b) Pernyataan adalah satu atau lebih instruksi yang diulang; ¢) ilai_akhir harus lebin bese atau sama dengan nila/_awal. like nilai_akhir lebih kecil dari nile/_awa/, maka badan pengulangan tidak dimasuki Conteh Notasi Pengulangan dengan pernyataan FOR-DOWNTO-DO 1 Tuliskan Algoritma untuk mencetak angka N sampai dengan 1; nilai N dibaca terlebih dahulu (+0)! Solusi: PROGRAM Tulis_Nso_t {menulisken angka N5/¢ 1 kali) DEKLARASI 7 intager {pencacah pengulangan} No integer {pengulangan N kali} “ Logika dan higoritma ALGORITMA aN) for i €N downto 1 do write () endfor {kondisi berhenti: i= 1) 2. Tutiskan. Algoritma untuk mencetak hitungan mundur sebuah roket yang dimulai dari 100,99,98, Solusi: PROGRAM Peluncuran_Roket [menuliskan angka dari 100,99,9 DEKLARASI integer {pencaceh pengulangan} ALGORITMA for i €100 downto 0 do. write (i) endfor {kondisi berhenti: i = 0} write (‘Go’) Pernyataan REPEAT Notasi Pengulangan REPEAT adalah sebagai berikut: i pemyatean until kondisi Penjelasan: Notasi ini berdasarkan pengulangan pada kondisi Boolean. Pernyataan di dalam badan pengulangan diulang-ulang sampai kondisi bernilai true. Dengan kata lain, jika kondisi masih false, proses pengulangan masih terus dilakukan. Karena proses pengulangan suatu saat harus berhenti, make di dalam badan pengulangan harus ada pernyataan yang mengubah nilai kendisi Contoh Notas Pengulangan dengan pernyataan REPEAT 1. Tuliskan Algoritma untuk mencetak tulisan "Algoritma” sebanyak 10 kalil Solusi: PROGRAM Tulis_Algoritma [menuliskan pernyataan algoritma sebanyak 10 kali}, DEKLARASI 7 integer {pencacah pengulangen) ALGORITMA i€t repeat ‘write ("Algoritma”) ieiet until f=10 6 Logika dan higoritma {kondisi berhenti: i> 10), 2. Tuliskan Algoritma untuk mencetak angka 1 sampai N; nilai N dibaca terlebih dahulu (N-O)! Solus PROGRAM Tulis_1_s¢_N {menuliskan angka 1 5/4 N kali) DEKLARAS! 7 integer {pencacah pengulangan} No integer {pengulangan N kali) ALGORITMA read(N) it repeat write (i) seit until Nt {kondisi berhenti: i> Nj Berikut ini Conteh dalam pengunaan Notasi pengulangan Contoh 1 Tuliskan algoritma untuk menghitung deret 1+2+3+..N, Nilai N dibaca terlebih dahulu (N>0). PROGRAM PenjumlahanDeret {Menjumlahkan deret 1+2+3+...4N dengan N adalah bilangan bulat posit. Nilai N dibaca terlebih dahulu.} DEKLARAS! N integer{banyaknya suku deret, >0} i integer/suku deret} jumlah : integer {jumlah deret} ALGORITMA read(N) benyaknya suku deret) jumlah € 0 finisialisasi vet while is N do jumlah € jumlah + i Gumlah deret} vere endwhile {iN} {kondisi setelah pengulangan berhenti) write jumlah) Conteh 2, ‘Tutiskan algoritma untuk menghitung nilai rata-rata N buah bilangan bulat yang dibaca dari papan ketik PROGRAM HitungRataRata {Menjumlahkan rata-rata N buah bilangan bulat yang dibaca dari papan ketik terlebih dahulu.} DEKLARAS! N-: integerfbanyaknya data, -0} 6 Logika dan higoritma x 1 integer{data bilangen bulat yang dibeca dari papan ketik) i integer{pencacah banyak data) jumlah : integer {integer} rerata. real ALGORITMA, read(N) {benyaknya data) jumlah © 0 finisialisasi) vet while i < N do read(x) jumlah © jumlah + x 1eiat endwhile ‘GeN) {Kondist setelah pengulangan berhenti} Ferata € jumlah/N write(rerata) LATIHAN 1. Buatlah Algoritma untuk menghitung Deret dibawah ini will 4°76 N Ns: deretan angka genap 2. Tuliskanlah algoritma untuk menentukan nilai terkecil dari N buah data integer yang ddibaca dari papan ketik. Nilai N dibaca terlebih dahulu (NO) 3 4.5 MESIN ABSTRAK ‘Mesin abstrak menggambarkan dalam suatu mesin terdapat pita yang bertipe karakter dan tipe numerik. Jka Pita bertipe karakter maka akhir dari pita tersebut ditandai dengan" . " atau slike Pita bertipe numerik maka diakhiri dari pita tersebut ditandai dengan 9999 slike Pita hanya berisi akhiran ’ .’, ’* ’ dan 9999 berarti pita kosong Contoh : Pita Karakter Read (Baca) w Logika dan higoritma Notesi Algoritme Pita bertipe Karakter Pita bertipe numerik {inisiatisasi} {inisiatisasi) read(x) read(x) while x#°*" do while x # 9999 do. aksi aksi readix) {dibaca kembalt isi mesin karakter} read(x) (dibaca kembali isi mesin numerik} endvhile enduhile (terminasi {terminasi) Contoh Kasus untuk Mesin Karakter Contoh 1: Didalam pita karakter terdapat sederatan karakter yang diakhiri dengan tanda algoritma untuk menampitkan deretan karakter tersebut! tuliskan illustrasi PROGRAM Menampilkankarakter {Menghitung jumlah karakter yang dimasukan} DEKLARAS! x; character{data character yang dibaca dari papan ketik} ALGORITMA. read(x) (baca data character) while x=" "do write(x) read(x) ‘endwhile (x =") {kondisi setelah pengulangan berhenti) Contoh 2: Didalam pita karakter terdapat sederatan karakter yang diakhiri dengan tanda ’* ’, tuliskan algoritma untuk menghitung jumlah karakter yang dimasukan! illustrasi Jumlah karakter adalah : 4 PROGRAM HitungJumlahKarakter {Menghitung jumlah karakter yang dimasukan} DEKLARAS! x character{data character yang dibaca dari papan ketik} jumlah : integer (integer) ALGORITMA. read(x) (baca data character} jumlah © 0 finisialisasi while x= '** do 8 Logika dan higoritma jumlah © jumlah = 1 read(x) endwht [x= 7") {kondis setelah pengulangan berhenti) ‘write(jumlah) Contoh Kasus untuk Mesin Numerik Contoh 1: Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung jumlah seluruh angha tersebut illustrasi 9999 -Jumlah seluruh angka tersebut adalah : 10 PROGRAM HitungJumlehangka {Menghitung jumlah selurun bilangan yang dimasukan} DEKLARAS! x —___: integer{data integer yang dibaca dari papan ketik} Jumlah ; integer integer} ALGORITMA, read{x) {baca data integer} jumlah © 0 finisialisasi) hile x + 9999 do jumlah © jumlah + x read(x) endwhile ‘{& = 9999} {kondisi setelah pengulangan berhenti} write(jumlah) Contoh 2: Diberikan mesin bertipe integer yang terdapat sederetan angka numerik yang dimasukan dan diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung banyaknya angka positif dari deretan angka tersebut! illustrasi Jumtah angka positif adalah : 2 PROGRAM BanyaknyadngkaPositif {Menghitung jumlah bilangan positif yang dimasukan} DEKLARAS! x integer{data integer yang dibaca dari papan ketik} jumlah : integer {integer} ALGORITMA 0 Logika dan higoritma read(x) {baca data integer} jumlah © 0 (insialisasi) while x = 9999 do ifx> Othen jumlah € jumtah = 1 endif read(x) endwhile 3999} chondie setelah pengulangen berhenti} vwrite(jumtah) LATIHAN Mesin Karakter 1. Diberikan mesin bertipe karakter yang terdapat sederetan karakter yang dimasukan ddan diakhiri tanda ' * * Tuliskan algoritma untuk menghitung karakter ’A’ yang dimasuken! Nustrasi [MT AT KT AT WT) Jumlah karakter A: 2 ‘Tuliskan algoritma untuk menghitung jumlah kemunculan pasangan huruf ‘an’ di dalam mmesin karakter. Misalkan pada contoh dibawah ini jumlah ’an’ ade 3 buah (ditandai dengan arsiran.) Nustrasi _P TAT NY] 0 PAT Nc TAT N] * ] Jumlah ‘an’ adalah : 3 Tuliskan Algoritma untuk menghitung banyaknya kata di dalam pita kerakter. Kata adalah deretan karakter bukan spasi yang diakhiri dengan spasi atau titik. Nustrasi H[A[RIT [ITN IT] [R[UlJ[AIN]. | Jumlah Kata adalah : 3 Mesin Integer 1 Diberikan mesin bertipe integer yang terdapat sederetan angke numerik yang dimasukan dan diakhiri dengan tanda 9999. tuliskan algoritma untuk menghitung nilai rata-rata angka tersebut! ‘usras Coss 6 [0 [a9 Diberikan mesin bertpe integer yang terdapat sederstan angka numeri yang tipe hasil {spesifikasi nama fungsi} Dektarasi {semua nama yang dipakai di dalam algoritma fungsi dideklarasikan di sini. Nama didefinisikan di dalam DEKLARASI lokal hanya dikenal dan dipakai di dalam fungsi ini saja } Algoritma { badan fungsi, berisi instruksi-instruksi untuk menghasilkan nilai yang akan dikembalikan fungsi } return hasil { pengembalian nilai yang dihasilkan fungst } PEMANGGILAN FUNGSI Fungsi diakses dengan cara memanggil namanya dari program pemanggil, ditkuti dengan daftar parameter aktual (bila ada). function Genap(input_n:integer)->boolean {mengembalikan nilai true jika n adalah bilangan genap, false jika sebaliknya DEKLARASI DESKRIPS! return (n mod 2 = 0) Program Bilangan_Genap 2 Logika dan higoritma Deklarasi bil: integer function Genap(input nzinteger)->boolean Deklara reeditil) if Genapibil) then write(n, * adalah bilangan genap’) else vwrite(n, * adalah bilangen genji’) endif PROCEDURE DAN FUNCTION © Fungsi digunakan apabila modul program mengembalikan sebuah nilai. © Prosecur digunakan bila modul menghasitkan effek netto dari (satu atau) sekumpulan aksi (© Fungsi dapat dikonversi sebagai prosedur dengan cara menyatakan nilai yang dikembalikan (return value) oleh fungsi tersebut sebagai parameter kelvaran pada prosedur. © Prosedur yang mempunyai satu buah parameter keluaran dapat ditulis sebagai fungsi dengan cara menyatakan parameter keluaran sebagai nilai yang dikembalikan oleh fungsi 2 Logika dan higoritma MATERI 6 ARRAY (LARIK) 6.1 PENDAHULUAN ‘© Adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama, setiap ‘elemen diakses langsung melalui indeksnya. ‘+ Indeks harus tipe data yang menyatakan keterurutan. Misal Integer atau Karakte 6.2 ARRAY llustrasi Array To [20 | 20 70 30 20 10 1 2 3 4 5 6 7 DEKLARASI LARIK + Mendefinisikan Larik di dalam DEKLARASI berarti mendefinisikan banyaknya elemen larik dan mendefinisikan tipe elemen larik. + Deklerasi sebagai variable ‘A adalah nama pengubah larik yang mempunyai 7 buah elemen yang bertipe integer. Indeks larik bertipe integer dan dimulai dari 1 DEKLARASI A: array(1..7] of integer DEKLARASI SEBAGA\ TIPE BARU + Larikint didefinisikan sebagai nama sebuah tipe baru untuk larik yang bertipe integer + Banyak elemen larik adalah 7 buah elemen + Sebuah larik integer yang bernama A dan berukuran 100 elemen dapat didefinisikan bertipe Larikint. DEKLARASI type Larikint : array [1..7] of integer A Larikint MENDEFINISIKAN LARIK ‘© Mendefinisikan ukuran maksimum elemen larik sebagai sebuah konstanta. Larikint didefinisiken sebagai nama sebuah tipe baru untuk larik yang berupa integer. Banyaknya elemen larik maksimum 7 buah elemen. Sebuah larik integer bernama A yang berukuran maksimum 7 elemen dapat didefinisikan bertipe Larikint, DEKLARASI const Nmaks = 7 TS 95, Logika dan higoritma type Larikint: array{1..Nmaks] of Integer As Larikint CARA MENGACU ELEMEN LARIK ‘© Contoh cara mengacu elemen larik: ALS] [mengacu elemen keempat dari larik A} ‘© Contoh cara memanipulasi atau menggunakan elemen larik: Ata] €10 {mengisi elemen keempat dari Larik A dengan nilai 10} PEMROSESAN LARIK ‘+ Pemrosesan beruntun pada larik adalah pemrosesan mulai dari elemen pertama larik. ‘+ Yaitu elamen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai ‘elemen terakhir dicapai, yaitu elemen dengan indeks terbesar. ALGORITMA DEKLARAS! const Nmaks = type Larikint : array[1..Nmaks] of integer A Larikint i integer ALGORITIAA {inisialisasi nila} jet while i s Nmaks do pemrosesan terhadap Ali) ietet enduhile {terminasi) ALGORITMA Pembacaan Elemen Matrik DEKLARAS! const Nmaks = 7 type Larikint : array[1..Nmaks] of integer A Larikint i 1 integer x integer ALGORIT#A {inisialisasinilai} jet while i s Nmaks do read(x) Atiex. ici enduile {terminasi} a Logika dan higoritma ALGORITMA Menuliskan Elemen Matrik DEKLARASI const Nmaks = 7 type Larikint: array[t..Nmaks] of integer Aor Lankint i 1 integer x Finteger ALGORITIAA {inisialisasinilai) iet while i s Nmaks do write(Afi) iGiet enduile {terminasi} CONTOH PENGGUNAAN ARRAY Diketehui sebuah integer array Tabint [1..8], yang telah terisi dengan nilai-nilai ujian mahasiswa seperti berikut ini: [50 [90 | 80 [70 | 60 [100] 90 | Tutiskan Algoritma untuk: a. Mencari Nilai Minimun dari Nilai Ujian Tersebut. b. Menghitung Total seluruh Nilai Tersebut. Solusi a. PROGRAM Nilai_Minimum DEKLARASI const Nm type Larikint: array[1..Nmin] of integer AC Lanikint i integer x :integer min: integer ALGORITMA [Pembacaan elemen array) 1e1 while i < Nmin do raad(x) Alex i€iet endwhile {menentukan nilat minimum} ria €A(t] ie2 while < Nmin do ‘if min> Afi] then 2 Logika dan higoritma min €Ali] endif ieiet endwhile write (‘ilai minimum adalah’, min) Solusi PROGRAM Hitung Total_Bilangan DEKLARAS! ‘const Nm type Larikint : array{1...lmin] of integer AC Larikint i sinteger x: integer jm: integer ALGORITIMA bacaan elemen array} 1e1 while i Nmin do reed(x) alijex ieiet endwhile {menentukan total) it jl 0 While i = Nmin do Jmlejml + Afi] ieiet endwhile write (nilai total adalah’, jel) LATIHAN PENGGUNAAN ARRAY 1. Diketahui sebuah integer array Tabint [1...8], yang talah terisi dengan nilai-nilai ujian mahasiswa seperti berikut ini: [50 [90 | 80 | 70 | 60 [100] 90 | 100 | ‘Tutiskan Algoritma untuk: a. Nencari Nilai Maksimum dari Nilai Ujen Tersebut. . Menghitung Nilat Rata-rata Nila Tersebut. 2. Diketahui sebuah integer array Tabint [1..8], yang telah terisi dengan nilai-nilai berikut ints (40 [90 | 50 | 70 | 60 | 100 30 | 100 | Tutiskan Algoritma untuk: ‘@, Menghitung banyeknya bilangan Genap dan Ganji, TS og Logika dan higoritma b. Menghitung banyeknya bilangan postif dan neqatit 6.3. ARRAY BERTIPE TERSTRUKTUR Algortma Array sebelumnya menggunakan tipe data sedarhana, Elemen Array juga bisa menggunakan Tipe data bentukan yaitu Record atau lebih dikenal dengan Tipe Terstruktur. Misalkan akan melakukan proses pengolahan data 100 orang mahasiswa, Data setiap mahasiswa terdiri dri NPM (Nomor Pokok Mahasiswa), Nama mahasiswa, dan IPK (Indeks prestasi Kumulatif Siswa). Struktur Lojiknya sebagai berikut: NPM Namatihs PK 1 [28007 Dina Rahmayanti 3.57 2 | eoar Catur Wulen 330 3 (28003 Bays Nisa 3.53 wn [ae0020 Riama wulandari 380 Struktur Array yang cideklarasikan sebagai berikut: DEKLARAS! ‘const Nmaks = 100 ‘type Mahasiswa : record Predefined Process Rincian operasi berada di tempat tung Akar tain Pangkat Dua Preparation Pemberian harga awal sw= Terminal Points Awral / akhir flowchart J Punched card Input / outuput yang menggunakan ( kartu beriubang Kartu Absen Gambar 1. Lanjutan 3 Logika dan higoritma ~ 4 VO yang menggunakan pita ‘magnatik SIMBOL ARTI CONTOH Dokumen VO dalam format yang dicetak catak _ Sip Upan a Magnetic Tape VO. yang menggunakan drum magnetik Magnetic Disk WO yang menggunakan disk ‘magnetik Update File Peaavai ‘Magnetic Drum Gambar 1 . Lanjutan ra Logika dan Algorttma SIMBOL ARTI CONTOH On-line Storage WO yang_menggunakan penyimpanan —akses ru langsung Pelenegan Punched Tape VO yang menggunakan pita kertas Berlubang Fille Petanggan Manual Input | Input yang _dimasukkan secara manual dari keyboard ee Masukkan | S— Tart Upan Display U Output _ yang _citampilkan pada terminal Manual Operation C] Operasi Manual Ketk Pesanan Penualan Gambar 1. Lanjutan 88 Logika dan higoritma SIMBOL, ARTI CONTOH Communication Link Transmisi data _ melalui channe! komunikasi, seperti Terminal ~—_ telepon Kemper Off-line Storage Penyimpanan tidak dapat dakses ‘oleh komputer secara langsung Gambar 1. Lanjutan 38

You might also like