Algoritma Dan Penerapannya

34
ALGORITMA DAN PENERAPANNYA DALAM PROGRAM C++ Oleh: Saya sendiri 672005042

description

Algoritma Dan Penerapannya

Transcript of Algoritma Dan Penerapannya

Page 1: Algoritma Dan Penerapannya

ALGORITMA DAN PENERAPANNYADALAM PROGRAM C++

Oleh:

Saya sendiri

672005042

Page 2: Algoritma Dan Penerapannya

I. Apa To itu ALGORITMA????

Sebenarnya, apa itu algoritma??? Siapa to yang menemukannya??? Terus algoritma itu mau buat apa??? Bisa dimakan apa nggak???

Mungkin ini yang akan terlintas dibenak kita semua. Algoritma ditemukan oleh Mohammed Algoritma ( Abu Ja’far Mohammed Ibnu Musa Al khowariz ) . Ia seorang penemu dari “ Timur Tengah “, tempatnya si Abunawas end Aladun eh Alladin. Ia menuliskan Algoritmanya dalam buku yang berjudul Al-jabr Wa’al Muqabala. Kini, buku-buku ini tersedia dalam bentuk VCD dan DVDnya. Sampul, isi, dan jilidnya dijual terpisah. Nah, pertanyaan selanjutnya, ALGORITMA itu makanan apaan sih???

Algoritma kalo menurut tu si Mohammed Algoritma adalah urutan langkah dalam melakukan pekerjaan tertentu. Lha, kok artinya sulit sekali ya?? Lalu si Mohammed Algoritma itu ngomong gini, “ Lha memank gitu artinya!!” Lalu Ia memberi contoh: Sekarang kita ada dilantai 2 gedung F. Ada berapa cara untuk sampai ke lantai 1 gedung F ini??? Jawabannya seperti pada iklan wafer tango yaitu “ RATUSAAN”. Ya memang betul jawabannya. Kita dapat menuju lantai 1 melalui tangga depan, ato melalui tangga belakang, ato langsung aja loncat dari jendela, ato mungkin juga bagi yang suka main-main ato belum pernah naik lift, mereka akan naik ke lantai 4 dulu (Karena lantai 2 dan 3 kan liftnya rusak), kemudian kelantai 5 , terus turun dulu ke lantai 1, naik lagi ke lantai 4 dan baru terjun bebas dari sana(karena lantai 5 kan jendelanya ketutup semua)!! He…he…he….

Page 3: Algoritma Dan Penerapannya

Lha………. Terus apa hubungannya ama komputer???? Kalo diprogram komputer, algoritma berarti urutan-urutan langkah kasar yang harus dilakukan untuk menyelesaikan masalah. Kok kasar??? Yup, karena kalo tidak kasar bukan topi saya, eh….. karena dalam algoritma, langkah yang kita pakai tidak harus terpatok pada aturan-aturan khusus dalam membuatnya. Seperti contoh diatas! Kalau kita lihat, apa mungkin kita bisa terjun dari lantai 4 ke lantai 1??? Pasti matilah kita!!! Hal ini kita lihat dari segi manusiawi kita. Akan tetapi, dalam program komputer, kita dapat mengambil proses ato langkah-langkah ini untuk menyelesaikan masalah tersebut. Dalam algoritma, yang diperhatikan adalah keluaran ataupun outputnya. Jadi, contoh algoritma diatas, yang menjadi patokan benar ato tidaknya algoritma tersebut, apabila kita bisa sampai kelantai satu. Tidak perduli apakah kamu selamat ato mati. Inilah mengapa dikatakan secara langkah kasar. Biasanya, langkah kasar ini digunakan untuk security ato perlindungan bagi program yang kita buat. Sebagai contoh adalah enkripsi. Enkripsi adalah membuat perubahan karakter yang kita tuliskan menjadi karakter acak ato symbol ato tulisan yang tidak dimengerti oleh orang lain. Logikanya sama, yaitu membuat langkah-langkah penyelesaian ato yang disebut Algoritma itu lebih rumit. Seperti contoh diatas. Enkripsi itu langkahnya seperti “ Kita naik kelantai 4 dulu, kemudian kelantai 5 naik lift, kemudian turun ke lantai 1, terus naik lagi ke lantai 4, terus terjun lewat jendela.” Hal ini dilakukan untuk membuang jejak yang dapat disalahgunakan oleh para tangan yang tidak bertanggung jawab!!!

Kini kita dah tau deh!!! Nah pertanyaannya yang terakhir adalah, “ Mengapa tu si Mohammed Algoritma nemuin ALGORITMA??? Kan nyusahin kita!!! Kita harus belajar bahasa pemerograman kayak C++, java, dll apalagi ditambah matematika diskrit! ADUH! Nah kalo itu pertanyaannya, saya nyerah deh!!! He….he…..he….

Page 4: Algoritma Dan Penerapannya

II. Gimana tu hubungan antara Algoritma ama Bahasa Pemerograman??

Udah nikah belum??? Itulah pertanyaan ketika kita bertanya hubungan antara Algoritma dan bahasa pemerograman? Tentu saja jawabannya belum ya!! Mereka kan baru tunangan! He…he..he… Bukan ya!!

E….. gini lho, komputer itu kan mesin ya? (Apa bukan ya???) Komputer itu hanya dapat melakukan operasi aritmatika dan logika ato yang disebut ALU! Dari katanya saja, kita udah tau kalo itu termasuk sulit lah….! Operasi aritmatika contohnya adalah perkalian ( X ), pembagian ( / ), pertambahan ( + ), and pengurangan ( - ). Teman-teman pasti udah tau hal ini kan!! Kalo operasi logika contohnya adalah not ( bukan ), or ( atau ), dan and ( dan ). Hal ini udah dipelajari ama kelompok lain kan!!

Nah, dari sini kita bisa membuat komputer itu menjalankan perintah yang kita berikan pada dia. Akan tetapi, untuk membuat komputer itu bisa mikir ato njalanin perintah kita, kita harus memberikan padanya langkah-langkah yang harus ditempuhnya dalam mengerjakan soal itu. Kalo kita sih pasti secara otomatis akan membuat langkah-langkah dalam mengerjakan perintah-perintah yang diberikan pada kita ya!! Sebagai contoh, bagaimana kita bisa mencontoh pekerjaan teman kita sewaktu ulangan, ato bagaimana kita bisa ngegandeng tu cewek waktu pulang kuliah nanti!! Nah, langkah-langkah itu kan tadi disebut sebagai Algoritma kan!!! Tanpa kita berikan langkah-langkah yang ditempuh kepada komputer, maka komputer tidak akan bisa mengerjakan perintah yang kita berikan padanya! Maka hubungan antara Algoritma dan bahasa pemerograman adalah “ Algoritma yang dapat membuat komputer mengerjakan apa yang kita perintahkan kepadanya.” Bayangkan saja kalo tidak ada Algoritma, nggak bakalan ada tu namanya “ Need For Speed Most Wanted” , “ Diablo“ , “ Mario Bross”, apalagi nggak ada “ Playboy the Mansion” !!! Pasti tu para cowox-cowox sedih banget ya!!! He..he…he…he…

Masih protes ama tu si Mohammed Algoritma???? Kamu pasti sekarang makin sayang ama tu si Mohammed Algoritma !!! He…he…he….

Page 5: Algoritma Dan Penerapannya

III. Eh….Terus Hubungannya Algoritma ama DFD Apa Duonkx??

DFD tu apa ya?? Apa ada hubungannya ama dunia lain, gitchu…?? Tentu aja bukan ya, to, ya!!! DFD tu “ Duda Feranak Dempat “( Maksa banget ya!!!), he..he..he..he.. Bukan dink!! DFD tu “ Data Flow Diagram.” Apaan lagi ya????

Ok, Data Flow Diagram itu adalah diagram yang menunjukkan arus data semenjak data itu dimasukkan hingga data itu selesai diproses dalam system. Wah terlalu rumit tu!!!! Penjelasan bodonya gimana ya??? Baiklah, penjelasan bodonya itu gini lho…. Kita kan tau kalo komputer perlu dikasih petunjuk berupa langkah-langkah biar dia bisa ngejalanin perintah kita! Nah..langkah-langkah itu biasanya kalo berupa tulisan, akan sulit dimengerti bukan? Supaya kita lebih mudah melihat, mengerti, mencermati, berpikir, dan berargument ( panjang amat ya!! padahal amat aja nggak panjang lho..), kita dapat menggunakan sebuah diagram(ato kalo nggak tau berupa gambar gitchu lho..) yang menunjukkan proses atou perjalanan data mulai dari bayi alias semenjak data itu dimasukkan hingga data itu dimutahkan kembali dalam suatu proses!!! Udah ngerti???

Page 6: Algoritma Dan Penerapannya

Kalo udah tau, pasti ada yang Tanya;” Lha terus gambarnya kayax apa??? Boleh gambar pemandangan nggak??” Karena itu, mari kita bahas bentuk body sang DFD ini!!

Bentuk DFD itu macam-macam! Ada yang gendut, ceking, ada pula yang nggak karuan!! DFD itu juga mempunyai beberapa versi! Ada versi anak-anak, versi remaja, bahkan ada yang versi 21 taon keatas! He..he..he.. Tapi memang, ada beberapa versi dari penggambaran DFD dengan beberapa aturan yang berbeda tentu saja! Sebagai contoh,

Page 7: Algoritma Dan Penerapannya

Tipe Pertama Tipe KeduaTerminal

Proses

Output/input

pemilihan

Persambungan

inputan manual

Kesatuan luar

data flow

proses

data store

Page 8: Algoritma Dan Penerapannya

Dan masih banyak yang lainnya…. Tapi karena keterbatasan dana, maka segini aja dulu ya!!!! Ok…Mari kita lihat!! Beda kan!!!! Tapi supaya pelajaran ini tidak menganggu mata kuliah lain (Seperti Sistem Informasi, pengantar teknologi informatika, ama system pemerograman lainnya), maka kita akan menggunakan tipe ke 2!!! Ok!!! Ini menurut kuliah umumnya pak ADI lho!!! NGGAK BOLEH PROTES!!! He..he..he..

Page 9: Algoritma Dan Penerapannya

Kita bahas atu-atu ya!!! Dari gambar tipe kedua diatas, kita akan menemukan 4 jenis DFD!!! Apaan ya tu??? Kita mulai saja ya!!! Yang ke:

satu: Kesatuan luar = bahasa jawanya adalah external entity. Kesatuan luar ini adalah segala sesuatu yang ada diluar proses yang berpengaruh atou mempunyai peranan penting dalam peroses itu. Lha kesatuan luar itu kayax apa to?? Kesatuan luar itu contohnya uadhalah Admin ama user doang!! Githcu…

Page 10: Algoritma Dan Penerapannya

dua: Data flow = barang ini tugasnya menunjukkan aliran data!!! Data itu mau masuk or keluar itu dapat dilihat dari garis panah ini!!! INGAT…INGAT… data flow hanya untuk menunjukkan aliran data itu sendiri! Maka, dengan sehingga apa boleh buat, keterangan yang ada diatas garis panah ini hanya boleh menunjukkan kata benda saja; seperti: kucing, siomai, ayam goreng, tikus busuk, dan lain sebagainya….

Page 11: Algoritma Dan Penerapannya

Tiga: Proses : Proses itu adalah kegiatan atou kerja yang dilakukan untuk menghasilkan suatu outputan dari sebuah system. Pasti mudhengk lah nih !!!

Page 12: Algoritma Dan Penerapannya

Empat: Data Store : itu huadalah tempat simpanan data yang dapat berupa file atau database kalo dalam system komputer dan dapat juga berupa arsip atou catatan kalo itu dalam system manual yaup…

Page 13: Algoritma Dan Penerapannya

“Tak ada katak, tempurung pun jadi!” Peribahasa ini mungkin cocok sekali bila kita memberikan contoh untuk DFD kita ini. Mari kita buat sebuah program dengan menuliskan algoritmanya pada sebuah flow chart!!! Ok??

Kita akan membuat program membuat kalkulator sederhana menggunakan C++!! Ok, kita gambar DFD-nya….

Page 14: Algoritma Dan Penerapannya

userProses

matematic

angka

Page 15: Algoritma Dan Penerapannya

Kok Cuma begini??? Yuk gampang kan??? Sebenarnya dalam diagram konteks DFD, hanya terdapat kesatuan luar, data flow, dan proses! Apaan ya tu diagram konteks??? Diagram konteks adalah diagram tingkat dasar atou diagram tingkat pertama dalam penyusunan diagram algoritma!!! Setelah diagram konteks, terdapat diagram level 0!! Diagram level 0 adalah diagram yang menjabarkan proses pada diagram konteks secara lebih detail. Teman² dapat membuat diagram level hingga level berapapun hingga proses dalam diagram konteks tidak dapat dijabarkan lagi!!! Untuk proses dalam pembuatan kalkulator dengan turbo C++, hanya sampai sini aja!!! Karena sifatnya sendiri masih sangat sederhana. Ok!!! Mudah kan??

Page 16: Algoritma Dan Penerapannya

III. Gimana Tu Algoritma ama si Turbo C++??

Gimana caranya buat game “Need For Speed” pake turbo C++??? Kalo itu yang ditanyakan, sampe matipun gua kagak bisa!!! Lha cuma buat TR DDP aja gua nggak bisa!!! Tapi jangan kuatir! Mari kita buat program kecil ²-an dari DFD diatas tadi aja ya!!

Nah, codingnya bisa diliat langsung aja di modul ya!!!

Page 17: Algoritma Dan Penerapannya

Kok kelihatannya cucah ya???? Nggak juga kok sebenarnya, kalo kita mau belajar lho!!! Biar kelihatan gampang, gua buat rumusnya baris-perbaris. Mari

kita bahas satu per satu. 1. # include

Apaan ya tu?? #include itu digunakan untuk memasukkan fungsi primitive yang disediakan compiler ke program kita! Compiler???? Apaan lagi sih tu??? Gini ya, #include itu mendeklarasian apa saja yang akan kita gunakan dalam program itu. Jadi dengan kata lain #include itu sebagai header ato kepala program. Ada banyak library header dalam C++, contohnya :#include<iostream.h> : digunakan untuk memberikan masukkan

dan keluaran dalam program ini. Fungsi- fungsinya antara lain cout<<, cin>>, end, dll. Biasanya dalam pemuatan program

C++, header ini selalu ada.#include<conio.h> : untuk mengaktifkan perintah getche dan clrscr.#include<stdlib.h> : digunakan untuk mengaktifkan perintah _exit().#include<math.h> : digunakan untuk mengaktifkan perintah yang

berhubungan dengan operasi matematika.Masih banyak lagi head library yang lainnya. Akan tetapi perintah-perintah itu jarang dipakai

Page 18: Algoritma Dan Penerapannya

2. void

Ini makanan apaan??? Ini adalah tipe fungsi yang berarti tidak bertipe. Dalam java, ini yang disebut class. Mengapa tidak bertipe? Karena void digunakan untuk memulai program yang ada dalam ruangannya! Ruangannya dibatasi oleh tanda { }. Lha terus fungsinya buat apa?? Fungsinya untuk mempermudah kita dalam penulisan dan pengoperasian lebih dari satu jenis. Sebagai contoh, dalam program diatas terdiri dari beberapa program yang dijadikan satu bukan? Nah itulah yang disebut pengoperasian lebih dari satu jenis.

Page 19: Algoritma Dan Penerapannya

3. main( )

Nah, kalo ini adalah pasangan dari void yang harus ada dalam program. Ini adalah fungsi program utama yang harus ada. Fungsinya adalah memulai suatu program. Jadi komputer, waktu anda mengkompile program ini, komputer akan membaca source code anda dari tempat dimana terdapat fungsi void main()!! Gitu lho…. Lha terus apa tu Kompile?? Kompile ato compile adalah pengubahan coding atawa source code yang anda masukkan menjadi program jadi!! Udah mudheng kan sekarang???

Page 20: Algoritma Dan Penerapannya

4. { }

Apaan ya itu??? Kayak bakmi yang mesti ada di dalam coding itu!!! Nganggu huh….!!! He..he..he.. jangan salah!! Ini adalah tanda untuk mengawali dan mengakhiri suatu kumpulan perintah dalam program ini!! Fungsinya sangat besar kan!!! Makanya jangan liat orang dari bentuknya donk!!!

Page 21: Algoritma Dan Penerapannya

5. clrscr( )

Nah, itu apaan lagi??? Dari tadi kok ada ya??? Ok, kalo perintah ini adalah perintah untuk membersihkan layar. Kok dibersihkan??? Kotor to??? Nggak tapi untuk mempercantik tampilan aja!!! Kalo cantik kan menyenangkan! He..he..he..

Page 22: Algoritma Dan Penerapannya

6. cout<<” “;

Kalo perintah ini, digunakan untuk menampilkan ato membuat tampil ( eh, sama aja dink ya !! ) suatu text setelah dikompile! Kita dapat menuliskannya didalam tanda petik. Ok!!

Page 23: Algoritma Dan Penerapannya

7. cin>>

Digunakan untuk memberikan karakter ato pengkarakteran suatu inputan. Pengkarakteran itu dapat bermacam-macam. Bisa Cuma atu huruf kayak a, b, c, d, dsb atopun banyak huruf kayak khszgcsdbvccjnsd, slcvsdkuvg , kzsjhdvfbj, dsb. Mudhengkah kamu???

Page 24: Algoritma Dan Penerapannya

8. Variable Ini apaan?? Teman ² pasti bertanya demikian. Kok tidak ada tulisan variable dalam coding diatas??? Tapi sebenarnya variable ini ada tertulis di coding lho!!! Tapi tulisannya ya nggak kayak gitu lah!!! Variable itu adalah tempat untuk menyimpan nilai ato data yang digunakan dalam pemerograman. Artinya?? Artinya, kita dapat memasukkan variable suatu karakter, apakah itu chartakter, integer, fload, double, atou sebagainya! Nah sekarang tau kan nyang mana tu yang variable!!!Tipe karakter ( char ) : adalah variable untuk sebuah karakter. Apa tu karakter??? Karakter yang dimaksud secara bodohnya adalah huruf. Jadi variable char dapat kita berikan apabila kita ingin memberikan besaran variable pada huruf yang akan dimasukkan.Tipe integer ( int ) : adalah variable yang diberikan untuk angka dengan rentangan -32768 hingga +32767Tipe long ( long ) : sama seperti integer, cuma rentangannya lebih gede. Tipe data untuk short, int, dan long merupakan tipe bilangan bulat. Jadi nggak ada Enolnya.Tipe fload, double, dan long double : Tiga tipe ini merupakan tipe untuk bilangan pecahan dan ketiganya berbeda dalam hal jangkauan nilai yang dicakup.

Page 25: Algoritma Dan Penerapannya

Kok ada unsigned sih??? Apaan ya tu??? He..he..he.. Itu mah artinya dimulai dari positif. Gini lho sebenarnya variable itu dibagi menjadi 2 jenis. Yang atu signed dan yang atu lagi unsigned. Bila signed, jangkauan nilainya dimulai dari negative ke positif. Lain lagi ama unsigned, jangkauan nilainya hanya positif, jadi dimulai dari bilangan enol. Bila kamu tidak menggunakan signed ato unsigned didepan variable, maka oleh komputer akan dianggap signed! Gitu!!!

Page 26: Algoritma Dan Penerapannya

IV. Pernyataan If

Ok, kita mulai dari perintah ato pernyataan if ya!!! Pernyataan ini sesuai dengan namanya, yaitu pernyataan yang digunakan untuk menggambil keputusan berdasarkan suatu kondisi. Bentuk pernyataannya ada 3 yaitu :

If saja

Else if, dan

Else

Pernyataan if ini dapat digunakan untuk mengambil dua ato lebih keputusan yang diberikan sesuai kondisi yang dikehendaki. Sebagai contoh, dapat kita lihat dari contoh kita diatas. Dari pernyataan diatas kita bisa melihat cara penulisan untuk pernyataan if. Penulisannya adalah:

Page 27: Algoritma Dan Penerapannya

If ( kondisi )

Pernyataan

Page 28: Algoritma Dan Penerapannya

V. Pernyataan for

Selanjutnya for! Pernyataan ini digunakan untuk mengeksekusi satu ato lebih pernyataan secara berulang ketika telah diketahui dengan pasti jumlah perulangan yang dilakukan. Penulisannya adalah:

Page 29: Algoritma Dan Penerapannya

For (exp1,exp2,exp3){

Pernyataan 1;

Pernyataan 2;

…..

Pernyataan n

}

Dimana exp1 : inisiasi variable

exp2 : kondisi untuk menentukan kapan perulangan berhenti

exp3 : mengatur kenaikan dan penurunan nilai variable

Page 30: Algoritma Dan Penerapannya

Bila kita mengamati contoh for diatas, sebenarnya gimana sih outputnya??? Outputnya itu kayak gini lho:

Masukkan Panjang Segitiga : 5 ( Semisal kita isi 5 )

Masukkan Banyaknya Segitiga : 1 ( Semisal kita isi 1 )

* * * * *

* * * *

* * *

* *

*

Page 31: Algoritma Dan Penerapannya

Mari kita scan satu persatu:

for(i=1;i<=panjang;i++) {

for (m=1;m<=jumlah;m++){for(l=1;l<=i-1;l++){cout<< " "; }for(k=panjang;k>=i;k--){cout<<"*"; }

}

cout<<endl;

}

Page 32: Algoritma Dan Penerapannya

Kita lihat perintah for yang pertama “ for ( i = 1; i<=panjang; i++)”. Perintah yang pertama ini digunakan untuk penginisialisasikan inputan yang kita masukkan pertama kali. Kita langsung saja melihat pada for yang ketiga. Pada perintah for ketiga ini, kita sebenarnya telah menggambar sebuah segitiga siku-siku, akan tetapi tidak tampak karena kita menggambar dengan karakter sepasi. Baru kita dapat menggambar segitiga siku-siku terbalik dengan karakter * pada perintah for ke 4. Jadi sebenarnya yang kita gambar adalah:

Page 33: Algoritma Dan Penerapannya

* * * * *

_ * * * *

_ _ * * *

_ _ _ * *

_ _ _ _ *

Page 34: Algoritma Dan Penerapannya

Disadur dari:Buku Catetanku semester satu tentang PTI dan DDP

Algoritma dan Pemerograman oleh Theophilus Herman .W.

Materi Praktikum Dasar dasar Pemerograman Assistensi

Materi kuliah umum PTI semester 1 Fakultas Teknologi Informasi