Anda di halaman 1dari 22

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.

com)

2012

DASAR-DASAR ALGORITMA

3.1. Pendahuluan
Banyak cabang dari ilmu komputer yang mengacu pada terminologi algoritma, misalnya algoritma routing (pesan di dalam jaringan komputer), algoritma brensenham untuk menggambar garis lurus (bidang grafika komputer), algoritma modelview untuk modeling animasi, itulah contoh berbagai jenis algoritma. Marilah kita tinjau terlebih dahulu asal-usul dari kata algoritma, menurut beberapa sumber, asal kata algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya Buku pemugaran dan pengurangan (The Book of Restoration and Reduction ). Dari judul buku itu kita juga memperoleh akar kata Aljabar (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran sm berubah menjadi thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma. Sehingga algoritma dikatakan langkah-langkah logis untuk penyelesaian suatu masalah yang disusun secara sistematis dan logis. Perhatikan contoh penyelesaian untuk suatu masalah gaya benda ( F ), yaitu: 1. Diketahui terlebih dahulu dari percepatan dengan cara mengukur percepatan suatu benda tertentu (dalam meter/sekon kuadrat), misalnya 100 m/s2 2. Kemudian timbanglah benda tersebut, sehingga menghasilkan suatu nilai massa (dalam kg), misalnya 2 kg 3. Setelah itu buat proses perhitungan gaya sebagai berikut: F = a .m

Algortma Dasar

Page 1

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

a = perecpatan(m/s2) m = massa benda (kg) F = gaya (N) 4. Masukan nilai a dan nilai m, misalnya a =100 m/s2 dan m =2 kg seperti berikut: F=a.m menjadi F = 100 m/s2 . 2 kg F = 200 N Dimana: 5. Selesai

Keterangan: Cobalah perhatikan langkah-langkah di atas, merupakan sebuah analisis dari suatu permasalahan, untuk menghitung suatu gaya. Analisis perhitungan gaya ( F ) di atas kita akan buat algoritma sederhana, maka menjadi sebegai berikut: Mulai / Start Memberikan judul algoritma dan mendefinisikan setiap variabel yang akan terlibat. Variabel a untuk percepatan dan variabel m untuk massa, sedangkan F untuk gaya benda. Inputan / Masukan Menginputkan nilai a (percepatan) dan m (massa), misalnya untuk a = 100 dan m = 2 Proses Dengan cara mengkalikan antara percepatan benda dan massa benda untuk menghasilkan nilai gaya F, seperti proses perhitungan berikut:

F=a.m
Sehingga F = 100 . 2, maka nilai F = 200 Proses ini berguna untuk menghitung rumus tertentu, pada kasus buku ini yaitu menghitung gaya F. Outputan / keluaran Menampilkan nilai dari suatu proses tertentu ke layar monitor/print, dalam kasus ini yaitu untuk menampilkan nilai F (gaya) = 200 Berhenti/Stop Diakhiri dengan stop untuk berhenti dari proses perhitungan gaya, karena suatu algoritma harus berhenti pada kondisi tertentu.

Contoh di atas merupakan langkah-langkah dari algoritma dalam menyelesaikan suatu permasalahan perhitungan gaya (F)benda. Meskipun kita tidak dapat menyebutkan langkah-langkah pekerjaan di atas secara detail, tetapi dalam konteks ini, semua pernyataan di atas adalah suatu algoritma karena prosesnya dikerjakan secara sistematis dan logis. Sekarang kita mengerti bahwa sebuah algoritma harus mengerjakan suatu proses dan berhenti pada kondisi tertentu. Secara umum, sesuatu yang mengerjakan proses disebut pemroses (processor). Pemrosesan tersebut dapat berupa manusia, komputer, robot, atau alat-alat mekanik lainnya. Pemrosesan dilakukan pada suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan pemrosesan tersebut.

Algortma Dasar

Page 2

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Pada dasarnya, sebuah algoritma merupakan deskripsi dari pelaksanaan suatu proses. Bahwa algoritma disususn oleh langkah-langkah instruksi yang logis dan sistematis. Setiap langkah instruksi tersebut mengerjakan suatu tindakan (aksi/statement). Bila suatu statement dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi/statement itu akan dikerjakan oleh pemrosesan. Efek dari pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi sebelum dimulai disebut t0 dan keadaan pada saat aksi selesai di kerjakan disebut t1. contoh : t0 : keadaan sebelum aksi dikerjakaan Aksi/Statement t1 : keadaan setelah aksi dikerjakaan

Sebagai contoh berfikir secara logika dalam algoritma yaitu: kita akan membahas tentang algoritma pertukaran isi bejana. Diketahui dua buah bejana, yaitu bejana A berisi berwarna merah, bejana B berisi berwarna biru, seperti gambar berikut:

Merah Bejana A

Biru Bejana B

Maka untuk menyelesaikan pertukaraan isi bejana di atas memerlukan suatu bejana kosong untuk melakukan pertukaran isi bejana di atas. Sehingga kita tambahkan suatu Bejana Kosong atau kita sebut dengan Bejana Temp:

Merah Bejana A

Biru Bejana B Bejana Temp

Setelah Bejana Temp sudah ada, maka proses berikutnya menukarkan isi bejana dengan langkah-langkah sebagai berikut: Langkah 1 : Pindahkan isi Bejana A ke Bejana Temp. (Temp A) Temp

Biru Bejana A Bejana B

Merah Bejana Temp

Kita lihat langkah 1, sehingga isi Bejana A akan dituangkan atau dipindahkan ke Bejana Temp. Artinya Bejana A tidak berisi warna merah lagi karena isinya sudah dipindahkan ke Bejana Temp, sehingga warna merah pindah ke Bejana Temp.

Algortma Dasar

Page 3

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Langkah 2 : Pindahkan isi bejana B ke bejana A. ( A B )

Biru Bejana A Bejana B

Merah Bejana Temp

Kemudian isi dari Bejana B dituangkan Ke Bejana A, sehingga Bejana B kosong dan Bejana A berisi warna biru. Langkah 3 : Pindahkan isi bejana Temp ke bejana B. (B Temp)

Biru Bejana A

Merah Bejana B

Bejana Temp

Setelah itu pindahkan Bejana Temp Ke Bejana B, sehingga Bejana Temp tidak berisi cairan lagi dan Bejana B berisi warna merah, dengan demikian isi Bejana sudah tertukar antara Bejana A dan Bejana B. Langkah 4 : Selesai.

Algoritma di atas merupakan permasalahan atau kasus dalam bentuk pertukaran isi dua bejana, tetapi dalam pertukaran isi tabung tersebut membutuhkan sebuah bejana kosong untuk menampung data yang bersifat sementara selama proses pertukaran berlangsung yang disebut Bejana Temp/Kosong. Bejana Temp ini nantinya akan kembali kosong ketika proses pertukaran isi bejana selesai dilaksanakan. Pada kasus pertukaran isi bejana ini bisa diterapkan dalam berbagai kasus lain seperti menentukan nilai ratarata, penjumlahan sejumah data, melakukan pencarian, pengurutan data dan lain-lain. Jadi Anda jangan terpaku atau terjebak dalam algoritma pertukaran isi bejana saja, tetapi algoritma pertukaran isi bejana merupakan bentuk dasar logika sederhana atau satu kasus dari seribu kasus. Pada kasus pertukaran isi bejana di atas kita rubah dalam bentuk media lain yaitu sebuah variabel A untuk menggantikan Bejana A, variabel B untuk menggantikan Bejana B, sedangkan variabel C untuk menggantikan Bejana Temp, untuk lebih mudahnya sebagai berikut: A = Bejana A B = Bejana B C = Temp/Bejana kosong Marilah kita analisis pertukaran dalam bentuk variabel ini, yaitu: Pertukaran isi bejana dalam bentuk variabel A, B dan C yang memiliki tipe data String atau berupa kumpulan karakter atau gabungan beberapa kata-kata, kemudian kita isi variabel A dengan kata merah dan untuk variabel B kita isi dengan kata biru, seperti berikut: A = merah B = biru

Algortma Dasar

Page 4

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Catatan: ingat C merupakan variabel kosong atau tempat penyimpanan data sementara selama proses berlangsung, jadi variabel C dalam inputan awal dan hasil akhir tidak usah dituliskan kecuali dalam proses saja. Kita tidak bisa melakukan pertukaran isi variabel A dan B kecuali dengan bantuan variabel C yang merupakan tempat penampungan data sementara. Berikut dalam bentuk algoritma untuk pertukaran isi variabel A dan B, yaitu: Data awal sebelum pertukaran A = merah B = biru Data ditambahkan dengan variabel C A = merah B = biru C= { kosong } Langkah 1 : dengan printah (C =A ) maka akan menghasilkan A= { kosong } B = biru C = merah Maka isi dari A akan berpindah ke variabel C, setelah itu variabel A akan kosong, seperti pernyataan di atas. Langkah 2 : dengan printah (A = B) maka akan menghasilkan A = biru B= { kosong } C = merah Maka isi dari B akan pindah ke variabel A, dan isi dari variabel B akan kosong, seperti peryataan di atas. Langkah 3 : dengan printah (B = C) maka akan menghasilkan A = biru B = merah C= { kosong } Maka isi dari C akan pindah ke variabel C, dan isi dari variabel C akan kosong kembali, seperti masalah di atas. Langkah 3 : Proses selesai. Hasil dari pertukaran isi variabel A dan B di atas, yaitu: A = biru B = merah Di atas merupakan sedikit contoh logika sederhana, untuk menukarkan isi bejana diantara dua Bejana, dengan isi berbeda dan perpindahan dari isi dengan variabel A dan variabel B. Kalau kita perhatikan proses di atas terjadi secara sistematis dan logis, yang merupakan bagian dari definisi algoritma.

Algortma Dasar

Page 5

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Penulisan algoritma di atas dapat diringkas dalam teknik penulisaan prosesnya, sebagai berikut: //input A merah B biru //proses CA AB BC //output A biru B merah //selesai Akhir algoritma

Dengan perkembangan bahasa pemrograman yang sangat pesat setiap saat dan masalah yang dihadapi perusahaan dengan permasalahan yang lebih kompleks dan rumit saat ini, maka dalam setiap pembuatan program memerlukan pengetahuan yang lebih, seperti salah satunya mengikuti perkebangan algoritma dan teknik pemecahkan algoritma untuk permasalahan-permasalahan yang dihadapi oleh manusia. Istilah program komputer adalah rangkaian kata perintah yang telah dimengerti oleh komputer untuk dikerjakannya. Kata-kata perintah tersebut membentuk suatu bahasa yang disebut dengan bahasa pemrograman. Sebagai mana bahasa pada manusia yang memiliki beragam bahasa, bahasa pemrograman juga terdiri atas banyak bahasa yang berbeda tergantung bahasa pemrogramannya yang memiliki aturan masing-masing jadi Anda jangan bingung dengan bahasa pemrograman. Perkembangan komputer saat ini belum diberi hak inisiatif, sehingga jika ada sedikit saja kesalahan penulisan perintah oleh pemrogram, ia tidak mau memakluminya atau berusaha memperbaiki sendiri karena kesalahan tersebut, serta-merta ia ngambek dan tidak mau mengerjakan perintah-perintah lainnya.

3.2.

Implementasi Algoritma Ke Bahasa Pemrograman

Dalam pembuatan algoritma dibutuhkan suatu implementasikan ke dalam suatu bahasa pemrograman agar menjadi suatu program yang mempunyai kehandalan, berkualitas dan juga sekaligus untuk menguji apakah algoritma yang kita buat tersebut berhasil atau tidak. Apakah algoritma yang sudah kita implementasikan ke dalam bahasa pemrograman tersebut mempunyai logika keluaran yang kita harapkan. Jadi algoritma dan pemrograman sangat erat hubungannya, ingat jangan salah kaprah dalam pembuatan program, saya melihat banyak siswa, mahasiswa dan para pembuat program komputer masih banyak mengabaikan dalam pembuatan algoritma, sehingga mengakibatkan banyak kesalahan yang tidak kita harapkan dan melakukan perombakan coding yang berlebihan, bahkan menjadi pusing sendiri dalam pembuatan programnya, ujung-ujungnya membuat program dimulai dari awal lagi, hal ini dikarenakan pembuatan program tersebut dimulai dari membuat program tanpa melakukan analisis dan pembuatan algoritma terlebih dahulu. Ya, jadilah programan yang kita buat hanya sekali pakai saja dan program tersebut tidak tahan lama alias menjadi sampah.

Algortma Dasar

Page 6

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Dengan kasus di atas tersebut mulai sekarang marilah kita belajar algoritma dengan lebih baik dan benar. Pada dasarnya bahasa pemrograman dibedakan menjadi: Bahasa tingkat rendah (low level language): bahasa yang berorientasi ke mesin. Bahasa ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke bahasa mesin dan sulit dipahami oleh manusia. Sedangkan bahasa rakitan dimasukan ke dalam kelompok ini, karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih diperlukan penerjemah ke dalam bahasa mesin. Contohnya adalah bahasa Pemrograman Assembly. Bahasa tingkat menengah (middle level language) adalah bahasa pemrograman yang menggunakan aturan-aturan gramatikal dalam penulisan pernyataan, mudah dipahami dan memiliki instruksiinstruksi tertentu yang dapat diakses oleh komputer. Contohnya adalah bahasa C dll Bahasa tingkat tinggi (high level language): bahasa yang berorientasi ke manusia (seperti bahasa inggris). Hanya saja bahasa tingkat tinggi, tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa, ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa Pascal, visual basic 6, delphi dll. Berikut gambaran pengoperasian bahasa tingkat tinggi, yaitu:

Algoritma
Implementasi (terjemah algo ke pemrograman)

Program bahasa tingkat tinggi


Kompilasi

Program bahasa mesin

Interpretasi oleh CPU

Operasi perhitungan Gambar 3.1 Proses implementasi bahasa tingkat tinggi Object Oriented Language (bahasa berorientasi objek): yaitu bahasa yang berorientasi pada objek, bahasa pemrograman yang populer saat ini. Seperti Visual Basic.net, Visual Foxpro, Delphi, Visual C++, Java,C##, Pyton dll. Sifat dasar dari sebuah algoritma, yaitu: 1. Algoritma harus berhenti after a finite number of steps artinya sebuah algoritma harus berhenti pada angka tertentu dan dalam kondisi tertentu. 2. Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan ( ambiguous).

Algortma Dasar

Page 7

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

3. Sebuah algoritma minimal memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan. 4. Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input. 5. Setiap algoritma diharapkan miliki sifat efektif, atau setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.

Contoh-1: Algoritma untuk menghitung nilai rata-rata dari jumlah data. Sebelum melakukan perhitungan rata-rata, sebaiknya data sudah dimasukan atau tersimpan dalam memori atau perhitungan secara langsung. Langkah 1, definisikan variabel n untuk menampung nilai banyaknya jumlah data, jml untuk menampung penjumlahan rata-rata, dataN untuk mengisi nilai satu persatu, sedangkan variabel rata_rata untuk menampung hasil dari perhitungan rata-rata. Langkah 2, masukan nilai dataN dan jml yang akan dirata-ratakan, seperti berikut: Pendefinisikan awal untuk dataN=23 dan jml = 0, Tabel 3.1 Menghitung rata-rata n 1 2 3 4 dataN 23 40 20 10 jml = jml + dataN 23 63 83 93

Langkah 3, melakukan perhitungan Rumus untuk rata-rata: rata_rata = jml / n Kita sudah diketahui bahwa nilai akhir dari n adalah 4 dan jml adalah 93, sehingga nilai rata_rata = 93 / 4, maka menghasilkan nilai rata_rata = 23.25. Langkah 4, menampilkan nilai rata_rata ke alat keluaran seperti monitor, yaitu rata_rata = 23.25 Langkah 5, berhenti dari algoritma. Penulisan algoritma rata-rata secara lengkap, yaitu ALGORITMA Nilai_Rata_Rata { untuk menghitung nilai rata-rata dari sejumlah data tertentu } DEKLARASI n, dataN, jml, i integer; rata_rata float DESKRIPSI readln(n 4) for (i=0; i<=n; i++) do

// mendeklarasikan semua variabel

// input banyaknya data n = 4 // inputan dengan pengulangan i

Algortma Dasar

Page 8

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

readln(dataN) jml = jml + dataN end_for rata_rata = jml / n println(rata_rata) End_algo Hasil outputnya: 23.25

// inputan dataN yang akan proses (23,40,20,10) // melakukan penjumlahan 23+40+20+10 // akhir dari pengulangan for // nilai rata-rata // menampilkan nilau rata-rata

Contoh-2 Untuk menentukan bilangan ganjil, yaitu kita analisis terlebih dahulu untuk bagaimana menampilkan bilangan ganjil, yaitu: 1. Jika suatu nilai dibagi dua menghasilkan sisa bagi atau desimal maka bilangan tersebut termasuk bilangan ganjil, dan akan ditampilkan pada layar. Contoh 3/2 = 1,5 //menghasilkan sisa bagi atau desimal yaitu 5. 2. Jika suatu nilai dibagi dua, menghasilkan sisa bagi nol maka ia bukan termasuk bilangan ganjil, dan nilai tersebut tidak dapat ditampilkan dalam layar atau monitor. Contoh 4/2 = 2 //tidak menghasilkan sisa bagi. 3. Jika pada kondisi angka tertentu maka perulangan, berhenti. Catatan : mod adalah sisa bagi. misakanl: 1 / 2 = 0.5, maka sisa baginya memiliki satu digit yaitu .5. Kita tuliskan permasalahan bilangan ganjil, dalam notasi algoritma secara lengkap untuk menampilkan bilangan ganjil, yaitu: ALGORITMA Bilangan_Ganjil { menampilkan bilangan ganjil, dengan rumus i mod 2 = 1 dengan i adalah bil bulat jika manghasilkan sisa bagi maka ditampilkan } DEKLARASI i integer; DESKRIPSI for (i=0; i<=4; i++) do if ( i mod 2 = 1 ) then println(Bil Ganjil , i) end_if end_for End_Algo Untuk lebih jelasnya, kita lihat tabel untuk menampilkan bilangan ganjil, sebagai berikut: Misal: i = data masukan, dengan nilai=4 Tabel 3.2. Menampilkan bilangan Ganjil

// inputan dengan pengulangan i // kondisi bilangan ganjil // menampilkan data i ganjil

Algortma Dasar

Page 9

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

I 0 1 2 3 4

kondisi ( i mod 2 = 1 ) 0 mod 2, hasil sisa bagi 0 1 mod 2, hasil sisa bagi 1 2 mod 2, hasil sisa bagi 0 3 mod 2, hasil sisa bagi 1 4 mod 2, hasil sisa bagi 0

Bil Ganjil Bukan Ya Bukan Ya Bukan

Maka hasil akhir dari proses di atas, akan menampilkan sejumlah bilangan ganjil dalam monitor atau alat keluaran, yaitu: 1 3 Karena 1 dan 3, yang memenuhi syarat kondisi bilangan ganjil (i mod 2 = 1) tersebut. Algoritma Bilngan Ganjil di atas, kita implementasikan ke dalam bahasa Java, yaitu: public class Bilangan_Ganjil{ public static void main(String[] args) { int i; for (i=1; i<8; i++) { if (i % 2 ==1) { // % adalah tanda modulus System.out.println(Bil Ganjil: + i ); // menampilkan bil ganjil } } } } Hasil output Bil Ganjil: 1 Bil Ganjil: 3 Bil Ganjil: 5 Bil Ganjil: 7 Process completed. Untuk mempelajari coding di atas, kita sabar dulu ya Kita akan membahasnya nanti pada bab -bab berikutnya, kita hanya memberikan contoh bahwa suatu algoritma bisa diimplementasikan ke dalam pemrograman Java. Contoh algoritma di atas, merupakan langkah awal sebelum dibuat ke dalam pemrograman, Ada yang mengatakan bahwa algoritma, merupakan jantung dari ilmu komputer atau informatika, hal ini mungkin dikarena sangat pentingnya peranan dari algoritma. Pemrogram tanpa menggunakan algoritma diibaratkan sebagai nasi tanpa lauk-pauk, jelas gak enak, segitunyaha Banyak cabang ilmu komputer yang mengacu pada terminologi algoritma tersebut. Namun, jangan beranggapan bahwa algoritma selalu identik dengan ilmu komputer saja.

Algortma Dasar

Page 10

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma, seperti merakit komputer, merakit mobil dan cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma, membuat roti. Pada setiap resep makanan selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan, maka itu bukan disebut algoritma. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Dalam mengerjakan suatu proses yang sesuai dengan algoritma yang diberikan kepadanya, seorang juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Jadi karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi sesuatu pemroses harus memenuhi beberapa hal berikut ini: 1. Menentukan judul permasalahan 2. Mengerti setiap langkah yang dilakukan (algoritma) 3. Variabel sudah terdefinisi dan terisi nilai 4. Mengerjakan operasi, bersesuaian dengan langkah-langkah yang ditentukan 5. Berhenti pada kondisi pengulangan tertentu

3.3.

Mekanisme Pelaksanan Algoritma Oleh Pemroses

Komputer hanyalah salah satu pemroses, agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer. Secara garis besar komputer tersusun atas empat komponen utama: Piranti masukan Piranti keluaran Unit pemrosesan utama dan Dan memori. Unit pemrosesan utama (central processing unit CPU) adalah otak komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca, analisi dan operasi menulis. Memori adalah komponen program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang dioperasi oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya.

Contoh keyboard, scanner, mouse, joystick, disk dll, contoh alat keluaran adalah monitor, printer dan plotter dll. Berikut dasar proses aliran data, yaitu:

Piranti masukan

Unit Pemroses (CPU)

Piranti keluaran

Memori

Algortma Dasar

Page 11

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Gambar 3.2 Komponen-komponen utama komputer Mekanisme kerja keempat komponen di atas sangat jelas sekali, dimulai dari piranti masukan kemudian ke CPU dan kemudian ke memori untuk menyimpan data sementara dan dikembalikan lagi ke CPU dan setelah itu dikirim ke piranti keluaran.

3.4.

Memprogram dan Bahasa Pemrograman

Belajar memprogram sangatlah mudah, yang penting kita ada niat dan bersabar. Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangakan belajar bahasa pemrograman berarti belajar memakai suatu bahasa, aturan-aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja, contohnya belajar pemrograman Java maka kita akan belajar bagaimana menggunakan Java, memahami bahasa Java, compiler apa saja yang bisa digunakan dan lain-lain. Ada bebrapa hal yang harus diperhatikan dalam belajar memprogram yaitu: Belajar memahami bahasa pemrograman Belajar tentang strategi bagaimana pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama Bersifat pemahaman persoalan, analisis dan sintesis dan belajar mendesigner program Belajar bagaimana menuangkan algoritma ke dalam suatu pemrograman Belajar memakai suatu bahasa pemrograman, aturan sintaks, tata cara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa Belajar dititik berat pada coding atau pengkodean Belajar bagaimana testing program Produk yang dihasilkan pemrogram sebaiknya memenuhi syarat sebagai berikut: Program dengan rancangan yang baik (metodologis, sistematis) Dapat dieksekusi oleh mesin Penggunaan memori yang tidak berlebihan Berfungsi dengan benar Sanggup melayani segala kemungkinan masukan Disertai dokumentasi Menghandle semua kesalahan yang terjadi melalui pesan Belajar memprogram, titik berat : designer program

3.5.

Penggunaan Dalam Notasi Algoritma

Notasi algoritma ini dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Analogikanya seperti daftar bahan membuat sebuah meja. Sebuah resep membuat meja dapat ditulis dalam berbagai macam bahasa pemrograman seperti bahasa Inggris, Prancis, Jerman, Indonesia, Jepang, Belanda, Brazil, Vietnam, Cina, Jawa, Sunda dll. Apapun bahasa resep tetap dalam rangka membuat meja, meja yang akan dihasilkan tetap sama walupun berbeda bahasa resep membuat meja, sebab algoritmanya sama

Algortma Dasar

Page 12

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

(dengan catatan semua aturan pada resep diikuti). Mengapa bisa demikian? Karena setiap tukang kayu (yang merupakan pemrosesan) mampu melakukan operasi dasar yang sama, seperti memotong kayu, memaku kayu, dan kemudian membuat meja tersebut. Jadi, resep membuat meja tidak terikat pada bahasa yang digunakannya, hal inilah mengapa notasi algoritma tidak terpengaruh pada bahasa yang digunakan. Demikian pula dengan komputer. Setiap komputer berbeda teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-operasi dasar dalam pemrograman seperti pembacaan data, operasi perbandingan, operasi aritmatika, analisis pasar dan sebagainya. Dengan perkembangan komputer itu tidak mengubah operasi-operasi dasar itu melainkan yang berubah yaitu hanyalah kecepatan, energi, biaya, atau tingkat ketelitian. Menjadi catatan bahwa notasi algoritma bukanlah bahasa pemrograman, sehingga siapa pun dapat membuat notasi algoritma yang berbeda. Hal yang terpenting dari notasi tersebut adalah ia mudah dibaca dan dimengerti oleh orang lain. Selain itu, meskipun notasi algoritma bukan notasi baku sebagaimana pada notasi bahasa pemrograman, namun ketaatan terhadap notasi, perlu diperhatikan untuk menghindari kekeliruan. Dalam notasi algoritma dalam penulisannya terbagi menjadi beberapa hal, yaitu: a. Natural b. Algoritma pseudo code c. Flowchart d. Fundamental Algoritma sebetulnya banyak teknik yang kita gunakan dalam penulisannya tergantung pada kebiasaan setiap negara dan aturan internasional yang disepakati, tetapi pada dasarnya penulisan algoritma terbagi menjadi tiga hal, seperti di atas. Notasi algoritma di atas akan dipelajari pada bab selanjutnya. Sabar aja...ya..

Catatan: Mudah-mudahan Anda mengerti apa itu notasi algoritma. Ingat cara kerja komputer selalu berurutan dan tidak loncat kesana dan loncat kesini. Kecuali pada syarat tertentu. Seorang programmer yang baik, harus memiliki bekal dasar-dasar pemrograman yang kuat biak dalam bidang logika maupun teknik penulisan algoritma.

3.6.

Penulisan Teks Algoritma

Algoritma suatu konsep atau blue print, bukan sebuah program tetapi hanya sebuah rancangan sebelum membuat program, algoritma tersebut yang nantinya dapat diimplementasikan ke dalam berbagai bahasa pemrograman, seperti Java, Pascal, Delphi, Visual Basic, C##, PHP dan lain-lain. Untuk kebanyakan orang sering salah pengertian tentang algoritma ini. Sebagai contoh ada seorang mahasiswa yang sedang belajar algoritma dan pemrograman Java, suatu ketika saya bertanya pada mahasiswa tersebut apa algoritma itu? dan mahasiswa tersebut dengan bangga menjawab Algoritma adalah belajar bahasa Java pak, saya pun berkata kata siapa?, kemudian jawab mahasiswa kata dosen algoritma, pak. Wah.. waah.. mahasiswa ini mungkin salah pengertian apa yang disampaikan dosen tersebut dan tidak bisa membedakan mana algoritma dan mana pemrograman atau mungkin murid tersebut tidak mau belajar tentang algoritma dengan baik. Saya hanya bisa senyum saja.. dengan pernyataan di atas, entah siapakah

Algortma Dasar

Page 13

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

yang salah, dengan kasus seperti ini. Jadi supaya bisa membedakan mana algoritma dan mana pemrograman, marilah kita belajar algoritma yang sunguh-sunguh, sebetulnya algoritma itu sangat mudah di pelajari dan Anda jangan asal belajar saja. Sebetulnya algoritma merupakan rancangan awal dari suatu masalah dalam dunia nyata yang nantinya algoritma tersebut dapat diimplementasikan ke dalam berbagai bahasa pemrograman dan program akan memerintahkan komputer untuk melakukan sesuatu sesuai apa yang kita tulis dalam program tersebut atau disebut dengan penulisan source code. Catatan: Jadi algoritma tidak sama dengan program, ingat ya!!! Dalam penulisan algoritma banyak cara yang dilakukan dalam hal penulisan algoritma baik dengan algoritma teks maupun dengan algoritma flowchart atau penulisan algoritma dengan metode lainnya, teknik penulisan algoritma ini kita akan bahas pada bab berikutnya.

3.7.

Penggambaran Algoritma

Algoritma berisi tentang suatu deskripsi(menggambarkan) mengenai langkah-langkah untuk penyelesaian suatu masalah tertentu. Deskripsi tersebut dapat ditulis dalam notasi apa pun, asalkan mudah dimengerti dan dipahami oleh manusia. Tidak ada notasi yang baku dalam penulisan teks algoritma sebagaimana pada notasi bahasa pemrograman (notasi yang digunakan dalam penulisan algoritma disebut notasi algoritmik). Setiap orang dapat membuat aturan penulisan dan notasi algoritma sendiri. Hal ini dapat dimengerti karena teks algoritma tidak sama dengan teks program. Karena program adalah implementasi dari algoritma dalam suatu notasi bahasa pemrograman tertentu. Namun, algoritma merupakan rancangan yang menggambarkan jalannya program, agar notasi algoritma tersebut mudah ditranslasikan ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut berkoresponden dengan notasi bahasa pemrograman secara umum. Berikut adalah contoh bahasa pemrograman secara umum, yaitu: Menampilkan data Penulisan teks untuk menampilkan variabel x dan y Maka dalam notasi algoritmik menjadi : print(x, y) penulisan print merupakan suatu printah yang akan mencetak nilai x dan y ke piranti keluaran (monitor atau printer) dalam algoritma untuk keluaran boleh menggunakan kata write atau print ataupun out tergantung dari si pembuat algoritmanya, karena untuk implementasinya menggunakan bahasa Java, alangkah baiknya kita mengunakan kata print, karena kata print lebih dekat dengan bahasa Java dan untuk seterusnya guna menampilkan data atau nilai menggunkan kata println atau print dalam penulisan algoritmanya. Dalam penulisan dalam bahada Java hampir sama dengan bahasa pemrograman lainnya, hanya saja yang membedakannya adalah masalah sintaks bahasa, kita analisis penulisan algoritma di atas untuk menampilkan data dan kita coba untuk mengimplementasikan dalam berbagai bahasa pemrograman yaitu: 1. Pascal : write(x,y) 2. Java : system.out.print(x,y) 3. bahasa C : printf(x,y) 4. Basic : write(x,y) dll

Algortma Dasar

Page 14

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Contohnya lainnya yaitu Dua buah algoritma sederhana, diberikan untuk mengilustrasikan teks algoritma. Algoritma pertama, adalah untuk mencetak tulisan, Hello World, yaitu: Maka penulisan dalam algoritmanya yaitu: println(Hello World) maka dengan printah println, maka kata Hello World akan ditampilkan pada monitor komputer atau alat keluaran. Algoritma untuk mencetak suatu variabel A Dengan proses hasil sebuah perhitungan yang ditampung pada variabel A, yaitu: Proses perhitngan: A = (2 * 3) + 5, maka penulisan dalam algoritmanya yaitu: A (2 * 3) + 5, // proses perhitungan di variabel A println( A ) // menampilkan variabel A

Pada printah di atas akan menampilkan angka 11 di layar monitor yang merupakan hasil dari suatu proses, dan bukan variabel A nya yang ditampilkan melainkan hasil proses (( 2 * 3) + 5) perhitungan yang ditampung pada variabel A yang berisi nilai 11. Perlu diingat juga dalam penulisan A pada perintah println, ditulis tanpa menggunakan petik dua ( ) atau petik tunggal ( ), karena variabel A memiliki nilai dan bukan suatu pernyataan, seperti Hello world, jadi Anda harus bisa membedakan, mana yang menggunakan tanda petik, mana yang tidak menggunakan tanda petik.

Catatan: Untuk println, adalah suatu printah yang menampilkan data dan setelah printah statement tersebut diproses maka cursor akan pindah baris baru, sedangkan print yaitu setelah printah statement diproses maka cursor tetap pada baris tersebut atau tidak ganti baris baru. Lebih jelasnya kita lihat pada latihanlatihan pemrograman saja. Algoritma Hello World! sebetulnya hampir selalu ditemukan pada buku-buku bahasa pemrograman, apa lagi dalam bahasa Java. Kadang kala kita sering menjumpai dalam suatu pemrograman, ketika pertama kali kita membuka suatu pemrograman tertentu misalnya bahasa Java maka secara default program Java akan menampilkan kata Hello World! ke layar monitor. Program Hello World!, pertama kali ditemukan oleh Brian W. Kernighan, yaitu penemu bahasa C [KER88]. Sebagai contoh membuat algoritma untuk mencatak kata Hello World! ini, yaitu sebagai berikut: ALGORITMA HelloWorld { untuk menampilkan/mencetak kata-kata Hello World! yang berupa tipe data string } DEKLARASI { Tidak ada } DESKRIPSI

Algortma Dasar

Page 15

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

print( 1 Hello World!) //print, menampilkan tetapi kursor tidak ganti baris println( 2 Hello World!) //println, menampilkan dg posisi kursor ganti baris print( 3 Hello World!) //print, menampilkan tetapi kursor tidak ganti baris End_Algo Hasil Output 1 Hello World! 2 Hello World! 3 Hello World!

Keterangan: Algoritma di atas untuk menampilkan atau mencetak ke layar berupa kata 1 Hello World!, 2 Hello World!, dan 3 Hello World!, misalnya alat keluaran seperti monitor, jelas sekali bukan Membaca Data Penulisan teks atau membaca data seperti: baca atau inputan nilai x dan y maka dalam notasi algoritmik menjadi : read(x,y) Untuk penulisan read ini berarti untuk menginputkan data atau membaca data (keyboard, scanner dll) dalam penulisan algoritma boleh menggunakan kata read atau readln atau input dan diikuti menggunakan lambang (panah) yaitu lambang proses input nilai atau menggunakan lambang = (sama dengan). Jadi read merupakan suatu perintah untuk menginputkan atau membaca data, dalam hal ini berupa variabel x dan y baik dibaca melalui keyboard maupun dengan alat inputan lainnya. Marilah kita analisis penggunaan printah read(inputan) tersebut dan kita implementasikan dalam berbagai macam pemrograman tertentu yaitu: a. Pascal : read(x,y) b. Java : JOptionPane.showInputDialog(x,y ); atau menggunakan InputStreamReader reader = new InputStreamReader(System.in); BufferedReader input = new BufferedReader(reader); Penggunaan read dalam algoritma, yaitu Contoh-1: read(b 5) Artinya variabel b akan diisi dengan nilai 5, berarti variabel b bertipe data integer (bilangan bulat) Contoh-2: read(c 7.5) Artinya variabel c akan diisi dengan nilai 7.5, berarti variabel c bertipe data float atau real. Contoh-3: read(a Selamat datang) Artinya variabel a akan diisi dengan nilai Selamat datang, berarti variabel a bertipe data string.

Algortma Dasar

Page 16

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Belajar melalui contoh-contoh Contoh-1: printah read atau inputan dalam algoritma, yaitu ALGORITMA LatRead { untuk membaca data dari alat inputan dengan beberapa tipe data } DEKLARASI { Tidak ada } DESKRIPSI read(nama=Ani Java) read(alamat=Bandung) End_algo Contoh-1 dalam bahasa Java import javax.swing.*; public class LatRead{ public static void main(String[] args) { String nama, alamat; nama = JOptionPane.showInputDialog("Nama Anda ?"); // read nama alamat = JOptionPane.showInputDialog("Alamat Anda ?"); //read alamat } } Contoh-2: printah read atau inputan dan outputan dalam bahasa Java dengan method, yaitu import javax.swing.*; public class DataPribadi { public static String nama, alamat; public static void masuk() { nama = JOptionPane.showInputDialog("Nama Anda ?"); // read nama alamat = JOptionPane.showInputDialog("Alamat Anda ?");//read alamat } public static void keluar() { System.out.println("Nama :" + nama); System.out.println("Alamat :" + alamat); } public static void main(String[] args) { masuk(); keluar(); } } Contoh-3: dalam algoritma, Menampilkan data dengan nilai yang sudah terdefinisi (1,4,6,8,4) yang akan ditampung dalam variabel (a,b,c,d,e), yaitu

// membaca sebuah data nama // membaca sebuah data alamat

Algortma Dasar

Page 17

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

ALGORITMA susunanAngka { untuk menampilkan/mencetak susunan angka dalam tipe data string } DEKLARASI a, b, c, d, e integer DESKRIPSI read(a , b, c, d, e) println(a, b, c, d, e) End_algo Contoh-4: algoritma inputan data Hello World! dengan variabel kata yang bertipe String, dan diinputkan melalui keyboard, yaitu: ALGORITMA HelloWorld { untuk menampilkan atau mencetak kata-kata Hello World! yang berupa tipe data string } DEKLARASI kata String DESKRIPSI read (kata =Hello World!) End_algo Contoh-4: Dalam bahasa Java, public class HelloWorld { public static void main(String[] args ) { String kata; kata = Hello World!; System.out.println(kata); } } Hasil outputnya Hello World! // definisi kata dengan tipe data string // inputan data berupa string // ini tambahan saja, menampilkan kata

//memasukan data a, b, c, d, e dengan bil bulat(1,4,6,8,4)

// menampilkan variabel a, b, c, d, e

// kata memiliki tipe data teks

// inputan data berupa string

Jadi jelas sudah.. perbedaan antara algoritma dan bahasa Java, kalau belum jelas Anda pelajari lagi. Lihatlah perbedaan antara penulisan Hello World! pada algoritma dan bahasa Java di atas. Pada dasarnya kalau kita perhatikan dalam struktur teks algoritma terdiri dari beberapa hal, yaitu : a. Judul Algoritma Bagian ini memuat judul dari suatu algoritma yang menggambarkan masalahnya, ingat judul harus simpel, jelas dan tidak boleh ada spasi b. Deklarasi atau menggunakan kata Kamus

Algortma Dasar

Page 18

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Mendeklarasikan suatu variabel dan memiliki tipe data tertentu seperti: string, integer, float, maupun double dll c. Deskripsi atau menggunakan kata Algo Deskripsi merupakan tempat inputan, pemprosesan dan outputan atau tempat beradanya suatu statement. d. Penutup algoritma Suatu algoritma harus ada stop atau penutup algoritma. Inilah yang menjadi ciri algoritma yang baik. Penutupan biasanya tergantung algoritmanya bisa menggunakan End_algo atau Stop

Belajar melalui latihan-latihan dalam bahasa Java Latihan-1, Menampilkan data variabel c dari perhitungan a dan b dalam Java yaitu: import javax.swing.*; public class perhitungan { public static void main(String[] args){ int a, b, c; a = 28; // read(a = 28) b= 70; //read(b = 70) c= (a * b) + ( a * a); // proses perhitungan System.out.println("nilai c = " + c); // menampilkan data c } }

Latihan-1, Menggunakan method dalam Java, yaitu: import javax.swing.*; public class perhitungan { public static void hasil(){ int a, b, c; a = 28; // read(a = 28) b= 70; //read(b = 70) c= (a * b) + ( a * a); // proses perhitungan System.out.println("nilai c = " + c); // menampilkan data c } public static void main(String[] args){ hasil(); //memanggil method hasil() } }

Latihan-2, Menghitung luas segitiga dengan membaca dari JOptionPane menggunakan method . import javax.swing.*; public class Konversi_Luas { public static float a, t, L;

//variable global

Algortma Dasar

Page 19

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

public static void hitung(){ String angka1 = JOptionPane.showInputDialog("alas ? "); String angka2 = JOptionPane.showInputDialog("tinggi ? "); a = Float.parseFloat(angka1); t = Float.parseFloat(angka2); } public static void hasil(){ L = (a * t)/2; System.out.println("Luas = " + L); } public static void main(String[] args){ hitung(); hasil(); } }

Latihan-3, Membuat inputan dan menampilkannya. import javax.swing.*; public class inputantulis { public static void latihan3(){ String tulis = JOptionPane.showInputDialog("Tsulisan Anda ? "); System.out.println("Anda menulis = " + tulis); } public static void main(String[] args){ latihan3(); } }

Latihan-4, Membuat program inputan, nama dan umur, yiatu: import javax.swing.*; public class inputandata { public static void main(String[] args){ System.out.println("----DAFTAR PRIBADI----"); String angka1 = JOptionPane.showInputDialog("nama Anda ? "); String angka2 = JOptionPane.showInputDialog("umur Anda ? "); System.out.println("Nama Anda = " + angka1 ); System.out.println("Umur Anda = " + angka2 ); } }

Algortma Dasar

Page 20

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

Latihan-4.1, Menggunakan method dalam bahasa Java, yaitu Membuat program inputan, nama dan umur, dengan pemanggilan suatu method import javax.swing.*; public class inputandata { public static String nama, umur; public static void masuk(){ //sebuah method masuk nama = JOptionPane.showInputDialog("nama Anda ? "); umur= JOptionPane.showInputDialog("umur Anda ? "); } public static void tampil() { //sebuah method tampil System.out.println("Nama Anda = " + nama ); System.out.println("Umur Anda = " + umur ); } public static void main(String[] args) { System.out.println("----DAFTAR PRIBADI----"); masuk(); //memanggil method masuk() tampil(); //memanggil method tampil() } }

Latihan-4.2, Menggunakan class dalam bahasa Java Membuat program inputan, nama dan umur, dengan pemanggilan suatu method import javax.swing.*; public class data{ //mendefinisikan untuk class data public static String nama, umur; public static void masuk(){ //sebuah method masuk nama = JOptionPane.showInputDialog("nama Anda ? "); umur= JOptionPane.showInputDialog("umur Anda ? "); } } public class inputandata { //mendefinisikan class inputdata

public static void tampil() { //sebuah method tampil data dt = new data(); System.out.println("Nama Anda = " + dt.nama ); System.out.println("Umur Anda = " + dt.umur ); } public static void main(String[] args) {

Algortma Dasar

Page 21

Created by: Edi Casnadi.(Email:ed.mobilejava@gmail.com)

2012

System.out.println("----DAFTAR PRIBADI----"); data dt = new data(); dt.masuk(); //memanggil method masuk()dikelas data tampil(); } } Hasil output ----DAFTAR PRIBADI---Nama Anda = edi c Umur Anda = 25 Process completed. //memanggil method tampil() dikelas input data

Soal Latihan 3
1. Buatlah algoritma untuk menghitung jarak tempuh kendaraan, dari jarak tertentu!. 2. Buat pemrograman dalam bahasa Java dengan method untuk menghitung empat persegi panjang, hitunglah: a. Luas b. Keliling c. Panjang diagonal Dengan aturan: Inputan/read (panjang dan lebar) Untuk inputan harus diisi dengan alat inputan yaitu keyboard dan nilai inputan nilai sembarang Output/println (luas, keliling, diagonal)

Algortma Dasar

Page 22