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
STRUKTUR PERCABANGAN............................................................................................7
ALGORITMA MATRIKS.....................................................................................................20
ALGORITMA REKURSIF....................................................................................................22
KESIMPULAN.......................................................................................................................26
SARAN...................................................................................................................................26
DAFTAR PUSTAKA.........................................................................................................27
iii
BAB I
PENDAHULUAN
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
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
6
PERTEMUAN KE 3
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
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
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].
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
16
scores[2] = 100;
Contoh Program dalam bahasa pascal :
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
21
PERTEMUAN KE 8
ALGORITMA 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}')
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.
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