Docstoc

013_Dasar Algoritma

Document Sample
013_Dasar Algoritma Powered By Docstoc
					                                                                                                     DAFTAR            ISI



                     MULTINET GLOBAL INFORMASI
                             (MUGIA)
                                                                         DAFTAR ISI
                         Situs Informasi, Bisnis dan Iklan
                                                                         1.   Konsep Dasar Algoritma
                                                                              1.1. Pengertian Algoritma
                                                                              1.2. Dasar-Dasar Algoritma
                   e-book free for visitor website mugianet.com                    1.2.1. Proses, Instruksi Dan Aksi
                                                                                   1.2.2. Struktur Dasar Algoritma
                                                                              1.3. Aturan Penulisan Algoritma
                                                                                   1.3.1. Kepala Algoritma
                                                                                   1.3.2. Deklarasi
                                                                                   1.3.3. Deskripsi
                                                                              1.4. Tipe Data Algoritma
                           DASAR-DASAR                                             1.4.1. Tipe
                                ALGORITMA                                                  1.4.1.1. Tipe Dasar
                                                                                           1.4.1.2. Tipe Bentukan
                                 e-book ver 1.0
                                                                                   1.4.2. Nama
                                                                                   1.4.3. Nilai
                                                                                           1.4.3.1. Pengisian Nilai Ke Dalam Nama Peubah
                                                                                           1.4.3.2. Ekspresi
                                                                                           1.4.3.3. Menulis Nilai Ke Piranti
                                                                              1.5. Contoh Pembuatan Algoritma
                              Diterbitkan Oleh :
                        MULTINET GLOBAL INFORMASI                        2.   Struktur Algoritma
                             www.mugianet.com                                 2.1. Runtunan
                                                                                    2.1.1. Pengaruh Urutan Instruksi
                                                                                    2.1.2. Contoh Algoritma Runtunan
                                                                              2.2. Pemilihan
                                                                                    2.2.1. Satu Kasus
                                                                                    2.2.2. Dua Kasus
                                     Penulis :                                      2.2.3. Tiga Kasus
                            FAJAR NUGRAHA, ST.                                      2.2.4. Struktur Case
                         e-mail : fanhebrink@yahoo.com                        2.3. Pengulangan
                                                                                    2.3.1. Struktur While – Do
                                                                                    2.3.2. Struktur Repeat – Until
                                                                                    2.3.3. Struktur For


                   Copyright © 2009, MULTINET GLOBAL INFORMASI

www.mugianet.com                                                  -1-   www.mugianet.com                                                   -2-
                                                                                                KOSEP DASAR ALGORITMA
 3.   Prosedur Dan Fungsi
      3.1. Prosedur
           3.1.1. Mendefinisikan Prosedur                               1.1.   PENGERTIAN ALGORITMA
           3.1.2. Pemanggilan
           3.1.3. Nama Global Dan Nama Lokal                            Saat ini dengan berkembangnya teknik pemrograman terstruktur dan berorientasi
           3.1.4. Parameter                                             objek, orang tidak lagi memecahkan masalah dengan langsung menulis programnya
      3.2. Fungsi                                                       dalam bahasa pemrograman. Orang mulai memikirkan suatu cara penyelesaian
           3.2.1. Mendefinisikan Fungsi                                 masalah yang akan diprogram dengan menekankan pada desain atau rancangan
           3.2.2. Pemanggilan Fungsi                                    yang mewakili pemecahan masalah tersebut. Desain menyajikan cara berpikir
                                                                        pemrogram dalam menyelesaikan masalah. Desain berisi urutan langkah-langkah
 4.   Pemrosesan Teks                                                   pencapaian solusi yang ditulis dalam notasi-notasi deskriptif. Urutan langkah-langkah
      4.1. Susunan Teks                                                 yang sistematis untuk menyelesaikan sebuah masalah dinamakan dengan algoritma.
      4.2. Tanda Akhir Teks
      4.3. Definisi Teks Kosong                                         Notasi untuk menuliskan algoritma disebut notasi algoritmik. Notasi algoritmik bukan
      4.4. Pembacaan Teks                                               notasi pemrograman, karena itu program dalam notasi algoritmik tidak dapat
                                                                        dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, program dalam notasi
 5.   Larik                                                             algoritmik harus diterjemahkan/ditranslasikan ke dalam notasi bahasa pemrograman
      5.1     Definisi Larik                                            yang dipilih.
      5.2.    Mendefinisikan Larik Dalam Deklarasi
      5.3.    Cara Mengacu Elemen Larik                                 Definisi algoritma adalah urutan langkah-langkah logis dalam penyelesaian masalah
      5.4.    Pemrosesan Larik                                          yang disusun secara sistematis
              5.4.1. Menginisialisasi Larik                             Atau berdasarkan Kamus Data Bahasa Indonesia terbitan Balai Pustaka 1988 :
              5.4.2. Mengisi Elemen Larik Dari Piranti Masukan          Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.
              5.4.3. Menulis Elemen Larik Dari Piranti Keluaran
      5.5.    Larik Bertipe Terstruktur                                 Kata logis merupakan kata kunci. Langkah-langkah tersebut harus logis, ini berarti
                                                                        nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-langkah yang
                                                                        tidak benar dapat memberikan hasil yang salah.

                                                                        Ciri-ciri penting sebuah algoritma menurut Donald E. Knuth adalah :
                                                                        1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
                                                                        2. Setiap langkah harus didefinisikan dengan tepat dan tidak ambiguous (tidak berarti
                                                                            dua).
                                                                        3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang
                                                                            diberikan kepada algoritma sebelum algoritma mulai bekerja.
                                                                        4. Algoritma mempunyai nol atau lebih keluaran (output). Keluaran ialah besaran
                                                                            yang memiliki hubungan dengan masukan.
                                                                        5. Algoritma harus efektif, setiap langkahnya harus sederhana sehingga dapat
                                                                            dikerjakan dalam sejumlah waktu yang masuk akal.


                                                                        1.2.   DASAR-DASAR ALGORITMA

                                                                        Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan suatu proses.
                                                                        Sebuah proses dikerjakan oleh pemroses menurut algoritma yang sudah ditulis.

www.mugianet.com                                                  -3-   www.mugianet.com                                                                 -4-
1.2.1. Proses, Instruksi dan Aksi                                                       3. Tuangkan isi dari gelas C ke dalam gelas B

Berdasarkan definisinya, algoritma disusun oleh sederetan langkah instruksi yang
logis. Tiap langkah instruksi tersebut mengerjakan suatu tindakan (aksi). Bila suatu
aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu
dikerjakan oleh pemroses. Efek pengerjaan suatu aksi dapat diamati dengan
membandingkan keadaan pada saat aksi belum dimulai (t0), dan keadaan pada saat
aksi selesai dikerjakan (t1).
                                                                                           Gelas A         Gelas B          Gelas C
t0 : keadaan sebelum aksi dikerjakan
    aksi                                                                                Keadaan akhir setelah pertukaran
t1 : keadaan setelah aksi dikerjakan

Sebagai contoh, perhatikan persoalan mempertukarkan isi dua buah gelas, A dan B.
Gelas A berisi air kopi, sedangkan gelas B berisi air susu. Kita ingin mempertukarkan
isi kedua gelas tersebut sehingga akhirnya gelas A berisi air susu dan gelas B berisi
air kopi.
Keadaan awal sebelum pertukaran
                                                                                           Gelas A         Gelas B          Gelas C

                                                                                        Dari keterangan gambar diatas dapat kita tuliskan sebagai berikut :

                                                                                        t0 : gelas A berisi air kopi, gelas B berisi air susu. (Gelas C masih kosong)
                                                                                            1. Tuangkan isi dari gelas A ke dalam gelas C
                                                                                        t1 : gelas A kosong, gelas C berisi air kopi.
   Gelas A         Gelas B          Gelas C
Proses pertukaran                                                                       t0 : gelas A kosong, gelas B berisi air susu, gelas C berisi air kopi.
1. Tuangkan isi dari gelas A ke dalam gelas C                                               2. Tuangkan isi dari gelas B ke dalam gelas A
                                                                                        t1 : gelas A berisi air susu, gelas B kosong.

                                                                                        t0 : gelas A berisi air susu, gelas B kosong, gelas C berisi air kopi.
                                                                                            3. Tuangkan isi dari gelas C ke dalam gelas B
                                                                                        t1 : gelas A berisi air susu, gelas B berisi air kopi. (Gelas C masih kosong)

                                                                                        Algoritma juga dipandang sebagai sebuah aksi yang disusun oleh beberapa aksi
                                                                                        lainnya yang lebih sederhana. Keadaan awal dari aksi pertama merupakan keadaan
   Gelas A       Gelas B          Gelas C                                               awal algoritma, sedangkan keadaan akhir dari aksi yang terakhir dikerjakan
2. Tuangkan isi dari gelas B ke dalam gelas A                                           merupakan keadaan akhir algoritma. Jika t0 adalah keadaan sebelum algoritma
                                                                                        dikerjakan dan t1 adalah keadaan sesudah algoritma dikerjakan, maka pada algoritma
                                                                                        pertukaran isi dua buah gelas adalah :

                                                                                        t0 : gelas A berisi air kopi, gelas B berisi air susu.
                                                                                            Algoritma Tukar Isi Gelas
                                                                                        t1 : gelas A berisi air susu, gelas B berisi air kopi.
   Gelas A         Gelas B          Gelas C
www.mugianet.com                                                                 -5-    www.mugianet.com                                                                -6-
                                                                                           Pemilihan

                                                                                           Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Untuk
 Algoritma Tukar_Isi_Gelas
                                                                                           memenuhinya maka diperlukan instruksi pemilihan yang ditulis dalam struktur umum :
                                                                                             If kondisi then
 Diberikan dua buah gelas, A dan B; Gelas A berisi air kopi, gelas B                            aksi
 berisi air susu. Pertukarkan isi kedua gelas itu sehingga gelas A berisi
 air susu, gelas B berisi air kopi.                                                        Dalam bahasa Indonesia, if berarti “jika” dan then artinya “maka”. Kondisi adalah
                                                                                           persyaratan yang dapat bernilai benar atau salah. Aksi hanya dilaksanakan apabila
 DESKRIPSI                                                                                 kondisi bernilai benar, sebaliknya bila kondisi salah maka aksi tidak dilaksanakan.
 1. Tuangkan isi dari gelas A ke dalam gelas C
 2. Tuangkan isi dari gelas B ke dalam gelas A                                             contoh :
 3. Tuangkan isi dari gelas C ke dalam gelas B                                                If Budi memperoleh juara kelas then
                                                                                                 Ayah akan membelikannya sepeda

                                                                                              If mobilmu rusak then
                                                                                                 Pakai saja sepeda motorku
1.2.2. Struktur Dasar Algoritma
                                                                                           Struktur pemilihan if – then hanya memberikan satu pilihan aksi bila kondisi dipenuhi
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah               (bernilai benar), dan tidak memberi pilihan aksi lain bila kondisi bernilai salah. Bentuk
tersebut dapat berupa runtutan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga          pemilihan yang lebih umum ialah memilih satu dari dua buah aksi bergantung pada
jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma        nilai kondisinya :
dapat dibangun dari tiga buah struktur dasar, yaitu :                                          If kondisi then
1. Runtutan (sequence).                                                                           aksi 1
2. Pemilihan (selection),                                                                      else
3. Pengulangan (repetition/looping).                                                              aksi 2
                                                                                           else artinya “jika tidak”. Bila kondisi bernilai benar, aksi 1 akan dikerjakan, tetapi jika
Runtutan                                                                                   tidak maka aksi 2 yang akan dikerjakan.

Sebuah runtutan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara   contoh :
berurutan sesuai dengan urutan penulisannya, yaitu sebuah instruksi dilaksanakan              If hari hujan then
setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan                   pergilah dengan naik beca
keadaan akhir algoritma Bila urutannya diubah, maka hasil akhir mungkin juga                  else
berubah. Perhatian runtutan instruksi yang dilambangkan dengan A1, A2, A3, A4 dan                pergilah dengan naik motor
A5 berikut :
         A1                                                                                Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pemilihannya
         A2                                                                                menjadi lebih rumit.
         A3
         A4                                                                                Contoh :
         A5                                                                                  If lampu pengatur lalu lintas berwarna merah then
                                                                                                anda harus berhenti
Mula-mula pemroses melaksanakan instruksi A1. Instruksi A2 dilaksanakan setelah              else
instruksi A1 selesai. Selanjutnya, instruksi A3 dilaksanakan setelah instruksi A2               If lampu pengatur lalu lintas berwarna kuning then
selesai. Demikian seterusnya sampai instruksi terakhir A5 dilaksanakan. Setelah                     anda boleh jalan tetapi dengan hati-hati
instruksi A5 selesai dilaksanakan, algoritma berhenti.                                          else
                                                                                                    anda boleh silahkan terus berjalan
www.mugianet.com                                                                    -7-    www.mugianet.com                                                                       -8-
Pengulangan
                                                                                          Algoritma Menulis_100_Kalimat
Salah satu kelebihan komputer adalah kemampuannya untukmengerjakan pekerjaan
yang sama berulang kali tanpa mengenal lelah. Ini berbeda dengan manusia yang             Menulis kalimat “Saya berjanji tidak akan nakal dan malas lagi”
cepat lelah bila mengerjakan pekerjaan yang sama berulang-ulang. Tidak hanya lelah        sebanyak 100 kali
tetapi juga cepat bosan yang tingkat kesalahan yang tinggi.
                                                                                          DESKRIPSI :
Sewaktu duduk di sekolah dasar, anda mungkin pernah dihukum oleh Guru untuk                 pencatat_jumlah_kalimat = 0
menuliskan sebuah kalimat sebanyak 100 kali, karena anda nakal atau tidak membuat           repeat
PR. Misalkan kalimat tersebut adalah : Saya berjanji tidak akan nakal dan malas lagi.          tulis “Saya berjanji tidak akan nakal dan malas lagi”
                                                                                               naikkan pencatat_jumlah_kalimat dengan 1
Bila pekerjaan menulis kalimat ini diserahkan kepada komputer, maka pemrogram               until pencatat_jumlah_kalimat = 100
mungkin menuliskan algoritmanya sebagai berikut :


  Algoritma Menulis_100_Kalimat
                                                                                        1.3.   ATURAN PENULISAN ALGORITMA
  Menulis kalimat “Saya berjanji tidak akan nakal dan malas lagi”
  sebanyak 100 kali                                                                     Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
                                                                                        dapat ditulis dalam notasi apapun, asalkan mudah dimengerti dan dipahami. Tidak
                                                                                        ada notasi yang baku dalam penulisan teks algoritma sebagaimana pada bahasa
  DESKRIPSI
                                                                                        pemrograman. Tiap orang dapat membuat aturan penulisan dan notasi algoritmik
  1.  Tulis “Saya berjanji tidak akan nakal dan malas lagi”
                                                                                        sendiri. Namun, agar notasi algoritmik mudah ditranslasikan ke dalam bahasa
  2.  Tulis “Saya berjanji tidak akan nakal dan malas lagi”                             pemrograman, maka sebaiknya notasi algoritmik tersebut berkoresponden dengan
  3.  Tulis “Saya berjanji tidak akan nakal dan malas lagi”                             notasi bahasa pemrograman secara umum.
  .
  .                                                                                     Contoh :
                                                                                           Tulis nilai X dan Y
  .                                                                                     Notasi algoritmiknya menjadi
  99. Tulis “Saya berjanji tidak akan nakal dan malas lagi”                                Write (X,Y)
  100. Tulis “Saya berjanji tidak akan nakal dan malas lagi”
                                                                                           Baca nilai X dan Y
                                                                                        Notasi algoritmiknya menjadi
Tentu saja penulisan algoritma seperti ini merupakan pekerjaan yang kurang tepat,
                                                                                           Read (X,Y)
karena instruksi Tulis “Saya berjanji tidak akan nakal dan malas lagi”
harus kita tulis di dalam teks algoritma sebanyak yang diperintahkan Guru. Untuk
                                                                                           Isikan nilai X ke dalam Y
mengatasi hal ini, maka kita dapat menggunakan struktur pengulangan repeat – until
                                                                                        Notasi algoritmiknya menjadi
(repeat artinya ulangi sedangkan until artinya sampai) sehingga algoritma menulis 100
                                                                                           Y X
buah kalimat dapat ditulis berikut ini :
                                                                                        Pada dasarnya, teks algoritma selalu disusun oleh tiga bagian (blok) yaitu : bagian
                                                                                        kepala (header) algoritma, bagian deklarari dan bagian deskripsi. Setiap bagian
                                                                                        disertai dengan komentar untuk memperjelas maksud teks yang dituliskan. Komentar
                                                                                        adalah kalimat yang diapit oleh pasangan tanda kurung kurawal ( { } )




www.mugianet.com                                                                 -9-    www.mugianet.com                                                              - 10 -
  Algoritma Nama_Algoritma                                                               DEKLARASI
  {penjelasan tentang algoritma, yang berisi uraian singkat mengenai                       {Nama tetapan}
  apa yang dilakukan oleh algoritma}                                                       Const NPeg = 100 {jumlah pegawai}
                                                                                           Const Phi = 3,14 {nilai π}
  DEKLARASI
  {semua nama yang dipakai, meliputi nama tipe, nama tetapan, nama                          {Nama tipe}
  peubah, nama prosedur dan nama fungsi didefinisikan di sini}                              Type titik : record                 {koordinat titik dibidang kartesian}
                                                                                                         < X : integer
  DESKRIPSI :                                                                                               Y : integer
  {semua langkah/aksi algoritma dituliskan disini}                                                       >

                                                                                            {Nama peubah}
                                                                                            c = char                      {karakter yang dibaca}
                                                                                            ketemu = boolean              {keadaan hasil pencarian}
1.3.1. Kepala Algoritma                                                                     function Apakah_A(input c : char)    boolean
                                                                                            {mengembalikan nilai true bila c adalah karakter ‘A’, atau false bila
Kepala algoritma adalah bagian yang terdiri atas nama algoritma dan penjelasan              sebaliknya}
(spesifikasi) tentang algoritma tersebut. Nama algoritma sebaiknya singkat namun
cukup menggambarkan apa yang dilakukan oleh algoritma tersebut. Dibawah nama                procedure Tukar(input/output A : integer, input/output A : integer)
algoritma disertai dengan penjelasan singkat (intisari) tentang apa yang dilakukan          {mempertukarkan nilai A dan B}
algoritma. Penjelasan dibawah judul algoritma sering dinamakan juga spesifikasi             {parameter A dan B sudah terdefinisi nialinya}
algoritma. Algoritma harus ditulis sesuai dengan spesifikasi yang didefinisikan.            {setelah pertukaran, A berisi nilai B semula, B berisi nilai A semula}
Contoh :

                                                                                       1.3.3. Deskripsi
  Algoritma Menghitung_Nilai_Rata_Rata
  {penjelasan tentang algoritma, yang berisi uraian singkat mengenai                   Deskripsi merupakan bagian inti dari suatu algoritma. Bagian ini berisi uraian langkah-
  apa yang dilakukan oleh algoritma}                                                   langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan notasi. Setiap
                                                                                       langkah algoritma dibaca dari atas ke bawah. Urutan penulisan menentukan urutan
                                                                                       pelaksanaan perintah.
Dalam penulisan teks algoritma, huruf besar maupun hurup kecil tidak merupakan
suatu keharusan. Sebaiknya tidak menggunakan spasi ( “ “) untuk memisahkan antar       Contoh :
kata di dalam nama algoritma, sebab nantinya akan ada manfaatnya terutama untuk
judul program dalam bahasa Pascal.
                                                                                         DESKRIPSI
                                                                                           read(c,d)
1.3.2. Deklarasi                                                                           if c < d e  a+b
                                                                                              e    a+b
Deklarasi nama adalah bagian untuk mendefinisikan semua nama tyang dipakai                 else
dalam algoritma. Nama tersebut dapat berupa nama tetapan, nama peubah, nama                   e    a-b
tipe, nama prosedur dan nama fungsi.
                                                                                           endif
                                                                                           write (e)
Contoh :
www.mugianet.com                                                              - 11 -   www.mugianet.com                                                                  - 12 -
1.4.   TIPE DATA ALGORITMA                                                                 Tipe bilangan bulat adalah tipe yang memiliki keterurutan. Ini artinya, bila sebuah nilai
                                                                                           bilangan bulat diketahui, nilai sebelumnya (predesesor) dan nilai sesudahnya
Pada umumnya, program komputer bekerja dengan memanipulasi obyek (data) di                 (successor) dapat ditentukan. Contohnya predesesor 9 adalah 8 dan successornya
dalam memori. Obyek yang akan diprogram bermacam-macam jenis atau tipenya,                 adalah 10. Jika a adalah peubah bertibe bilangan bulat, maka predesesor(a) = a – 1
misalnya char, string dan record.                                                          dan successor(a) = a + 1.

                                                                                           Operasi yang dapat dilakukan pada bilangan bulat ada dua macam yaitu operasi
1.4.1. Tipe                                                                                aritmatika dan operasi perbandingan.
                                                                                           a. Operasi aritmatika
Tipe data dapat dikelompokkan menjadi dua macam yaitu tipe dasar dan tipe                      Operasi aritmatika pada bilangan bulat akan menghasilkan nilai yang bertipe
bentukan. Suatu tipe diacu dari namanya, nilai-nilai yang dicakup oleh tipe tersebut           bilangan bulat juga. Operator aritmatika, diantaranya :
dinyatakan di dalam ranah (domain) nilai. Operasi-operasi (beserta operator) yang              +        (tambah)
dapat dilakukan terhadap tipe tersebut juga didefinisikan.                                     _        (kurang)
                                                                                               *        (kali)
1.4.1.1. Tipe Dasar                                                                            div      (bagi)
                                                                                               mod      (sisa hasil bagi)
Tipe dasar merupakan tipe yang dapat langsung dipakai. Tipe dasar sudah dikenal                Operator div (devide) adalah operator khusus untuk bilangan bulat yang
dalam kehidupan sehari-hari. Kita hampir setiap hari berbicara tentang angka-angka             memberikan hasil pembagian dalam bilangan bulat, sedangkan operator mod
dan karakter. Dalam dunia pemrograman, yang termasuk ke dalam tipe dasar adalah                (modulo) memberikan sisa hasil pembagian. Didalam notasi algoritmik kita tidak
bilangan logika, bilangan bulat, bilangan riil dan karakter.                                   mengenal operator pembagian / untuk tipe integer.
                                                                                               Contohnya :
Bilangan Logika                                                                                7+3              (hasil : 10)
                                                                                               100 - 10         (hasil : 90)
Nama tipe bilangan logika adalah boolean. Bilangan logika hanya mengenal dua buah              7 * 10           (hasil : 70)
nilai yaitu benar (true) atau salah (false) istilah bilangan muncul karena kita dapat          10 div 3         (hasil : 3)
menyatakan nilai benar dengan angka 1 dan nilai salah dengan angka 0 (atau                     10 mod 3         (hasil : 1)
sebaliknya). Maka tetapan (constant) yang terdapat pada tipe ini adalah true dan false.
                                                                                           b. Operasi perbandingan
Operasi-operasi yang bisa dilakukan terhadap tipe boolean dikenal dengan operasi              Operasi perbandingan pada bilangan bulat akan menghasilkan nilai boolean (true
logika yaitu not, and, or dan xor.                                                            atau false). Operator perbandingan, diantaranya :
                                                                                              <         (lebih kecil)
Jika a dan b sebagai peubah (variable) yang bertipe boolean, maka hasil operasi               ≤         (lebih kecil atau sama dengan)
logika a dan b adalah :                                                                       >         (lebih besar)
        A           B      Not B        A and B        A or B      A xor B                    ≥         (lebih besar atau sama dengan)
      true        true      false          true           true       false                    =         (sama dengan)
      true       false       true         false           true        true                    ≠         (tidak sama dengan)
     false        true      false         false           true        true                    Contohnya :
     false       false       true         false          false       false                    3<8                 (hasil : true)
                                                                                              74 > 101            (hasil : false)
                                                                                              9≤9                 (hasil : true)
Bilangan Bulat
                                                                                              9<9                 (hasil : false)
                                                                                              17 = 17             (hasil : true)
Bilangan bulat adalah bilangan yang tidak mengandung pecahan desimal, misalnya
                                                                                              (24 div3) ≠ 8       (hasil : false)
34, 8, 0, -5, -28 dan lain-lain. Nama tipe bilangan bulat adalah integer. Rentang
nilainya adalah dari minus tidak hingga sampai plus tidak hingga asalkan setiap
nilainya tidak mengandung titik desimal. Didalam algoritma bisa didefinisikan
jangkauannya misalkan {0 .. 100}.
www.mugianet.com                                                                  - 13 -   www.mugianet.com                                                                    - 14 -
Bilangan Riil                                                                                 Operasi yang dilakukan pada tipe karakter adalah operasi perbandingan yaitu sebagai
                                                                                              berikut :
Bilangan riil adalah bilangan yang mengandung pecahan desimal, misalnya 3.65 ,                   <       (lebih kecil)
0005, 29.03 dan lain-lain. Bilangan riil dapat juga dituliska dengan notasi E yang               ≤       (lebih kecil atau sama dengan)
                                                                                     -6
artinya perpangkatan sepuluh. Misalnya 2.60240000E-6 artinya 2.60240000 X 10 .                   >       (lebih besar)
Baik tipe bilangan bulat maupun tipe bilangan riil, keduanya juga tipe numerik (angka).          ≥       (lebih besar atau sama dengan)
                                                                                                 =       (sama dengan)
Nama tipe bilangan riil adalah real. Secara teoritis tipe bilangan riil memiliki jangkauan       ≠       (tidak sama dengan)
nilai yang tidak terbatas. Rentang nilainya adalah dari minus tidak hingga sampai plus
tidak hingga.Tipe bilangan riil harus ditulis dengan tanda titik desimal.                     Contohnya :
                                                                                                ‘m’ < ‘z’           (hasil : true)
Operasi yang dapat dilakukan pada bilangan riil ada dua macam yaitu operasi                     ‘a’ = ‘a’           (hasil : true)
aritmatika dan operasi perbandingan.                                                            ‘z’ = ‘Z’           (hasil : false)
a. Operasi aritmatika                                                                           ‘x’ ≠ ‘X’           (hasil : true)
    Operasi aritmatika pada bilangan riil dengan sembarang operator akan
    menghasilkan nilai yang bertipe bilangan riil juga. Operator aritmatika, diantaranya:     Seperti halnya tipe bilangan bulat, tipe karakter juga mempunyai keterurutan
    +         (tambah)                                                                        (successsor dan predesesor) yang ditentukan oleh cara pengkodeannya didalam
    _         (kurang)                                                                        komputer misalnya kode ASCII.
    *         (kali)
    /         (bagi)
    Contohnya :                                                                               1.4.1.2. Tipe Bentukan
    6.4 + 5.7        (hasil : 12.1)
    8.0 – 2.8        (hasil : 5.2)                                                            Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram. Tipe bentukan
    10 / 3           (hasil : 3.333...)                                                       disusun oleh satu atau lebih tipe dasar. Ada tiga macam tipe bentukan yaitu : tipe
    7.2 * 0.5        (hasil : 4.0)                                                            dasar, tipe dasar yang diberi nama dengan nama tipe baru dan rekaman (record).

b. Operasi perbandingan                                                                       String
   Operasi perbandingan pada bilangan riil akan menghasilkan nilai boolean (true
   atau false). Operator perbandingan, diantaranya :                                          String adalah deretan karakter dengan panjang tertentu. Contoh-contoh string yaitu :
   <         (lebih kecil)                                                                    ‘saya belajar algoritma’ , ‘ Sukabumi’ , ‘Poltek BBC’, dan lain-lain. Karakter adalah
   ≤         (lebih kecil atau sama dengan)                                                   string dengan panjang 1. Nama tipe string adalah string. Semua string harus diapit
   >         (lebih besar)                                                                    oleh tanda petik tunggal.
   ≥         (lebih besar atau sama dengan)                                                   Contoh string yang lainnya :
   ≠         (tidak sama dengan)                                                              “MATA KULIAH ALGORITMA’
   Contohnya :                                                                                ‘Manajemen Informatika’
   0.003 < 0.3         (hasil : false)                                                        ‘.....................................’
   8.0 ≥ 5             (hasil : true)                                                         ‘James Bond’
   3.0 ≠ 3.5           (hasil : true)                                                         ‘007’
Karakter                                                                                      Operasi pada tipe string ada dua macam yaitu :
Yang termasuk dalam karakter adalah huruf-huruf alfabet, tanda baca, angka dan                a. Operasi penyambungan (concatenation)
karakter khusus. Nama tipe untuk karakter adalah char. Karakter yang baku terdapat               Operator yang digunakan adalah +. Operator + bukanlah operator penjumlahan
dalam tabel ASCII.                                                                               seperti pada tipe numerik (integer atau real), tapi maksudnya adalah untuk
Untuk penulisan karakter harus diapit oleh tanda petik tunggal                                   penyambungan. Bila a dan b adalah peubah bertipe string, maka a + b sama
Contoh : ‘a’ ‘z’ ‘.’ ‘+’ ‘9’ ‘$’                                                                 dengan ab.
Ingat bahwa ‘9’ adalah karakter, tetapi 9 adalah integer.
www.mugianet.com                                                                     - 15 -   www.mugianet.com                                                                - 16 -
   Contoh :                                                                               Contoh :
   ‘Manajemen” + “Informatika’ = ‘ManajemenInformatika’                                   NilMhs adalah nama tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa
   ‘Manajemen’ + “ Informatika = ‘Manajemen Informatika’                                  untuk suatu mata kuliah (MK) yang ia ambil. Data setiap mahasiswa adalah NIM,
   ‘1’ + ‘2’ = ‘12’                                                                       nama mahasiswa, mata kuliah yang diambil dan nilai mata kuliah tersebut.
b. Operasi perbandingan
   Operator yang digunakan adalah :                                                             NIM          NamaMhs                KodeMk             Nilai
   <           (lebih kecil)
   ≤           (lebih kecil atau sama dengan)                                             Cara penulisan tipe NilMhs adalah :
   >           (lebih besar)                                                                Type NilMhs      : record
   ≥           (lebih besar atau sama dengan)                                                                   < NIM           :   integer   {Nomor Induk Mahasiswa}
   =           (sama dengan)                                                                                       NamaMhs      :   string    {nama mahasiswa}
   ≠           (tidak sama dengan)                                                                                 KodeMk       :   string    {kode mata kuliah}
                                                                                                                   Nilai        :   char      {indeks nilai mata kuliah (A/B/C/D/E)}
   Operator relasional, seperti halnya pada karakter, menghasilkan nilai boolean yaitu                          >
   true atau false.
   Contoh :                                                                               1.4.2. Nama
   ‘abcd’ = ‘abc’     (hasil : false)
   ‘aku’ < ‘AKU’      (hasil : true)                                                      Di dalam algoritma, nama dipakai sebagai pengidentifikasi sesuatu dan pemrogram
                                                                                          mengacu sesuatu itu melalui namanya. Karena itu setiap nama haruslah unik, tidak
   String yang disusun oleh gabungan numerik dan karakter sering dinamakan                boleh ada dua buah nama yang sama.
   alfanumerik. Misalnya ‘XYZ007’, ‘abc123’ dan lain-lain. Karena tipe string banyak
   dipakai dalam pemrograman, maka string dapat diperlakukan sebagai tipe dasar           Sesuatu yang diberi nama dapat berupa :
                                                                                          a. Peubah (variable)
Tipe Dasar Yang Diberi Nama Baru                                                             Peubah adalah tempat penyimpanan data/informasi di memori yang isinya dapat
                                                                                             diubah.
Kita dapat memberi nama baru untuk tipe dasar dengan menggunakan kata kunci                  Contoh :
type. Cara penulisan untuk tipe baru tersebut tidak berubah, tetap sama dengan tipe
dasar aslinya.                                                                                 DEKLARASI
Contoh :                                                                                         x, nilai_ujian, jumlah : real
   Type BilBulat : integer                                                                       k : integer
                                                                                                 c : char
   Keterangan :
   BilBulat adalah tipe bilangan bulat yang sama deangan tipe integer. Apabila kita
   mempunyai sebuah peubah (variable) yang bernama X dan bertipe BilBulat,                b. Tetapan (constant)
   peubah X tersebut sama saja bertipe integer.                                              Tetapan adalah tempat penyimpanan di dalam memori yang isinya tetap selama
                                                                                             pelaksanaan program dan tidak dapat diubah. Notasi untuk menyatakan tetapan
Rekaman (record)                                                                             adalah const.
                                                                                             Contoh :
Rekaman disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar
tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama                DEKLARASI
rekaman ditentukan oleh pemrogram. Karen strukturnya yang disusun oleh field-filed,              Const phi = 3.14
maka rekaman dinakam juga tipe terstruktur (structured type)                                     Const Nmaks = 100
                                                                                                 Const sandi = ‘xyz’
       Field 1         Field 2         Field 3         ..........      Field n



www.mugianet.com                                                                 - 17 -   www.mugianet.com                                                                      - 18 -
c. Tipe bentukan                                                                           Nilai yang diberikan kepada nama peubah dapat berupa tetapan, nilai nama
   Nama tipe bentukan diberikan oleh pemrogram.                                            peubah lain, atau nilai ekspresi. Nilai tersebut harus sama dengan tipe peubahnya.
   Contoh :                                                                                Notasi agoritmik untuk pengisian nilai adalah
                                                                                           Contoh :
      DEKLARASI
        type titik : record <x:real,y:real>                                                  DESKRIPSI
        type jam : record                                                                      K   5
                        <hh : integer, (0..23)                                                 Ketemu  false
                         mm : integer, (0..59)                                                 C   A+B
                         dd : integer, (0..59)
                        >
                                                                                        b. dibaca dari piranti masukkan
                                                                                           mengisi nilai dari piranti masukan dinamakan operasi pembacaan data. Di dalam
d. Nama fungsi yang digunakan.                                                             algoritma, instruksi pembacaan niai untuk nama peubah dilakukan dengan notasi
   Contoh :                                                                                read.
                                                                                           Notasi algoritmik untuk pembacaan nilai dari piranti masukan sebagai berikut :
      DEKLARASI                                                                            Read (nama1, nama2, ...., namaN)
        function maksimum (A,B : integer)   integer                                        Dengan syarat nama1, nama2 ..., namaN sudah dideklarasikan tipenya di dalam
        {mengembalikan nilai terbesar antara A dan B}                                      DEKLARASI.
                                                                                           Contoh :

e. Nama prosedur yang digunakan.                                                             DESKRIPSI
   Contoh :                                                                                    Read(X)
                                                                                               Read(a1, a2, a3)
      DEKLARASI                                                                                Read(NIM, Nama_Mhs, Alamat)
        procedure tukar (input/output A,B : integer)
        {mempertukarkan nilai A dan B}

                                                                                        1.4.3.2. Ekspresi

1.4.3. Nilai                                                                            Suatu nilai dipakai untuk proses transformasi menjadi keluaran yang diinginkan.
                                                                                        Transfromasi nilai menjadi keluaran dilakukan melalui suatu perhitungan. Cara
Nilai adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa isi yang     perhitungan itu dinyatakan dalam suatu ekspresi. Ekspresi terdiri dati operand dan
disimpan oleh nama peubah atau nama tetapan, nilai dari hasil perhitungan atau nilai    operator. Operand adalah nilai yang dioperasikan dengan operator tertentu, bisa
yang dikirim oleh fungsi. Nilai yang dikandung oleh peubah dimanipulasi antara lain     berupa tetapan, nama peubah, nama tetapan atau hasil dari suatu fungsi. Dikenal tiga
dengan cara mengisikannya ke dalam peubah lain yang bertipe sama, dipakai untuk         macam ekspresi yaitu ::
perhitungan atau dituliskan ke piranti keluaran.                                        a. ekspresi aritmatik
                                                                                           ekspresi numerik adalah ekspresi yang baik operandnya bertipe numerik dan
1.4.3.1. Pengisian Nilai Ke Dalam Nama Peubah                                           hasilnya juga bertipe numerik.
                                                                                        Misalkan dedefinisikan deklarasi sebagai berikut :
Peubah menyimpan sebuah nilai dari tipe tertentu. Sebuah nilai dapat dimasukkan ke
dalam nama peubah dengan dua buah cara, yaitu :                                           DEKLARASI
a. pengisian nilai secara langsung (assigment)                                              a, b, c : Real
   pengisian nilai secara langsung adalah memasukkan sebuah nilai kedalam nama              d       : Integer
   peubah langsung didalam teks algoritma.                                                  i, j, k : Integer
   Notasi pengisian secara langsung adalah

www.mugianet.com                                                               - 19 -   www.mugianet.com                                                                - 20 -
Contoh ekspresi numerik, misalnya :
    a*b                                                                                              write(nama1, nama2, ...., namaN)
hasil evaluasi ekspresi tersebut juga bertipe real. Pada ekspresi ini, operandnya                    write(tetapan)
adalah a dan b, sedangkan operatornya adalah *. Bila hasil perhitungan disimpan ke                   write(nama, tetapan, ekspresi)
dalam nama peubah, maka nama peubah tersebut haruslah bertipe sama dengan tipe                       write(ekspresi)
hasil. Pengisian evaluasi ekspresi a * b ke dalam nama peubah c melalui pengisian
nilai :
    c a*b
adalah benar, tetapi jika pengisian nilai                                                     1.5.   CONTOH PEMBUATAN ALGORITMA
    d a*b
tidak dibenarkan karena d bertipe integer.                                                    Buatkan algoritma untuk mencetak string ‘ Hallo semua, saya belajar algoritma’ ke
b. ekspresi relasional                                                                        piranti keluaran.
    ekspresi relasional adalah ekspresi dengan operator <, ≤, >, ≥, = dan ≠, not, and,
or, dan xor. Hasil evaluasi ekspresi adalah nilai bertipe boolean (true atau false)           Solusi :
Misalkal didefinisikan DEKLARASI sebagai berikut :
                                                                                               Algoritma Cetak_Hallo
  DEKLARASI
                                                                                               {mencetak string ‘Hallo semua, saya belajar algoritma’}
    Ketemu, besar        : boolean
    x, y                 : Integer
                                                                                               DEKLARASI
Misalkan pula ketemu telah bernilai false ada bernilai true, x bernilai 8 dan bernilai 12,     {tidak ada}
maka. Contoh-contoh ekspresi boolean adalah :                                                  DESKRIPSI
   not ada               (hasil : false)                                                          Write(‘Hallo semua, saya belajar algoritma’)
   ada and true          (hasil : true)
   x<5                   (hasil : false)                                                      LATIHAN :
   ada or (x = y)        (hasil : true)                                                          1. Buatkan algoritma diatas dengan versi yang lainnya.
                                                                                                 2. Dibaca nama seseorang dari piranti masukan, lalu tampilkan ucapan “Hallo”
c. ekspresi string                                                                                  yang diikuti dengan nama orang tersebut. Buatkan algoritmanya untuk kasus
ekspresi string adalah ekspresi        dengan operator      +. Misalkan didefinisikan               tersebut.
DEKLARASI sebagai berikut :
  DEKLARASI
    kar : char
    s   : string
Maka contoh ekspresi string yang menggunakan peubah di dalam DEKLARASI
tersebut misalnya :
    (s+kar) + ‘c’                {operasi penyambungan karakter/string}
    ‘Jl. Otto Iskandardinta ‘ + ‘No. 007’


1.4.3.3. Menuliskan Nilai Ke Piranti Keluaran

Nilai yang disimpan memori dapat ditampilkan ke piranti keluaran (misal monitor).
Instruksi penulisan nilai dilakukan dengan notasi write.



www.mugianet.com                                                                     - 21 -   www.mugianet.com                                                             - 22 -
                          STRUKTUR ALGORITMA                                            Algoritma Runtunan_2
                                                                                        {contoh algoritma yang menghasilkan keluaran yang berbeda jika
                                                                                        urutan instruksi nya diubah}
2.1.   RUNTUNAN (SEQUENCE)
                                                                                        DEKLARASI
Algoritma merupakan runtunan satu atau lebih instruksi, yang berarti bahwa:               A, B : integer
        Tiap instruksi dikerjakan satu persatu;
                                                                                        DESKRIPSI
        Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang;
        Urutan isntruksi yang dilaksanakan pemroses sama dengan urutan aksi               A    10
        sebagaimana yang tertulis di dalam teks algoritmanya                              B    A
        Akhir dari instruksi terakhir merupakan akhir algoritma.                          A    2*A
                                                                                          Write(B)
Bila runtunan instruksi dalam algoritma berturut-turut dilambangkan dengan A1, A2,        {nilai B yang dicetak ke piranti keluaran adalah 10}
dan A3, maka urutan pelaksanaan instruksi tersebut adalah seperti diagram dibawah
ini :
                                         A1                                            2.1.2. Contoh Algoritma Runtunan

                                        A2                                             Menghitung luas segitiga. Luas sembarang segitiga adalah setengah dari panjang
                                                                                       alas dikali tinggi. Panjang alas dan tinggi segitiga dibaca dari piranti masukan. Luas
                                        A3                                             segitiga dicetak ke piranti keluaran.
                                                                                       Buatkan algoritma untuk menghitung luas segitiga !
2.1.1. Pengaruh Urutan Instruksi
                                                                                       Solusi:
Urutan instruksi di dalam algoritma adalah penting. Urutan instruksi yang berbeda       Algoritma Luas_Segitiga
dalam runtunan dapat menghasilkan keluaran yang berbeda pula.                           {dibaca panjang alas (a) dan tinggi (t). Hitunglah luas segitiga tersebut,
Perhatikan algoritma runtunan_1 dengan algoritma runtunan_2 berikut ini :               untuk alas dan tinggi tertentu. Luas segitiga dihitung dengan rumusnya
                                                                                        L = ½ at. Nilai L dicetak ke piranti keluaran}
 Algoritma Runtunan_1
 {contoh algoritma yang menghasilkan keluaran yang berbeda jika                         DEKLARASI
 urutan instruksi nya diubah}                                                             a : real         {panjang alas segitiga, dalam satuan cm}
                                                                                          t : real         {tinggi segitiga, dalam satuan cm}
 DEKLARASI                                                                                L : real         {luas segitiga, dalam satuan cm2}
   A, B : integer
                                                                                        DESKRIPSI
 DESKRIPSI                                                                                Read(a)
   A    10                                                                                Read(b)
   A    2*A                                                                               L   a*t/2
   B    A                                                                                 Write(L)
   Write(B)                                                                            Latihan :
   {nilai B yang dicetak ke piranti keluaran adalah 20}                                        Menghitung banyaknya komisi yang diterima seorang salesman berdasarkan
                                                                                               jumlah penjualan yang dicapainya. Salesman itu mendapat komisi 10% dari
                                                                                               hasil penjualannya. Masukan algoritma adalah nama salesman dan jumlah
                                                                                               penjualan yang dicapainya. Tampilkan ke piranti keluaran nama salesman dan
                                                                                               besar komisi yang diperolehnya.

www.mugianet.com                                                              - 23 -   www.mugianet.com                                                                 - 24 -
2.2.   PEMILIHAN (SELECTION)                                                              Contoh analisis dengan satu kasus :
                                                                                          Dibaca sebuah bilangan bulat dari papan kunci. Tuliskan algoritma untuk menentukan
Di dalam suatu program, adakalanya suatu aksi hanya dilakukan bila memenuhi               pesan “bilangan genap” jika bilangan tersebut adalah genap. Bilangan genap adalah
persyaratan tertentu. Jadi dalam memecahkan masalah kita harus menganalisis               bilangan yang habis dibagi dengan 2 (sisa = 0).
kasus-kasus apa saja yang mungkin ada.
Menganalisis kasus dari suatu masalah artinya menentukan kondisi boolean (bernilai        Solusi :
true atau false) dan menentukan aksi yang dilakukan jika kondisi tersebut berlaku.
Kondisi boolean adalah ekspresi relasional yang bernilai true atau false tergantung        Algoritma Bilangan_Genap
pada nilai masing-masing operand yang terlibat di dalamnya.                                {Mencetak pesan “bilangan genap” jika sebuah bilangan bulat yang
                                                                                           dibaca dari piranti masukan merupakan bilangan genap}
Contoh ekspresi relasional :
  X>Y
  A ≠ 10                                                                                   DEKLARASI
  Ketemu = true                                                                              bil : integer

Aksi yang dikerjakan bila kondisi boolean memenuhi dapat berupa pengisian nilai            DESKRIPSI
(assignment), kalkulasi, baca, tulis dan sebagainya.                                         Read(bil)
                                                                                             If bil mod 2 = 0 then
2.2.1. Satu Kasus                                                                                Write(‘bilangan genap’)
                                                                                             endif
Notasi algoritmik untuk analisis dengan satu kasus adalah dengan menggunakan
struktur IF – THEN :
                                                                                          2.2.2. Dua Kasus
 If <kondisi> then
    Aksi                                                                                  Notasi algoritmik untuk analisis dengan dua kasus adalah dengan menggunakan
 Endif                                                                                    struktur IF – THEN - ELSE:

                                                                                           If <kondisi> then
Aksi sesudah kata then (dapat satu atau lebih satu) hanya akan dilaksanakan bila
                                                                                              Aksi1
<kondisi> bernilai benar (true). Bila <kondisi> bernilai salah (false), tidak ada aksi
yang dilaksanakan. Kata endif sengaja ditambahkan untuk mempertegas awal dan               Else
akhir struktur if – then.                                                                     Aksi2
                                                                                           Endif
Contoh :
       If x > 100 then
         x=x+1                                                                            Aksi1 akan dilaksanakan jika <kondisi> bernilai benar, tetapi jika kondisi bernilai salah,
        endif                                                                             aksi2 yang akan dilaksanakan. Perhatikan bahwa bahwa else menyatakan ingkaran
       If ada = false then                                                                (negation) dari kondisi.
         Read(a)
         Write(a)                                                                         Contoh :
       endif                                                                                     If a > 0 then
       If (ketemu = true) then                                                                     Write(‘bilangan positif’)
         If a < 10 then                                                                          else
             Read (b)                                                                              Write(‘bilangan bukan positif’)
         endif                                                                                    endif
       endif
www.mugianet.com                                                                 - 25 -   www.mugianet.com                                                                     - 26 -
Contoh analisis dengan dua kasus :                                                       Contoh analisis dengan tiga kasus :
Dibaca sebuah bilangan bulat. Tuliskan algoritma untuk menampilkan pesan “bilangan       Dibaca sebuah bilangan bulat. Tentukan apakah bilangan tersebut positif, negatif atau
genap” jika bilangan tersebut adalah genap, atau “bukan bilangan genap” jika bilangan    nol. Buatkan algoritmanya.
tersebut tidak termasuk dalam bilangan genap
                                                                                         Solusi :
                                                                                         Misalkan bilangan bulat itu adalah bil. Analisis kasusnya adalah :
Solusi :
                                                                                         Kasus bil > 0 maka bil adalah bilangan positif; Kasus bil < 0 maka bil adalah bilangan
                                                                                         negatif; Kasus bil - 0 maka bil adalah bilangan nol; Sehingga algoritmanya adalah :
 Algoritma Bilangan_Genap
 {Mencetak pesan “bilangan genap” jika sebuah bilangan bulat yang                         Algoritma Bilangan_Genap
 dibaca dari piranti masukan merupakan bilangan genap, dan pesan                          {Mencetak pesan “bilangan positif” jika sebuah bilangan bulat yang
 “bukan bilangan genap jika bilangan tersebut tidak termasuk bilangan                     dibaca dari piranti masukan a>0, atau “ bilangan negatif”, jika bilangan
 genap}                                                                                   tersebut < 0, atau “nol” jika bilangan tersebut = 0}
                                                                                          DEKLARASI
 DEKLARASI
                                                                                            bil : integer
   bil : integer
                                                                                          DESKRIPSI
 DESKRIPSI                                                                                  Read(bil)
   Read(bil)                                                                                If bil > 0 then
   If bil mod 2 = 0 then                                                                        Write(‘bilangan positif’)
       Write(‘bilangan genap’)                                                              Else
   Else                                                                                         If bil < 0 then
       Write(‘bukan bilangan genap’)                                                               Write(‘bilangan negatif’)
   endif                                                                                        Else
                                                                                                   If bil > = 0 then
                                                                                                       Write(‘nol’)
                                                                                                   Endif
2.2.3. Tiga Kasus
                                                                                                endif
Notasi algoritmik untuk analisis dengan tiga kasus adalah dengan menggunakan                endif
struktur IF – THEN - ELSE:

 If <kondisi1> then                                                                      2.2.4. Struktur CASE
    Aksi1                                                                                Untuk masalah dua kasus atau lebih, struktur CASE dapat menyederhanakan
 Else                                                                                    penulisan IF – THEN – ELSE yang bertingkat-tingkat sebagaimana pada contoh
    If <kondisi2> then                                                                   sebelumnya.
       Aksi2                                                                             Struktur case adalah :
    Else                                                                                 Case (nama)
       If <kondisi3> then                                                                   <kondisi1> : Aksi1
          Aksi3                                                                             <kondisi2> : Aksi2
       Endif                                                                                .
                                                                                            .

    Endif                                                                                   .

                                                                                           <kondisiN> : AksiN
 Endif
                                                                                           [Otherwise aksiX]
                                                                                         Endcase

www.mugianet.com                                                                - 27 -   www.mugianet.com                                                                 - 28 -
<kondisi1>, <kondisi2>, ...., <kondisiN> bernilai benar atau salah. Tiap kondisi          2.3.1. Struktur WHILE – DO
diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi
yang benar. Jika kondisi ke K benar, maka aksi ke k dilaksanakan. Kondisi berikutnya      Bentuk umum struktur WHILE – DO adalah :
yaitu kondisi k+1 dapat lebih dari satu, karena itu ia berupa runtunan. Jika tidak ada
satupun <kondisi> yang benar, maka aksi sesudah otherwise dikerjakan.                         While <kondisi> do
                                                                                                AKSI
Contoh analisis dengan CASE:                                                                  endwhile
Dibaca sebuah bilangan bulat. Tuliskan algoritma untuk menampilkan pesan “bilangan
genap” jika bilangan tersebut adalah genap, atau “bukan bilangan genap” jika bilangan
                                                                                          Penjelasan :
tersebut tidak termasuk dalam bilangan genap
                                                                                          Aksi (atau runtunan aksi) akan dilaksanakan berulangkali sepanjang <kondisi>
                                                                                          boolean masih tetap bernilai true. Jika <kondisi> bernilai false, badan pengulangan
Solusi :
                                                                                          tidak akan dilaksanakan. Pengulangan selesai.
 Algoritma Bilangan_Genap                                                                 Contoh :
 {Mencetak pesan “bilangan genap” jika sebuah bilangan bulat yang                         Misalkan kita ingin mencetak tulisan “HALLO” sebanyak 3 kali. Maka algoritmanya
 dibaca dari piranti masukan merupakan bilangan genap, dan pesan                          adalah :
 “bukan bilangan genap jika bilangan tersebut tidak termasuk bilangan
 genap}                                                                                    Algoritma Cetak_Banyak_Hallo
                                                                                           {Mencetak kata “HALLO” sebanyak 3 kali}
 DEKLARASI
   bil : integer                                                                           DEKLARASI
                                                                                             k : integer                     {pencacah pengulangan}
 DESKRIPSI
   Read(bil)                                                                               DESKRIPSI
                                                                                             k   1                           {inisialisasi}
   case bil
      bil mod 2 = 0 : write(‘bilangan genap’)                                                While k ≤ 3 do
      bil mod 2 ≠ 0 : write(‘bukan bilangan genap’)                                            write(‘HALLO’)
   endcase                                                                                     k    k+1
                                                                                             endwhile                        {kondisi berhenti : k > 3}
                                                                                          Keterangan :
2.3.   PENGULANGAN (REPETITION/LOOPING)                                                   Pada mulanya, k diisi dengan nilai 1. Sebelum memasuki badan pengulangan, kondisi
                                                                                          k ≤ 3 diperiksa apakah bernilai true. Karena 1 ≤ 3 bernilai true, maka
Didalam algoritma, pengulangan (repetition/loop) dapat dilakukan sejumlah kali, atau      pernyataan write(‘HALLO’) dilaksanakan, sehingga keluaran yang tercetak
sampai kondisi berhenti pengulangan tercapai.
                                                                                          HALLO
Struktur pengulangan terdiri atas dua bagian :
        Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk             Demikian seterusnya sebanyak 3 kali. Setiap kali badan pengulangan
        melaksanakan pengulangan.                                                         dimasuki, nilai k bertambah 1 sampai nilai k = 4. karena 4 > 10 maka
        Badan pengulangan, yaitu satu atau lebih aksi yang akan diulang.                  kondisi pengulangan k ≤ 3 bernilai false. Pengulangan dihentikan.

Bagian lain yang menyertai pengulangan yaitu :                                            Jadi keluaran algoritma tersebut adalah :
        Inisialisasi yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama
        kali.                                                                             HALLO
        Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai                  HALLO
        dilaksanakan.                                                                     HALLO
www.mugianet.com                                                                 - 29 -   www.mugianet.com                                                              - 30 -
2.3.2. Struktur REPEAT – UNTIL                                                       a. FOR menaik (ascending)

Bentuk umum struktur REPEAT – UNTIL adalah :                                             For peubah      nilai_awal to nilai_akhir do
    Repeat                                                                                  AKSI
      AKSI                                                                               Endfor
    until <kondisi>
                                                                                     Keterangan :
Penjelasan :                                                                            Peubah haruslah bertipe sederhana kecuali tipe real
Notasi ini mendasarkan pengulangan pada kondisi berhenti. Aksi didalam badan            Nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal lebih
pengulangan diulang sampai kondisi boolean bernilai true, dengan kata lain, jika         besar dari nilai_akhir, maka badan pengulangan tidak dimasuki.
kondisi berhenti masih salah, pengulangan masih terus dilakukan. Karena                 Pada awalnya peubah diinisialisasi dengan nilai_awal. Nilai peubah secara
pengulangan harus berhenti, maka di dalam badan pengulangan harus ada aksi yang          otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya
mengubah harga kondisi.                                                                  nilai peubah sama dengan nilai_akhir.
                                                                                        Jumlah pengulangan yang terjasi adalah nilai_akhir – nilai_akhir + 1.
Perbedaan mendasar dengan struktuw WHILE – DO adalah aksi dilaksanakan minimal
1 kali, karena kondisi pengulangan diperiksa pada akhir struktur.                    Contoh :
                                                                                      Algoritma Cetak_Banyak_Hallo
Contoh :                                                                              {Mencetak kata “HALLO” sebanyak 3 kali}
Misalkan kita ingin mencetak tulisan “HALLO” sebanyak 3 kali. Maka algoritmanya
adalah :                                                                              DEKLARASI
                                                                                        k : integer                     {pencacah pengulangan}
 Algoritma Cetak_Banyak_Hallo                                                         DESKRIPSI
 {Mencetak kata “HALLO” sebanyak 3 kali}                                                k    1                          {inisialisasi}
                                                                                        for k   1 to 3 do
 DEKLARASI
                                                                                           write(‘HALLO’)
   k : integer                   {pencacah pengulangan}
                                                                                        endfor                          {kondisi berhenti}
 DESKRIPSI
   k   1                         {inisialisasi}
                                                                                     b. FOR menurun (descending)
   Repeat
     write(‘HALLO’)
     k    k+1                                                                            For peubah      nilai_akhir downto nilai_awal do
   endwhile k > 3                {kondisi berhenti : k > 3}                                 AKSI
                                                                                         Endfor


2.3.3. Struktur FOR                                                                  Keterangan :
                                                                                        Peubah haruslah bertipe sederhana kecuali tipe real
Struktur for digunakan untuk menghasilkan pengulangan sejumlah kali tanpa               Nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir lebih
penggunaan kondisi apapun. Struktur ini menyebabkan aksi diulangi sejumlah kali          besar dari nilai_awal, maka badan pengulangan tidak dimasuki.
(tertentu)                                                                              Pada awalnya peubah diinisialisasi dengan nilai_akhir. Nilai peubah secara
                                                                                         otomatis berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai peubah
Bentuk umum struktur FOR ada 2 macam yaitu :                                             sama dengan nilai_awal.
                                                                                        Jumlah pengulangan yang terjadi adalah nilai_awal – nilai_akhir + 1.

www.mugianet.com                                                            - 31 -   www.mugianet.com                                                               - 32 -
Contoh :                                                                                                            PROSEDUR DAN FUNGSI
 Algoritma Cetak_Banyak_Hallo
 {Mencetak kata “HALLO” sebanyak 3 kali}
                                                                                           Program yang besar perlu dipecah dalam sub-sub program (modul). Setiap modul
 DEKLARASI                                                                                 dapat dirancang oleh pemrogram selain dari orang yang mengembangkan program
   k : integer                      {pencacah pengulangan}                                 utama. Modul yang sudah ditulis dapat dipasang ke program lain yang
                                                                                           membutuhkannya. Teknik seperti ini dinamakan teknik pemrograman modular.
 DESKRIPSI
   k    1                           {inisialisasi}                                         Modularisasi program memberikan 2 keungtungan yaitu :
   for k   3 downto 0 do                                                                     Untuk aktivitas yang dilakukan lebih dari satu kali, modularisasi menghindari
      write(‘HALLO’)                                                                         penulisan teks program yang sama secara berulangkali.
   endfor                           {kondisi berhenti}                                       Kemudahan menulis dan menemukan kesalahan (debug) program.

                                                                                           Terdapat 2 jenis modul program yaitu : prosedur (procedure) dan fungsi (function).
                                                                                           Struktur setiap modul sama dengan struktur algoritma.
LATIHAN :
  Misalkan kita ingin mencetak angka 1, 2, ..., 50 di layar, dengan satu angka pada
  setiap baris. Buatkan algoritmanya dengan struktur pengulangan while – do, repeat        3.1.   PROSEDUR
  – until dan for.
  Misalkan kita ingin mencetak angka 1, 2, ..., N di layar, dengan satu angka pada         Prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan
  setiap baris, yang dalam hal ini N dibaca dari piranti masukkan. Buatkan                 menghasilkan efek netto dengan membandingkan keadaan awal dan keadaan akhir
  algoritmanya dengan struktur pengulangan while – do, repeat – until dan for.             pada pelaksanaan sebuah prosedur.
  Hitung jumlah angka dari 1 sampai N. nilai N dibaca dari papan kunci. Misalkan N =
  5, maka 1 + 2 + 3 + 4 + 5 = 15. Buatkan algoritmanya dengan struktur pengulangan
  while – do, repeat – until dan for.                                                      3.1.1. Mendefinisikan Prosedur
  Data bilangan dibaca dari papan kunci. Nilai rat-rata adalah jumlah seluruh
  bilangan debagi dengan banyak bilangan. Misalkan ada 5 buah data bilangan,               Pada dasarnya, struktur prosedur sama dengan struktur algoritma. Setiap prosedur
  yaitu 12, 10, 6, 2, 4 maka rata-ratanya adalah (12 + 10 + 6 + 2 + 4 )/5 = 34/5 = 6,8.    mempunyai nama unik dan sebaiknya nama prosedur diawali dengan keta kerja.
  Hitung rata-rata dari sejumlah data bilangan bulat tersebut. Buatkan algoritmanya
  dengan struktur pengulangan while – do, repeat – until dan for.                          Notasi algoritmik yang digunakan untuk mendefinisikan struktur prosedur (tanpa
                                                                                           parameter adalah :

                                                                                            Procedure Nama_Prosedur
                                                                                            {Spesifikasi prosedur, berisi penjelasan tentang            yang    dilakukan
                                                                                            prosedur}
                                                                                            {K.awal : keadaan sebelum prosedur dilaksanakan}
                                                                                            {K.akhir: keadaan setelah prosedur dilaksanakan }
                                                                                            DEKLARASI
                                                                                            {semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di
                                                                                            dalam prosedur didefinisikan}
                                                                                            DESKRIPSI
                                                                                            {badan prosedur berisi kumpulan instruksi}


www.mugianet.com                                                                  - 33 -   www.mugianet.com                                                             - 34 -
Contoh :                                                                            3.1.3. Nama Global dan Nama Lokal
Buat prosedur untuk mencetak string “HALLO” ke piranti keluaran :
                                                                                    Nama-nama (tetapan,peubah, tipe, dll) yang dideklarasikan di dalam bagian
Solusi :                                                                            DEKLARASI prosedur hanya dikenal di dalam nama prosedur yang bersangkutan
 Procedure Cetak_Hallo                                                              yang disebut bersifat lokal. Sedangkan nama-nama yang dideklarasikan di dalam
 {mencetak string “HALLO” ke piranti keluaran}                                      program utama dikatakan bersifat global.
 {K.awal : sembarang}
                                                                                    Nama yang dideklarasikan di dalam prosedur dan di dalam program utama mungkin
 {K.akhir: string “HALLO” tercetak}
                                                                                    saja sama, namun sifat lokal dan globalnya tetap tidak berubah. Nama peubah yang
 DEKLARASI                                                                          dideklarasikan di dalam program utama dan juga dideklarasikan di dalam prosedur,
 {tidak ada}                                                                        maka di dalam prosedur nama tersebut adalah peubah lokal, dan di luar prosedur ia
                                                                                    berlaku sebagai peubah global.
 DESKRIPSI
   Write(‘HALLO’)
                                                                                    3.1.4. Parameter

                                                                                    Penggunaan parameter menawarkan mekanisme pertukaran informasi, tiap item data
3.1.2. Pemanggilan Prosedur                                                         ditransfer antara parameter aktual dan parameter formal yang bersesuaian. Parameter
                                                                                    aktual adalah parameter yang disertakan pada waktu pemanggilan, sedangkan
Prosedur bukan program yang berdiri sendiri, ia tidak dapat dieksekusi secara       parameter formal adalah parameter yang dideklarasikan di dalam bagian header
langsung tetapi harus diakses dengan cara memanggil namanya dari program            prosedur itu sendiri.
pemanggil (program utama atau modul program lain).
                                                                                    Notasi algoritmik yang digunakan untuk mendefinisikan struktur prosedur dengan
Didalam program pemanggil, kita harus mendeklarasikan purwarupa (prototype)         parameter adalah :
prosedur di dalam bagian DEKLARASI. Purwarupa prosedur hanya berisi bagian
header prosedur. Tujuan pendeklarasian purwarupa prosedur adalah supaya program      Procedure Nama_Prosedur(daftar parameter format)
pemanggil mengenal nama prosedur tersebut serta cara mengaksesnya.                   {spesifikasi prosedur, berisi penjelasan tentang yang dilakukan oleh
                                                                                     prosedur ini}
Contoh :                                                                             {K.awal : keadaan sebelum prosedur dilaksanakan}
Program utama untuk memanggil prosedur Cetak_Hallo.                                  {K.akhir: keadaan setelah prosedur dilaksanakan }
 Algoritma Hallo                                                                     DEKLARASI
 {Program utama untuk mencetak string “HALLO”}                                       {semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di
 DEKLARASI                                                                           dalam prosedur didefinisikan}
   Procedure Cetak_Hallo                                                             DESKRIPSI
   {mencetak string “HALLO” ke piranti keluaran}                                     {badan prosedur berisi kumpulan instruksi}
 DESKRIPSI
   Cetak_Hallo         {panggil prosedur Cetak_Hallo}                               Aturan penting yang harus diamati adalah :
                                                                                       Jumlah parameter aktual pada pemanggilan prosedur harus sama dengan jumlah
                                                                                       parameter formal pada deklarasi prosedurnya.
                                                                                       Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang
                                                                                       bersesuaian.
                                                                                       Tiap parameter aktual harus diekspresikan dalam cara yang taat asas dengan
                                                                                       parameter formal yang bersesuaian, bergantung pada jenis parameter formal.


www.mugianet.com                                                           - 35 -   www.mugianet.com                                                              - 36 -
Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal yang               Deklarasi parameter masukan/keluaran di dalam header prosedur, tetapi harus
disertakan dalam prosedur yaitu :                                                         dideklarasikan dengan kata kunci input/output. Perhatikan contoh dibawah ini:

   Parameter Masukan                                                                        Procedure Dua(input/output x,y : integer)
   Pada parameter masukan, nilai (value) parameter aktual akan diisikan (assign) ke         {menambahkan nilai x dengan 2 dan mengurangi nilai y dengan 2}
   dalam parameter formal yang bersesuaian. Nilai ini digunakan di dalam badan              {K.awal : x dan y sudah berisi nilai}
   prosedur yang bersangkutan yang dinyatakan oleh parameter masukan tidak dapat
                                                                                            {K.akhir: nilai x bertambah2, nilai y berkurang 2, lalu dicetak ke
   dikirim dalam arah sebaliknya. Perubahan nilai parameter di dalam badan prosedur
   tidak mengubah nilai parameter aktual, Karena yang dipentingkan adalah nilainya,                   piranti keluaran}
   maka nama parameter aktual boleh berbeda dengan nama parameter formal yang               DEKLARASI
   bersesuaian.                                                                             {tidak ada}
   Parameter Keluaran                                                                       DESKRIPSI
   Bila prosedur menghasilkan satu atau lebih nilai yang digunakan oleh program               x   x+3
   pemanggil, maka nilai keluaran ditampung di dalam parameter keluaran. Bila                 y   y–2
   prosedur yang mengandung parameter keluaran dipanggil, maka nama parameter                 write(‘nilai x dan y diakhir prosedur dua : ‘)
   aktual didalam program pemanggil menggantikan nama parameter formal yang                   write(‘ x = ‘, x)
   bersesuaian di dalam prosedur.                                                             write(‘ y = ‘, y)
   Parameter keluaran dideklarasikan di dalam header prosedur, sebagaimana
   paramater masukan, tetapi parameter keluaran harus dideklarasikan dengan kata
   kunci output seperti contoh berikut :                                                    Algoritma ABC
                                                                                            {program yang         memperlihatkan   efek   penggunaan     parameter
     Procedure Satu(input x : integer, output y : real)
                                                                                            masukan}
     {contoh prosedur dengan parameter formal berjenis parameter
     masukan}                                                                               DEKLARASI
     {K.awal : nilai x sudah terdefinisi}                                                     a, b : integer
     {K.akhir: di dalam prosedur, nilai x ditambah satu, lalu hasilnya                        Procedure Dua(input/output x,y : integer)
                     dikalikan 10, disimpan ke dalam y}                                       {menambahkan nilai x dengan 2 dan mengurangi nilai y dg 2}
     DEKLARASI
                                                                                            DESKRIPSI
     {tidak ada}
                                                                                              a   15
     DESKRIPSI                                                                                b   10
       x  x+1                                                                                 write(‘nilai a dan b sebelum pemanggilan : ‘)
       y  x * 10                                                                              write(‘ a = ‘, a)
                                                                                              write(‘ b = ‘, b)
   Parameter Masukan/Keluaran                                                                 Dua
   Pada kebanyakan aplikasi, informasi harus dikirim dalam dua arah, sehingga                 write(‘nilai a dan b sesudah pemanggilan : ‘)
   prosedur juga harus dapat mengakomodasi baik masukan dari dan keluaran ke                  write(‘ a = ‘, a)
   blok program pemanggil. Untuk menghadapi hal itulah kita bisa menggunakan                  write(‘ b = ‘, b)
   parameter     masukan/keluaran.       Dengan        menggunakan       parameter
   masukan/keluaran, bila parameter aktual diubah nilainya di dalam badan prosedur,
   maka sesudah pemanggilan prosedur nilai parameter aktual di titik                      Hasil dari algoritma tersebut adalah :
   pemanggilannya juga berubah.                                                           nilai a dan b sebelum pemanggilan :
                                                                                          a = 15
                                                                                          b = 10

www.mugianet.com                                                              - 37 -   www.mugianet.com                                                            - 38 -
   nilai x dan y diakhir prosedur tiga:                                                 Contoh :
   a = 17                                                                               Buatkan fungsi untuk menentukan apakah sebuah bilangan bulat merupakan bilangan
   b= 8                                                                                 genap atau ganjil ?
   nilai a dan b sesudah pemanggilan :
   a = 17                                                                               Solusi
   b= 8
                                                                                        Fungsi :
                                                                                         Function Genap(input n : integer)   boolean
3.2.   FUNGSI                                                                            {mengembalikan niai true jika n adalah bilangan genap dan false jika
                                                                                         sebaliknya}
Fungsi adalah modul program yang memberikan/mengambalikan sebuah nilai yang
bertipe sederhana (integer, real, boolean, dan string).                                  DEKLARASI

Sebagaimana halnya dengan prosedur, fungsi diakses dengan memanggil namanya.
Selain itu, fungsi juga dapat mengandung daftar parameter formal. Jenis parameter        DESKRIPSI
pada fungsi adalah paramater masukan. Jenis parameter masukan pada fungsi                  return (n mod 2 = 0)
disebabkan oleh kenyataan bahwa parameter pada fungsi merupakan masukan yang
digunakan oleh fungsi tersebut untuk menghasilkan nilai.                                Program Pemanggil :
                                                                                         Algoritma Genap_Ganjil
                                                                                         {program utama menentukan apakah sebulah bilangan genap atau ganjil ?}
3.2.1. Mendefinisikan Fungsi
                                                                                         DEKLARASI
Struktur fungsi sama saja dengan struktur algoritma biasanya berikut ini :                 bil : integer
 Function Nama_Fungsi(input daftar parameter format)                  tipe hasil           Function Genap(input n : integer)  boolean
 {spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang                              {mengembalikan niai true jika n adalah bilangan genap dan false jika
 dikembalikan oleh fungsi ini}                                                             sebaliknya}
 DEKLARASI                                                                               DESKRIPSI
 {semua nama yang dipakai dalam algoritma fungsi dideklarasikan disini.                    read(bil)
 Nama yang dideklarasikan di dalam DEKLARASI lokal hanya dikenal dan                       if Genap (bil) then
 dipakai di dalam fungsi ini saja}                                                             write(n, ‘ adalah bilangan genap’)
                                                                                           else
 DESKRIPSI
                                                                                               write(n, ‘ adalah bilangan ganjil’)
   {badan    fungsi    berisi  kumpulan      instruksi-instruksi           untuk
                                                                                           endif
   menghasilkan nilai yang akan dikembalikan oleh fungsi}
   Return hasil {pengembalian nilai yang dihasilkan fungsi}
                                                                                        LATIHAN :
                                                                                          Buatkan prosedur dan program pemanggilnya untuk menukarkan dua buah nilai di
                                                                                          dalam peubah A dan B !
3.2.2. Pemanggilan Fungsi                                                                 Buatkan fungsi dan program pemanggilnya untuk menentukan nilai terbesar antara
                                                                                          dua buah peubah bilangan bulat A dan B ! Nilai terbesar merupakan keluaran dari
Fungsi diakses dengan cara memanggil namanya dari program pemanggil diikuti               prosedur.
dengan daftar parameter aktual, karena fungsi menghasilkan nilai maka nilai tersebut      Buatkan fungsi dan program pemanggilnya untuk menentukan sebuah tahun
dapat ditampung dalam sebuah peubah yang bertipe sama dengan tipe fungsi, atau            kabisat atau bukan kabisat !
nilai yang diberikan oleh fungsi langsung dimanipulasi.                                   Buatkan fungsi dan program pemanggilnya untuk mengembalikan angka romawi
Parameter aktual dapat berupa tetapan, nama tetapan, atau nama peubah asalkan             untuk angka arab yang diberikan ( hanya untuk angka arab dari 1 sampai 10) !
sudah terdefinisi tipe dan harganya.
www.mugianet.com                                                               - 39 -   www.mugianet.com                                                             - 40 -
                              PEMROSESAN TEKS                                               4.4.   PEMBACAAN TEKS

                                                                                            Pembacaan teks dimulai dari awal teks (dari kiri ke kanan), dengan mengaikan ada
                                                                                            sebuah pointer yang menunjuk ke karakter yang akan dibaca. Setiap kali karakter
Tiap-tiap data dalam runtunan diakses satu per satu dari awal sampai akhir. Diakses         yang ditunjuk oleh pointer selesai dibaca, pointer berpindah secara otomatis ke
artinya data tersebut dicapai lalu diproses bergantung pada proses yang diinginkan.         karakter berikutnya. Karakter yang sedang ditunjuk oleh pointer selesai dibaca, pointer
Model pengaksesan data yang tersusun secara beruntun dinamakan model                        berpindah secara otomatis ke karakter berikutnya. Karakter yang sedang ditunjuk oleh
pengaksesan beruntun.                                                                       pinter dinyatakan di dalam peubah C.

                                                                                            Nama peubah C didefinisikan di dalam bagian DEKLARASI program utama, sehingga
4.1.   SUSUNAN TEKS                                                                         ia dikenal di seluruh bagian algoritma termasuk prosedur dan fungsi yang dipakai oleh
                                                                                            algoritma.
Arsip teks untuk selanjutnya kita sebut saja teks adalah arsip yang terdiri dari deretan
karakter. Untaian karakter itu dapat membentuk sebuah kata. Yang dimaksud dengan
kata adalah kelompok karakter yang dipidahkan dengan kelompok lain dengan satu               DEKLARASI
atau lebih spasi.                                                                              C : char          {karakter yang sedang ditunjuk oleh pointer baca}

Dalam meninjau model pengaksesan beruntun pada teks, kita tidak memandang
sebuah teks disusun oleh baris-baris teks tetapi lebih condong menyerupai sebuah            Didefinisikan Reset_Teks adalah prosedur universal untuk teks. Reset_Teks
pita yang birisi runtunan karakter-karakter.                                                menyebabkan pointer akan menunjuk pada karakter pertama di teks. Jika teks
                                                                                            kosong, pointer menunjuk karakter titik.
Suatu teks P didefinisikan di dalam bagian deklarasi sebagai berikut :
                                                                                             Procedure Reset_Teks
 DEKLARASI                                                                                   {Menyiapkan teks pada posisi awal}
   P : text {P adalah peubah teks}                                                           {K.awal : sembarang}
                                                                                             {K.akhir: pointer menunjuk pada karakter pertama di dalam teks.
                                                                                             Akibat pemanggilan prosedur ini, pointer menunjuk ke karakter pertama
4.2.   TANDA AKHIR TEKS                                                                      teks. Karakter yang ditunjuk mungkin ‘.’}

Pemrosesan teks yang sama adalah proses pembacaan. Karena teks berisi runtunan
karakter, maka pembacaan teks adalah membaca karakter demi karakter secara                  Notasi yang digunakan untuk membaca karakter dari teks P adalah :
beruntun, mulai dari awal teks sampai akhir teks. Akhir teks ditandai dengan sebuah
karakter khusus (kita definisikan karakter “.”), bila pembacaan teks bertemu dengan          Read(P;C)         {membaca karakter yang ditunjuk oleh pointer baca dari
titik maka proses pembacaan teks dihentikan.                                                                   teks P. Karakter yang dibaca disimpan di dalam pubah C}


4.3.   DEFINISI TEKS KOSONG                                                                 Contoh :
                                                                                            Menghitung banyaknya karakter di dalam pita (tidak termasuk karakter ‘.’). Buatkan
Pemrosesan teks selalu mempertimbangkan keadaan awal teks, yaitu kosong atau                prosedur untuk persoalan diatas !
tidak kosong. Sebuah teks mungkin saja kosong. Sebuah arsip yang hanya berisi
spasi tidak dapat disebut kosong, karena kita telah membuat perjanjian bahwa
sembarang tekas harus diakhiri dengan karakter titik, maka teks kosong adalah teks
yang hanya berisi karakter titik.



www.mugianet.com                                                                   - 41 -   www.mugianet.com                                                                  - 42 -
Solusi :                                                                                                                       LARIK
 Procedure Hitung_Banyak_Karakter(output n : integer)
 {Menghitung banyaknya karakter di dalam teks}
 {K.awal : sembarang}                                                                Sebuah peubah atau tetapan hanya menyimpan sebuah nilai dari tipe tertentu. Ia tidak
 {K.akhir: n berisi banyaknya karakter di dalam teks }                               dapat menyimpan beberapa buah nilai yang bertipe sejenis.

 DEKLARASI                                                                           Dalam kegiatan pemrograman, sekumpulan data yang bertipe sama perlu disimpan
 {tidak ada}                                                                         sementara di dalam memori komputer untuk sewaktu-waktu dimanipulasi.
 DESKRIPSI                                                                           Bila kumpulan data disimpan secara beruntun di dalam memori, maka tiap elemen
   n   0                                                                             data dapat diacu dengan menggunakan indeks. Indeks menyatakan posisi data relatif
   Reset_Teks                                                                        di dalam kumpulannya struktur penyimpanan data seperti itu dinamakan dengan larik
   Read(P;C)                                                                         (array), atau sering disebut juga tabel, vektor atau peubah majemuk.
   While C ≠ ‘.’ do
     n     n+1
     Read(P,C)                         {baca karakter berikutnya}                    5.1.   DEFINISI LARIK
   Endwhile                            {C = ‘.’}
                                                                                     Larik adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama,
                                                                                     setiap elemen diakses langsung melalui endeksnya. Indeks larik haruslah tipe data
LATIHAN :                                                                            yang menyatakan keterurutan, misalnya integer atau karakter.
  Buatlah prosedur dan program pemanggil untuk menghitung jumlah karakter ‘B’ di
  dalam suatu teks !                                                                 Misalnya larik yang bernama A dengan delapan buah elemen dapat dibayangkan
                                                                                     secara lojik sebagai sekumpulan kota yang terurut (vertika atau horizontal). Tiap kotak
                                                                                     pada larik tersebut diberi indeks integer 1, 2, 3, .... 8. Tiap elemen larik ditulis dengan
                                                                                     notasi :

                                                                                        A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8]

                                                                                     Angka didalam kurung siku menyatakan indeks larik.

                                                                                     Setiap elemen larik menyimpan sebuah nilai. Karena seluruh elemen larik bertipe
                                                                                     sama, maka nilai yang disimpan oleh setiap elemen juga harus bertipe sama.


                                                                                     5.2.   MENDEFINISIKAN LARIK DALAM DEKLARASI

                                                                                     Larik adalah struktur data yang statik, artinya jumlah elemen larik harus sudah
                                                                                     diketahui sebelum program dieksekusi. Jumlah elemen larik tidak dapat diubah,
                                                                                     ditambah, atau dikurangi selama pelaksanaan program. Mendefinisikan larik di dalam
                                                                                     bagian DEKLARASI berarti :
                                                                                         Mendefinisikan banyaknya elemen larik
                                                                                         Mendefinisikan tipe elemen larik

                                                                                     Mendefinisikan banyaknya elemen larik berarti memesan sejumlah tempat di memori.
                                                                                     Memori mengalokasikan sejumlah lokasi memori sebanyak elemen larik yang
www.mugianet.com                                                            - 43 -   www.mugianet.com                                                                      - 44 -
bersangkutan. Tipe elemen larik dapat bertipe sederhana (integer, real, char, boolean,       P[k]              {mengacu elemen ke k dari larik P, asalkan nilai k sudah
string), tipe terstruktur (tipe bentukan seperti record) atau bahkan bertipe larik.                            terdefinisi}
                                                                                             Harga_barang[i+1] {mengacu elemen ke i dari larik harga_kompuetr, asalkan nilai i
Contoh mendefinisikan larik di dalam bagian deklarasi :                                                        sudah terdefinisi}
  Sebagai Peubah
                                                                                          Contoh memanipulasi atau menggunakan elemen larik :
       DEKLARASI                                                                            L[4] 10             {mengisi elemen ke 4 dari larik L dengan nilai 10}
         L : array[1..50] of integer                                                        Read(P[k])          {membaca elemen ke k dari larik P}
         Nama_mhs : array[‘a’..’j’] of string                                               If harga_barang[t] < 10000 then
         Nilai_ujian : array[0..74] of real                                                     Write(‘harga’ murah’)
                                                                                            else

   Sebagai Tipe Baru
                                                                                          5.4.   PEMROSESAN LARIK
       DEKLARASI
         Type TabInt : array[1..100] of integer                                           Elemen larik tersusun secara beruntun, karena itu elemennya diproses secara
         P : TabInt                                                                       beruntun melalui indeks yang terurut, asalkan indeks tersebut sudah terdefinisi.
                                                                                          Pemrosesan beruntun pada larik adalah pemrosesan mulai dari elemen pertama larik.
   Mendefinisikan Ukuran Maksimum Elemen Larik Sebagai Sebuah Tetapan
                                                                                          Skema umum algoritma memproses larik disebut juga skema mengunjungi (traversal)
       DEKLARASI                                                                          larik, berikut :
         Const Nmaks = 1000                                                                 Procedure Skema_Umum_Pemrosesan_Larik
         Type TabInt : array[1..Nmaks] of integer                                           {Memproses setiap elemen larik secara beruntun, mulai dari indeks
         P : TabInt                                                                         terkecil sampai indeks terbesar}
                                                                                           DEKLARASI
                                                                                             Const Nmaks = 100 {banyak elemen larik}
       DEKLARASI                                                                             Type larik : array[1..Nmaks] of integer
         Harga_barang : array[1..N] of real                                                  A : larik
                                                                                             K : integer       {indeks larik}
                                                                                           DESKRIPSI
       DEKLARASI                                                                             for i  1 to N do
         Const N = 15                                                                           proses a[i]
         Harga_barang : array[1..N] of real                                                  Endfor


                                                                                          Proses adalah aksi yang dilakukan terhadap elemen larik. Proses dapat berupa aksi
5.3.   CARA MENGACU ELEMEN LARIK                                                          pengisian nilai, pembacaan, penulisan atau manipulasi lainnya.
Cara mengacu elemen larik diacu melalui indeksnya. Nilai indeks harus terdefinisi.        5.4.1. Menginisialisasi Larik
Dengan mengacu pada larik yang sudah didefinisikan sebelum ini, maka contoh-
contoh cara mengacu elemen larik adalah :                                                 Menginisialisasi larik adalah memberikan harga awal untuk seluruh elemen larik.
   L[4]             {mengacu elemen keempat dari larik L}                                 Inisialisasi kadang-kadang diperlukan misalnya mengosongkan elemen larik sebelum
   Nama_mhs[‘b’]    {mengacu elemen kedua dari larik nama_mhs}                            dipakai untuk proses tertentu. Mengosongkan larik bertipe numerik dapat berupa
                                                                                          pengisian elemen larik dengan nol, sedangkan pada larik karakter, mengosongkan

www.mugianet.com                                                                 - 45 -   www.mugianet.com                                                               - 46 -
larik berarti mengisi elemen larik dengan spasi atau karakter kosong. Nol atau spasi          Procedure Baca_Larik(output A : larik)
bukanlah satu-satunya nilai yang dipakai untuk inisialisasi.                                  {mengisi elemen larik A[1..N] dengan nilai yang dibaca dari piranti
                                                                                              masukan}
Contoh :
                                                                                              {K.awal : larik A belum terdefinisi nilai elemen-elemennya, N sudah
a. menginisialisasi elemen larik A[1], A[2], ...A[N] dengan nilai nol
                                                                                              berisi jumlah elemen efektif}
                                                                                              {K.akhir: setelah pembacaan, sebanyak N buah elemen larik A berisi
 Procedure InisialisasiA(output A : larik)                                                    nilai-nilai yang dibaca dari piranti masukan}
 {menginisialisasi setiap elemen larik A dengan nol}
 {K.awal : larik A belum terdefinisi nilai elemen-elemennya}                                  DEKLARASI
 {K.akhir: seluruh elemen larik A bernilai nol}                                                 K : integer            {pencatat indeks larik}
 DEKLARASI                                                                                    DESKRIPSI
   K : integer              {pencatat indeks larik}                                             for K   1 to N do
                                                                                                   read(A[K])
 DESKRIPSI                                                                                      Endfor
   for K   1 to Nmaks do
      A[K]    0
   Endfor
                                                                                             5.4.3. Menulis Elemen Larik ke Piranti Keluaran

b. menginisialisasi elemen larik A[1], A[2], ...A[N] masing-masing dengan nilai 1, 2, ..N    Menulis elemen larik dapat dicetak ke piranti keluaran dengan perintah print, seperti
                                                                                             pada contoh prosedur berikut :
 Procedure inisialisasiB(output A : larik)
 {menginisialisasi setiap elemen larik A[K] dengan nilai k = 1 , 2 ...N}                      Procedure Tulis_larik(input A : larik, input N : integer)
 {K.awal : larik A belum terdefinisi nilai elemen-elemennya}                                  {mencetak elelemen larik A[1..N] ke piranti keluaran}
 {K.akhir: setelah inisialisasi A[1]=1, A[2]=2,..., A[N]=N }                                  {K.awal : N sudah terdefinisi ukuran larik yang terpakai. Elemen larik
 DEKLARASI                                                                                    A[1..N] sudah terdefinisi nilai elemen-elemennya}
   K : integer              {pencatat indeks larik}                                           {K.akhir: diakhir prosedur, sebanyak N buah elemen larik A tersetak
                                                                                              nilainya ke piranti keluaran}
 DESKRIPSI
   for K   1 to Nmaks do                                                                      DEKLARASI
      A[K]    K                                                                                 K : integer            {pencatat indeks larik}
   Endfor                                                                                     DESKRIPSI
                                                                                                for K   1 to N do
                                                                                                   write(A[K])
5.4.2. Mengisi Elemen Larik dari Piranti Masukan                                                Endfor

Selain dengan pengisian nilai, elemen larik dapat diisi nilai yang dibaca dari piranti
masukan dengan perintah read seperti contoh berikut :                                        5.5.   LARIK BERTIPE TERSTRUKTUR

                                                                                             Contoh :
                                                                                             TabMhs adalah sebuah larik yang elemennya menyatakan nilai ujian seorang
                                                                                             mahasiswa untuk suatu mata kuliah (MK) yang ia ambil. Data setiap mahasiswa
                                                                                             adalah NIM, nama mahasiswa, mata kuliah yang diambil dan nilai mata kuliah.

www.mugianet.com                                                                    - 47 -   www.mugianet.com                                                                - 48 -
Maka algoritmanya sebagai berikut :

 Algoritma Baca_Larik_Mahasiswa
 {mengisi elemen larik mahasiswa dengan data yang dibaca dari piranti
 masukan}
 DEKLARASI
   Const Nmaks = 100
   Type mahasiswa : record <NIM : integer
                            NamaMhs : string
                            KodeMK : string
                            Nilai : char
                          >
   TabMhs : array[1..Nmaks] of mahasiswa
   K : integer
   N : integer
 DESKRIPSI
   Read(N)
   for K   1 to N do
      read(TabMhs[K].NIM)
      read(TabMhs[K].NamaMhs)
      read(TabMhs[K].KodeMK)
      read(TabMhs[K].Nilai)
   Endfor




www.mugianet.com                                                   - 49 -

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:130
posted:3/4/2011
language:Indonesian
pages:25