Nama ABEDNEGO ZEBUA Kode Asisten EZ
NPM 2306161883 Jenis Tugas TP Modul 3 - Algoritma
Jawaban
1. Berdasarkan data dari Oxford Languages Dictionary; Algoritma adalah sebuah proses atau
rentetan peraturan untuk diikuti didalam perhitungan atau operasi problem-solving lainnya,
khususnya oleh sebuah computer. Secara singkat, Algoritma adalah suatu set instruksi yang
spesifik untuk diikuti demi mencapai sebuah hasil atau tujuan. Penerapannya bisa dilihat
dari kehidupan sehari-hari hingga kegiatan komputasi. Dalam komputasi algoritma
digunakan untuk mengarahkan komputer untuk mengeksekusi perintah secara step-by-step
untuk mendapatkan output yang diinginkan[1].
Dalam komputasi terdapat beberapa tipe algoritma yang penting dan umum
digunakan, yaitu[1] :
1. Brute Force Algorithm[2]
Merupakan bentuk algoritma yang secara langsung dan sesuai namanya
menggunakan kekuatan murni komputasi untuk melakukan tugas berulang.
Misalnya untuk kasus mencari jalur tercepat, metode Brute Force akan langsung
menghitung semua jalur yang memungkinkan, kemudian memilih satu yang
paling cepat. Dalam perhitungan kompleksitas waktu Big O, Brute Force memiliki
kompleksitas O(m*n).
2. Recursive Algorithm[3][4]
Recursion adalah proses dimana fungsi memanggil dirinya sendiri secara
langsung maupun tidak langsung. Fungsi yang melakukan hal ini disebut
Recursive Function. Fungsi ini kerap digunakan untuk menyelesaikan masalah
dengan menyelesaikan bagian-bagian yang lebih kecil dari masalah yang sama.
Fungsi akan memanggil dirinya sendiri dengan argument yang dimodifikasi.
Dalam hal kompleksitas waktu, Recursive Algorithm memiliki kompleksitas O(n).
3. Sorting Algorithm[5]
Algoritma ini digunakan untuk mengatur ulang array atau list dari data
berdasarkan dari perbandingan operator didalam elemen[5]. Fungsi ini untuk
mendapatkan urutan baru dari array dari struktur data yang digunakan.
Ada banyak sekali jenis sorting algorithm, dengan kompleksitas waktu yang
berbeda beda pula. Misalnya ;
- Quick Sort, best case = nlogn, worst case =n2
- Insertion Sort, best case = n, worst case = n2
- Selection Sort, best case = n2, worst case = n2
Referensi :
• [1] R. Prabhu, “Introduction to Algorithms,” GeeksforGeeks, Mar. 28, 2019.
https://www.geeksforgeeks.org/introduction-to-algorithms/
(accessed Sep. 11, 2023).
● [2] “Brute Force Algorithms Explained,” freeCodeCamp.org, Jan. 06, 2020.
https://www.freecodecamp.org/news/brute-force-algorithms-explained/
(accessed Sep. 11, 2023).
● [3] “What is Recursion?,” GeeksforGeeks, Mar. 13, 2023.
https://www.geeksforgeeks.org/what-is-recursion/
(accessed Sep. 11, 2023).
● [4] “Recursive Functions,” GeeksforGeeks, Nov. 18, 2010.
https://www.geeksforgeeks.org/recursive-functions/
(accessed Sep. 11, 2023).
● [5] GeeksforGeeks, “Sorting Algorithms - GeeksforGeeks,” GeeksforGeeks, 2017.
https://www.geeksforgeeks.org/sorting-algorithms/
(accessed Sep. 11, 2023).
2. Untuk memudahkan seorang pemrograman dan memudahkan mendesain sebuah program,
baik sederhana maupun kompleks, maka diperlukan gambaran besar tentang bagaimana
program itu harus berjalan. Disinilah Flowchart dan Pseudocode mengambil peran.
Masing masing memiliki tujuan sebagai berikut :
a. Flowchart[1]
Flowchart merupakan sebuah diagram yang membantu visualisasi sebuah proses
dalam pemrograman. Fungsinya antara lain :
- Sebagai representasi sederhana mengenai logika system
- Berperan sebagai acuan untuk perancangan desain program
- Memudahkan analisis dan proses debugging
- Membantu mendesain logika yang tepat dalam program
b. Pseudocode[2]
Pseudocode adalah kode semu yang digunakan untuk mendapatkan gambaran
mengenai logika dalam membuat kode program dengan bahasa yang sangat
sederhana tanpa terikat syntax bahasa pemrograman manapun, namun tetap
mengikuti aturan dasar pemrograman. Pseudocode bertujuan memudahkan
konstruksi struktural sederhana dari program yang ingin dikerjakan seperti
penggunaan perulangan, fungsi, conditional-statement, dan lain sebagainya.
Referensi :
● [1] N. Aggarwal, “An introduction to Flowcharts - GeeksforGeeks,”
GeeksforGeeks, Dec. 08, 2017. https://www.geeksforgeeks.org/an-introduction-to-
flowcharts/
(accessed Sep. 11, 2023).
● [2] “What is PseudoCode: A Complete Tutorial,” GeeksforGeeks, Aug. 29, 2022.
https://www.geeksforgeeks.org/what-is-pseudocode-a-complete-tutorial/
3. Berikut flowchart yang saya buat dari potongan kode yang diberikan
4. Berikut pseudocode yang saya buat berdasarkan flowchart yang diberikan
1: int cnt=0, total=0, angka
2: while cnt<10 //loop hingga 10 kali
3: read angka //mengambil input
4: if angka%2==0 //jika input habis dibagi 2 maka total dan cnt bertambah
5: total++
6: cnt++
7: else cnt++ //jika input tidak habis dibagi 2 maka hanya cnt yang bertambah
8: endwhile
9: print total //setelah 10 loop, print total
10:
Berdasarkan analisis saya, program ini bertujuan untuk menghitung banyak bilangan yang
habis dibagi 2 dari 10 nilai yang diinput oleh user.