Anda di halaman 1dari 10

MAKALAH IX ALGORITMA DAN DASAR

PEMROGRAMAN

“ALGORITMA PENGURUTAN”

Dosen Pengampu:

Amirhud Dalimunthe, S.T.,M.Kom.

Disusun Oleh:

KELOMPOK 2

Annisa Rezekika Siregar ( 5173351003 )

Dalilati Husnah ( 5173151015 )

Natalia Tampubolon ( 5173151027 )

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

PROGRAM STUDI PENDIDIKAN TEKNOLOGI INFORMATIKA & KOMPUTER

UNIVERSITAS NEGERI MEDAN


KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Esa atas limpahan rahmat
dan karunianya kami dapat menyelesaikan makalah yang berjudul ”ALGORITMA
PENGURUTAN ”.
Kami juga mengucapkan terimakasih yang sebesar-besarnya kepada Bapak Amirhud
Dalimunthe, S.T.,M.Kom. Selaku dosen mata kuliah Algoritma dan Dasar Pemrograman
yang sudah memberikan kepercayaan kepada kami untuk menyelesaikan tugas ini.
Kami sangat berharap makalah ini dapat bermanfaat dalam menambah pengetahuan
mengenai “ALGORITMA PENGURUTAN”.
Kami pun menyadari bahwa di dalam makalah ini masih terdapat banyak kekurangan
dan jauh dari kata sempurna. Oleh sebab itu, kami mengharapkan adanya kritik dan saran
demi perbaikan makalah yang akan kami buat di masa yang akan datang, mengingat tidak ada
sesuatu yang sempurna tanpa saran yang membangun.
Mudah-mudahan makalah sederhana ini dapat dipahami oleh semua orang khususnya
bagi para pembaca. Kami mohon maaf yang sebesar-besarnya jika terdapat kata-kata yang
kurang berkenan.

Medan, 02 Desember 2017


BAB I
PENDAHULUAN

A. LATAR BELAKANG
Persoalan pengurutan merupakan persoalan yag sanagat menarik perhatian para ilmuan
sains komputer, karena untuk persoalan yang sama terdapat puluhan algoritma pengurutan
yang sudah ditemukan orang. Pada dasarnya riset tentang algoritma bertujuan untuk
memperoleh algoritma pengurutan yang lebih mangkus. Pegurutan menjadi penting saat ini
karena volume data yang perlu diurutkan semakin lama semakin besar (big data).
Data yang sudah terurut memiliki beberapa keuntungan. Selain mempercepat waktu
pencarian, dari data yang terurut kita dapa langsung memperoleh nilai maksimum dan nilai
minimum. Untuk data numerik yang terurut menurun, nilai max adalah elemen pertama lari,
dan nilai minimum adalah elemen terakhir larik.

B. RUMUSAN MASALAH
1. Apa itu Pengurutan pada algoritma?
2. Apa saja yang terdapat pada pengurutan algoritma?

C. TUJUAN PENULISAN
1. Mampu menjelaskan defenisi algoritma pengurutan
2. Mampu memahami pelajaran algoritma pengurutan
3. Dapat memperaktikan algoritma pengurutan.
BAB II
PEMBAHASAN

A. MASALAH PENGURUTAN

Pengurutan (sorting) adalah proses mengatur sekumpulan objek berdasarkan susunan


tertentu [WIR76]. Secara formal, persoalan pengurutan kita tuliskan sebagai berikut:

Diberikan sebuah larik L dengan n elemen. Urutan larik tersebut sehingga tersusun secara
menaik sedemikian sehingga L[1] ≤ L[2] ≤ L[3≤...≤L[n]. Data yang akan diurutkan dapat
berupa data bertipe dasar atau bertipe terstruktur (record). Jika data bertipe terstruktur, maka
harus dispesifikasikan berdsarkan field apa data tersebut diurutkan. Field yang dijadikan
dasar pengurutan dikenal sebagai field terkunci.

Berikut beberapacontoh data yang terurut:

i. 23,27,45,67,100,130,501

(data bertipe integer terurut menaik)

ii. 50,27,31.09,20.32,19.00,-5.20,-10.19

(data bertipe rill terurut menurun)

iii. ‘d’,’e’,’g’,’i’,’x’

(data bertipe karakter terurut menaik)

iv. ‘amir’,’badu’,’budi’,’dudi’,’eno’,’rudi’,’zamzami’

(data bertipe string terurut menaik)

Suatu pengurutan dikatakan stabil jika dua atau lebih data yang sama (atau identik)
tetap pada urutan yang sama setelah pengurutan. Misalya di dalam sekelompok data integer
berikut terdapat 3 buah nilai 12 (diberi tanda petik’,”, dan”’ untuk mengidentifikasi
urutannya.

70,12’,45,10,12”,33,50

Jika suatu metode pengurutan menghasilkan susunan data terurut seperti berikut:
10,12’,12”,12”’,33,45,50,60,70

Maka pengrutannya dikatakan stabil dan metode pengurutannya disebut metode stabil.
Tetapi jika suatu metode pngurutan menghasilkan susunan data terurut seperti contoh berikut:

10,12’,12”,12”’,33,45,50,60,70

Maka pengurutan dan metodenya kita katakan tidak stabil.

kestabilan pengurutan mungkin penting atau tidak penting [PAR95]. Jika kita
menggunakan metode pengurutan yang stabil, maka kita tidak memperoleh hasilpengurutan
yang kita inginkan begitu juga sebaliknya.

B. ALGORITMA PENGURUTAN

Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam-macam


algoritma pengurutan. Banyak algoritma pengurutan yang telah ditemukan. Hal ini
menunjukan bahwa persoalan pengurutan adalah persoalan yang kaya dengan solusi
algoritma. Beberapa algoritma pengurutan yang sudah dikenal antara bubble sort, selection
sort, insertion sort, heap sort, shell sort, quick sort, merge sort, radix sort, tree sort, dll.

Semua algoritma pengurutan selalu melakukan operasi prbandingan elemen untuk


menemukan posisi urutan yang tepat. Seperti halnya pada pencarian, algorima pengurutan
juga dapat diklarifikasikan sebagi algoritma pengurutan internal dan algoritma pengurutan
eksternal.

1. Algortima pengurutan internal, yaitu algoritma pengurutan untuk data yang disimpan
di dalam memori komputer. Umumnya struktur internal yang dipakai untuk
pengurutan internal adalah larik, sehingga pengurutann internal disebut juga
pengurutan larik.
2. Algoritma pengurutan eksternal, yaitu algoritma pengurutan untuk data yang disimpan
di dalam dsik storage, disebut juga pengurutan arsip (file), karena struktur eksternal
yang dipakai adalah arsip.
C. ALGORITMA PENGURUTAN APUNG

Algorima pengurutan apung (buble sort) diinspirasi oleh gelembung sabun (bubble) yang
berada diatas permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat
jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Secara umum, benda-
benda yang berat akan terbenam dan benda-benda yang ringan akan terapung ke atas
permukaan. Prinsip pengapungan juga digunakan pada pengurutan apung. Apabila kita
menginginkan larik terurut menaik, maka elem larik yang berharga paling kecil
“diapungkan”, artinya diangkat ke “atas” melalui proses pertukaran. Jika lrik memiliki n
elemen, maka proses pengapungan ini dilakukan sebanyak n – 1 langkah (satu langkah disebt
juga satu kali pass) dengan n adalah ukuran larik. Pada akhir setiap pass ke-i larik [1...n] akan
terdiri atas dua bagian yaitu bagian yang sudah terurut, yaitu L[1..i], dan bagian yang belum
terurut, L[i+1..n] setelah pass terakhir, diperoleh larik L[1..n] yang terurut menaik.

I. Algoritma Pengurutan Apung untuk Pengurutan Menaik

Algoritma pengurutan apung membandingkan elemen-elemen larik dari kanan ke kiri


( atau dari bawah ke atas jika larik dianggap vertikal). Untuk mendapatkan larik yang
elemen-elemennya terurut menaik, maka algoritma pengurutan apung secara garis besar
adalah sebagai berikut:

Untuk setiap pass i = 1,2,...n-1, lakukan:

Untuk setiap k = n,n-1,...,i+1, lakukan:

Bandingkan L[k] DENGAN L[k-1]. Jika L[k] < L[k-1], maka

Pertukaran L[k] dengan L[k-1]

Rincian setiap pass sebai berikut:

Pass 1 : untuk setiap k =n, n-1,...,2, bandingkan L[k] dengan L[k-1]. Jika L[k] < L[k-1],
pertukaran L[k] dengan L[k-1].

(pada akhir pass 1, L[1] berisi nilai minimum pertama

Pass 2 : untuk setiap k = n,n-1,...,3, bandingkan L[k] dengan L[k-1]. Jika L[k]<L[k-1],
pertukaran L[k] dengan L[k-1].
(pada akhir pass 2, elemen L[2] berisi harga minimum kedua, larik L[1..2] terurut,
sedangkan L[3..n] belum terurut).

Pass n-1 : untuk setiap k = n bandingkan L[k] dengan L[K-1]. Jika L[k] < L[k-1],
pertukaran L[k] dengan L[k-1].

Pada akhir pass n-1, elemen L[n-1] berisi nilai minimum ke-(n-1) dan larik L[1..n-1]
terurut menaik. Elemen yang tersisa adalah L[n], tidak perlu diurut karena hanya satu-
satunya.

II. Algoritma Pengurutan Apung untuk Pengurutan Menurun

Untuk memperoleh larik yang terurut menurun, kita melakukan proses sebaliknya,
yaitu melemparkan elemen yang bernilai maksimum ke atas (atau ke ujung “kiri” larik).

D. ALGORITMA PENGURUTAN SELEKSI

Algoritma pengurutan ini disebut pengurutan seleksi (selection sort) karena gagasan
dsarnya adalah memilih elemen max/min dari larik, lalu menempatkan elemen max/min it
pada awal atau akhir larik (elemen terujung). Selanjutnya elemen terujung tersebut “diisolasi”
dan tidak disertakan pada proses selanjutnya. Proses yang sama diulang untuk elemen-elemen
larik yang tersisa, yaitu memilih elemen max/min berikutnya dan mempertukarkannya
dengan elemen terujung larik tersisa. Algortima pengurutan seleksi mirip dengan pengurutan
kartu, kecuali tidak terdapat proses pertukaran kartu. Kartu dengan nomor terkecil di cari, lalu
ditempatkan pada posisi paling atas. Selanjutnya kartu dengan nomor terkecil kedua dicari,
lalu ditempatkan pada posisi kedua, demikian seterusnya sampai seluruh kartu sudah terurut
membesar berdasarkan nomor.

Ada dua variasi algoritma pengurutan seleksi ditinjau dari pemilihan elemen max/min, yaitu:

1. Algoritma pengurutan seleksi-minimum, yaitu memilih elemen minimum sebagi basis


pengurutan.
2. Algoritma pengurutan seleksi-minimum, yaitu memilih elemen maksimum sebagai
basis pengaturan.

I. Algoritma Pengurutan Seleksi-Minimum


Di dalam algoritma pengurutan seleksi-minimum, basis pencarian adalah elemen
minimum(terkecil). Elemen minimum ditempatkan di awal larik (jika larik diinginkan
terurut menaik) atau ditempatkan di akhir larik (jika larik diinginkan terurut menurun).
Misalkan kita ingin mengurutkan larik dalam susunan menaik. Secar garis besar,
pengurutan seleksi-minimum adalah sebagai berikut:

Untuk setiappass i = 1,2,...,n-1 lakukan:

1. Cari elemen terkecil (min) mulai dari elemen ke-i sampai elemen ke-n;
2. Pertukarkan min dengan elemen ke-i

Rincian setiap pass adalah sebagai berikut:

Pass 1: cari elemen minimum di dalam L[1..n] pertukarkan elemen terkecil


dengan elemen L[1]

Pass 2: cari elemen minimum di dalam L[16..n] pertukarkan elemen terkecil


dengan elemen L[2]

Pass 3: cari elemen minimum di dalam L[3..n] pertukarkan elemen terkecil


dengan elemen L[3]

Pass n-1: cari elemen minimum di dalam L[n-1..n] pertukarkan elemen terkecil
dengan elemen L[N-1]

(elemen yang tersisa adalah L[n], tidak perlu diurut karena ha ya satu-satunya)

II. Algoritma Pengurutan Seleksi- Maksimum

Misalkan kita ingin mengurutkan larik dalam susunan menaik. Secar garis besar,
pengurutan seleksi-maksimum adalah sebagai berikut:

Untuk setiap pass ke-i = n,n-1,...,2 lakukan:

1. Cari elemen terbesar (maks) mulai dari elemen ke-1 sampai elemen ke-i;
2. Pertukarkan maks dengan elemen ke-i
Rincian setiap pass adalah sebagai berikut:

Pass n: cari elemen maksimum di dalam L[1..n] pertukarkan elemen terkecil


dengan elemen L[n-1]

Pass n-2: cari elemen maksimum di dalam L[1..n-2] pertukarkan elemen


terkecil dengan elemen L[n-2]

Pass 2: tentukan elemen maksimum di dalam L[1..2] pertukarkan elemen


terkecil dengan elemen L[2]

(setelah pass 2, elemen yang tersisa adalah L[1], tidk perlu diurutkan lagi
karena hanya satu-satunya.

E. ALGORITMA PENGURUTAN SISIP

Dari namanya, pengurutan sisip (insertion sort) adalah algoritma pengurutan dengan
car menyisipkan elemen larik pada posisi yang tepat. Pencarian posisi yang tepat
dilakukan dengan menyisir larik selama penyisiran dilakukan pergeseran elemen larik.
Algoritma pengurutan sisip cocok untuk persoalan menyisipkan elmen baru ke dalam
sekumpulan elemen yang sudah terurut.

I. Algoritma Pengurutan Sisip untuk Pengurutan Menaik

Untuk mendaptkan larik yang terurut menaik, algoritma pengurutan sisip secara garis
besar ditulis sebagi berikut:

Untuk setiap pass i=2,...,n lakukan:

1. Y ←L[i]
2. Sisipkan y pada tempat yang sesuai di antara L[1]...L[i]

Rincian setiap pass sebagai berikut:


Asumsikan: L[1] dianggap sudah pada tempatnya

Pass 2: elemen y = L[2] harus dicari tempatnya yang tepat di dalam L[1..2] dengan
cara menggeser elemen-elemen L[1...1] ke kanan (atau kebawah jika larik
dibayangkan verikal) jika L[1..1] lebih besar daripassa L[2]. Misalkan posisi yang
tepat adalah k. Sisipkan L[2] pada L[K].

Pass 3: elemen y = L[3] harus dicari tempatnya yang tepat di dalam L[1..3] dengan
cara menggeser elemen-elemen L[1...2] ke kanan jika L[1..2] lebih besar daripada
L[3]. Misalkan posisi yang tepat adalah k. Sisipkan L[3] pada L[K].

Pass n: elemen y = L[n] harus dicari tempatnya yang tepat di dalam L[1..n] dengan
cara menggeser elemen-elemen L[1..n-1] ke kanan jika L[1..n-1] lebih besar daripassa
L[n]. Misalkan posisi yang tepat adalah k. Sisipkan L[n] pada L[K].

Hasildari pass n: larik L[1..n] sudah terurut menaik, yaitu L[1] ≤ L[2] ≤...≤L[n].

I. Algoritma Pengurutan Sisip untuk Pengurutan Menurun

Algoritma pengurutan sisip untuk memperoleh elemen larik yang terurut menurun.

J. PENGURUTAN PADA ARRAY TERSTRUKTUR

Algotima pengurutan yang dibahas sebelum ini menggunakan larik dengan elemen-
elemen bertipe sederhana. Pada sebagian besar kasus, elemen larik sering bertipe
terstruktur. Sebagi contoh, misalkan TabMhs adalah sebuah larik yang disetiap
elemennya menyatakan data nilai ujian seorang mahasiwa untuk satu mata kuliah (MK)
yang ia ambil. Data setiap mahasiswa adalah NIM, nama mahasiswa, mata kuliah yang ia
ambil, dan nilai mata kuliah tersebut.

Selama proses entry data mahasiswa, data dimasukkan secara acak (tidak terurut
berdasarkan NIM). Kita dapat mengurutkan sekumpulan data mahasiwa tersebut dengan
algoritma pengurutan.

Anda mungkin juga menyukai