Anda di halaman 1dari 31

MAKALAH

ALGORITMA DAN PEMROGRAMAN

DISUSUN OLEH KELOMPOK 6 :

1. M. AIDIL HUTAMAM AJI (162022072)


2. THOMAS MAHENDRA (162022054)
3. MUHAMMAD CAESAR (162022059)
4. MUHAMMAD YUSUP (162022069)

PROGRAM STUDI TEKNOLOGI

INFORMASI FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH

PALEMBANG

2022
KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha kuasa karena telah memberikan
kesempatan pada kami untuk menyelesaikan makalah ini. Atas rahmat dan hidayah-Nya
lah kami dapat menyelesaikan makalah ini tepat waktu. Makalah ini disusun guna
memenuhi tugas akhir, pada mata kuliah Agoritma dan Pemrograman. Selain itu, kami
juga berharap agar makalah ini dapat menambah Wawasan bagi Pembaca. Tugas yang
telah diberikan ini dapat menambah pengetahuan dan wawasan terkait bidang yang
ditekuni. Kami juga mengucapkan terima kasih pada semua pihak yang telah membantu
proses penyusunan makalah ini. Kami menyadari makalah ini masih jauh dari kata
sempurna. Oleh karena itu, kritik dan saran yang membangun akan kami terima demi
kesempurnaan makalah ini.

ii
DAFTAR ISI
KATA PENGANTAR.......................................................................................................ii

DAFAR ISI.........................................................................................................................iii

BAB I PENDAHULUAN..................................................................................................1

LATAR BELAKANG............................................................................................................1
RUMUSAN MASALAH........................................................................................................1
TUJUAN PENULIS...............................................................................................................2
MANFAAT.............................................................................................................................2

BAB II PEMBAHASAN....................................................................................................3

ALGORITMA DAN PEMROGRAMAN..............................................................................3

STRUKTUR DASAR ALGORITMA....................................................................................6

STRUKTUR PERCABANGAN............................................................................................7

FUNGSI PENGGUNAAN DARI FLOWCHART DIAGRAM............................................10

PROSEDUR DAN FUNGTION PADA ALGORITMA.......................................................13

ARRAY 1 DIMENSI, 2 DIMENSI, DAN 3 DIMENSI.........................................................16

ALGORITMA MATRIKS.....................................................................................................20

ALGORITMA REKURSIF....................................................................................................22

SORTING (PENGURUTAN DATA)....................................................................................24

BAB III PENUTUP............................................................................................................26

KESIMPULAN.......................................................................................................................26

SARAN...................................................................................................................................26

DAFTAR PUSTAKA.........................................................................................................27

iii
BAB I
PENDAHULUAN

1.1 Latar Belakang

Beberapa pengertian yang berhubungan dengan judul laporan, karena tanpa


pengertian yang jelas akan menyebabkan informasi yang disajikan tidak sesuai
dengan hasil praktikum yang dipaparkan.
Pesatnya teknologi, terutama teknologi komputer sudah tak bisa dipungkiri lagi,
bagi yang mengikuti perkembangannya, ia tidak akan di pandang scbclah mata.
Sebaliknya, bagi yang tidak mengikuti perkembangannya, bersiaplah untuk mundur
secara suka rela dari panggung kompotisi. Ibarat wabah, teknologi komputer sudah
menyusupi hampir scmua bidang kehidupan manusia. Dari pemerintah pusat
sampai tingkat pemerintah desa, perusahaan-perusahaan, supermarket, minimarket,
peryuruantingxi, bahkan SD hamperscmuanyamengenal computer.
Saat ini, yang mempunyai lingkungan yang scmakm luas dan banyak diminati, juga
dapat digunakan untuk menghasilkan uang adalah dunia pemrograman computer,
dalam dunia pemrograman computer, dikcnalalgoritma dan banyak bahasa
pemrograman, seperti C, C--, Pascal, Basic, Java, dan lainlain.

Rumusan Masalah
Algoritma dan Pemrograman
Struktur Dasar Algoritma
truktur Percabangan
Fungsi dan Penggunaan dari Flowchart dan Diagram
Procedur dan Function pada Algoritma
Array 1 Dimensi, Array 2 Dimensi, Array 3 Dimensi
Algoritma Matriks
Algoritma Rekursif
Sorting (Pengurutan Data)

1
Tujuan Penulisan
Untuk memenuhi tugas yang diberikan Dosen, dan sebagai bentuk tanggungjawab
Sebagai Mahasiswa.
Mengulas isi materi.
Melatih diri berpikir kritis dalam mencari informasi yang diberikan.
Membandingkan beberapa materi yang saling memiliki kesamaan maupuntidak.

Manfaat

Manfaat yang diharapkan dari tugas ini adalah :

Menambah Ilmu pengetahuan, wawasan dan pengetahuan tentang mata kuliah


praktikum algoritma dan pemrograman.

2
BAB II
PEMBAHASAN
PERTEMUAN KE 1
ALGORITMA DAN PEMROGRAMAN

Pengertian Algoritma
Sebelum membuat program Anda harus mengetahui pengertian dari algoritma
pemrograman. Pengertian algoritma adalah suatu urutan atau alur yang dipakai dalam
perhitungan atau pemecahan masalah secara sistematis, dan dalam aktivitas
pemrograman algoritmaseringkali dianggap sebagai logika dalam penentuan program
yang akan dibuat. Pendapat lain mengatakan definisi algoritma adalah proses atau
serangkaian aturan yang harus diikuti dalam perhitungan atau operasi pemecahan
masalah lainnya, terutama oleh komputer. Dengan kata lain, semua susunan logis yang
diurutkan berdasarkan sistematika tertentu dan digunakan untuk memecahkan suatu
masalah dapat disebut dengan algoritma. Setelah mengetahui pengertian dari algoritma,
Anda juga harus mengetahui apa fungsi sebenarnya dari algoritma ini. Pada dasarnya
fungsi utama dari algoritma adalah untuk memecahkan suatu masalah. Suatu algoritma
pemrograman membawa keuntungan serta fungsi penting dalam aktivitas pembuatan
program.
Berikut ini merupakan fungsi algoritma yang perlu Anda ketahui :
• Pemrograman dapat mengatasi permasalahan rumit dalam program yang
kemungkinan juga melibatkan perhitungan tingkat tinggi. Karena menggunakan
perhitungan seringkali program yang dibuat tidak berjalan semestinya karena
adanya kesalahan, hal ini dapat diminimalisir dengan menerapkan algoritma
dalam pemrograman.
• Algoritma pemrograman juga mampu menyederhanakan program, dari program
yang besar menjadi program yang lebih sederhana, sehingga penggunaannya
lebih efektif dan efisien. Selain itu, terdapat dua pendekatan yang dimiliki
algoritma pemrograman yaitu pendekatan topdown serta pendekatan
divideandconquer

3
• Fungsi dari algoritma ini bukan merupakan sekali pakai, artinya dapat digunakan
secara berulang-ulang ini memberikan Anda keuntungan dalam meminimalisir
penulisan program yang berulang-ulang. Jadi, Anda tidak perlu repot-repot
menuliskan lagi program yang sama di lain waktu, yang hal ini memudahkan
Anda dalam pembuatan program.
• Dalam pembuatan program pastinya akan menjumpai beberapa kesalahan, hal ini
sangatlah wajar. Dengan menerapkan fungsi algoritma maka pencarian
kesalahan dapat lebih mudah serta dapat diperbaiki dengan cepat.
• Adanya alur yang jelas yang dimiliki oleh algoritma pemrograman, Anda dapat
dengan mudah mencari kesalahan jika terjadi kesalahan. Karena program sudah
tertata atau tersusun dengan rapi, sehingga memudahkan Anda dalam pencarian
dan menemukan kesalahan yang terjadi pada program di dalam perangkat
komputer yang Anda miliki.
Pengaturan Tampilan
Pengaturan tampilan yang paling sederhana dan paling sering digunakan pada
Bahasa pemrograman Phyton untuk diterapkan pada tampilan Shell adalah Perintah-
perintah berikut ini:
1. print(“ ”) digunakan untuk mencetak baris baru saja
2. print(argument_atau_var, end=” ”)
digunakan untuk mencetak argument berupa string maupun variable
namun tidak akan mencetak baris baru karena terdapat parameter
end=””.
print(argument_atau_var,”\”) digunakan untuk mencetak argument berupa string
maupun variable yang disertai baris baru dengan parameter “\”. Ketika baris perintah
ini dieksekusi, maka akan dicetak dua kali baris baru dimana yang pertama dari
perintah print itu sendiri dan yang kedua dari parameter “\”.
4. print(“\n”)
digunakan untuk mencetak dua kali baris baru, yaitu dari perintah print dan
dari parameter “\n”.
5. print(argument_atau_var,”\t”)

4
digunakan untuk mencetak argument berupa string maupun variable yang
disertai dengan tab kekanan sebanyak satu kali yang didapat dari parameter
“t”.

5
PERTEMUAN KE 2
STRUKTUR DASAR ALGORITMA

Sebuah algoritma merupakan deskripsi langkah-langkah pelaksanaan suatu


proses. Setiap langkah di dalam algoritma dinyatakan dalam sebuah pernyataan atau
istilah lainnya instruksi. Secara umum, struktur dasar algoritma terdiri dari sekuensial
(sequential), test kondisi atau percabangan (branching), dan perulangan (looping).
1. Algoritma Sekuensial
Algoritma sekuensial adalah langkah-langkah yang dilakukan secara berurutan sesuai
dengan urutan penulisannya. Struktur ini merupakan struktur yang paling sering
dilakukan.
Contoh:
Algoritma memiliki empat baris aksi, yaitu t1, t2, t3, dan t4, maka semua aksi akan
dilakukan secara berurutan mulai dari aksi t1 sampai t4.
2. Algoritma Percabangan (Branching)
Dalam kehidupan sehari-hari ada kalanya suatu kegiatan akan dilakukan dan tidak
dilakukan tergantung situasi tertentu. Begitu pun dengan algoritma, ada kalanya satu
atau beberapa aksi akan dikerjakan dan tidak dikerjakan tergantung situasi tertentu.
Struktur algoritma percabangan ini digunakan untuk mengerjakan satu aksi dari
beberapa pilihan yang diberikan.
3. Algoritma Perulangan (Looping)
Sama halnya dengan manusia, algoritma juga mengenal kegiatan pengulangan, yakni
melakukan satu atau beberapa kegiatan secara berulang-ulang. Namun, berbeda
dengan manusia, komputer tidak mengenal istilah lelah atau bosan dalam melakukan
kegiatan yang sama secara berulang.

6
PERTEMUAN KE 3
STRUKTUR PERCABANGAN

STRUKTUR PERCABANGAN (SELECTION)


• Program yang lebih kompleks melibatkan banyak kemungkinan dalam proses
penyelesaian masalahnya
• Kemungkinan solusi harus dianalisis dengan mempertimbangkan kondisi
(persyaratan) dan aksi apa yang harus dilakukan jika kondisi tersebut dipenuhi
• Sebuah program dapat memiliki kemampuan untuk pengambilan keputusan dengan
menggunakan struktur algoritma percabangan pada program tersebut

STRUKTUR PERCABANGAN (SELECTION)


• Struktur pemilihan disebut juga sebagai struktur percabangan (branch).
• Struktur percabangan: instruksi dikerjakan jika memenuhi kondisi persyaratan.

STRUKTUR PERCABANGAN (SELECTION)

• Instruksi dalam struktur percabangan mengandung pengujian kondisi alternatif-


alternatif keputusan.
• Pengujian tersebut dilakukan untuk memilih cabang alternatif yang tersedia.
• Instruksi yang dijalankan hanya instruksi dari cabang alternatif/kondisi atau baris
program yang memenuhi syarat.

ANALOGI STRUKTUR PERCABANGAN

• Bayangkan anda berada di sebuah perempatan jalan dan terdapat traffic light.
• Saat kondisi lampu yang ditemui berwarna merah, maka kendaraan Anda harus
berhenti
• Saat kondisi lampu yang menyala berwarna hijau, maka kendaraan anda masih bisa
terus melaju.
• Bentuk instruksi seperti ini dinamakan struktur pemilihan atau percabangan

7
STRUKTUR PERCABANGAN SEDERHANA
1. Struktur percabangan if-then
2. Struktur percabangan if-then-else
Struktur percabangan tunggal atau one- way-case atau struktur percabangan if-
then 1.
Contoh:
• Langkah 1. Mulai program
• Langkah 2. Memasukkan nilai akhir
• Langkah 3. Jika nilai akhir < 50, maka jalankan langkah 4
• Langkah 4. Menuliskan keterangan “GAGAL”
• Langkah 5. Selesai

Struktur percabangan two-way-case atau struktur percabangan if-then-else 2.


Contoh:
• Notasi penulisannya: if then pernyataan aksi 1 else pernyataan aksi 2
• “else” artinya “jika tidak” (menyatakan negasi dari kondisi)
• Memilih/mejalankan satu dari dua buah pernyataan aksi sesuai dengan nilai kondisi
yang dipenuhi

8
• Artinya: jika kondisi terpenuhi/ bernilai benar maka pernyataan aksi 1 akan
dikerjakan, tetapi jika tidak, maka pernyataan aksi 2 yang akan dikerjakan

9
PERTEMUAN KE 4
FUNGSI DAN PENGUNAAN DARI FLOWCHART DIAGRAM

Pengertian dari Flowchart


Flowchart adalah diagram alur yang menggambarkan langkah, urutan, dan
keputusan untuk melakukan sebuah proses dalam suatu program. Langkah tersebut
digambarkan dengan simbol-simbol tertentu dan saling dihubungkan menggunakan
garis atau tanda panah. Flowchart digunakan untuk mendokumentasikan,
merencanakan, dan mengkomunikasikan proses yang cukup rumit menjadi sebuah
diagram. Sehingga lebih mudah dibaca dan dipahami oleh orang awam sekalipun.
Fungsi flowchart tentu adalah membantu mengelola alur kerja dari sebuah
proses. Dengan bantuan simbol-simbol flowchart, kamu dapat menjabarkan setiap
proses yang terjadi dalam sebuah program. Hal ini akan lebih memudahkan
pengembang ketika menjelaskan terkait progres pengembangan software–nya.
Selain membantu mengelola alur kerja atau workflow, flowchart juga membantu
mendokumentasikan proses menjadi lebih efektif. Kamu tidak perlu lagi menjabarkan
panjang lebar dan mengaitkan satu persatu prosesnya, hanya dengan bantuan simbol
diagram dan garis kamu sudah bisa membuat dokumentasi proses secara mudah.
Flowchart dapat membantu sebuah alur program dipahami oleh semua orang, tanpa
mempedulikan bahasa pemrograman yang dipakai dan hal teknis lainnya. Dari
sini, flowchart dapat menjadi jembatan antara user dengan programmer.

Jenis-Jenis Flowchart
Diagram flowchart memiliki lima jenis yang masing-masing jenisnya memiliki
karakteristik penggunaan. Diantaranya adalah sebagai berikut.

10
11
Itulah kurang lebih 12 simbol flowchart yang sering digunakan ketika proses pembuatan
diagram. Selain simbol tersebut, masih banyak lagi simbol lain yang bisa
kamu explore sendiri nantinya

12
PERTEMUAN KE 5
PROCEDUR DAN FUNCTION PADA ALGORITMA

PROCEDURE (PROSEDUR)
Sebuah program yang besar dapat dipecah-pecah menjadi bagian-bagian
program yang lebihkecil. Penggalan program ini disebut modul atau subprogram atau
rutin atau prosedur atau fungsi. Subprogram kadangkala cukup independen dari
program utama sehingga programnya dapat dirancang tanpa mempertimbangkan
konteks tempat ia digunakan. Subprogram ini dapat dieksekusi berulang-ulang sesuai
keperluan. Teknik pemrograman ini dinamakan teknik pemrograman modular atau
teknik pemrograman prosedural.
Modularisasi program memberikan dua keuntungan yaitu :
- Untuk menghindari penulisan teks program yang sama secara berulang.
Dapat mengurangipanjangnya program.
- Kemudahan menulis dan menemukan kesalahan (debug) program.
- Menjadikan program lebih flexible.

Mendefinisikan prosedur

Pada dasarnya struktur prosedur sama dengan struktur algoritma yang sudah
kita kenal, yaituada judul(header), deklarasi (keterangan) dan deskripsi (uraian).

Procedure NAMA_PROSEDUR
Procedure CETAK_HALO
{ keterangan spesifikasi singkat
tentang prosedur} { mencetak string 'Halo' ke
Contoh Algoritma piranti keluaran}
Deklarasi
Deklarasi
{ semua nama yang dipakai
dalam prosedur dan hanya { tidak ada nama pengenal}
berlaku lokal dalam prosedur}

1. Pemanggilan prosedur
Prosedur bukan program yang berdiri sendiri, ia tidak dapat dieksekusi secara

13
langsung. Isi prosedur hanya dapat diakses dengan cara memanggil namanya dari
program pemanggilanya (program utama atau modul lain). Bentuk umum cara
pemanggilan prosedur adalah sbb :
NAMA_PROSEDUR;
Ketika nama prosedur dipanggil maka kendali program berpindah secara
otomatis ke prosedur yang dipanggil tersebut. Setelah isi prosedur selesai dieksekusi,
kendali program kembali ke instruksi sesudah pemanggil prosedur
2. Nama global dan nama lokal
Nama-nama indentifier yang dideklarasikan di dalam bagian deklarasi
prosedur, hanya dikenal di dalam badan prosedur itu saja. Nama-nama indentifier
tersebut dikatakan bersifat "lokal" dan hanya dapat dikenali didalam prosedur itu
sendiri, sedangkan nama-nama yang dideklarasikan di program utama bersifat
"global" dan dapat dikenali didalam prosedur.
3. Parameter
Kebanyakan program memerlukan pertukaran informasi antara
prosedur/fungsi dan titik dimana ia dipanggil. Penggunaan parameter menawarkan
mekanisme pertukaran informasi tersebut. Tiap item data ditransfer antara parameter
aktual dan parameter formal yang bersesuaian. Parameter aktual adalah parameter
yang disertakan pada waktu pemanggilan prosedur, sedangkan parameter formal
adalah parameter yang dideklarasikan didalam header prosedur itu sendiri. Ketika
prosedur itu dipanggil, parameter aktual menggantikan parameter formal. Tiap
parameter aktual berpasangan dengan parameter formal yang bersesuaian.
contoh :
procedure SATU(input x,y : integer)
{ cth prosedure dgn parameter formal berjenis parameter masukan,

14
K.Awal : nilai x dan nilai y sudah terdefenisi
K.Akhir : nilai x dan y masing-masing dinaikkan satu, lalu dicetak ke piranti
keluaran }
DEKLARASI:
{ TIDAK ADA}DESKRIPSI:x x
+ 1y
y+1 write(x)write(y)
- Masukan
- Keluaran
- Masukan / keluaran
- Prosedur tanpa parameter
- Prosedur dengan parameter
- Parameter masukan dan parameter keluaran

FUNCTION (FUNGSI)
Fungsi merupakan potongan program yang tidak dapat berdiri sendiri, karena
fungsi memberikan hasil berupa suatu nilai dan memerlukan suatu tempat untuk
menampung nilai tersebut. Ada fungsi standart (fungsi terpasang) dan ada fungsi
buatan (defined function).

15
PERTEMUAN KE 6
ARRAY 1 DIMENSI, 2 DIMENSI, DAN 3 DIMENSI

Pengertian Array
Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe
data sama, dimana masing-masing elemen variabel mempunyai nilai indeks.Indeks
array selalu bertipe integer yang dimulai dari 0.Setiap elemen array tersebut dapat
diakses dengan cara A[indeks].

Macam Macam Array

A. Array 1 Dimensi
Array 1 dimensi adalah kumpulan elemen-elemen yang identik, yang tersusun dalam
satu baris. Elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen
tersebut bisa berbeda.
Bentuk Umum:
Type <NamaArray> = array[indexArray] of TipeData

Terdapat 3 langkah untuk membuat array:


1. Mendeklarasikan variabel
array Contoh :
int [ ] angka;
“ Variabel angka kita deklarasikan sebagai variabel array dimana setiap elemennya
akan menyimpan data bertipe int ”.
2. Memcreate array beserta
ukurannya. Contoh :
angka = new int[5];
int[] angka = new int[5];
“Berarti kita memesan 5 elemen untuk variabel angka dan array adalah sebuah
object, maka
create array dengan operator new.”
3. Memberikan sebuah nilai pada setiap element array.
Contoh :
int[ ] angka = {5, 3, 23, 99, 2};
int scores = new int[3];
scores[0] = 75;
scores[1] = 80;

16
scores[2] = 100;
Contoh Program dalam bahasa pascal :

Maka hasil Eksekusi Akan Tampak Sepert ini :

B. Array 2 Dimensi
Array 2 Dimensi Merupakan sebuah variabel yang menyimpan sekumpulan data
yang memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau
subskrip yaitu indeks baris dan indeks kolom.
Bentuk umum pendeklarasian:
nama_array[jumlah_eleman_baris][jumah_eleme_kolom];
Contoh Dalam Program Pascal :

17
Maka hasil Eksekusi Akan Tampak Sepert ini :

C. Array 3 Dimensi
Array tiga dimensi dapat digambarkan sebagai suatu benda ruang. Deklarasi pada
array tiga dimensi tidak berbeda pada array satu dimensi dan dua dimensi yang telah
dijelaskan sebelumnya, kecuali pada indeks array.
Contoh: type ruang = array [1..8,1..5,1..3] of integer;
menunjukkan bahwa ruang adalah nama-pengenal/variabel yang berupa array yang
komponennya bertipe integer dan terdiri atas 8 baris, mempunyai 5 kolom dan 3
halaman.
Contoh Dalam Program Pascal :

18
Maka hasil Eksekusi Akan Tampak Sepert ini :

19
PERTEMUAN KE 7
ALGORITMA MATRIKS

Matriks dapat dikatakan sebagai list dua dimensi dimana suatu list berisi list
lagi. Untuk merepresentasikan matriks, kita harus menyimpan list dengan panjang yang
sama dalam suatu list. Bila list berbeda - beda panjangnya, maka list tersebut disebut
sebagai sparse matrix. Sebagai contoh berikut adalah contoh representasi matriks di
Python:
Mengakses Elemen Matriks
Setelah mendefinisikan suatu matriks, tentu kita ingin mengakses setiap elemen
pada matriks tersebut. Dengan memanfaatkan nested loop for, kita dapat mengakses
suatu elemen pada koordinat tertentu.
Sebagai contoh mari kita lihat source code yang menampilkan isi matriks berikut:
for x in range(0, len(matrix)):
for y in range(0, len(matrix[0])):
print (matrix[x][y], end=' '),
print
Bila kita eksekusi di konsol maka akan muncul output berikut:
$ python3 simple-matrix.py
50
26
Melakukan Penjumlahan Matriks
Penjumlahan matriks dilakukan dengan menjumlahkan setiap elemen. Hasil
penjumlahan tersebut akan menjadi elemen baru. Masing - masing matriks kita akses
setiap elemennya pada koordinat yang sama kemudian kita jumlahkan untuk
mendapatkan elemen baru
for x in range(0, len(mat1)):
for y in range(0, len(mat1[0])):
print (mat1[x][y] + mat2[x][y], end=' '),
print
Jika source code kita jalankan, maka akan muncul output seperti berikut:
$ python3 add-matrix.py

20
60
68

Melakukan Pengurangan Matriks


Tidak berbeda jauh dengan penjumlahan matriks, pada pengurangan matriks kita
hanya mengganti operatornya saja dengan tanda kurang (-). Maka matriks baru akan
terbentuk sebagai hasil dari pengurangan setiap kedua elemen matriks. Sebagai contoh
berikut adalah source code untuk melakukan pengurangan matriks:
for x in range(0, len(mat1)):
for y in range(0, len(mat1[0])):
print (mat1[x][y] - mat2[x][y], end=' '),
print
Jika source code kita jalankan, maka akan muncul output seperti berikut:
$ python3 substract-matrix.py
40
-2 4
Melakukan Perkalian Matriks
Perkalian matriks merupakan salah satu operasi dasar yang tricky. Karena di
dalamnya bukan hanya terdapat operasi perkalian, melainkan juga penjumlahan.
Perkalian suatu matriks memang tidak sama dengan bilangan biasa, tidak juga langsung
mengalikan setiap elemen. Perkalian matriks dilakukan dengan menjumlahkan hasil
perkalian suatu baris matriks pertama ke kolom matriks kedua. Setiap baris di matriks
pertama akan dikalikan ke setiap kolom di matriks kedua.
for x in range(0, len(mat3)):
for y in range(0, len(mat3[0])):
print (mat3[x][y], end=' ')
print ()
Berikut adalah output dari source code diatas:
$ python3 multiply-matrix.py
50
26 12

21
PERTEMUAN KE 8
ALGORITMA REKURSIF

Pengertian Fungsi Rekursif


Di dalam dunia pemrograman, fungsi rekursif merupakan sebuah metode
perulangan yang bersifat non-iterasi.
Sebenarnya fungsi rekursif hanyalah sebuah fungsi biasa seperti fungsi def pada
umumnya. Dia bisa dipanggil, bisa menerima parameter, bisa mengembalikan nilai, dan
lain sebagainya. Hanya saja, sesuai namanya, fungsi rekursif itu bersifat rekursi.
Karena ia memanggil dirinya sendiri sehingga menimbulkan efek perulangan.
Perulangan ini bisa berhenti ketika kondisi tertentu tercapai, atau bisa juga bersifat tak
terbatas, atau mungkin bahkan bisa menimbulkan error karena pemanggilan fungsi yang
tak ada habisnya.
Membuat Fungsi Rekursif
Untuk membuat fungsi rekursif, caranya sama saja dengan fungsi biasa.
Yang membuat sebuah fungsi menjadi rekursif adalah karena ia memanggil dirinya
sendiri. Itu saja.
Jadi contoh paling sederhanya bisa terlihat seperti berikut:
def halo_dunia():
print('Halo dunia!')
# panggil dirinya sendiri
halo_dunia() # <-- rekursifitas

Menampilkan Angka 1 Sampai 10


Untuk lebih memahami bagaimana cara fungsi rekursif bekerja, mari kita buat contoh
sederhana yaitu dengan menampilkan angka 1 sampai 10.
Kalau kita membuatnya dengan perulangan for, kode programnya akan terlihat sesimpel
ini:
for i in range(10):
print(i)
pertanyaannya adalah: bagaimana cara mengubah perulangan di atas menjadi
perulangan rekursif?

22
Ikuti langkah-langkah berikut:
Bikin dasarnya dulu untuk ancang-ancang dan mempermudah pemahaman, kita bikin
dulu seperti ini:
def tampilkanAngka (i):
print(f'Perulangan ke {i}')

# panggil beberapa kali


tampilkanAngka(1)
tampilkanAngka(2)
tampilkanAngka(3)
Output:
Perulangan ke 1
Perulangan ke 2
Perulangan ke 3

23
PERTEMUAN KE 9
SORTING (PENGURUTAN DATA)

Ada beberapa cara yang digunakan untuk menggurutkan data, beberapa teknik
terkenal untuk menggunakan data, yaitu Bubble Sort, Insertion Sort, Selection Sort,
Quick Sort, Merge Sort, Heap Sort, dan Binary Sort. Tiga yang pertama, yaitu Bubble
Sort, Insertion Sort, dan Selection Sort, dikenal sebagai cara pengurutan dasar.

Secara umum, masing-masing teknik pengurutan data memiliki keunggulan dan


kelemahan tersendiri. Sangat sulit untuk mengatakan teknik mana yang paling baik.
Namun, tentu ada beberapa pertimbangan yang dapat dipakai untuk memilih teknik
yang akan dipakai. Jumlah data, kompleksitas waktu, dan lama waktu untuk membuat
program terkadang menjadi acuan untuk memilih teknik pengurutan data. Sebagai
contoh, untuk jumlah data yang sedikit (misalnya ratusan), Bubble Sort dapat
digunakan. Namun, untuk data jutaan, penggunaan teknik tersebut tidak tepat karena
memakan waktu lama untuk mengurutkan data.

1. Bubble Sort
Algoritma bubble sort cukup populer dan sederhana. Proses pada bubble sort
dilakukan dengan pertukaran data di sebelahnya secara terus menerus hingga dalam
suatu iterasi tertentu tidak ada lagi perubahan atau pertukaran. Algoritma bubble sort
termasuk ke dalam kategori algoritma comparison sort, karena menggunakan
perbandingan pada operasi antar elemen nya.
Analogi algoritma bubble sort :
Bandingkan nilai pada data ke satu dengan data ke dua
Apabila nilai data ke satu lebih besar dari data ke dua maka tukar posisinya
Kemudian data yang lebih besar tersebut dibandingkan lagi dengan data ketiga
Apabila data ke tiga lebih kecil dari data ke dua maka tukar posisinya
Dan begitu seterusnya hingga semua data yang ada menjadi terurut
2. Selection Sort
Algoritma selection sort merupakan pengurutan dengan konsep memilih elemen
dengan nilai paling rendah dan menukar elemen tersebut dengan elemen ke i. Nilai

24
dari i dimulai dari 1 ke n, yang dimana n merupakan jumlah total elemen dikurangi
satu.
Analogi algoritma selection sort :
Memulai pengecekan data dari data ke 1 hingga data ke n.
Menentukan bilangan dengan index terkecil dari data pada bilangan tersebut.
Menukar bilangan index terkecil dengan bilangan pertama
Begitu seterusnya hingga data berhasil diurutkan semuanya.
3. Insertion Sort
Algoritma insertion sort merupakan suatu metode pengurutan data dengan
melakukan penempatan setiap elemen data pada posisinya dengan membandingkan
dengan data-data yang telah ada. Prinsip dari insertion sort adalah dengan membagi
data yang akan diurutkan menjadi dua kelompok, satu kelompok yang belum
diurutkan dan yang satunya lagi sudah diurutkan, Elemen yang pertama diambil dari
kelompok list yang belum diurutkan dan kemudian ditempatkan sesuai posisinya
pada bagian lain yang belum diurutkan.
Analogi Algoritma insertion sort membandingkan data kedua dengan data kesatu,
apabila data ke dua lebih kecil maka tukar posisinya. Data ketiga dibandingkan
dengan data kesatu dan kedua, apabila data ketiga lebih kecil tukar lagi posisinya.
Data keempat dibandingkan dengan data ketiga hingga kesatu, apabila data keempat
lebih kecil dari ketiga maka letakkan data keempat ke posisi paling depan, begitu
seterusnya hingga tidak ada lagi data yang dapat dipindahkan

25
BAB III
PENUTUP

A. KESIMPULAN
Algoritma adalah urutan langkah logis untuk penyelesaian masalah yang
disusun secara sistematis. Kata logis merupakan kata kunci dari lagoritma. Langkah
– langkah dalam algoritma harus logis dan dapat ditentukan bernilai salah atau
benar. Melaksankan algoritma berarti mengerjakan langkah – langkah di dalam
algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang
diberikan kepadanya.
B. SARAN
Algoritma adalah jantung ilmu komputer atau informatika. Setiap orang
mempunyai pola pikir yang berbeda sehingga setiap orang akan membuat algoritma
yang berbeda pula. Algoritma dikatakan benar apabila dapat menyelesaikan suatu
masalah. Dalam penyusunan suatu algoritma dipertimbangkan juga masalah
efisiensi. Dan tanpa kita sadari, dalam kehidupan sehari –hari kita sering
menerapkan algoritma seperti: resep makanan, memcuci piring, menyapu halaman,
menggunakan telepon, mandi dan lain – lain.

26
DAFTAR PUSTAKA
Algoritma dan Pemrograman
Redaksi Jagoan Hosting. 2020. Algoritma Pemrograman.
https://www.jagoanhosting.com/blog/algoritma-pemrograman/ (Diakses pada 23
Desember 2022)
Struktur Dasar Algoritma
Mustofa, Zaenal. 2021. Struktur Algoritma.
http://teknik-informatika-s1.stekom.ac.id/informasi/baca/Algoritma-Cara-Kerja
Struktur-dan-Cara-Penyajiannya/e22cd461c068aea5dff1c3462214880d76b3e39c
(Diakses pada 23 Desember 2022)
Struktur Percabangan
Utami, Ika Qutsiati. 2021. Struktur Percabangan.
https://ftmm.unair.ac.id/wp
content/uploads/filr/4747/6.%20Struktur%20Percabangan.pdf (Diakses pada 23
Desember 2022)
Fungsi dan Penggunaan dari Flowchart dan Simbol
Anendya, Aorinka. 2022. Apa itu Flowchart? Pengertian, fungsi, dan jenis-jenisnya.
https://www.dewaweb.com/blog/pengertian-flowchart/ (Diakses pada 23 Desember 2022)
Procedur dan Function
Seniman dan Muhammad Fathoni. 2009. Procedure dan Function pada
Algoritma https://prpm.trigunadharma.ac.id/public/fileJurnal/p29B4-OK-
Jurnal17-Sani-MF Algo1-3-.pdf (Diakses pada 23 Desember 2022)
Array 1 dimensi, Array 2 dimensi, dan Array 3 dimensi
Prasetio, Agus. 2018. Array 1 dimensi, Array 2 dimensi, Array 3 dimensi.
https://filantio.wordpress.com/2018/04/18/20/ (Diakses pada 23 Desember 2022)
Algoritma Matriks
Fajar, Ridwan. 2016. Melakukan Operasi Matriks di Python.
https://kopiding.in/membuat-matriks-pada-python/ (Diakses pada 23 Desember 2022)
Algoritma Rekursif
Huda, Nurul. 2021. Python Dasar: Fungsi Rekursif (4 Contoh Program)
http://teknik-informatika-s1.stekom.ac.id/informasi/baca/Algoritma-Cara-Kerjan
Struktur-dan-Cara-Penyajiannya/e22cd461c068aea5dff1c3462214880d76b3e39c

27
(Diakses pada 23 Desember 2002)
Sorting (Penggurutan Data)
Maulid, Reyvan. 2021. Mengenal Algoritma Sorting Pada Algoritma Python.
https://www.dqlab.id/mengenal-algoritma-sorting-pada-algoritma-python (Diakses
pada 23 Desember 2022)

28

Anda mungkin juga menyukai