Modul Logika Algoritma (Pascal)
Modul Logika Algoritma (Pascal)
A. PENGERTIAN LOGIKA DAN ALGORITMA Logika berasal dari dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika dapat diartikan ilmu yang mengajarkan cara berpikir untuk melakukan aksi dengan tujuan tertentu. Algoritma berasal dari nama seorang Ilmuwan Arab yang bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm diserap dalam bahasa Indonesia menjadi Algoritma. Algoritma dapat diartikan urutan langkah-langkah (instruksi-instruksi / aksi-aksi) terbatas untuk menyelesaikan suatu masalah. Dari pengertian diatas maka dapat diartikan Logika dan Algoritma adalah ilmu yang mempelajari cara penyelesaian masalah berdasarkan langkah-langkah terbatas yang logis dan sistematis dengan tujuan tertentu.
Contoh Algoritma:
Permasalahan: Diberikan dua gelas (A dan B), gelas A berisi air kopi dan gelas B berisi air teh. Pertukarkan isi gelas tersebut sehingga menghasilkan gelas A semula berisi air kopi menjadi berisi air teh dan gelas B yang semula berisi air teh menjadi berisi air kopi.
Penyelesaian: Untuk mempertukarkan isi gelas dengan benar, maka diperlukan gelas tambahan yang kita namakan gelas C sebagai tempat penampungan sementara. Berikut Algoritmanya:
Page 1
Algortima Tukar_Isi_Gelas Ada dua gelas (gelas A dan gelas B), gelas A berisi Kopi dan gelas B berisi Teh. Pertukarkan isi kedua gelas tersebut sehingga gelas A yang semula berisi Kopi menjadi berisi Teh dan gelas B yang semula berisi Teh menjadi berisi Kopi Deskripsi 1. Tuangkan isi gelas A ke gelas C 2. Tungkan isi gelas B ke gelas A 3. Tuangkan isi gelas C ke gelas B
Gambar 1. Algoritma Tukar Isi Gelas (Sumber Rujukan: Rinaldi Munir,Algoritma dan Pemrograman, Informatika Bandung )
Hasil akhir dari algoritma pertukaran isi gelas menjadi: A : berisi Teh B : berisi air Kopi
B. Syarat-Syarat Algoritma Syarat-Syarat Algoritma menurtu Donald E. Knuth, yaitu: 1. Finiteness (Keterbatasan) Algoritma harus berakhir setelah melakukan sejumlah langkah proses 2. Definiteness (Kepastian) Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda 3. Input (Masukan) Sebuah algoritma memiliki nol atau lebih masukan (input) yang diberikan kepada algoritma sebelum dijalankan 4. Output (Keluaran) Setiap algoritma memberikan satu atau beberapa hasil keluaran 5. Effectiveness (Efektivitas) Langkah-langkah algoritma dikerjakan dalam waktu yang wajar
Page 2
C. Struktur Dasar Algoritma Suatu Algoritma dapat terdiri dari tiga struktur dasar, yaitu runtunan, pemilihan dan pengulangan. Berikut Penjelasan ringkas dari tiga struktur tersebut : 1. Runtunan Runtunan yaitu satu atau lebih instruksi yang dikerjakan secara berurutan sesuai dengan urutan penulisannya. Urutan dari instruksi menentukan hasil akhir dari suatu algoritma. Bila urutan penulisan berubah maka mungkin juga hasil akhirnya berubah. Perhatikan contoh operasi aritmatika berikut:
A (3 * 5) + 5 = 20
B 3 * (5 + 5) = 30
Dari contoh diatas dapat dilihat ternyata hasil akhirnya dapat berubah apabila urutan pengerjaannya berbeda. 2. Pemilihan Pemilihan yaitu instruksi yang dikerjakan dengan kondisi tertentu. Kondisi adalah persyaratan yang dapat bernilai benar atau salah. Instruksi hanya dilaksanakan apabila kondisi bernilai benar, sebaliknya apabila salah maka instruksi tidak akan dilaksankan. Pernyataaan kondisi menggunakan statemen If (jika) dan Then (maka). Contoh pernyataaan kondisi Jika suatu bilangan habis dibagi dua Maka bilangan itu bilangan genap 3. Pengulangan Pengulangan merupakan pengulangan sejumlah aksi yang sama sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan. Beberapa statemen pengulangan yaitu: For To ... Do / For ... Downto ... Do While Do
Page 3
D. Penulisan Algoritma Algoritma dapat ditulis dengan cara berikut: 1. Menggunakan bahasa natural 2. Menggunakan kode semu (pseudo-code) Teknik penulisan yang mendekati bahasa pemrograman tertentu 3. Menggunakan diagram alir (flow chart) Teknik penyajian dengan menggunakan symbol-simbol. Dari ketiga cara ditas untuk mempermudah translasi teks algoritma kedalam teks program sebaiknya ditulis dalam bentuk notasi yang mendekati bahasa pemrograman (pseudo-code). Contoh: Tulislah algoritma untuk mencari Luas Persegi Panjang, apabila diketahui nilai panjang 8 dan nilai lebar 5. Bahasa Natural 1 2 3 4 5 7 Mulai Masukkan Nilai Panjang Persegi Panjang Masukkan Nilai Lebar Persegi Panjang Hitung Luas Persegi (Luas = Panjang x Lebar) Tampilkan Nilai Luas Persegi Panjang Selesai
Pseude Code 1 2 3 4 5 7 Start Input (Panjang) Input (Lebar) Luas := Panjang * Lebar Output (Luas) End
Page 4
E. Teks Algoritma Teks algoritma tersusun dalam tiga bagian, yaitu: 1. Bagian Kepala 2. Bagian Deklarasi 3. Bagian Deskripsi
Setiap bagian disertai dengan penjelasan tentang maksud penulisan teks. Penjelasan ini ditulis dalam kurung seperti ini { } Algoritma nama_algoritma {penjelasan singkat uraian yang dilakukan oleh algoritma} Deklarasi {semua nama yang digunakan, meliputi nama-nama: tipe, konstanta, variable juga nama sub program dinyatakan dibagian ini} Deskripsi {semua langkah penyelesaian dituliskan disini} (Sumber : Rinaldi Munir,Algoritma dan Pemrograman, Informatika Bandung ) Kesimpulannya: Suatu Algoritma yang terbaik(The Best) : Suatu algoritma harus menghasilkan output yan tepat guna(efektif) dalam waktu yang relatif singkat & penggunaan memori yang relatif sedikit(efisien) dengan langkah yang berhingga & prosedurnya berakhir baik dalam keadan diperoleh suatu solusi ataupun tidak ada solusinya
Page 5
Contoh-2 Algoritma: A. Algoritma untuk mengirimkan surat a. Tulis surat pada secarik kertas surat b. Ambil sampul surat atau amplop c. Masukkan surat ke dalam amplop d. Tutup amplop surat dengan lem perekat e. Tulis alamat surat yang dituju, jika tidak diingat, lebih dahulu ambil buku alamat & cari alamat yang dituju, lalu tulis alamat tersebut pada amplop surat f. Tempelkan perangko pada amplop surat g. Bawa surat ke kantor pos untuk diserahkan pada pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dalam kotak/bis surat. B. Algoritma untuk menentukan bilangan akar kuadrat dari suatu bilangan bulat positif yang diinput. a. Baca bilangan bulat positif yang diinput, sebut saja sebagai A. b. Dinyatakan Nilai B adalah 0 c. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop d. Jika tidak, maka nilai B akan bertambah 1 e. Kembali ke langkah pada No.3
Contoh-2 menyatakan suatu algoritma Menentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah. Menentukan model tersebut agar dapat digunakan dengan cara: a. Dengan Bahasa semu(Pseudocode): yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan terstruktur, seperti telah penulis sebutkan pada contoh-contoh sebelumnya(Contoh prosedur berikirm surat) Contoh: 1. Untuk mengitung Luas Segitiga: 2. Masukan Nilai Alas 3. Masukan Nilai Tinggi 4. Hitung Luas = (Alas * Tinggi)/2
MODUL LOGIKA DAN ALGORITMA Page 6
5. Cetak Luas
b. Dengan diagram alur atau flowchart: yaitu dengan membuat suatu penulisan atau penyajian algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan Contoh:
c. Dengan Statement Program/Penggalan Program Contoh: 1. Read Alas 2. Read Tinggi 3. Luas=(Alas*Tinggi)/2 4. Write(luas)
Page 7
B. Struktur Bahasa Pascal Struktur bahasa pascal terdiri dari: 1. Judul Program 2. Blok Program a. Bagian Deklarasi Deklarasi Tipe Deklarasi Konstanta Deklarasi Variabel Deklarasi Label Deklarasi Prosedur Deklarasi Fungsi b. Bagian Pernyataan
Page 8
Keterangan: 1. Judul Program bersifat optional boleh disertakan boleh juga tidak, tapi sebaiknya dituliskan untuk keperluan dokumentasi. Penulisan judul program terletak pada awal penulisan dan diakhiri dengan tanda titik koma. Contoh:
2. Bagian Deklarasi merupakan bagian untuk menuliskan pengenal (identifier), yang dapat berupa label, konstanta, tipe, variabel dan fungsi. Identifier terdiri atas: a. Identifier Umum Identifier umum merupakan identifier yang didefenisikan sendiri oleh pemrogram yang tidak boleh sama dengan identifier standard maupun identifier reserved word
b. Identifier Standar Identifier standar merupakan identifier yang terdapat pada library compiler. Library berisi procedure, fungsi, unit yang siap pakai. Contoh identifier standar: Read, readln, write, writeln
c. Identifier reserved word Identifier yang telah ada atau telah didefenisikan dan digunakan bahasa Pascal. Contoh identifier: Begin, end, if, else
2.1. Deklarasi Variabel dan Konstanta Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu didalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variabel dapat berubah sesuai kebutuhan.
Page 9
2.2. Deklarasi Tipe Tipe data dalam pascal dibedakan dalam dua macam, yaitu : tipe data dasar dan tipe data bentukan. Tipe data dasar terdiri dari: bilangan logic, bilangan bulat, bilangan Riil dan Karakter. Sedangkan tipe data bentukan terdiri dari: string, Rekaman dan tipe bentukan yang dibentuk dari tipe dasar.
Page 10
Operator Not merupakan operator Unary (hanya 1 operand) Operator AND, OR, XOR merupakan operator Binary (operator yang memerlukan 2 operand)
Contoh:
Page 11
2.2.3 Bilangan Real (Pecahan) Bilangan Real merupakan bilangan pecahan yang dinyatakan dalam bentuk eksponensial. Bilangan real memiliki beberapa macam tipe, yaitu:
2.2.4 CHAR Char adalah semua character yang terdapat pada tombol keyboard atau semua karakter yang terdapat dalam kode ASCII. Operasi yang ada pada tipe ini hanya operasi perbandingan
Page 12
2.2.5 STRING String adalah deretan karakter dengan panjang tertentu Operasi yag terdapat pada tipe string, yaitu: a. Operasi Penyambungan (Concatenation) Operasi penyambungan menggunakan operator + Contoh : AKMI + Baturaja hasilnya: AKMI Baturaja b. Operasi Perbandingan
2.2.6 REKAMAN Rekaman disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar tertentu yang sudah didefenisikan sebelumnya. Rekaman juga disebut dengan tipe terstruktur.
2.2.7 TIPE BENTUKAN DARI TIPE DASAR Nama baru untuk tipe bentukan dapat dibuat dengan kata kunci type.
Page 13
1. System Flowchart Menggambarkan urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data.
2. Program Flowchart Menggambarkan urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program.
B.
Simbol Flow Chart Secara garis besar simbol Flowchart terdiri dari: 1. Simbolpenghubung alur (Flow Direction Symbols) 2. Simbol Proses (Processing Symbols) 3. Simbol Input-Output (Input-Output Symbols)
Page 14
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
Page 23
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
DAFTAR PUSTAKA Jogiyanto H.M. 1997. Turbo Pascal. Andi Offset Yogyakarta Rinaldi Munir. 2001. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C, Buku 1. Informatika Bandung
Page 36