Oleh Kelompok 6
2017
ABSTRAK
Makalah ini membahas tentang beberapa algoritma pengurutan yang biasa digunakan
pada lingkungan akademisi. Pengurutan atau Sorting merupakan suatu proses mengatur susunan
data-data menurut syarat tertentu. Meskipun pengurutan ini sepertinya hanya sebuah masalah
klasik dalm keinformatikaan, namun perannya tidak dapat dipisahkan terutama dalam
pengolahan data. Suatu pengolahan data biasanya akan lebih efisien jika datanya telah terurut,
seperti Binary Searchmisalnya. Mengingat pentingnya pengurutan dalam penggunaannya dalam
hal keinnformatikaan, maka perlu diketahui algoritma mana yang sebenarnya paling efisien
untuk dipakai. Meskipun suatu algoritma pengurutan mempunyai kelebihan dan keterbatasan
masing-masing, kompleksitas dan keefisiensiannya tetap harus dipertimbangkan. Untuk
menjelaskan masalah keefisiensian dari suatu algoritma, digunakanlah teori kompleksitas
algoritma. Maka muncullah Big-Oh sebagai notasi yang melambangkan suatu nilai keefisiensian
suatu algoritma.
Kata Pengantar
Puji syukur Penulis panjatkan kepda Tuhan yang Maha Esa, karena atas tuntunan dan
kasihnya Penulis mampu menyelesaikan makalah dengan judul Pengurutan Data dengan
insertionsort. Makalah ini di tulis dengan tujuan untuk memberikan pengetahuan untuk dapat
mempelajari dan memahami proses pengurutan dengan menggunakan metode insertionsort
secarah mudah dan sesuai dengan kebutuhan.
Dalam makalah ini juga penulis berusaha member materi secara lengkap,sederhana dan mudah di
aplikasikan
Akir kata penulis ingin mengucapakan terimakasi kepada para pembaca yang telah
menyempatkan waktu untuk membacanya. Dan selamat mencoba..
Kupang, 2017
Daftar isi
Abstrak
Kata Pengantar
Daftar isi
Bab 1 Pendahuluan
A. Lata Belakang
B. Batasan Masalah
C. Tujuan Penulisan
Bab 3. Pembahasan
A. Analisis Leksikal
B. Analisa Simantik
Bab 4. Penutup
A. Kesimpulan
B. Saran
Daftar Pustaka
BAB 1
PENDAHULUAN
A. Latar Belakang
Pengurutan adalah satu hal yang sangat penting dalam dunia keinformatikaan. Terutama
dalam pengelolaan data. Sering kali, dengan pengurutan, proses pengelolaan data dapat
dilakukan dengan lebih mudah dan efisien. Binary Search contohnya, pasti lebih efisien daripada
algoritma pencarian biasa yang lebih konvensional. Namun kita dapat melakukan Binary Search
jika data yang bersangkutan belum diurut terlebih dahulu. Ada berbagai macam algoritma
pengurutan. Namun hanya beberapa yang dipakai sebagai “pengenalan” terhadap siswa-siswa di
suatu institusi. Di antaranya adalah Selection Sort dan Insertion Sort. Kedua algoritma
Pengurutan ini lah yang menjadi fokus pembahasan pada makalah ini.
Untuk dapat mengetahui seberapa efisien suatu algoritma, dipakailah teori kompleksitas
algoritma sebagai
dasar kajian. Kompleksitas terbagi atas dua, yaitu kompleksitas waktu dan kompleksitas ruang.
Kompleksitas cenderung tidak dibahas, karena hal tersebut berkenaan dengan struktur data yang
digunakan untuk mengimplementasikan algoritma. Sementara topik tersebut di luar kajian
Matematika DiskritKompleksitas Waktu, T(n), adalah jumlah operasi yang dilakukan untuk
melaksanakan algoritma sebagai fungsidari ukuran masukan n. Maka, dalam mengukur
kompleksitas waktu dihitunglah banyaknya operasi yang dilakukan oleh algoritma. Idealnya, kita
memang harus menghitung semua operasi yang ada
B. Batasan Masalah
1. Algoritma yang dikaji hanya insertion sort.
2. Implementasi algoritma menggunakan bahasa pemrograman C++.
3. Pengujian performa dilakukan dengan membandingkan waktu eksekusi pengurutan.
4. Pengujian dibatasi dan hanya dilakukan sesuai dengan spesifikasi perangkat keras.
C. Tujuan Penulisan
1. Menerapkan algoritma insertion sort ke dalam bahasa C++.
2. Agar mahasiswa dapat memahami metode insertion sort
BAB 2
TINJAUAN PUSTAKA
Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data
pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan
membandingkannya dengan elemen data yang telah diurutkan. Karena algoritma ini bekerja
dengan membandingkan elemen-elemen data yang akan diurutkan, algoritma ini termasuk pula
dalam comparison-based sort.
Ide dasar dari algoritma Insertion Sort ini adalah mencari tempat yang “tepat” untuk
setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah
elemen array yang diproses ke tempatnya yang seharusnya. Proses dilakukan sebanyak N-1
tahapan (dalam sorting disebut sebagai “pass“), dengan indeks dimulai dari 0.
Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara
membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan
data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan
sesuai dengan posisi yang seharusnya.
Kelebihan
Kekurangan
1. Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk elemen larik.
2. Untuk larik yang jumlahnya besar ini tidak praktis.
3. Jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai dan
mengganti seluruh bagian sebelum menyisipkan elemen berikutnya.
4. Membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak cocok dalam
pengurutan elemen dalam jumlah besar.
Bagian biru/abu-abu (dua bilangan pertama) sekarang dalam keadaan terurut secara relatif.
Berikutnya, kita perlu menyisipkan bilangan ketiga (4) ke dalam bagian biru/abu-abu sehingga
setelah penyisipan tersebut, bagian biru/abu-abu tetap dalam keadaan terurut secara relatif;
Caranya:
pertama : Ambil bilangan ketiga (4).
Kedua : Geser bilangan kedua (10) shg ada ruang untuk disisipi.
Sekarang, tiga bilangan pertama sudah terurut secara relatif dan kita sisipkan bilangan keempat
kepada tiga bilangan pertama tsb. Setelah penyisipan, empat bilangan pertama haruslah dalam
keadaan terurut secara relatif.
PEMBAHASAN
#include <stdio.h>
int main()
int n, array[1000], c, d, t;
scanf("%d", &n);
scanf("%d", &array[c]);
d = c;
t = array[d];
array[d] = array[d-1];
array[d-1] = t;
d--;
printf("%d\n", array[c]);
return 0;
}
URUTAN TEKNIK KOMPILASI
A. Analisis Leksikal
Analisis Leksikal Terdiri Dari beberapa bagian yakni :
Identifier(Keyword)Bisa berupa keywords atau nama. Keywords adalah kata kunci yang sudah
didefinisikan oleh suatu bahasa seperti INCLUDE, END, IF, COUT didalam C++.
2 Int
3 Cout
4 If Identifier (Keyword)
5 Getche
6 For
7 Auto
8 Break
9 Case
10 Char
11 Const
12 Continue
13 Default
14 Do
15 Double
16 Else
17 Extern
18 Float
19 Goto
20 Long
21 Endl
Identifier (Variable)
2 i
3 n
5 Pos
6 Value
7 Underscore ( _ )
Nilai Konstanta
Suatu konstanta yang terdapat dalam program, bisa berupa konstanta integer, real, boolean,
character, string.
done := true
done := true
else
begin
a[pos] := a[pos-1];
pos := pos-1
end
Operator misalnya operator aritmatika (+, - , * , / , ) operator logika (<, =, >). Delimeter berguna
sebagai pemisah/pembatas, misalnya: ( ) , ; , :, white-space. White-space adalah pemisah yang
diabaikan di program seperti spasi, karakter enter (carriage return), ganti baris (Line Feed),
akhir file (End of file).
2 > Operator
3 [ Delimeter
4 ] Delimeter
5 ; Delimeter
6 : Delimeter
7 := Delimeter
8 “ Delimeter
9 ( Delimeter
10 ) Delimeter
11 { Delimeter
12 } Delimeter
B. Analisa Semantik Berupa
Postfix
Dari program sederhana yang telah dibuat dapat ditentukan notasi postfix
else 6.-1
7.done
Triple Notation
Dari program sederhana yang telah dibuat dapat ditentukan notasi triple sebagai
berikut:
Listning Notasi
else
Quardruples Notation
Dari program sederhana yang telah dibuat dapat ditentukan notasi quardruples
sebagai berikut:
Listning Notasi
if pos <= 1
done := true
else if
done := true
else
PENANGANAN SINTAKS ERROR
Cara mengatasi : tambahkan ; (titik koma) setelah sintaks printf (“masukan banyak elemen
”)
Cara mengatasi : tambahkan - (tanda kurang) pada sintaks while ( d > 0 && array[d] <
array[d-1])
Penyebab : terdapat symbol yang kurang
Cara mengatasi : tambahkan ] (tutup kurung siku) pada sintaks array[d] = array[d-1];
A. KESIMPULAN
KESIMPULAN Dari hasil implementasi maupun pengujian yang telah dilakukan dapat
ditarik beberapa kesimpulan sebagaimana berikut ini: 1. Dari hasil pengujian diketahui
bahwa algoritma
B. SARAN
Perlu di lakukan uji tingkat kelayakan media pembelajaran mata kuliah Algoritma
Pemrograman bab pengurutan data (data sorting).
DAFTAR PUSTAKA
[1] Anonim. C++ Algorithms Sample Source Codes > Merge Sort.
http://www.cplusplus.happycodings.com /Algorithms/code17.html. Diakses pada 18 Mei 2011.
[2] Anonim. Rand.