2 adp dasar-dasar algoritma

36
dasar-dasar algoritma

Transcript of 2 adp dasar-dasar algoritma

Page 1: 2   adp dasar-dasar algoritma

dasar-dasar algoritma

Page 2: 2   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 3: 2   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 4: 2   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 5: 2   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 6: 2   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 7: 2   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 8: 2   adp dasar-dasar algoritma

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

Merupakan salah satu carapenyajian dari suatu algoritma.

Page 9: 2   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 10: 2   adp dasar-dasar algoritma

Simbol – simbol yang digunakandalam flowchart, yaitu

- Flow Direction Symbols (Simbolpenghubung alur)

- Processing Symbols (Simbolproses).

- Input-output Symbols (Simbolinput-output)

Page 11: 2   adp dasar-dasar algoritma

Simbol – simbol flowchart

Page 12: 2   adp dasar-dasar algoritma

Simbol – simbol flowchart

Page 13: 2   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 14: 2   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 15: 2   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 16: 2   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 17: 2   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 18: 2   adp dasar-dasar algoritma

Flowchart dari algoritma Struktur Urut di atas adalah:

Page 19: 2   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 20: 2   adp dasar-dasar algoritma

• Hasil eksekusi program

Page 21: 2   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 22: 2   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 23: 2   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 24: 2   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 25: 2   adp dasar-dasar algoritma

Flowchart dari algoritma Struktur Keputusan di atas adalah:

Page 26: 2   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 27: 2   adp dasar-dasar algoritma

• Hasil eksekusi program

Page 28: 2   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 29: 2   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 30: 2   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 31: 2   adp dasar-dasar algoritma

Flowchart dari algoritma Struktur Perulangan di atas adalah:

Page 32: 2   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 33: 2   adp dasar-dasar algoritma
Page 34: 2   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 35: 2   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 36: 2   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.