Your SlideShare is downloading. ×
Algoritma dan pemrograman
Algoritma dan pemrograman
Algoritma dan pemrograman
Algoritma dan pemrograman
Algoritma dan pemrograman
Algoritma dan pemrograman
Algoritma dan pemrograman
Algoritma dan pemrograman
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Algoritma dan pemrograman

566

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
566
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. ALGORITMA DAN PEMROGRAMANAlgoritmaDitinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Oranghanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Andadikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasaberusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahlisejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis bukuarab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yangberjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan”(The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akarkata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karenakata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi–thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambatlaun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kataAlgorithm diserap menjadi Algoritma.Definisi Algoritma“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusunsecara sistematis dan logis”.Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritmaharus logis dan harus dapat ditentukan bernilai salah atau benar.Algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program.Belajar MemprogramBelajar memprogram ≠ belajar bahasa pemrogramanBelajar memprogram : belajar tentang strategi pemecahan masalah, metodologi dansistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakatibersamaBelajar memprogram : bersifat pemahaman persoalan, analisis dan sintesisBelajar memprogram, titik berat : designer programBelajar Bahasa PemrogramanBelajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturansintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasaBelajar bahasa pemrograman , titik berat : coderProduk yang dihasilkan pemrogram :
  2. Program dengan rancangan yang baik (metodologis, sistematis)Dapat dieksekusi oleh mesinBerfungsi dengan benarSanggup melayani segala kemungkinan masukanDisertai dokumentasiBelajar memprogram, titik berat : designer programParadigma Pemrograman1. Pemrograman Proseduralo Berdasarkan urutan-urutan, sekuensialo Program adalah suatu rangkaian prosedur untuk memanipulasi data.o Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.o Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudahdiubah.2. Pemrograman Fungsionalo Berdasarkan teori fungsi matematika Fungsi merupakan dasar utama program.3. Pemrograman Terstrukturo Secara berurutan dan terstrukrtur.o Program dapat dibagai-bagi menjadi prosedur dan fungsi. Contoh: PASCAL danC4. Pemrograman Modularo Pemrograman ini membentuk banyak modul.o Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri Sebuahprogram dapat merupakan kumpulan modul-modul.o Contoh: MODULA-2 atau ADA5. Pemrograman Berorientasi Obyeko Pemrograman berdasarkan prinsip obyek, dimana obyek memilikidata/variabel/property dan method/event/prosedur yang dapat dimanipulasio Contoh: C++, Object Pascal, dan Java.6. Pemrograman Berorientasi Fungsio Pemrograman ini berfokus pada suatu fungsi tertentu saja.o Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.o Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.7. Pemrograman Deklaratifo Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripadamemecahkan masalah dengan implementasi algoritma.o Contoh: PROLOGLangkah-langkah dalam pemrograman komputer1. Mendefinisikan masalahIni merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy(oleh Henry Ledgard): “Semakin cepat menulis program, akan semakin lama kita dapatmenyelesaikannya”. Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan
  3. masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apainputan serta outputnya.2. Menemukan solusiSetelah masalah didefinisikan, maka langkah berikutnya adalah menentukan solusi. Jikamasalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan. Contohnya masalah invers matriks, maka kitadapat membagi menjadi beberapa modul:o meminta masukkan berupa matriks bujur sangkaro mencari invers matrikso menampilkan hasil kepada penggunao Dengan penggunaan modul tersebut program utama akan menjadi lebih singkatdan mudah dilihat.3. Memilih algoritmaPilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut4. Menulis programPilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudahdikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platformlainnya.5. Menguji programSetelah program jadi, silahkan uji program tersebut dengan segala macam kemungkinanyang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benarhandal dan layak digunakan.6. Menulis dokumentasiMenulis dokumentasi sangat penting agar pada suatu saat jika kita akan melakukanperubahan atau membaca source code yang sudah kita tulis dapat kita ingat-ingat lagi dankita akan mudah membacanya. Caranya adalah dengan menuliskan komentar-komentarkecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan,untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.7. Merawat programProgram yang sudah jadi perlu dirawat untuk mencegah munculnya bug yangsebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan fasilitas baruyang dulu tidak ada.Pembuatan algoritma mempunyai banyak keuntungan di antaranya :Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrogramanmanapun, artinya penulisan algoritma independen dari bahasa pemrograman dankomputer yang melaksanakannya.Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karenaalgoritmanya sama.Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
  4. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebutdapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasapemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal inidikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasialgoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, makasebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasapemrograman secara umum.Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasialgoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer,pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalamnotasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulisprogram sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yangmenjalannya.Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatupermasalahan ke dalam bahasa pemrograman.Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan olehkomputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Adabeberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :Mekanisme Pelaksanaan Algoritma oleh PemrosesKomputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritmaharus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi programadalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrogramantertentu sehingga dapat dilaksanakan oleh komputer.Kata “algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya. Misalnya adaorang yang berkata seperti ini: “program pengurutan data menggunakan algoritma selectionsort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program menggambarkan grafiktersebut?”. Jika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini,Anda dapat membedakan arti kata algoritma dan program. Algoritma adalah langkah-langkahpenyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasapemrograman. Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuatprogram disebut pemrograman (programming). Orang yang menulis program disebut pemrogram(programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi,program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.
  5. Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, pirantikeluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central Processing Unit –CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasiperbandingan, operasi perhitungan, operasi membaca, dan operasi menulis. Memori adalahkomponen yang berfungsi menyimpan atau mengingatingat.Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan dikerjakanoleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukandan keluaran (I/O devices) adalah alat yang memasukkan data atau program ke dalam memori,dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contohpiranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk).Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mulaprogram dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiapinstruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakanoperasioperasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data,data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasiyang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpanke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya denganmenampilkannya di layar monitor).Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol(untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasarakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi.Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja pembagianini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untukaplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya sajakemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang berbedadikembangkan untuk bermacam-macam terapan yang berbeda pula.Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasamanusia, maka bahasa pemrograman dikelompokkan atas dua macam :Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsungdikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnyaadalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti danlangsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangatsederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkanbahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai
  6. dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masihperlu penerjemahan ke dalam bahasa mesin.Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih“manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, programdalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perluditerjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilatoratau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contohbahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dansebagainya.Menilai Sebuah AlgoritmaKetika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untukmemecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilihmana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yangmemungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Yangmenjadi pertanyaan adalah bagaimana mengukur mana algoritma yang terbaik?. Beberapapersyaratan untuk menjadi algoritma yang baik adalah :Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harusberakurasi tinggi dan benar.Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin danfrekuensi kalkulasi yang sependek mungkin.Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapijuga untuk kasus lain yang lebih general.Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebihjauh berdasarkan perubahan requirement yang ada.Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda.Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagaiplatform komputer.Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak adakeragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dantidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiaplangkah harus jelas dan pasti.Contoh : Tambahkan 1 atau 2 pada x.Instruksi di atas terdapat keraguan.
  7. Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang samabanyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yangakan menjalankannya.Contoh : Hitung akar 2 dengan presisi sempurna.Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.Misal : Hitung akar 2 sampai lima digit di belakang koma.Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalahapakah bila jumlah instruksinya berhingga maka pasti terminate?Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti denganseksama maka dihasilkan output yang diinginkan.Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.2. Output: algoritma harus memiliki minimal satu buah output keluaran.3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan danefektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh SistemOperasi.Penyajian AlgoritmaPenyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar.Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasaIndonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengankode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untukmenggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkanalgoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocodemengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu carauntuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yangdengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakanketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.
  8. Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antarproses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiapsimbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garispenghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukanpengecekan bagian-bagian yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogramyang bekerja dalam tim suatu proyek.Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkanurutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain,dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutanproses dan hubungan antar proses secara mendetail di dalam suatu program.

×