Archive for 2015
Jumat, 18 Desember 2015
HMP PTI adalah sebuah organisasi himpunan pendidikan Teknik informatika , yg berangotakan mahasiswa prodi PTI, yang terdiri dari beberapa susunan yg terdiri dari bidang 1 - 5
Kegiatan pertama HMP PTI
1. Seminar Nasional
Program Studi (Prodi) Pendidikan Informatika, Fakultas Keguruan dan Ilmu Pendidikan (FKIP), Universitas Muhammadiyah Surakarta (UMS) menggelar seminar nasional hari Rabu, 13 Mei 2015 lalu. Seminar bertajuk "The Power of ICT to Create Changing in the Future Education" tersebut digelar di Auditorium Mohamad Djazman UMS dengan menghadirkan dua pembicara sekaligus. Pembicara pertama berasal dari kalangan akademisi yaitu Dr. Ratna Wardani SSi,.MSc., selaku Kaprodi Magister Pendidikan Teknik Elektronika dan Informatika (PTEI) Universitas Negeri Yogyakarta (UNY), dan pembicara kedua adalah bpk. Eka Indarto, praktisi information and communications technology (ICT) yang sudah lama bergelut dibidangnya.
Tujuan dari seminar ini antara lain mengoptimalkan sumber daya ICT yang ada supaya lebih bermanfaat bagi kepentingan edukasi, baik bagi Pendidik sendiri maupun peserta didik secara keseluruhan. Selain itu, diharapkan juga dapat memberikan solusi tentang permasalahan ICT yang ada guna mencapai tujuan pendidikan yang maksimal.
Meski baru pertama kali mengadakan kegiatan seperti ini bagi Prodi Pendidikan Informatika UMS, acara berlangsung lancar dan sukses, terbukti dengan banyaknya peserta yang hadir dalam seminar tersebut. Tidak hanya dari kalangan Mahasiswa, hadir juga dari para Pendidik, salah satunya adalah Suhardi, seorang guru dari SMK N 2 Sukoharjo. Dalam sesi tanya jawab, dia mengeluhkan sikap Pemerintah yang melakukan pemblokiran beberapa situs internet padahal situs tersebut sangat berguna bagi masyarakat, tetapi malah membiarkan situs-situs porno tetap bisa diakses. Seharusnya dilakukan pengkajian secara mendalam sebelum melakukan tindakan pemblokiran seperti itu sehingga tidak terjadi kesalahan.
Dari ratusan peserta yang hadir, ada salah satu Mahasiswa IAIN Surakarta yang menanyakan kepada nara sumber terkait sarana dan prasarana ICT yang kurang memadai, padahal di era sekarang ini di negara lain sudah jauh melaju sedangkan kita masih seperti jalan di tempat. Untuk itu, ke depan supaya lebih dikembangkan lagi agar tidak tertinggal lebih jauh dengan teknologi negara lain.
2. HMP Pendidikan Teknik Informatika mengadakan acara Sampul Cover
kemarin Senin (03/06/2015) Himpunan Mahasiswa Program Studi Pendidikan Teknik Informatika mengadakan sebuah acara Sampul Cover dengan Tema "PERAN PEMUDA DALAM MENYIKAPI MEDIA SOSIAL" bertempat di Gedung Pendidikan Teknik Informatika lantai 2 ( dua ).
Himpunan Mahasiswa Program Studi Pendidikan Teknik Informatika mengundang Ustad Mu'in Nudillah Basri sebagai pembicara dalam acara ini.
"Tujuan kami sebagai bidang 1 ( Kajian Islamiyah ) mengadakan sampul cover dengan tema tersebut selain mempererat tali silaturahmi antar Himpunan prodi lain, tetapi juga kita sebagai calon - calon guru agar bisa meminimalisir anak-anak didik dimasa yang akan datang itu tidak terpicu dengan tindak kejahatan di media sosial" kata Ika Fitri Nurjanah sebagai Sekretaris Bidang 1.
3. Peresmian Ruang HMP PTI UMS
Pagi ini ( Sabtu, 27 Juni 2015 ) diadakan peresmian Ruang HMP, peresmian dihadiri oleh Wakil Dekan 2, Wakil Dekan 3, Kaprodi PTI, Kaprodi PAUD, Kaprodi PGSD di Ruang B.25.
Sambutan diawali oleh Wakil Dekan 2, Drs. Muhroji, SE. M.Si, lalu dilanjut penyerahan Kunci Ruang yang diserahkan dari Wakil Dekan 2 ke Ketua BEM FKIP, lalu dari BEM FKIP ke Perwakilan HMP.
setelah Penyerahan kunci Ruang HMP, dilanjut menuju ke Ruang HMP di gedung B.24, diharapkan agar dengan adanya Ruang Baru HMP ini bisa digunakan sebaik-baiknya.
Kegiatan pertama HMP PTI
1. Seminar Nasional
Program Studi (Prodi) Pendidikan Informatika, Fakultas Keguruan dan Ilmu Pendidikan (FKIP), Universitas Muhammadiyah Surakarta (UMS) menggelar seminar nasional hari Rabu, 13 Mei 2015 lalu. Seminar bertajuk "The Power of ICT to Create Changing in the Future Education" tersebut digelar di Auditorium Mohamad Djazman UMS dengan menghadirkan dua pembicara sekaligus. Pembicara pertama berasal dari kalangan akademisi yaitu Dr. Ratna Wardani SSi,.MSc., selaku Kaprodi Magister Pendidikan Teknik Elektronika dan Informatika (PTEI) Universitas Negeri Yogyakarta (UNY), dan pembicara kedua adalah bpk. Eka Indarto, praktisi information and communications technology (ICT) yang sudah lama bergelut dibidangnya.
Tujuan dari seminar ini antara lain mengoptimalkan sumber daya ICT yang ada supaya lebih bermanfaat bagi kepentingan edukasi, baik bagi Pendidik sendiri maupun peserta didik secara keseluruhan. Selain itu, diharapkan juga dapat memberikan solusi tentang permasalahan ICT yang ada guna mencapai tujuan pendidikan yang maksimal.
Meski baru pertama kali mengadakan kegiatan seperti ini bagi Prodi Pendidikan Informatika UMS, acara berlangsung lancar dan sukses, terbukti dengan banyaknya peserta yang hadir dalam seminar tersebut. Tidak hanya dari kalangan Mahasiswa, hadir juga dari para Pendidik, salah satunya adalah Suhardi, seorang guru dari SMK N 2 Sukoharjo. Dalam sesi tanya jawab, dia mengeluhkan sikap Pemerintah yang melakukan pemblokiran beberapa situs internet padahal situs tersebut sangat berguna bagi masyarakat, tetapi malah membiarkan situs-situs porno tetap bisa diakses. Seharusnya dilakukan pengkajian secara mendalam sebelum melakukan tindakan pemblokiran seperti itu sehingga tidak terjadi kesalahan.
Dari ratusan peserta yang hadir, ada salah satu Mahasiswa IAIN Surakarta yang menanyakan kepada nara sumber terkait sarana dan prasarana ICT yang kurang memadai, padahal di era sekarang ini di negara lain sudah jauh melaju sedangkan kita masih seperti jalan di tempat. Untuk itu, ke depan supaya lebih dikembangkan lagi agar tidak tertinggal lebih jauh dengan teknologi negara lain.
2. HMP Pendidikan Teknik Informatika mengadakan acara Sampul Cover
kemarin Senin (03/06/2015) Himpunan Mahasiswa Program Studi Pendidikan Teknik Informatika mengadakan sebuah acara Sampul Cover dengan Tema "PERAN PEMUDA DALAM MENYIKAPI MEDIA SOSIAL" bertempat di Gedung Pendidikan Teknik Informatika lantai 2 ( dua ).
Himpunan Mahasiswa Program Studi Pendidikan Teknik Informatika mengundang Ustad Mu'in Nudillah Basri sebagai pembicara dalam acara ini.
"Tujuan kami sebagai bidang 1 ( Kajian Islamiyah ) mengadakan sampul cover dengan tema tersebut selain mempererat tali silaturahmi antar Himpunan prodi lain, tetapi juga kita sebagai calon - calon guru agar bisa meminimalisir anak-anak didik dimasa yang akan datang itu tidak terpicu dengan tindak kejahatan di media sosial" kata Ika Fitri Nurjanah sebagai Sekretaris Bidang 1.
3. Peresmian Ruang HMP PTI UMS
Pagi ini ( Sabtu, 27 Juni 2015 ) diadakan peresmian Ruang HMP, peresmian dihadiri oleh Wakil Dekan 2, Wakil Dekan 3, Kaprodi PTI, Kaprodi PAUD, Kaprodi PGSD di Ruang B.25.
Sambutan diawali oleh Wakil Dekan 2, Drs. Muhroji, SE. M.Si, lalu dilanjut penyerahan Kunci Ruang yang diserahkan dari Wakil Dekan 2 ke Ketua BEM FKIP, lalu dari BEM FKIP ke Perwakilan HMP.
setelah Penyerahan kunci Ruang HMP, dilanjut menuju ke Ruang HMP di gedung B.24, diharapkan agar dengan adanya Ruang Baru HMP ini bisa digunakan sebaik-baiknya.
Senin, 05 Oktober 2015
Data yang telah di urutkan :
35 38 43 48 49 51 56 59 60 60 61 63 63
63 65 66 67 68 68 70 70 70 70 71 71 71 72 72 72 73 73 74 74 74 74 75 75 75 76
77 78 79 79 80 80 80 81 81 81 81 82 82 83 83 83 84 85 86 86 87 87 88 88 88 89
90 90 90 91 91 91 92 92 93 93 93 95 97 98 99
Kelas :
K = 1 + 3.3 log(80)
= 7.280
Interval :
I = 99 – 35
7
= 64 = 9,142
7
Relatif :
R = 3 x 100
80
= 3,75
Nilai
|
Batas Kelas
|
Frekuensi
|
Frek. Relatif
|
Frek. Kumulatif (Kurang Dari)
|
Frek. Kumulatif (Lebih Dari)
|
< 34,5 = 0
|
> 34,5 = 80
|
||||
35 – 43
|
34,5 – 43,5
|
3
|
3,75
|
< 43,5 = 3
|
> 43,5 = 77
|
44 – 52
|
43,5 – 52,5
|
3
|
3,75
|
< 52,5 = 6
|
> 52,5 = 74
|
53 – 61
|
52,5 – 61,5
|
5
|
6,25
|
< 61,5 = 11
|
> 61,5 = 69
|
62 – 70
|
61,5 – 70,5
|
12
|
15
|
< 70,5 = 23
|
> 70,5 = 57
|
71 – 79
|
70,5 – 79,5
|
20
|
25
|
< 79,5 = 43
|
> 79,5 = 37
|
80 – 88
|
79,5 – 88,5
|
21
|
26,25
|
< 88,5 = 64
|
> 88,5 = 16
|
89 – 97
|
88,5 – 97,5
|
14
|
17,5
|
< 97,5 = 78
|
> 97,5 = 2
|
98 – 106
|
97,5 – 99,5
|
2
|
2,5
|
< 105,5 = 80
|
> 105,5 = 0
|
80
|
100
|
||||
Oke,
setelah semuanya selesai, sekarang mari kita membuat Grafik dari jawaban soal
diatas.
Grafik
Histogram :
Histogram
merupakan diagram balok. Histogram menghubungkan antara tepi kelas
interval dengan pada sumbu horizontal (X) dan frekuensi setiap kelas pada sumbu
vertikal (Y).
Grafik
Polygon :
Menggunakan
garis yang mengubungkan titik – titik yang merupakan koordinat antara
nilai tengah kelas dengan jumlah frekuensi pada kelas tersebut.
Kurva
Ogif / Ogive :
Merupkan
diagram garis yang menunjukan kombinasi antara interval kelas dengan frekuensi
kumulatif.
Nah Seperti itu beberapa penampakan grafiknya
Sabtu, 11 April 2015
Tree sort
Merupakan proses dua langkah.
Pertama elemen dimasukkan kedalam suatu binary search tree. Kemudian, elemen
didapatkan kembali, dalam susunan terurut menggunakan suatu inorder traversal.
Dalam metode ini pengurutan dilakukan dengan membentuk
pohon. Aturan dalam membentuk pohon adalah : informasi yang tersimpan pada
cabang kiri nilainya selalu lebih kecil dari simpul akar dan informasi yang
tersimpan dalam simpul akar nilainya selalu lebih kecil dari yang tersimpan
pada cabang kanan. Jika pohon disusun dengan cara ini, maka pada saat dilakukan
kunjungan inorder akan diperoleh informasi yang dalam keadaan terurut naik
berdasarkan RLO, atau urut turun berdasarkan RLO.
Gambar 3.2.1 Contoh pohon treesort
Gambar diatas
menunjukkan contoh pohon yang apabila dibaca secara inorder akan menghasilkan
informasi dalam keadaan urut. Dari pohon diatas jika dilakukan kunjungan secara
inorder dan RLO, akan diperoleh informasi ‘ABCDEFGHIJKLMNOPQ’; dan dengan
menggunakan RLO akan diperoleh informasi ‘QPONMLKJIHGFEDCBA’
struct Node {
int item; / / Data dalam node ini.
Node *kiri;
/ / Pointer kesubtreekiri.
Node *
kanan; / / Pointer kesubtreekanan.
}
Berikut algoritma nya
:
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
typedefstruct node{
int data;
node *left;
node *right;
};
node *root=NULL;
void Tambahnode(node **root, intisi) {
if((*root)==NULL){
node *baru;
baru= new node;
baru->data = isi;
baru->left = NULL;
baru->right = NULL;
(*root)=baru;
}
}
void preorder(node *root) {
if(root !=NULL) {
printf(“%i, “, root->data);
preorder(root->left);
preorder(root->right);
}
}
voidinorder(node *root) {
if(root !=NULL) {
inorder(root->left);
printf(“%i, “, root->data);
inorder(root->right);
}
}
voidpostorder(node *root) {
if(root !=NULL) {
postorder(root->left);
postorder(root->right);
printf(“%i, “, root->data);
}
}
int main(){
int nil;
int x;
int y;
x=40;y=3;
gotoxy(x,y);
printf(“100\n”);
gotoxy(x-10,y+1);
printf(“90″);
gotoxy(x+10,y+1);
printf(“200\n”);
gotoxy(x-20,y+2);
printf(“80″);
gotoxy(x+20,y+2);
printf(“300\n”);
gotoxy(x-30,y+3);
printf(“70″);
gotoxy(x+30,y+3);
printf(“400\n”);
Tambahnode(&root,nil=100);
Tambahnode(&root->left,nil=90);
Tambahnode(&root->left->left,nil=80);
Tambahnode(&root->left->left->left,nil=70);
Tambahnode(&root->right,nil=200);
Tambahnode(&root->right->right,nil=300);
Tambahnode(&root->right->right->right,nil=400);
printf(“\nProgram By: AH. HANDOYO[1412110156]”);
printf(“\nTampilansecaraPreOrder : “);
preorder(root);
printf(“\nTampilansecaraInOrder : “);
inorder(root);
printf(“\nTampilansecaraPostOrder : “);
postorder(root);
}
Exchange short
Sangat mirip
dengan Bubble Sort, banyak yang
mengatakan Bubble Sort sama dengan Exchange Sort
Pebedaan :
dalam hal bagaimana membandingkan antar elemen-elemennya.
• Exchange sort membandingkan suatu
elemen denganelemen-elemen lainnya dalam array tersebut, dan melakukan
pertukaran elemen jika perlu. Jadi ada
elemen yang selalu menjadi elemen pusat (pivot).
• Bubble sort akan membandingkan elemen pertama/terakhir dengan elemen
sebelumnya/sesudahnya, kemudian elemen tersebut itu akan menjadi pusat (pivot)
untuk dibandingkan dengan elemen sebelumnya/sesudahnya lagi, begitu seterusnya
Prosedur exchange:
Selection
short
• Merupakan kombinasi antara sorting dan
searching untuk setiap proses, akan dicari
elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar
akan dipertukarkan ke posisi yang tepat di dalam array.
• Misalnya untuk putaran pertama, akan
dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks
terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan
akan ditempatkan di indeks kedua (data[1]).
• Selama proses, pembandingan dan
pengubahan hanya dilakukanpada indeks pembanding saja, pertukaran data secara
fisik terjadi pada akhir proses.
Prosedur Selection
short
HeapSort
Seperti treesort, heapsort adalah dua langkah proses. Pertama, data ditaruh kedalam heap(tumpukan), dan, kedua, data diekstrak dari heapdalam susunan terurut. Heapsort merupakan saudara dari selection sort karena algoritma keduanya select (memilih ) dan kemudian menukarkannya kedalam susunan terurut elemen yang lebih besar secara berturut-turut. Heapsort menggunakan struktur data yang lebih efisien daripada selection sort. Tetapi selection sort akan menjadi lebih cepat untuk satu set elemen yang kecil.
Heapsort
akan dibangun dengan algoritma heapsort. Pemanggilan kembali dalam organisasi
heap menempatkan elemen terkecil diatas, jika susunan elemen dari tumpukan
disimpan sebagai elemen array r[1], r[2], …, r[n] kemudian elemen dengan kunci
terkecilakan disimpan sebagai r[1]. Trik ini untuk menemukan elemen dengan
kunci terbesar kedua. Akan diproses sebagai berikut :
Pertama,
lintasankan data yang akan ditukar r[1] dan r[n] kemudian selidiki ke bawah
r[1] dalam susunan r[1],…, r[n -1] sehingga r[1], …, r[n- 1] membentuk suatu
tumpukan. Hasilnya bahwa r[n] adalah suatu list yang terurut dari deret satu
dan elemen yang terkecil keduaadalah r[1]. Berikut gambarnya :
Algoritma
Procedure
heapsort(n : integer);
Var j, k,
temp: integer;
Begin
j := (n div
2) + 1;
while j >
1 do
begin
j := j –
1;siftdown(j,n)
yang diperlukan karena siftdown sering
diaplikasikan untuk suatu heapyang lebih kecil dari n elemen.
Dalam setiap
langkah, elemen terkecil diambil ari bagian teratas heap dan dipindahkan ke
list terurut. Suatu heap dibentuk dari elemen sisa yangPusat Pengembangan
Pendidikan – Universitas Gadjah Mada 28 menggunakan
prosedur siftdown.
Proses kemudian diulangi.
(a) data
yang akan diurutkan.
(b) konstruksi dari suatu heap.
Quick Sort (Metode Quick)
Metode Quick
sering disebut juga metode partisi (partition exchange sort). Metode ini
diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1962. Untuk
mempertinggi efektifitas dari metode ini, digunakan teknik menukarkan dua
elemen dengan jarak yang cukup besar. Proses penukaran dengan metode quick
dapat dijelaskan sebagai berikut:
Mula-mula
dipilih data tertentu yang disebut pivot, misalnya x. Pivot dipilih untuk
mengatur data di sebelah kiri agar lebih kecil daripada pivot dan data di
sebelah kanan agar lebih besar daripada pivot. Pivot ini diletakkan pada posisi
ke j sedemikian sehingga data antara 1 sampai dengan j-1 lebih kecil daripada
x. Sedangkan data pada posisi ke j+1 sampai N lebih besar daripada x. Caranya
dengan menukarkan data diantara posisi 1 sampai dengan j-1 yang lebih besar
daripada x dengan data diantara posisi j+1 sampai dengan N yang lebih kecil
daripada x.
- Metode Quick Sort Non Rekursif
Implementasi
secara non rekursif memerlukan dua buah tumpukan (stack) yang digunakan yang
digunakan untuk menyimpan batas-batas subbagian. Pada prosedur ini menggunakan
tumpukan yang bertipe record (struktur) yang terdiri dari elemen kiri (untuk
mencatat batas kiri) dan kanan (untukmencatat batas kanan. Tumpukan dalam hal
ini dideklarasikan sebagai array.
Algoritma
quick sort non rekursif dapat dituliskan sebagai berikut :
1.
Tumpukan[1].Kiri = 0
2.
Tumpukan[1].Kanan = N-1
3. Selama
ujung ≠ 0 kerjakan baris 4 sampai dengan 22
4. L =
Tumpukan[ujung].Kiri
5. R =
Tumpukan[ujung].Kanan
6. ujung =
ujung – 1
7. Selama (R
> L) kerjakan baris sampai 8 dengan 22
8. i = L
9. j = R
10. x =
Data[(L + R) / 2]
11. Selama i
<= j kerjakan baris 12 sampai dengan 14
12. Selama
(Data[i] < x), i = i + 1
13. Selama
(x < Data[j]), j = j – 1
14. Jika (i
<= j) maka kerjakan baris 15 sampai dengan 17, jika tidak ke baris 11
15. Tukar
Data[i] dengan Data[j]
16. i = i +
1
17. j = j –1
18. Jika (L
< i) maka kerjakan baris 19 sampai dengan 21
19. ujung =
ujung + 1
20.
Tumpukan[ujung].Kiri = i
21.
Tumpukan[ujung].Kanan = R
22. R = j
Di bawah ini
merupakan prosedur yang menggunakan metode quick dengan non rekursi:
void
QuickSortNonRekursif(int N)
{
const M =
MaxStack;
struct tump
{
int Kiri;
int Kanan;
}
Tumpukan[M];
int i, j, L,
R, x, ujung = 1;
Tumpukan[1].Kiri
= 0;
Tumpukan[1].Kanan
= N-1;
while
(ujung!=0)
{
L =
Tumpukan[ujung].Kiri;
R =
Tumpukan[ujung].Kanan;
ujung--;
while(R >
L)
{
i = L;
j = R;
x =
Data[(L+R)/2];
while(i
<= j)
{
while(Data[i]
< x)
i++;
while(x <
Data[j])
j--;
if(i <=
j)
{
Tukar(&Data[i],
&Data[j]);
i++;
j--;
}
}
if(L < i)
{
ujung++;
Tumpukan[ujung].Kiri
= i;
Tumpukan[ujung].Kanan
= R;
}
R = j;
}
}
}
Metode Quick Sort Rekursif
Algoritma
quick Rekursif dapat dituliskan sebagai berikut :
1. x =
Data[(L + R) / 2]
2. i = L
3. j = R
4. Selama (
i <= j) kerjakan baris 5 sampai dengan 12
5. Selama
(Data[i] < x) kerjakan i = i + 1
6. Selama
(Data[j] > x) kerjakan j = j – 1
7. Jika (i
<= j) maka kerjakan baris 8 sampai 10; jika tidak kerjakan baris 11
8. Tukar
Data[i] dengan Data[j]
9. i = i + 1
10. j = j –1
11. Jika (L
< j) kerjakan lagi baris 1 dengan R = j
12. Jika (i
< R) kerjakan lagi baris 1 dengan L = i
Dibawah ini
merupakan prosedur yang menggunakan metode quick dengan rekursi:
void
QuickSortRekursif(int L, int R)
{
int i, j, x;
x =
data[(L+R)/2];
i = L;
j = R;
while (i
<= j)
{
while(Data[i]
< x)
i++;
while(Data[j]
> x)
j--;
if(i <=
j)
{
Tukar(&Data[i],
&Data[j]);
i++;
j--;
}
}
if(L < j)
QuickSortRekursif(L,
j);
if(i < R)
QuickSortRekursif(i,
R);
}
Merge Sort (Metode Penggabungan)
Metode
penggabungan biasanya digunakan pada pengurutan berkas. Prinsip dari metode
penggabungan sebagai berikut :
Mula-mula
diberikan dua kumpulan data yang sudah dalam keadaan urut. Kedua kumpulan data
tersebut harus dijadikan satu table sehingga dalam keadaan urut. Misalnya
kumpulan data pertama (T1) adalah sebagai berikut :
3 11 12 23
31
Sedangkan
kumpulan data kedua (T2) adalah sebagai berikut :
9 15 17 20
35
Proses
penggabungan ini dapat dijelaskan sebagai berikut : mula-mula diambil data
pertama dari T1 yaitu 3 dan data pertama dari T2 yaitu 9. Data ini
dibandingkan, kemudian yang lebih kecil diletakkan sebagai data pertama dari
hasil pengurutan, misalnya T3. Jadi T3 akan memiliki satu data yaitu 3. Data
yang lebih besar yaitu 9 kemudian dibandingkan dengan data kedua dari T1, yaitu
11. Ternyata 9 lebih kecil dari 11, sehingga 9 diletakkan sebagai data kedua
dari T3. Demikian seterusnya
sehingga
didapat hasil sebagai berikut :
3 9 11 12 15
17 20 23 31 35
Algoritma
penggabungan dapat dituliskan sebagai berikut :
i = 0
j = 0
J3 = 0
4. Kerjakan
baris 5 sampai dengan 7 selama (i < J1) atau (j < J2)
J3 = J3 + 1
Jika (T1[i] < T2[j]) maka T3[J3] = T1[i], i
= i + 1
Jika (T1[i] >= T2[j]) maka T3[J3] = T2[j],
j = j + 1
Jika (i > J1) maka kerjakan baris 9, jika
tidak kerjakan baris 15
i = j
Selama (i < J2) kerjakan baris 11 sampai
dengan 13
J3 = J3 + 1
T3[J3] = T2[i]
i = i + 1
Selesai
j = i
Selama (j < J1) kerjakan baris 17 sampai
dengan 19
J3 = J3 + 1
T3[J3] = T1[j]
j = j + 1
Di bawah ini
merupakan prosedur penggabungan dua kumpulan data yang sudah dalam keadaan
urut:
void
MergeSort(int T1[],int T2[],int J1,int J2, int T3[],int *J3)
{
int i=0,
j=0;
int t=0;
while
((i<J1)||(j<J2))
{
if(T1[i]<T2[j])
{
T3[t] =
T1[i];
i++;
}
else
{
T3[t] =
T2[j];
j++;
}t++;
}
if(i>J1)
for(i=j;
i<J2; i++)
{
T3[t] =
T2[i];
t++;
}
if(j>J2)
for(j=i;
j<J1; j++)
{
T3[t] =
T1[j];
t++;
}
*J3 = t;
}
Shell Sort (Metode Shell)
Metode ini disebut juga dengan metode pertambahan menurun (diminishing
increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959,
sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data
dengan cara membandingkan suatu data dengan data lain yang memiliki jarak
tertentu, kemudian dilakukan penukaran bila diperlukan. Proses pengurutan
dengan metode Shell dapat dijelaskan sebagai berikut :
Pertama-tama
adalah menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N /
2. Data pertama dibandingkan dengan data dengan jarak N / 2. Apabila data
pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut
ditukar. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 2.
Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j
selalu lebih kecil daripada data ke-(j + N / 2).
Pada proses
berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Data pertama dibandingkan
dengan data dengan jarak N / 4. Apabila data pertama lebih besar dari data ke N
/ 4 tersebut maka kedua data tersebut ditukar. Kemudian data kedua dibandingkan
dengan jarak yang sama yaitu N / 4. Demikianlah seterusnya hingga seluruh data
dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 4).
Pada proses
berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian seterusnya sampai
jarak yang digunakan adalah 1.
Algoritma
metode Shell dapat dituliskan sebagai berikut :
Jarak = N
Selama (Jarak > 1) kerjakan baris 3 sampai
dengan 9
Jarak = Jarak / 2. Sudah = false
Kerjakan baris 4 sampai dengan 8 selama Sudah
= false
Sudah = true
j = 0
Selama (j < N – Jarak) kerjakan baris 8 dan
9
Jika (Data[j] > Data[j + Jarak] maka tukar
Data[j],
Data[j + Jarak].
Sudah = true
j = j + 1
Di bawah ini
merupakan prosedur yang menggunakan metode Shell:
void
ShellSort(int N)
{
int Jarak,
i, j;
bool Sudah;
Jarak = N;
while(Lompat
> 1)
{
Jarak =
Jarak / 2;
Sudah =
false;
while(!Sudah)
{
Sudah =
true;
for(j=0;
j<N-Jarak; j++)
{
i = j +
Jarak;
if(Data[j]
> Data[i])
{
Tukar(&Data[j],
&Data[i]);
Sudah =
false;
} } } } }
Mana yang terbaik?
Tidak ada
algoritma terbaik untuk setiap situasi yang kita hadapi, bahkan cukup sulit
untuk menentukan algoritma mana yang paling baik untuk situasi tertentu karena
ada beberapa faktor yang mempengaruhi efektifitas algoritma pengurutan.
Beberapa faktor yang berpengaruh pada efektifitas suatu algoritma pengurutan
antara
lain:
1. Banyak
data yang diurutkan.
2. Kapasitas
pengingat apakah mampu menyimpan semua data yang kita miliki.
3. Tempat
penyimpanan data.
Referensi :
http://lecturer.ukdw.ac.id/anton/download/TIstrukdat3.ppt
http://www.mdp.ac.id/materi/2012-2013-2/sp244/111070/SP244-111070-950-18.pdf
http://ianeceper.blogspot.com
Referensi :
http://lecturer.ukdw.ac.id/anton/download/TIstrukdat3.ppt
http://www.mdp.ac.id/materi/2012-2013-2/sp244/111070/SP244-111070-950-18.pdf
http://ianeceper.blogspot.com