Teknik Pengurutan Kartu Remi

dokumen-dokumen yang mirip
Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Algoritma Divide and Conquer (Bagian 2)

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

Kompleksitas Algoritma Sorting yang Populer Dipakai

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

Algoritma Divide and Conquer (Bagian 1)

Gambar 13.1 Ilustrasi proses algoritma sorting

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

Pengurutan (Sorting) Algoritma Pemrograman

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Penerapan Algoritma Greedy Pada Permainan Kartu Truf

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

SORTING (PENGURUTAN DATA)

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

ALGORITMA PENGURUTAN & PENCARIAN

MAKALAH ALGORITMA DIVIDE AND CONQUER

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

Algoritma Divide and Conquer. (Bagian 2)

Decrease and Conquer

PENDEKATAN MASALAH TOWER OF HANOI DENGAN ALGORITMA DIVIDE AND CONQUER

7. SORTING DAN SEARCHING

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

MODUL IV PENCARIAN DAN PENGURUTAN

Penerapan Algoritma Greedy pada Permainan Kartu 100

Powered by icomit.wordpress.com

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

APLIKASI ALGORITMA GREEDY DALAM PERMAINAN CAPSA BANTING

Algoritma Brute Force

Sorting. Pertemuan ke 14.

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

BAB 8 SORTING DAN SEARCHING

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Modul Praktikum 6 Pemograman Berorientasi Objek

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

STRUKTUR DATA SORTING ARRAY

Implementasi Algoritma Runut Balik pada Permainan Texas Hold em Poker

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

BAB I PENDAHULUAN.

Nama : Suseno Rudiansyah NPM : Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2

Modul 8 SORTING (PENGURUTAN)

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

Penerapan Prinsip Greedy dalam Permainan Kartu Hearts

Aplikasi Strategi Algoritma dalam Pembagian Kelompok Tugas Besar

Algoritma dan Struktur Data

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

PENCARIAN SOLUSI DENGAN ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PUZZLE KAKURO

Modul Praktikum Algoritma dan Struktur Data

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Penyelesaian Permainan 3 missionaries and 3 cannibals Dengan Algoritma Runut-Balik

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

BAB V SORTING (PENGURUTAN) INTERNAL

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Sorting Algorithms. Divide and Conquer

ALGORITMA DIVIDE AND CONQUER

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

Bab Tujuan. 6.2 Insertion Sort

Algoritma Divide and Conquer untuk Optimasi Pemberian Efek Aura pada Permainan DotA (Defense of the Ancient)

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Alpro & Strukdat 1 C++ (Sorting) Dwiny Meidelfi, M.Cs

Kemangkusan Algoritma Pada Beberapa Variasi Quick Sort

Algoritma Brute Force

SORTING. Brigida Arie Minartiningtyas, M.Kom

METODE DEVIDE AND CONQUER

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort

BAB 8 SORTIR. Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

ANALISIS PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI PERSOALAN LOMPATAN KUDA

SORTING (Pengurutan)

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

Algoritma Branch and Bound dalam Kegunaannya Memecahkan Assignment Problem

STRATEGI DIVIDE AND CONQUER

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Transkripsi:

Teknik Pengurutan Kartu Remi Aloysius Adrian 1) 1) Sekolah Teknik Elektro Informatika, Program Studi Teknik Informatika Institut Teknologi Bandung, Jalan Ganesha 10, Bandung, Email: aloy@students.itb.ac.id ABSTRAK Persoalan pengurutan (sorting) merupakan salah satu persoalan yang primitif. Berbagai macam cara pengurutan telah digunakan orang orang di masa lampau. Bahkan saat orang belum menyadari arti kata algoritma. Sekarang dengan banyaknya pembahasan mengenai algoritma algoritma canggih, algoritma pengurutan pun menjadi makin mudah dipahami dan diaplikasikan. Salah satu aplikasi yang mungkin sering atau pernah dijumpai adalah pengurutan kartu remi. Mungkin permainan sehari hari, permainan kartu membutuhkan pengurutan tertentu. Makalah ini membahas mengenai teknik teknik pengurutan kartu remi. Dalam makalah ini dibahas beberapa teknik pengurutan kartu berdasarkan pada teknik pengurutan (algoritma pengurutan) brute force dan divide and conquer berserta contoh pengembangan algoritma pengurutan yang diadaptasikan untuk persoalan pengurutan kartu remi ini. Kata Kunci: sorting, divide and conquer, brute force, card 1. PENDAHULUAN Teknik pengurutan merupakan salah satu algoritma yang penting. Sudah banyak dicetuskan algoritma algoritma mengenai pengurutan (sorting by insertion, sorting by merging, sorting by selection, sorting by exchanging, sorting by distribution) contohnya adalah bubble sort, merge sort, quick sort, dan lain lain. Teknik teknik pengurutan pun masing masing memiliki kelebihan dan kekurangan. Kita dapat menentukan sendiri teknik pengurutan apa yang akan digunakan, dipadu-padankan dengan permasalahan yang hendak diselesaikan. Biasanya pengurutan didasarkan pada sebuah urutan yang hendak diperoleh. Misalnya dimiliki sebuah rangkaian angka yang tidak terurut dan hendak diperoleh rangkaian angka dengan urutan tertentu yang hendak diperoleh (misalnya terurut membesar atau terurut berdasarkan jumlah kemunculan). Pada umumnya, kasus pengurutan hanya mengacu pada satu persyaratan, maksudnya adalah pada contoh pengurutan ascending (menaik membesar). Urutan yang hendak dicapai hanya berdasarkan urutan angka. Contohnya adalah pengurutan bila tidak ada angka yang sama 3,1,2. Hasil pengurutan yang diharapkan adalah 1,2,3. Namun misalnya terdapat rangkaian 2,3,1,3. Ada elemen yang bernilai sama, setelah diurutkan menjadi 1,2,3,3. Urutan kedua angka 3 tidak menjadi persoalan angka 3 yang mana yang akan dicantumkan terlebih dahulu. Teknik pengurutan hanya mengarah dan berpedoman pada satu teknik yakni bilangan yang lebih besar berada setelah bilangan yang lebih kecil. Pada makalah ini akan dibahas salah satu contoh menarik yang berkaitan dengan teknik pengurutan. Pada makalah ini akan dibahas teknik pengurutan kartu remi. Alasan kuat untuk membahas tema ini terletak pada variasi teknik untuk mengurutkan kartu remi. Terdapat beberapa alternatif acuan atau pedoman dalam pengurutan kartu. Berdasarkan warnanya hitam atau merah, berdasarkan suitnya atau gambarnya atau jenisnya, dan berdasarkan valuenya atau nilainya. Dari beberapa acuan, akan terdapat pula beberapa alternatif teknik pengurutan untuk dianalisis. 2. LANDASAN TEORI Ada dua teknik pengurutan global yang digunakan untuk memecahkan permasalahan pengurutan kartu remi. Maksud dari global di sini adalah teknik yang umum akan dipakai dan divariasikan menjadi teknik pengurutan alternatif. 2.1 Brute Force Pertama adalah teknik pengurutan brute force. Algoritma brute force untuk pengurutan memang banyak memakan waktu, namun tetap dilampirkan sebagai contoh dan basis teknik pengurutan. Untuk beberapa kasus, brute force merupakan teknik pengurutan yang paling mudah untuk diaplikasikan. Pendekatan brute force dipakai dalam berbagai masalah algoritmik salah satunya adalah pemilihan pengurutan (selection sort). Namun, algoritma brute force tentu saja memiliki ongkos yang besar karena brute force akan mencari elemen secara exhaustik, yakni pencarian dengan pemeriksaan masing masing elemen terurut satu persatu. Ada dua jenis pengurutan dengan pendekatan brute force. Selection sort. Dan bubble sort.

2.1.1 Selection Sort Selection sort adalah teknik paling sederhana. Algoritma ini akan menyunting setiap elemen pada sebuah array dengan mencari elemen paling kecil. Elemen ini lalu ditukarkan posisinya dengan posisi terdepan pada array. Lalu pencarian elemen terkecil dilanjutkan dengan dimulai dari elemen urutan kedua dari array. Setelah ketemu, ditukarkan posisinya dengan posisi kedua. Begitu seterusnya hingga seluruh array terurut. procedure Sort (input/output : a : array of integer) if ukuran(a) > 1 then Bagi a jadi 2 bagian, a1 dan a2 Sort(a1,n1) Sort(a2,n2) Combine(a1,a2,a) procedure SelectionSort (input/output S : array of integer) i, j, imaks, temp = integer for I n downto 2 do imaks 1 for j 2 to I do if S[j] > S[imaks] then imaks j endfor temp S[i] S[i] S[imaks] endfor 2.1.2 Bubble Sort Gambar 1: Algoritma selection sort[1] Kedua adalah bubble sort. Bubble sort dimulai dengan membandingkan dua elemen pertama dari sebuah array. Bila elemen kedua lebih kecil dari elemen pertama, maka posisi ditukar. Lalu dilanjutkan dengan perbandingan elemen kedua dan ketiga. Prinsip dari bubble sort adalah mengapungkan elemen terbesar ke urutan terakhir dari array. 1: BOUND=N; 2: t=0; for (j=1; j<=bound-1; j+=1) { 3: if (R[j]->K>R[j+1]->K) swap(r[j],r[j+1],rt); t=j; } 4: if (t!=0) { BOUND=t; goto B2; } Gambar 3: Algoritma divide and conquer[1] Dari algoritma divide and conquer, diturunkan dua tipe pengurutan yakni : 1. Mudah membagi namun sulit menggabung, termasuk di dalamnya adalah merge sort dan insertion sort 2. Sulit membagi namun mudah menggabung, termasuk di dalamnya adalah quick sort dan selection sort. Pada makalah ini, teknik pengurutan kartu remi yang akan dibahas menggunakan algoritma divide and conquer hanyalah teknik pengurutan tipe satu yakni mudah untuk dibagi (divide) namun sulit untuk digabung. 2.2.1 Merge sort Algoritma merge sort adalah sebagai berikut : Untuk kasus n = 1, maka tabel a sudah terurut dengan sendirinya (n adalah ukuran tabel, langkah ini adalah basis 1 rekursi). Untuk kasus n > 1 maka : a. Divide : bagi tabel a menjadi dua bagian, bagian kiri dan bagian kanan. Masing masing berukuran n/2 elemen b. Conquer : secara rekursif, terapkan algoritma pengurutan divide and conquer pada masing masing bagian c. Merge : gabung hasil pengurutan kedua bagian sehingga diperoleh tabel a yang terurut Gambar 2: Algoritma bubble sort 2.2 Divide and conquer Pendekatan kedua untuk pengurutan kartu remi adalah algoritma divide and conquer. Divide and conquer bekerja secara rekursif, membangun dua upapohon atau lebih dari sebuah persoalan dengan prinsip kerjanya adalah mula-mula persoalan yang diberikan dibagi menjadi upapohon upapohon, lalu masing masing upapohon dicari solusinya, dalam hal ini pengurutan. procedure MergeSort (input/output a : array of integer, input i,j : integer) k : integer if I < j then k (i+j) div 2 MergeSort (a,i,k) MergeSort (a,k+i,j) Merge (a,i,k,j) Gambar 4: Algoritma merge sort

Prosedur untuk Merge dapat dilihat pada [1] pp. 84. 2.2.2 Insertion sort Algoritma insertion sort tidak jauh berbeda dengan algoritma merge sort. Perbedaannya hanya terletak pada teknik pembagian tabel. Pada insertion sort, tabel dibagi dua sedemikian sehingga upatabel kiri berisi satu elemen, dan upatabel kanan berisi n-1 elemen. procedure InsertionSort (input/output a : array of integer, input i,j : integer) k : integer if i < j then k i Insertion (a,k+1,j) Merge (a,i,k,j) 2.3 Urutan kartu Gambar 5: Algoritma insertion sort [1] Landasan teori lainnya adalah urutan kartu yang sempurna. Terdapat beberapa peraturan resmi dunia mengenai urutan kartu sempurna (perfect order, new deck order). Untuk permainan kartu berbeda, memiliki peraturan pengurutan kartu sempurna yang berbeda pula. Untuk contoh persoalan pada makalah ini, urutan kartu sempurna yang digunakan adalah urutan yang berdasarkan sebuah permainan paling kuno, dan mungkin sering pula dimainkan oleh masyarakat umum. Salah satu contohnya adalah urutan kartu dalam permainan remi. Urutan yang dimaksud adalah dari tumpukan teratas hingga ke bawah secara mengurut, as sekop, dua sekop, dan seterusnya hingga king sekop, dilanjutkan as hati sampai king hati, dilanjutkan as keriting hingga king keriting, terakhir adalah as diamond hingga king diamond. Urutan kartu as diletakkan di awal agar lebih mudah menganalogikannya dengan urutan angka pada umumnya. Kartu as dianggap angka 1, atau urutan pertama sehingga mengeliminasi kejanggalan saat pembahasan selanjutnya (mungkin akan terdapat sedikit kebingungan mengapa dimulai dari angka 2, maka dari itu kartu as diletakkan di awal urutan). 3. PEMBAHASAN SERTA ANALISIS 3.1 Brute force cara pertama Teknik pengurutan kartu jenis pertama adalah dengan brute force secara keseluruhan. Maksudnya adalah kita akan mengurutkan kartu as hingga kartu king dengan urutan suit sekop, hati, keriting, dan diamond. Dimulai dari kartu yang telah terkocok. Mula mula dari kumpulan kartu ini dicari kartu as sekop yang merupakan kartu dengan urutan pertama. Teknik pencarian adalah dengan membuka satu persatu kartu yang awalnya tertumpuk tertutup (gambar depan kartu tidak kelihatan) hingga kartu target ditemukan. Setelah ditemukan, tumpukan kartu yang terbuka kembali ditaruh di atas tumpukan kartu yang masih tertutup tanpa mengubah urutan kartu dan pencarian diulangi lagi dari awal dengan mencari kartu dua sekop. Setelah dua sekop ditemukan, pencarian diulangi lagi dari awal untuk kartu selanjutnya, yakni tiga sekop dan seterusnya hingga didapatkan seluruh kartu dengan suit spades terurut. Selanjutnya dilanjutkan pencarian untuk suit hati, dilanjutkan suit keriting, dan terakhir diamond hingga seluruh kartu terurut sempurna. Pengurutan kartu dengan brute force seperti ini tentu saja akan banyak memakan waktu karena setiap kali setelah kartu yang hendak dicari ditemukan, pencarian diulangi lagi dari awal tumpukan. Gambar 7: Contoh proses pengurutan brute force cara pertama Pada contoh gambar di atas, proses pengurutan sudah mencapai kartu 4 keriting. Kartu pada tumpukan A adalah kartu yang telah terurut, kartu pada tangan adalah kartu target berikutnya yakni kartu 4 keriting, sedangkan tumpukan B adalah tumpukan untuk menumpuk kartu saat pecarian kartu target. Setelah kartu 4 keriting ditemukan dan ditumpuk pada tumpukan A, seluruh kartu tumpukan B ditumpuk kembali ke tumpukan di tangan secara tertutup, dan pencarian dilanjutkan kembali. Gambar 6: Kartu dalam urutan sempurna, as sekop hingga king diamond 3.2 Brute force cara kedua Pencarian brute force berikut ini merupakan teknik pengurutan kartu yang juga masih berupa brute force,

namun mungkin akan lebih baik. Teknik brute force kedua adalah dengan cara membeberkan seluruh kartu yang telah terkocok dengan posisi terbuka, sehingga masing - masing kartu dapat terlihat. Pencarian dimulai dengan mencari kartu target yang pertama yakni as sekop. Kartu target diambil keluar dari beberan kartu dan ditumpuk terpisah dengan beberan kartu yang teracak. Selanjutnya dicari kartu target kedua yakni dua sekop dan ditarik keluar dari beberan lalu ditumpukkan bersama dengan kartu target sebelumnya yakni as sekop. Pencarian terus dilanjutkan hingga terbentuk susunan kartu sempurna. Teknik pengurutan brute force kedua ini jauh lebih baik daripada teknik pengurutan sebelumnya karena pada teknik ini pencarian tidak diulangi dari awal, namun langsung mencari kartu target berikutnya. Setiap kartu telah diketahui letaknya (tanpa perlu dicatat, tinggal dilihat saja karena telah terbeber menghadap terbuka ke atas). Ada banyak lagi teknik pengurutan kartu secara brute force, namun tidak dicantumkan pada makalah ini sebab dipandang teknik teknik pengurutan kartu secara brute force yang lain hanyalah variasi dari dua teknik brute force di atas. Dua teknik sebelumnya dianggap telah dapat mewakilkan teknik pencarian dan penyusunan kartu lain yang tidak menghasilkan perbedaan waktu pengurutan yang signifikan. Kedua algoritma atau teknik pengurutan kartu di atas terlihat jelas berbeda waktu pengurutannya. teknik pengurutan insertion sort tidak terlalu baik untuk digunakan. 3.4 Merge sort cara pertama Teknik pengurutan berikutnya merupakan teknik pengurutan yang mengacu pada algoritma divide and conquer, lebih spesifiknya adalah merge sort. Teknik pengurutan berdasarkan algoritma merge sort mungkin merupakan teknik pengurutan yang optimal untuk kasus pengurutan kartu ini. Terdapat beberapa kemungkinan pengurutan yang dapat dilakukan berdasarkan algoritma ini. Pertama adalah dengan cara memilah (divide) kartu berdasarkan angka (value). Jadi mula mula dipisahkan dahulu seluruh kartu dan dikelompokkan berdasarkan value nya. Satu kelompok kartu tentunya akan terdiri dari 4 kartu (karena ada 4 suits) dan akan terbentuk 13 kelompok kartu. 3.3 Insertion sort Algoritma pengurutan berikutnya mengacu kepada algoritma insertion sort. Pada algoritma ini mirip seperti pada contoh pengurutan angka (ref [1] pp. 85-88). Mula mula seluruh kartu yang teracak dibeberkan terbuka sehingga masing masing kartu dapat diketahui letaknya. Pengurutan dimulai dengan menarik keluar kartu terdepan lalu menyisipkannya setelah (dapat pula sebelum) kartu yang berada pada urutan kartu sempurna. Misalnya kartu jack hati terletak pada urutan terdepan beberan kartu. Kartu jack hati disisipkan setelah kartu 10 hati (atau sebelum queen hati). Pengurutan dilanjutkan lagi dengan menarik kartu terdepan pada beberan kartu dan menyisipkannya kembali pada urutan yang diharapkan begitu seterusnya hingga kartu terurut sempurna. Bila terdapat seblok kartu yang telah terurut, blok kartu ini dapat dianggap satu kesatuan dan disisipkan kembali pada tempat yang diharapkan. Teknik pengurutan insertion sort ini akan menghasilkan waktu pengurutan yang lebih baik dari teknik sebelumnya. Namun terkadang dapat dijumpai kasus yang menyebabkan pengurutan akan berlangsung lebih lama. Hal ini dapat disebabkan, pada tengah tengah proses pengurutan, tentu saja akan terdapat banyak blok blok kecil kartu yang telah terurut dan pada suatu waktu, blok kartu ini akan menjadi urutan terdepan pada beberan kartu. Hal ini menyebabkan terjadinya pengulangan pengurutan. Hal seperti ini pasti terjadi berulang ulang. Maka, Gambar 8: Pemilahan kartu berdasarkan nilainya menjadi 13 kelompok yang terdiri dari 4 kartu masing masing kelompok Setelah dipilah, di masing masing tumpukan ini dilakukan pengurutan berdasarkan suitnya. Misalkan sekop, hati, keriting, dan diamond. Setelah itu ketiga belas kelompok karti ini diurutkan pula berdasarkan valuenya. Setelah terurut, diambil satu kartu teratas dari masing masing tumpuk secara terurut dan ditumpukkan menjadi satu. Setelah ketiga belas kartu teratas terambil, ulangi kembali hingga seluruh kartu terurut sempurna. 3.5 Merge sort cara kedua Teknik algoritma divide and conquer kedua adalah dengan memilah kartu mula mula berdasarkan suitnya. Dari tumpukan kartu teracak, mula mula dipisahkan seluruh kartu dengan suit sekop. Lalu dilanjutkan suit hati, dan seterusnya hingga terdapat 4 kelompok kartu dengan masing masing terdapat 13 kartu. Proses dilanjutkan dengan mengurutkan masing masing kelompok berdasarkan valuenya. Setelah masing masing kelompok terurut, keempat

kelompok kemudian dikumpulkan kembali secara terurut berdasarkan urutan suit hingga menjadi urutan kartu sempurna. Gambar 11 : Pemilahan kartu hitam berdasarkan suitnya, sekop dengan keriting Gambar 9: Pemilahan kartu merah berdasarkan suitnya hati dengan diamond Gambar 9: Pemilahan kartu berdasarkan suit 3.6 Variasi merge sort cara kedua Teknik pengurutan merge sort berikutnya adalah dengan cara memilah dahulu seluruh kartu teracak berdasarkan warna (merah dan hitam). Selanjutnya proses pengurutan mirip dengan pengurutan sebelumnya. Teknik demikian akan memermudah dan mempercepat pengurutan bila dibanding teknik sebelumnya karena pada teknik sebelumnya, kartu dikelompokkan langsung berdasarkan suit. Pada teknik sebelumnya, mula mula dibentuk satu kelmpok suit dahulu. Setelah selesai, lanjutkan dengan memilah suit berikutnya. Tersisa dua suit dan dilanjutkan pemilahan antara dua suit ini. Lalu berlanjut seperti tertulis di atas. Pada algoritma yang ketiga, pemilahan berdasarkan warna akan jauh lebih cepat daripada harus memilah berdasarkan salah satu suit spesifik. Gambar 10: Pemilahan kartu merah dan hitam Setelah terbentuk dua kelompok besar kartu berdasarkan warna, masing masing kelompok akan dipilah kembali berdasarkan suitnya. 4. KESIMPULAN Masih terdapat banyak kemungkinan cara, teknik, atau algoritma untuk pengurutan kartu remi. Setiap jenis teknik berbeda, akan dibandingkan berdasarkan kecepatan pengurutan serta keoptimalan pengurutan. Selain itu, kemudahan dalam metode pengurutan pun menjadi sebuah tantangan yang mungkin dapat ditelaah lebih mendalam lagi. Selain kecepatan dari segi algoritmanya sendiri, kecepatan pengurutan kartu pun bergantung pada kecekatan tangan kita untuk

mengurutkannya. Namun di luar hal teknis seperti ini, kajian dalam makalah ini hanyalah berkisar mengenai variasi variasi yang cukup signifikan untuk mengurutkan kartu. Pada dasarnya, pengurutan kartu merupakan salah satu contoh yang dekat dengan kehidupan sehari hari. Diharapkan dengan pemaparan menggunakan contoh yang dekat dengan kehidupan, teknis algoritma pengurutan menjadi lebih menarik untuk dipelajari. Contoh pengurutan kartu ini dapat diganti serta diadopsi untuk teknik pengurutan lainnya. Akhirnya,alasan utama dipilihnya topik ini adalah karena penulis memang sering berhubungan dengan kartu, dan mendapat inspirasi untuk mengangkat topik ini untuk dikaji lebih lanjut didasari pada tantangan pada diri sendiri untuk mampu mencetuskan atau memikirkan teknik pengurutan kartu yang cepat dan optimal. Seluruh teknik pengurutan di atas dicetuskan dari pengalaman semata, serta pemikiran pribadi. REFERENSI [1] Munir. Rinaldi, Diktat Kuliah IF2251 Strategi Algoritmik, Informatika ITB, 2005. [2] http://webspace.ship.edu/cawell/sorting/bubintro.htm tanggal akses 10 Mei 2008 [3] http://www.usplayingcard.com/gamerules/generalrules.htm tanggal akses 10 Mei 2008

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.