Tuesday, August 9, 2022

Belajar Pemrograman - Mengenal Algoritma dan Flowchart

 

  1. Pendahuluan

Sebelum memulai pemrograman, perlu diketahui terlebih dahulu apa itu pemrograman, mikroprosesor dan mikrokontroler. Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun suatu program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram. Mikroprosesor adalah alat yaang bekerja sebagai pusat pengendalian dan pengolahan pada sistem komputer mikro. Alat ini juga biasa disebut dengan Central Processing Unit atau CPU. Perlu diketahui bahwa mikroprosesor terdiri dari 3 bagian penting, yakni Arithmetic Logic Unit atau ALU, Register Unit atau RU, serta Control Unit CU. Sedangkan Mikrokontroler merupakan sebuah chip atau IC yang didalamnya sudah terdapat prosesor (ALU, CU & Register), memori dan periperal tambahan lain. Semua bagian tersebut dipadatkan dalam satu buah chip. Banyaknya periperal yang ada dalam mikrokontroler tergantung dari masing-masing tipe dan spesifikasi pabrik.

  1. Algoritma

Definisi Algoritma

Pemrograman dan algoritma adalah dua hal yang tidak dapat dipisahkan karena
pembuatan program akan lebih sulit dan lama tanpa mengetahui dengan pasti bagaimana algoritma penyelesaian masalahnya. Definisi algoritma adalah urutan langkah-langkah logika yang menyatakan suatu tugas dalam menyelesaikan suatu masalah. Meskipun algoritma tidak dapat dipisahkan dengan pemrograman komputer tetapi jika anda beranggapan bahwa algoritma identik dengan pemrograman komputer, anda salah besar. Hal ini dikarenakan dalam kehidupan sehari-haripun seringkali kita berhadapan dengan masalah-masalah yang kalau kita cermati mengikuti kaidah-kaidah penyelesaian secara algoritma. Misalkan saja cara-cara memasak mie instan, membuat kopi atau teh, memasak makanan yang dinyatakan dalam bentuk resep, dan masih banyak lagi yang semuanya itu dapat kita sebut sebagai algoritma. Pada mie instan misalnya, biasanya pada bungkusnya terdapat urutan langkah- langkah bagaimana cara memasak atau menyajikannya. Bila langkah- langkah tersebut tidak logis, maka dapat dipastikan bahwa kita akan memperoleh hasil yang tidak sesuai dengan yang diharapkan. Kita harus membaca satu demi satu langkah- langkah pembuatannya kemudian mengikutinya agar memperoleh hasil yang baik. Yang harus diingat disini adalah kita tidak harus mengikuti langkah- langkah yang sudah diberikan, tetapi kita dapat memodifikasinya atau bahkan membuat resep atau cara baru yang lebih baik tetapi menghasilkan hal yang sama (mempunyai tujuan yang sama), yaitu dapat
menikmati hasil masakan. Demikian juga dengan pemrograman komputer, kita juga tidak harus mengikuti algoritma yang sudah ada, tetapi kita dapat menambah ataupun mengurangi bahkan membuat algoritma yang baru asalkan permasalahan yang ada dapat terpecahkan dengan baik.

Tahapan Pemrograman

Tahapan pembuatan program diawali dengan mendefinisikan masalah dan
menganalisanya. Hal ini mencakup penentuan tujuan pembuatan program, parameter yang digunakan, fasilitas yang disediakan, algoritma yang diterapkan dan bahasa program yang digunakan. Langkah selanjutnya adalah merealisasikan program. Tahap realisasi ini dapat berlangsung secara berkesinambungan. Dikarenakan proses pembuatan program bisa sajamasih menemukan ketidaksempurnaan, sehingga perlu dilakukan perbaikan. Adapun langkah-langkah pembuatan program bisa dilihat dalam diagram berikut :

Gambar Diagram Alir Langkah-langkah Membuat Program

Ciri-ciri algoritma

Algoritma memiliki ciri-ciri yaitu ada input dan output, efektif dan efisien, serta terstruktur.
Sebuah algoritma dikatakan baik jika :

1. Tepat, benar, sederhana, standar dan efektif

2. Logis, terstruktur dan sistematis

3. Semua operasi terdefinisi

4. Semua proses harus berakhir setelah sejumlah langkah dilakukan

5. Ditulis dengan bahasa yang standar dengan format pemrograman agar mudah
untuk diimplementasikan dan tidak menimbulkan arti ganda. Oleh karena algoritma digunakan untuk memecahkan suatu permasalahan maka algoritma tersebut harus menghasilkan suatu jawaban atas permasalahan tersebut. Dengan kata lain algoritma harus memiliki paling tidak satu keluaran. Sedangkan masukan dari algoritma dapat nol (tidak ada) atau banyak masukan (data). Yang dimaksud dengan nol masukan adalah jika algoritma itu hanya untuk menampilkan suatu informasi saja. Misalnya output “Hello World” yang sering kita temukan pada tutorial- tutorial saat kita baru belajar membuat program dari suatu bahasa pemrograman tertentu. Kedua hal diatas, memiliki paling sedikit satu keluaran dan dapat memiliki nol atau banyak masukan, merupakan dua dari beberapa ciri algoritma. Tugas algoritma dikatakan selesai kalau algoritma tersebut sudah menghasilkan satu atau lebih jawaban atas permasalahan yang ada. Dengan demikian setelah mengerjakan langkah-langkah penyelesaian masalah, maka algoritma tersebut harus berhenti tidak melakukan proses apapun. Berhenti di sini artinya adalah jika diterjemahkan ke dalam bentuk program dan program dijalankan, maka setelah menghasilkan suatu output, program dapat langsung berhenti atau menunggu instruksi lebih lanjut dari pengguna program seperti mengulang perhitungan lagi, keluar program (menghentikan program), dan lain sebagainya. Dengan demikian ciri ketiga dari algoritma adalah setelah selesai mengerjakan langkahlangkah penyelesaian masalah, algoritma harus berhenti. Ciri keempat dari algoritma adalah setiap langkah yang dibuat harus dibuat sesederhana mungkin tetapi efektif agar dapat dipahami oleh pemroses (manusia maupun komputer) sehingga dapat diselesaikan dalam waktu yang singkat serta masuk akal. Sedangkan ciri yang terakhir adalah setiap langkah dalam algoritma harus didefinisikan dengan tepat dan jelas sehingga tidak berarti-dua (ambiguitas) sehingga menimbulkan kesalahan dalam penafsiran oleh pemroses.
Contoh algoritma sehari-hari

Untuk memahami algoritma lebih dalam, simak contoh algoritma aktifitas sehari-hari berikut ini. Dicontohkan sebuah permasalahan penukaran isi dari dua gelas. Diberikan dua buah gelas A dan B, gelasA berisi air teh dan gelasB berisi air kopi. Pertukarkan isi gelas tersebut sehingga menghasilkan gelasA yang semula berisi air teh menjadi berisi air kopi dan gelas B yang semula berisi air kopi menjadi berisi air teh. Ilustrasi permasalahan ini dapat dilihat pada Gambar

Cara penyelesaian permasalahan ini adalah sebagai berikut. Untuk mempertukarkan isi gelas dengan benar, maka diperlukan gelas tambahan yang kita namakan gelas C sebagai tempat penampungan sementara.Berikut Algoritmanya:

1. Siapkan gelas cadangan C

2. Tuangkan air teh dari gelas A ke dalam gelas C (gelas A menjadi kosong).

3. Tuangkan air kopi dari gelas B ke dalam gelas A (gelas B menjadi kosong).

4. Tuangkan air teh dari gelas C ke dalam gelas B.

Ilustrasi langkah-langkah algoritma dapat dilihat pada Gambar

Gambar Ilustrasi Penyelesaian Masalah

Dari contoh tersebut dapat dilihat bahwa penyelesaian permasalahan penukaran isi dua buah gelas sangat sederhana. Disini digunakan urutan langkah yang masuk akal atau logis sehingga isi dari kedua nya sudah berpindah media, dari A ke B dan B ke A. Inilah yang dinamakan “Algoritma”, urutan penyelesaian sebuah permasalahan dengan urutan dan langkah yang logis dan masuk akal menghasilkan sesuatu langkah yang benar.

Contoh algoritma mencari luas lingkaran

Contoh lain penggunaan logika dan algoritma adalah membuat algoritma untuk
menghitung luas lingkaran, caranya:

1. Menentukan nilai jari-jari (r) lingkaran.

2. Menentukan nilai phi.

3. Menghitung luas lingkaran dengan cara mengkalikan nilai jari-jari (r) dengan (r) lalu dikalikan dengan nilai phi.

4. Maka luas lingkaran ditemukan.

5. Selesai. 

Saat membuat sebuah algoritma, sebaiknya jangan berfikir terlalu rumit tentang sebuah masalah, karena belum tentu masalah itu serumit yang kita pikir. Pikirkan hal yang paling sederhana untuk menyelesaikan masalah itu, sehingga tidak terjebak dalam pikiran rumit yang dibuat sendiri. Meski demikian jangan meremehkan masalah sekecil apapun, tapi berfikir sederhana untuk menghasilkan solusi yang efektif. Dalam menentukan algoritma untuk menyelesaikan suatu permasalahan, mungkin kita
dihadapkan oleh beberapa pilihan algoritma. Oleh karena itu kita harus memiliki ramburambu dalam menentukan pilihan algoritma. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran sesuai seperti yang diharapkan dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, jika memberikan keluaran yang salah, maka sudah pasti algoritma tersebut bukanlah algoritma yang baik. 

Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahuiseberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini pentingterutama pada algoritma yang memerlukan aproksimasi hasil yaitu algoritma yang hasilnya hanya berupa pendekatan. Algoritma yangbaik harus mampu memberikan hasil yang sedekat mungkin dengan nilaiyang sebenarnya. Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari dua hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar atau paling mendekati, tetapi jika kita harus menunggu lama untuk mendapatkan hasil semisal berjam-jam untuk mendapatkan keluarannya maka biasanya algoritma tersebut biasanyatidak akan menjadi pilihan utama, setiap orang menginginkan keluaran yang relatif cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin jelek 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 mirip atau sama. 

Jika dihadapkan pada permasalahan seperti ini maka sebaiknya pilih algoritma yang paling efisien dan cepat. Tujuan dari belajar algoritma adalah agar dapat membiasakan diri melakukan suatu perencanaan apabila menyelesaikan suatu masalah. Karena suatu permasalahan yang diselesaikan dengan suatu perencanaan yang matang maka akan mendapatkan solusi yang lebih optimal dibandingkan menyelesaikan masalah tanpa menggunakan suatu perencanaan.

  1. Flowchart/Diagram Alir

Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk
memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam
menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. 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 ke kanan.

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 kerja.

5. 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.

Simbol Simbol dalam Diagram Alir

Adapun simbol-simbol yang sering digunakan untuk menyusun flow chart adalah sebagai berikut :

  1. Masukan

Masukan merupakan kegiatan penerimaan data yang disimbolkan dengan jajaran
genjang. Kita dapat menuliskan masukan yang diperlukan pada suatu waktu secara satu per satu maupun secara keseluruhan, akan tetapi untuk alasan efisiensi ruang gambar biasanya masukan dituliskan bersamaan secara keseluruhan. 

Gambar Simbol Masukan

  1. Masukan manual

Untuk masukan secara manual yang dimasukkan melalui keyboard, atau perangkat input lainnya seperti barcode reader, kita dapat menggunakan simbol masukan secara manual. Sama dengan simbol masukan, pada simbol masukan manual ini untuk alasan efisiensi ruang gambar biasanya masukan juga dituliskan bersamaan secara keseluruhan.

Gambar Simbol Masukan Manual

  1. Proses

Data yang dimasukan kemudian diproses untuk menghasilkan jawaban atas persoalan yang ingin dipecahkan. Kegiatan memproses data ini disimbolkan dengan persegi panjang. Sama seperti simbol pada masukan, penulisan operasi-operasi pada data dapat dilakukan secara satu per satu maupun secara keseluruhan.

Gambar Simbol Proses

  1. Keluaran

Keluaran adalah hasil dari pemrosesan data dan merupakan jawaban atas permasalahan yang ada. Keluaran ini harus ditampilkan pada layar monitor agar dapat dibaca oleh pengguna program. Sama seperti aturan pada simbol-simbol sebelumnya, penulisan hasil pemrosesan data dapat dilakukan secara satu per satu maupun secara keseluruhan. 

Gambar Simbol Keluaran

  1. Percabangan

Yang dimaksud dengan percabangan disini adalah suatu kegiatan untuk mengecek atau memeriksa suatu keadaan apakah memenuhi suatu kondisi tertentu atau tidak. Jadi dalam percabangan ini, kita harus menuliskan kondisi apa yang harus dipenuhi oleh suatu keadaan. Hasil dari pemeriksaan keadaan ini adalah YA atau TIDAK. Jika pemeriksaan keadaan menghasilkan kondisi yang benar, maka jalur yang dipilih adalah jalur yang berlabel YA, sedangkan jika pemeriksaan keadaan menghasilkan kondisi yang salah, maka jalur yang dipilih adalah jalur yang berlabel TIDAK. Berbeda dengan aturan pada simbol-simbol sebelumnya, penulisan kondisi harus dilakukan secara satu per satu (satu notasi percabangan untuk satu kondisi).

Gambar Simbol Percabangan

  1. Sub Rutin / sub program

Sub rutin adalah suatu bagian dalam program yng dapat melakukan atau diberi tugas tertentu. Jadi sub rutin merupakan “program kecil” yang menjadi bagian dari suatu program yang besar. Sub rutin ada dua macam, yaitu prosedur (procedure) dan fungsi (function). Perbedaan antara keduanya adalah setelah dipanggil prosedur tidak mengembalikan suatu nilai sedangkan fungsi selalu mengembalikan suatu nilai. Sub rutin memiliki suatu flow chart yang berdiri sendiri diluar flow chart utama. Jadi dalam simbol sub rutin, kita cukup menuliskan nama sub rutinnya saja, sama seperti jika kita melakukan pemanggilan terhadap suatu sub rutin pada program utama (main program) yang akan anda pelajari pada bagian atau bab lain pada buku ini. Aturan penulisan simbol sub rutin sama dengan simbol percabangan, yaitu penulisan nama sub rutin dilakukan secara satu per satu.


Gambar Sub Rutin

  1. Arah aliran

Arah aliran merupakan jalur yang harus diikuti dan merupakan garis penghubung yang menghubungkan setiap langkah pemecahan masalah yang ada dalam flow chart. Arah aliran ini disimbolkan dengan anak panah

Gambar Simbol Arah Aliran

  1. Terminator

Terminator berfungsi untuk menandai titik awal dan titik akhir dari suatu flow chart. Simbol terminator ini diberi label MULAI untuk menandai titik awal dari flow chart dan label SELESAI untuk menandai titik akhir dari flow chart. Jadi dalam sebuah flow chart harus ada dua simbol terminator, yaitu simbol terminator untuk MULAI dan SELESAI.

Gambar Simbol Terminator

  1. Konektor

Konektor berfungsi untuk menghubungkan suatu langkah dengan langkah lain dalam sebuah flow chart dengan keadaan on page atau off page. Yang dimaksud dengan konektor on page adalah konektor yang digunakan untuk menghubungkan suatu langkah dengan langkah lain dalam satu halaman. Sedangkan konektor off page adalah konektor untuk menghubungkan suatu langkah dengan langkah lain dalam halaman yang berbeda. Konektor ini digunakan apabila ruang gambar yang kita gunakan untuk menggambar flow chart tidak cukup luas untuk memuat flow chart secara utuh, jadi perlu dipisahkan atau digambar di halaman yang berbeda.

Gambar imbol konektor on page (a) dan off page (b)

  1. Dokumen

Dokumen merupakan tampilan data secara fisik yang dapat dibaca oleh manusia. Data ini biasanya merupakan hasil pemecahan masalah (informasi) yang telah dicetak (print out).

Simbol Dokumen

Contoh pembuatan diagram alir (flowchart)

Untuk memahami lebih dalam mengenai flowchart ini, dibuat sebuah studi kasus
sederhana. Misalnya buatlah sebuah rancangan program dengan menggunakan flowchart menentukan keliling dan luas lingkaran. Rumus untuk menentukan luas lingkaran adalah Luas = PI*radius*radius, dan keliling lingkaran adalah keliling=2*PI*radius, dengan Phi adalah sebuah konstanta 3.14. Flowchart permasalahan ini dapat dilihat pada gambar dibawah ini

Gambar Flowchart Mencari keliling dan Luas Lingkaran

Contoh selanjutnya, flowchart yang mengandung fungsi percabangan. Misal untuk
permasalahan apakah suatu bilangan termasuk bilangan ganjil atau genap. Cara
menyelesaikan permasalahan ini adalah dengan membagi bilangan tersebut dengan angka 2. Jika nilai sisa pembagiannya adalah 0, maka bilangan tersebut adalah bilangan genap. Jika nilai sisa pembagian adalah 1, maka bilangan tersebut adalah bilangan ganjil. Operasi aritmatika yang digunakan adalah modulo (%). Flowchart permasalahan ini dapat dilihat pada gambar :

Gambar Flowchart Percabangan



DAFTAR PUSTAKA

Abdurrahman, beny. Modul Teknik Pemrograman. 


No comments:

Post a Comment