dasar-dasar algoritma
 Pada dasarnya komputer adalah mesin yang
tidak dapat melakukan apa-apa, sehingga
diperlukan serangkaian instruksi yang
diberikan kepada komputer untuk dapat
bekerja dan memecahkan suatu masalah.
 Langkah-langkah yang dilakukan dalam
memberikan instruksi kepada komputer
untuk memecahkan masalah disebut juga
Pemrograman Komputer.
 Program adalah kumpulan instruksi yang
digunakan untuk mengatur komputer agar
melakukan suatu tindakan tertentu.
 Definisi lain Program yaitu kata, ekspresi,
pernyataan atau kombinasinya / kumpulan
statement-statement yang dirangkai dan disusun
menjadi satu kesatuan prosedur yang berupa
urutan langkah-langkah logis penyelesaian
masalah yang diimplementasi kan dengan
penggunaan bahasa pemrograman sehingga
dapat dieksekusi oleh komputer dan dilihat hasil
akhirnya.
 Pada dasarnya komputer mencakup 3
aspek penting, berupa Perangkat
Keras (hardware), Perangkat Lunak
(software) berupa program, serta
Perangkat Akal (brainware) atau orang
yang berperan dalam operasi
komputer maupun pengembangan
Perangkat Lunak.
 Dalam Pemrograman Komputer, untuk
memberikan suatu instruksi harus digunakan
bahasa yang dimengerti oleh komputer tersebut,
yang disebut juga Bahasa Komputer. Dengan
bahasa ini, komputer akan mampu memahami
dan mengerti perintah-perintah yang diberikan.
 Bahasa Komputer biasa juga disebut dengan
Bahasa Pemrograman Komputer, yaitu suatu
prosedur atau tata cara penulisan program, yang
dalam hal ini adalah kata, ekspresi, pernyataan
atau kombinasi semuanya yang disusun dan
dirangkai berupa urutan langkah-langkah
penyelesaian masalah.
 Bahasa Pemrograman Komputer
secara garis besar dapat
dikelompokkan menjadi 2:
1. Bahasa Beraras Rendah (Low Level
Language)
2. Bahasa Beraras Tinggi (High Level
Language)
 Komputer adalah mesin digital yang hanya
dapat mengenal kondisi ada arus listrik (biasa
dilambangkan dengan 1) atau tidak ada arus
listrik (biasa dilambangkan dengan 0)
 Dengan kata lain, harus digunakan sandi 0
atau 1 untuk melakukan pemrograman
komputer. Bahasa Pemrograman yang
menggunakan sandi 1 atau 0 ini disebut
dengan Bahasa Mesin.
 Bahasa Mesin sangat susah untuk dimengerti,
maka kemudian muncul ide untuk
melambangkan untaian sandi 0 dan 1 dengan
singkatan kata yang lebih mudah dipahami
oleh manusia. Singkatan kata ini kemudian
disebut Mnemonic Code.
 Bahasa Pemrograman yang menggunakan
singkatan kata (Mnemonic Code) ini disebut
dengan Bahasa Assembly.
 Contohnya, dalam prosesor Intel terdapat
perintah 0011 1010 0000 1011. Perintah ini
sama artinya dengan perintah assembly CMP AL,
0D, yang artinya bandingkan nilai register AL
dengan 0D. CMP adalah singkatan dari CoMPare.
 Perangkat lunak yang mengkonversikan
perintah-perintah assembly ke dalam bahasa
mesin sering disebut juga assembler.
 Bahasa Mesin dan Bahasa Assembly termasuk ke
dalam Bahasa Beraras Rendah (Low Level
Language).
 Pemrograman dengan bahasa assembly
dirasakan masih terlalu sulit, sehingga
kemudian dikembangkan bahasa
pemrograman yang lebih mudah digunakan
karena menggunakan kata-kata yang mudah
dikenali oleh manusia.
 Bahasa Pemrograman seperti ini disebut
Bahasa Generasi Ketiga atau 3GL (Third
Generation Language).
 Bahasa Generasi Ketiga biasa juga
disebut dengan bahasa tingkat tinggi
atau HLL (high level language).
 Contoh Bahasa Generasi Ketiga yaitu
Basic, Pascal, C, C++, COBOL dan
lain-lain.
 Contoh perintah dalam bahas Pascal:
writeln (‘Algoritma’);
 Contoh perintah dalam Bahasa C:
printf (“Algoritmanr”);
 Contoh perintah dalam Bahasa C++:
cout << “Algoritma”<< endl;
 Perangkat Lunak yang menerjemahkan program
dalam bahasa yang dimengerti manusia ke dalam
Bahasa Assembly atau Mesin ada dua macam,
yaitu:
1. Interpreter menerjemahkan program baris per
baris, jika suatu baris akan dieksekusi, maka
baris tersebut diterjemahkan dulu ke Bahasa
Mesin. Contoh: Basic
2. Kompiler menerjemahkan semua baris perintah
ke dalam bahasa mesin kemudian menjalankan
hasil penerjemahannya. Contoh: Pascal, C, dan
C++
 Pada Bahasa Pemrograman Komputer ada
beberapa faktor yang harus diperhatikan:
1. Sintaksis, yaitu tata bahasa yang digunakan
dalam program atau aturan-aturan yang
mengatur tata cara penulisan kata, ekspresi,
dan pernyataan.
2. Semantik adalah maksud yang dikandung
dalam setiap pernyataan yang ada dalam
program atau aturan-aturan untuk
menyatakan suatu arti.
3. Kebenaran Logika berhubungan dengan benar
tidaknya urutan pernyataan yang ada dalam
program
 Kesalahan sintaksis akan langsung kelihatan,
karena komputer akan menampilkan pesan
kesalahan
 Kesalahan semantik biasanya terjadi karena
kekurang pahaman terhadap setiap pernyataan
yang dituliskan pada program, sehingga
walaupun program bisa berjalan tetapi tidak
seperti yang diharapkan.
 Kesalahan logika merupakan kesalahan dalam
mengimplementasikan masalah yang dihadapi,
sehingga program yang ditulis tidak benar secara
logika.
1. Mendefinisikan masalah.
Tujuannya untuk memahami
permasalahan secara mendalam
berkaitan dengan input, perintah
yang digunakan dan bagaimana
bentuk ouputnya.
2. Menentukan solusi. Jika masalahnya terlalu
besar, dapat dibagi menjadi beberapa modul
yang dapat memudahkan penyelesaian
masalah
Contoh:
Program untuk menghitung luas dan keliling
persegi panjang inputnya adalah panjang
dan lebar, prosesnya dengan rumus luas =
panjang * lebar dan keliling = 2*
(panjang+lebar), serta output yang
diharapkan adalah luas dan keliling.
3. Memilih Algoritma. Algoritma dibuat dengan
tujuan untuk menyelesaikan masalah. Algoritma
tidak bisa sekali jadi, tetapi akan dikaji
berulang-ulang sampai diperoleh algoritma
yang tepat, benar, dan relevan.
Contoh menghitung luas dan keliling persegi
panjang dibuat algoritma yaitu:
a. Tentukan variabel dan tipe data yang
digunakan.
b. Masukkan input yaitu panjang dan lebar.
c. Lakukan proses pencarian luas = panjang *
lebar, dan keliling = 2*(panjang+lebar)
d. Tampilkan luas dan keliling persegi panjang
4. Menulis Program menggunakan suatu bahasa
pemrograman ke dalam komputer untuk
memecahkan masalah yang ada.
Di slide selanjutnya akan diperlihatkan contoh
Program Menghitung Luas dan Keliling Persegi
Panjang yang ditulis menggunakan Bahasa C.
/*-----------------------------------------------------------------------------------------------
Program ADP_1_langkah_pemrograman.cpp
Contoh Menulis Program Menghitung Luas dan Keliling Persegi Panjang
----------------------------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int panjang, lebar, luas, keliling;
printf("Contoh Menulis Program");
printf(" sebagai Langkah-langkah Pemrograman Komputern");
printf("______________________");
printf("_________________________________________n");
printf("n");
printf("Masukkan panjang: ");scanf("%d",&panjang);
printf("Masukkan lebar: ");scanf("%d",&lebar);
printf("n");
luas = panjang * lebar;
keliling = 2 * (panjang+lebar);
printf("Jadi Luas Persegi Panjang adalah: %dn",luas);
printf("Jadi Keliling Persegi Panjang adalah: %dn",keliling);
printf("n");
system("Pause");
}
• Hasil eksekusi program
5. Melakukan testing dan debugging. Testing
merupakan proses menjalankan program
secara rutin untuk menemukan kesalahan-
kesalahan dalam penulisan suatu pernyataan
dalam program. Sedangkan debugging
adalah proses menemukan kesalahan-
kesalahan dalam program dan kesalahan
yang ditemukan diperbaiki sampai tidak
muncul kesalahan lagi
6. Menuliskan Dokumentasi. Dokumentasi
yaitu catatan dari setiap langkah pekerjaan
dalam pembuatan program, yang dilakukan
dari awal sampai akhir. Dokumentasi sangat
penting untuk melakukan penelusuran jika
terjadi kesalahan dan penting untuk
pengembangan program. Dokumentasi juga
akan memberikan informasi yang cukup
memadai sehingga orang lain akan dapat
mengerti dan memahami alur logika
program,
Dokumentasi biasanya berupa komentar-
komentar pada tiap baris program. Hal yang
perlu diperhatikan:
1.komentar jangan terlalu panjang
2.komentar harus jelas maksudnya
3.komentar diletakkan pada tempat yang
tepat
4.keterangan yang harus ditulis harus logis
5.tidak menimbulkan salah pengertian
// -----------------------------------------------------------------------
// Program ADP_2_menulis_dokumentasi_program.cpp
// Contoh Menulis Dokumentasi Program
// -----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
//deklarasi variabel yang digunakan
int jari;
float luas, keliling;
//keterangan program
printf("Contoh Menulis Dokumentasi Programn");
printf("________________________________n");
printf("n");
//input variabel yang digunakan yaitu jari
printf("Masukkan jari-jari: "); scanf("%d",&jari);
printf("n");
//proses menghitung luas dan keliling lingkaran
luas = 3.141593 * jari * jari;
keliling = 2 * 3.141593 * jari;
//ouput luas dan keliling lingkaran
printf("Jadi luasnya adalah: %.2fn",luas);
printf("Jadi keliling adalah: %.2fn",keliling);
printf("n");
system("Pause");
}
• Hasil Eksekusi Program
 Untuk komentar dalam bahasa C++
menggunakan tanda /* dan diakhiri dengan
*/, atau dengan tanda // di awal setiap
pernyataan
7. Melakukan Perawatan. Hal ini perlu
dilakukan karena kemungkinan munculnya
kesalahan di luar dugaan atau biasanya
pengguna meminta fasilitas yang baru dalam
program.
 Dalam mengimplementasi urutan langkah
penyelesaian masalah harus menggunakan bentuk
dan rancang bangun yang mudah dipahami, tidak
berbelit-belit, sederhana dan dapat dikembangkan
siapa saja. Konsep ini dinamakan Pemrograman
Terstruktur, dengan ciri-ciri berikut ini:
1. Mempunyai teknik pemecahan permasalahan yang
tepat dan benar.
2. Memiliki algoritma pemecahan masalah yang
sederhana dan efisien.
3. Teknik penulisan program memiliki struktur logika
yang benar dan mudah dipahami.
4. Membutuhkan biaya testing yang rendah.
5. Memiliki dokumentasi yang baik.
 Clarity, Simplicity dan Unity
Bahasa pemrograman harus dapat menolong
programmer untuk membuat suatu desain
program jauh sebelum programmer
melakukan coding. Kemudahan,
kesederhanaan dan kesatuan merupakan
suatu kombinasi yang membantu
programmer mengembangkan suatu
algoritma sehingga algoritma yang dihasilkan
mempunyai kompleksitas yang rendah.
 Orthogonality
Orthogonality menunjuk kepada suatu atribut
yang dapat dikombinasikan dengan beragam
fitur bahasa pemrograman sehingga setiap
kombinasinya mempunyai arti dan dapat
digunakan
 Kewajaran untuk aplikasi
Bahasa pemrograman membutuhkan syntax
yang tepat/cocok yang digunakan pada
struktur program untuk merefleksikan
struktur logika yang melandasi suatu
algoritma.
 Mendukung Abstraksi
Abstraksi merupakan suatu hal yang
substansial bagi programmer untuk membuat
suatu solusi dari masalah yang dihadapi.
Kemudian abstraksi tersebut dapat dengan
mudah diimplementasikan menggunakan
fitur-fitur yang ada dalam bahasa
pemrograman.
 Kemudahan untuk Verifikasi Program
Verifikasi program merupakan hal penting
bagi sebuah program karena dengan
verifikasi yang mudah maka suatu program
akan dengan mudah dibangun dan
dikembangkan.
 Lingkungan Pemrograman
Bahasa pemrograman yang mempunyai
lingkungan pemrograman yang baik dan
lengkap akan memudahkan programmer
untuk mengimplementasikan abstraksi yang
sudah disusunnya.
 Portabilitas Program
Salah satu kriteria penting untuk proyek
pemrograman adalah kemudahan program
yang sudah jadi untuk dipindah-pindahkan
dari komputer yang digunakan untuk
membuat dan mengembangkan ke komputer
lain yang akan menggunakannya.
 Pemrogram atau Programmer adalah orang
yang menyusun atau membuat suatu
program.
 Ciri-ciri Pemerogram yang baik:
1. Mampu menyusun algoritma dengan baik
2. Menguasai bahasa dan teknik penulisan
program dengan baik
3. Dapat bekerjasama dalam suatu tim
4. Dapat bekerja secara efisien dan tepat
waktu
 Kata Algoritma diambil dari nama
ilmuwan muslim yaitu Abu Ja’far
Muhammad bin Musa Al-Khwarizmi
(780 – 846 M) yang berasal dari
Uzbekistan, yang banyak menghasilkan
karya dalam bidang matematika,
disamping karya-karya dalam bidang
lainnya seperti geografi dan musik.
 Al-Khwarizmi menyatakan bahwa
algoritma adalah suatu metode khusus
untuk menyelesaikan suatu persoalan
 Beberapa definisi Algoritma:
1. Menurut Rinaldi Munir (2002), algoritma adalah
urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis
2. Menurut Kamus Besar Bahasa Indonesia (1998),
algoritma adalah urutan logis pengambilan
keputusan untuk pemecahan masalah.
3. Menurut Team Gunadarma (1988), algoritma adalah
suatu himpunan hingga dari instruksi-instruksi
yang secara jelas memperinci langkah-langkah
proses pelaksanaan, dalam pemecahan suatu
masalah tertentu, atau suatu kelas masalah
tertentu, dengan dituntut pula bahwa himpunan
instruksi itu tersebut dapat dilaksanakan secara
mekanik.
 Contoh 1: algoritma dalam kehidupan sehari-
hari (menulis surat):
1. Mempersiapkan kertas dan amplop.
2. Mempersiapkan alat tulis, seperti pena
atau pensil
3. Mulai menulis
4. Memasukkan kertas ke dalam amplop
5. Pergi ke kantor pos untuk mengeposkan
surat.
 Contoh 2: algoritma untuk menghitung luas
lingkaran. (Rumus luas lingkaran, L = πR2):
1. Masukkan R.
2. Pi 3.14
3. L Pi * R * R
4. Tulis L
 Tanda pada baris kedua dan ketiga berarti
nilai di sebelah kanan diberikan pada operan
di sebelah kiri.
 Masalah Algoritma Terjemahkan
ke Dalam Bahasa Pemrograman Hasil/Solusi
 Proses dari masalah hingga menjadi suatu
algoritma disebut “Tahap Pemecahan
Masalah”
 Sedangkan dari Algoritma hingga menjadi
Solusi/Hasil disebut tahap Tahap
Implementasi. Hasil/Solusi yang dimaksud
adalah suatu program yang merupakan
implementasi dari algoritma yang disusun.
1. Uraian Deskriptif, yaitu menggunakan bahasa
sehari-hari.
2. Pseudocode, yaitu kode yang mirip dengan
kode pemrograman sebenarnya seperti Pascal
atau C.
3. Flowchart (Diagram Alir), yaitu gambar atau
diagram yang memperlihatkan urutan dan
hubungan antar proses beserta pernyataannya.
Gambar ini dinyatakan secara simbol, dan tiap
simbol menggambarkan proses tertentu.
Sedangkan antara proses digambarkan dengan
garis penghubung.
 Bagan-bagan yang mempunyai
arus yang menggambarkan
langkah-langkah penyelesaian
suatu masalah.
 Merupakan salah satu cara
penyajian dari suatu algoritma.
 Ada 2 macam Flowchart :
– System Flowchart, yaitu urutan proses
dalam system dengan menunjukkan alat
media input, output serta jenis media
penyimpanan dalam proses pengolahan
data.
– Program Flowchart, yaitu urutan instruksi
yang digambarkan dengan simbol tertentu
untuk memecahkan masalah dalam suatu
program.
 Simbol – simbol yang digunakan
dalam flowchart, yaitu
- Flow Direction Symbols (Simbol
penghubung alur)
- Processing Symbols (Simbol
proses).
- Input-output Symbols (Simbol
input-output)
 Simbol – simbol flowchart
 Simbol – simbol flowchart
 Pembuatan flowchart
- Sebuah flowchart diawali dari satu titik START dan
diakhiri dengan END.
- Hindari pengulangan proses yang tidak perlu dan
logika yang berbelit sehingga jalannya proses
menjadi singkat.
- Jalannya proses digambarkan dari atas ke bawah
dan diberikan tanda panah untuk memperjelas.
- Masing – masing simbol sebaiknya menggunakan
suatu kata yang mewakili suatu pekerjaan
- Jika flowchart terpotong yang dikarenakan
keterbatasan tempat maka gunakan simbol
penghubung yang tepat.
 Dalam pemrograman, algoritma
digunakan untuk tiga struktur dasar,
yaitu:
1. Struktur Urut (sequence structure),
2. Struktur Keputusan (decision
structure),
3. Struktur perulangan (looping
structure).
1. Struktur Urut (sequence structure), terdiri
dari pernyataan atau beberapa pernyataan
yang tidak mempunyai perulangan atau
keputusan di dalamnya.
Contoh: algoritma untuk menghitung luas
dan volume suatu balok.
Rumus Luas Balok,
L = (2*p*l) + (2*p*t) + (2*l*t)
Rumus Volume Balok,
V = p*l*t
 Algoritma dari permasalahan di atas adalah:
1. Masukkan panjang
2. Masukkan lebar
3. Masukkan tinggi
4. Luas = (2*p*l)+(2*p*t)+(2*l*t)
5. Volume = p*l*t
6. Tampilkan Luas
7. Tampilkan Volume
Keterangan dari algoritma di atas:
Pada baris pertama, kedua & ketiga diminta untuk memasukkan
input yang berkaitan dengan balok yaitu panjang, lebar dan
tinggi. Panjang balok disimpan pada variabel panjang, lebar
balok disimpan pada variabel lebar dan tinggi balok disimpan
pada variabel tinggi.
Pada baris keempat dan kelima, diminta memasukkan rumus
untuk mencari luas dan volume balok, yaitu Luas =
(2*panjang*lebar) + (2*panjang*tinggi) + (2*lebar*tinggi), dan
Volume = panjang*lebar*tinggi.
Luas balok disimpan pada variabel luas dan Volume balok
disimpan pada variabel volume. Baris keenam dan ketujuh
merupakan hasil dari proses input dan proses perhitungan dari
variabel input yang dimasukkan dan nantinya akan ditampilkan
Luas dan Volume balok.
Flowchart dari algoritma Struktur Urut di atas adalah:
Contoh memecahkan masalah dalam algoritma Struktur Urut.
Program untuk menghitung luas dan volume suatu balok.
/* ----------------------------------------------------------------------
Program ADP_3_struktur_dasar_algoritma_urut.cpp
Contoh Struktur Dasar Algoritma
---------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int panjang, lebar, tinggi, luas, volume;
printf("Contoh Struktur Dasar Algoritma Urutn");
printf("Menghitung Luas & Volume Balokn");
printf(“______________________________n");
printf("n");
printf("Masukkan panjang: "); scanf("%d",&panjang);
printf("Masukkan lebar: "); scanf("%d",&lebar);
printf("Masukkan tinggi: "); scanf("%d",&tinggi);
luas=(2*panjang*lebar)+(2*panjang*tinggi)+(2*lebar*tinggi);
volume=panjang*lebar*tinggi;
printf("Jadi Luasnya adalah: %dn",luas);
printf("Jadi Volumenya adalah: %dn",volume);
system("Pause");
}
• Hasil eksekusi program
2. Struktur Keputusan (decision
structure), digunakan untuk
memilih salah satu alternatif
jawaban yang tepat dari pilihan
yang ada. C++ menyediakan
dua perintah pengambilan
keputusan yaitu perintah IF dan
SWITCH.
Contoh: algoritma untuk menghitung
total pembayaran dari pembelian
seorang pelanggan toko, dengan
ketentuan apabila pembelian pelanggan
tersebut sama dengan atau melebihi
100000, maka pelanggan tersebut
mendapat discount 10%, jika tidak
pelanggan tersebut hanya mendapat
discount 5%.
Algoritma dari permasalahan tersebut adalah:
1. Masukkan pembelian
2. Jika pembelian >= 100000, discount =10% *
pembelian
3. Total pembayaran = pembelian – discount
4. Jika pembelian < 100000, discount = 5% *
pembelian
5. Total pembayaran = pembelian – discount
6. Tampilkan pembelian
7. Tampilkan discount
8. Tampilkan total pembayaran
Keterangan dari algoritma di atas:
Pada baris pertama, diminta untuk memasukkan input yang
berkaitan dengan permasalahan di atas yaitu pembelian. Pembelian
tersebut disimpan pada variabel beli.
Pada baris kedua, akan dilakukan pengujian dan pengecekan
pembelian yang dimasukkan yaitu apabila pembelian pelanggan
tersebut sama dengan atau melebihi 100000 atau tidak.
Jika jawabannya ya, maka pelanggan tersebut mendapat discount
10%, dan total pembayarannya = pembelian-dicount. Discount
disimpan dalam variabel disc dan total pembayaran disimpan dalam
variabel total. Kemudian ke baris keenam sampai kedelapan.
Jika jawabannya tidak, maka kerjakan baris keempat dan kelima
yaitu discount hanya 5% dan total pembayaran = pembelian-
discount.
Selanjutnya pada baris keenam sampai kedelapan, akan ditampilkan
discount dan total pembayaran.
Flowchart dari algoritma Struktur Keputusan di atas adalah:
// ------------------------------------------------------------------------------
// Program ADP_4_struktur_dasar_algoritma_keputusan.cpp
// Contoh Struktur Dasar Algoritma
// ------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
long int beli,disc,total;
printf("Contoh Struktur Dasar Algoritma Keputusann")
printf("Program untuk menghitung Pembelian");
printf(" dengan discountn");
printf("___________________________________");
printf("________________n");
printf("n");
printf("Masukkan nilai pembelian: Rp. "); scanf("%d",&beli);
printf("n");
if (beli>=100000)
{
disc=0.1*beli;
total=beli-disc;
}
else
{
disc=0.05*beli;
total=beli-disc;
}
printf("Jadi pembelian adalah Rp. %dn",beli);
printf("dengan discount Rp. %dn",disc);
printf("dan total pembayaran sebesar Rp. %dn",total);
printf("n");
system("Pause");
}
Contoh memecahkan masalah dalam algoritma Struktur Keputusan.
Program untuk menghitung total pembayaran dari pembelian dengan discount
• Hasil eksekusi program
3. Struktur Perulangan (looping
structure), digunakan untuk
melakukan suatu proses secara
berulang-ulang, jika suatu kondisi
dipenuhi atau sebaliknya. Biasa
dipergunakan untuk mengulang
proses pemasukan data,
mengulang proses perhitungan,
dan mengulang proses penampilan
hasil pengolahan data.
Contoh: algoritma untuk menampilkan
bilangan dari 10 sampai 1 secara
menurun, yaitu 10,9,8,7,6,5,4,3,2,1.
Algoritma dari permasalahan tersebut:
1. Tentukan nilai awal, batas, dan
penurunan nilai
2. Lakukan perulangan sampai batas
terpenuhi
3. Tampilkan bilangan
Keterangan dari algoritma di atas:
Pada baris pertama, diminta untuk mendefinisikan variabel
bilangan dalam hal ini disimpan dalam variabel n. Adapun
nilai awal n adalah 10, batas dari bilangan adalah n>0.
Karena yang akan ditampilkan bilangan secara menurun,
maka bilangan awal dikurangi satu persatu. Dalam C++
penulisannya adalah n--.
Pada baris kedua, proses perulangan dimulai, n dimulai dari
10, karena 10>0, maka perulangan dilakukan serta proses
penurunan berjalan yaitu 10-1=9. Seterusnya, perulangan
dilakukan sampai n=0.
Apabila nilai n=0, maka proses perulangan dihentikan dan
langkah selanjutnya akan turun ke baris ketiga yaitu
menampilkan semua bilangan dalam perulangan tersebut.
Flowchart dari algoritma Struktur Perulangan di atas adalah:
Contoh memecahkan masalah dalam algoritma Struktur
Perulangan.
Program untuk menampilkan bilangan dari 10 sampai 1 secara
menurun
// -------------------------------------------------
// Program ADP_5_struktur_dasar_algoritma_perulangan.cpp
// Contoh Struktur Dasar Algoritma
// -------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
main()
{
int n;
printf("Contoh Struktur Dasar Algoritma Perulangann");
printf("Program untuk menampilkan nilai 10 s.d. 1n");
printf("__________________________________________n");
printf("nt");
for (n=10; n>0; n--){
printf("%dnt",n);
}
printf("n");
system ("Pause");
}
1   adp dasar-dasar algoritma
Sejauh ini tidak ada standarisasi tentang
bagaimana menyusun algoritma. Secara
prinsip, setiap orang mempunyai kebebasan
untuk menyusun bentuk suatu algoritma. Tiap
orang dapat menggunakan kata-kata dalam
bahasa manusia, pseudocode, atau bahkan
diagram alir untuk mewujudkan suatu
algoritma. Tiap orang juga dapat menggunakan
cara-caranya sendiri untuk menuliskan suatu
algoritma dengan memegang teguh
konsistensi.
Namun demikian ada beberapa hal yang perlu diperhatikan dalam
menyusun suatu algoritma.
Menurut Knuth ( 1973, hal. 4) dan juga Horowitz (1999, hal. 1), ada lima
ciri-ciri penting yang harus dimiliki sebuah algoritma, yaitu:
1. Finitness, menyatakan bahwa suatu algoritma harus berakhir untuk
semua kondisi setelah memproses sejumlah langkah.
2. Definiteness, menyatakan bahwa setiap langkah harus dinyatakan
dengan jelas (tidak rancu atau memiliki dua arti).
3. Masukan, setiap algoritma dapat tidak memiliki masukan atau
mempunyai satu atau beberapa masukan. Masukan merupakan suatu
besaran yang diberikan di awal sebelum algoritma diproses.
4. Keluaran, setiap algoritma memiliki keluaran, entah hanya sebuah
keluaran atau banyak keluaran. Keluaran merupakan besaran yang
mempunyai kaitan atau hubungan dengan masukan.
5. Efektivitas, setiap algoritma diharapkan bersifat efektif, dalam arti
semua operasi yang dilaksanakan oleh algoritma harus sederhana dan
dapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiap
instruksi dalam algoritma dapat dikerjakan oleh orang dengan hanya
menggunakan kertas dan pensil.
 Memiliki logika perhitungan / metode yang tepat
dalam memecahkan masalah
 Menghasilkan output yang tepat dan benar dalam
waktu yang singkat.
 Ditulis dengan bahasa yang standart secara
sistematis dan rapi sehingga tidak menimbulkan arti
ganda
 Ditulis dengan format yang mudah dipahami, dan
diimplementasikan ke dalam bahasa pemograman
 Semua Operasi yang dibutuhkan terdefinisi dengan
jelas
 Semua proses harus selalu berakhir setelah sejumlah
langkah dilakukan.
 Standart Teknik Pemecahan Masalah
– Top – Down : Merupakan teknik pemecahan masalah
yang paling banyak digunakan dimana pada teknik ini
suatu masalah yang besar / complex dibagi-bagi ke
dalam beberapa kelompok masalah yang lebih kecil,
Dari kelompok kecil kemudian dianalisa dan apabila
masih memungkinkan untuk dibagi lagi menjadi sub
bagian lalu kemudian di susun langkah-langkah
untuk menyelesaikan masalah secara detail.
– Bottom – Up : Teknik ini masalah yang besar/komplek
dipecahkan dengan melakukan penggabungan
prosedur-prosedur yang menjadi satu kesatuan
program guna menyelesaikan masalah tersebut,
teknik ini sudah mulai di tinggalkan.
 Standart Penyusunan Program
– Kebenaran logika dan penulisan : Program
yang disusun harus memiliki ketepatan,
ketelitian, dan kebenaran dalam
perhitungan, sehingga hasilnya dapat
dipercaya serta harus teliti dalam
penulisannya.
– Waktu untuk penulisan program : Program
harus dapat menentukan batas waktu
minimum dan maksimum dalam penulisan
programnya yang tersedia secara wajar.

More Related Content

PDF
Algoritma pemrograman terstruktur
DOC
Dasar Pemrograman materi kuliah
PDF
Modul dasar pemrograman
PDF
Modul mata kuliah konsep dasar pemrograman
PPTX
Modul 1 Algoritma Dan Pemrograman II
PPTX
Materi 1. algoritma pemrograman
PPTX
Pertemuan 3 pemrograman dasar
PDF
Bahan ajar-dasar-pemrograman
Algoritma pemrograman terstruktur
Dasar Pemrograman materi kuliah
Modul dasar pemrograman
Modul mata kuliah konsep dasar pemrograman
Modul 1 Algoritma Dan Pemrograman II
Materi 1. algoritma pemrograman
Pertemuan 3 pemrograman dasar
Bahan ajar-dasar-pemrograman

What's hot (20)

PPT
Pemrograman terstruktur
DOC
Materi Kuliah : Dasar pemrograman 1
PPT
Pertemuan_2
PDF
Diktat kuliah Algoritma dan Pemograman
PDF
Modul algoritma pemrograman-dasar x rpl
PPTX
Materi Pemrograman Dasar SMK
DOCX
Algoritma dan pemrograman
PPT
Pengenalan Algoritma Komputer
DOCX
PENGGUNAAN FITUR SITASI DAN BIBLIOGRAFI PADA MICROSOFT OFFICE WORD 2013
PPTX
Pertemuan 2 Pemrograman Dasar
DOC
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
PDF
Tugas Pt
PDF
Tugas Pt
PPTX
Pengertian algoritma
PPTX
Pemrograman dasar
DOC
Algoritma pemrograman dasar
PDF
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
PDF
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
DOC
Definisi Algoritma
Pemrograman terstruktur
Materi Kuliah : Dasar pemrograman 1
Pertemuan_2
Diktat kuliah Algoritma dan Pemograman
Modul algoritma pemrograman-dasar x rpl
Materi Pemrograman Dasar SMK
Algoritma dan pemrograman
Pengenalan Algoritma Komputer
PENGGUNAAN FITUR SITASI DAN BIBLIOGRAFI PADA MICROSOFT OFFICE WORD 2013
Pertemuan 2 Pemrograman Dasar
PENGERTIAN ALGORITMA DAN PEMROGRAMAN
Tugas Pt
Tugas Pt
Pengertian algoritma
Pemrograman dasar
Algoritma pemrograman dasar
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Definisi Algoritma
Ad

Similar to 1 adp dasar-dasar algoritma (20)

PPTX
1 ADP Algoritma
PPTX
dasar-dasar pemrograman
DOTX
PPTX
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
PDF
Module algoritma
PPT
Tahap pemrograman
PPT
Tahap pemrograman
PDF
Pertemuan 1
PPT
Tahap pemrograman
PDF
Bab 2 Definisi Algoritma
PDF
Kegiatan belajar 1 flowchart
PPT
01 komponen dasar komputer (1)
PPT
Algoritma 1 pertemuan 1
PDF
flowchart
PDF
Algoritam1
PPT
Pengantar_Pemrograman_Dasar_Pembelajaran.ppt
PPT
Sekilas tentang c
PPTX
technik kompilasi
PDF
ALGORITMA DAN PEMROGRAMAN MENGGUNAKAN BAHASA C++.pdf
DOCX
1 ADP Algoritma
dasar-dasar pemrograman
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Module algoritma
Tahap pemrograman
Tahap pemrograman
Pertemuan 1
Tahap pemrograman
Bab 2 Definisi Algoritma
Kegiatan belajar 1 flowchart
01 komponen dasar komputer (1)
Algoritma 1 pertemuan 1
flowchart
Algoritam1
Pengantar_Pemrograman_Dasar_Pembelajaran.ppt
Sekilas tentang c
technik kompilasi
ALGORITMA DAN PEMROGRAMAN MENGGUNAKAN BAHASA C++.pdf
Ad

More from Chabil_Juniar (15)

PPTX
5 adp fungsi & rekursi
PPTX
2 adp tipe data dan operator
PPTX
4 adp struktur perulangan
PPTX
3 adp struktur keputusan
PPTX
8 struktur
PPTX
7 pointer - copy
PPTX
6 adp array (larik) - copy
PPTX
6 adp array (larik)
PPTX
7 pointer
PDF
Internet
PPT
Pti (5) teknologi perangkat lunak (software)
PPT
Pti (2) sistem komputer(1)
PDF
Komp. dan aplikasi
PDF
Software
PDF
Hardware
5 adp fungsi & rekursi
2 adp tipe data dan operator
4 adp struktur perulangan
3 adp struktur keputusan
8 struktur
7 pointer - copy
6 adp array (larik) - copy
6 adp array (larik)
7 pointer
Internet
Pti (5) teknologi perangkat lunak (software)
Pti (2) sistem komputer(1)
Komp. dan aplikasi
Software
Hardware

Recently uploaded (10)

PDF
Struktur Data - 2 Pengantar Struktur Data
PDF
Struktur Data - 1 Kontrak Perkuliahan
PPTX
Introduction Financial Consolidatioan Multi currency integration to all ERP o...
PDF
Struktur Data - 3 Array: Konsep & Implementasi
PDF
Struktur Data - 4 Pointer & Linked List
PPTX
Materi-1 Pengantar Infrastruktur Sistem Informasi.pptx
PPTX
Fiber_expert_development_program_rev.1.pptx
PPTX
BAHASA MELAYU STANDARD kwjekqjeljwqelkqw
PPTX
Materi Workshop Keuangan Digital 2025.pptx
PPTX
CARA AKSES KE INTERNET MELALUI WIFI ATAU LAN
Struktur Data - 2 Pengantar Struktur Data
Struktur Data - 1 Kontrak Perkuliahan
Introduction Financial Consolidatioan Multi currency integration to all ERP o...
Struktur Data - 3 Array: Konsep & Implementasi
Struktur Data - 4 Pointer & Linked List
Materi-1 Pengantar Infrastruktur Sistem Informasi.pptx
Fiber_expert_development_program_rev.1.pptx
BAHASA MELAYU STANDARD kwjekqjeljwqelkqw
Materi Workshop Keuangan Digital 2025.pptx
CARA AKSES KE INTERNET MELALUI WIFI ATAU LAN

1 adp dasar-dasar algoritma

  • 2.  Pada dasarnya komputer adalah mesin yang tidak dapat melakukan apa-apa, sehingga diperlukan serangkaian instruksi yang diberikan kepada komputer untuk dapat bekerja dan memecahkan suatu masalah.  Langkah-langkah yang dilakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah disebut juga Pemrograman Komputer.
  • 3.  Program adalah kumpulan instruksi yang digunakan untuk mengatur komputer agar melakukan suatu tindakan tertentu.  Definisi lain Program yaitu kata, ekspresi, pernyataan atau kombinasinya / kumpulan statement-statement yang dirangkai dan disusun menjadi satu kesatuan prosedur yang berupa urutan langkah-langkah logis penyelesaian masalah yang diimplementasi kan dengan penggunaan bahasa pemrograman sehingga dapat dieksekusi oleh komputer dan dilihat hasil akhirnya.
  • 4.  Pada dasarnya komputer mencakup 3 aspek penting, berupa Perangkat Keras (hardware), Perangkat Lunak (software) berupa program, serta Perangkat Akal (brainware) atau orang yang berperan dalam operasi komputer maupun pengembangan Perangkat Lunak.
  • 5.  Dalam Pemrograman Komputer, untuk memberikan suatu instruksi harus digunakan bahasa yang dimengerti oleh komputer tersebut, yang disebut juga Bahasa Komputer. Dengan bahasa ini, komputer akan mampu memahami dan mengerti perintah-perintah yang diberikan.  Bahasa Komputer biasa juga disebut dengan Bahasa Pemrograman Komputer, yaitu suatu prosedur atau tata cara penulisan program, yang dalam hal ini adalah kata, ekspresi, pernyataan atau kombinasi semuanya yang disusun dan dirangkai berupa urutan langkah-langkah penyelesaian masalah.
  • 6.  Bahasa Pemrograman Komputer secara garis besar dapat dikelompokkan menjadi 2: 1. Bahasa Beraras Rendah (Low Level Language) 2. Bahasa Beraras Tinggi (High Level Language)
  • 7.  Komputer adalah mesin digital yang hanya dapat mengenal kondisi ada arus listrik (biasa dilambangkan dengan 1) atau tidak ada arus listrik (biasa dilambangkan dengan 0)  Dengan kata lain, harus digunakan sandi 0 atau 1 untuk melakukan pemrograman komputer. Bahasa Pemrograman yang menggunakan sandi 1 atau 0 ini disebut dengan Bahasa Mesin.
  • 8.  Bahasa Mesin sangat susah untuk dimengerti, maka kemudian muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah dipahami oleh manusia. Singkatan kata ini kemudian disebut Mnemonic Code.  Bahasa Pemrograman yang menggunakan singkatan kata (Mnemonic Code) ini disebut dengan Bahasa Assembly.
  • 9.  Contohnya, dalam prosesor Intel terdapat perintah 0011 1010 0000 1011. Perintah ini sama artinya dengan perintah assembly CMP AL, 0D, yang artinya bandingkan nilai register AL dengan 0D. CMP adalah singkatan dari CoMPare.  Perangkat lunak yang mengkonversikan perintah-perintah assembly ke dalam bahasa mesin sering disebut juga assembler.  Bahasa Mesin dan Bahasa Assembly termasuk ke dalam Bahasa Beraras Rendah (Low Level Language).
  • 10.  Pemrograman dengan bahasa assembly dirasakan masih terlalu sulit, sehingga kemudian dikembangkan bahasa pemrograman yang lebih mudah digunakan karena menggunakan kata-kata yang mudah dikenali oleh manusia.  Bahasa Pemrograman seperti ini disebut Bahasa Generasi Ketiga atau 3GL (Third Generation Language).
  • 11.  Bahasa Generasi Ketiga biasa juga disebut dengan bahasa tingkat tinggi atau HLL (high level language).  Contoh Bahasa Generasi Ketiga yaitu Basic, Pascal, C, C++, COBOL dan lain-lain.
  • 12.  Contoh perintah dalam bahas Pascal: writeln (‘Algoritma’);  Contoh perintah dalam Bahasa C: printf (“Algoritmanr”);  Contoh perintah dalam Bahasa C++: cout << “Algoritma”<< endl;
  • 13.  Perangkat Lunak yang menerjemahkan program dalam bahasa yang dimengerti manusia ke dalam Bahasa Assembly atau Mesin ada dua macam, yaitu: 1. Interpreter menerjemahkan program baris per baris, jika suatu baris akan dieksekusi, maka baris tersebut diterjemahkan dulu ke Bahasa Mesin. Contoh: Basic 2. Kompiler menerjemahkan semua baris perintah ke dalam bahasa mesin kemudian menjalankan hasil penerjemahannya. Contoh: Pascal, C, dan C++
  • 14.  Pada Bahasa Pemrograman Komputer ada beberapa faktor yang harus diperhatikan: 1. Sintaksis, yaitu tata bahasa yang digunakan dalam program atau aturan-aturan yang mengatur tata cara penulisan kata, ekspresi, dan pernyataan. 2. Semantik adalah maksud yang dikandung dalam setiap pernyataan yang ada dalam program atau aturan-aturan untuk menyatakan suatu arti. 3. Kebenaran Logika berhubungan dengan benar tidaknya urutan pernyataan yang ada dalam program
  • 15.  Kesalahan sintaksis akan langsung kelihatan, karena komputer akan menampilkan pesan kesalahan  Kesalahan semantik biasanya terjadi karena kekurang pahaman terhadap setiap pernyataan yang dituliskan pada program, sehingga walaupun program bisa berjalan tetapi tidak seperti yang diharapkan.  Kesalahan logika merupakan kesalahan dalam mengimplementasikan masalah yang dihadapi, sehingga program yang ditulis tidak benar secara logika.
  • 16. 1. Mendefinisikan masalah. Tujuannya untuk memahami permasalahan secara mendalam berkaitan dengan input, perintah yang digunakan dan bagaimana bentuk ouputnya.
  • 17. 2. Menentukan solusi. Jika masalahnya terlalu besar, dapat dibagi menjadi beberapa modul yang dapat memudahkan penyelesaian masalah Contoh: Program untuk menghitung luas dan keliling persegi panjang inputnya adalah panjang dan lebar, prosesnya dengan rumus luas = panjang * lebar dan keliling = 2* (panjang+lebar), serta output yang diharapkan adalah luas dan keliling.
  • 18. 3. Memilih Algoritma. Algoritma dibuat dengan tujuan untuk menyelesaikan masalah. Algoritma tidak bisa sekali jadi, tetapi akan dikaji berulang-ulang sampai diperoleh algoritma yang tepat, benar, dan relevan. Contoh menghitung luas dan keliling persegi panjang dibuat algoritma yaitu: a. Tentukan variabel dan tipe data yang digunakan. b. Masukkan input yaitu panjang dan lebar. c. Lakukan proses pencarian luas = panjang * lebar, dan keliling = 2*(panjang+lebar) d. Tampilkan luas dan keliling persegi panjang
  • 19. 4. Menulis Program menggunakan suatu bahasa pemrograman ke dalam komputer untuk memecahkan masalah yang ada. Di slide selanjutnya akan diperlihatkan contoh Program Menghitung Luas dan Keliling Persegi Panjang yang ditulis menggunakan Bahasa C.
  • 20. /*----------------------------------------------------------------------------------------------- Program ADP_1_langkah_pemrograman.cpp Contoh Menulis Program Menghitung Luas dan Keliling Persegi Panjang ----------------------------------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int panjang, lebar, luas, keliling; printf("Contoh Menulis Program"); printf(" sebagai Langkah-langkah Pemrograman Komputern"); printf("______________________"); printf("_________________________________________n"); printf("n"); printf("Masukkan panjang: ");scanf("%d",&panjang); printf("Masukkan lebar: ");scanf("%d",&lebar); printf("n"); luas = panjang * lebar; keliling = 2 * (panjang+lebar); printf("Jadi Luas Persegi Panjang adalah: %dn",luas); printf("Jadi Keliling Persegi Panjang adalah: %dn",keliling); printf("n"); system("Pause"); }
  • 22. 5. Melakukan testing dan debugging. Testing merupakan proses menjalankan program secara rutin untuk menemukan kesalahan- kesalahan dalam penulisan suatu pernyataan dalam program. Sedangkan debugging adalah proses menemukan kesalahan- kesalahan dalam program dan kesalahan yang ditemukan diperbaiki sampai tidak muncul kesalahan lagi
  • 23. 6. Menuliskan Dokumentasi. Dokumentasi yaitu catatan dari setiap langkah pekerjaan dalam pembuatan program, yang dilakukan dari awal sampai akhir. Dokumentasi sangat penting untuk melakukan penelusuran jika terjadi kesalahan dan penting untuk pengembangan program. Dokumentasi juga akan memberikan informasi yang cukup memadai sehingga orang lain akan dapat mengerti dan memahami alur logika program,
  • 24. Dokumentasi biasanya berupa komentar- komentar pada tiap baris program. Hal yang perlu diperhatikan: 1.komentar jangan terlalu panjang 2.komentar harus jelas maksudnya 3.komentar diletakkan pada tempat yang tepat 4.keterangan yang harus ditulis harus logis 5.tidak menimbulkan salah pengertian
  • 25. // ----------------------------------------------------------------------- // Program ADP_2_menulis_dokumentasi_program.cpp // Contoh Menulis Dokumentasi Program // ----------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> main() { //deklarasi variabel yang digunakan int jari; float luas, keliling; //keterangan program printf("Contoh Menulis Dokumentasi Programn"); printf("________________________________n"); printf("n"); //input variabel yang digunakan yaitu jari printf("Masukkan jari-jari: "); scanf("%d",&jari); printf("n"); //proses menghitung luas dan keliling lingkaran luas = 3.141593 * jari * jari; keliling = 2 * 3.141593 * jari; //ouput luas dan keliling lingkaran printf("Jadi luasnya adalah: %.2fn",luas); printf("Jadi keliling adalah: %.2fn",keliling); printf("n"); system("Pause"); }
  • 27.  Untuk komentar dalam bahasa C++ menggunakan tanda /* dan diakhiri dengan */, atau dengan tanda // di awal setiap pernyataan
  • 28. 7. Melakukan Perawatan. Hal ini perlu dilakukan karena kemungkinan munculnya kesalahan di luar dugaan atau biasanya pengguna meminta fasilitas yang baru dalam program.
  • 29.  Dalam mengimplementasi urutan langkah penyelesaian masalah harus menggunakan bentuk dan rancang bangun yang mudah dipahami, tidak berbelit-belit, sederhana dan dapat dikembangkan siapa saja. Konsep ini dinamakan Pemrograman Terstruktur, dengan ciri-ciri berikut ini: 1. Mempunyai teknik pemecahan permasalahan yang tepat dan benar. 2. Memiliki algoritma pemecahan masalah yang sederhana dan efisien. 3. Teknik penulisan program memiliki struktur logika yang benar dan mudah dipahami. 4. Membutuhkan biaya testing yang rendah. 5. Memiliki dokumentasi yang baik.
  • 30.  Clarity, Simplicity dan Unity Bahasa pemrograman harus dapat menolong programmer untuk membuat suatu desain program jauh sebelum programmer melakukan coding. Kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi yang membantu programmer mengembangkan suatu algoritma sehingga algoritma yang dihasilkan mempunyai kompleksitas yang rendah.
  • 31.  Orthogonality Orthogonality menunjuk kepada suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan
  • 32.  Kewajaran untuk aplikasi Bahasa pemrograman membutuhkan syntax yang tepat/cocok yang digunakan pada struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
  • 33.  Mendukung Abstraksi Abstraksi merupakan suatu hal yang substansial bagi programmer untuk membuat suatu solusi dari masalah yang dihadapi. Kemudian abstraksi tersebut dapat dengan mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.
  • 34.  Kemudahan untuk Verifikasi Program Verifikasi program merupakan hal penting bagi sebuah program karena dengan verifikasi yang mudah maka suatu program akan dengan mudah dibangun dan dikembangkan.
  • 35.  Lingkungan Pemrograman Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap akan memudahkan programmer untuk mengimplementasikan abstraksi yang sudah disusunnya.
  • 36.  Portabilitas Program Salah satu kriteria penting untuk proyek pemrograman adalah kemudahan program yang sudah jadi untuk dipindah-pindahkan dari komputer yang digunakan untuk membuat dan mengembangkan ke komputer lain yang akan menggunakannya.
  • 37.  Pemrogram atau Programmer adalah orang yang menyusun atau membuat suatu program.  Ciri-ciri Pemerogram yang baik: 1. Mampu menyusun algoritma dengan baik 2. Menguasai bahasa dan teknik penulisan program dengan baik 3. Dapat bekerjasama dalam suatu tim 4. Dapat bekerja secara efisien dan tepat waktu
  • 38.  Kata Algoritma diambil dari nama ilmuwan muslim yaitu Abu Ja’far Muhammad bin Musa Al-Khwarizmi (780 – 846 M) yang berasal dari Uzbekistan, yang banyak menghasilkan karya dalam bidang matematika, disamping karya-karya dalam bidang lainnya seperti geografi dan musik.  Al-Khwarizmi menyatakan bahwa algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan
  • 39.  Beberapa definisi Algoritma: 1. Menurut Rinaldi Munir (2002), algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis 2. Menurut Kamus Besar Bahasa Indonesia (1998), algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah. 3. Menurut Team Gunadarma (1988), algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi itu tersebut dapat dilaksanakan secara mekanik.
  • 40.  Contoh 1: algoritma dalam kehidupan sehari- hari (menulis surat): 1. Mempersiapkan kertas dan amplop. 2. Mempersiapkan alat tulis, seperti pena atau pensil 3. Mulai menulis 4. Memasukkan kertas ke dalam amplop 5. Pergi ke kantor pos untuk mengeposkan surat.
  • 41.  Contoh 2: algoritma untuk menghitung luas lingkaran. (Rumus luas lingkaran, L = πR2): 1. Masukkan R. 2. Pi 3.14 3. L Pi * R * R 4. Tulis L  Tanda pada baris kedua dan ketiga berarti nilai di sebelah kanan diberikan pada operan di sebelah kiri.
  • 42.  Masalah Algoritma Terjemahkan ke Dalam Bahasa Pemrograman Hasil/Solusi  Proses dari masalah hingga menjadi suatu algoritma disebut “Tahap Pemecahan Masalah”  Sedangkan dari Algoritma hingga menjadi Solusi/Hasil disebut tahap Tahap Implementasi. Hasil/Solusi yang dimaksud adalah suatu program yang merupakan implementasi dari algoritma yang disusun.
  • 43. 1. Uraian Deskriptif, yaitu menggunakan bahasa sehari-hari. 2. Pseudocode, yaitu kode yang mirip dengan kode pemrograman sebenarnya seperti Pascal atau C. 3. Flowchart (Diagram Alir), yaitu gambar atau diagram yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambar ini dinyatakan secara simbol, dan tiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung.
  • 44.  Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah.  Merupakan salah satu cara penyajian dari suatu algoritma.
  • 45.  Ada 2 macam Flowchart : – System Flowchart, yaitu urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data. – Program Flowchart, yaitu urutan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program.
  • 46.  Simbol – simbol yang digunakan dalam flowchart, yaitu - Flow Direction Symbols (Simbol penghubung alur) - Processing Symbols (Simbol proses). - Input-output Symbols (Simbol input-output)
  • 47.  Simbol – simbol flowchart
  • 48.  Simbol – simbol flowchart
  • 49.  Pembuatan flowchart - Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. - Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. - Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. - Masing – masing simbol sebaiknya menggunakan suatu kata yang mewakili suatu pekerjaan - Jika flowchart terpotong yang dikarenakan keterbatasan tempat maka gunakan simbol penghubung yang tepat.
  • 50.  Dalam pemrograman, algoritma digunakan untuk tiga struktur dasar, yaitu: 1. Struktur Urut (sequence structure), 2. Struktur Keputusan (decision structure), 3. Struktur perulangan (looping structure).
  • 51. 1. Struktur Urut (sequence structure), terdiri dari pernyataan atau beberapa pernyataan yang tidak mempunyai perulangan atau keputusan di dalamnya. Contoh: algoritma untuk menghitung luas dan volume suatu balok. Rumus Luas Balok, L = (2*p*l) + (2*p*t) + (2*l*t) Rumus Volume Balok, V = p*l*t
  • 52.  Algoritma dari permasalahan di atas adalah: 1. Masukkan panjang 2. Masukkan lebar 3. Masukkan tinggi 4. Luas = (2*p*l)+(2*p*t)+(2*l*t) 5. Volume = p*l*t 6. Tampilkan Luas 7. Tampilkan Volume
  • 53. Keterangan dari algoritma di atas: Pada baris pertama, kedua & ketiga diminta untuk memasukkan input yang berkaitan dengan balok yaitu panjang, lebar dan tinggi. Panjang balok disimpan pada variabel panjang, lebar balok disimpan pada variabel lebar dan tinggi balok disimpan pada variabel tinggi. Pada baris keempat dan kelima, diminta memasukkan rumus untuk mencari luas dan volume balok, yaitu Luas = (2*panjang*lebar) + (2*panjang*tinggi) + (2*lebar*tinggi), dan Volume = panjang*lebar*tinggi. Luas balok disimpan pada variabel luas dan Volume balok disimpan pada variabel volume. Baris keenam dan ketujuh merupakan hasil dari proses input dan proses perhitungan dari variabel input yang dimasukkan dan nantinya akan ditampilkan Luas dan Volume balok.
  • 54. Flowchart dari algoritma Struktur Urut di atas adalah:
  • 55. Contoh memecahkan masalah dalam algoritma Struktur Urut. Program untuk menghitung luas dan volume suatu balok. /* ---------------------------------------------------------------------- Program ADP_3_struktur_dasar_algoritma_urut.cpp Contoh Struktur Dasar Algoritma ---------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int panjang, lebar, tinggi, luas, volume; printf("Contoh Struktur Dasar Algoritma Urutn"); printf("Menghitung Luas & Volume Balokn"); printf(“______________________________n"); printf("n"); printf("Masukkan panjang: "); scanf("%d",&panjang); printf("Masukkan lebar: "); scanf("%d",&lebar); printf("Masukkan tinggi: "); scanf("%d",&tinggi); luas=(2*panjang*lebar)+(2*panjang*tinggi)+(2*lebar*tinggi); volume=panjang*lebar*tinggi; printf("Jadi Luasnya adalah: %dn",luas); printf("Jadi Volumenya adalah: %dn",volume); system("Pause"); }
  • 57. 2. Struktur Keputusan (decision structure), digunakan untuk memilih salah satu alternatif jawaban yang tepat dari pilihan yang ada. C++ menyediakan dua perintah pengambilan keputusan yaitu perintah IF dan SWITCH.
  • 58. Contoh: algoritma untuk menghitung total pembayaran dari pembelian seorang pelanggan toko, dengan ketentuan apabila pembelian pelanggan tersebut sama dengan atau melebihi 100000, maka pelanggan tersebut mendapat discount 10%, jika tidak pelanggan tersebut hanya mendapat discount 5%.
  • 59. Algoritma dari permasalahan tersebut adalah: 1. Masukkan pembelian 2. Jika pembelian >= 100000, discount =10% * pembelian 3. Total pembayaran = pembelian – discount 4. Jika pembelian < 100000, discount = 5% * pembelian 5. Total pembayaran = pembelian – discount 6. Tampilkan pembelian 7. Tampilkan discount 8. Tampilkan total pembayaran
  • 60. Keterangan dari algoritma di atas: Pada baris pertama, diminta untuk memasukkan input yang berkaitan dengan permasalahan di atas yaitu pembelian. Pembelian tersebut disimpan pada variabel beli. Pada baris kedua, akan dilakukan pengujian dan pengecekan pembelian yang dimasukkan yaitu apabila pembelian pelanggan tersebut sama dengan atau melebihi 100000 atau tidak. Jika jawabannya ya, maka pelanggan tersebut mendapat discount 10%, dan total pembayarannya = pembelian-dicount. Discount disimpan dalam variabel disc dan total pembayaran disimpan dalam variabel total. Kemudian ke baris keenam sampai kedelapan. Jika jawabannya tidak, maka kerjakan baris keempat dan kelima yaitu discount hanya 5% dan total pembayaran = pembelian- discount. Selanjutnya pada baris keenam sampai kedelapan, akan ditampilkan discount dan total pembayaran.
  • 61. Flowchart dari algoritma Struktur Keputusan di atas adalah:
  • 62. // ------------------------------------------------------------------------------ // Program ADP_4_struktur_dasar_algoritma_keputusan.cpp // Contoh Struktur Dasar Algoritma // ------------------------------------------------------------------------------ #include <stdio.h> #include <stdlib.h> main() { long int beli,disc,total; printf("Contoh Struktur Dasar Algoritma Keputusann") printf("Program untuk menghitung Pembelian"); printf(" dengan discountn"); printf("___________________________________"); printf("________________n"); printf("n"); printf("Masukkan nilai pembelian: Rp. "); scanf("%d",&beli); printf("n"); if (beli>=100000) { disc=0.1*beli; total=beli-disc; } else { disc=0.05*beli; total=beli-disc; } printf("Jadi pembelian adalah Rp. %dn",beli); printf("dengan discount Rp. %dn",disc); printf("dan total pembayaran sebesar Rp. %dn",total); printf("n"); system("Pause"); } Contoh memecahkan masalah dalam algoritma Struktur Keputusan. Program untuk menghitung total pembayaran dari pembelian dengan discount
  • 64. 3. Struktur Perulangan (looping structure), digunakan untuk melakukan suatu proses secara berulang-ulang, jika suatu kondisi dipenuhi atau sebaliknya. Biasa dipergunakan untuk mengulang proses pemasukan data, mengulang proses perhitungan, dan mengulang proses penampilan hasil pengolahan data.
  • 65. Contoh: algoritma untuk menampilkan bilangan dari 10 sampai 1 secara menurun, yaitu 10,9,8,7,6,5,4,3,2,1. Algoritma dari permasalahan tersebut: 1. Tentukan nilai awal, batas, dan penurunan nilai 2. Lakukan perulangan sampai batas terpenuhi 3. Tampilkan bilangan
  • 66. Keterangan dari algoritma di atas: Pada baris pertama, diminta untuk mendefinisikan variabel bilangan dalam hal ini disimpan dalam variabel n. Adapun nilai awal n adalah 10, batas dari bilangan adalah n>0. Karena yang akan ditampilkan bilangan secara menurun, maka bilangan awal dikurangi satu persatu. Dalam C++ penulisannya adalah n--. Pada baris kedua, proses perulangan dimulai, n dimulai dari 10, karena 10>0, maka perulangan dilakukan serta proses penurunan berjalan yaitu 10-1=9. Seterusnya, perulangan dilakukan sampai n=0. Apabila nilai n=0, maka proses perulangan dihentikan dan langkah selanjutnya akan turun ke baris ketiga yaitu menampilkan semua bilangan dalam perulangan tersebut.
  • 67. Flowchart dari algoritma Struktur Perulangan di atas adalah:
  • 68. Contoh memecahkan masalah dalam algoritma Struktur Perulangan. Program untuk menampilkan bilangan dari 10 sampai 1 secara menurun // ------------------------------------------------- // Program ADP_5_struktur_dasar_algoritma_perulangan.cpp // Contoh Struktur Dasar Algoritma // ------------------------------------------------- #include <stdio.h> #include <stdlib.h> main() { int n; printf("Contoh Struktur Dasar Algoritma Perulangann"); printf("Program untuk menampilkan nilai 10 s.d. 1n"); printf("__________________________________________n"); printf("nt"); for (n=10; n>0; n--){ printf("%dnt",n); } printf("n"); system ("Pause"); }
  • 70. Sejauh ini tidak ada standarisasi tentang bagaimana menyusun algoritma. Secara prinsip, setiap orang mempunyai kebebasan untuk menyusun bentuk suatu algoritma. Tiap orang dapat menggunakan kata-kata dalam bahasa manusia, pseudocode, atau bahkan diagram alir untuk mewujudkan suatu algoritma. Tiap orang juga dapat menggunakan cara-caranya sendiri untuk menuliskan suatu algoritma dengan memegang teguh konsistensi.
  • 71. Namun demikian ada beberapa hal yang perlu diperhatikan dalam menyusun suatu algoritma. Menurut Knuth ( 1973, hal. 4) dan juga Horowitz (1999, hal. 1), ada lima ciri-ciri penting yang harus dimiliki sebuah algoritma, yaitu: 1. Finitness, menyatakan bahwa suatu algoritma harus berakhir untuk semua kondisi setelah memproses sejumlah langkah. 2. Definiteness, menyatakan bahwa setiap langkah harus dinyatakan dengan jelas (tidak rancu atau memiliki dua arti). 3. Masukan, setiap algoritma dapat tidak memiliki masukan atau mempunyai satu atau beberapa masukan. Masukan merupakan suatu besaran yang diberikan di awal sebelum algoritma diproses. 4. Keluaran, setiap algoritma memiliki keluaran, entah hanya sebuah keluaran atau banyak keluaran. Keluaran merupakan besaran yang mempunyai kaitan atau hubungan dengan masukan. 5. Efektivitas, setiap algoritma diharapkan bersifat efektif, dalam arti semua operasi yang dilaksanakan oleh algoritma harus sederhana dan dapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiap instruksi dalam algoritma dapat dikerjakan oleh orang dengan hanya menggunakan kertas dan pensil.
  • 72.  Memiliki logika perhitungan / metode yang tepat dalam memecahkan masalah  Menghasilkan output yang tepat dan benar dalam waktu yang singkat.  Ditulis dengan bahasa yang standart secara sistematis dan rapi sehingga tidak menimbulkan arti ganda  Ditulis dengan format yang mudah dipahami, dan diimplementasikan ke dalam bahasa pemograman  Semua Operasi yang dibutuhkan terdefinisi dengan jelas  Semua proses harus selalu berakhir setelah sejumlah langkah dilakukan.
  • 73.  Standart Teknik Pemecahan Masalah – Top – Down : Merupakan teknik pemecahan masalah yang paling banyak digunakan dimana pada teknik ini suatu masalah yang besar / complex dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil, Dari kelompok kecil kemudian dianalisa dan apabila masih memungkinkan untuk dibagi lagi menjadi sub bagian lalu kemudian di susun langkah-langkah untuk menyelesaikan masalah secara detail. – Bottom – Up : Teknik ini masalah yang besar/komplek dipecahkan dengan melakukan penggabungan prosedur-prosedur yang menjadi satu kesatuan program guna menyelesaikan masalah tersebut, teknik ini sudah mulai di tinggalkan.
  • 74.  Standart Penyusunan Program – Kebenaran logika dan penulisan : Program yang disusun harus memiliki ketepatan, ketelitian, dan kebenaran dalam perhitungan, sehingga hasilnya dapat dipercaya serta harus teliti dalam penulisannya. – Waktu untuk penulisan program : Program harus dapat menentukan batas waktu minimum dan maksimum dalam penulisan programnya yang tersedia secara wajar.