74
dasar-dasar algoritma

1 adp dasar-dasar algoritma

Embed Size (px)

Citation preview

Page 1: 1   adp dasar-dasar algoritma

dasar-dasar algoritma

Page 2: 1   adp dasar-dasar algoritma

Pada dasarnya komputer adalah mesin yangtidak dapat melakukan apa-apa, sehinggadiperlukan serangkaian instruksi yangdiberikan kepada komputer untuk dapatbekerja dan memecahkan suatu masalah.

Langkah-langkah yang dilakukan dalammemberikan instruksi kepada komputeruntuk memecahkan masalah disebut jugaPemrograman Komputer.

Page 3: 1   adp dasar-dasar algoritma

Program adalah kumpulan instruksi yangdigunakan untuk mengatur komputer agarmelakukan suatu tindakan tertentu.

Definisi lain Program yaitu kata, ekspresi,pernyataan atau kombinasinya / kumpulanstatement-statement yang dirangkai dan disusunmenjadi satu kesatuan prosedur yang berupaurutan langkah-langkah logis penyelesaianmasalah yang diimplementasi kan denganpenggunaan bahasa pemrograman sehinggadapat dieksekusi oleh komputer dan dilihat hasilakhirnya.

Page 4: 1   adp dasar-dasar algoritma

Pada dasarnya komputer mencakup 3aspek penting, berupa PerangkatKeras (hardware), Perangkat Lunak(software) berupa program, sertaPerangkat Akal (brainware) atau orangyang berperan dalam operasikomputer maupun pengembanganPerangkat Lunak.

Page 5: 1   adp dasar-dasar algoritma

Dalam Pemrograman Komputer, untukmemberikan suatu instruksi harus digunakanbahasa yang dimengerti oleh komputer tersebut,yang disebut juga Bahasa Komputer. Denganbahasa ini, komputer akan mampu memahamidan mengerti perintah-perintah yang diberikan.

Bahasa Komputer biasa juga disebut denganBahasa Pemrograman Komputer, yaitu suatuprosedur atau tata cara penulisan program, yangdalam hal ini adalah kata, ekspresi, pernyataanatau kombinasi semuanya yang disusun dandirangkai berupa urutan langkah-langkahpenyelesaian masalah.

Page 6: 1   adp dasar-dasar algoritma

Bahasa Pemrograman Komputersecara garis besar dapatdikelompokkan menjadi 2:

1. Bahasa Beraras Rendah (Low LevelLanguage)

2. Bahasa Beraras Tinggi (High LevelLanguage)

Page 7: 1   adp dasar-dasar algoritma

Komputer adalah mesin digital yang hanyadapat mengenal kondisi ada arus listrik (biasadilambangkan dengan 1) atau tidak ada aruslistrik (biasa dilambangkan dengan 0)

Dengan kata lain, harus digunakan sandi 0atau 1 untuk melakukan pemrogramankomputer. Bahasa Pemrograman yangmenggunakan sandi 1 atau 0 ini disebutdengan Bahasa Mesin.

Page 8: 1   adp dasar-dasar algoritma

Bahasa Mesin sangat susah untuk dimengerti,maka kemudian muncul ide untukmelambangkan untaian sandi 0 dan 1 dengansingkatan kata yang lebih mudah dipahamioleh manusia. Singkatan kata ini kemudiandisebut Mnemonic Code.

Bahasa Pemrograman yang menggunakansingkatan kata (Mnemonic Code) ini disebutdengan Bahasa Assembly.

Page 9: 1   adp dasar-dasar algoritma

Contohnya, dalam prosesor Intel terdapatperintah 0011 1010 0000 1011. Perintah inisama artinya dengan perintah assembly CMP AL,0D, yang artinya bandingkan nilai register ALdengan 0D. CMP adalah singkatan dari CoMPare.

Perangkat lunak yang mengkonversikanperintah-perintah assembly ke dalam bahasamesin sering disebut juga assembler.

Bahasa Mesin dan Bahasa Assembly termasuk kedalam Bahasa Beraras Rendah (Low LevelLanguage).

Page 10: 1   adp dasar-dasar algoritma

Pemrograman dengan bahasa assemblydirasakan masih terlalu sulit, sehinggakemudian dikembangkan bahasapemrograman yang lebih mudah digunakankarena menggunakan kata-kata yang mudahdikenali oleh manusia.

Bahasa Pemrograman seperti ini disebutBahasa Generasi Ketiga atau 3GL (ThirdGeneration Language).

Page 11: 1   adp dasar-dasar algoritma

Bahasa Generasi Ketiga biasa jugadisebut dengan bahasa tingkat tinggiatau HLL (high level language).

Contoh Bahasa Generasi Ketiga yaituBasic, Pascal, C, C++, COBOL danlain-lain.

Page 12: 1   adp dasar-dasar algoritma

Contoh perintah dalam bahas Pascal:

writeln (‘Algoritma’);

Contoh perintah dalam Bahasa C:

printf (“Algoritma\n\r”);

Contoh perintah dalam Bahasa C++:

cout << “Algoritma”<< endl;

Page 13: 1   adp dasar-dasar algoritma

Perangkat Lunak yang menerjemahkan programdalam bahasa yang dimengerti manusia ke dalamBahasa Assembly atau Mesin ada dua macam,yaitu:

1. Interpreter menerjemahkan program baris perbaris, jika suatu baris akan dieksekusi, makabaris tersebut diterjemahkan dulu ke BahasaMesin. Contoh: Basic

2. Kompiler menerjemahkan semua baris perintahke dalam bahasa mesin kemudian menjalankanhasil penerjemahannya. Contoh: Pascal, C, danC++

Page 14: 1   adp dasar-dasar algoritma

Pada Bahasa Pemrograman Komputer adabeberapa faktor yang harus diperhatikan:1. Sintaksis, yaitu tata bahasa yang digunakan

dalam program atau aturan-aturan yangmengatur tata cara penulisan kata, ekspresi,dan pernyataan.

2. Semantik adalah maksud yang dikandungdalam setiap pernyataan yang ada dalamprogram atau aturan-aturan untukmenyatakan suatu arti.

3. Kebenaran Logika berhubungan dengan benartidaknya urutan pernyataan yang ada dalamprogram

Page 15: 1   adp dasar-dasar algoritma

Kesalahan sintaksis akan langsung kelihatan,karena komputer akan menampilkan pesankesalahan

Kesalahan semantik biasanya terjadi karenakekurang pahaman terhadap setiap pernyataanyang dituliskan pada program, sehinggawalaupun program bisa berjalan tetapi tidakseperti yang diharapkan.

Kesalahan logika merupakan kesalahan dalammengimplementasikan masalah yang dihadapi,sehingga program yang ditulis tidak benar secaralogika.

Page 16: 1   adp dasar-dasar algoritma

1. Mendefinisikan masalah.Tujuannya untuk memahamipermasalahan secara mendalamberkaitan dengan input, perintahyang digunakan dan bagaimanabentuk ouputnya.

Page 17: 1   adp dasar-dasar algoritma

2. Menentukan solusi. Jika masalahnya terlalubesar, dapat dibagi menjadi beberapa modulyang dapat memudahkan penyelesaianmasalahContoh:Program untuk menghitung luas dan kelilingpersegi panjang inputnya adalah panjangdan lebar, prosesnya dengan rumus luas =panjang * lebar dan keliling = 2*(panjang+lebar), serta output yangdiharapkan adalah luas dan keliling.

Page 18: 1   adp dasar-dasar algoritma

3. Memilih Algoritma. Algoritma dibuat dengantujuan untuk menyelesaikan masalah. Algoritmatidak bisa sekali jadi, tetapi akan dikajiberulang-ulang sampai diperoleh algoritmayang tepat, benar, dan relevan.Contoh menghitung luas dan keliling persegipanjang 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

Page 19: 1   adp dasar-dasar algoritma

4. Menulis Program menggunakan suatu bahasa

pemrograman ke dalam komputer untukmemecahkan masalah yang ada.

Di slide selanjutnya akan diperlihatkan contohProgram Menghitung Luas dan Keliling PersegiPanjang yang ditulis menggunakan Bahasa C.

Page 20: 1   adp dasar-dasar algoritma

/* -----------------------------------------------------------------------------------------------

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 Komputer\n");

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: %d\n",luas);

printf("Jadi Keliling Persegi Panjang adalah: %d\n",keliling);

printf("\n");

system("Pause");

}

Page 21: 1   adp dasar-dasar algoritma

• Hasil eksekusi program

Page 22: 1   adp dasar-dasar algoritma

5. Melakukan testing dan debugging. Testingmerupakan proses menjalankan programsecara rutin untuk menemukan kesalahan-kesalahan dalam penulisan suatu pernyataandalam program. Sedangkan debuggingadalah proses menemukan kesalahan-kesalahan dalam program dan kesalahanyang ditemukan diperbaiki sampai tidakmuncul kesalahan lagi

Page 23: 1   adp dasar-dasar algoritma

6. Menuliskan Dokumentasi. Dokumentasiyaitu catatan dari setiap langkah pekerjaandalam pembuatan program, yang dilakukandari awal sampai akhir. Dokumentasi sangatpenting untuk melakukan penelusuran jikaterjadi kesalahan dan penting untukpengembangan program. Dokumentasi jugaakan memberikan informasi yang cukupmemadai sehingga orang lain akan dapatmengerti dan memahami alur logikaprogram,

Page 24: 1   adp dasar-dasar algoritma

Dokumentasi biasanya berupa komentar-komentar pada tiap baris program. Hal yangperlu diperhatikan:

1.komentar jangan terlalu panjang

2.komentar harus jelas maksudnya

3.komentar diletakkan pada tempat yangtepat

4.keterangan yang harus ditulis harus logis

5. tidak menimbulkan salah pengertian

Page 25: 1   adp dasar-dasar algoritma

// -----------------------------------------------------------------------// Program ADP_2_menulis_dokumentasi_program.cpp// Contoh Menulis Dokumentasi Program// -----------------------------------------------------------------------

#include <stdio.h>#include <stdlib.h>main(){

//deklarasi variabel yang digunakanint jari;float luas, keliling;

//keterangan programprintf("Contoh Menulis Dokumentasi Program\n");printf("________________________________\n");printf("\n");//input variabel yang digunakan yaitu jariprintf("Masukkan jari-jari: "); scanf("%d",&jari);printf("\n");

//proses menghitung luas dan keliling lingkaranluas = 3.141593 * jari * jari;keliling = 2 * 3.141593 * jari;

//ouput luas dan keliling lingkaranprintf("Jadi luasnya adalah: %.2f\n",luas);printf("Jadi keliling adalah: %.2f\n",keliling);printf("\n");

system("Pause");}

Page 26: 1   adp dasar-dasar algoritma

• Hasil Eksekusi Program

Page 27: 1   adp dasar-dasar algoritma

Untuk komentar dalam bahasa C++menggunakan tanda /* dan diakhiri dengan*/, atau dengan tanda // di awal setiappernyataan

Page 28: 1   adp dasar-dasar algoritma

7. Melakukan Perawatan. Hal ini perludilakukan karena kemungkinan munculnyakesalahan di luar dugaan atau biasanyapengguna meminta fasilitas yang baru dalamprogram.

Page 29: 1   adp dasar-dasar algoritma

Dalam mengimplementasi urutan langkahpenyelesaian masalah harus menggunakan bentukdan rancang bangun yang mudah dipahami, tidakberbelit-belit, sederhana dan dapat dikembangkansiapa saja. Konsep ini dinamakan PemrogramanTerstruktur, 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.

Page 30: 1   adp dasar-dasar algoritma

Clarity, Simplicity dan Unity

Bahasa pemrograman harus dapat menolongprogrammer untuk membuat suatu desainprogram jauh sebelum programmermelakukan coding. Kemudahan,kesederhanaan dan kesatuan merupakansuatu kombinasi yang membantuprogrammer mengembangkan suatualgoritma sehingga algoritma yang dihasilkanmempunyai kompleksitas yang rendah.

Page 31: 1   adp dasar-dasar algoritma

Orthogonality

Orthogonality menunjuk kepada suatu atributyang dapat dikombinasikan dengan beragamfitur bahasa pemrograman sehingga setiapkombinasinya mempunyai arti dan dapatdigunakan

Page 32: 1   adp dasar-dasar algoritma

Kewajaran untuk aplikasi

Bahasa pemrograman membutuhkan syntaxyang tepat/cocok yang digunakan padastruktur program untuk merefleksikanstruktur logika yang melandasi suatualgoritma.

Page 33: 1   adp dasar-dasar algoritma

Mendukung Abstraksi

Abstraksi merupakan suatu hal yangsubstansial bagi programmer untuk membuatsuatu solusi dari masalah yang dihadapi.Kemudian abstraksi tersebut dapat denganmudah diimplementasikan menggunakanfitur-fitur yang ada dalam bahasapemrograman.

Page 34: 1   adp dasar-dasar algoritma

Kemudahan untuk Verifikasi Program

Verifikasi program merupakan hal pentingbagi sebuah program karena denganverifikasi yang mudah maka suatu programakan dengan mudah dibangun dandikembangkan.

Page 35: 1   adp dasar-dasar algoritma

Lingkungan Pemrograman

Bahasa pemrograman yang mempunyailingkungan pemrograman yang baik danlengkap akan memudahkan programmeruntuk mengimplementasikan abstraksi yangsudah disusunnya.

Page 36: 1   adp dasar-dasar algoritma

Portabilitas Program

Salah satu kriteria penting untuk proyekpemrograman adalah kemudahan programyang sudah jadi untuk dipindah-pindahkandari komputer yang digunakan untukmembuat dan mengembangkan ke komputerlain yang akan menggunakannya.

Page 37: 1   adp dasar-dasar algoritma

Pemrogram atau Programmer adalah orangyang menyusun atau membuat suatuprogram.

Ciri-ciri Pemerogram yang baik:

1. Mampu menyusun algoritma dengan baik

2. Menguasai bahasa dan teknik penulisanprogram dengan baik

3. Dapat bekerjasama dalam suatu tim

4. Dapat bekerja secara efisien dan tepatwaktu

Page 38: 1   adp dasar-dasar algoritma

Kata Algoritma diambil dari namailmuwan muslim yaitu Abu Ja’farMuhammad bin Musa Al-Khwarizmi(780 – 846 M) yang berasal dariUzbekistan, yang banyak menghasilkankarya dalam bidang matematika,disamping karya-karya dalam bidanglainnya seperti geografi dan musik.

Al-Khwarizmi menyatakan bahwaalgoritma adalah suatu metode khususuntuk menyelesaikan suatu persoalan

Page 39: 1   adp dasar-dasar algoritma

Beberapa definisi Algoritma:1. Menurut Rinaldi Munir (2002), algoritma adalah

urutan langkah-langkah logis penyelesaian masalahyang disusun secara sistematis

2. Menurut Kamus Besar Bahasa Indonesia (1998),algoritma adalah urutan logis pengambilankeputusan untuk pemecahan masalah.

3. Menurut Team Gunadarma (1988), algoritma adalahsuatu himpunan hingga dari instruksi-instruksiyang secara jelas memperinci langkah-langkahproses pelaksanaan, dalam pemecahan suatumasalah tertentu, atau suatu kelas masalahtertentu, dengan dituntut pula bahwa himpunaninstruksi itu tersebut dapat dilaksanakan secaramekanik.

Page 40: 1   adp dasar-dasar algoritma

Contoh 1: algoritma dalam kehidupan sehari-hari (menulis surat):

1. Mempersiapkan kertas dan amplop.

2. Mempersiapkan alat tulis, seperti penaatau pensil

3. Mulai menulis

4. Memasukkan kertas ke dalam amplop

5. Pergi ke kantor pos untuk mengeposkansurat.

Page 41: 1   adp dasar-dasar algoritma

Contoh 2: algoritma untuk menghitung luaslingkaran. (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 berartinilai di sebelah kanan diberikan pada operandi sebelah kiri.

Page 42: 1   adp dasar-dasar algoritma

Masalah Algoritma Terjemahkanke Dalam Bahasa Pemrograman Hasil/Solusi

Proses dari masalah hingga menjadi suatualgoritma disebut “Tahap PemecahanMasalah”

Sedangkan dari Algoritma hingga menjadiSolusi/Hasil disebut tahap TahapImplementasi. Hasil/Solusi yang dimaksudadalah suatu program yang merupakanimplementasi dari algoritma yang disusun.

Page 43: 1   adp dasar-dasar algoritma

1. Uraian Deskriptif, yaitu menggunakan bahasasehari-hari.

2. Pseudocode, yaitu kode yang mirip dengankode pemrograman sebenarnya seperti Pascalatau C.

3. Flowchart (Diagram Alir), yaitu gambar ataudiagram yang memperlihatkan urutan danhubungan antar proses beserta pernyataannya.Gambar ini dinyatakan secara simbol, dan tiapsimbol menggambarkan proses tertentu.Sedangkan antara proses digambarkan dengangaris penghubung.

Page 44: 1   adp dasar-dasar algoritma

Bagan-bagan yang mempunyaiarus yang menggambarkanlangkah-langkah penyelesaiansuatu masalah.

Merupakan salah satu carapenyajian dari suatu algoritma.

Page 45: 1   adp dasar-dasar algoritma

Ada 2 macam Flowchart :

– System Flowchart, yaitu urutan prosesdalam system dengan menunjukkan alatmedia input, output serta jenis mediapenyimpanan dalam proses pengolahandata.

– Program Flowchart, yaitu urutan instruksiyang digambarkan dengan simbol tertentuuntuk memecahkan masalah dalam suatuprogram.

Page 46: 1   adp dasar-dasar algoritma

Simbol – simbol yang digunakandalam flowchart, yaitu

- Flow Direction Symbols (Simbolpenghubung alur)

- Processing Symbols (Simbolproses).

- Input-output Symbols (Simbolinput-output)

Page 47: 1   adp dasar-dasar algoritma

Simbol – simbol flowchart

Page 48: 1   adp dasar-dasar algoritma

Simbol – simbol flowchart

Page 49: 1   adp dasar-dasar algoritma

Pembuatan flowchart- Sebuah flowchart diawali dari satu titik START dan

diakhiri dengan END.

- Hindari pengulangan proses yang tidak perlu danlogika yang berbelit sehingga jalannya prosesmenjadi singkat.

- Jalannya proses digambarkan dari atas ke bawahdan diberikan tanda panah untuk memperjelas.

- Masing – masing simbol sebaiknya menggunakansuatu kata yang mewakili suatu pekerjaan

- Jika flowchart terpotong yang dikarenakanketerbatasan tempat maka gunakan simbolpenghubung yang tepat.

Page 50: 1   adp dasar-dasar algoritma

Dalam pemrograman, algoritmadigunakan untuk tiga struktur dasar,yaitu:

1. Struktur Urut (sequence structure),

2. Struktur Keputusan (decisionstructure),

3. Struktur perulangan (loopingstructure).

Page 51: 1   adp dasar-dasar algoritma

1. Struktur Urut (sequence structure), terdiridari pernyataan atau beberapa pernyataanyang tidak mempunyai perulangan ataukeputusan di dalamnya.

Contoh: algoritma untuk menghitung luasdan volume suatu balok.

Rumus Luas Balok,

L = (2*p*l) + (2*p*t) + (2*l*t)

Rumus Volume Balok,

V = p*l*t

Page 52: 1   adp dasar-dasar algoritma

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

Page 53: 1   adp dasar-dasar algoritma

Keterangan dari algoritma di atas:

Pada baris pertama, kedua & ketiga diminta untuk memasukkaninput yang berkaitan dengan balok yaitu panjang, lebar dantinggi. Panjang balok disimpan pada variabel panjang, lebarbalok disimpan pada variabel lebar dan tinggi balok disimpanpada variabel tinggi.

Pada baris keempat dan kelima, diminta memasukkan rumusuntuk mencari luas dan volume balok, yaitu Luas =(2*panjang*lebar) + (2*panjang*tinggi) + (2*lebar*tinggi), danVolume = panjang*lebar*tinggi.

Luas balok disimpan pada variabel luas dan Volume balokdisimpan pada variabel volume. Baris keenam dan ketujuhmerupakan hasil dari proses input dan proses perhitungan darivariabel input yang dimasukkan dan nantinya akan ditampilkanLuas dan Volume balok.

Page 54: 1   adp dasar-dasar algoritma

Flowchart dari algoritma Struktur Urut di atas adalah:

Page 55: 1   adp dasar-dasar algoritma

Contoh memecahkan masalah dalam algoritma Struktur Urut.Program untuk menghitung luas dan volume suatu balok.

/* ----------------------------------------------------------------------Program ADP_3_struktur_dasar_algoritma_urut.cppContoh Struktur Dasar Algoritma---------------------------------------------------------------------- */

#include <stdio.h>#include <stdlib.h>main(){

int panjang, lebar, tinggi, luas, volume;

printf("Contoh Struktur Dasar Algoritma Urut\n");printf("Menghitung Luas & Volume Balok\n");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: %d\n",luas);printf("Jadi Volumenya adalah: %d\n",volume);

system("Pause");}

Page 56: 1   adp dasar-dasar algoritma

• Hasil eksekusi program

Page 57: 1   adp dasar-dasar algoritma

2. Struktur Keputusan (decisionstructure), digunakan untukmemilih salah satu alternatifjawaban yang tepat dari pilihanyang ada. C++ menyediakandua perintah pengambilankeputusan yaitu perintah IF danSWITCH.

Page 58: 1   adp dasar-dasar algoritma

Contoh: algoritma untuk menghitungtotal pembayaran dari pembelianseorang pelanggan toko, denganketentuan apabila pembelian pelanggantersebut sama dengan atau melebihi100000, maka pelanggan tersebutmendapat discount 10%, jika tidakpelanggan tersebut hanya mendapatdiscount 5%.

Page 59: 1   adp dasar-dasar algoritma

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

Page 60: 1   adp dasar-dasar algoritma

Keterangan dari algoritma di atas:

Pada baris pertama, diminta untuk memasukkan input yangberkaitan dengan permasalahan di atas yaitu pembelian. Pembeliantersebut disimpan pada variabel beli.

Pada baris kedua, akan dilakukan pengujian dan pengecekanpembelian yang dimasukkan yaitu apabila pembelian pelanggantersebut sama dengan atau melebihi 100000 atau tidak.

Jika jawabannya ya, maka pelanggan tersebut mendapat discount10%, dan total pembayarannya = pembelian-dicount. Discountdisimpan dalam variabel disc dan total pembayaran disimpan dalamvariabel total. Kemudian ke baris keenam sampai kedelapan.

Jika jawabannya tidak, maka kerjakan baris keempat dan kelimayaitu discount hanya 5% dan total pembayaran = pembelian-discount.

Selanjutnya pada baris keenam sampai kedelapan, akan ditampilkandiscount dan total pembayaran.

Page 61: 1   adp dasar-dasar algoritma

Flowchart dari algoritma Struktur Keputusan di atas adalah:

Page 62: 1   adp dasar-dasar algoritma

// ------------------------------------------------------------------------------// 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 Keputusan\n")printf("Program untuk menghitung Pembelian");printf(" dengan discount\n");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. %d\n",beli);

printf("dengan discount Rp. %d\n",disc);

printf("dan total pembayaran sebesar Rp. %d\n",total);

printf("\n");

system("Pause");

}

Contoh memecahkan masalah dalam algoritma Struktur Keputusan. Program untuk menghitung total pembayaran dari pembelian dengan discount

Page 63: 1   adp dasar-dasar algoritma

• Hasil eksekusi program

Page 64: 1   adp dasar-dasar algoritma

3. Struktur Perulangan (loopingstructure), digunakan untukmelakukan suatu proses secaraberulang-ulang, jika suatu kondisidipenuhi atau sebaliknya. Biasadipergunakan untuk mengulangproses pemasukan data,mengulang proses perhitungan,dan mengulang proses penampilanhasil pengolahan data.

Page 65: 1   adp dasar-dasar algoritma

Contoh: algoritma untuk menampilkanbilangan dari 10 sampai 1 secaramenurun, yaitu 10,9,8,7,6,5,4,3,2,1.

Algoritma dari permasalahan tersebut:1. Tentukan nilai awal, batas, dan

penurunan nilai2. Lakukan perulangan sampai batas

terpenuhi3. Tampilkan bilangan

Page 66: 1   adp dasar-dasar algoritma

Keterangan dari algoritma di atas:

Pada baris pertama, diminta untuk mendefinisikan variabelbilangan dalam hal ini disimpan dalam variabel n. Adapunnilai 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 dari10, karena 10>0, maka perulangan dilakukan serta prosespenurunan berjalan yaitu 10-1=9. Seterusnya, perulangandilakukan sampai n=0.

Apabila nilai n=0, maka proses perulangan dihentikan danlangkah selanjutnya akan turun ke baris ketiga yaitumenampilkan semua bilangan dalam perulangan tersebut.

Page 67: 1   adp dasar-dasar algoritma

Flowchart dari algoritma Struktur Perulangan di atas adalah:

Page 68: 1   adp dasar-dasar algoritma

Contoh memecahkan masalah dalam algoritma StrukturPerulangan.Program untuk menampilkan bilangan dari 10 sampai 1 secaramenurun

// -------------------------------------------------

// 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 Perulangan\n");

printf("Program untuk menampilkan nilai 10 s.d. 1\n");

printf("__________________________________________\n");

printf("\n\t");

for (n=10; n>0; n--){

printf("%d\n\t",n);

}

printf("\n");

system ("Pause");

}

Page 69: 1   adp dasar-dasar algoritma
Page 70: 1   adp dasar-dasar algoritma

Sejauh ini tidak ada standarisasi tentangbagaimana menyusun algoritma. Secaraprinsip, setiap orang mempunyai kebebasanuntuk menyusun bentuk suatu algoritma. Tiaporang dapat menggunakan kata-kata dalambahasa manusia, pseudocode, atau bahkandiagram alir untuk mewujudkan suatualgoritma. Tiap orang juga dapat menggunakancara-caranya sendiri untuk menuliskan suatualgoritma dengan memegang teguhkonsistensi.

Page 71: 1   adp dasar-dasar algoritma

Namun demikian ada beberapa hal yang perlu diperhatikan dalammenyusun suatu algoritma.Menurut Knuth ( 1973, hal. 4) dan juga Horowitz (1999, hal. 1), ada limaciri-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 suatubesaran yang diberikan di awal sebelum algoritma diproses.

4. Keluaran, setiap algoritma memiliki keluaran, entah hanya sebuahkeluaran atau banyak keluaran. Keluaran merupakan besaran yangmempunyai kaitan atau hubungan dengan masukan.

5. Efektivitas, setiap algoritma diharapkan bersifat efektif, dalam artisemua operasi yang dilaksanakan oleh algoritma harus sederhana dandapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiapinstruksi dalam algoritma dapat dikerjakan oleh orang dengan hanyamenggunakan kertas dan pensil.

Page 72: 1   adp dasar-dasar algoritma

Memiliki logika perhitungan / metode yang tepatdalam memecahkan masalah

Menghasilkan output yang tepat dan benar dalamwaktu yang singkat.

Ditulis dengan bahasa yang standart secarasistematis dan rapi sehingga tidak menimbulkan artiganda

Ditulis dengan format yang mudah dipahami, dandiimplementasikan ke dalam bahasa pemograman

Semua Operasi yang dibutuhkan terdefinisi denganjelas

Semua proses harus selalu berakhir setelah sejumlahlangkah dilakukan.

Page 73: 1   adp dasar-dasar algoritma

Standart Teknik Pemecahan Masalah

– Top – Down : Merupakan teknik pemecahan masalahyang paling banyak digunakan dimana pada teknik inisuatu masalah yang besar / complex dibagi-bagi kedalam beberapa kelompok masalah yang lebih kecil,Dari kelompok kecil kemudian dianalisa dan apabilamasih memungkinkan untuk dibagi lagi menjadi subbagian lalu kemudian di susun langkah-langkahuntuk menyelesaikan masalah secara detail.

– Bottom – Up : Teknik ini masalah yang besar/komplekdipecahkan dengan melakukan penggabunganprosedur-prosedur yang menjadi satu kesatuanprogram guna menyelesaikan masalah tersebut,teknik ini sudah mulai di tinggalkan.

Page 74: 1   adp dasar-dasar algoritma

Standart Penyusunan Program– Kebenaran logika dan penulisan : Program

yang disusun harus memiliki ketepatan,ketelitian, dan kebenaran dalamperhitungan, sehingga hasilnya dapatdipercaya serta harus teliti dalampenulisannya.– Waktu untuk penulisan program : Program

harus dapat menentukan batas waktuminimum dan maksimum dalam penulisanprogramnya yang tersedia secara wajar.