2 adp dasar-dasar algoritma

Post on 22-Jul-2015

88 views 1 download

Transcript of 2 adp dasar-dasar algoritma

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

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.

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.

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.

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.

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.

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

Merupakan salah satu carapenyajian dari suatu 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.

Simbol – simbol yang digunakandalam flowchart, yaitu

- Flow Direction Symbols (Simbolpenghubung alur)

- Processing Symbols (Simbolproses).

- Input-output Symbols (Simbolinput-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 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.

Dalam pemrograman, algoritmadigunakan untuk tiga struktur dasar,yaitu:

1. Struktur Urut (sequence structure),

2. Struktur Keputusan (decisionstructure),

3. Struktur perulangan (loopingstructure).

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

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 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.

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.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");}

• Hasil eksekusi program

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

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%.

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 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.

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 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

• Hasil eksekusi program

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.

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

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.

Flowchart dari algoritma Struktur Perulangan di atas adalah:

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");

}

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.

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.

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.