Modul
Modul
Di susun Oleh :
UNIT PENGEMBANGAN AKADEMIK
KATA PENGANTAR
Tim Penyusun
Unit Pengembangan Akademik
Program Studi Sistem Informasi
ii
Modul Praktek Logika dan Algoritma
DAFTAR ISI
iii
Minggu Ke- 1
Pengertian Dasar Logika dan Algoritma
Deskripsi
Membahas tentang logika dan algoritma, program dan bahasa pemrograman, tahapan
analisa algoritma dan sifat-sifat algoritma
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan algoritma pada kegiatan sehari-hari
2. Menjelaskan program dan bahasa pemrograman
3. Menjelaskan tahapan analisa algoritma
4. Menjelaskan sifat-sifat algoritma
1
Modul Praktek Logika dan Algoritma
Menentukan model algoritma yang digunakan untuk membuat barisan secara urut
agar mendapatkan solusi masalah. Model algortima tersebut dapat dinyatakan dengan
pseudocode atau flowchart.
a. Pseudocode (bahasa semu)
Merupakan bentuk informal untuk mendeskripsikan algoritma yang mengikuti
struktur bahasa pemrograman tertentu.
b. Flowchart (Diagram Alir)
Penggambaran algoritma secara diagram yang menggambarkan alur susunan
logika dari suatu masalah.
3. Bagaimana validitas suatu algoritma.
Validitas suatu algoritma dengan didapatkan solusi sebagai penyelesaian dari
masalah
4. Bagaimana Menganalisa suatu Algoritma.
Analisa algoritma dengan melihat waktu tempuh dan jumlah memori yang
digunakan
5. Bagaimana Menguji Program dari suatu Algoritma.
Algoritma tersebut diimplementasikan kedalam bahasa pemrograman misal:
Python. Proses uji algoritma tersebut dengan dua tahap yaitu:
a. Fase Debugging yaitu fase dari proses program eksekusi yang akan
melakukan koreksi terhadap kesalahan.
b. Fase Profilling yaitu yaitu fase yang akan bekerja jika program tersebut
sudah benar (telah melewati fase debugging).
Sifat-sifat Algoritma
1. Banyaknya Langkah Instruksi Harus Berhingga,
2. Langkah atau Instruksi harus Jelas,
3. Proses harus Jelas dan mempunyai batasan,
4. Input dan Output harus mempunyai Batasan,
5. Efektifitas,
6. Adanya Batasan Ruang Lingkup
Latihan
1. Buatlah sebuah rancangan program dengan menggunakan Pseduocode untuk
mencari luas bangun geometris yang terdiri dari :
a. Bujur Sangkar
b. Segitiga
c. Persegi panjang
Langkah-langkah :
1. Buat input pilihan perhitungan bangun geometris yang diinginkan
- baca pilih perhitungan yaitu
Jika a pilihan untuk bujur sangkar
Jika b pilihan untuk segitiga
Jika c pilihan untuk persegi panjang
2. Buat proses perhitungan untuk masing-masing bangun geometris, sebagai
berikut :
a. bujur sangkar
- baca sisi
- hitung luas
L=sxs
b. segitiga
- baca alas dan tinggi
2
Modul Praktek Logika dan Algoritma
- hitung luas
L=½xaxt
c. persegi panjang
- baca panjang dan lebar
- hitung luas
L=pxl
3. Buat output dari perhitungan luas bangun geometris yang telah dipilih sebagai
berikut
- cetak luas
Hasil Praktek : Logika dari perhitungan mencari luas bujur sangkar, segitiga
dan persegi panjang
3
Modul Praktek Logika dan Algoritma
Minggu Ke- 2
Konsep Algoritma dan Tipe Data
Deskripsi
Membahas tentang konsep algoritma yang terdiri dari algoritma peubah, algorima
pertukaran dan analisa algoritma
Tujuan pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan algoitma peubah
2. Menjelaskan algoritma pertukaran
3. Menjelaskan analisa algoritma
1. ALGORITMA PE-UBAH
Adalah Variabel yang nilainya BUKAN konstanta (selalu berubah – sesuai
dengan kondisi Variabel terkini)
Sintaks : P=Q
Algoritma : PQ
Arti : Bahwa Nilai P diberi harga Nilai Q
Nilai P akan SAMA DENGAN nilai Q, & Nilai Q TETAP
2. ALGORITMA PERTUKARAN
Berfungsi mempertukarkan masing-masing isi Variabel sedemikian sehingga
nilai dari tiap Variabel akan berubah/bertukar.
Contoh Soal:
1. Diketahui P=0, Q=5 dan R=10.
Diberikan Algoritma P=Q,Q=R, mk Nilai P,Q,R sekarang?
2. Diketahui Algoritma P=10, P=P+1 dan Q = P
Berapakan Nilai P dan Q ? ……………
3. Diketahui 3 variabel peubah P,Q dan R. Agar isi Q ditaruh di P, isi R ditaruh di
Q dan isi P ditaruh di R, maka Algoritma yang dapat ditulis adalah : ……….
4. Diketahui 2 peubah K = 10 dan L = 20. Buat Algoritma untuk mempertukarkan
isi K dan L. : ……………
4
Modul Praktek Logika dan Algoritma
dapat berubah-ubah
Hexadecimal Menyatakan bilangan dalam format heksa
Dictionary Data untaian yang menyimpan berbagai tipe data berupa pasangan
penunjuk dan nilai
A. Tipe data list adalah array yang berisi kumpulan tipe yang tidak sejenis.
Contoh tipe data list:
#tipe data list
kata = ["Belajar", "Python", "di", "Kampus UBSI"]
angka = [10, 50, 100, 1000]
campur = ["Belajar", 100, 7.99, True]
#cetak
print(kata)
print(angka)
print(campur)
Hasil Running:
['Belajar', 'Python', 'di', 'Kampus UBSI']
[10, 50, 100, 1000]
['Belajar', 100, 7.99, True]
B. Tipe Data Tuple hampir sama dengan list, perbedaanya anggotanya tidak bisa
diubah setelah dideklarasikan. Tuple menggunakan kurung biasa dan
dipisahkan dengan koma untuk anggota
Contoh tipe data tuple:
#tipe data tuple
kata = ("Belajar", "Python", "di", "Kampus UBSI")
angka = (10, 50, 100, 1000)
campur = ("Belajar", 100, 7.99, True)
5
Modul Praktek Logika dan Algoritma
#cetak
print(kata)
print(angka)
print(campur)
Hasil Running:
('Belajar', 'Python', 'di', 'Kampus UBSI')
(10, 50, 100, 1000)
('Belajar', 100, 7.99, True)
Hasil Running:
{1: 'Belajar', 2: ['C++', 'Python'], 'Di Kampus': 'UBSI', 'menyerah': False, 'Tahun':
2021}
6
Modul Praktek Logika dan Algoritma
Contoh:
>>> 10>5
True
>>> 8<6
False
>>> 10==10
True
>>> 5!=6
True
>>> 6<=6
True
>>> 8>=3
True
Hasil Running:
Belajar Bahasa Pemrograman Python Sangat Menyenangkan
Latihan
Tentukan apa hasil numerik dari ekspresi relasi dan logika dibawah ini. Diberikan
nilai A = 10; B = 5 ; C = 3 ; K = 8; L = 6; M = 2
1. D = (4 + 2 > A & B – 2 > 3 + 2 | B + 2 <= 6 + 2 )
2. D = K + 5 < M | (C * M < L & 2 * M – L > 0)
3. D=L+5<M|C*K< L&2*K–L>0
4. D = A * 4 <= 3 * M + B
5. D = K + 10 > A & L – 2 > 4 * C
7
Modul Praktek Logika dan Algoritma
Minggu Ke- 3
Flowchart
Deskripsi
Membahas tentang pembuatan flowchart dari algoritma dan pembuatan program dari
flowchart yang ada
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Membuat flowchart dari algoritma
2. Membuat program berdasarkan flowchart
Diagram Alur adalah suatu diagram yang menggambarkan susunan logika suatu
program.
Tabel 1. Simbol-simbol Flowchart, sebagai berikut:
Simbol Keterangan
Proses/prosessing, satu atau beberapa himpunan
penugasan yang akan dilaksanakan secara berurutan.
Input / Output data yg akan dibaca & dimasukan ke
dalam memori komputer dari suatu alat input
Terminal, berfungsi sebagai awal (berisi ‘Start’)sebagai
akhir (berisi ‘End’) dari suatu proses alur.
Decision (kotak keputusan) berfungsi utk memutuskan
arah/percabangan yg diambil sesuai dgn kondisi yg
dipenuhi, yaitu Benar/Salah. (dibahas dalam struktur
branching).
Subroutine digunakan untuk menjalankan proses suatu
bagian (sub program) atau prosedur.
8
Modul Praktek Logika dan Algoritma
Bentuk Flowchartnya:
2. Struktur Branching
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
Bentuk Flowchartnya
3. Stuktur Looping
Digunakan untuk program yang instruksinya akan dieksekusi berulang-ulang.
9
Modul Praktek Logika dan Algoritma
Bentuk Flowchartnya:
Latihan
1. Diketahui empat bilangan 20, 60, 40, dan 100. Buatlah flowchart/diagram alir
untuk mendapatkan nilai terbesar diantara keempat bilangan tersebut
2. Buatlah flowchart/diagram alir untuk mengitung jumlah suku pada deret angka
berikut:
a. S = 1 + 3 + 5 + 7 + 9 + 11
b. S = 2 + 5 + 10 + 17 + 26 + 37
3. Buatlah algoritma dari flowchart ini:
10
Modul Praktek Logika dan Algoritma
Minggu Ke- 4
Struktur Branching
Deskripsi
Membahas tentang konsep struktur branching bersyarat if, if else, if elif else dan
nested if
Tujuan pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan struktur percabangan if
2. Menjelaskan struktur percabangan if else
3. Menjelaskan struktur percabangan if elif else
4. Struktur Percabangan nested if
Tabel 1. Percabangan If
Bentuk Umum Flowchartnya
if kondisi:
statement
11
Modul Praktek Logika dan Algoritma
if kondisi:
statement1
else:
statement2
if kondisi1:
statement1
elif kondisi2:
statement2
else:
statement3
12
Modul Praktek Logika dan Algoritma
if kondisi1:
if kondisi 1.1:
statement 1.1
elif kondisi 1.2:
statement 1.2
else:
statement 1.3
elif kondisi2:
if kondisi 2.1:
statement 2.1
elif kondisi 2.2:
statement 2.2
else:
statement 2.3
else:
statement3
Kasus:
Buatlah sebuah rancangan program transaksi penjualan dengan menggunakan
flowchart, dengan ketentuan sebagai berikut :
1. Baca input yang terdiri dari nama pembeli, kode paket dan jumlah beli
13
Modul Praktek Logika dan Algoritma
14
Modul Praktek Logika dan Algoritma
Minggu Ke- 5
Looping
Deskripsi
Membahas tentang instruksi looping (perulangan) yaitu statement for, while dan
nested while
Tujuan pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan perulangan for
2. Menjelaskan perulangan while
3. Menjelaskan perulangan nested while/for
Pengertian Looping:
Instruksi pengulangan (repetition) adalah instruksi yang dapat mengulangi
melaksanakan sederetan instruksi lain berulangkali sesuai dengan persyaratan yang
ditentukan.
Struktur instruksi perulangan pada dasarnya terdiri atas:
1. Kondisi perulangan. Suatu kondisi yang harus dipenuhi agar perulangan dapat
terjadi
2. Badan (body) perulangan. Deretan instruksi yang akan diulang-ulang
pelaksanaannya
3. Pencacah (counter) perulangan. Suatu variabel yang nilainya harus berubah agar
perulangan dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang
dapat dilaksanakan
Bentuk Perulangan pada Python, yaitu:
1. Perulangan for: Perulangan yang mengerjakan “bagian pernyataan yang sama”
secara berulang-ulang berdasarkan syarat atau kondisi yang ditentukan.
Bentuk Umum:
For variabel in range :
Statements
Variabel adalah sebagai nilai awal. Fungsi range() sebagai counter pada
perulangan for.
Inisialisasi awal
Syarat pengulanan
Pengubah nilai
15
Modul Praktek Logika dan Algoritma
16
Modul Praktek Logika dan Algoritma
Hasil Running:
10
9
8
7
6
17
Modul Praktek Logika dan Algoritma
5
4
3
2
1
Hasil Mencetak Bilangan Secara menurun
Didalam perulangan ada perintah yang dapat melakukan kontrol terhadap perulangan
yaitu break dan continue.
1) Perintah Break berfungsi untuk kelua dari suatu loop for atau while.
Bentuk Umum:
......
......
break
......
......
Contoh program akan keluar setelah mencetak sampai angka 6
#Perintah break pada perulangan for
#Program akan keluar setelah mencetak angka sampai 6 karena perintah break
bil = 6
for i in range(0,10):
print(i)
if i is bil:
break
Hasil Running:
0
1
2
3
4
5
6
Program keluar setelah mencetak angka 6 karena instruksi break
Note:
Looping akan dikerjakan terus sampai dipaksa keluar oleh instruksi break;
2) Perintah Continue berfungsi untuk melakukan pengulangan mulai dari awal lagi
Penerapan perintah continue pada Python
#penggunaan continue pada while
bil = 0
pilihan = 'y'
while (pilihan != 'n'):
bil = int(input("Masukkan bilangan dibawah 50: "))
if (bil > 50):
print("Bilangan melebihi angka 50, Silahkan diulangi.")
continue
print("Pangkat dua dari bilangan ini adalah: ",bil*bil)
pilihan = input("Apakah Anda ingin mengulang kembali (y/n)? ")
18
Modul Praktek Logika dan Algoritma
Hasil Running:
Masukkan bilangan dibawah 50: 20
Pangkat dua dari bilangan ini adalah: 400
Apakah Anda ingin mengulang kembali (y/n)? y
Masukkan bilangan dibawah 50: 36
Pangkat dua dari bilangan ini adalah: 1296
Apakah Anda ingin mengulang kembali (y/n)? y
Masukkan bilangan dibawah 50: 70
Bilangan melebihi angka 50, Silahkan diulangi.
Masukkan bilangan dibawah 50: 25
Pangkat dua dari bilangan ini adalah: 625
Apakah Anda ingin mengulang kembali (y/n)? n
Hasil Running:
2 adalah Bilangan Prima
3 adalah Bilangan Prima
5 adalah Bilangan Prima
7 adalah Bilangan Prima
11 adalah Bilangan Prima
13 adalah Bilangan Prima
17 adalah Bilangan Prima
19 adalah Bilangan Prima
23 adalah Bilangan Prima
29 adalah Bilangan Prima
31 adalah Bilangan Prima
37 adalah Bilangan Prima
41 adalah Bilangan Prima
43 adalah Bilangan Prima
47 adalah Bilangan Prima
19
Modul Praktek Logika dan Algoritma
Kasus:
1. Buatlah program untuk menampilkan baris bilangan sesuai perulangannya
sebagai berikut:
20
Modul Praktek Logika dan Algoritma
Minggu Ke- 6
Rekursif
Deskripsi
Membahas tentang struktur rekusif seperti fungsi pangkat, faktorial, fibonancy dan
menara hanoi
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan teknik rekursif untuk fungsi pangkat
2. Menjelaskan teknik rekursif untuk faktorial
3. Menjelaskan teknik rekursif untuk fibonancy
4. Menjelaskan teknik rekursif untuk menara hanoi
2. Faktorial
0! = 1
N! = N x (N-1)! Untuk N > 0
Scr notasi pemrograman dapat ditulis sebagai :
FAKT (0) = 1 .............................................. (1)
FAKT(N) = N * FAKT (N-1).................................... (2)
Contoh :
FAKT(5) = 5 * FAKT(4)
FAKT(4) = 4 * FAKT(3)
FAKT(3) = 3 * FAKT(2)
FAKT(2) = 2 * FAKT(1)
FAKT(1) = 1 * FAKT(0)
Nilai Awal
21
Modul Praktek Logika dan Algoritma
Hasil Running:
masukkan bilangan bulat: 5
faktorial 5 adalah 120
masukkan bilangan bulat: 6
faktorial 6 adalah 720
masukkan bilangan bulat: 7
faktorial 7 adalah 5040
3. Fibonancy
Deret Fibonancy : 0,1,1,2,3,5,8,13,.........
Secara notasi pemrograman dapat ditulis sebagai :
Fibo (1) = 0 & Fibo (2) = 1 ....................................... (1)
Fibo (N) = Fibo (N-1) + Fibo (N-2) ................................. (2)
Contoh :
Fibo(5) = Fibo(4) + Fibo(3)
Fibo(4) = Fibo(3) + Fibo(2)
Fibo(3) = Fibo(2) + Fibo(1)
Nilai Awal
22
Modul Praktek Logika dan Algoritma
nth = n1 + n2
#update values
n1 = n2
n2 = nth
count +=1
Hasil Running:
Masukkan jumlah Deretnya: 8
Deret urut Fibonacci :
0
1
1
2
3
5
8
13
4. Menara Hanoi
Konsep Menara Hanoi
A B C
Tiang Asal Tiang Bantuan Tiang Tujuan
Penjelasannya:
a. Jika n=1, maka langsung pindahkan saja piringan dr tiang A ke tiang C &
selesai.
b. Pindahkan n-1 piringan yg paling atas dr tiang A ke tiang B.
c. Pindahkan piringan ke n (piringan terakhir) dr tiang A ketiang C
d. Pindahkan n-1 piringan dari tiang B ke tiang C.
Kasus:
1. Buatlah algortima dan program untuk Faktorial
2. Buatlah algoritma dan program untuk pemangkatan
23
Modul Praktek Logika dan Algoritma
Minggu Ke- 7
QUIZ
Deskripsi
Membahas tentang review materi dalam quiz
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu menjelaskan materi dari pertemuan
1 sampai pertemuan 6
24
Modul Praktek Logika dan Algoritma
Minggu Ke- 8
UTS
25
Modul Praktek Logika dan Algoritma
Minggu Ke- 9
List Dan Matriks
Deskripsi
Membahas tentang list dan matriks
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan List
2. Menjelaskan Matriks
List merupakan variabel yang menyimpan lebih dari satu data didalamnya. List
menyerupai array dalam pemrograman lainnya (Jud, 2017).
List dapat menyimpan banyak data dalam 1(satu) variable dan diakses
menggunakan indeks.
Inisialisasi List menggunakan kurung siku [ dan ]
List dapat menyimpan data seragam maupun tidak seragam. (jenis tipe data seperti
string, integer, float, double, Boolean, object dll)
Contoh:
0 1 3 4
Nomor index list selalu dimulai dari nol (0). Penggunaan nomor index adalah untuk
mengambil isi(item) dari list
NamaVar=[val1,val2,val3,….]
data=[1, 2, “Sistem Informasi”, 1.2]
Hasil program:
[1, 2]
[1, 2, 'Sistem Informasi', 'Komputer Akuntansi']
['Komputer Akuntansi', 1.2, 0.3]
26
Modul Praktek Logika dan Algoritma
#list append
A = ([ 1, 2, "Sistem Informasi"])
#Tambahkan UBSI
A.append("UBSI")
print(A)
Hasil Program:
[1, 2, 'Sistem Informasi', ‘UBSI']
Kodingan program
#menambahkan data
X = ["Komputer Akuntansi","Teknik Komputer"]
X.insert(0,"Sistem Informasi")
print(X)
Hasil Program
['Sistem Informasi', 'Komputer Akuntansi', 'Teknik Komputer']
27
Modul Praktek Logika dan Algoritma
Hasil Program:
['sistem informasi', 'Teknik Komputer']
OPERASI LIST
Ada beberapa operasi yang bisa dilakukan List, diantaranya:
Penggabungan (+)
Perkalian (*)
Hasil Program
['sistem informasi', 'komputer akuntasni', 'Teknik Komputer', 12, 11, 13]
Contoh:Perkalian (*)
# Data nama program studi
list_prodi = [
"Sistem Informasi","Komputer Akuntasi","Teknik Komputer"]
# ulangi sebanyak 3x
ulangi = 3
prodi = list_prodi * ulangi
print (prodi)
Hasil Program
['Sistem Informasi', 'Komputer Akuntasi', 'Teknik Komputer', 'Sistem Informasi',
'Komputer Akuntasi', 'Teknik Komputer', 'Sistem Informasi', 'Komputer Akuntasi',
'Teknik Komputer']
28
Modul Praktek Logika dan Algoritma
Bentuk Umum :
nama_list[jumlah_indeks]
Contoh:
Nilai_tugas [90]
jumlah indeks
nama list
Hasil:
Nilai Tugas: [70, 80, 90, 'Keterangan Lulus']
Bentuk Umum :
nama_list[indeks_baris][indeks_kolom]
Contoh:
nama_list [2] [3]
jumlah kolom
jumlah baris
nama list
Contoh Program:
list=[["Teknik","Kedokteran","MIPA"],[1,2,3]]
print(list)
Hasil program:
[['Teknik', 'Kedokteran', 'MIPA'], [1, 2, 3]]
Pada contoh Array dimensi dua maka memperlihatkan list dua dimensi dengan ukuran
2X3 dengan urutan fakultas berdasarkan tingkat kesulitannya. Baris pertama mewakili
nama-nama fakultas dan kolom kedua mewakili tingkat kesulitannya
Matrik
Matrik adalah Penyajian Data, Istilah-istilah dalam matrik seperti:Ordo (Dimensi
matriks yang memuat baris dan kolom), elemen, baris dan kolom.
29
Modul Praktek Logika dan Algoritma
Contoh:
kolom
m
2 1 2
Matrik ordo 3X3 = 3 0 1
2 0 0
𝑎11 = 2 𝑎21 = 3 𝑎31 = 2
Penjelasan matrik 3X3 = 𝑎12 = 1 𝑎22 = 0 𝑎32 = 0
𝑎13 = 2 𝑎23 = 1 𝑎33 = 0
1 1 1 1
A = [0 1 1 1]
0 0 1 1
0 0 0 1
Kasus:
1. Buat perintah pokok pada pengisian matriks B dibawah ini
1 2 3 4
B = [0 2 3 4 ]
0 0 3 4
0 0 0 4
2. Buatlah program untuk penjumlahkan dua buah matriks dengan ordo 3X3
dengan menggunakan pemrograman Python.
3. Buatlah program untuk pengurangan dua buah matriks dengan ordo 2X2 dengan
menggunakan pemrograman Python.
30
Modul Praktek Logika dan Algoritma
Minggu Ke- 10
Metode Divide & Conquer
Deskripsi
Membahas tentang konsep sorting (selection sort, buble sort, merge sort, quick sort
dan insertion)
Tujuan pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan metode merge sort
2. Menjelaskan metode quick sort
3. Menjelaskan metode binary search
4. Menjelaskan Teknik D and C
Pengertian divide adalah Memilah data nilai elemen–elemen dari rangkaian data
menjadi dua bagian dan mengulangi pemilahan hingga satu elemen terdiri maksimal
dua nilai (Sonita & Nurtaneo, 2015).
Pengertian conquer adalah Mengurutkan masing-masing data nilai elemen (Sonita &
Nurtaneo, 2015).
Prinsip dasar metode divide dan conquer adalah:
a) Membagi n input menjadi k subset input yang berbeda (1<k≤n).
b) k subset input tersebut akan terdapat k subproblem.
c) Setiap subproblem mempunyai solusi menjadi k subsolusi.
d) dari k subsolusi akan mendapatkan solusi yang optimal
Pengertian Sorting:
Proses pengaturan sederetan data ke dalam suatu urutan atau susunan urutan tertentu.
Data yang diurutkan dapat berupa data bilangan, data karakter maupun data string
(Sitorus, 2015).
Teknik D and C
Menggunakan teknik Rekursif yang membagi masalah menjadi dua atau lebih
submasalah dengan ukuran yang sama. Masalah umum untuk teknik ini seperti
pengurutan, perkalian.
31
Modul Praktek Logika dan Algoritma
1. Merge Sort Menggabungkan dua array yang sudah terurut (Utami, 2017)
Prinsip kerjanya:
1) Kelompokkan deret bilangan kedalam 2 bagian, 4 bagian, 8 bagian, ......dst
→ (2n)
2) Uruntkan secara langsung bilangan dalam kelompok tersebut.
3) Lakukan langkah diatas untuk kondisi bilangan yang lain sampai didapatkan
urutan yang optimal.
32
Modul Praktek Logika dan Algoritma
X = [22,10,15,3,8,2]
mergeSort(X)
print(X)
Hasilnya:
33
Modul Praktek Logika dan Algoritma
Contoh:
23 45 12 24 56 34 27 23 16
12 23 16 23 24 34 27 45 56
12 16 23 23 24 34 27 45 56
12 16 23 23 24 27 34 45 56
Binary Search
Binary Search (Untuk data yang sudah terurut)
Digunakan mencari sebuah data pada himpunan data-data yang tersusun secara urut,
yaitu data yang telah diurutkan dari besar ke kecil/sebaliknya. Proses dilaksanakan
pertama kali pada bagian tengah dari elemen himpunan, jika data yang dicari ternyata
< elemen bagian atasnya, maka pencarian dilakukan dari bagian tengah ke bawah
Contoh:
Data A = { 1, 3, 9, 11, 15, 22, 29, 31, 48 }
Dicari 3
Langkah Pencariannya:
Langkah 1: Low = 1 dan High = 9
Langkah 2: Low <= High (jika YA ke L-3, jika TDK ke L-7)
Langkah 3: Mid = (1+10) div 2 = 5 yaitu 15
Langkah 4: 3 < 15, maka High = 5 – 1 = 4 yaitu 11
Langkah 1: Low = 1 dan High = 4
Langkah 2: Low <= High
Langkah 3: Mid = (1+4) div 2 = 2 yaitu 3
Langkah 4: 3 < 3, ke langkah 5
Langkah 5: 3 > 3, ke langkah 6
Langkah 6: 3 = 3 (Pencarian berhasil)
34
Modul Praktek Logika dan Algoritma
Teknik D AND C
Dengan Prinsip Dasar Metode Devide & akan dapat dipecahkan suatu permasalahan
proses Searching elemen Max&Min dengan teknik D and C
Contoh :
Tentukan elemen MaxMin suatu array A yang terdiri dari
9 bilangan :
A[1] = 22, A[4] = -8, A[7] = 17
A[2] = 13, A[5] = 15, A[8] = 31
A[3] = -5, A[6] = 60, A[9] = 47
35
Modul Praktek Logika dan Algoritma
Kasus
Suatu array A terdiri dari 10 elemen yaitu 210, 285, 179, 652, 351, 423, 861, 254, 450
dan 520. Buatlah pengurutannya menggunakan merge sort
36
Modul Praktek Logika dan Algoritma
Minggu Ke- 11
METODE SORTING
Deskripsi
Membahas tentang metode sorting selection sort, buble sort, dan insertion sort
Tujuan pembelajaran
Setelah melakkan bagian ini mahasiswa mampu:
Menjelaskan metode sorting dengan selection sort
Menjelaskan metode sorting dengan buble sort
Menjelaskan metode sorting dengan insertion sort
1. Pengertian Sorting
Proses pengaturan sederetan data ke dalam suatu urutan atau susunan urutan tertentu.
Data yang diurutkan dapat berupa data bilangan, data karakter maupun data string
(Sitorus, 2015).
1. Selection Sort adalah Teknik pengurutan dengan cara pemilihan elemen atau
proses kerja dengan memilih elemen data terkecil untuk kemudian dibandingkan
& ditukarkan dengan elemen pada data awal, dst s/d seluruh elemen sehingga
menghasilkan pola data yang telah disort.
Prinsip Kerjanya adalah:
1) Pengecekan dimulai data ke-1 sampai dengan data ke-n
2) Tentukan bilangan dengan Index terkecil dari data bilangan tersebut
3) Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama (I =
1) dari data bilangan tersebut
4) Lakukan langkah 2 dan 3 untuk bilangan berikutnya (I= I+1) sampai
didapatkan urutan yang optimal.
Contoh : 22 10 15 3 8 2
Iterasi 1:
Langkah 1 : 22 10 15 3 8 2
Langkah 2 : 22 10 15 3 8 2
Langkah 3 : 2 10 15 3 8 22
Langkah 4 : Ulangi langkah 2 dan 3
Iterasi 2
Langkah 1 : 2 10 15 3 8 22
Langkah 2 : 2 10 15 3 8 22
37
Modul Praktek Logika dan Algoritma
Langkah 3 : 2 3 15 10 8 22
Langkah 4 : Ulangi langkah 2 dan 3
Iterasi 3
Langkah 1 : 2 3 15 10 8 22
Langkah 2 : 2 3 15 10 8 22
Langkah 3 : 2 3 8 10 15 22
Langkah 4 : Ulangi langkah 2 dan 3
Iterasi 4
Langkah 1 : 2 3 8 10 15 22
Langkah 2 : 2 3 8 10 15 22
Langkah 3 : 2 3 8 10 15 22
Langkah 4 : Ulangi langkah 2 dan 3
Iterasi 5
Langkah 1 : 2 3 8 10 15 22
Langkah 2 : 2 3 8 10 15 22
Langkah 3 : 2 3 8 10 15 22
Langkah 4 : Ulangi langkah 2 dan 3
Iterasi 6
Langkah 1 : 2 3 8 10 15 22
Langkah 2 : 2 3 8 10 15 22
Langkah 3 : 2 3 8 10 15 22
Langkah 4 : Ulangi langkah 2 dan 3
Angka = [22,10,15,3,8,2]
SelectionSort(Angka)
print(Angka)
Hasilnya:
2. Bubble Sort adalah Metode pengurutan dengan membandingkan data nilai elemen
yang sekarang dengan data nilai elemen-elemen berikutnya. Pembandingan
elemen dapat dimulai dari awal atau mulai dari paling akhir. Apabila elemen yang
sekarang lebih besar (untuk urut menaik) atau lebih kecil (untuk urut menaik) dari
elemen berikutnya, maka posisinya ditukar, tapi jika tidak maka posisinya tetap
(Harumy et al., 2016).
38
Modul Praktek Logika dan Algoritma
Contoh : 22 10 15 3 8 2
Iterasi 1:
Langkah 1 : 22 10 15 3 8 2
Langkah 2 : 22 10 15 3 8 2
Langkah 3 : 22 10 15 3 2 8
Langkah 4 : Ulangi langkah 2 dan 3
Hasil iterasi 1 : 2 22 10 15 3 8
Iterasi 2
Langkah 1 : 2 22 10 15 3 8
Langkah 2 : 2 22 10 15 3 8
Note: 8>3, maka 8 tidak pindah, untuk selanjutnya bandingkan data sebelumnya
yaitu 3.
Langkah 3 : 2 3 22 10 15 8
Langkah 4 : Ulangi langkah 2 dan 3
Lakukan Iterasi selanjutnya sampai iterasi ke- 6
Iterasi 3
Langkah 1 : 2 22 10 15 3 8
Langkah 2 : 2 3 22 10 15 8
Langkah 3 : 2 3 8 22 10 15
Langkah 4 : 2 3 8 22 10 15
Iterasi 4
Langkah 1: 2 22 10 15 3 8
Langkah 2: 2 3 22 10 15 8
Langkah 3: 2 3 8 22 10 15
Langkah 4: 2 3 8 22 10 15
Langkah 5: 2 3 8 10 22 15
39
Modul Praktek Logika dan Algoritma
Hasil = [22,10,15,3,8,2]
BubbleSort(Hasil)
print(Hasil
Hasilnya:
3. Insertion Sort Pengurutan data yang membandingkan data dengan dua elemen
data pertama, kemudian membandingkan elemen-elemen data yang sudah
diurutkan, kemudian perbandingan atara data tersebut akan terus diulang hingga
tidak ada elemen data yang tersisa (Rahayuningsih, 2016). Mirip dengan cara
mengurutkan kartu, perlembar yang diambil & disisipkan (insert) ke tempat
yang seharusnya.
Prinsip kerjanya:
1) Pengecekan mulai dari data ke-1 sampai data ke-n
2) Bandingkan data ke-I ( I = data ke-2 s/d data ke-n )
3) Bandingkan data ke-I tersebut dengan data sebelumnya (I-1), Jika lebih kecil
maka data tersebut dapat disisipkan ke data awal sesuai dengan posisisi yang
seharusnya
4) Lakukan langkah 2 dan 3 untuk bilangan berikutnya (I=I+1) sampai
didapatkan urutan yang optimal.
Contoh : 22 10 15 3 8 2
Iterasi 1
Langkah 1: 22 10 15 3 8 2
Langkah 2: 22 10 15 3 8 2
Langkah 3: 10 22 15 3 8 2
Langkah 4: Ulangi langkah 2 dan 3
Iterasi 2
Langkah 1: 10 22 15 3 8 2
Langkah 2: 10 22 15 3 8 2
Langkah 3: 10 15 22 3 8 2
Langkah 4: Ulangi langkah 2 dan 3
Lakukan Iterasi selanjutnya sampai iterasi ke- 6
Catatan : Setiap ada pemindahan, maka elemen yang sudah ada akan di-insert
sehingga akan bergeser ke belakang.
Angka = [22,10,15,3,8,2]
40
Modul Praktek Logika dan Algoritma
InsertionSort(Angka)
print(Angka)
Hasilnya:
Teknik Searching
Pengertian Teknik Searching adalah teknik dalam memilih dan menyeleksi sebuah
elemen dari beberapa elemen yang ada.
Teknik Pencarian (searching) dibagi dua, yaitu
1. Teknik Pencarian Tunggal
a) Teknik Sequential Search/Linier Search (untuk data yang belum terurut/yang
sudah terurut)
Pencarian yang dimulai dari record-1 diteruskan ke record selanjutnya yaitu
record-2, ke-3,..., sampai diperoleh isi record sama dengan informasi yang
dicari (Nilai X).
Algortimanya:
− Tentukan I = 1
− Ketika Nilai (I) <> X Maka Tambahkan I = I +1
− Ulangi langkah No. 2 sampai Nilai(I) = X
− Jika Nilai (I) = N+1 Maka Cetak “Pencarian Gagal” selain itu Cetak
“Pencarian Sukses “
Contoh1:
Data A = { 10, 4, 9, 1, 15, 7 }
Dicari 15
Langkah pencariannnya:
Langkah 1: A[1] = 10
Langkah 2: 10 <> 15, maka A[2] = 4
Langkah 3: ulangi langkah 2
Langkah 2: 4 <> 15, maka A[3] = 9
Langkah 2: 9 <> 15, maka A[4] = 1
Langkah 2: 1 <> 15, maka A[5] = 15
Langkah 2: 15 = 15
Langkah 4: “Pencarian Sukses”
Contoh2:
Apabila ditemukan kondisi:
Nilai (i) = N + 1, maka pencarian tidak ditemukan atau gagal.
Dikarenakan jumlah elemen adalah N, N + 1 artinya data yang dicari bukan
merupakan elemen data dari N.
2. Teknik StraitMaxMin
− Menentukan/mencari elemen max&min. Pada Himpunan yang berbentuk
array linear.
− Waktu tempuh/time complexity yang digunakan untuk menyelesaikan
pencarian hingga mendapatkan solusi yang optimal terbagi atas best case,
average case dan worst case.
41
Modul Praktek Logika dan Algoritma
Best Case
Keadaan yang tercapai jika elemen pada himpunan A disusun secara increasing
(menaik).
Dengan perbandingan waktu n - 1 kali satuan operasi.
Contoh :
Terdapat himpunan A yang berisi 4 buah bilangan telah disusun secara increasing
dengan A[0]=2, A[1]=4, A[2]=5, A[3]=10.
Tentukan/cari Bilangan Max&Min serta jumlah operasi perbandingan yang dilakukan.
STRAITMAXMIN(A,n)
max = min = 2
FOR i 1 TO 3
Saat i=1 Apakah 4 > 2 maka max = 4 dan kembali ke FOR
Saat i=2 Apakah 5 > 4 maka max = 5 dan kembali ke FOR
Saat i=3 Apakah 10 > 5 maka max = 10
Maka Nilai MIN=2 dan MAX=10
WORST CASE
Terjadi jika elemen dalam himpunan disusun secara decreasing (menurun).
Dengan Oprasi perbandingan sebanyak 2(n-1) kali satuan operasi.
42
Modul Praktek Logika dan Algoritma
Contoh :
Mencari elemen MaxMin & jumlah oprasi perbandingan yang dilakukan terhadap
himpunan A yang disusun decreasing.
A[0]=80, A[1]=21, A[2]=6, A[3]=-10
STRAITMAXMIN(A,n)
Max = min = 80
For i 1 to 3
Saat i=1 Apakah 21 > 80 maka
ELSE Apakah 21 < 80 maka min = 21
Saat i=2 Apakah 6 > 80 maka
ELSE Apakah 6 < 21 maka min = 6
Saat i=3 Apakah -10 > 80 maka
ELSE Apakah -10 < 6 maka min = -10
AVERAGE CASE
Jika pencarian elemen MaxMin dilakukan pada elemen dalam himpunan yang
tersusun secara acak (tidak decreasing/tidak increasing).
Jumlah oprasi Perbandingan yang dilakukan adalah rata-rata waktu tempuh best case
& worst case, yaitu ½ [ (n-1) + 2(n-1) ] = ( 3n/2 -1 ) kali.
Contoh:
Pada himpuan A yg berisi { 5,-4, 9,7 } dilakukan pencarian elemen max & min
dengan menggunakan proses STRAITMAXMIN.
Berapa elemen maxmin yang didapatkan & jumlah oprasi perbandingan yang
dilakukan.
Penyelesaian:
Elemen max=9, & elemen min=-4.
Jumlah operasi perbandingan adalah ( 3. 4/2 - 1) = 5 kali satuan operasi.
43
Modul Praktek Logika dan Algoritma
Kasus1
Terdapat angka sebagai berikut: 80 , 45, 21, 100 , 23, 67, 43, 20, 90, 99, 46, 75, 73, 29
Buatlah algoritma untuk mencari angka 29 dengan teknik linear search
44
Modul Praktek Logika dan Algoritma
Minggu Ke- 12
Metode Greedy
Deskripsi
Membahas tentang metode greedy (optimal on tape storage dan knapsack problem)
untuk menyelesaikan masalah
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan tentang metode greedy optimal on tape storage untuk menyelesaikan
masalah
2. Menjelaskan tentang metode greedy knapsack problem untuk menyelesaikan
masalah
1. Metode Greedy
Greedy diambil dari bahasa inggris berarti rakus, tamak, loba, serakah. Prinsip
greedy: “Take What You Can Get Now!”. Algoritma greedy membentuk solusi
langkah perlangkah (step by step).
Greedy adalah strategi pencarian untuk masalah optimasi berbasis prinsip: pada setiap
tahap, pilih solusi paling baik. Dengan harapan, semua tahapan ini akan menemukan
solusi terbaik untuk masalah tersebut. Algoritma greedy termasuk sederhana dan tidak
rumit (Santosa and Ai, 2017).
Untuk mendapatkan solusi optimal dari permasalahan yang mempunyai dua kriteria
yaitu:
1. Fungsi Tujuan/Utama
2. Nilai pembatas (constrain)
45
Modul Praktek Logika dan Algoritma
program yang akan disimpan didalam pita (tape). Pita tsb mempunyai panjang
maks. sebesar L, masing-masing program yang akan disimpan mempunyai
panjang L1,L2,L3...,Ln. Cara penyimpanan adalah penyimpanan secara terurut
(sequential).
L1 L2 L3 ... Ln
Persoalan = Bagamana susunan penyimpanan program2 tersebut sehingga
L1 + L2 + L3 + ... + Ln = L ?
Contoh soal:
Misal terdapat 3 buah program (n=3) yg masing-masing mempunyai panjang
program (I1,I2,I3)=(5,10,3). Tentukan urutan penyimpanannya secara berurutan
(sequential) agar optimal....!
Penyelesaiannya:
Dari 3 program tersebut akan didapat 6 buah kemungkinan order, yang didapat
dari nilai faktorial 3 →3! (ingat faktorial n!).
2. Knapsack Problem
− Knapsack adalah tas atau karung
− Karung digunakan memuat objek, tentunya tidak semua objek dapat
ditampung di dalam karung.
− Karung hanya dapat menyimpan beberapa objek dengan total ukurannya
(weight) lebih kecil atau sama dengan ukuran kapasitas karung.
Permasalahan pada knapsack problem adalah bagaimana obyek-obyek tersebut
dimuat/dimasukan kedalam ransel (knapsack) yang mempunyai kapasitas
max=M, sehingga timbul permasalahan sbb:
− Bagaimana memilih obyek yang akan dimuat dari n obyek yang ada
sehingga nilai obyek termuat jumlahnya sesuai dgn kapasitas( M)
− Jika semua obyek harus dimuat kedalam ransel maka berapa bagian dari
setiap obyek yang ada dapat dimuat kedalam ransel sedemikian sehingga
nilai kum. maks. & sesuai dgn kapasitas ransel?
46
Modul Praktek Logika dan Algoritma
Kasus:
Terdapat 3 buah program (n=4) yg masing-masing mempunyai panjang program. (I1,
I2, I3, I4)=(4, 8, 15, 5). Tentukan urutan penyimpanannya secara berurutan
(sequential) agar optimal....!
47
Modul Praktek Logika dan Algoritma
Minggu Ke- 13
Penyelesaian Dengan Algoritma Pemograman Greedy
Deskripsi
Membahas tentang penyelesaian dengan algortima pemrograman greedy
Tujuan pembelajaran
Setelah melakukan bagian ini mahasiswa mampu:
1. Menjelaskan penyelesaian dengan algoritma pemrograman greedy
2. Menjelaskan model graph pada metode greedy untuk travelling salesman problem
3. Menjelaskan model graph pada metode greedy untuk shotest path problem
4. Menjelaskan model graph pada metode greedy untuk minimun spanning tree
Contoh:
Diketahui bahwa kapasitas M = 20kg, dengan jumlah barang n=3.Berat Wi masing2
barang = (W1, W2, W3) = (18, 15, 10). Nilai Pi masing2 barang = (P1, P2, P3) = (25,
24, 15). Lakukan pengurutan secara tdk naik terhadap hasil Pi/Wi,
misalnya :
P1/Wi → 25/18 = 1,39 menjadi urutan ke 3
P2/W2 → 24/15 = 1,60 menjadi urutan ke 1
P3/W3 → 15/10 = 1.50 menjadi urutan ke 2
Sehingga m’hasilk’ pola urutan data yg baru,yaitu W1,W2,W3 → 15, 10, 18 dan
P1,P2,P3 → 24, 15, 25
48
Modul Praktek Logika dan Algoritma
sisa 5kg i =2
W(2) > isi ?? → 10 > 5 ?? → kondisi BENAR
x(2)=5/10=1/2→benda 10kg hanya dpt dimuat 1/2 bagian yaitu 5 kg.
i=3
Endif → diakhiri krn ransel sdh penuh (max =20kg)
Profit nilai yang didapat adalah : P1 + P2 + P3 yaitu:
24.1+ 15.1/2 + 18.0 = 24 + 7.5 = 31.5
Penyelesaiannya:
x(1:n) 0 ; isi 20 ; i = 1
FOR i 1 TO 3
Saat i=1 APK W[1] > isi? → 15 > 20?
x[1] ← 1 (barang dapat dimuat seluruhnya)
isi = 20 – 15 = 5 (sisa kapasitas 5kg)
Saat i=2 APK W[2] > isi? → 10 > 5? → exit
APK i ≤ n? → 2 ≤ 3?
x[2] = isi/W[2] = 5/10 = 1/2 benda 10kg dimuat ½ bag = 5
ENDIF diakhiri karena ransel sudah penuh (max =20kg)
Misalnya: Kantor pusat adalah simpul 1 dan misalnya ada 4 telepon umum, yang kita
nyatakan sebagai simpul 2, 3, 4 dan 5 dan bilangan pada tiap-tiap ruas menunjukan
waktu ( dalam menit ) perjalanan antara 2 simpul .
Langkah penyelesaian:
1. Dimulai dari simpul yang diibaratkan sebagai kantor pusat yaitu simpul 1
2. Dari simpul 1 pilih ruas yang memiliki waktu yang minimal.
3. Lakukan terus pada simpul–simpul yang lainnya tepat satu kali yang nantinya
Graph akan membentuk Graph tertutup karena perjalanan akan kembali ke
kantor pusat.
4. Problema diatas menghasilkan waktu minimalnya adalah 45 menit dan
diperoleh perjalanan sbb :
49
Modul Praktek Logika dan Algoritma
2) Minimum Spanning Tree adalah mencari minimum biaya (cost) spanning tree
dari setiap ruas (edge) graph yang membentuk pohon (tree).
Solusi dari permasalahan ini:
1. Dengan memilih ruas suatu graph yang memenuhi kriteria dari optimisasi
yang menghasilkan biaya minimum.
2. Penambahan dari setiap ruas pada seluruh ruas yang membentuk graph akan
menghasilkan nilai/biaya yang kecil (minimum cost).
Kasus1:
Terdapat sebuah kapal dengan kapasitas 180 Ton, Akan memuat 6 buah barang
masing-masing adalah : Gula pasir 50 Ton dengan harga 100 Juta, Gula merah 60 Ton
dengan harga 80 Juta dan Gula batu 70 Ton dengan harga 90 Juta. Beras 50 Ton
dengan harga 150 Juta, Terigu 20 ton dengan harga 40 Juta, Minyak goreng 60 Ton
dengan harga 200 Juta. Dengan metode Algoritma Greedy Tentukan barang apa saja
yang dimuat truk dengan harga yang paling mahal
Kasus2:
Diberikan n buah objek dan sebuah knapsack dengan kapasitas tertentu (K). Setiap
objek memilki property bobot w(weight) dan keuntungan p(profit). Objektif persoalan
adalah bagaimana memilih objek-objek yang dimasukkan ke dalam knapsack
sehingga tidak melebihi kapasitas knapsack namun memaksimumkan total
keuntungan yang diperoleh.” Tinjau persoalan 0/1 Knapsack dengan n = 4. Misalkan
objek-objek tersebut kita beri nomor 1, 2, 3, dan 4. Properti setiap objek i dan
kapasitas knapsack adalah sebagai berikut
w1 = 2; p1 = 20
w2 = 5; p1 = 30
w3 = 10; p1 = 50
w4 = 5; p1 = 10
50
Modul Praktek Logika dan Algoritma
Minggu Ke- 14
Pewarnaan
Deskripsi
Membahas tentang pewarnaan atau coloring untuk memecahkan masalah
Tujuan Pembelajaran
Setelah melakukan bagian ini mahasiswa mampu menjelaskan tentan konsep greedy
pada pewarnaan untuk menyelesaikan masalah
Pewarnaan (Coloring)
Problema pemberian warna kepada semua simpul, sedemikian sehingga 2 simpul yang
berdampingan ( ada ruas menghubungkan ke dua simpul tersebut ) mempunyai warna
yang berbeda. Banyak warna yang dipergunakan, diminta seminimal mungkin.
Contoh:
B D
E
A
Gambar 1. Pola lalu lintas
Permasalahan:
Menentukan pola lampu lalulintas dengan jumlah fase minimal seperti pada gambar 1
diatas, setiap fase tidak ada perjalanan yang saling melintas . Perjalanan yang
diperbolehkan adalah : A ke B, A ke C, A ke D, B ke C, B ke D, E ke B, E ke C dan
E ke D.
51
Modul Praktek Logika dan Algoritma
4. Kita lihat Bahwa simpul AB , BC dan ED tidak dihubungkan oleh suatu ruas
jadi untuk simpul tersebut tidak pernah melintas perjalanan-perjalanan lain dan
simpul tersebut selalu berlaku lampu hijau
5. Tentukan pembagian masing –masing simpul yang sudah diberikan warna.
Putih = (AC, AD )
Hitam = (BD, EB )
Merah = (EC)
Catatan :
Pembagian simpul berdasarkan simpul yang tidak langsung berhubungan
seminimal mungkin (BISA DILAKUKAN DENGAN BEBERAPA
KEMUNGKINAN)
52
Modul Praktek Logika dan Algoritma
Fase 1:
Fase 2:
Fase 3:
Kasus:
Buatlah pola lalu lintas agar perjalanan dapat dilakukan dengan aman dengan jumlah
Fase minimal
Perjalanan yang diperbolehkan adalah D ke B, D ke A, D ke C, B ke A, B ke C
B C
53
Modul Praktek Logika dan Algoritma
Minggu Ke- 15
QUIZ
Deskripsi
Membahas tentang review materi dari pertemuan 9 sampai pertemuan 14
Tujuan pembelajaran
Setelah melakukan bagian ini mahasiswa mampu untuk memahami materi pertemuan
9 sampai pertemuan 14 dengan menjawab soal
54
Modul Praktek Logika dan Algoritma
Minggu Ke- 16
UAS
55
Modul Praktek Logika dan Algoritma
DAFTAR PUSTAKA
3. Supardi, Yuniar. 2020. Semua Bisa Menjadi Programmer Pyhon Case Study.
Elex Media Komputindo. Jakarta
9. Sjukani, Moh. 2013. Algoritma (Algoritma & Struktur Data 1) dengan C, C++
dan Java Edisi 8. Mitra Wacana Media. Jakarta.
11. Sitorus, lamhot. (2015). Algoritma dan Pemrograman. CV. Andi Offset.
12. Ramadhani, Cipta. 2015. Dasar Algoritma & Struktur Data dengan Bahasa Java.
Andi Publisher. Yogyakarta.
13. Kadir, Abdul. 2012. Algoritma & Pemrograman Menggunakan Java. Andi
Offset.Yogyakarta
14. Sriyadi; Nurhasanah; Baidawi Taufik. 2018. Sistem Pakar Diagnosa Penyakit
Ikan Nila (Oreochomis Niloticus) Berbasis Web Menggunakan Metode Forward
Chaining. PARADIGMA. Volume XX No. 2 September 2018 P-ISSN 1410-
5063 p.123-128.
15. Indriyani, Fintri. Irfiani, Eni. 2016. Sistem Pakar Diagnosa Keguguran Pada Ibu
Hamil. Konferensi Nasionak Ilmu Sosial & Teknologi (KNIST) Maret 2016
p.254-258.
56
Modul Praktek Logika dan Algoritma
17. Sonita, A., & Nurtaneo, F. (2015). Analisis Perbandingan Algoritma Bubble
Sort, Merge Sort, Dan Quick Sort Dalam Proses Pengurutan Kombinasi Angka
Dan Huruf. Jurnal Pseudocode, II(September), 75–80.
https://ejournal.unib.ac.id/index.php/pseudocode/article/view/887
57