Konsep Dasar Algoritma

27
1. PENDAHULUAN A. Deskripsi Singkat Dalam matematika dan ilmu komputer, algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis. Dalam materi ini akan dibahas tentang defenisi algoritma dan bagaimana menyusun sebuah algoritma. Dalam materi ini juga akan dibahas bagaimana menuliskan algoritma baik dalam instruksi biasa, pseudocode, ataupun dengan menggunakan gambar (flowchart). B. Manfaat Perkuliahan Algoritma merupakan dasar dari pemrograman komputer. Dengan memahami algoritma akan membantu kita menyusun instruksi-intruksi yang dibutuhkan dalam mebuat suatu program. Seorang yang tidak mempunyai kemampuan algoritma yang baik tidak akan mampu membuat suatu program.

description

Pertemuan 1

Transcript of Konsep Dasar Algoritma

1. PENDAHULUANA. Deskripsi SingkatDalam matematika dan ilmu komputer, algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis. Dalam materi ini akan dibahas tentang defenisi algoritma dan bagaimana menyusun sebuah algoritma. Dalam materi ini juga akan dibahas bagaimana menuliskan algoritma baik dalam instruksi biasa, pseudocode, ataupun dengan menggunakan gambar (flowchart).B. Manfaat PerkuliahanAlgoritma merupakan dasar dari pemrograman komputer. Dengan memahami algoritma akan membantu kita menyusun instruksi-intruksi yang dibutuhkan dalam mebuat suatu program. Seorang yang tidak mempunyai kemampuan algoritma yang baik tidak akan mampu membuat suatu program.C. Tujuan Instruksional KhususTujuan Instruksional Khusus dari materi ini adalah agar mahasiswa akan dapat menuliskan algoritma pemrograman.

2. PENYAJIANA. Definisi AlgoritmaSejarah kata Algoritma berasal dari nama seorang ahli matematika bangsa Arab yaitu Abu Ja'far Muhammad ibnu Musa al-Khuwarizmi. Al-Khuwarizmi dibaca oleh orang Barat menjadi Algorism. Perubahan kata algorism menjadi algorithm karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran sm berubah menjadi thm. Lambat laun kata algorithm dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia kata algorithm diserap menjadi algoritma.Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik. Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.Mekanisme Pelaksanaan AlgoritmaAgar algoritma dapat dilaksanakan dalam komputer maka algoritma harus di ubah ke notasi bahasa pemrograman sehingga disebut program. Jadi program adalah merupakan perwujudan atau implementasi dari algoritma. Program ditulis dalam salah satu bahasa pemrograman. Kegiatan menulis program disebut pemrograman(programming). Orang yang menulis program disebut pemrogram (programmer). Tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi program adalah : "Sederetan instruksi yang sistematis dan logis yang menggunakan sintaks tertentu untuk menyelesaikan permasalahan".Secara garis besar komputer tersusun atas 4 komponen utama yaitu :1. Input device (piranti masukan)2. Output device (piranti keluaran)3. Unit pemroses utama (Central Processing Unit )4. Memory (piranti penyimpan sementara)Mekanisme kerja ke-empat komponen tersebut dapat dijelaskan sbb : Program dimasukan kedalam memori komputer. Setiap instruksi yang ada di memori di dikirim ke CPU untuk dieksekusi. CPU mengerjakan operasi-operasi yang bersesuain dengan instruksi tsb. Bila operasi memerlukan data maka data dibaca dari piranti masukan. Data yang dimasukan disimpan dimemori lalu dikirim ke CPU untuk operasi yang memerlukan operasi tadi. Bila proses menghasilkan keluaran atau informasi, maka keluaran disimpan ke memori, lalu memori menuliskan keluaran ke piranti keluaran (mis : screen atau printer)Perbedaan belajar Memprogram dengan Belajar Bahasa Pemrograman Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya kedalam suatu notasi yang mudah dipahami. Belajar algoritma sama dengan belajar memprogram. Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan dan tata bahasanya, instruksi-instruksinya, cara pengoperasian compiler-nya. Belajar bahasa program contohnya adalah belajar Turbo- Pascal, Bahasa C, Java, dll.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. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :a. Pendeklarasian variabelUntuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.b. Pemilihan tipe dataApabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.c. Pemakaian instruksi-instruksiBeberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.d. Aturan sintaksisPada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.e. Tampilan hasilPada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.f. Cara pengoperasian compiler atau interpreter.Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.B. Penulisan Algoritma1. Struktur Dasar AlgoritmaAlgoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:1. Struktur Runtunan2. Digunakan untuk program yang pernyataannya sequential atau urutan.3. Struktur Pemilihan4. Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.5. Struktur Perulangan6. Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.Proses pelaksanaan instruksi dikerjakan beruntun dari urutan istruksi pertama, instruksi kedua, instruksi ketiga dan seterusnya hingga berakhir atau berhenti karna ada kesalahan isntruksi. Urutan instruksi menentukan keadaan akhir dari algoritma. Bila urutannya diubah maka kemungkinan hasil akhir juga berubah.Perhatikan ilustrasi berikut. Misalkan runtunan instruksi yang dilambangkan dengan A1, A2, A3, A4 dan A5 yang disusun sbb :A1A2A3A4A5

Mula-mula pemroses malaksanakan istruksi A1. Selesai instruksi A1 dilanjutkan pelaksanaan instruksi A2. Intrsuksi A3 akan dilaksanakan jika instruksi A2 selesai dikerjakan dan seterusnya hingga A5. Pelaksanaan instruksi akan berurut kecuali jika ada perintah percabangan.Pengaruh urutan instruksi terhadap hasil adalah apabila urutan diubah maka hasil akhir kemungkinan juga berubah. Contoh : Ada persoalan sebagai berikut : Dua buah gelas misalkan gelas A berisi air warna merah dan gelas B berisi air warna biru. Permasalahannya adalah bagaimana mempertukarkan isi kedua gelas A dan B sehingga gelas A berisi air warna biru dan gelas B berisi air warna merah. Buatlah algoritmanya.Jawab :

Jika urutan diubahLangkah-langkahnya sbb:Sediakan satu gelas kosong misalkan CTuangkan isi gelas A ke gelas CTuangkan isi gelas B ke gelas ATuangkan isi gelas C ke gelas BSelesaiHasil akhir adalah gelas A berisi larutan biru dan gelas B berisi larutan merah. Keadaan hasil akhir ini adalah jawaban yang sesuai dengan keinginan algoritma.Langkah-langkahnya sbb:Sediakan satu gelas kosong misalkan CTuangkan isi gelas B ke gelas ATuangkan isi gelas A ke gelas CTuangkan isi gelas C ke gelas BSelesaiHasil akhir adalah gelas A kosong dan gelas B berisi larutan campuran merah dan biru. Keadaan hasil akhir ini adalah jawaban yang tidak sesuai dengan keinginan algoritma.

2. 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 bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart . Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.C. PseudocodePseudocode merupakan suatu bahasa programmer terhadap permasalahan yang akan diselesaikan tanpa memikirkan tatabahasa (sintax) dari bahasa programmer tertentu.Kegunaan pseudocode adalah sebagai berikut : Menjembatani antara bahasa programmer dengan bahasa computer. Menggambarkan logika urutan program tanpa memperhatikan bagaimana bahasa pemrogramannya.Dalam pseudocode terdapat tiga bentuk dasar, yaitu :1. Urutan penamaanUrutan adalah suatu koleksi dari berbagai instruksi statemen masukan dan keluaran.Secara eksplisit masukan dan keluaran dalam pseudocode sebagai berikut :Read data from sourcedanwrite data to destination

2. Struktur seleksiStruktur seleksi merupakan dasar logika control alir keputusan. Artinya bahwa blok statemen dilaksanakan jika kondisi bernilai Boolean true. Seleksi bentuk If Bentuk umum penulisan pseudocode untuk struktur seleksi If atau control alir keputusan sebagai berikut:If Then perform block_1Else perform block_2EndifArtinya bahwa blok seleksi dimulai dari bagian If dan diakhiri dengan Endif Seleksi bentuk CASEBentuk umum pseudocode struktur seleksi CASE adalah sebagai beikut:Selected_variabelCASE(value_1) block_1CASE(value_2) block_2::DEFAULT CASE block_nEndselect

3. Strukrur IterasiSruktur iterasi merupakan dasar logika kntril alir perulangan. Artinya bahwa blok statemen dilaksanakan berulang-ulang sampai suatu keadaan akhir terpenuhi. Iterasi bentuk DO WHILE Bentuk umum pseudocode iterasi DO WHILE adalah sebagai berikut:While do perform blockEndwhile Iterasi bentuk DOBentuk umum pseudocode iterasi DO adalah sebagai berikut:Do index = initial to limit perform blockEnddo Iterasi FORBentuk umum pseudocode iterasi FOR adalah sebagai berikut:For index = initial to limit perform blockEndfor

D. Flowchart Flowchart adalah suatu teknik untuk menulis algoritma menggunakan simbol chart (gambar) dan garis panah. Simbol chart mewakili fungsi langkah pengerjaan, sedangkan simbol garis panah mewakili alir pengerjaan simbol chart. Simbol-simbol flowchart dibedakan menjadi 2 bagian, yakni pertama, simbol untuk program (Structured program flowchart ) dan yang kedua, simbol untuk sistem (Structured system flowchart ).1. Structured program flowchart Bagan alir program (program flowchart ) adalah suatu bagan yang menggambarkan alur logika dari data yang dikerjakan. Pengerjaannya diawali dari mulai dan diakhiri dengan selesai. Kegunaan bagan alir program ini adalah untuk menangani masalah yang rumit, Beberapa simbol program flowchart yang sering digunakan seperti pada tabel dibawah ini.NoLambangKeterangan

1

Terminal (Start atau Finish) : Sebagai lambang untuk mengawali flowchart dan mengakhiri flowchart .

2

Input atau Output : Sebagai lambang untuk memasukkan data atau mengeluarkan data atau hasil proses data

3

Proses : Sebagai lambang proses terhadap data maupun formulasi matematis lainnya.

4

Predefined proses : Merupakan suatu Prosedur atau Rutin atau Sub Program baik yang terpisah dari program utama maupaun yang terpadu dalam satu program.

5

Preparasi : Pemberian harga awal terhadap suatu pengenal ( indentifier) yang akan digunakan

6

Decision ( Pengambilan keputusan berdasarkan hasil pengujian ekspresi logis apakah hasilnya True atau False )

7

Connector dalam satu halaman

8

Connector ke halaman lain

9

Line : Sebagai lambang arah / arus dari aliran program

Berikut ini adalah contoh yang menggambarkan penulisan algoritma untuk membandingkan suatu bilangan yang lebih besar diantara dua buah bilangan yang dimasukkan oleh pengguna menggunakan teknik program flowchart .

2. Structured System Flowchart Bagan alir system (system flowchart ) adalah suatu bagan yang menggambarkan arus logika dari suatu masalah yang akan dikerjakan. Pengerjaannya diwaali dari mulai dan diakhiri dengan selesai. Kegunaan bagan alir system ini adalah untuk menjelaskan logika suatu masalah serta menjelaskan komponen komponen fisik dari suatu sistemBeberapa simbol sistem flowchart yang sering digunakan seperti di bawah ini

3. Jenis jenis Flowchart Ada beberapa jenis flowchart diantaranya:1. Bagan alir sistem (systems flowchart ).2. Bagan alir dokumen (document flowchart ).3. Bagan alir skematik (schematic flowchart ).4. Bagan alir program (program flowchart ).5. Bagan alir proses (process flowchart ).

4. Pedoman Membuat Flowchart Bila seorang analis dan programmer akan membuat flowchart , ada beberapa petunjuk yang harus diperhatikan, seperti:1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri kekanan.2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.7. Gunakan simbol-simbol flowchart yang standar.

DAFTAR PUSTAKA