BAB I PENGANTAR ALGORITMA Kebayanakan komputer digunakan untuk memperoses dan menyimpan data serta informasi. Pemerosesan perlu dilakukan komputasi-komputasi yang cepat dan akurat. Untuk melakukan tugas-tugas tersebut computer harus diprogram. Suatu program adalah sederatan instruksi (dalam bahasa yang dimengerti oleh computer) yang mengatur apa-apa yang harus dikerjakan oleh computer, untuk mendapatkan suatu hasil /keluaran yang diharapkan. Sebelum suatu program dibuat alangkah baiknya kalau dibuat logika/urutan-urutan untuk memecahkan masalah (algoritma)
Definisi Algoritma -
Urutan langkah-langkah untuk memecahkan masalah
-
Urutan logis pengambilan keputusan untuk memecahkan masalah
Algoritma dibutuhkan untuk memerintah computer mengambil langkah tertentu dalam menyelesaikan masalah.
Penulisan algoritma dapat digunakan dengan cara: 1. Bahasa Natural (bahasa Indonesia, bahasa inggeris dan bahasa manusia lainnya) 2. Menggunakan Flowchart (Diagram alir) Bagus secara visual namun repot bila algoritmanya panjang
3. Menggunakan Pseudo-code Sudah dekat dengan kebahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti algoritma
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
1
Contoh : Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan (misalanya 10 4 2)
a.
Algoritma dalam bahasa natural 1. Ambil bilangan pertama dan set Maks sama dengan bilangan pertama 2. ambil bilangan kedua dan bandingkan dengan Maks 3. Apabila bilangan kedua lebih besar dari Maks, set Maks sama dengan bilangan kedua 4. Ambil bilangan ketiga dan bandingkan dengan Maks 5. Apabila bilangan ketiga lebih besar dari Maks, set Maks sama dengan bilangan ketiga 6. Variabel Maks berisi bilangan terbesar, tampilkan hasilnya
b.
Algoritma dengan Flowchart Mulai
Maks
Bilangan Pertama
Maks < Bilangan kedua
Ya
Maks
Bilangan Kedua
Maks
Bilangan Ketiga
Tidak
Maks < Bilangan ketiga
Ya
Tidak Cetak Maks
Selesai
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
2
c.
Algoritma dengan Pseudo-code
Maks
Bilangan pertama
If (Maks < Bilangan Kedua) Maks Maks
Bilangan Kedua
Bilangan Kedua
If (Maks < Bilangan Keketiga) Maks
Bilangan Ketiga
Langkah-langkah dalam pembuatan program atau software 1. Mendefinisikan masalah dan menganalisanya -
Tujuan dari pembuatan program
-
Parameter-parameter yang digunakan
-
fasilitas apa saja yang akan disediakan oleh program
-
Menentukan metoda atau algoritma apa yang akan diterapkan
-
Menentukan bahasa program yang akan digunakan untuk pembuatan program
2. Merealisasikan dengan langkah-langkah berikut Start
Desain Algoritma & flowchart
Menuliskan Program
Test Kebenaran Program
Dokumentasi
Arsip
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
3
Struktur suatu program terdiri dari beberapa bagian yaitu 1. Input Bagian ini merupakan proses untuk memasukkan data ke computer melalui device yang ada misalnya keyboard, mouse, scanner. Program melakukan proses membaca data yang akan diolah dari device tersebut 2. Output Bagian ini merupakan proses untuk menampilkan data yang telah diolah, melaporkan hasil pengolahan data melalui device seperti monitor, printer. Program melakukan proses mencetak data ke device tersebut 3. Proses pengolahan data Bagian merupakan proses mengolah data yang diinputkan dengan menerapkan metodemetode, teknik-teknik, algoritma-algoritma yang ada. Proses ini menghasilkan data output yang akan dioutputkan kepada pengguna program 4. Penyimpanan data Bagian ini merupakan proses penyimpanan data dalam memori atau device penyimpanan data seperti disket, harddisk, Cd dan lain-lain Blok digram struktur dari suatu program secara umum Input
Proses pengolahan data
Output
Memory
Aspek Penting dari Algoritma 1. Finitness Algoritma harus berhenti “After a finite numer of steps” 2. Definiteness Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
4
5. Effectiveness Setiap algoritma diharapkan memiliki sifat efektif
Diagram Alur/Flowchart Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatkan arah alur program tersebut. Folowchart digunakan terutama untuk alat Bantu komunikasi. Pedoman untuk menggambarkan flowchart adalah: 1. Sebaiknya digambar dari atas kebawah dan mulai dari bagian kiri suatu halaman 2. Kegiatannya harus ditunjukkan secara jelas
3. Ditunjukkan dengan jelas dimulai dan berakhirnya suatu kegiatan 4. Masing-masing kegiatan sebaiknya digunakan untuk suatu kata yang mewakili suatu pekerjaan
5. Kegiatanya sudah dalam urutan yang benar 6. Kegiatan yang terpotong akan disambung, ditunjukkan dengan jelas oleh symbol penghubung 7. Digunakan symbol-simbol yang standar Ada 5 bagan alir yaitu: 1. Bagan Alir Sistem (System Flowchart) 2. Bagan Alir Dokumen (Document Flowchart) 3. Bagan Alir Skematik (Schematic Flowchart) 4. Bagan Alir Proses (Process Flowchart) 5. Bagan Alir Program (Program Flowchart) Dalam hal ini yang akan dibahas dan yang digunakan adalah Bagan Alir Program (Program Flowchart).Berikut adalah beberapa symbol yang digunakan dalam menggambarkan suatu program flowchart yaitu:
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
5
Input/Output; Digunakan untuk mewakili data input atau data output Proses; Digunakan untuk mewakili suatu proses
Garis Alir; Menunjukkan arus dari proses
Decision (Keputusan); Digunakan untuk suatu seleksi kondisi didalam program On-Page Reference; Menunujukkan penghubung kehalaman yang sama Off-Page Reference; Menunujukkan penghubung kehalaman yang berbeda Predefined Proses (Proses Terdefinisi); Menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain Preparation (Persiapan); Digunakan untuk memberi nilai awal suatu besaran Terminator; Menunjukkan awal dan akhir dari suatu proses
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
6
3 Struktur Dasar Algoritma Suatu Program 1. Runtunan (Sequence) Penyelesaian masalah berurutan tahap demi tahap, tanpa decision dan looping 2. Keputusan (Decision) Terdapat type Boolean (True or False)
Ya
Tidak
3. Pengulangan (Loop) Pemutaran atau pengualangan kembali, terjadi ketika mengalihkan arus diagram alur kembali ke atas, sehingga beberapa alur berulang kembali beberapa kali Ada 3 konsep dalam looping yaitu : a. For b. Repeat ..Until c.
While .. Do
Type Data Type data berfungsi untuk menentukan nilai yang dapat disimpan ke variable tertentu dan operator-operator apa yang dapat dikenakan kepada variable tersebut, terdapat beberapa macam tipe data yaitu: 1. Tipe data sederhana a. Tipe ordinal, dibagi menjadi:
1. Tipe Bilangan Bulat Macam-macam tipe bilangan bulat
- Shortint
-128..127
- Integer
-32768 ..32767
- Longint
-2147483648 .. 2147483647
- Byte
0 ..255
- Word
0 .. 65535
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
7
2. Tipe Boolean 3. Tipe Karakter 4. Tipe Terbilang 5. Tipe Subjangkauan b. Tipe Real
2. Tipe String, yaitu sekumpulan karakter 3. Tipe Terstruktur, dibagi menjadi: 1. Tipe Larik 2. Tipe Rekaman 3. Tipe Objek 4. Tipe Himpunan 5. Tipe Berkas 4. Tipe Pointer 5. Tipe Prosedural 6. Tipe Objek
Macam-macam Operator Pada dasarnya ada tujuh macam operator yang dapat digunakan yaitu: 1. Operator pemberian nilai (:=) 2. Operator aritmatik (+, -, *, /, DIV, MOD) 3. Operator pemanipulasi bit 4. Opeartor Boolean (NOT, AND, OR, XOR) 5. Operator Pembanding (=, <>, <, >, <=, >=)
6. Operator Himpunan (+ Union, - Selisih, * Interseksi, IN Anggota dari) 7. Operator String
Pemberian Nilai pada Variabel Suatu variable dapat diartikan sebagai suatu besaran yang dapat berubah-ubah harganya. Cara memberikan harga kepada suatu variable yaitu dengan :
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
8
1. Dengan Kotak Penugasan Variabel X diberi harga 12
X ß 12
Variabel C diberi harga sebesar harga variabel P dikurangi harga variabel Q (dalam hal ini, Harga variabel P serta Q harus sudah ada )
C ß P -Q
Harga yang baru dari variabel N adalah harga yang lama dari variabel N ditambah 1 (dengan perkataan lain, harga variabel N bertambah)
NßN +1
SßS +T
Harga yang baru dari variabel S adalah harga lama S ditambah harga variabel T
2. Dengan Kotak Masukan
Baca A
Himpunan Data 12 Data yang berharga 12 dibaca dan diberikan kepada variabel A Harga variabel A sekarang=12
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
9
Struktur Program Bahasa Visual Basic 1. Bagian Object Method Program (Optional) 2. ‘ Deklarasi Type Data ……………………………………. 3. ‘ Deklarasi Input
……………………………… 4. ‘ Deklarasi Proses
……………………………… 5. ‘ Deklarasi Output
……………………………… Ciri-ciri Bahasa Visual Basic
1. Termasuk kedalam bahasa yang terstruktur Maupun Semi Object Oriented Programming 2. Menggunakan program compiler 3. Salah satu jenis pemograman Desktop 4. Pengembangan dari bahasa Basic 5. Keluaran dari Microsoft Corporation
Statement Input/Output 1. Memasukan Data (Input Data) -
Nama variabel = Nama object
2. Menampilkan Data (Output) -
Nama object = Nama Variabel
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
10
SEQUNCE/RUNTUNAN Sequnce/runtunan meruapakan algoritma yang penyelesaian masalahnya dilakukan secara berurutan tahap demi tahap, tanpa decision dan looping Contoh :
1. Menghitung dan mencetak jumlah 2 bilangan. Bilangan pertama disebut A, harganya 13. Bilangan kedua disebut B, harganya 12. Jumlahnya disebut C Mulai
A ß 13
‘ Deklarasi type data Dim A as integer Dim B as integer Dim C as integer
B ß 12
‘Deklarasi Input A=val(Text1) B=val(Text2)
C ßA + B
‘Deklarasi Proses C=A*B
Cetak C
‘Deklarasi Output Text3=C
Berhenti
2. Buatlah Flowchart dan program untuk mencari luas segitiga, bila diketahui ALAS = 10 dan TINGGI = 9 3. Temperatur dalam derajat Fahrenheit, harus dirubah dalam derajat Celcius dan derajat Reaumur bila diketahui rumus sebagai berikut C = 5/9 (F-32) R = 4/9 (F-32) C = derajat Celcius R = derajat Reaumur F = derajat Fahrenheit
4. Hitung Luas dan Keliling yang diketahui jari-jarinya K=2πR L=πR2 5. Hitung luas serta panjang sisi miring segitiga siku-siku bila diketahui ke 2 sisi siku-sikunya L = Luas segitiga siku-siku A = Sisi siku-siku pertama = Sisi2 siku=siku Anggra Triawan,S.Kom [ SMK Tri B Dharma Kota Bogor ]lainnya C = Sisi miring
11
L=½A*B C = ( A2 + B 2 )
6. Hitung luas permukaan serta isi bola yang diketahui jari-jarinya L=4πR2 I = (4 π R 3)/3 7. Hitung Luas permukaan serta isi tabung tertutup yang diketahui tinggi serta jari-jari alasnya L = 2 π R 2 + 2 π R.T 2 π R (R+T) I=2πR2 T L = Luas Permukaan Tabung R = Jari-jari tabung T = Tinggi tabung I = Isi tabung
Anggra Triawan,S.Kom [ SMK Tri Dharma 2 Kota Bogor ]
12