Anda di halaman 1dari 15

KATA PENGANTAR

Puji syukur ke hadirat Tuhan Yang Maha Kuasa atas segala limpahan Rahmatnya sehingga penulis dapat menyelesaikan penyusunan makalah ini. Makalah yang memuat tentang Algoritma Hubungannya dengan Pemrograman ini merupakan tugas mata kuliah Pengantar Pemrograman. Harapan penulis semoga makalah ini dapat membantu menambah pengetahuan dan pengalaman bagi para pembaca, Penulis menyadari adanya kekurangan pada makalah ini karena pengalaman penulis yang masih sangat kurang. Oleh kerena itu penulis mengharapkan kepada para pembaca untuk memberikan masukan-masukan yang bersifat membangun untuk kesempurnaan makalah ini. Penulis juga ingin menyampaikan terima kasih bagi semua pihak yang telah membantu dalam penyelesaian makalah ini. Akhir kata penulis berharap agar makalah ini bermanfaat bagi semua pembaca.

Makassar, 24 Februari 2013

Penulis

BAB I PENDAHULUAN

A. LATAR BELAKANG Program komputer adalah suatu himpunan dari instruksi yang memberitahukan kepada Komputer apa yang harus dilakukan. untuk Instruksi

tersebut mungkin memberitahukan kepada komputer

menambah,

membandingkan, dan membuat keputusan berdasarkan hasilnya. Agar suatu komputer dapat mengenali instruksi yang anda berikan, instruksi tersebut perlu ditulis dalam bahasa yang dimengerti oleh komputer. Pada dasarnya orang mengolongkan Bahasa komputer menjadi dua golongan besar yaitu High-Level dan Low-Level. Bahasa pemrograman seperti BASIC, PASCAL, FORTRAN dan C, memungkinkan programmer untuk menulis program yang tidak begitu tergantung pada jenis komputer. Berdasarkan hal inilah bahasa-bahasa ini dapat dikategorikan sebagai high-level karena lebih dekat kepada manusia. Sebaliknya, bahasa assembly dikategorikan sebagai low-level karena mereka sangat dekat kepada hardware. Keuntungan utama dari bahwa high-level dibandingkan dengan low level adalah lebih mudah dibaca, ditulis, dan ditangani. Untuk membuat komputer melakukan sesuatu, anda perlu untuk menulis program komputer. Ketika komputer menjalankan program tersebut, ia akan melakukan setiap langkah secara mesin untuk mencapai tujuan akhir. Ketika anda memberitahu kepada komputer apa yang harus dilakukan, anda perlu memilih bagaimana hal tersebut dilakukan. Dari sinilah Algoritma Komputer muncul. Algoritma adalah teknik dasar untuk menyelesaikan suatu pekerjaan.

B. RUMUSAN MASALAH 1. Apakah definisi algoritma, program, dan bahasa pemrograman? 2. Bagaimana sejarah algoritma? 3. Bagaimana sifat-sifat algoritma? 4. Apakah kaitan antara algoritma dengan pemrograman? 5. Bagaimana mekanisme pelaksanaan algoritma oleh pemroses?

BAB II PEMBAHASAN

II.1 Definisi Algoritma, Program, dan Bahasa Pemrograman Terdapat beberapa definisi mengenai kata Algoritma : 1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi Munir :2002). 2. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI :1988). 3. Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988). 4. Serangkaian langkah yang dapat dihitung untuk mencapai hasil yang diinginkan ( Paul E. Black, ed., U.S. National Institute of Standards and Technology.)
5. Prosedur penyelesaian masalah langkah demi langkah, terutama yang mapan tidak dipungkiri, prosedur komputasi rekursif untuk menyelesaikan masalah dalam sejumlah langkah terbatas (Institute of Electrical and Electronics Engineers (IEEE)).

Program Program adalah formulasi sebuah algoritma dalam bentuk bahasa pemrograman, sehingga siap untuk dijalankan pada mesin komputer. Membuat program seperti memberitahukan apa yang harus dilakukan kepada orang lain. Sebagai contoh, pada saat kita memberitahukan algoritma membuat telur dadar kepada orang lain, kita sudah melakukan pemrograman. Pemrograman membuat telur dadar kepada orang lain akan lebih mudah karena orang tersebut sudah mengetahui apa itu telur dadar. Pada langkah yang ke-3 diminta untuk memecahkan telur, bagaimana cara orang tersebut memecahkan telur tentunya sudah diketahui dan kita tidak perlu menjelaskan terlalu detil. Lain halnya jika kita harus menyuruh komputer untuk melakukan apa yang kita inginkan. Komputer sebenarnya hanyalah sebuah mesin bodoh yang tidak memiliki emosi dan kemampuan bersosialisasi. Oleh karena itu, untuk membuatnya menjadi mudah, diperlukan penyusunan algoritma yang benar. Mendesain algoritma yang benar dan menterjemahkannya ke dalam bahasa pemrograman bukanlah hal yang mudah karena bahasa pemrograman memiliki tata penulisan sendiri. Bahasa Pemrograman Bahasa pemrograman adalah bahasa buatan yang digunakan untuk mengendalikan perilaku dari sebuah mesin, biasanya berupa mesin komputer, sehingga dapat digunakan untuk memberitahu computer tentang apa yang harus dilakukan. Struktur bahasa ini memiliki kemiripan dengan bahasa natural manusia, karena juga tersusun dari elemen-elemen dasar seperti: kata benda dan kata kerja serta mengikuti aturan untuk menyusunnya menjadi kalimat. Klasifikasi Menurut Generasi 1. First Generation Language (1GL) Bahasa pemrograman ini berupa kode-kode mesin yang hanya bisa dipahami oleh mikroprosesor. 2. Second Generation Language (2GL) Bahasa pada generasi ini adalah assembly language, dimana bahasa ini masih menggunakan kode-kode yang disebut dengan mnemonic. Bahasa assembly disebut sebagai generasi kedua karena bahasa ini bukan bahasa asli mikroprosesor, meskipun begitu programer tetap harus mengetahui keunikan dari masing-masing mikroprosesor (register dan jenis instruksi). 3. Generasi ketiga Bahasa pemrograman generasi ketiga sengaja didesain supaya mudah dipahami oleh manusia. Pada generasi ini mulai dikenalkan istilah variabel, tipe data, ekspresi aljabar dan sudah mendukung pemrograman terstruktur. Contoh bahasa: FORTRAN, COBOL, ALGOL, BASIC, C, C++, Pascal, Java.

4. Generasi keempat Pada generasi ini, bahasa pemrograman didesain untuk mengurangi effort dan mempercepat proses pembuatan program. Pada 3GL, pembuatan program membutuhkan waktu yang lama dan mudah sekali didapati error. Pada 4GL, telah menggunakan metodologi dimana sebuah perintah dapat menghasilkan beberapa instruksi 3GL yang kompleks dengan sedikit error. Contoh bahasa: a. Pemrograman umum : DataFlex, WinDev, PowerBuilder b. Basis data : SQL, Progress 4GL c. Manipulasi data, analisis dan pelaporan : ABAP, Matlab, PL/SQL. 5. Generasi kelima Bahasa pemrograman generasi kelima disebut sebagai constraintprogramming atau declarative-programming. Program tidak dituliskan dalam bentuk algoritma melainkan dituliskan batasan atau fakta dari sebuah lingkup masalah, sehingga program akan menghasilkan luaran dalam bentuk solusi. Bahasa pemrograman ini digunakan untuk membangun system kecerdasan buatan dan belum digunakan secara meluas di dunia industri. Contoh bahasa: Prolog, LISP, Mercury. Klasifikasi Menurut Tingkatan 1. Low-level programming language Tingkat bahasa pemrograman ini disebut rendah (low level) bukan karena posisinya berada di bawah, melainkan karena kurangnya abstraksi (penggambaran kode instruksi) antara bahasa natural dengan bahasa mesin. Oleh karena itu, bahasa di tingkat ini sering disebut sebagai bahasa mesin. Bahasa pemrograman yang masuk kategori ini adalah bahasa mesin itu sendiri (1GL) dan bahasa assembly (2GL). 2. High-level programming language (HLL) Bahasa pemrograman di tingkat ini memiliki abstraksi yang lebih banyak dan terdapat kemiripan dengan bahasa natural (bahasa Inggris), lebih mudah untuk digunakan dan mudah untuk dipindahkan antar platform. 3. Very high-level programming language (VHLL) Bahasa ini memiliki abstraksi yang lebih tinggi dibandingkan HLL, dan digunakan untuk menunjang produktifitas programmer profesional. Biasanya VHLL digunakan hanya untuk tujuan yang spesifik, misalnya untuk keperluan bisnis: mengolah data, membuat laporan, dsb. Paradigma Pemrograman Paradigma pemrograman merupakan sebuah cara pandang seorang programmer dalam menyelesaikan sebuah masalah dan

memformulasikannya kedalam sebuah bahasa pemrograman. Terdapat beberapa paradigma pemrograman, antara lain: Paradigma Imperatif Inti dari paradigma ini adalah menjalankan sebuah urutan perintah, jalankan satu perintah kemudian jalankan perintah yang selanjutnya. Sebuah program imperatif tersusun dari sekumpulan urutan perintah yang akan dijalankan oleh komputer. Pemrograman procedural merupakan salah satu contoh dari paradigma ini, dan seringkali dianggap sebagai sebuah sebuah paradigma yang sama. Ide dasarnya adalah dari model komputer Von Neumann. Eksekusi langkah-langkah komputasi diatur oleh sebuah struktur kontrol. Berdasarkan urutan-urutan atau sekuensial. Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan. Contoh bahasa pemrograman: Fortran, Algol, Pascal, Basic, C Paradigma Fungsional Pemrograman Fungsional adalah sebuah paradigma yang menjadikan fungsi matematika sebagai penentu dalam eksekusi komputasi. Fungsi tersebut merupakan dasar utama dari program yang akan dijalankan. Paradigma ini lebih banyak digunakan di kalangan akademis daripada produk komersial, terutama yang murni fungsional. Ide dasar dari matematika dan teori fungsi. Beberapa contoh bahasa fungsional adalah APL, Erlang, Haskell, Lisp, ML, Oz dan Scheme. Paradigma Logika Umumnya digunakan pada domain yang berhubungan dengan ekstraksi pengetahuan yang berbasis kepada fakta dan relasi. Dalam paradigm ini, logika digunakan secara murni untuk representasi bahasa deklaratif yang kebenarannya ditentukan oleh programmer, sedangkan pembukti teorema atau model pembangkit digunakan sebagai pemecah masalah. Berasal dari pembuktian otomatis didalam intelegensia buatan. Berdasar kepada aksioma, aturan dan query. Eksekusi program menjadi proses pencarian secara sistematik dalam sekumpulan fakta, dengan menggunakan sekumpulan aturan. Beberapa contoh bahasa pemrograman: ALF, Fril, Gdel, Mercury, Oz, Ciao, Visual Prolog, XSB, and Prolog Paradigma Berorientasi Obyek Pemrograman berorientasi obyek muncul untuk mengatasi masalah kompleksitas dari sebuah perangkat lunak sehingga kualitas dari perangkat lunak tersebut dapat dikelola dengan lebih mudah. Caranya adalah dengan memperkuat modularity dan reusability didalam perangkat lunak tersebut.

Pemrograman berorientasi obyek menggunakan obyek dan interaksi antar obyek dalam penyusunan sebuah perangkat lunak. Paradigma ini semakin banyak digunakan karena lebih mudah dalam menggambarkan kondisi yang ada pada dunia nyata. Ide dari interaksi antar obyek yang ada pada dunia nyata. Antar obyek saling berinteraksi dengan saling mengirimkan pesan (message). Terdapat beberapa karakteristik utama, yaitu: Abstraksi, Enkapsulasi, Pewarisan dan Polimorfisme.

II.2 Sejarah Algoritma Kata algoritma (algorithm) berasal dari nama matematikawan Persia pada abad 9 Abu Abdullah Muhammad bin Musa al-Khwarizmi. Kata aslinya algorism mengacu pada aturan dari melakukan aritmetika menggunakan bilangan Arab dan berkembang menjadi algoritma pada abad 18. Kata ini sekarang berevolusi untuk mencantumkan semua prosedur-prosedur khusus untuk memecahkan masalah atau mengerjakan tugas. Kasus pertama dari algoritma yang ditulis untuk komputer adalah catatan Ada Byron's notes pada analytical engine yang ditulis pada tahun 1842, yang mana diyakini banyak orang sebagai programmer pertama di dunia. Bagaimanapun, sejak Charles Babbage tidak pernah menyelesaikan analytical engine-nya, dan algoritma tersebut tidak pernah diimplementasi padanya.

II.3 Hubungan Algoritma dan Pemrograman Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa : Program = Algoritma + Bahasa (Struktur Data) Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya : Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Beberapa hal yang perlu diperhatikan dalam membuat algoritma : Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.

Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa

pemrograman secara umum. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.

II. 4. Sifat-Sifat Algoritma Menurut Donald E. Knuth, algoritma mempunyai lima ciri penring : 1. 2. 3. 4. 5. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Setiap langkah harus didefinisikan secara tepat dan tidak berarti dua. Algoritma memiliki nol atau lebih masukan (input). Algoritma mempunyai nol atau lebih keluaran (output). Algoritma harus sangkil (efektif) Beberapa persyaratan untuk menjadi algoritma yang baik adalah:

1. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar. 2. Pemrosesan yang efisien (low cost). Proses harus diselesaikan secepat mungkin dan jumlah kalkulasi yang sependek mungkin. 3. Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general. 4. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada. 5. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda. Sulit dimengertinya suatu program akan membuat sulit pengelolaan. 6. Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer. NOTASI PENULISAN Di bawah ini dikemukakan beberapa notasi yang digunakan dalam penulisan algoritma, antara lain : 1. Notasi yang dinyatakan dalam kalimat deskriptif Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas. Notasi ini cocok untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relatif sukar. Contoh : Algoritma Bilangan_Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi :

baca bilangan 1 baca bilangan 2 bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX baca bilangan 3

bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX. keluarkan sebagai output MAX

2. Notasi yang dinyatakan dengan pseudo code Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi. Keuntungan menggunakan notasi pseudo code adalah kemudahan mengkonversinya lebih tepat yang disebut mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudo code dengan notasi bahasa pemrograman. Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan Solusi Pseudo-code : 1. Masukkan bilangan pertama 2. Masukkan bilangan kedua 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5. 4. Tampilkan bilangan pertama 5. Tampilkan bilangan kedua Solusi Algoritma : 1. 2. 3. 4. 5. Masukkan bilangan pertama (a) Masukkan bilangan kedua (b) if a > b then kerjakan langkah 4 print a print b

Contoh Lain Algortima dan Pseudo-code :

3. Notasi yang dinyatakan dalam flow chart Sama halnya dengan notasi deskriptif, notasi ini cocok untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efektif. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relatif sukar. Contoh : Algoritma Bilangan_Maksimum dalam flow chart

II. 5 Mekanisme Pelaksanaan Algoritma oleh Pemroses Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :

Definisikan Masalah Buat Algoritma dan Struktur Cara Penyelesaian Menulis Program Mencari Kesalahan Uji dan Verifikasi Program Dokumentasi Program Pemeliharaan Program Algoritma baru efektif jika dijalankan oleh sebuah pemroses (processor). Pemroses itu bisa manusia, komputer, robot, mesin, dan sebagainya. Pemroses membaca setiap instruksi di dalam algoritma lalu mengerjakannya. Menurut Goldschlager, suatu pemroses harus: 1. Mengerti setiap langkah dalam algoritma 2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut Kita memfokuskan pemroses algoritma adalah komputer. Komputer adalah alat bantu untuk menjalankan perintah-perintah di dalam algoritma yang telah dimasukkan ke dalamnya. Agar komputer mengerti perintah yang dimaksudkan, maka perintah tersebut harus ditulis dalam bahasa yang dipahami olehnya. Oleh karena itu, algoritma harus ditulis dalam bahasa khusus, yaitu bahasa komputer. komputer dinamakan program. Algoritma yang ditulis dalam bahasa Bahasa yang digunakan dalam menulis

program dinamakan bahasa pemrograman. Orang yang membuat program computer disebut pemrogram, dan kegiatan merancang dan menulis program disebut pemrograman. Di dalam pemrograman ada aktifitas menulis kode program, kegiatan ini dinamakan coding. Salah satu dari sekian banyak bahasa pemrograman adalah bahasa Pascal.

Secara garis besar, computer tersusun atas empat komponen utama, yaitu piranti masukan, piranti keluaran, unit pemroses utama, dan memori. Mekanisme kerja keempat komponen tersebut, yaitu mula-mula program dimasukkan ke dalam memori computer. Ketika program dieksekusi, setiap perintah di dalam program yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasi-operasi yang bersesuaian dengan perintah tersebut. Bila suatu perintah di dalam program meminta data masukan, maka data dibaca dari piranti masukan, lalu dikirim ke CPU untuk operasi yang memerlukannya. Bila program menghasilkan keluaran, maka keluaran tersebut ditulis ke piranti keluaran.

BAB III PENUTUP

III.1 Kesimpulan Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Algoritma baru efektif jika dijalankan oleh sebuah pemroses (processor). Pemroses itu bisa manusia, komputer, robot, mesin, dan sebagainya

Anda mungkin juga menyukai