Melayani Dengan Riang Gembira

dan DOA

Cari di Blog Ini

Berubah tanpa ilmu adalah perubahan sia-sia

Yang abadi dalam kehidupan di dunia adalah perubahan, dengan ilmu perubahan menjadi terarah.

Orang cerdas itu adalah orang yang berencana untuk besok hari

Maka disiplin adalah bagian dari rencana.

31 Juli 2020

Menerapkan dan Membuat Alur Logika Pemrograman Komputer - Algoritma

Indikator Pencapaian Kompetensi dan Tujuan Pembelajaran

1. Indikator KD pada KI pengetahuan

  1. Menjelaskan algoritma pemrograman
  2. Menerapkan algoritma pemrograman dalam menyelesaikan masalah
  3. Menjelaskan algoritma pemrograman menggunakan flowchart
  4. Menerapkan flowchart dalam menyelesaikan masalah

2. Indikator KD pada KI keterampilan

  1. Membuat alur program menggunakan text (algoritma)
  2. Membuat program menggunakan simbol (flowchart)


3. Tujuan Pembelajaran

  1. Dengan berdiskusi Siswa mampu menjelaskan algoritma dan pemrograman.
  2. Dengan membacadan mengeksplor Siswa mampu menerapkan algoritma pemrograman dalam menyelesaikan masalah menggunakan pseudocode dan flowchart
  3. Dengan praktek membuat alur program menggunakan text (algoritma)dan Membuat program menggunakan simbol (flowchart), siswa mampu mengkomunikasikan pembuatan program menggunakan text dan flowchart.

Materi Kegiatan Pembelajaran:

Asal usul Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma berasal dari kata algorism yang berarti proses menghitung dengan angka arab. 

Seseorang dikatakan algorist jika ia 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 Ja’far 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 juga diperoleh 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.

Jadi, definisi dari algoritma adalah “urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.”

syarat kondisi awal yang harus dipenuhi sebelum menjalankan algoritma.

Definisi masalah atau problem adalah perbedaan antara kondisi yang terjadi dan kondisi yang diharapkan atau boleh juga diartikan sebagai perbedaan antara kondisi sekarang dengan tujuan yang diinginkan.

 Gejala berbeda dengan masalah.

Gejala adalah indikator terjadinya masalah, misalnya seorang dokter dalam usaha mengobati penyakit pasien selalu bertanya dulu tentang gejala-gejala yang dirasakan pasien kemudian menyimpulkan bahwa pasien menderita penyakit tertentu dan menentukan obat yang tepat. Pusing, demam, batuk, dan

pilek merupakan gejala atau tanda dari penyakit flu. Apabila dokter hanya memberi obat sakit kepala, maka penyakit flu tidak akan sembuh. Satu masalah mungkin memiliki satu gejala tetapi mungkin juga lebih.

Hubungan pengertian "masalah dan gejala" dengan RPL disebabkan "perangkat lunak" merupakan hasil dari RPL sebagai alat bantu yang digunakan untuk menyelesaikan tugas / masalah tertentu. Apabila kita tidak mengetahui dengan benar masalahnya mustahil kita dapat menentukan bagaimana menyelesaikannya.

Untuk mengetahui dengan baik masalah, maka pengetahuan tentang gejala dari masalah menjadi sangat penting. Seorang programmer bila ingin membuat program Rugi Laba harus belajar dan memahami apa yang dinamakan akuntansi.

Tipe-tipe masalah.

1. Masalah pemenuhan standar

Tipe masalah dalam kelompok ini adalah masalah-masalah yang berhubungan dengan pencapaian standar/patokan yang telah ditentukan atau ditetapkan dalam sebuah organisasi.

Standar atau patokan minimal yang ditetapkan oleh suatu masyarakat atau organisasi. Standar yang tinggi menuntut kompetensi dan kapasitas yang tinggi untuk memenuhinya, sebaliknya standar yang rendah menghasilkan kualitas yang rendah pula.

2. Masalah pemilihan alternative

Masalah dalam kelompok ini berhubungan dengan bagaimana memilih solusi terbaik dari berbagai alternative/pilihan berdasarkan kriteria-kriteria tertentu.

Permasalahan ini seringkali kita jumpai dalam kehidupan sehari-hari, seperti bagaimana memilih sekolah yang tepat, memilih lokasi tempat tinggal, memilih bidang pekerjaan. Masing-masing alternatif dan kriteria memiliki bobot yang telah disepakati.

3. Masalah pemenuhan kepuasan/selera konsumen

Pada organisasi-organisasi yang bersifat profit (mencari keuntungan), masalah-masalah pada kelompok ini merupakan tipe yang seringkali muncul. Konsumen memiliki berbagai macam keinginan yang satu sama lain berbeda.

Memenuhi seluruh keinginan konsumen sangat tidak mungkin dan sangat memberatkan sebuah organisasi. Oleh karena itu perlu dicari pemecahan yang sama-sama menguntungkan, baik bagi konsumen maupun organisasi tersebut.

4. Masalah pencapaian tujuan

Tipe ini mirip dengan tipe pertama (masalah pemenuhan standar). Yang berbeda adalah, pada tipe ini tujuan yang ingin dicapai dapat berubahubah dan bersifat jangka pendek.

Teknik Pemecahan Masalah

Setelah masalahnya dipahami dengan baik, seorang pemrogram tentu membutuhkan suatu teknik untuk memecahkan masalah tersebut, antara lain dikenal teknik Top-Down & teknik Bottom-Up

Teknik Top-Down
Merupakan teknik pemecahan masalah yang paling umum digunakan. Pada teknik ini, suatu masalah yang kompleks dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Dari kelompok masalah yang kecil tersebut di analisis. Apabila dimungkinkan maka masalah tersebut akan dipilah lagi menjadi sub bagian dan setelah itu mulai disusun langkah-langkah untuk menyelesaikan secara detail.

Teknik Bottom Up
Merupakan teknik pemecahan masalah yang mulai ditinggalkan, karena sulit untuk melakukan standarisasi proses dari prosedur-prosedur yang sudah terbentuk yang akan digabungkan. Pada teknik ini, bila ada masalah kompleks, maka pemecahan masalah dilakukan dengan menggabungkan prosedur-prosedur yang ada menjadi satu kesatuan program guna menyelesaikan masalah tersebut.

Hubungan antara algoritma, masalah dan solusi dapat digambarkan sebagai berikut :
    Masalah->Algoritma->Solusi

Proses dari masalah hingga terbentuk suatu algoritma disebut tahap pemecahan masalah, sedangkan tahap dari algoritma hingga terbentuk suatu solusi disebut dengan tahap implementasi.

Solusi yang dimaksud adalah suatu program yang merupakan impelementasi dari algoritma yang disusun.

Algoritma pemrograman yang baik memiliki ciri-ciri sebagai berikut :
  1. memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah
  2. menghasilkan output yang tepat dan benar dalam waktu yang singkat
  3. ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga tidak menimbulkan arti ganda
  4. ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman
  5. semua operasi yang dibutuhkan terdefinisi dengan jelas
  6. semua proses harus selalu berakhir setelah sejumlah langkah dilakukan
CONTOH
Algoritma ketika ingin mengirimkan surat kepada teman, yaitu :
1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat
3. Masukkan surat ke dalam sampul
4. Tutup sampul surat menggunakan perekat
5. Tempel perangko pada surat
6. Bawa surat ke kantor pos untuk di poskaan

Cara Penulisan Algoritma


Ada tiga cara penulisan algoritma, yaitu :

1. Structured English (SE) / Structured Indonesian (SI)

SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured Indonesian (SI). Algoritma yang pada dasarnya adalah menggunakan bahasa sehari-hari, maka SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai perangkat lunak.

2. Pseudocode

Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program.Sehingga pseudocode adalah kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan. Kadang-kadang orang menyebut pseudocode sebagai PASCAL-LIKE algoritma.

3 Flowchart

Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika. Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentu notasi-notasi tertentu. Secara lebih detil bagian ini akan dibahas pada bagian berikutnya.

Pengelompokkan struktur proses dalam algoritma !

• Proses urutan (sequence)/runtunan

– Prosedur proses dalam algoritma yang dilakukan secara urut langkah demi langkah.
– Sebuah urutan terdiri dari satu atau lebih instruksi. Tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan pelaksanaan, artinya suatu instruksi akan dilaksanakan setelah instruksi sebelumnya telah selesai dilaksanakan.

• Proses penyeleksian/percabangan (selection)

– Suatu instruksi dikerjakan jika suatu kondisi tertentu dipenuhi. Dengan adanya proses ini maka ada kemungkinan beberapa jalur aksi yang berbeda berdasarkan kondisi yang ada.

• Proses pengulangan (looping) atau iterasi

– Suatu proses melakukan eksekusi suatu program secara berulang-ulang pada suatu blok instruksi tertentu yang terkendali


Komponen yang harus ada dalam merancang algoritma:

1. Komponen masukan : terdiri dari pemilihan variable, jenis variable,

tipe variable, konstanta dan parameter (dalam fungsi).

2. Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program.
Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah

3. Komponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode(rekursi, perbandingan, penggabungan, pengurangan dll).

Tugas / Penilaian :

Soal Jawab Algortima

1.Apa definisi dari “Algoritma” ?

Ditinjau dari asal-usul katanya, kata Algoritma berasal dari kata algorism yang berarti proses menghitung dengan angka arab.

Seseorang dikatakan algorist jika ia 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 Ja’far 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 juga diperoleh 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.

Jadi, definisi dari algoritma adalah “urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.” Kata


2. Apa saja pertimbangan dalam menyusun sebuah algoritma ?

Pertimbangan dalam pemilihan algoritma adalah,

1 Algoritma haruslah benar yaitu memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan.

2. Algoritma harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya (hasil terbaik).

3. Algoritma harus efisiensi artinya dapat ditinjau dari dua hal yaitu efisiensi waktu dan penggunaan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika harus menunggu berjam-jam untuk mendapatkan keluarannya berarti algoritma tidak baik

3. Apa beda algoritma dengan program ?
Program adalah kumpulan pernyataan (perintah untuk) komputer, sedangkan metode, langkah-langkah dan tahapan sistematis dalam program adalah algoritma.

Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya:

1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.

2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.


3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

4. Apa yang disebut dengan “pseuducode” ?

Beberapa hal yang perlu diperhatikan dalam membuat algoritma:

1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.

2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.

3. 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. Tulisan (notasi) algoritma yang mendekati perintah bahasa pemrograman disebut dengan pseudocode.

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

5. Algoritma sebenarnya digunakan untuk membantu mengkonversikan suatu permasalahan ke bahasa pemrograman.

6. 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 variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya.

b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.

c. Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.

d. Aturan sintaksis
Pada saat menuliskan program, programmer terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.

e. Tampilan hasil
Pada saat membuat algoritma tidak dipikirkan 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.

5. Apa beda compiler dan interpreter ?
Seluruh bahasa pemrograman yang ditulis programmer (khususnya yang menggunakan bahasa pemrograman tingkat tinggi) akan diterjemahkan terlebih dulu ke dalam bahasa mesin. Ada penerjemahan yang akan memeriksa kebenaran dalam penulisan perintah, dan ada juga yang juga memeriksa kebenaran logika program.

Compiler adalah penerjemah yang bekerja memeriksa program sekaligus seluruhnya (contoh dalam bahasa pemrograman COBOL), dan interpreter adalah penerjemah yang bekerja memeriksa program baris demi baris (contoh dalam bahasa pemrograman BASIC). Jadi, komputer akan bekerja (mengeksekusi program) secara langsung jika seluruh perintah sudah dinyatakan benar (pada compiler), sedangkan pada interpreter, komputer akan menjalankan program baris demi baris. Bisa jadi komputer telah mengeluarkan output dari perintah baris pertama hingga baris keseratus, namun menyatakan error ketika komputer menjalankan baris keseratus-satu.

6. Apa yang disebut dengan “bahasa pemrograman tingkat tinggi” dan “bahasa pemrograman tingkat rendah” ?
Komputer adalah mesin, yang tentu hanya dapat “mengerti” bahasa mesin. Sedang manusia (programmer) bisa mengerti bahasa mesin maupun bahasa manusia. Namun demikian, untuk mempelajari hingga mengerti untuk selanjutnya menuliskan perintah dengan bahasa mesin, diperlukan waktu yang lama dan keahlian yang lebih. Sedangkan persaingan dalam kehidupan, memerlukan action yang cepat, tepat, dan akurat.

Karenanya, dari bahasa mesin atau selanjutnya dibuat bahasa asembli/ asembler (yang dikategorikan sebagai bahasa tingkat rendah/ low level programming language) dibuatlah functions hingga seorang programmer bisa menuliskan perintah dalam bahasa manusia (umumnya bahasa Inggris). Tulisan program yang sudah menggunakan bahasa manusia dikategorikan sebagai bahasa pemrograman tingkat tinggi/ high level programming language). Untuk menerjemahkan bahasa manusia ke bahasa mesin (menerjemahkan functions), dibuat compiler atau interpreter.

Jadi, berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam:

1. Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan (asembler) dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.

2. Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.

7. Bagaimana cara menyajikan algoritma ?
Penyajian algoritma secara garis besar bisa dalam dua 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.

8. Apa beda flowchart sistem dan flowchart program ?
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. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.

Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu:

1. Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data.

2. Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.


9. Apa saja langkah-langkah pemecahan masalah dalam pembuatan program ?
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah:
1. Mendefinisikan Masalah. Berikut adalah hal-hal yang harus diketahui dalam analisis masalah agar diketahui bagaimana permasalahan tersebut:
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia (yang perlu dijadikan pertimbangan).
d. Operator yang tersedia dalam bahasa pemrograman (adakah operator div, mod, abs, dan lain-lain).
e. Syarat atau kendala yang harus dipenuhi (aturan dalam penyelesaian masalah).

2. Membuat Algoritma dan Struktur Cara Penyelesaian

Jika masalahnya kompleks, maka dibagi ke dalam modul-modul. Tahap penyusunan algoritma seringkali dimulai dari langkah yang global terlebih dahulu. Langkah global ini diperhalus sampai menjadi langkah yang lebih rinci atau detail. Cara pendekatan ini sangat bermanfaat dalam pembuatan algoritma untuk masalah yang kompleks. Penghalusan langkah dengan cara memecah langkah menjadi beberapa langkah. Setiap langkah diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan langkah ini akan terus berlanjut sampai setiap langkah sudah cukup rinci dan tepat untuk dilaksanakan oleh pemroses.

3. Menulis Program
Algoritma yang telah dibuat, diterjemahkan dalam bahasa komputer menjadi sebuah program. Perlu diperhatikan bahwa pemilihan algoritma yang salah akan menyebabkan program memiliki untuk kerja yang kurang baik. Program yang baik memiliki standar penilaian:

a. Standar teknik pemecahan masalah

- Teknik Top-Down
Teknik pemecahan masalah yang paling umum digunakan. Prinsipnya adalah suatu masalah yang kompleks dibagi-bagi ke dalam beberapa kelompok masalah yang lebih kecil. Dari masalah yang kecil tersebut dilakukan analisis. Jika dimungkinkan maka masalah tersebut akan dipilah lagi menjadi subbagian-subbagian dan setelah itu mulai disusun langkah-langkah penyelesaian yang lebih detail.

- Teknik Bottom-Up
Prinsip teknik bottom up adalah pemecahan masalah yang kompleks dilakukan dengan menggabungkan prosedur-prosedur yang ada menjadi satu kesatuan program sebagai penyelesaian masalah tersebut.

b. Standar penyusunan program

- Kebenaran logika dan penulisan.
- Waktu minimum untuk penulisan program.
- Kecepatan maksimum eksekusi program.
- Ekspresi penggunaan memori.
- Kemudahan merawat dan mengembangkan program.
- User Friendly.
- Portability.
- Pemrograman modular.

4. Mencari Kesalahan
a. Kesalahan sintaks (penulisan program).
b. Kesalahan pelaksanaan: semantik, logika, dan ketelitian.

5. Menguji dan Memverifikasi Program
Pertama kali harus diuji apakah program dapat dijalankan. Apabila program tidak dapat dijalankan maka perlu diperbaiki penulisan sintaksisnya tetapi bila program dapat dijalankan, maka harus diuji dengan menggunakan data yang biasa yaitu data yang diharapkan oleh sistem. Contoh data ekstrem, misalnya, program menghendaki masukan jumlah data tetapi user mengisikan bilangan negatif. Program sebaiknya diuji menggunakan data yang relatif banyak.

6. Mendokumentasi Program
Dokumentasi program ada dua macam yaitu dokumentasi internal dan dokumentasi eksternal. dokumentasi internal adalah dokumentasi yang dibuat di dalam program yaitu setiap kita menuliskan baris program sebaiknya diberi komentar atau keterangan supaya mempermudah kita untuk mengingat logika yang terdapat di dalam instruksi tersebut, hal ini sangat bermanfaat ketika suatu saat program tersebut akan dikembangkan. Dokumentasi eksternal adalah dokumentasi yang dilakukan dari luar program yaitu membuat user guide atau buku petunjuk aturan atau cara menjalankan program tersebut.

7. Pemeliharaan Program
a. Memperbaiki kekurangan yang ditemukan kemudian.
b. Memodifikasi, karena perubahan spesifikasi.

10. Apa yang dilakukan dalam menguji program ?

Program yang baik, utamanya adalah menghasilkan keluaran yang benar dan sesuai dengan apa yang diharapkan. Sebagai contoh, program untuk memproses dan mencetak saldo untuk tabungan nasabah, maka nilai yang tercantum di print-out harus sama persis bila dilakukan perhitungan secara manual dengan segala ketentuannya.

Dengan demikian, pengujian terhadap sebuah program antara lain adalah: berhasil melewati proses kompilasi (penerjemahan atau tidak ada error lagi), melakukan pengujian dengan perhitungan atau proses manual (hasilnya harus sama), dan mencobanya dengan banyak kasus (data) agar dipastikan program benar-benar valid.

11. Apa keperluan dilakukannya dokumentasi program ?

Seorang pemrogram tentu tidak hanya membuat sebuah program selama karirnya. Karenanya, setiap program yang pernah ditulisnya hendaknya didokumentasikan. Tujuan dokumentasi adalah untuk mengingat kembali (khususnya alur kerja atau logika) dari program tersebut. (Lihat jawaban dari soal nomor 9 pada poin nomor 6). Dokumentasi penting dilakukan karena umumnya program akan mengalami perkembangan atau perubahan sesuai dengan kebutuhan. Misalkan, yang semula bunga bank sebesar 9% per tahun, kini menjadi 6% per tahun. Atau yang semula tidak ada perhitungan pajak, kini karena peraturan pajak yang berlaku, hal itu harus diperhitungkan, dan sebagainya.

12. Jelaskan pengelompokkan struktur proses dalam algoritma !

• Proses urutan (sequence)
– Prosedur proses dalam algoritma yang dilakukan secara urut langkah demi langkah.
– Sebuah urutan terdiri dari satu atau lebih instruksi. Tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan pelaksanaan, artinya suatu instruksi akan dilaksanakan setelah instruksi sebelumnya telah selesai dilaksanakan.

• Proses penyeleksian/percabangan (selection)
– Suatu instruksi dikerjakan jika suatu kondisi tertentu dipenuhi. Dengan adanya proses ini maka ada kemungkinan beberapa jalur aksi yang berbeda berdasarkan kondisi yang ada.

• Proses pengulangan (looping) atau iterasi
– Suatu proses melakukan eksekusi suatu program secara berulang-ulang pada suatu blok instruksi tertentu yang terkendali

13. Apa kekurangan menuliskan algoritma dengan bahasa natural (bahasa manusia) ?

Algoritma bisa disajikan dengan (1) penulisan dengan bahasa natural (bahasa manusia, seperti bahasa Inggris, bahasa Indonesia, dan sebagainya), (2) dengan bahasa yang mendekati penulisan bahasa pemrograman (pseudocode), dan (3) dengan flowchart.

Kelemahan penulisan yang menggunakan bahasa natural antara lain (1) hanya dimengerti oleh orang yang memiliki pengetahuan bahasa tersebut, (2) bisa menghasilkan arti yang berbeda (ambiguous), (3) kadang sulit merangkainya secara terstruktur (harus menjelaskan dengan panjang lebar), apalagi jika harus dilakukan algoritma yang memiliki pengulangan proses (loop), atau yang bersifat rekursif.

14. Apa kriteria algoritma yang baik menurut Donald E. Knuth ?

Banyak teori yang membahas tentang algoritma, salah satunya adalah Donald E. Knuth. Menurutnya, algoritma yang baik adalah algoritma yang (1) bisa menerima input dari luar, bukan hanya ada di dalam program, (2) memiliki sedikitnya sebuah hasil atau output, (3) memiliki kepastian (definiteness) pada setiap instruksinya atau tidak memiliki arti yang bias (tidak bersifat ambigu), (4) memiliki batas (finiteness) atau memiliki titik henti (stopping role), dan (5) bersifat efektif (effectiveness).

Contoh algortima yang tidak memiliki titik henti:

j ← 1
for j = 1 to 10
j ← i + 2
write j
next j

Contoh algoritma yang tidak efektif:

a ← a + 0
b ← b * 1

15. Contoh soal algoritma: tentukan sebuah bilangan ganjil atau genap
Tidak sulit kita menentukan sebuah bilangan adalah bilangan ganjil atau genap. Namun, bagaimana kita memerintah komputer agar komputer bisa menghasilkan output “ganjil” atau “genap” dari sebuah angka yang diberikan kepadanya, tidaklah mudah. Inipun masih tergantung pada operator apa saja yang dimiliki bahasa pemrogramannya.
Secara bahasa natural, kita bisa menulis algoritmanya:

a. Masukkan sebuah angka
b. Bagi angka tersebut dengan dua
c. Bila hasilnya adalah bilangan bulat, maka cetak “genap” selain itu cetak “ganjil”

Namun, untuk memberi tahu komputer mana bilangan “bulat” dan mana bilangan “pecahan” masih diperlukan algoritma lain lagi. Untuk beberapa bahasa pemrograman (yang memiliki operator INT atau integer untuk menyatakan bilangan bulat), maka pseudocode-nya bisa ditulis:

input a
if a/2 = int(a/2)
   write “genap”
else
  write “ganjil”
endif

Untuk bahasa pemrograman yang memiliki operator MOD (modulo atau sisa hasil bagi), maka pseudocode-nya bisa ditulis:

input a
if mod(a/2) = 0
  write “genap”
else
  write “ganjil”
endif







Snapshot Monitor


Video Pembelajaran

Struktur Dasar Algoritma


Format Baku Algoritma dibagi menjadi tiga bagian:

1. Bagian Nama : bagian yang menuliskan nama algoritma serta keterangan lain perihal algoritma tersebut

2. Bagian deklarasi : bagian yang mendefinisikan konstanta dan variabel objek yang terlibat dalam algoritma tersebut

3. Bagian dekripsi (badan algoritma) : adalah bagian yang merupakan langkah-langkah penyelesaian masalah.

Algoritma Jumlah                      //  {Bagian Nama}




c <- a + b
write (c)

Bagian Deskripsi atau bagian proses didalamnya selalu ada even atau manipulasi data yang terdiri dari

- Runtunan (Struktur Urut)
- Pemilihan Kondisi (Struktur Seleksi) / percabangan
- Perulangan


3. Simbol-Simbol Program Flowchart

Bagan Perintah Dasar-dasar Algoritma

Perintah Umum Atau pernyataan biasa   Perintah Algoritma     Flowchart

Masukan nilai A                                       Read (A)              


Masukan nilai D,E,F                                  Read (D,E,F)        

Tampilkan tulisan “WELCOME”        Write(“WELCOME”) 



Format Baku Algoritma dibagi menjadi tiga bagian:

1. Bagian Nama : bagian yang menuliskan nama algoritma serta keterangan lain perihal algoritma tersebut

2. Bagian deklarasi : bagian yang mendefinisikan konstanta dan variabel objek yang terlibat dalam algoritma tersebut

3. Bagian dekripsi (badan algoritma) : adalah bagian yang merupakan langkah-langkah penyelesaian masalah. 

Algoritma Jumlah                      //  {Bagian Nama}




c <- a + b
write (c)

Bagian Deskripsi atau bagian proses didalamnya selalu ada even atau manipulasi data yang terdiri dari 

- Runtunan (Struktur Urut)
- Pemilihan Kondisi (Struktur Seleksi) / percabangan
- Perulangan


3. Simbol-Simbol Program Flowchart

Bagan Perintah Dasar-dasar Algoritma

Perintah Umum Atau pernyataan biasa   Perintah Algoritma     Flowchart

Masukan nilai A                                       Read (A)              

Masukan nilai D,E,F                                  Read (D,E,F)        

Tampilkan tulisan “WELCOME”        Write(“WELCOME”) 



Jumlahkan(hitung)                                  C <- A + B                      C = A + B
variabel A dan varibel B dan
simpan hasilna di variabel C




Jumlahkan(hitung)                                  C <- A + B                      C = A + B
variabel A dan varibel B dan
simpan hasilna di variabel C