Anda di halaman 1dari 11

LAPORAN PRAKTIKUM IV

DESAIN ANALISIS ALGORITMA

Disusun Oleh :
NAMA : SARINA LABOK
NIM : 21330002

JURUSAN INFORMATIKA FAKULTAS TEKNIK


UNIVERSITAS JANABADRA
YOGYAKARTA
2022
DAFTAR ISI

DAFTAR ISI..........................................................................................................II
PENDAHULUAN...................................................................................................1

1. PERSIAPAN....................................................................................................1
a. Perangkat Keras...................................................................................... 1
b. Perangkat Lunak...................................................................................... 1
2. DASAR TEORI............................................................................................... 1

PELAKSANAAN PRAKTIKUM.........................................................................4
TUGAS....................................................................................................................6
PENUTUP...............................................................................................................8

1. KESIMPULAN................................................................................................ 8
2. SARAN.......................................................................................................... 8

DAFTAR PUSTAKA.............................................................................................9

ii
PENDAHULUAN

1. Persiapan
a. Perangkat Keras
 Laptop
b. Perangkat Lunak
 Aplikasi MS Word
 Aplikasi collab (phython)

2. Dasar Teori
Divide and Conquer (D&C) adalah algoritma pemrograman yang melakukan
pemecahan masalah menjadi dua sub-masalah secara rekursif sampai setiap
sub-masalah cukup sederhana untuk diselesaikan secara langsung. Tiap
solusi dari masing-masing sub-masalah akan digabungkan untuk
mendapatkan solusi dari masalah utama tersebut. Algoritma D&C menjadi
basis dari algoritma-algoritma efisien untuk masalah-masalah seperti sorting
(quick sort, merge sort) dan transformasi diskrit Fourier.
Dasar dari algoritma ini dikemukakan pertama kali oleh Anatolii Karatsuba
Alexeevich pada tahun 1960 sebagai algoritma perkalian dua buah angka n-
digit dengan kompleksitas algoritma O(n.2log3). Algoritma ini sekarang
dikenal dengan nama Algoritma Karatsuba, membuktikan bahwa ada
algoritma perkalian yang lebih cepat dari O(n2) [Kolmogorov, 1956]. Buah
pikiran Kolmogorov dan penemuan Karatsuba kemudian membantu merintis
penelitian performa algoritma.
Algoritma Divide and Conquer secara natural diimplementasikan secara
rekursif sebagai pemanggilan prosedur dalam dirinya sendiri. Sub-masalah-
sub-masalah akan dikerjakan dalam procedure-call stack. Setiap sub-masalah
yang merupakan hasil pembagian dari masalah utama biasanya dibagi tanpa
menimbulkan overlapping sehingga tidak ada pengerjaan redundan. Semuanya
akan dimasukkan ke dalam stack dan dikerjakan mulai dari submasalah terkecil.

Praktikum Desain Analisis Algoritma 1


Terdapat dua metode sorting paling umum yang dipakai dalam implementasi
algoritma Divide and Conquer, yaitu quick sort dan merge sort (di luar kedua
ini masih ada metode lain seperti (insertion sort). Keduanya berfungsi untuk
mengurutkan sebuah array berisi nilai-nilai yang acak dengan cara
mengurutkan sebagian dari array terlebih dahulu sebelum mengurutkan semua
array secara keseluruhan.Pembahasan mendalam akan menjelaskan lebih,
tetapipada saat ini yang akan dibahas adalah metode sorting merge sort dan
heap sort.
Pengertian

1. Insertion Sort
Insertion Sort merupakan algoritma yang efisien untuk mengurutkan angka
yang mempunyai jumlah elemen sedikit. Dimana:- Input : deretan angka
sejumlah n buah Output : permutasi (pengurutan) sejumlah n angka dari input
yang sudah terurut secara ascending maupun descending.Metode penyisipan
(Insertion sort) bertujuan untuk menjadikan bagian sisi kiri array terurutkan
sampai dengan seluruh array berhasil diurutkan. Metode ini mengurutkan
bilangan-bilangan yang telah dibaca; dan berikutnya secara berulang akan
menyisipkan bilangan-bilangan dalam array yang belum terbaca ke sisi kiri
array yang telah terurut. Insertion Sort bekerja seperti banyak orang yang
sedang mengurutkan kartu di tangan. Dimulai dengan tangan kiri yang kosong
dan kartunya tertumpuk di meja. Selanjutnya kita ambil satu persatu kartu di
meja dan diletakkan di tangan kiri dengan posisi yang benar (terurut). Untuk
menemukan posisi yang banar, maka kita harus membandingkan satu persatu
kartu yang ada (di tangan kiri) secara berurutan.
2. Merge Sort
Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang
dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data
yangtidak memungkinkan untuk ditampung dalam memori komputer karena
jumlahnyayang terlalu besar. Merge sort berfungsi untuk mengurutkan sebuah
array berisi nilai-nilai yang acak dengan cara mengurutkan sebagian dari array
terlebih dahulu sebelum mengurutkan semua array secara keseluruhan. Berikut
menjelaskan langkah kerja dari Merge sort.

2
a. Divide adalah membagi masalah menjadi beberapa upaya masalah yang
mmiliki kemiripan dengan masalah semula namun berukuran lebih kecil
(idealnya berukuran hampir sama). Dan membagi elemen – elemen dari
rangkaian data menjadi dua bagian.
b. Conquer adalah memecahkan (menyelesaikan) masing-masing upaya
masalah (secara rekursif). Dan memberi solusi pada setiap bagian dengan
memanggil prosedur merge sort.
c. Combine adalah menggabungkan solusi masing-masing upaya masalah
sehingga membentuk solusi masalah semula dan menggabungkan dua
bagian tersebut secara rekursif untuk mendapatkan rangkaian data
berurutan.
Algoritma pengurutan data mergesort dilakukan dengan menggunakan cara divide
and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian
kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian
dimana bagian pertama merupakan setengah (jika data genap) atau setengah
minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan
kembali untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok.
Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama
apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-
tengah+1 dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-
tengah digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya
sampai menjadi satu blok utuh seperti awalnya. Sehingga metode mergesort
merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya.

3
PELAKSANAAN PRAKTIKUM
Menentukan program algoritma devide and conquered dengan metode
1. Insertion sort
Kode program dan hasilnya :

2. Menentukan program algoritma devide and conquered dengan metode Mergsort


Kode program dan hasilnya :

4
5
TUGAS

1. Mahasiswa menambahkan coding python untuk diuraikan awal proses awal


pengurutan hingga selesai terurut.
Kode program dan hasilnya :

2. Menentukan program algoritma devide and conquered dengan metode Merge


sort. Mahasiswa melakukan ujicoba dengan data dan jumlah yang berbeda ?
Kode program dan hasilnya :

6
7
PENUTUP

1. Kesimpulan
Setelah melaksanakan kegiatan praktikum ini saya bisa mebuat algoritma
Insertion sort.

2. Saran
Untuk praktikum saat ini belum ada

8
DAFTAR PUSTAKA

 Referensi dari Modul pratikum 4

Anda mungkin juga menyukai