Hal. 1
PERTEMUAN 1
Materi :
1. Notasi Algoritma
2. Aplikasi Notasi Algoritma
1. Pengantar Algoritma Pemrograman
Belajar memprogram adalah belajar tentang strategi pemecahan
masalah, metodologi dan sistematika pemecahan masalah tersebut
kemudian menuangkannya dalam suatu notasi yang disepakati
bersama.
“lebih bersifat pemahaman persoalan, analisis, sintesis”
Belajar bahasa pemrograman adalah belajar memakai suatu bahasa,
aturan sintaks (tatabahasa), setiap instruksi yang ada dan tata cara
pengoperasian kompilator atau interpreter bahasa yang bersangkutan
pada mesin tertentu.
1.1 Algortima dan pemrograman Dasar
Perangko dari Rusia pada Gambar di samping ini
bergambar seorang pria dengan nama
Muhammad bin Musa al-Khwarizmi. Bagi kalian
yang sedang berkecimpung dalam dunia
komputer maka seharusnya mengetahui siapa
orang di samping ini. Dia adalah seorang ilmuwan
Islam yang karya karyanya dalam bidang
matematika, astronomi, astrologi dan geografi banyak menjadi dasar
perkembangan ilmu modern. Dan dari namanya istilah yang akan
kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi
Hal. 2
kemudian berubah menjadi algorithm dalam Bahasa Inggris dan
diterjemahkan menjadi algoritma dalam bahasa Indonesia.
1.2 Definisi Algortima
Algoritma adalah urutan langkah-langkah logis penyelesaian
masalah yang disusun secara sistematis.Algoritma yang dapat
menyelesaikan suatu permasalahan dalam waktu yang singkat
memiliki tingkat kerumitan yang rendah, sementara algoritma yang
membutuhkan waktu lama untuk menyelesaikan suatu masalah
membutuhkan tingkat kerumitan yang tinggi.
1.3 Struktur Algortima
Perhatikan algoritma sederhana berikut :
Jika seseorang ingin mengirim surat kepada kenalannya di tempat
lain, langkah yang harus dilakukan adalah:
1. Menyiapkan Peralatan Tulis
2. Menulis surat
3. Surat dimasukkan ke dalam amplop tertutup
4. Amplop ditempeli perangko secukupnya.
5. Pergi ke Kantor Pos terdekat untuk mengirimkannya
Algoritma menghitung luas
persegi panjang:
1. Masukkan panjang (P)
2. Masukkan lebar (L)
3.Luas P * L
4. Tulis Luas
Hal. 3
Pembuatan algoritma mempunyai banyak keuntungan di antaranya:
a. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun, artinya penulisan algoritma independen dari
bahasa pemrograman dan komputer yang melaksanakannya.
b. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman. c) Apapun bahasa pemrogramannya, output yang
akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma:
a. Teks algoritma berisi deskripsi langkah-langkah penyelesaian
masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun
asalkan mudah dimengerti dan dipahami.
b. Tidak ada notasi yang baku dalam penulisan teks algoritma
seperti notasi bahasa pemrograman. Notasi yang digunakan
dalam menulis algoritma disebut notasi algoritmik.
c. Setiap orang dapat membuat aturan penulisan dan notasi
algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama
dengan teks program. Namun, supaya notasi algoritmik mudah
ditranslasikan ke dalam notasi bahasa pemrograman tertentu,
maka sebaiknya notasi algoritmik tersebut berkorespondensi
dengan notasi bahasa pemrograman secara umum.
d. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu
pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh
komputer. Agar dapat dijalankan oleh komputer, pseudocode
dalam notasi algoritmik harus ditranslasikan atau diterjemahkan
ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat
bahwa orang yang menulis program sangat terikat dalam aturan
tata bahasanya dan spesifikasi mesin yang menjalannya.
Pseudocode adalah kode yang mirip dengan instruksi kode
program sebenarnya.
Hal. 4
e. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu permasalahan ke dalam bahasa
pemrograman.
f. Algoritma merupakan hasil pemikiran konseptual, supaya dapat
dilaksanakan oleh komputer, algoritma harus ditranslasikan ke
dalam notasi bahasa pemrograman
Perhatikan algoritma sederhana berikut : Algoritma menghitung luas
segitiga
1. Start
2. Baca data alas dan tinggi.
3. Luas adalah alas kali tinggi kali 0.5
4. Tampilkan Luas
5. Stop
Penjelasan :
Algoritma di atas adalah algoritma yang sangat sederhana, hanya
ada lima langkah. Pada
algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua
langkah dilakukan hanya
satu kali.
Sekilas algoritma di atas benar, namun apabila dicermati maka
algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada
pembatasan pada nilai data untuk alas dan tinggi.
Hasil perbaikan algoritma perhitungan luas segitiga
1. Start
2. Baca data alas dan tinggi.
3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih
besar dari nol maka
lanjutkan ke langkah ke 4 jika tidak maka stop
4. Luas adalah alas kali tinggi kali 0.5
5. Tampilkan Luas
Hal. 5
6. Stop
Dari penjelasan di atas dapat diambil kesimpulan pokok tentang
algoritma. Pertama, algoritma harus benar. Kedua algoritma harus
berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar.
Beda Algoritma dan Program ?
Program adalah kumpulan pernyataan komputer, sedangkan
metode dan tahapan sistematis dalam program adalah algoritma.
Program ditulis dengan menggunakan bahasa pemrograman. Jadi
bisa disebut bahwa program adalah suatu implementasi dari bahasa
pemrograman.
Program = Algoritma + Bahasa (Struktur Data)
Penerjemah Bahasa Pemrograman
Untuk menterjemahkan bahasa pemrograman yang kita tulis maka
diperlukan Compiler dan interpreter.
Compiler adalah suatu program yang menterjemahkan bahasa
program (Source code) ke dalam bahasa obyek (object code) secara
keseluruhan program.
Interpreter berbeda dengan Compiler, interpreter menganalisis dan
mengeksekusi setiap baris dari program secara keseluruhan.
Keuntungan dari interpreter adalah dalam eksekusi yang bisa
dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas
an ini interpreter digunakan pada saat pembuatan program berskala
besar.
Hal. 6
Perbedaan Compiler dan interpreter.
Compiler Interpreter
Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per
instruksiBila terjadi kesalahan kompilasi maka
source program harus diperbaiki dan
dikompilasi ulang
Bila terjadi kesalahan interprestasi
dapat
Diperbaiki
Dihasilkan Object program Tidak dihasilkan obyek program
Dihasilkan Executable program Tidak dihasilkan Executable
programProses pekerjaan program lebih
cepat
Proses pekerjaan program lebih
lambatSource program tidak dipergunakan
hanya bila untuk perbaikan saja
Source program terus
dipergunakan
Keamanan dari program lebih
terjamin
Keamanan dari program kurang
terjamin
1.4 Jenis-Jenis Bahasa Pemrograman
Bahasa Pemrograman Tingkat rendah (Bahasa mesin, Biner)
Bahasa Pemrograman Tingkat tinggi
Contoh-contoh Bahasa Pemrograman yang ada :
1. Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C
2. Fungsional : LOGO, APL, LISP
3. Deklaratif : Prolog
Object oriented murni: Smalltalk, Eifel, Java, PHP
Cara penulisan algortima
Ada tiga cara penulisan algoritma, yaitu :
1. Structured English (SE)
SE merupakan alat yang cukup baik untuk menggambarkan suatu
algoritma. Dasar dari SE
adalah Bahasa Inggris, namun kita dapat memodifikasi dengan
Bahasa Indonesia sehingga
kita boleh menyebutnya sebagai Structured Indonesian (SI).
”SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang
akan dikomunikasikan kepada pemakai perangkat lunak”
Hal. 7
2. Pseudocode
Pseudocode adalah kode yang mirip dengan instruksi kode
program sebenarnya.
Pseudocode didasarkan pada bahasa pemrograman yang
sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode
yang berbasis bahasa PASCAL merupakan pseudocode yang sering
digunakan.
“Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code
menunjuk pada kode program”
Contoh Pseudocode :
1. Start
2. READ alas, tinggi
3. Luas = 0.5 * alas * tinggi
4. PRINT Luas
5. Stop
Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip
dengan bahasa BASIC. Pernyataan seperti READ dan PRINT
merupakan keyword yang ada pada bahasa BASIC yang masing-
masing menggantikan kata “baca data” dan “tampilkan”. Dengan
menggunakan pseudocode seperti di atas maka proses penterjemahan
dari algoritma ke kode program menjadi lebih mudah.
1.5 Membuat Alur Logika Pemograman
A. Penyajian atau Penulisan Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian
yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan
yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia
atau bahasa Inggris) dan pseudocode.
Hal. 8
Pseudocode adalah kode yang mirip dengan kode pemrograman yang
sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan
untuk menggambarkan algoritma yang akan dikomunikasikan kepada
pemrogram. Sedangkan algoritma disajikan dengan gambar, yaitu
dengan Flowchart
B. Flowchart (Diagram Alir)
Flowchart atau bagan alir adalah skema/bagan (chart) yang
menunjukkan aliran (flow) di dalam suatu program secara logika.
Flowchart merupakan alat yang banyak digunakan untuk
menggambarkan algoritma dalam bentuk notasi-notasi tertentu.
Flowchart merupakan gambar atau bagan yang
memperlihatkan urutan dan hubungan antar proses beserta
pernyataannya.
Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap
simbol menggambarkan proses tertentu. Sedangkan antara proses
digambarkan dengan garis penghubung. Dengan menggunakan
flowchart akan memudahkan kita untuk melakukan pengecekan bagian-
bagian yang terlupakan dalam analisis masalah. Di samping itu
flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara
pemrogram yang bekerja dalam tim suatu proyek.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan
flowchart, namun ada beberapa anjuran:
1. Hindari pengulangan proses yang tidak perlu dan logika yang
berbelit sehingga jalannya proses menjadi singkat.
2. Jalannya proses digambarkan dari atas ke bawah dan diberikan
tanda panah untuk Memperjelas
3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan
END.
Hal. 9
Berikut merupakan beberapa contoh simbol flowchart yang
disepakati oleh dunia pemrograman:
Penjelasan lebih lanjut :
Simbol-simbol bagan alir program (Flowchart)
Notasi Membuat algoritma sederhana
untuk menyelesaikan permasalahan menggunakan bahasa natural,
flowchart dan pseudocode
Notasi ini disebut Data yang digunakan untuk
mewakili data input atau output atau menyatakan operasi
pemasukan data dan pencetakan hasil
Hal. 10
Notasi ini disebut Process yang digunakan
untuk mewakili suatu proses.
Notasi ini disebut Decision yang digunakan untuk
suatu pemilihan, penyeleksian kondisi di dalam suatu program
Notasi ini disebut Preparation yang digunakan
untuk memberi nilai awal, nilai akhir, penambahan/pengurangan bagi
suatu variabel counter.
Notasi ini disebut Predefined Process yang
digunakan untuk menunjukkan suatu operasi yang rinciannya
ditunjukkan ditempat lain (prosedur, sub- prosedur, fungsi)
Notasi ini disebut Connector yang digunakan untuk menunjukkan
sambungan dari flowchart yang terputus di halaman yang sama atau
halaman berikutnya.
Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus
data atau aliran data dari proses satu ke proses lainnya.
Hal. 11
Contoh program Flowchart
Bagan alir logika program Bagan alir program
komputer terinci
C. Struktur Dasar Algoritma
berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah
tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi
(selection), pengulangan aksi
(iteration) atau kombinasi dari ketiganya. Jadi struktur dasar
pembangunan algoritma ada tiga, yaitu:
Hal. 12
1. Struktur Runtunan / Beruntun : Digunakan untuk program
yang pernyataannya sequential atau urutan.
2. Struktur Pemilihan / Percabangan : Digunakan untuk program
yang menggunakan pemilihan atau penyeleksian kondisi.
3. Struktur Perulangan : Digunakan untuk program yang
pernyataannya akan dieksekusi berulang-ulang.
1. Struktur Algoritma Runtunan / Berurutan :
Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu
struktur berurutan
(sequencing), struktur pemilihan/keputusan/percabangan (branching)
dan struktur pengulangan (looping). Sebuah algoritma biasanya akan
menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah.
Struktur berurutan dapat kita samakan dengan mobil yang sedang
berjalan pada jalur lurus yang tidak terdapat persimpangan seperti
tampak pada Gambar disamping Mobil tersebut akan melewati kilometer
demi kilometer jalan sampai tujuan tercapai. Struktur berurutan terdiri
satu atau lebih instruksi.
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan
penulisannya, yaitu sebuah instruksi dieksekusi setelah instruksi
sebelumnya selesai dieksekusi. Urutan instruksi menentukan keadaan
akhir dari algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin
juga berubah.
Menurut Goldshlager dan Lister (1988) struktur berurutan mengikuti
ketentuan-ketentuan sebagai berikut: Tiap instruksi dikerjakan satu
persatu Tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang.
Urutan instruksi yang dilaksanakan pemroses sama dengan urutan
Hal. 13
aksi sebagaimana yang tertulis di dalam algoritmanya Akhir dari
instruksi terakhir merupakan akhir algoritma.
Hal. 14
Contoh bagan alir logika program berurutan (sequencing)
1. Struktur Algoritma Percabangan
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur
berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan
menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini
kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini seperti
halnya ketika mobil/motor berada dalam persimpangan.
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu
kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision
harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji
kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan
ditempuh.
Contoh Struktur percabangan untuk masalah batasan umur.
Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia
penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang
dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk
permasalahan tersebut.
Hal. 15
Penyelesaian:
Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur
percabangan. Hal ini ditandai dengan adanya pernyataan jika ..maka ...(atau If ...
Then dalam Bahasa Inggris. Bagan alir logika (Flowchart) penyelesaian masalah
nonton film:
Hal. 16
2. Struktur Algoritma Perulangan / Pengulangan
Dalam banyak kasus seringkali kita dihadapkan pada sejumlah
pekerjaan yang harus diulang berkali.Salah satu contoh yang gampang
kita jumpai adalah balapan mobil
Struktur pengulangan terdiri dari dua bagian :
Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk
melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam
ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau
salah (false). Badan pengulangan (loop body), yaitu satu atau lebih
instruksi yang akan diulang
Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi
dan bagian terminasi. Inisialisasi adalah instruksi yang dilakukan
sebelum pengulangan dilakukan pertama kali. Bagian insialisasi
umumnya digunakan untuk memberi nilai awal sebuah variable.
Sedangkan terminasi adalah instruksi yang dilakukan setelah
pengulangan selesai dilaksanakan. Ada beberapa bentuk
pengulangan yang dapat digunakan, masing-masing dengan syarat
dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus
yang sama, namun ada bentuk yang hanya cocok untuk kasus tertentu
saja. Pemilihan bentuk pengulangan untuk masalah tertentu dapat
mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan
yang tepat bergantung pada masalah yang akan diprogram.
Hal. 17
Bagan alir logika (flowchart) untuk mencetak pernyataan
sebanyak 100 kali
Bagan alir logika (Flowchart) untuk mencetak
anggota suatu himpunan.
Hal. 18
Struktur pengulangan dengan For
Pengulangan dengan menggunakan For, merupakan salah teknik
pengulangan yang paling tua dalam bahasa pemrograman. Hampir
semua bahasa pemrograman menyediakan metode ini, meskipun
sintaksnya mungkin berbeda. Pada struktur For kita harus tahu
terlebih dahulu seberapa banyak badan loop akan diulang. Struktur
ini menggunakan sebuah variable yang biasa disebut sebagai loop s
counter, yang nilainya akan naik atau turun selama proses
pengulangan.
Contoh :
Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, ..,
19. Buatlah flowchart untuk mencetak anggota himpunan tersebut.
Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah
flowchart . Bagaimana menurut kalian jawabannya? Marilah kita
uraikan jalannya fowchart tersebut. Pada flowchart, setelah Start, kita
meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah
yang disebut inisialisasi . Kita memberi nilai awal untuk A = 1. Variabel
counter-nya adalah X dengan nilai awal 1 dan nilai akhir 10, tanpa
increment (atau secara default increment-nya adalah 1). Ketika masuk
ke badan loop untuk pertama kali maka akan dicetak langsung nilai
variabel A. Nilai variabel A masih sama dengan 1. Kemudian proses
berikutnya adalah pernyataan A = A + 2. Pernyataan ini mungkin agak
aneh, tapi ini adalah sesuatu yang pemrograman. Arti dari pernyataan
ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A
lama ditambah 2. Sehingga A akan bernilai 3. Kemudian dilakukan
pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga
yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita
Hal. 19
ganti dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian
seterusnya. Sehingga output dari flowchart ini adalah 1,3, 5, 7, ..,19.
Struktur pengulangan dengan While
Pada pengulangan dengan For, banyaknya pengulangan diketahui
dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah
ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu pasti
harus berapa kali mengulang? Pengulangan dengan While
merupakan
jawaban dari permasalahan ini. Seperti halnya For, struktur
pengulangan dengan While juga merupakan struktur yang didukung
oleh hampir semua bahasa pemrograman namun dengan sintaks
yang berbeda.
Struktur While akan mengulang pernyataan pada badan loop sepanjang
kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu
pasti berapa kali diulang. Yang penting sepanjang kondisi pada While
Hal. 20
dipenuhi maka pernyataan pada badan loop akan diulang. Penyelesaian:
Perhatikan Gambar. bisakah kalian menentukan hasil dari flowchart
tersebut? Perhatikan tahapan eksekusi flowchart berikut in Pada
flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua
variabel tersebut kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum
proses loop terjadi. Variabel A adalah variabel counter.
Pada simbol decision, nilai A akan diperiksa apakah memenuhi
kondisi (<b10). Jika Ya maka perintah berikutnya dieksekusi, jika
tidak maka program akan berhenti. Pada awal eksekusi ini kondisi
akan terpenuhi karena nilai A= 1.
Jalankan perintah Print B.
Nilai variabel A kemudian diganti dengan nilai A lama (1)
ditambah 2. Sehingga nilai variabel A baru adalah 3. Sedangkan
nilai variabel B = 9 (hasil perkalian A = 3).
Program akan berputar kembali untuk memeriksa apakah nilai
variabel A masih lebih
kecil dari 10. Pada kondisi ini nilai A = 3, sehingga kondisi masih
terpenuhi. Kemudian langkah berulang ke langkah ke 3. Begitu
seterusnya sampai nilai variabel A tidak lagi memenuhi syarat
kurang dari 10.
LATIHAN
1. Buatkan Flowchart untuk mencari Luas persegi empat ?
2. Buatlah Algoritma dan Flowchart untuk menentukan kelulusan
siswa ?
Dengan ketentuan:
Jika Nilai >= 70 maka Lulus
Jika Nilai <= 70
maka Tidak Lulus

Pertemuan 1

  • 1.
    Hal. 1 PERTEMUAN 1 Materi: 1. Notasi Algoritma 2. Aplikasi Notasi Algoritma 1. Pengantar Algoritma Pemrograman Belajar memprogram adalah belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah tersebut kemudian menuangkannya dalam suatu notasi yang disepakati bersama. “lebih bersifat pemahaman persoalan, analisis, sintesis” Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks (tatabahasa), setiap instruksi yang ada dan tata cara pengoperasian kompilator atau interpreter bahasa yang bersangkutan pada mesin tertentu. 1.1 Algortima dan pemrograman Dasar Perangko dari Rusia pada Gambar di samping ini bergambar seorang pria dengan nama Muhammad bin Musa al-Khwarizmi. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini. Dia adalah seorang ilmuwan Islam yang karya karyanya dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi dasar perkembangan ilmu modern. Dan dari namanya istilah yang akan kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi
  • 2.
    Hal. 2 kemudian berubahmenjadi algorithm dalam Bahasa Inggris dan diterjemahkan menjadi algoritma dalam bahasa Indonesia. 1.2 Definisi Algortima Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.Algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi. 1.3 Struktur Algortima Perhatikan algoritma sederhana berikut : Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah: 1. Menyiapkan Peralatan Tulis 2. Menulis surat 3. Surat dimasukkan ke dalam amplop tertutup 4. Amplop ditempeli perangko secukupnya. 5. Pergi ke Kantor Pos terdekat untuk mengirimkannya Algoritma menghitung luas persegi panjang: 1. Masukkan panjang (P) 2. Masukkan lebar (L) 3.Luas P * L 4. Tulis Luas
  • 3.
    Hal. 3 Pembuatan algoritmamempunyai banyak keuntungan di antaranya: a. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya. b. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. c) Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama. Beberapa hal yang perlu diperhatikan dalam membuat algoritma: a. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. b. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik. c. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum. d. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya. Pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya.
  • 4.
    Hal. 4 e. Algoritmasebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. f. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman Perhatikan algoritma sederhana berikut : Algoritma menghitung luas segitiga 1. Start 2. Baca data alas dan tinggi. 3. Luas adalah alas kali tinggi kali 0.5 4. Tampilkan Luas 5. Stop Penjelasan : Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya satu kali. Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi. Hasil perbaikan algoritma perhitungan luas segitiga 1. Start 2. Baca data alas dan tinggi. 3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop 4. Luas adalah alas kali tinggi kali 0.5 5. Tampilkan Luas
  • 5.
    Hal. 5 6. Stop Daripenjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar. Beda Algoritma dan Program ? Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Program = Algoritma + Bahasa (Struktur Data) Penerjemah Bahasa Pemrograman Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan interpreter. Compiler adalah suatu program yang menterjemahkan bahasa program (Source code) ke dalam bahasa obyek (object code) secara keseluruhan program. Interpreter berbeda dengan Compiler, interpreter menganalisis dan mengeksekusi setiap baris dari program secara keseluruhan. Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan pada saat pembuatan program berskala besar.
  • 6.
    Hal. 6 Perbedaan Compilerdan interpreter. Compiler Interpreter Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per instruksiBila terjadi kesalahan kompilasi maka source program harus diperbaiki dan dikompilasi ulang Bila terjadi kesalahan interprestasi dapat Diperbaiki Dihasilkan Object program Tidak dihasilkan obyek program Dihasilkan Executable program Tidak dihasilkan Executable programProses pekerjaan program lebih cepat Proses pekerjaan program lebih lambatSource program tidak dipergunakan hanya bila untuk perbaikan saja Source program terus dipergunakan Keamanan dari program lebih terjamin Keamanan dari program kurang terjamin 1.4 Jenis-Jenis Bahasa Pemrograman Bahasa Pemrograman Tingkat rendah (Bahasa mesin, Biner) Bahasa Pemrograman Tingkat tinggi Contoh-contoh Bahasa Pemrograman yang ada : 1. Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C 2. Fungsional : LOGO, APL, LISP 3. Deklaratif : Prolog Object oriented murni: Smalltalk, Eifel, Java, PHP Cara penulisan algortima Ada tiga cara penulisan algoritma, yaitu : 1. Structured English (SE) SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). ”SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak”
  • 7.
    Hal. 7 2. Pseudocode Pseudocodeadalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. “Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program” Contoh Pseudocode : 1. Start 2. READ alas, tinggi 3. Luas = 0.5 * alas * tinggi 4. PRINT Luas 5. Stop Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing- masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah. 1.5 Membuat Alur Logika Pemograman A. Penyajian atau Penulisan Algoritma Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode.
  • 8.
    Hal. 8 Pseudocode adalahkode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, yaitu dengan Flowchart B. Flowchart (Diagram Alir) Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk notasi-notasi tertentu. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian- bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek. Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran: 1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. 2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk Memperjelas 3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
  • 9.
    Hal. 9 Berikut merupakanbeberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman: Penjelasan lebih lanjut : Simbol-simbol bagan alir program (Flowchart) Notasi Membuat algoritma sederhana untuk menyelesaikan permasalahan menggunakan bahasa natural, flowchart dan pseudocode Notasi ini disebut Data yang digunakan untuk mewakili data input atau output atau menyatakan operasi pemasukan data dan pencetakan hasil
  • 10.
    Hal. 10 Notasi inidisebut Process yang digunakan untuk mewakili suatu proses. Notasi ini disebut Decision yang digunakan untuk suatu pemilihan, penyeleksian kondisi di dalam suatu program Notasi ini disebut Preparation yang digunakan untuk memberi nilai awal, nilai akhir, penambahan/pengurangan bagi suatu variabel counter. Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, sub- prosedur, fungsi) Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari flowchart yang terputus di halaman yang sama atau halaman berikutnya. Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau aliran data dari proses satu ke proses lainnya.
  • 11.
    Hal. 11 Contoh programFlowchart Bagan alir logika program Bagan alir program komputer terinci C. Struktur Dasar Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
  • 12.
    Hal. 12 1. StrukturRuntunan / Beruntun : Digunakan untuk program yang pernyataannya sequential atau urutan. 2. Struktur Pemilihan / Percabangan : Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. 3. Struktur Perulangan : Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang. 1. Struktur Algoritma Runtunan / Berurutan : Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan (sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan (looping). Sebuah algoritma biasanya akan menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah. Struktur berurutan dapat kita samakan dengan mobil yang sedang berjalan pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar disamping Mobil tersebut akan melewati kilometer demi kilometer jalan sampai tujuan tercapai. Struktur berurutan terdiri satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yaitu sebuah instruksi dieksekusi setelah instruksi sebelumnya selesai dieksekusi. Urutan instruksi menentukan keadaan akhir dari algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin juga berubah. Menurut Goldshlager dan Lister (1988) struktur berurutan mengikuti ketentuan-ketentuan sebagai berikut: Tiap instruksi dikerjakan satu persatu Tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan
  • 13.
    Hal. 13 aksi sebagaimanayang tertulis di dalam algoritmanya Akhir dari instruksi terakhir merupakan akhir algoritma.
  • 14.
    Hal. 14 Contoh baganalir logika program berurutan (sequencing) 1. Struktur Algoritma Percabangan Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini seperti halnya ketika mobil/motor berada dalam persimpangan. Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan ditempuh. Contoh Struktur percabangan untuk masalah batasan umur. Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk permasalahan tersebut.
  • 15.
    Hal. 15 Penyelesaian: Permasalahan diatasmerupakan ciri permasalahan yang menggunakan struktur percabangan. Hal ini ditandai dengan adanya pernyataan jika ..maka ...(atau If ... Then dalam Bahasa Inggris. Bagan alir logika (Flowchart) penyelesaian masalah nonton film:
  • 16.
    Hal. 16 2. StrukturAlgoritma Perulangan / Pengulangan Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang berkali.Salah satu contoh yang gampang kita jumpai adalah balapan mobil Struktur pengulangan terdiri dari dua bagian : Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false). Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian terminasi. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian insialisasi umumnya digunakan untuk memberi nilai awal sebuah variable. Sedangkan terminasi adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan. Ada beberapa bentuk pengulangan yang dapat digunakan, masing-masing dengan syarat dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada bentuk yang hanya cocok untuk kasus tertentu saja. Pemilihan bentuk pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang tepat bergantung pada masalah yang akan diprogram.
  • 17.
    Hal. 17 Bagan alirlogika (flowchart) untuk mencetak pernyataan sebanyak 100 kali Bagan alir logika (Flowchart) untuk mencetak anggota suatu himpunan.
  • 18.
    Hal. 18 Struktur pengulangandengan For Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda. Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan. Contoh : Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, .., 19. Buatlah flowchart untuk mencetak anggota himpunan tersebut. Penyelesaian: Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart . Bagaimana menurut kalian jawabannya? Marilah kita uraikan jalannya fowchart tersebut. Pada flowchart, setelah Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang disebut inisialisasi . Kita memberi nilai awal untuk A = 1. Variabel counter-nya adalah X dengan nilai awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya adalah 1). Ketika masuk ke badan loop untuk pertama kali maka akan dicetak langsung nilai variabel A. Nilai variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan A = A + 2. Pernyataan ini mungkin agak aneh, tapi ini adalah sesuatu yang pemrograman. Arti dari pernyataan ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A lama ditambah 2. Sehingga A akan bernilai 3. Kemudian dilakukan pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita
  • 19.
    Hal. 19 ganti denganpenjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga output dari flowchart ini adalah 1,3, 5, 7, ..,19. Struktur pengulangan dengan While Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang? Pengulangan dengan While merupakan jawaban dari permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan struktur yang didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang berbeda. Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting sepanjang kondisi pada While
  • 20.
    Hal. 20 dipenuhi makapernyataan pada badan loop akan diulang. Penyelesaian: Perhatikan Gambar. bisakah kalian menentukan hasil dari flowchart tersebut? Perhatikan tahapan eksekusi flowchart berikut in Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua variabel tersebut kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum proses loop terjadi. Variabel A adalah variabel counter. Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (<b10). Jika Ya maka perintah berikutnya dieksekusi, jika tidak maka program akan berhenti. Pada awal eksekusi ini kondisi akan terpenuhi karena nilai A= 1. Jalankan perintah Print B. Nilai variabel A kemudian diganti dengan nilai A lama (1) ditambah 2. Sehingga nilai variabel A baru adalah 3. Sedangkan nilai variabel B = 9 (hasil perkalian A = 3). Program akan berputar kembali untuk memeriksa apakah nilai variabel A masih lebih kecil dari 10. Pada kondisi ini nilai A = 3, sehingga kondisi masih terpenuhi. Kemudian langkah berulang ke langkah ke 3. Begitu seterusnya sampai nilai variabel A tidak lagi memenuhi syarat kurang dari 10. LATIHAN 1. Buatkan Flowchart untuk mencari Luas persegi empat ? 2. Buatlah Algoritma dan Flowchart untuk menentukan kelulusan siswa ? Dengan ketentuan: Jika Nilai >= 70 maka Lulus Jika Nilai <= 70 maka Tidak Lulus