http://www.prodaslab.com/
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. Beberapa pakar memberi formula bahwa :
Program =
Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
- Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
- Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
4. Beberapa hal
yang perlu diperhatikan dalam membuat algoritma :
- Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
- Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
- 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.
- 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.
- Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
- Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa
pemrograman.
Ada beberapa
hal yang harus diperhatikan pada translasi tersebut, yaitu :
a) Pendeklarasian
variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel
dalam penggunaan bahasa pemrograman apabila tidak semua
bahasa pemrograman membutuhkannya.
b) Pemilihan tipe
data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c) Pemakaian
instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi
masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d) Aturan
sintaksis
Pada saat menuliskan program kita terikat dengan aturan
sintaksis dalam bahasa pemrograman yang akan digunakan.
e) Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f) Cara
pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1.
Mendefinisikan masalah
Ini merupakan langkah
pertama yang sering dilupakan orang. Menurut hukum Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis
program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan
dengan menggunakan komputer, dan apa inputan serta outputnya.
2.
Menemukan solusi
Setelah masalah
didefinisikan, maka langkah berikutnya adalah menentukan solusi.
Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih
mudah diselesaikan.
Contohnya masalah invers
matriks, maka kita dapat membagi menjadi beberapa
modul:
�� meminta masukkan berupa matriks bujur sangkar
�� mencari invers matriks
�� menampilkan hasil kepada pengguna
Dengan penggunaan modul
tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3.
Memilih algoritma
Pilihlah algoritma yang
benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis program
Pilihlah bahasa yang mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan
platform lainnya.
5.
Menguji program
Setelah program jadi,
silahkan uji program tersebut dengan segala macam kemungkinan yang ada,
termasuk error-handlingnya sehingga program tersebut akan benar-benar handal
dan layak digunakan.
6.
Menulis dokumentasi
Menulis dokumentasi sangat
penting agar pada suatu saat jika kita akan melakukan
perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan
mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil
tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,
untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat program
Program yang sudah jadi
perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.
Atau mungkin juga pengguna membutuhkan fasilitas
baru yang
dulu tidak ada.
Jenis Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial,
berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi
suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara
bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan
panjang (P)
2.
Masukkan
lebar (L)
3.
L ← P
* L
4.
Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1. Masukkan
bilangan pertama
2. Masukkan
bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah 5.
4. Tampilkan
bilangan pertama
5. Tampilkan
bilangan kedua
Contoh
Algoritma
1. Masukkan
bilangan pertama (a)
2. Masukkan
bilangan kedua (b)
3. if a >
b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pemrograman
Definisi Program/Pemrograman
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan
urutan-urutan, sekuensia
�� Program
adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan
kumpulan instruksi yang dikerjakan secara berurutan.
�� Harus
mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
2.
Pemrograman Fungsional
�� Berdasarkan
teori fungsi matematika
�� Fungsi
merupakan dasar utama program.
3. Pemrograman
Terstruktur
�� Secara
berurutan dan terstrukrtur.
�� Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh:
PASCAL dan C
4.
Pemrograman Modular
�� Pemrograman
ini membentuk banyak modul.
�� Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah
program dapat merupakan kumpulan modul-modul.
�� Contoh:
MODULA-2 atau ADA
5.
Pemrograman Berorientasi Obyek
�� Pemrograman
berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++,
Object Pascal, dan Java.
6.
Pemrograman Berorientasi Fungsi
�� Pemrograman
ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan
pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured
Query Language), HTML, XML dan lain-lain.
7.
Pemrograman Deklaratif
�� Pemrograman
ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi
Algoritma
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi.
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus dilakukan adalah:
�� Menulis surat
�� Surat dimasukkan ke dalam amplop tertutup
�� Amplop ditempeli perangko secukupnya.
�� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Contoh
Algoritma Menghitung Volume Bangun Ruang (Pseudocode)
Menghitung volume bangun ruang
dimana terdapat 6 buah bangun ruang yaitu kubus, balok, bola, limas, kerucut
dan tabung.
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Algoritma
dan Flowchart, Dasar Pemrograman
Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari
suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari
suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu
untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah
dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam
sekumpulan instruksi
3. sekumpulan instruksi yang
dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam
suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman,
dibedakan menjadi:
·
Bahasa tingkat rendah (low level language):
Bahasa yang
berorientasi ke mesin.
·
Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa
Pascal, bahasa C, dll.
2. Program yang ditulis dalam
bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner
digit) dengan menggunakan penerjemah.
Penerjemah:
·
Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·
Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa
Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan
langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan
suatu masalah yang disusun secara sistematis.
1. Algoritma adalah inti dari
ilmu komputer
2. Algoritma adalah
urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu
masalah
3. Algoritma adalah blueprint
dari program
4. Sebaiknya disusun sebelum
membuat program
5. Kriteria suatu algoritma:
·
Ada input dan output
·
Efektifitas dan efisien
·
Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna
biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana
A ke dalam bejana B
2. Tuangkan larutan dari
bejana B ke dalam bejana A
Algoritma TUKAR ISI BEJANA di atas
tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil
pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana,
diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya
bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut:
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari
bejana A ke dalam bejana C.
2. Tuangkan larutan dari
bejana B ke dalam bejana A.
3. Tuangkan larutan dari
bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti
setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus
didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau
lebih masukan.
4. Algoritma memiliki nol atau
lebih keluaran.
5. Algoritma harus efektif
(setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk
akal).
Memrogram dan Bahasa Pemrograman:
1. Belajar memrogram adalah
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami.
2. Belajar bahasa pemrograman
adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam
bahasa itu saja.
Notasi Algoritma:
1. Penulisan algoritma tidak
tergantung dari spesifikasi bahasa pemrograman dan komputer yang
mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat
diterjemahkan ke dalam berbagai bahasa pemrograman.
2. Notasi algoritma dapat
berupa:
·
Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa,
jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1. Mendefinisikan masalah dan
menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman
yang digunakan.
2. Merealisasikan dengan
langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada
teman:
·
Tulis surat pada secarik kertas surat
·
Ambil sampul surat
·
Masukkan surat ke dalam sampul
·
Tutup sampul surat dengan perekat
·
Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·
Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·
Tempel prangko pada sampul
·
Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap:
·
Masukkan sebuah bilangan sembarang
·
Bagi bilangan tersebut dengan 2
·
Hitung sisa hasil bagi pada langkah 2
·
Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·
Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah
bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian
suatu masalah
2. Merupakan cara penyajian
dari suatu algoritma
3. Ada 2 macam flowchart:
·
System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output serta
jenis penyimpanan dalam proses pengolahan data.
·
Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols
(simbol penghubung alur)
2. Processing Symbols (simbol
proses)
3. Input-Output Symbols
(simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil
analisa suatu masalah
3. Flowchart dapat bervariasi
antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3
bagian utama:
·
Input
·
Proses
·
Output
5. Hindari pengulangan yang
tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan
dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali
dari satu titik START dan diakhiri dengan End.
Pseudocode:
1. Diberikan nama dan nilai
mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama
: String
Nilai
: Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh
algoritma tersebut.
2. Deklarasi
Bagian untuk
mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure,
dan fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis
dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma
Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung
luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta
phi}
R
: real {jari-jari lingkaran}
Luas : real
{luas lingkaran}
Keliling : real {keliling lingkaran}
3.
Deskripsi
Read (R)
Luas = phi *
R * R
Keliling
= 2 * phi * R
Write (luas, keliling)
http://www.prodaslab.com/
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. Beberapa pakar memberi formula bahwa :
Program =
Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
- Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
- Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
4. Beberapa hal
yang perlu diperhatikan dalam membuat algoritma :
- Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
- Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
- 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.
- 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.
- Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
- Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa
pemrograman.
Ada beberapa
hal yang harus diperhatikan pada translasi tersebut, yaitu :
a) Pendeklarasian
variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel
dalam penggunaan bahasa pemrograman apabila tidak semua
bahasa pemrograman membutuhkannya.
b) Pemilihan tipe
data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c) Pemakaian
instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi
masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d) Aturan
sintaksis
Pada saat menuliskan program kita terikat dengan aturan
sintaksis dalam bahasa pemrograman yang akan digunakan.
e) Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f) Cara
pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1.
Mendefinisikan masalah
Ini merupakan langkah
pertama yang sering dilupakan orang. Menurut hukum Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis
program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan
dengan menggunakan komputer, dan apa inputan serta outputnya.
2.
Menemukan solusi
Setelah masalah
didefinisikan, maka langkah berikutnya adalah menentukan solusi.
Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih
mudah diselesaikan.
Contohnya masalah invers
matriks, maka kita dapat membagi menjadi beberapa
modul:
�� meminta masukkan berupa matriks bujur sangkar
�� mencari invers matriks
�� menampilkan hasil kepada pengguna
Dengan penggunaan modul
tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3.
Memilih algoritma
Pilihlah algoritma yang
benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis program
Pilihlah bahasa yang mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan
platform lainnya.
5.
Menguji program
Setelah program jadi,
silahkan uji program tersebut dengan segala macam kemungkinan yang ada,
termasuk error-handlingnya sehingga program tersebut akan benar-benar handal
dan layak digunakan.
6.
Menulis dokumentasi
Menulis dokumentasi sangat
penting agar pada suatu saat jika kita akan melakukan
perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan
mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil
tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,
untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat program
Program yang sudah jadi
perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.
Atau mungkin juga pengguna membutuhkan fasilitas
baru yang
dulu tidak ada.
Jenis Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial,
berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi
suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara
bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan
panjang (P)
2.
Masukkan
lebar (L)
3.
L ← P
* L
4.
Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1. Masukkan
bilangan pertama
2. Masukkan
bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah 5.
4. Tampilkan
bilangan pertama
5. Tampilkan
bilangan kedua
Contoh
Algoritma
1. Masukkan
bilangan pertama (a)
2. Masukkan
bilangan kedua (b)
3. if a >
b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pemrograman
Definisi Program/Pemrograman
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan
urutan-urutan, sekuensia
�� Program
adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan
kumpulan instruksi yang dikerjakan secara berurutan.
�� Harus
mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
2.
Pemrograman Fungsional
�� Berdasarkan
teori fungsi matematika
�� Fungsi
merupakan dasar utama program.
3. Pemrograman
Terstruktur
�� Secara
berurutan dan terstrukrtur.
�� Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh:
PASCAL dan C
4.
Pemrograman Modular
�� Pemrograman
ini membentuk banyak modul.
�� Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah
program dapat merupakan kumpulan modul-modul.
�� Contoh:
MODULA-2 atau ADA
5.
Pemrograman Berorientasi Obyek
�� Pemrograman
berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++,
Object Pascal, dan Java.
6.
Pemrograman Berorientasi Fungsi
�� Pemrograman
ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan
pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured
Query Language), HTML, XML dan lain-lain.
7.
Pemrograman Deklaratif
�� Pemrograman
ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi
Algoritma
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi.
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus dilakukan adalah:
�� Menulis surat
�� Surat dimasukkan ke dalam amplop tertutup
�� Amplop ditempeli perangko secukupnya.
�� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Contoh
Algoritma Menghitung Volume Bangun Ruang (Pseudocode)
Menghitung volume bangun ruang
dimana terdapat 6 buah bangun ruang yaitu kubus, balok, bola, limas, kerucut
dan tabung.
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Algoritma
dan Flowchart, Dasar Pemrograman
Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari
suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari
suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu
untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah
dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam
sekumpulan instruksi
3. sekumpulan instruksi yang
dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam
suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman,
dibedakan menjadi:
·
Bahasa tingkat rendah (low level language):
Bahasa yang
berorientasi ke mesin.
·
Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa
Pascal, bahasa C, dll.
2. Program yang ditulis dalam
bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner
digit) dengan menggunakan penerjemah.
Penerjemah:
·
Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·
Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa
Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan
langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan
suatu masalah yang disusun secara sistematis.
1. Algoritma adalah inti dari
ilmu komputer
2. Algoritma adalah
urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu
masalah
3. Algoritma adalah blueprint
dari program
4. Sebaiknya disusun sebelum
membuat program
5. Kriteria suatu algoritma:
·
Ada input dan output
·
Efektifitas dan efisien
·
Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna
biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana
A ke dalam bejana B
2. Tuangkan larutan dari
bejana B ke dalam bejana A
Algoritma TUKAR ISI BEJANA di atas
tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil
pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana,
diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya
bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut:
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari
bejana A ke dalam bejana C.
2. Tuangkan larutan dari
bejana B ke dalam bejana A.
3. Tuangkan larutan dari
bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti
setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus
didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau
lebih masukan.
4. Algoritma memiliki nol atau
lebih keluaran.
5. Algoritma harus efektif
(setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk
akal).
Memrogram dan Bahasa Pemrograman:
1. Belajar memrogram adalah
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami.
2. Belajar bahasa pemrograman
adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam
bahasa itu saja.
Notasi Algoritma:
1. Penulisan algoritma tidak
tergantung dari spesifikasi bahasa pemrograman dan komputer yang
mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat
diterjemahkan ke dalam berbagai bahasa pemrograman.
2. Notasi algoritma dapat
berupa:
·
Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa,
jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1. Mendefinisikan masalah dan
menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman
yang digunakan.
2. Merealisasikan dengan
langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada
teman:
·
Tulis surat pada secarik kertas surat
·
Ambil sampul surat
·
Masukkan surat ke dalam sampul
·
Tutup sampul surat dengan perekat
·
Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·
Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·
Tempel prangko pada sampul
·
Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap:
·
Masukkan sebuah bilangan sembarang
·
Bagi bilangan tersebut dengan 2
·
Hitung sisa hasil bagi pada langkah 2
·
Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·
Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah
bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian
suatu masalah
2. Merupakan cara penyajian
dari suatu algoritma
3. Ada 2 macam flowchart:
·
System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output serta
jenis penyimpanan dalam proses pengolahan data.
·
Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols
(simbol penghubung alur)
2. Processing Symbols (simbol
proses)
3. Input-Output Symbols
(simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil
analisa suatu masalah
3. Flowchart dapat bervariasi
antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3
bagian utama:
·
Input
·
Proses
·
Output
5. Hindari pengulangan yang
tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan
dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali
dari satu titik START dan diakhiri dengan End.
Pseudocode:
1. Diberikan nama dan nilai
mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama
: String
Nilai
: Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh
algoritma tersebut.
2. Deklarasi
Bagian untuk
mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure,
dan fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis
dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma
Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung
luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta
phi}
R
: real {jari-jari lingkaran}
Luas : real
{luas lingkaran}
Keliling : real {keliling lingkaran}
3.
Deskripsi
Read (R)
Luas = phi *
R * R
Keliling
= 2 * phi * R
Write (luas, keliling)
http://www.prodaslab.com/
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. Beberapa pakar memberi formula bahwa :
Program =
Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
- Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
- Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
4. Beberapa hal
yang perlu diperhatikan dalam membuat algoritma :
- Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
- Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
- 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.
- 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.
- Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
- Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa
pemrograman.
Ada beberapa
hal yang harus diperhatikan pada translasi tersebut, yaitu :
a) Pendeklarasian
variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel
dalam penggunaan bahasa pemrograman apabila tidak semua
bahasa pemrograman membutuhkannya.
b) Pemilihan tipe
data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c) Pemakaian
instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi
masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d) Aturan
sintaksis
Pada saat menuliskan program kita terikat dengan aturan
sintaksis dalam bahasa pemrograman yang akan digunakan.
e) Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f) Cara
pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1.
Mendefinisikan masalah
Ini merupakan langkah
pertama yang sering dilupakan orang. Menurut hukum Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis
program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan
dengan menggunakan komputer, dan apa inputan serta outputnya.
2.
Menemukan solusi
Setelah masalah
didefinisikan, maka langkah berikutnya adalah menentukan solusi.
Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih
mudah diselesaikan.
Contohnya masalah invers
matriks, maka kita dapat membagi menjadi beberapa
modul:
�� meminta masukkan berupa matriks bujur sangkar
�� mencari invers matriks
�� menampilkan hasil kepada pengguna
Dengan penggunaan modul
tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3.
Memilih algoritma
Pilihlah algoritma yang
benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis program
Pilihlah bahasa yang mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan
platform lainnya.
5.
Menguji program
Setelah program jadi,
silahkan uji program tersebut dengan segala macam kemungkinan yang ada,
termasuk error-handlingnya sehingga program tersebut akan benar-benar handal
dan layak digunakan.
6.
Menulis dokumentasi
Menulis dokumentasi sangat
penting agar pada suatu saat jika kita akan melakukan
perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan
mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil
tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,
untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat program
Program yang sudah jadi
perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.
Atau mungkin juga pengguna membutuhkan fasilitas
baru yang
dulu tidak ada.
Jenis Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial,
berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi
suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara
bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan
panjang (P)
2.
Masukkan
lebar (L)
3.
L ← P
* L
4.
Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1. Masukkan
bilangan pertama
2. Masukkan
bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah 5.
4. Tampilkan
bilangan pertama
5. Tampilkan
bilangan kedua
Contoh
Algoritma
1. Masukkan
bilangan pertama (a)
2. Masukkan
bilangan kedua (b)
3. if a >
b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pemrograman
Definisi Program/Pemrograman
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan
urutan-urutan, sekuensia
�� Program
adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan
kumpulan instruksi yang dikerjakan secara berurutan.
�� Harus
mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
2.
Pemrograman Fungsional
�� Berdasarkan
teori fungsi matematika
�� Fungsi
merupakan dasar utama program.
3. Pemrograman
Terstruktur
�� Secara
berurutan dan terstrukrtur.
�� Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh:
PASCAL dan C
4.
Pemrograman Modular
�� Pemrograman
ini membentuk banyak modul.
�� Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah
program dapat merupakan kumpulan modul-modul.
�� Contoh:
MODULA-2 atau ADA
5.
Pemrograman Berorientasi Obyek
�� Pemrograman
berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++,
Object Pascal, dan Java.
6.
Pemrograman Berorientasi Fungsi
�� Pemrograman
ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan
pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured
Query Language), HTML, XML dan lain-lain.
7.
Pemrograman Deklaratif
�� Pemrograman
ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi
Algoritma
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi.
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus dilakukan adalah:
�� Menulis surat
�� Surat dimasukkan ke dalam amplop tertutup
�� Amplop ditempeli perangko secukupnya.
�� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Contoh
Algoritma Menghitung Volume Bangun Ruang (Pseudocode)
Menghitung volume bangun ruang
dimana terdapat 6 buah bangun ruang yaitu kubus, balok, bola, limas, kerucut
dan tabung.
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Algoritma
dan Flowchart, Dasar Pemrograman
Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari
suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari
suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu
untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah
dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam
sekumpulan instruksi
3. sekumpulan instruksi yang
dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam
suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman,
dibedakan menjadi:
·
Bahasa tingkat rendah (low level language):
Bahasa yang
berorientasi ke mesin.
·
Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa
Pascal, bahasa C, dll.
2. Program yang ditulis dalam
bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner
digit) dengan menggunakan penerjemah.
Penerjemah:
·
Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·
Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa
Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan
langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan
suatu masalah yang disusun secara sistematis.
1. Algoritma adalah inti dari
ilmu komputer
2. Algoritma adalah
urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu
masalah
3. Algoritma adalah blueprint
dari program
4. Sebaiknya disusun sebelum
membuat program
5. Kriteria suatu algoritma:
·
Ada input dan output
·
Efektifitas dan efisien
·
Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna
biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana
A ke dalam bejana B
2. Tuangkan larutan dari
bejana B ke dalam bejana A
Algoritma TUKAR ISI BEJANA di atas
tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil
pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana,
diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya
bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut:
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari
bejana A ke dalam bejana C.
2. Tuangkan larutan dari
bejana B ke dalam bejana A.
3. Tuangkan larutan dari
bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti
setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus
didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau
lebih masukan.
4. Algoritma memiliki nol atau
lebih keluaran.
5. Algoritma harus efektif
(setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk
akal).
Memrogram dan Bahasa Pemrograman:
1. Belajar memrogram adalah
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami.
2. Belajar bahasa pemrograman
adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam
bahasa itu saja.
Notasi Algoritma:
1. Penulisan algoritma tidak
tergantung dari spesifikasi bahasa pemrograman dan komputer yang
mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat
diterjemahkan ke dalam berbagai bahasa pemrograman.
2. Notasi algoritma dapat
berupa:
·
Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa,
jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1. Mendefinisikan masalah dan
menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman
yang digunakan.
2. Merealisasikan dengan
langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada
teman:
·
Tulis surat pada secarik kertas surat
·
Ambil sampul surat
·
Masukkan surat ke dalam sampul
·
Tutup sampul surat dengan perekat
·
Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·
Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·
Tempel prangko pada sampul
·
Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap:
·
Masukkan sebuah bilangan sembarang
·
Bagi bilangan tersebut dengan 2
·
Hitung sisa hasil bagi pada langkah 2
·
Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·
Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah
bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian
suatu masalah
2. Merupakan cara penyajian
dari suatu algoritma
3. Ada 2 macam flowchart:
·
System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output serta
jenis penyimpanan dalam proses pengolahan data.
·
Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols
(simbol penghubung alur)
2. Processing Symbols (simbol
proses)
3. Input-Output Symbols
(simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil
analisa suatu masalah
3. Flowchart dapat bervariasi
antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3
bagian utama:
·
Input
·
Proses
·
Output
5. Hindari pengulangan yang
tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan
dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali
dari satu titik START dan diakhiri dengan End.
Pseudocode:
1. Diberikan nama dan nilai
mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama
: String
Nilai
: Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh
algoritma tersebut.
2. Deklarasi
Bagian untuk
mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure,
dan fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis
dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma
Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung
luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta
phi}
R
: real {jari-jari lingkaran}
Luas : real
{luas lingkaran}
Keliling : real {keliling lingkaran}
3.
Deskripsi
Read (R)
Luas = phi *
R * R
Keliling
= 2 * phi * R
Write (luas, keliling)
http://www.prodaslab.com/
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. Beberapa pakar memberi formula bahwa :
Program =
Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
- Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
- Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
4. Beberapa hal
yang perlu diperhatikan dalam membuat algoritma :
- Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
- Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
- 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.
- 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.
- Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
- Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa
pemrograman.
Ada beberapa
hal yang harus diperhatikan pada translasi tersebut, yaitu :
a) Pendeklarasian
variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel
dalam penggunaan bahasa pemrograman apabila tidak semua
bahasa pemrograman membutuhkannya.
b) Pemilihan tipe
data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c) Pemakaian
instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi
masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d) Aturan
sintaksis
Pada saat menuliskan program kita terikat dengan aturan
sintaksis dalam bahasa pemrograman yang akan digunakan.
e) Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f) Cara
pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1.
Mendefinisikan masalah
Ini merupakan langkah
pertama yang sering dilupakan orang. Menurut hukum Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis
program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan
dengan menggunakan komputer, dan apa inputan serta outputnya.
2.
Menemukan solusi
Setelah masalah
didefinisikan, maka langkah berikutnya adalah menentukan solusi.
Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih
mudah diselesaikan.
Contohnya masalah invers
matriks, maka kita dapat membagi menjadi beberapa
modul:
�� meminta masukkan berupa matriks bujur sangkar
�� mencari invers matriks
�� menampilkan hasil kepada pengguna
Dengan penggunaan modul
tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3.
Memilih algoritma
Pilihlah algoritma yang
benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis program
Pilihlah bahasa yang mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan
platform lainnya.
5.
Menguji program
Setelah program jadi,
silahkan uji program tersebut dengan segala macam kemungkinan yang ada,
termasuk error-handlingnya sehingga program tersebut akan benar-benar handal
dan layak digunakan.
6.
Menulis dokumentasi
Menulis dokumentasi sangat
penting agar pada suatu saat jika kita akan melakukan
perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan
mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil
tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,
untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat program
Program yang sudah jadi
perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.
Atau mungkin juga pengguna membutuhkan fasilitas
baru yang
dulu tidak ada.
Jenis Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial,
berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi
suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara
bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan
panjang (P)
2.
Masukkan
lebar (L)
3.
L ← P
* L
4.
Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1. Masukkan
bilangan pertama
2. Masukkan
bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah 5.
4. Tampilkan
bilangan pertama
5. Tampilkan
bilangan kedua
Contoh
Algoritma
1. Masukkan
bilangan pertama (a)
2. Masukkan
bilangan kedua (b)
3. if a >
b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pemrograman
Definisi Program/Pemrograman
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan
urutan-urutan, sekuensia
�� Program
adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan
kumpulan instruksi yang dikerjakan secara berurutan.
�� Harus
mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
2.
Pemrograman Fungsional
�� Berdasarkan
teori fungsi matematika
�� Fungsi
merupakan dasar utama program.
3. Pemrograman
Terstruktur
�� Secara
berurutan dan terstrukrtur.
�� Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh:
PASCAL dan C
4.
Pemrograman Modular
�� Pemrograman
ini membentuk banyak modul.
�� Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah
program dapat merupakan kumpulan modul-modul.
�� Contoh:
MODULA-2 atau ADA
5.
Pemrograman Berorientasi Obyek
�� Pemrograman
berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++,
Object Pascal, dan Java.
6.
Pemrograman Berorientasi Fungsi
�� Pemrograman
ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan
pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured
Query Language), HTML, XML dan lain-lain.
7.
Pemrograman Deklaratif
�� Pemrograman
ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi
Algoritma
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi.
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus dilakukan adalah:
�� Menulis surat
�� Surat dimasukkan ke dalam amplop tertutup
�� Amplop ditempeli perangko secukupnya.
�� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Contoh
Algoritma Menghitung Volume Bangun Ruang (Pseudocode)
Menghitung volume bangun ruang
dimana terdapat 6 buah bangun ruang yaitu kubus, balok, bola, limas, kerucut
dan tabung.
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Algoritma
dan Flowchart, Dasar Pemrograman
Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari
suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari
suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu
untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah
dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam
sekumpulan instruksi
3. sekumpulan instruksi yang
dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam
suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman,
dibedakan menjadi:
·
Bahasa tingkat rendah (low level language):
Bahasa yang
berorientasi ke mesin.
·
Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa
Pascal, bahasa C, dll.
2. Program yang ditulis dalam
bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner
digit) dengan menggunakan penerjemah.
Penerjemah:
·
Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·
Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa
Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan
langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan
suatu masalah yang disusun secara sistematis.
1. Algoritma adalah inti dari
ilmu komputer
2. Algoritma adalah
urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu
masalah
3. Algoritma adalah blueprint
dari program
4. Sebaiknya disusun sebelum
membuat program
5. Kriteria suatu algoritma:
·
Ada input dan output
·
Efektifitas dan efisien
·
Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna
biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana
A ke dalam bejana B
2. Tuangkan larutan dari
bejana B ke dalam bejana A
Algoritma TUKAR ISI BEJANA di atas
tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil
pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana,
diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya
bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut:
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari
bejana A ke dalam bejana C.
2. Tuangkan larutan dari
bejana B ke dalam bejana A.
3. Tuangkan larutan dari
bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti
setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus
didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau
lebih masukan.
4. Algoritma memiliki nol atau
lebih keluaran.
5. Algoritma harus efektif
(setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk
akal).
Memrogram dan Bahasa Pemrograman:
1. Belajar memrogram adalah
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami.
2. Belajar bahasa pemrograman
adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam
bahasa itu saja.
Notasi Algoritma:
1. Penulisan algoritma tidak
tergantung dari spesifikasi bahasa pemrograman dan komputer yang
mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat
diterjemahkan ke dalam berbagai bahasa pemrograman.
2. Notasi algoritma dapat
berupa:
·
Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa,
jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1. Mendefinisikan masalah dan
menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman
yang digunakan.
2. Merealisasikan dengan
langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada
teman:
·
Tulis surat pada secarik kertas surat
·
Ambil sampul surat
·
Masukkan surat ke dalam sampul
·
Tutup sampul surat dengan perekat
·
Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·
Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·
Tempel prangko pada sampul
·
Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap:
·
Masukkan sebuah bilangan sembarang
·
Bagi bilangan tersebut dengan 2
·
Hitung sisa hasil bagi pada langkah 2
·
Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·
Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah
bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian
suatu masalah
2. Merupakan cara penyajian
dari suatu algoritma
3. Ada 2 macam flowchart:
·
System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output serta
jenis penyimpanan dalam proses pengolahan data.
·
Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols
(simbol penghubung alur)
2. Processing Symbols (simbol
proses)
3. Input-Output Symbols
(simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil
analisa suatu masalah
3. Flowchart dapat bervariasi
antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3
bagian utama:
·
Input
·
Proses
·
Output
5. Hindari pengulangan yang
tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan
dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali
dari satu titik START dan diakhiri dengan End.
Pseudocode:
1. Diberikan nama dan nilai
mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama
: String
Nilai
: Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh
algoritma tersebut.
2. Deklarasi
Bagian untuk
mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure,
dan fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis
dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma
Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung
luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta
phi}
R
: real {jari-jari lingkaran}
Luas : real
{luas lingkaran}
Keliling : real {keliling lingkaran}
3.
Deskripsi
Read (R)
Luas = phi *
R * R
Keliling
= 2 * phi * R
Write (luas, keliling)
http://www.prodaslab.com/
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. Beberapa pakar memberi formula bahwa :
Program =
Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
- Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
- Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
4. Beberapa hal
yang perlu diperhatikan dalam membuat algoritma :
- Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
- Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
- 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.
- 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.
- Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
- Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa
pemrograman.
Ada beberapa
hal yang harus diperhatikan pada translasi tersebut, yaitu :
a) Pendeklarasian
variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel
dalam penggunaan bahasa pemrograman apabila tidak semua
bahasa pemrograman membutuhkannya.
b) Pemilihan tipe
data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c) Pemakaian
instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi
masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d) Aturan
sintaksis
Pada saat menuliskan program kita terikat dengan aturan
sintaksis dalam bahasa pemrograman yang akan digunakan.
e) Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f) Cara
pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1.
Mendefinisikan masalah
Ini merupakan langkah
pertama yang sering dilupakan orang. Menurut hukum Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis
program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan
dengan menggunakan komputer, dan apa inputan serta outputnya.
2.
Menemukan solusi
Setelah masalah
didefinisikan, maka langkah berikutnya adalah menentukan solusi.
Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih
mudah diselesaikan.
Contohnya masalah invers
matriks, maka kita dapat membagi menjadi beberapa
modul:
�� meminta masukkan berupa matriks bujur sangkar
�� mencari invers matriks
�� menampilkan hasil kepada pengguna
Dengan penggunaan modul
tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3.
Memilih algoritma
Pilihlah algoritma yang
benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis program
Pilihlah bahasa yang mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan
platform lainnya.
5.
Menguji program
Setelah program jadi,
silahkan uji program tersebut dengan segala macam kemungkinan yang ada,
termasuk error-handlingnya sehingga program tersebut akan benar-benar handal
dan layak digunakan.
6.
Menulis dokumentasi
Menulis dokumentasi sangat
penting agar pada suatu saat jika kita akan melakukan
perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan
mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil
tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,
untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat program
Program yang sudah jadi
perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.
Atau mungkin juga pengguna membutuhkan fasilitas
baru yang
dulu tidak ada.
Jenis Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial,
berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi
suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara
bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan
panjang (P)
2.
Masukkan
lebar (L)
3.
L ← P
* L
4.
Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1. Masukkan
bilangan pertama
2. Masukkan
bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah 5.
4. Tampilkan
bilangan pertama
5. Tampilkan
bilangan kedua
Contoh
Algoritma
1. Masukkan
bilangan pertama (a)
2. Masukkan
bilangan kedua (b)
3. if a >
b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pemrograman
Definisi Program/Pemrograman
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan
urutan-urutan, sekuensia
�� Program
adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan
kumpulan instruksi yang dikerjakan secara berurutan.
�� Harus
mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
2.
Pemrograman Fungsional
�� Berdasarkan
teori fungsi matematika
�� Fungsi
merupakan dasar utama program.
3. Pemrograman
Terstruktur
�� Secara
berurutan dan terstrukrtur.
�� Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh:
PASCAL dan C
4.
Pemrograman Modular
�� Pemrograman
ini membentuk banyak modul.
�� Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah
program dapat merupakan kumpulan modul-modul.
�� Contoh:
MODULA-2 atau ADA
5.
Pemrograman Berorientasi Obyek
�� Pemrograman
berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++,
Object Pascal, dan Java.
6.
Pemrograman Berorientasi Fungsi
�� Pemrograman
ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan
pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured
Query Language), HTML, XML dan lain-lain.
7.
Pemrograman Deklaratif
�� Pemrograman
ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi
Algoritma
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi.
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus dilakukan adalah:
�� Menulis surat
�� Surat dimasukkan ke dalam amplop tertutup
�� Amplop ditempeli perangko secukupnya.
�� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Contoh
Algoritma Menghitung Volume Bangun Ruang (Pseudocode)
Menghitung volume bangun ruang
dimana terdapat 6 buah bangun ruang yaitu kubus, balok, bola, limas, kerucut
dan tabung.
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Algoritma
dan Flowchart, Dasar Pemrograman
Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari
suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari
suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu
untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah
dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam
sekumpulan instruksi
3. sekumpulan instruksi yang
dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam
suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman,
dibedakan menjadi:
·
Bahasa tingkat rendah (low level language):
Bahasa yang
berorientasi ke mesin.
·
Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa
Pascal, bahasa C, dll.
2. Program yang ditulis dalam
bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner
digit) dengan menggunakan penerjemah.
Penerjemah:
·
Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·
Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa
Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan
langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan
suatu masalah yang disusun secara sistematis.
1. Algoritma adalah inti dari
ilmu komputer
2. Algoritma adalah
urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu
masalah
3. Algoritma adalah blueprint
dari program
4. Sebaiknya disusun sebelum
membuat program
5. Kriteria suatu algoritma:
·
Ada input dan output
·
Efektifitas dan efisien
·
Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna
biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana
A ke dalam bejana B
2. Tuangkan larutan dari
bejana B ke dalam bejana A
Algoritma TUKAR ISI BEJANA di atas
tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil
pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana,
diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya
bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut:
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari
bejana A ke dalam bejana C.
2. Tuangkan larutan dari
bejana B ke dalam bejana A.
3. Tuangkan larutan dari
bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti
setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus
didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau
lebih masukan.
4. Algoritma memiliki nol atau
lebih keluaran.
5. Algoritma harus efektif
(setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk
akal).
Memrogram dan Bahasa Pemrograman:
1. Belajar memrogram adalah
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami.
2. Belajar bahasa pemrograman
adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam
bahasa itu saja.
Notasi Algoritma:
1. Penulisan algoritma tidak
tergantung dari spesifikasi bahasa pemrograman dan komputer yang
mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat
diterjemahkan ke dalam berbagai bahasa pemrograman.
2. Notasi algoritma dapat
berupa:
·
Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa,
jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1. Mendefinisikan masalah dan
menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman
yang digunakan.
2. Merealisasikan dengan
langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada
teman:
·
Tulis surat pada secarik kertas surat
·
Ambil sampul surat
·
Masukkan surat ke dalam sampul
·
Tutup sampul surat dengan perekat
·
Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·
Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·
Tempel prangko pada sampul
·
Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap:
·
Masukkan sebuah bilangan sembarang
·
Bagi bilangan tersebut dengan 2
·
Hitung sisa hasil bagi pada langkah 2
·
Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·
Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah
bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian
suatu masalah
2. Merupakan cara penyajian
dari suatu algoritma
3. Ada 2 macam flowchart:
·
System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output serta
jenis penyimpanan dalam proses pengolahan data.
·
Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols
(simbol penghubung alur)
2. Processing Symbols (simbol
proses)
3. Input-Output Symbols
(simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil
analisa suatu masalah
3. Flowchart dapat bervariasi
antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3
bagian utama:
·
Input
·
Proses
·
Output
5. Hindari pengulangan yang
tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan
dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali
dari satu titik START dan diakhiri dengan End.
Pseudocode:
1. Diberikan nama dan nilai
mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama
: String
Nilai
: Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh
algoritma tersebut.
2. Deklarasi
Bagian untuk
mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure,
dan fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis
dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma
Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung
luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta
phi}
R
: real {jari-jari lingkaran}
Luas : real
{luas lingkaran}
Keliling : real {keliling lingkaran}
3.
Deskripsi
Read (R)
Luas = phi *
R * R
Keliling
= 2 * phi * R
Write (luas, keliling)
http://www.prodaslab.com/
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. Beberapa pakar memberi formula bahwa :
Program =
Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya :
- Pembuatan
atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun,
artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang melaksanakannya.
- Notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
- Apapun
bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
4. Beberapa hal
yang perlu diperhatikan dalam membuat algoritma :
- Teks
algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
- Tidak ada
notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
- 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.
- 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.
- Algoritma
sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
- Algoritma
merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa
pemrograman.
Ada beberapa
hal yang harus diperhatikan pada translasi tersebut, yaitu :
a) Pendeklarasian
variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel
dalam penggunaan bahasa pemrograman apabila tidak semua
bahasa pemrograman membutuhkannya.
b) Pemilihan tipe
data
Apabila bahasa pemrograman yang akan digunakan
membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada
saat pemilihan tipe data.
c) Pemakaian
instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi
masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d) Aturan
sintaksis
Pada saat menuliskan program kita terikat dengan aturan
sintaksis dalam bahasa pemrograman yang akan digunakan.
e) Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan
tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika
mengkonversikannya menjadi program.
f) Cara
pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam
kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1.
Mendefinisikan masalah
Ini merupakan langkah
pertama yang sering dilupakan orang. Menurut hukum Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis
program, akan semakin lama kita dapat menyelesaikannya”.
Hal tersebut berlaku untuk
permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan
dengan menggunakan komputer, dan apa inputan serta outputnya.
2.
Menemukan solusi
Setelah masalah
didefinisikan, maka langkah berikutnya adalah menentukan solusi.
Jika masalah terlalu
kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih
mudah diselesaikan.
Contohnya masalah invers
matriks, maka kita dapat membagi menjadi beberapa
modul:
�� meminta masukkan berupa matriks bujur sangkar
�� mencari invers matriks
�� menampilkan hasil kepada pengguna
Dengan penggunaan modul
tersebut program utama akan menjadi lebih singkat dan
mudah dilihat.
3.
Memilih algoritma
Pilihlah algoritma yang
benar-benar sesuai dan efisien untuk permasalahan tersebut
4.
Menulis program
Pilihlah bahasa yang mudah
dipelajari, mudah digunakan, dan lebih baik lagi jika
sudah dikuasai, memiliki
tingkat kompatibilitas tinggi dengan perangkat keras dan
platform lainnya.
5.
Menguji program
Setelah program jadi,
silahkan uji program tersebut dengan segala macam kemungkinan yang ada,
termasuk error-handlingnya sehingga program tersebut akan benar-benar handal
dan layak digunakan.
6.
Menulis dokumentasi
Menulis dokumentasi sangat
penting agar pada suatu saat jika kita akan melakukan
perubahan atau membaca
source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan
mudah membacanya. Caranya adalah dengan menuliskan komentarkomentar kecil
tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,
untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.
7.
Merawat program
Program yang sudah jadi
perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi.
Atau mungkin juga pengguna membutuhkan fasilitas
baru yang
dulu tidak ada.
Jenis Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial,
berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi
suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara
bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan
panjang (P)
2.
Masukkan
lebar (L)
3.
L ← P
* L
4.
Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1. Masukkan
bilangan pertama
2. Masukkan
bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah 5.
4. Tampilkan
bilangan pertama
5. Tampilkan
bilangan kedua
Contoh
Algoritma
1. Masukkan
bilangan pertama (a)
2. Masukkan
bilangan kedua (b)
3. if a >
b then kerjakan langkah 4
4. print a
5. print b
Algoritma Pemrograman
Definisi Program/Pemrograman
- Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan
urutan-urutan, sekuensia
�� Program
adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan
kumpulan instruksi yang dikerjakan secara berurutan.
�� Harus
mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
2.
Pemrograman Fungsional
�� Berdasarkan
teori fungsi matematika
�� Fungsi
merupakan dasar utama program.
3. Pemrograman
Terstruktur
�� Secara
berurutan dan terstrukrtur.
�� Program
dapat dibagai-bagi menjadi prosedur dan fungsi.
�� Contoh:
PASCAL dan C
4.
Pemrograman Modular
�� Pemrograman
ini membentuk banyak modul.
�� Modul
merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
�� Sebuah
program dapat merupakan kumpulan modul-modul.
�� Contoh:
MODULA-2 atau ADA
5.
Pemrograman Berorientasi Obyek
�� Pemrograman
berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
�� Contoh: C++,
Object Pascal, dan Java.
6.
Pemrograman Berorientasi Fungsi
�� Pemrograman
ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan
pembuatan bahasa pemrograman ini.
�� Contoh: SQL (Structured
Query Language), HTML, XML dan lain-lain.
7.
Pemrograman Deklaratif
�� Pemrograman
ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah
dengan implementasi algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
Definisi
Algoritma
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998)
- Alur pemikiran
dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma dalam kehidupan nyata:
- Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi.
- Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus dilakukan adalah:
�� Menulis surat
�� Surat dimasukkan ke dalam amplop tertutup
�� Amplop ditempeli perangko secukupnya.
�� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
Pelaksana algoritma adalah Komputer.
Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.
Contoh
Algoritma Menghitung Volume Bangun Ruang (Pseudocode)
Menghitung volume bangun ruang
dimana terdapat 6 buah bangun ruang yaitu kubus, balok, bola, limas, kerucut
dan tabung.
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Masing-masing bangun ruang tersebut akan kita cari volume, dengan formula sebagaimana yang telah diajarkan di sekolah dasar, kali ini kita menggunakan percabangan if.
Penyelesaiannya sebagai berikut:
{
char pilihan;
float volume, sisi, panjang, lebar, tinggi, jari;
pilihan <--- input
if (pilihan=='A'||pilihan=='a')
{
sisi <--- input
volume <--- sisi*sisi*sisi
output <--- volume
}
if (pilihan=='B'||pilihan=='b')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- panjang*lebar*tinggi
output <--- volume
}
if (pilihan=='C'||pilihan=='c')
{
jari input
volume <--- 3,14*4*jari*jari
output <--- volume
}
if (pilihan='D'||pilihan=='d')
{
panjang <--- input
lebar <--- input
tinggi <--- input
volume <--- (panjang*lebar)/3*tinggi
output <--- volume
}
if (pilihan=='E'||=='e')
{
jari <--- input
tinggi <--- input
volume <--- (3,14*jari*jari)/3*tinggi
output <--- volume
}
if (pilihan=='F'||=='f')
{
jari <--- input
tinggi <--- input
volume <--- 3,14*jari*jari*tinggi
output <--- volume
}
Algoritma
dan Flowchart, Dasar Pemrograman
Tujuan Pembelajaran
Diharapkan dapat:
1. Mengerti tentang algoritma
2. Membuat algoritma dari
suatu permasalahan
3. Mengerti tentang flowchart
4. Membuat flowchart dari
suatu permasalahan
Pendahuluan
1. Komputer adalah alat bantu
untuk menyelesaikan masalah
2. Dalam menyelesaikan masalah
dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam
sekumpulan instruksi
3. sekumpulan instruksi yang
dimengerti oleh komputer disebut dengan program
Bahasa Pemrograman
1. Program harus ditulis dalam
suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman,
dibedakan menjadi:
·
Bahasa tingkat rendah (low level language):
Bahasa yang
berorientasi ke mesin.
·
Bahasa tingkat tinggi (high level language):
Bahasa yang berorientasi ke manusia (seperti bahasa inggris). Contoh bahasa
Pascal, bahasa C, dll.
2. Program yang ditulis dalam
bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner
digit) dengan menggunakan penerjemah.
Penerjemah:
·
Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·
Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa
Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan
langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan
suatu masalah yang disusun secara sistematis.
1. Algoritma adalah inti dari
ilmu komputer
2. Algoritma adalah
urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu
masalah
3. Algoritma adalah blueprint
dari program
4. Sebaiknya disusun sebelum
membuat program
5. Kriteria suatu algoritma:
·
Ada input dan output
·
Efektifitas dan efisien
·
Terstruktur
Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna
biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari bejana
A ke dalam bejana B
2. Tuangkan larutan dari
bejana B ke dalam bejana A
Algoritma TUKAR ISI BEJANA di atas
tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil
pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana,
diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya
bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah
sebagai berikut:
Diberikan dua buah bejana A dan B,
bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru.
Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan
berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1. Tuangkan larutan dari
bejana A ke dalam bejana C.
2. Tuangkan larutan dari
bejana B ke dalam bejana A.
3. Tuangkan larutan dari
bejana C ke dalam bejana B.
Ciri Penting Algoritma
1. Algoritma harus berhenti
setelah menjalankan sejumlah langkah terbatas.
2. Setiap langkah harus
didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3. Algortima memiliki nol atau
lebih masukan.
4. Algoritma memiliki nol atau
lebih keluaran.
5. Algoritma harus efektif
(setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk
akal).
Memrogram dan Bahasa Pemrograman:
1. Belajar memrogram adalah
belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu
notasi tertentu yang mudah dibaca dan dipahami.
2. Belajar bahasa pemrograman
adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam
bahasa itu saja.
Notasi Algoritma:
1. Penulisan algoritma tidak
tergantung dari spesifikasi bahasa pemrograman dan komputer yang
mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat
diterjemahkan ke dalam berbagai bahasa pemrograman.
2. Notasi algoritma dapat
berupa:
·
Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa,
jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai >= 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.
Tahapan Pembuatan Program:
1. Mendefinisikan masalah dan
menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan,
fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman
yang digunakan.
2. Merealisasikan dengan
langkah-langkah sebagai berikut:
Contoh Algoritma:
1. Mengirim surat kepada
teman:
·
Tulis surat pada secarik kertas surat
·
Ambil sampul surat
·
Masukkan surat ke dalam sampul
·
Tutup sampul surat dengan perekat
·
Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·
Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·
Tempel prangko pada sampul
·
Bawa sampul ke kantor pos untuk diposkan
2. Menentukan apakah suatu
bilangan merupakan bilangan ganjil atau bilangan genap:
·
Masukkan sebuah bilangan sembarang
·
Bagi bilangan tersebut dengan 2
·
Hitung sisa hasil bagi pada langkah 2
·
Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·
Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil
Flowchart
1. Flowchart adalah
bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian
suatu masalah
2. Merupakan cara penyajian
dari suatu algoritma
3. Ada 2 macam flowchart:
·
System flowchart:
Urutan proses dalam system dengan menunjukkan alat media input, output serta
jenis penyimpanan dalam proses pengolahan data.
·
Program flowchart:
Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan
masalah dalam suatu program.
Contoh program Flowchart
Simbol-simbol Flowchart
1. Flow Direction Symbols
(simbol penghubung alur)
2. Processing Symbols (simbol
proses)
3. Input-Output Symbols
(simbol input-output)
Tabel Simbol-simbol Flowchart
Pembuatan Flowchart
1. Tidak ada kaidah yang baku
2. Flowchart = gambaran hasil
analisa suatu masalah
3. Flowchart dapat bervariasi
antara satu pemrograman dengan pemrograman lainnya.
4. Secara garis besar ada 3
bagian utama:
·
Input
·
Proses
·
Output
5. Hindari pengulangan yang
tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6. Jalannnya proses digambarkan
dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7. Sebuah Flowchart diawali
dari satu titik START dan diakhiri dengan End.
Pseudocode:
1. Diberikan nama dan nilai
mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama
: String
Nilai
: Integer
Keterangan : String
Deskripsi:
Read (nama, nilai)
if nilai >= 60 then
Keterangan = 'lulus'
else
Keterangan = 'tidak lulus'
write (nama, keterangan)
Aturan Penulisan Teks Algoritma
1. Judul Algoritma
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh
algoritma tersebut.
2. Deklarasi
Bagian untuk
mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure,
dan fungsi.
3. Deskripsi
Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis
dengan menggunakan notasi yang akan dijelaskan selanjutnya.
Contoh Pseudocode:
1. Algoritma
Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{
Menghitung
luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung
luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
} (ini spesifikasi algoritma)
2. Deklarasi
const phi = 3.14 {nilai konstanta
phi}
R
: real {jari-jari lingkaran}
Luas : real
{luas lingkaran}
Keliling : real {keliling lingkaran}
3.
Deskripsi
Read (R)
Luas = phi *
R * R
Keliling
= 2 * phi * R
Write (luas, keliling)


