Atas lukaku
Atas air mataku
Atas kecewaku
Atas apapun yang mengatasnamakan aku
Kau tidak bersalah, bagaimanapun itu,,,
Biarlah semua ini yang bertaggug jawab adalah AKU
BAHAGIA, tugasmu hanya itu,,
Kau tak perlu mencemaskanaku
Selama kau baik-baik saja, keadaanku pun sama
Biarlah lukaku disembuhkan oleh waktu
Begitu juga dengan rindu
Karena aku sadar,,,
Ada hal-hal yang memang tidak bisa dipaksakan oleh kehendakku, tterlebih atasmu
Andai aku tahu,,,
Aku mencintaimu bahkan lebih hebat dari bayanganmu
Aku menyayangiu dengan setulus-tulusnya hati
Namun sayangnya kau menutup diri
~chh~
Kau memilih lari dan pergi menyia
Saat ini,
Hal yang terbaik yang bisa aku berikan adalah mendoakanmu
Karena hanya dengan ini aku bisa menyentuhmu
Dan saat ini aku mengerti,,
Alasan Tuhan menciptakan air mata.
Karena selain waktu, airmatalah yag akan menyembuhkan luka-luka
Ingatlah,,,
Monday, 23 November 2015
Kamu
Teruntuk dirimu yang selalu dan tak pernah berhenti ada dalam pikiran ini
Teruntuk dirimu yang selalu bersemayam dalam lubuk hati ini
Kini ku terjebak mencintaimu dalam diamku
Ada apa denganku?
Apa kau pikir ini mudah?
Apakah kita bisa bertukar posisi?
Bukankah kau sangat beruntung dicintai dengan begitu hebatnya?
Bahkan smpai aku pernah lupa dengan sang Pemilik Cinta yang menghadirkan cinta
Lalu apa yang kuharapkan?
Jelaslah balasan darimu.
Tapi itu dulu,,,
Dulu sebelum aku menyadari apa arti cinta sesungguhnya
Dan aku berterimakasih kepadamu
Karena kau tak memberiku balasan
Andai kau beri sedikit saja balasan,
Mungkin aku akan tetap tersipu hanya kepadamu dan melupakan Kebesaran Tuhanku
Sadarku kini hati tak seharusnya ku tambatkan sepenuhnya pada makhluk
Aku yang mencinta akupun yang bersalah,
Bersalah karena sangat berharap pada makhluk-Nya
Kenapa aku seperti ini?
Itu yang selalu menjadi pertanyaan untuk diriku sendiri
Selagi masih nafas ini berhembbus,
Ku yakin Tuhanku masih menuntunku untuk kembali
Kembali berharap pada-Nya
Berharap kelak Dia akan menghadirkanmu yang selama ini ku nanti
Diam yang akan menciptakan damai hati,
Hati yang tenang bersama sang Pemilik Hati
Teruntuk dirimu yang selalu bersemayam dalam lubuk hati ini
Kini ku terjebak mencintaimu dalam diamku
Ada apa denganku?
Apa kau pikir ini mudah?
Apakah kita bisa bertukar posisi?
Bukankah kau sangat beruntung dicintai dengan begitu hebatnya?
Bahkan smpai aku pernah lupa dengan sang Pemilik Cinta yang menghadirkan cinta
Lalu apa yang kuharapkan?
Jelaslah balasan darimu.
Tapi itu dulu,,,
Dulu sebelum aku menyadari apa arti cinta sesungguhnya
Dan aku berterimakasih kepadamu
Karena kau tak memberiku balasan
Andai kau beri sedikit saja balasan,
Mungkin aku akan tetap tersipu hanya kepadamu dan melupakan Kebesaran Tuhanku
Sadarku kini hati tak seharusnya ku tambatkan sepenuhnya pada makhluk
Aku yang mencinta akupun yang bersalah,
Bersalah karena sangat berharap pada makhluk-Nya
Kenapa aku seperti ini?
Itu yang selalu menjadi pertanyaan untuk diriku sendiri
Selagi masih nafas ini berhembbus,
Ku yakin Tuhanku masih menuntunku untuk kembali
Kembali berharap pada-Nya
Berharap kelak Dia akan menghadirkanmu yang selama ini ku nanti
Diam yang akan menciptakan damai hati,
Hati yang tenang bersama sang Pemilik Hati
Labels:
Rury
Selection Sort Pada Bahasa Pemrograman C#
MAKALAH
STRUKTUR DATA
SELECTION
SORT
Dosen pengampu: Dr.MUHAMMAD FAISAL,S.Kom., M.T
Oleh:
Ruri Nur Aini NIM.12650022
Kelas A
JURUSAN
TEKNIK INFORMATIKA
FAKULTAS
SAINS DAN TEKNOLOGI
UNIVERSITAS
ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG, 2015
A. SEJARAH
ALGORITMA
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai
sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti
proses menghitung dengan angka arab. Dikatakan algorist jika
Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan
asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah
matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Ja’far Muhammad
Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis
buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya
“Buku pemugaran dan pengurangan” (The book of restoration and
reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra).
Perubahan kata dari algorism menjadi algorithm muncul karena kata
algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm
berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah
menjadi hal yang biasa, maka lambat laun kata algorithm
berangsur-angsur dipakai
sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna
kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
Abu Abdullah Ibnu Musa
al-Khawarizmi (770M-840M) lahir di Khawarizm (Kheva), kota yang berada di
selatan Sungai Oxus (sekarang disebut Uzbekistan) pada
770 M. Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya. Ada beberapa
cabang ilmu matematika yang berhasil ditemukannya,
antara lain yang dikenal sebagai astronom dan geografer.
Pada 1950, algoritma pertama
kali digunakan pada Algoritma Eucliden (Euclid Algorithm). Euclid sendiri
merupakan seorang matematikawan Yunani yang lahir sekitar 350 SM. Euclid
menulis buku yang berjudul Element.
Di dalam buku tersebut,
dijelaskan langkah-langkah untuk menemukan pembagi bersama terbesar (common
greatest divisor) dari dua bilangan bulat, yakni m dan n.
Namun, Eucliden pada saat itu tidak menyebutkan bahwa cara yang digunakannya
adalah metode algoritma. Hal tersebut baru
disebut sebagai algoritma pada abad-abad modern.
B. DEFINISI DAN CIRI-CIRI ALGORITMA
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis. Kata logis merupakan
kata kunci dalam algoritma.
Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma
adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.
Lima ciri yang harus dipunyai algoritma agar menjadi
algoritma yang benar adalah sebagai berikut.
1.
Algoritma harus berhenti setelah
mengerjakan langkah terbatas. Dalam hal ini, jika
langkah-langkah yang ada telah dipenuhi dan telah dieksekusi, algortima
haruslah berhenti.
2.
Setiap langkah harus didefinisikan
agar tidak memiliki arti dua (ambiguous).
3.
Algoritma mempunyai nol atau lebih
masukan (input).
4.
Algoritma mempunyai nol atau lebih
keluaran (output).
5.
Algoritma haruslah efektif, yakni mempunyai langkah yang
sederhana agar dapat dikerjakan dengan waktu yang efektif.
C.
ALGORITMA SORTING
Sorting
adalah sebuah proses merangkai benda dalam urutan tertentu dan/atau dalam
himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum yang
berbeda:
- pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang teratur.
- kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat yang serupa.
Ada dua
bentuk sorting yaitu secara ascending dan descending. Sorting secara ascending
adalah cara mengurutkan data mulai data bernilai terkecil sampai terbesar.
Sedangkan descending mengurutkan data mulai dari data terbesar sampai terkecil.
Sebagai contoh misalkan diberikan data berupa bilangan berikut ini:
3 9 1 4 0 2
Hasil
sorting ascending adalah 0 1 2 3 4 9, sedangkan hasil secara descending adalah 9 4 3 2 1
0.
Algoritma sorting terdiri dari
beberapa algoritma seperti Bubble sort, Quick sort, Selection sort, Insertion
sort, dan Merge sort yang di mana setiap jenis sorting ini memilki perbedaan
satu sama lainnya. Berikut ini merupakan pembahasan umum mengenai jenis-jenis
algoritma sorting yang telah dijelaskan di atas.
a. Selection Sort
1.
Sejarah
Mr.
Selection adalah seorang guru bahasa inggris. Tiga bulan sekali, dia membawa
pulang kertas ujian untuk dievaluasi. Saat evaluasi selesai, kertas-kertas
ujian tersebut disusun di mana nilai tertinggi di susunan pertama dan nilai
terendah di susunan terakhir. Dia
memiliki kebiasaan membagi-bagikan kertas ujian tersebut kepada siswa-siswanya
sambil memberikan pujian kepada siswa yang memilki nilai tertinggi dan
memberikan teguran kepada siswa dengan nilai terendah.
Mr. Selection juga sering diberi tugas oleh
ibunya untuk menyusun kertas-kertas ujian. Dia memutuskan untuk menyusun
kertas-kertas tersebut dengan mengikuti strategi berikut:
1) Menempatkan semua lembaran kertas secara
bersebelahan.
2) Mengamati dari kiri ke kanan untuk menemukan
kertas siswa yang memperoleh nilai tertinggi.
3) Mengambil kertas tersebut menempatkannya secara
tertelungkup di meja lain.
4) Mengamati kembali kertas-kertas yang tersisa
dari kiri ke kanan dan menemukan kertas dengan nilai tertinggi berikutnya.
5) Menempatkan kertas tersebut secara tertelungkup
di atas kertas yang berada di meja lain.
Sepuluh tahun
kemudian, ketika dia harus menulis sebuah program untuk mengurutkan
nilai-nilai, dia teringat pada strategi yang pernah dia terapkan dalam
penyusunan kertas ujian. Dia kemudian melakukan hal yang sama pada program
tersebut dan algoritma tersebut diberi nama selection sort.
2.
Pengertian
Selection sort adalah metode pengurutan dengan cara mencari data yang
terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau
sering dinamakan pivot.
3.
Algoritma
Algoritma selection sort dapat dirangkum sebagai berikut:
Ø Temukan nilai yang paling minimum di dalam struktur data. Jika
ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika
descending, maka temukan nilai yang paling maksimum.
Ø Tukar nilai tersebut dengan nilai pada posisi pertama di bagian
struktur data yang belum diurutkan.
Ø Ulangi langkah di atas untuk bagian struktur data yang tersisa.
Contoh:
D.
APLIKASI
ALGORTIMA SORT
Algoritma sort banyak
digunakan pada berbagai aplikasi. Berikut adalah beberapa aplikasi algoritma
sort.
- Komersial komputasi organisasi Pemerintah, lembaga keuangan, dan perusahaan komersial mengatur banyak informasi dengan penyortiran. Dari informasi itu account akan diurutkan berdasarkan nama atau nomor, transaksi yang akan diurutkan berdasarkan waktu atau tempat, mail yang akan diurutkan berdasarkan kode pos atau alamat, file yang akan diurutkan berdasarkan nama atau tanggal, atau apa pun, mengolah data tersebut pasti melibatkan algoritma sorting.
- Mencari informasi. Memungkinkan untuk melakukan pencarian yang lebih efisien dengan menggunakan algoritma pencarian biner klasik.
- Riset operasi. Misalkan kita memiliki N pekerjaan untuk menyelesaikan, dimana j pekerjaan membutuhkan t detik j pengolahan waktu. Kita harus menyelesaikan semua pekerjaan, tapi ingin memaksimalkan kepuasan pelanggan dengan meminimalkan waktu penyelesaian rata-rata dari pekerjaan. Pengolahan waktu terpendek aturan pertama, di mana kita menjadwalkan pekerjaan untuk meningkatkan waktu pemrosesan. Sebagai contoh lain, mempertimbangkan masalah load-balancing, di mana kita memiliki prosesor M identik dan pekerjaan N untuk menyelesaikan, dan tujuan kami adalah untuk menjadwalkan semua pekerjaan pada prosesor sehingga waktu ketika pekerjaan terakhir selesai adalah sedini mungkin . Masalah khusus ini adalah NP-keras jadi kita jangan berharap untuk menemukan cara praktis untuk menghitung jadwal yang optimal. Salah satu metode yang dikenal untuk menghasilkan jadwal yang baik adalah pengolahan aturan waktu terpanjang, di mana kita mempertimbangkan pekerjaan dalam urutan penurunan waktu proses, menetapkan setiap pekerjaan untuk prosesor yang tersedia pertama.
- Event simulasi. Banyak aplikasi ilmiah melibatkan simulasi, di mana titik perhitungan adalah model dari beberapa aspek dari dunia nyata agar dapat lebih dipahami. Melakukan simulasi tersebut dapat secara efisien memerlukan algoritma yang tepat dan struktur data.
- Simulasi numerik. Komputasi ilmiah ini sering berhubungan dengan akurasi (seberapa dekat kita pada jawaban yang benar?). Akurasi sangat penting ketika kita melakukan jutaan perhitungan dengan nilai-nilai perkiraan seperti representasi floating-point dari bilangan real yang biasa kita gunakan pada komputer. Beberapa algoritma numerik menggunakan antrian prioritas dan menyortir untuk mengontrol akurasi dalam perhitungan.
- Pencarian kombinatorial. Sebuah paradigma klasik dalam kecerdasan buatan adalah untuk mendefinisikan satu set konfigurasi dengan baik didefinisikan bergerak dari satu konfigurasi ke depan dan prioritas yang terkait dengan setiap langkah. Juga pasti adalah konfigurasi awal dan konfigurasi tujuan (yang sesuai dengan telah memecahkan masalah Algoritma A * adalah proses pemecahan masalah di mana kita meletakkan konfigurasi awal pada antrian prioritas, kemudian melakukan hal berikut sampai mencapai tujuan. Menghapus konfigurasi tertinggi-prioritas dan menambah antrian semua konfigurasi yang dapat dicapai dari yang dengan satu gerakan (tidak termasuk yang baru saja dihapus).
E. IMPLEMENTASI
a. Source
code
/*
* Created by SharpDevelop.
* User: Uyik
* Date: 11/21/2015
* Time: 7:07 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace selection
{
class Program
{
public static void Main()
{
int[] a = new int[100];
int min, pass, i;
Console.WriteLine("Masukkan Jumlah array: ");
string s = Console.ReadLine();
int x = Int32.Parse(s);
Console.WriteLine("-----------------------");
Console.WriteLine(" Masukkan elemen array:");
Console.WriteLine("-----------------------");
for (int j = 0; j < x; j++)
{
string s1 = Console.ReadLine();
a[j] = Int32.Parse(s1);
}
for (pass = 0; pass < x - 1; pass++)
{
min = pass;
for (i = pass + 1; i < x; i++)
{
if (a[min] > a[i])
min = i;
}
if (min != pass)
{
int k = a[pass];
a[pass] = a[min];
a[min] = k;
}
}
Console.WriteLine("-----------------------");
Console.WriteLine("Angka sudah diurutkan dengan metode selection sort:");
for (int j = 0; j < x; j++){
Console.WriteLine(a[j]); }
}
}
}
* Created by SharpDevelop.
* User: Uyik
* Date: 11/21/2015
* Time: 7:07 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace selection
{
class Program
{
public static void Main()
{
int[] a = new int[100];
int min, pass, i;
Console.WriteLine("Masukkan Jumlah array: ");
string s = Console.ReadLine();
int x = Int32.Parse(s);
Console.WriteLine("-----------------------");
Console.WriteLine(" Masukkan elemen array:");
Console.WriteLine("-----------------------");
for (int j = 0; j < x; j++)
{
string s1 = Console.ReadLine();
a[j] = Int32.Parse(s1);
}
for (pass = 0; pass < x - 1; pass++)
{
min = pass;
for (i = pass + 1; i < x; i++)
{
if (a[min] > a[i])
min = i;
}
if (min != pass)
{
int k = a[pass];
a[pass] = a[min];
a[min] = k;
}
}
Console.WriteLine("-----------------------");
Console.WriteLine("Angka sudah diurutkan dengan metode selection sort:");
for (int j = 0; j < x; j++){
Console.WriteLine(a[j]); }
}
}
}
b. Hasil
DAFTAR PUSTAKA
lecturer.ukdw.ac.id/anton/.../prak.../modul%202%20-%20sorting.doc
http://lecturer.eepis-its.edu/~entin/Struktur%20Data%20%26%20Algoritma/buku/Data%20Structure%20-%20Bab%206.pdf
Abhiram.
2009. History of Sorting Algorithms. http://abhiramn.blogspot.com/2009/07/history-of-sorting-algorithms.html.
Diakses tanggal 10 November 2015
Anonim. Algortima
Sorting. tanzir.staff.gunadarma.ac.id/Downloads/files/12729/kuliah6.pdf.
Diakses tanggal 10 November 2015
Anonim. Algoritma Sorting. poss.ipb.ac.id/files/JENI-Intro2-Bab06-Algoritma%20Sorting.pdf.
Diakses tanggal 10 November 2015
Ari, Rosihan. 2008. Algoritma
Sorting dan Implementasinya. http://blog.rosihanari.net/algoritma-sorting-dan-implementasinya.
Diakses tanggal 10 November 2015
Munir,
Rinaldi. 2011. Tarian Dansa Algoritma
“Sorting” Gaya Rumania dan Hungaria. http://rinaldimunir.wordpress.com/2011/09/20/tarian-dansa-algoritma-sorting-gaya-rumania-dan-hungaria/.
Diakses tanggal 10 November 2015
Nugroho, Adi. 2009. Algoritma & Struktur Data denga C#. Yogyakarta: Andi Offset.
Pratama,
Johan. 2010. Algoritma Sorting. http://jojoinformation.wordpress.com/2010/05/29/algoritma-sorting/.
Diakses tanggal 10 November 2015
Priyono,
Handi. 2010. Sejarah dan Pengertian
Algoritma-Pemrograman. http://handzmentallist.blogspot.com/2010/04/sejarah-dan-pengertian-algoritma.html. Diakses tanggal 10 November 2015
Septian,
Agung. 2011. Perbedaan Bubble Sort, Merge
Sort, dan Quick Sort. http://ahonk-ftk10.blogspot.com/2011/03/perbedaan-bubble-sortmerge-sort-dan.html.
Diakses tanggal 10 November 2015
Triono, Puji. 2010. Analisis Perbandingan Algoritma Sorting dan
Searching. Yogyakarta: Fakultas Teknologi Industri Universitas Ahmad
Dahlan.
Negara, Setia B Tjaru. 2009. Kompleksitas
Algoritma Pengurutan Selection Sort dan Insertion Sort. http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2009-2010/Makalah0910/MakalahStrukdis0910-074.pdf. Diakses pada tanggal 10 November 2015
Labels:
Pendalaman,
Semester 7,
Struktur Data
Subscribe to:
Posts (Atom)
Monday, 23 November 2015
Luka
Atas lukaku
Atas air mataku
Atas kecewaku
Atas apapun yang mengatasnamakan aku
Kau tidak bersalah, bagaimanapun itu,,,
Biarlah semua ini yang bertaggug jawab adalah AKU
BAHAGIA, tugasmu hanya itu,,
Kau tak perlu mencemaskanaku
Selama kau baik-baik saja, keadaanku pun sama
Biarlah lukaku disembuhkan oleh waktu
Begitu juga dengan rindu
Karena aku sadar,,,
Ada hal-hal yang memang tidak bisa dipaksakan oleh kehendakku, tterlebih atasmu
Andai aku tahu,,,
Aku mencintaimu bahkan lebih hebat dari bayanganmu
Aku menyayangiu dengan setulus-tulusnya hati
Namun sayangnya kau menutup diri
~chh~
Kau memilih lari dan pergi menyia
Saat ini,
Hal yang terbaik yang bisa aku berikan adalah mendoakanmu
Karena hanya dengan ini aku bisa menyentuhmu
Dan saat ini aku mengerti,,
Alasan Tuhan menciptakan air mata.
Karena selain waktu, airmatalah yag akan menyembuhkan luka-luka
Ingatlah,,,
Atas air mataku
Atas kecewaku
Atas apapun yang mengatasnamakan aku
Kau tidak bersalah, bagaimanapun itu,,,
Biarlah semua ini yang bertaggug jawab adalah AKU
BAHAGIA, tugasmu hanya itu,,
Kau tak perlu mencemaskanaku
Selama kau baik-baik saja, keadaanku pun sama
Biarlah lukaku disembuhkan oleh waktu
Begitu juga dengan rindu
Karena aku sadar,,,
Ada hal-hal yang memang tidak bisa dipaksakan oleh kehendakku, tterlebih atasmu
Andai aku tahu,,,
Aku mencintaimu bahkan lebih hebat dari bayanganmu
Aku menyayangiu dengan setulus-tulusnya hati
Namun sayangnya kau menutup diri
~chh~
Kau memilih lari dan pergi menyia
Saat ini,
Hal yang terbaik yang bisa aku berikan adalah mendoakanmu
Karena hanya dengan ini aku bisa menyentuhmu
Dan saat ini aku mengerti,,
Alasan Tuhan menciptakan air mata.
Karena selain waktu, airmatalah yag akan menyembuhkan luka-luka
Ingatlah,,,
Kamu
Teruntuk dirimu yang selalu dan tak pernah berhenti ada dalam pikiran ini
Teruntuk dirimu yang selalu bersemayam dalam lubuk hati ini
Kini ku terjebak mencintaimu dalam diamku
Ada apa denganku?
Apa kau pikir ini mudah?
Apakah kita bisa bertukar posisi?
Bukankah kau sangat beruntung dicintai dengan begitu hebatnya?
Bahkan smpai aku pernah lupa dengan sang Pemilik Cinta yang menghadirkan cinta
Lalu apa yang kuharapkan?
Jelaslah balasan darimu.
Tapi itu dulu,,,
Dulu sebelum aku menyadari apa arti cinta sesungguhnya
Dan aku berterimakasih kepadamu
Karena kau tak memberiku balasan
Andai kau beri sedikit saja balasan,
Mungkin aku akan tetap tersipu hanya kepadamu dan melupakan Kebesaran Tuhanku
Sadarku kini hati tak seharusnya ku tambatkan sepenuhnya pada makhluk
Aku yang mencinta akupun yang bersalah,
Bersalah karena sangat berharap pada makhluk-Nya
Kenapa aku seperti ini?
Itu yang selalu menjadi pertanyaan untuk diriku sendiri
Selagi masih nafas ini berhembbus,
Ku yakin Tuhanku masih menuntunku untuk kembali
Kembali berharap pada-Nya
Berharap kelak Dia akan menghadirkanmu yang selama ini ku nanti
Diam yang akan menciptakan damai hati,
Hati yang tenang bersama sang Pemilik Hati
Teruntuk dirimu yang selalu bersemayam dalam lubuk hati ini
Kini ku terjebak mencintaimu dalam diamku
Ada apa denganku?
Apa kau pikir ini mudah?
Apakah kita bisa bertukar posisi?
Bukankah kau sangat beruntung dicintai dengan begitu hebatnya?
Bahkan smpai aku pernah lupa dengan sang Pemilik Cinta yang menghadirkan cinta
Lalu apa yang kuharapkan?
Jelaslah balasan darimu.
Tapi itu dulu,,,
Dulu sebelum aku menyadari apa arti cinta sesungguhnya
Dan aku berterimakasih kepadamu
Karena kau tak memberiku balasan
Andai kau beri sedikit saja balasan,
Mungkin aku akan tetap tersipu hanya kepadamu dan melupakan Kebesaran Tuhanku
Sadarku kini hati tak seharusnya ku tambatkan sepenuhnya pada makhluk
Aku yang mencinta akupun yang bersalah,
Bersalah karena sangat berharap pada makhluk-Nya
Kenapa aku seperti ini?
Itu yang selalu menjadi pertanyaan untuk diriku sendiri
Selagi masih nafas ini berhembbus,
Ku yakin Tuhanku masih menuntunku untuk kembali
Kembali berharap pada-Nya
Berharap kelak Dia akan menghadirkanmu yang selama ini ku nanti
Diam yang akan menciptakan damai hati,
Hati yang tenang bersama sang Pemilik Hati
Selection Sort Pada Bahasa Pemrograman C#
MAKALAH
STRUKTUR DATA
SELECTION
SORT
Dosen pengampu: Dr.MUHAMMAD FAISAL,S.Kom., M.T
Oleh:
Ruri Nur Aini NIM.12650022
Kelas A
JURUSAN
TEKNIK INFORMATIKA
FAKULTAS
SAINS DAN TEKNOLOGI
UNIVERSITAS
ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG, 2015
A. SEJARAH
ALGORITMA
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai
sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti
proses menghitung dengan angka arab. Dikatakan algorist jika
Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan
asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah
matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Ja’far Muhammad
Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis
buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya
“Buku pemugaran dan pengurangan” (The book of restoration and
reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra).
Perubahan kata dari algorism menjadi algorithm muncul karena kata
algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm
berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah
menjadi hal yang biasa, maka lambat laun kata algorithm
berangsur-angsur dipakai
sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna
kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
Abu Abdullah Ibnu Musa
al-Khawarizmi (770M-840M) lahir di Khawarizm (Kheva), kota yang berada di
selatan Sungai Oxus (sekarang disebut Uzbekistan) pada
770 M. Al Khawarizmi merupakan salah satu ilmuan terkenal di zamannya. Ada beberapa
cabang ilmu matematika yang berhasil ditemukannya,
antara lain yang dikenal sebagai astronom dan geografer.
Pada 1950, algoritma pertama
kali digunakan pada Algoritma Eucliden (Euclid Algorithm). Euclid sendiri
merupakan seorang matematikawan Yunani yang lahir sekitar 350 SM. Euclid
menulis buku yang berjudul Element.
Di dalam buku tersebut,
dijelaskan langkah-langkah untuk menemukan pembagi bersama terbesar (common
greatest divisor) dari dua bilangan bulat, yakni m dan n.
Namun, Eucliden pada saat itu tidak menyebutkan bahwa cara yang digunakannya
adalah metode algoritma. Hal tersebut baru
disebut sebagai algoritma pada abad-abad modern.
B. DEFINISI DAN CIRI-CIRI ALGORITMA
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan logis. Kata logis merupakan
kata kunci dalam algoritma.
Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma
adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.
Lima ciri yang harus dipunyai algoritma agar menjadi
algoritma yang benar adalah sebagai berikut.
1.
Algoritma harus berhenti setelah
mengerjakan langkah terbatas. Dalam hal ini, jika
langkah-langkah yang ada telah dipenuhi dan telah dieksekusi, algortima
haruslah berhenti.
2.
Setiap langkah harus didefinisikan
agar tidak memiliki arti dua (ambiguous).
3.
Algoritma mempunyai nol atau lebih
masukan (input).
4.
Algoritma mempunyai nol atau lebih
keluaran (output).
5.
Algoritma haruslah efektif, yakni mempunyai langkah yang
sederhana agar dapat dikerjakan dengan waktu yang efektif.
C.
ALGORITMA SORTING
Sorting
adalah sebuah proses merangkai benda dalam urutan tertentu dan/atau dalam
himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum yang
berbeda:
- pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang teratur.
- kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat yang serupa.
Ada dua
bentuk sorting yaitu secara ascending dan descending. Sorting secara ascending
adalah cara mengurutkan data mulai data bernilai terkecil sampai terbesar.
Sedangkan descending mengurutkan data mulai dari data terbesar sampai terkecil.
Sebagai contoh misalkan diberikan data berupa bilangan berikut ini:
3 9 1 4 0 2
Hasil
sorting ascending adalah 0 1 2 3 4 9, sedangkan hasil secara descending adalah 9 4 3 2 1
0.
Algoritma sorting terdiri dari
beberapa algoritma seperti Bubble sort, Quick sort, Selection sort, Insertion
sort, dan Merge sort yang di mana setiap jenis sorting ini memilki perbedaan
satu sama lainnya. Berikut ini merupakan pembahasan umum mengenai jenis-jenis
algoritma sorting yang telah dijelaskan di atas.
a. Selection Sort
1.
Sejarah
Mr.
Selection adalah seorang guru bahasa inggris. Tiga bulan sekali, dia membawa
pulang kertas ujian untuk dievaluasi. Saat evaluasi selesai, kertas-kertas
ujian tersebut disusun di mana nilai tertinggi di susunan pertama dan nilai
terendah di susunan terakhir. Dia
memiliki kebiasaan membagi-bagikan kertas ujian tersebut kepada siswa-siswanya
sambil memberikan pujian kepada siswa yang memilki nilai tertinggi dan
memberikan teguran kepada siswa dengan nilai terendah.
Mr. Selection juga sering diberi tugas oleh
ibunya untuk menyusun kertas-kertas ujian. Dia memutuskan untuk menyusun
kertas-kertas tersebut dengan mengikuti strategi berikut:
1) Menempatkan semua lembaran kertas secara
bersebelahan.
2) Mengamati dari kiri ke kanan untuk menemukan
kertas siswa yang memperoleh nilai tertinggi.
3) Mengambil kertas tersebut menempatkannya secara
tertelungkup di meja lain.
4) Mengamati kembali kertas-kertas yang tersisa
dari kiri ke kanan dan menemukan kertas dengan nilai tertinggi berikutnya.
5) Menempatkan kertas tersebut secara tertelungkup
di atas kertas yang berada di meja lain.
Sepuluh tahun
kemudian, ketika dia harus menulis sebuah program untuk mengurutkan
nilai-nilai, dia teringat pada strategi yang pernah dia terapkan dalam
penyusunan kertas ujian. Dia kemudian melakukan hal yang sama pada program
tersebut dan algoritma tersebut diberi nama selection sort.
2.
Pengertian
Selection sort adalah metode pengurutan dengan cara mencari data yang
terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau
sering dinamakan pivot.
3.
Algoritma
Algoritma selection sort dapat dirangkum sebagai berikut:
Ø Temukan nilai yang paling minimum di dalam struktur data. Jika
ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika
descending, maka temukan nilai yang paling maksimum.
Ø Tukar nilai tersebut dengan nilai pada posisi pertama di bagian
struktur data yang belum diurutkan.
Ø Ulangi langkah di atas untuk bagian struktur data yang tersisa.
Contoh:
D.
APLIKASI
ALGORTIMA SORT
Algoritma sort banyak
digunakan pada berbagai aplikasi. Berikut adalah beberapa aplikasi algoritma
sort.
- Komersial komputasi organisasi Pemerintah, lembaga keuangan, dan perusahaan komersial mengatur banyak informasi dengan penyortiran. Dari informasi itu account akan diurutkan berdasarkan nama atau nomor, transaksi yang akan diurutkan berdasarkan waktu atau tempat, mail yang akan diurutkan berdasarkan kode pos atau alamat, file yang akan diurutkan berdasarkan nama atau tanggal, atau apa pun, mengolah data tersebut pasti melibatkan algoritma sorting.
- Mencari informasi. Memungkinkan untuk melakukan pencarian yang lebih efisien dengan menggunakan algoritma pencarian biner klasik.
- Riset operasi. Misalkan kita memiliki N pekerjaan untuk menyelesaikan, dimana j pekerjaan membutuhkan t detik j pengolahan waktu. Kita harus menyelesaikan semua pekerjaan, tapi ingin memaksimalkan kepuasan pelanggan dengan meminimalkan waktu penyelesaian rata-rata dari pekerjaan. Pengolahan waktu terpendek aturan pertama, di mana kita menjadwalkan pekerjaan untuk meningkatkan waktu pemrosesan. Sebagai contoh lain, mempertimbangkan masalah load-balancing, di mana kita memiliki prosesor M identik dan pekerjaan N untuk menyelesaikan, dan tujuan kami adalah untuk menjadwalkan semua pekerjaan pada prosesor sehingga waktu ketika pekerjaan terakhir selesai adalah sedini mungkin . Masalah khusus ini adalah NP-keras jadi kita jangan berharap untuk menemukan cara praktis untuk menghitung jadwal yang optimal. Salah satu metode yang dikenal untuk menghasilkan jadwal yang baik adalah pengolahan aturan waktu terpanjang, di mana kita mempertimbangkan pekerjaan dalam urutan penurunan waktu proses, menetapkan setiap pekerjaan untuk prosesor yang tersedia pertama.
- Event simulasi. Banyak aplikasi ilmiah melibatkan simulasi, di mana titik perhitungan adalah model dari beberapa aspek dari dunia nyata agar dapat lebih dipahami. Melakukan simulasi tersebut dapat secara efisien memerlukan algoritma yang tepat dan struktur data.
- Simulasi numerik. Komputasi ilmiah ini sering berhubungan dengan akurasi (seberapa dekat kita pada jawaban yang benar?). Akurasi sangat penting ketika kita melakukan jutaan perhitungan dengan nilai-nilai perkiraan seperti representasi floating-point dari bilangan real yang biasa kita gunakan pada komputer. Beberapa algoritma numerik menggunakan antrian prioritas dan menyortir untuk mengontrol akurasi dalam perhitungan.
- Pencarian kombinatorial. Sebuah paradigma klasik dalam kecerdasan buatan adalah untuk mendefinisikan satu set konfigurasi dengan baik didefinisikan bergerak dari satu konfigurasi ke depan dan prioritas yang terkait dengan setiap langkah. Juga pasti adalah konfigurasi awal dan konfigurasi tujuan (yang sesuai dengan telah memecahkan masalah Algoritma A * adalah proses pemecahan masalah di mana kita meletakkan konfigurasi awal pada antrian prioritas, kemudian melakukan hal berikut sampai mencapai tujuan. Menghapus konfigurasi tertinggi-prioritas dan menambah antrian semua konfigurasi yang dapat dicapai dari yang dengan satu gerakan (tidak termasuk yang baru saja dihapus).
E. IMPLEMENTASI
a. Source
code
/*
* Created by SharpDevelop.
* User: Uyik
* Date: 11/21/2015
* Time: 7:07 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace selection
{
class Program
{
public static void Main()
{
int[] a = new int[100];
int min, pass, i;
Console.WriteLine("Masukkan Jumlah array: ");
string s = Console.ReadLine();
int x = Int32.Parse(s);
Console.WriteLine("-----------------------");
Console.WriteLine(" Masukkan elemen array:");
Console.WriteLine("-----------------------");
for (int j = 0; j < x; j++)
{
string s1 = Console.ReadLine();
a[j] = Int32.Parse(s1);
}
for (pass = 0; pass < x - 1; pass++)
{
min = pass;
for (i = pass + 1; i < x; i++)
{
if (a[min] > a[i])
min = i;
}
if (min != pass)
{
int k = a[pass];
a[pass] = a[min];
a[min] = k;
}
}
Console.WriteLine("-----------------------");
Console.WriteLine("Angka sudah diurutkan dengan metode selection sort:");
for (int j = 0; j < x; j++){
Console.WriteLine(a[j]); }
}
}
}
* Created by SharpDevelop.
* User: Uyik
* Date: 11/21/2015
* Time: 7:07 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace selection
{
class Program
{
public static void Main()
{
int[] a = new int[100];
int min, pass, i;
Console.WriteLine("Masukkan Jumlah array: ");
string s = Console.ReadLine();
int x = Int32.Parse(s);
Console.WriteLine("-----------------------");
Console.WriteLine(" Masukkan elemen array:");
Console.WriteLine("-----------------------");
for (int j = 0; j < x; j++)
{
string s1 = Console.ReadLine();
a[j] = Int32.Parse(s1);
}
for (pass = 0; pass < x - 1; pass++)
{
min = pass;
for (i = pass + 1; i < x; i++)
{
if (a[min] > a[i])
min = i;
}
if (min != pass)
{
int k = a[pass];
a[pass] = a[min];
a[min] = k;
}
}
Console.WriteLine("-----------------------");
Console.WriteLine("Angka sudah diurutkan dengan metode selection sort:");
for (int j = 0; j < x; j++){
Console.WriteLine(a[j]); }
}
}
}
b. Hasil
DAFTAR PUSTAKA
lecturer.ukdw.ac.id/anton/.../prak.../modul%202%20-%20sorting.doc
http://lecturer.eepis-its.edu/~entin/Struktur%20Data%20%26%20Algoritma/buku/Data%20Structure%20-%20Bab%206.pdf
Abhiram.
2009. History of Sorting Algorithms. http://abhiramn.blogspot.com/2009/07/history-of-sorting-algorithms.html.
Diakses tanggal 10 November 2015
Anonim. Algortima
Sorting. tanzir.staff.gunadarma.ac.id/Downloads/files/12729/kuliah6.pdf.
Diakses tanggal 10 November 2015
Anonim. Algoritma Sorting. poss.ipb.ac.id/files/JENI-Intro2-Bab06-Algoritma%20Sorting.pdf.
Diakses tanggal 10 November 2015
Ari, Rosihan. 2008. Algoritma
Sorting dan Implementasinya. http://blog.rosihanari.net/algoritma-sorting-dan-implementasinya.
Diakses tanggal 10 November 2015
Munir,
Rinaldi. 2011. Tarian Dansa Algoritma
“Sorting” Gaya Rumania dan Hungaria. http://rinaldimunir.wordpress.com/2011/09/20/tarian-dansa-algoritma-sorting-gaya-rumania-dan-hungaria/.
Diakses tanggal 10 November 2015
Nugroho, Adi. 2009. Algoritma & Struktur Data denga C#. Yogyakarta: Andi Offset.
Pratama,
Johan. 2010. Algoritma Sorting. http://jojoinformation.wordpress.com/2010/05/29/algoritma-sorting/.
Diakses tanggal 10 November 2015
Priyono,
Handi. 2010. Sejarah dan Pengertian
Algoritma-Pemrograman. http://handzmentallist.blogspot.com/2010/04/sejarah-dan-pengertian-algoritma.html. Diakses tanggal 10 November 2015
Septian,
Agung. 2011. Perbedaan Bubble Sort, Merge
Sort, dan Quick Sort. http://ahonk-ftk10.blogspot.com/2011/03/perbedaan-bubble-sortmerge-sort-dan.html.
Diakses tanggal 10 November 2015
Triono, Puji. 2010. Analisis Perbandingan Algoritma Sorting dan
Searching. Yogyakarta: Fakultas Teknologi Industri Universitas Ahmad
Dahlan.
Negara, Setia B Tjaru. 2009. Kompleksitas
Algoritma Pengurutan Selection Sort dan Insertion Sort. http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2009-2010/Makalah0910/MakalahStrukdis0910-074.pdf. Diakses pada tanggal 10 November 2015
Subscribe to:
Posts (Atom)