SlideShare a Scribd company logo
1 of 11
Laporan Praktikum Struktur Data
Pertemuan Ke – 3
Merge Sort
1. Pembahasan
#include<iostream>
#include<conio.h>
using namespace std;
int a[50];
void merge(int, int, int);
void merge_sort(int low, int high)
{
int mid;
if (low<high)
{
mid = (low + high) / 2;
merge_sort(low, mid);
merge_sort(mid + 1, high);
merge(low, mid, high);
}
}
void merge(int low, int mid, int high)
{
int h, i, j, b[50], k;
h = low;
i = low;
j = mid + 1;
while ((h <= mid) && (j <= high))
{
if (a[h] <= a[j])
{
b[i] = a[h]; h++;
}
else
{
b[i] = a[j]; j++;
}
i++;
}
if (h > mid)
{
for (k = j; k < high; k++)
{
b[i] = a[k]; i++;
}
}
else
{
for (k = h; k < high; k++)
{
b[i] = a[k]; i++;
}
}
for (k = low; k < high; k++)
a[k] = b[k];
}
int main(void)
{
int num, i;
cout << "==============================" << endl;
cout << "Merge Sort Program" << endl;
cout << "------------------------------" << endl;
cout << endl << endl;
cout << "Masukan Banyak Bilangan: "; cin >> num;
cout << endl;
cout << "Sekarang Masukan :" << num << "Bilangan yang Ingin di Urutkan:"
<< endl;
for (i = 1; i <= num; i++)
{
cout << "Bilangan ke- :" << i << " = "; cin >> a[i];
}
merge_sort(1, num);
cout << endl;
cout << "Hasil akhir pengurutan :" << endl;
cout << endl;
for (i = 1; i<=num; i++)
cout << a[i] << " - ";
cout << endl << endl << endl << endl;
}
#include<iostream> merupakan file header yang berisi fungsi – fungsi yang disediakan oleh C dan
diletakan di file perpustakaan sehingga dapat sebutkan dengan prosesor directive.
#include<conio.h> fileheader yang berisi fungsi –fungsi yangdisediakan oleh C dan diletakan di file
perpustakaan sehingga dapatsebutkan dengan prosesor directive. Dengan nama extention .h menjunjukan
file header.
using namespace std; membuat semua elemen didalamnamespacestd seperti coutdan endl dapat
langsung diakses
int a[50]; deklarasi variabel interger a bertipe array yg berisi 50.
void merge(int, int, int); deklarasi fungsi merge yang di inputkan ke komputer dengan type
data variabel integer.
void merge_sort(int low, int high); deklarasi funsi merge_sortyangdi inputkan kekomputer
dengan data type integer nama variabel low, dan type data integer nama variabel high.
{ kurung kurawal buka untuk memulai statement
int mid; deklarasi variabel bertype integer dengan nama variabel mid
if (low<high) bentuk operator logika dengan kondisi low lebih kecil dari high
{ kurung kurawal buka untu memulai suatu statement dari operator logika if
mid = (low + high) / 2; statement dimana variabel mid berisi kondisi lowplus high dan dimana
kondisi tersebut dibagi 2.
merge_sort(low, mid); statement dimana variabel merge_sort memiliki sebuah kondisi nilai
variabel low dan mid.
merge_sort(mid + 1, high); statement dimana variabel merge_sortmemiliki kondisi nilai variabel
dimana mid plus 1, dan high.
merge(low, mid, high); statement dimana variabel merge memiliki kondis nilai variabel low,mid,
high.
} kurung kurawal tutup untuk mengakhiri kondisi dari operator logika if.
} kurung kurawal tutup untuk mengakhiri statement.
void merge(int low, int mid, int high) dekalarasi fungsi variabel merge dengan nilai type
data integer low, mid, high. Fungsi ini di inputkan ke komputer.
{ kondisi untuk memulai statement pada fungsi void merge
int h, i, j, b[50], k; deklarasi variabel dengan type data integer dengan nama variabel h,i , j,
k dan variabel b adala variabel integer yang memiliki aray dengan value 50.
h = low; statement dimana h berisi variabel low
i = low; statement dimana i berisi variabel low
j = mid + 1; statement dimana j berisi variabel operand mid plus 1
while ((h <= mid) && (j <= high)) operator logika dengan kondisi variabel h lebih kecil atau
sama dengan variabel mid. Dan variabel j lebih kecil atau sama dengan variabel high.
{ memulai statement pada operator logika while
if (a[h] <= a[j]) operator logika if dengan kondisi variabel a dalam aray h lebih kecil atau sama
dengan variabel a dalam aray j
{ memulai statement
b[i] = a[h]; h++; statement dimana variabel b yangberaray i memiliki variabel a beraray h,kemudian
nilai variabel h di tambah 1 nilai variabelnya.
} mengakhiri statement dari operator logika if
else suatu nilai default dari operator logika if dimana jika nilai kondisi tidak sama dengan if maka operator
tersebut akan beralih ke nilai else
{ memulai statement
b[i] = a[j]; j++; statement dimana variabel b berisi aray i memiliki nilai
variabel a dengan array j, kemudian nilai variabel j ditambahkan nilainya.
} menghakhiri statement dari nilai default else
i++; penambahan nilai variabel dari operator logika while dimana nilai variabel i ditambah 1.
} mengakhiri statement dari operator logika while.
if (h > mid)operator logika if dengan kondisi dimanavariabel h lebih besar dari padanilai variabel mid.
{ memulai statement dari operator logika if
for (k = j; k < high; k++) operator logika for dengan kondisi nilai variabel k sama dengan nilai
pada variabel j, kemudian variabel k lebih kecil dari pada nilai pada variabel high, dan nilai variabel k
ditambahkan 1.
{ memulai statement operator logika for
b[i] = a[k]; i++; variabel b memiliki array data i dimana variabel b berisi variabel a yangmemiliki
aray data k, kemudian variabel i ditambah nilai valuenya 1.
} menutup statement dari operator logika for
} menutup statement dari operator logika if
Else kondisi nilai default dari operator if
{ memulai statement kondisi nilai default dari operator if
for (k = h; k < high; k++) operator logika for dengan kondisi variabel k berisi variabel nilai h,
kemudian variabel k memiliki nilai lebih kecil dari nilai variabel high,dan nilai valuevariabel k diatambhkan
nilainya 1.
{ memulai statement dari operator logika for
b[i] = a[k]; i++; statement dimana variabel b berisi data array i memiliki nilai variabel a yangberisi
data array k, kemudian nilai variabel i ditambahkan 1.
} menutup statement dari operator logika for
} menutup statement dari nilai default operator logika for
for (k = low; k < high; k++) operator logika dengan kondisi variabel nilai k memiliki nilai
variabel low,kemudian variabel k lebih kecil dari variabel high, dan variabel k nilai valuenya di tambah 1.
a[k] = b[k]; pendefinisian variabel dimana variabel a berisi nilai data aray k yangmemiliki nilai variabel
b berisi nilai data array k
} mengkahiri statement dari fungsi void merge
int main(void)judul fungsi yang memiliki nilai variabel main bertipe integer. Dan kondisi void kondisi
standar suatu fungsi.
{ memulai statement dari fungsi void main
int num, i; deklarasi variabel dengan nama variabel num, i bertype integer.
cout << "==============================" << endl; perintah menampilkan kelayar
monitor dengan format yang tertera pada semicolom.
cout << "Merge Sort Program" << endl; perintah menampilkan kelayara monitoe dengan
perintah pada semicolom yang berisi Merge Sort Program
cout << "------------------------------" << endl; perintah menampilkan kelayar
monitor dengan format yang tertera pada semicolom.
cout << endl << endl; fungsi manipulator untuk menyisipkan karakter new line
cout << "Masukan Banyak Bilangan: "; cin >> num;perintah menampilkan kelayar monitor
diman perintah tersebut memiliki inputan pada cin>> yang mengarah ke variabel num
cout << endl; fungsi manipulasi untuk menyisipkan karakter new line
cout << "Sekarang Masukan :" << num << "Bilangan yang Ingin di Urutkan:"
<< endl; perintah pengeluaran kelayar monitor yang tertera pada semicolom sekarang masukan :
kemudian terdapat pengeluaran nilai variabel yangterdeklarasi di iputan diatasnyaygkemudian ditampilkan
kembali.Kemudian menampilkan pada semicolomkembali pada Bilangan yangingin diurutkan.Yangmeliliki
fungsi karakter new line
for (i = 1; i <= num; i++)operasi logika for dengan kondisi i memiliki nilai 1,kemudian variabel
i kurang atau sama dari variabel num, dan variabel i ditmabahkan nilai valuenya 1.
{ memulai statement operasi logika for
cout << "Bilangan ke- :" << i << " = "; cin >> a[i]; perintah menampilkan kelayar
monitor yangtertera pada tanda semicolom”Bilangan ke-:“kemudian menampilkan variabel i dan ygtertera
pada semicolom “=” yang mana perintah pengeluaran tersebut memiliki inout variabel yang mengarah ke
variabel a berarray i.
} mengakhiri kondisi statement operasi logika for
merge_sort(1, num); identifikasi fungsi merge_sort dengan kondisi variabel 1 dan num.
cout << endl; fungsi karakter new line
cout << "Hasil akhir pengurutan :" << endl; perintah pengeluaran ke layar monitor yg
tertera pada semicolom
cout << endl; fungsi karakter newline
for (i = 1; i<=num; i++) operator logika for dengan kondisi variabel i bernilai 1,variabel i bernilai
kurang dari atau sama dengan variabel num, dan variabel i ditambah 1 nilai valuenya.
cout << a[i] << " - "; perintah pengeluaran menampilkan variabel yangberisi nilai pada variabel
a[i]
cout << endl << endl << endl << endl; fungsi karakter newline
} mengakhiri statement dari fungsi void main
2. Tugas
Memodifikasi Program yg Ada, dengan contoh sbb:
8 = [dari posisi 1 sebelumnya]
8 = [dari posisi 3 sebelumnya]
9 = [dari posisi 4 sebelumnya]
Syntaks:
#include<iostream>
#include<conio.h>
using namespace std;
int a[50];
void merge(int, int, int);
void merge_sort(int low, int high)
{
int mid;
if (low<high)
{
mid = (low + high) / 2;
merge_sort(low, mid);
merge_sort(mid + 1, high);
merge(low, mid, high);
}
}
void merge(int low, int mid, int high)
{
int h, i, j, b[50], k;
h = low;
i = low;
j = mid + 1;
while ((h <= mid) && (j <= high))
{
if (a[h] <= a[j])
{
b[i] = a[h]; h++;
}
else
{
b[i] = a[j]; j++;
}
i++;
}
if (h > mid)
{
for (k = j; k <= high; k++)
{
b[i] = a[k]; i++;
}
}
else
{
for (k = h; k <= high; k++)
{
b[i] = a[k]; i++;
}
}
for (k = low; k <= high; k++)
a[k] = b[k];
}
int main(void)
{
int num, i;
cout << "===============================================" << endl;
cout << "Merge Sort Program" << endl;
cout << "-----------------------------------------------" << endl;
cout << endl;
cout << "Masukan Banyak Bilangan: "; cin >> num;
cout << endl;
cout << "Sekarang Masukan :" << num << " Bilangan yang Ingin di Urutkan:"
<< endl;
for (i = 1; i <= num; i++)
{
cout << "Bilangan ke- :" << i << " = "; cin >> a[i];
}
merge_sort(1, num);
cout << endl;
cout << "Hasil akhir pengurutan :" << endl;
cout << endl;
for (i = 1; i<=num; i++)
cout << a[i] << " - ";
cout << endl << endl << endl;
cout << "================================================"<<endl;
cout << "Hasil pengurutan Dari Modifikasi Program yg Ada: "<<endl;
cout <<endl<<endl;
for (i = 1; i<=num; i++)
cout << a[i]<<" = [Dari Posisi : "<<i<<" Sebelumnya]"<<endl;
cout<<endl<<endl;
cout<<"---------------------------------------------------"<<endl;
cout << "Tekan Sembarang Tombol Untuk Keluar"<<endl;
cout <<"--------------------------------------------------"<<endl;
}
Hasil outputnya:
Catatan: untuk penggunaan Editor compiler menggunakan Dev C++ sehingga terjadi sedikit perbedaan pada
sintaks tertentu. Dikarenakan Compiler Borland dengan Editor Notepad ++ sendiri tidak working pada Os win
8.1 64 bit.
#include<iostream> merupakan file header yang berisi fungsi – fungsi yang disediakan oleh C dan
diletakan di file perpustakaan sehingga dapat sebutkan dengan prosesor directive.
#include<conio.h> fileheader yang berisi fungsi –fungsi yangdisediakan oleh C dan diletakan di file
perpustakaan sehingga dapatsebutkan dengan prosesor directive. Dengan nama extention .h menjunjukan
file header.
using namespace std; membuat semua elemen didalamnamespacestd seperti coutdan endl dapat
langsung diakses
int a[50]; deklarasi variabel interger a bertipe array yg berisi 50.
void merge(int, int, int); deklarasi fungsi merge yang di inputkan ke komputer dengan type
data variabel integer.
void merge_sort(int low, int high); deklarasi funsi merge_sortyangdi inputkan kekomputer
dengan data type integer nama variabel low, dan type data integer nama variabel high.
{ kurung kurawal buka untuk memulai statement
int mid; deklarasi variabel bertype integer dengan nama variabel mid
if (low<high) bentuk operator logika dengan kondisi low lebih kecil dari high
{ kurung kurawal buka untu memulai suatu statement dari operator logika if
mid = (low + high) / 2; statement dimana variabel mid berisi kondisi lowplus high dan dimana
kondisi tersebut dibagi 2.
merge_sort(low, mid); statement dimana variabel merge_sort memiliki sebuah kondisi nilai
variabel low dan mid.
merge_sort(mid + 1, high); statement dimana variabel merge_sortmemiliki kondisi nilai variabel
dimana mid plus 1, dan high.
merge(low, mid, high); statement dimana variabel merge memiliki kondis nilai variabel low,mid,
high.
} kurung kurawal tutup untuk mengakhiri kondisi dari operator logika if.
} kurung kurawal tutup untuk mengakhiri statement.
void merge(int low, int mid, int high) dekalarasi fungsi variabel merge dengan nilai type
data integer low, mid, high. Fungsi ini di inputkan ke komputer.
{ kondisi untuk memulai statement pada fungsi void merge
int h, i, j, b[50], k; deklarasi variabel dengan type data integer dengan nama variabel h, i , j,
k dan variabel b adala variabel integer yang memiliki aray dengan value 50.
h = low; statement dimana h berisi variabel low
i = low; statement dimana i berisi variabel low
j = mid + 1; statement dimana j berisi variabel operand mid plus 1
while ((h <= mid) && (j <= high)) operator logika dengan kondisi variabel h lebih kecil atau
sama dengan variabel mid. Dan variabel j lebih kecil atau sama dengan variabel high.
{ memulai statement pada operator logika while
if (a[h] <= a[j]) operator logika if dengan kondisi variabel a dalam aray h lebih kecil atau sama
dengan variabel a dalam aray j
{ memulai statement
b[i] = a[h]; h++; statement dimana variabel b yangberaray i memiliki variabel a beraray h,kemudian
nilai variabel h di tambah 1 nilai variabelnya.
} mengakhiri statement dari operator logika if
else suatu nilai default dari operator logika if dimana jika nilai kondisi tidak sama dengan if maka operator
tersebut akan beralih ke nilai else
{ memulai statement
b[i] = a[j]; j++; statement dimana variabel b berisi aray i memiliki nilai
variabel a dengan array j, kemudian nilai variabel j ditambahkan nilainya.
} menghakhiri statement dari nilai default else
i++; penambahan nilai variabel dari operator logika while dimana nilai variabel i ditambah 1.
} mengakhiri statement dari operator logika while.
if (h > mid)operator logika if dengan kondisi dimanavariabel h lebih besar dari padanilai variabel mid.
{ memulai statement dari operator logika if
for (k = j; k < high; k++) operator logika for dengan kondisi nilai variabel k sama dengan nilai
pada variabel j, kemudian variabel k lebih kecil dari pada nilai pada variabel high, dan nilai variabel k
ditambahkan 1.
{ memulai statement operator logika for
b[i] = a[k]; i++; variabel b memiliki array data i dimana variabel b berisi variabel a yangmemiliki
aray data k, kemudian variabel i ditambah nilai valuenya 1.
} menutup statement dari operator logika for
} menutup statement dari operator logika if
Else kondisi nilai default dari operator if
{ memulai statement kondisi nilai default dari operator if
for (k = h; k < high; k++) operator logika for dengan kondisi variabel k berisi variabel nilai h,
kemudian variabel k memiliki nilai lebih kecil dari nilai variabel high,dan nilai valuevariabel k diatambhkan
nilainya 1.
{ memulai statement dari operator logika for
b[i] = a[k]; i++; statement dimana variabel b berisi data array i memiliki nilai variabel a yangberisi
data array k, kemudian nilai variabel i ditambahkan 1.
} menutup statement dari operator logika for
} menutup statement dari nilai default operator logika for
for (k = low; k < high; k++) operator logika dengan kondisi variabel nilai k memiliki nilai
variabel low,kemudian variabel k lebih kecil dari variabel high, dan variabel k nilai valuenya di tambah 1.
a[k] = b[k]; pendefinisian variabel dimana variabel a berisi nilai data aray k yangmemiliki nilai variabel
b berisi nilai data array k
} mengkahiri statement dari fungsi void merge
int main(void)judul fungsi yang memiliki nilai variabel main bertipe integer. Dan kondisi void kondisi
standar suatu fungsi.
{ memulai statement dari fungsi void main
int num, i; deklarasi variabel dengan nama variabel num, i bertype integer.
cout << "==============================" << endl; perintah menampilkan kelayar
monitor dengan format yang tertera pada semicolom.
cout << "Merge Sort Program" << endl; perintah menampilkan kelayara monitoe dengan
perintah pada semicolom yang berisi Merge Sort Program
cout << "------------------------------" << endl; perintah menampilkan kelayar
monitor dengan format yang tertera pada semicolom.
cout << endl << endl; fungsi manipulator untuk menyisipkan karakter new line
cout << "Masukan Banyak Bilangan: "; cin >> num;perintah menampilkan kelayar monitor
diman perintah tersebut memiliki inputan pada cin>> yang mengarah ke variabel num
cout << endl; fungsi manipulasi untuk menyisipkan karakter new line
cout << "Sekarang Masukan :" << num << "Bilangan yang Ingin di Urutkan:"
<< endl; perintah pengeluaran kelayar monitor yang tertera pada semicolom sekarang masukan :
kemudian terdapat pengeluaran nilai variabel yangterdeklarasi di iputan diatasnyaygkemudian ditampilkan
kembali.Kemudian menampilkan pada semicolomkembali pada Bilangan yangingin diurutka n.Yangmeliliki
fungsi karakter new line
for (i = 1; i <= num; i++)operasi logika for dengan kondisi i memiliki nilai 1,kemudian variabel
i kurang atau sama dari variabel num, dan variabel i ditmabahkan nilai valuenya 1.
{ memulai statement operasi logika for
cout << "Bilangan ke- :" << i << " = "; cin >> a[i]; perintah menampilkan kelayar
monitor yangtertera pada tanda semicolom”Bilangan ke-:“kemudian menampilkan variabel i dan ygtertera
pada semicolom “=” yang mana perintah pengeluaran tersebut memiliki inout variabel yang mengarah ke
variabel a berarray i.
} mengakhiri kondisi statement operasi logika for
merge_sort(1, num); identifikasi fungsi merge_sort dengan kondisi variabel 1 dan num.
cout << endl; fungsi karakter new line
cout << "Hasil akhir pengurutan :" << endl; perintah pengeluaran ke layar monitor yg
tertera pada semicolom
cout << endl; fungsi karakter newline
for (i = 1; i<=num; i++) operator logika for dengan kondisi variabel i bernilai 1,variabel i bernilai
kurang dari atau sama dengan variabel num, dan variabel i ditambah 1 nilai valuenya.
cout << a[i] << " - "; perintah pengeluaran menampilkan variabel yangberisi nilai pada variabel
a[i]
cout << "Hasil pengurutan Dari Modifikasi Program yg Ada: "<<endl; Perintah
pengeluaran kelayar monitor untuk menampilkan text yg terdapat pada semicolom.
cout <<endl<<endl; fungsi karakter newline
for (i = 1; i<=num; i++) operasi logika for dengan kondisi i memiliki nilai 1,kemudian variabel i
kurang atau sama dari variabel num, dan variabel i ditmabahkan nilai valuenya 1.
cout << a[i]<<" = [Dari Posisi : "<<i<<" Sebelumnya]"<<endl; perintah
pengeluaran kelayar monitor dimana variabel a bearai i ditampilkan hasil operasionalnya. Dan begitu juga
variabel i. Yang diikuti tanda semicolom dalam textnya.
cout<<endl<<endl; fungsi karakter newline
cout<<"---------------------------------------------------"<<endl; perintah
pengeluaran kelayar monitor yg berada di tanda semicolom dengan fungsi katakter newline
cout << "Tekan Sembarang Tombol Untuk Keluar"<<endl; perintah pengeluaran
kelayar monitor yg berada di tanda semicolom dengan fungsi katakter newline
cout <<"--------------------------------------------------"<<endl; perintah
pengeluaran kelayar monitor yg berada di tanda semicolom dengan fungsi katakter newline
cout << endl << endl << endl << endl; fungsi karakter newline
} mengakhiri statement dari fungsi void main
Tracking Pada Hasil Listing Praktikum Struktur Data Pertemuan ke 3:
3. Kesimpulan
Dari hasil praktikumStrukturdataPertemuanke –3 tentangMerge Sort di laboratorium
terpadu,makadapat diambil kesimpulansebagai berikut:
 DalampenggunaanMerge Sort dikenal denganDivide andConquer.Dividememilah
elemen –elemendari rangkaiandatamenjadi duabagiandalambentukoperasional
yang dilakukanmerge sort.SedangkanConquer adlahmemanggil prosedurmerge
secara secursif.
 PenggunaanalgorithmaMerge Sortuntukmengurutkandansertamemahami
karakteristikalgoritmamerge sort.
 DalampenggunaanalgoritmaMerge Sortelemenyangdi pilah menjadi duabagian
tersebutdi gabungkankembari denganperbandingandatayangpalingkecil berada
palingdepan.

More Related Content

What's hot (16)

Dts x dicoding #4 memulai pemrograman kotlin
Dts x dicoding #4 memulai pemrograman kotlinDts x dicoding #4 memulai pemrograman kotlin
Dts x dicoding #4 memulai pemrograman kotlin
 
Function pada PHP
Function pada PHPFunction pada PHP
Function pada PHP
 
Ppt ganjil genap
Ppt ganjil genapPpt ganjil genap
Ppt ganjil genap
 
Ppt ganjil genap2
Ppt ganjil genap2Ppt ganjil genap2
Ppt ganjil genap2
 
11 operasi dasar masukan dan keluaran
11   operasi dasar masukan dan keluaran11   operasi dasar masukan dan keluaran
11 operasi dasar masukan dan keluaran
 
Pertemuan 5 Perulangan (Looping)
Pertemuan 5 Perulangan (Looping)Pertemuan 5 Perulangan (Looping)
Pertemuan 5 Perulangan (Looping)
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Algoritma dan Struktur Data -  fungsi dan prosedur c++Algoritma dan Struktur Data -  fungsi dan prosedur c++
Algoritma dan Struktur Data - fungsi dan prosedur c++
 
Kelompok 2.3
Kelompok 2.3Kelompok 2.3
Kelompok 2.3
 
07 function 2
07 function 207 function 2
07 function 2
 
Function c++
Function c++Function c++
Function c++
 
PostgreSQL Stored-procedure
PostgreSQL Stored-procedurePostgreSQL Stored-procedure
PostgreSQL Stored-procedure
 
Materi kuliah 17 string
Materi kuliah 17   stringMateri kuliah 17   string
Materi kuliah 17 string
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
scikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data sciencescikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data science
 
Pertemuan 6 Rekursif
Pertemuan 6 RekursifPertemuan 6 Rekursif
Pertemuan 6 Rekursif
 

Similar to Lapopran praktikum struktur data pertemuan 3 Merge_Sort

Similar to Lapopran praktikum struktur data pertemuan 3 Merge_Sort (20)

Penjelasan Program
Penjelasan ProgramPenjelasan Program
Penjelasan Program
 
using looping in basic programming for beginners
using looping in basic programming for beginnersusing looping in basic programming for beginners
using looping in basic programming for beginners
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Cc++
Cc++Cc++
Cc++
 
Operator
OperatorOperator
Operator
 
Asistensi 1 mod 3
Asistensi 1 mod 3Asistensi 1 mod 3
Asistensi 1 mod 3
 
Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++
 
Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010
 
Struktur Kontrol
Struktur KontrolStruktur Kontrol
Struktur Kontrol
 
Perulangan for
Perulangan forPerulangan for
Perulangan for
 
Pertemuan 5a.pptx
Pertemuan 5a.pptxPertemuan 5a.pptx
Pertemuan 5a.pptx
 
Tipe data
Tipe dataTipe data
Tipe data
 
Pertemuan 6B.pptx
Pertemuan 6B.pptxPertemuan 6B.pptx
Pertemuan 6B.pptx
 
Laporan Praktikum 3 DPK Operator
Laporan Praktikum 3 DPK OperatorLaporan Praktikum 3 DPK Operator
Laporan Praktikum 3 DPK Operator
 
Pertemuan II Function
Pertemuan II FunctionPertemuan II Function
Pertemuan II Function
 
Function
FunctionFunction
Function
 

Recently uploaded

397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
VinaAmelia23
 
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptxESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
adnijayautama
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang 082223109953 Jual obat aborsi
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Cytotec Asli Di jakarta
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
Arisatrianingsih
 
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
ssupi412
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
AhmadAffandi36
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
yoodika046
 

Recently uploaded (20)

397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
 
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptxESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
 
MATERI-FINON-ANALISIS-KEUANGAN-14-16-AGUSTUS-2017.pdf
MATERI-FINON-ANALISIS-KEUANGAN-14-16-AGUSTUS-2017.pdfMATERI-FINON-ANALISIS-KEUANGAN-14-16-AGUSTUS-2017.pdf
MATERI-FINON-ANALISIS-KEUANGAN-14-16-AGUSTUS-2017.pdf
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
 
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman MadyaPelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
 
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdfGambar kerja TUREN KETAWANG malang jawa timur.pdf
Gambar kerja TUREN KETAWANG malang jawa timur.pdf
 
Kalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.pptKalor dan Perpindahan Kalor presentasi.ppt
Kalor dan Perpindahan Kalor presentasi.ppt
 
Pengujian (hipotesis) pak aulia ikhsan dalam ilmu statistika
Pengujian (hipotesis) pak aulia ikhsan dalam ilmu statistikaPengujian (hipotesis) pak aulia ikhsan dalam ilmu statistika
Pengujian (hipotesis) pak aulia ikhsan dalam ilmu statistika
 
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
 
Contoh PPT Pelaksanaan Pekerjaan Gedung Konstruksi
Contoh PPT Pelaksanaan Pekerjaan Gedung KonstruksiContoh PPT Pelaksanaan Pekerjaan Gedung Konstruksi
Contoh PPT Pelaksanaan Pekerjaan Gedung Konstruksi
 
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptx
 
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfGambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
 
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptxPPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
 

Lapopran praktikum struktur data pertemuan 3 Merge_Sort

  • 1. Laporan Praktikum Struktur Data Pertemuan Ke – 3 Merge Sort 1. Pembahasan #include<iostream> #include<conio.h> using namespace std; int a[50]; void merge(int, int, int); void merge_sort(int low, int high) { int mid; if (low<high) { mid = (low + high) / 2; merge_sort(low, mid); merge_sort(mid + 1, high); merge(low, mid, high); } } void merge(int low, int mid, int high) { int h, i, j, b[50], k; h = low; i = low; j = mid + 1; while ((h <= mid) && (j <= high)) { if (a[h] <= a[j]) { b[i] = a[h]; h++; } else { b[i] = a[j]; j++; } i++; } if (h > mid) { for (k = j; k < high; k++) { b[i] = a[k]; i++; } } else { for (k = h; k < high; k++) { b[i] = a[k]; i++; } } for (k = low; k < high; k++) a[k] = b[k]; }
  • 2. int main(void) { int num, i; cout << "==============================" << endl; cout << "Merge Sort Program" << endl; cout << "------------------------------" << endl; cout << endl << endl; cout << "Masukan Banyak Bilangan: "; cin >> num; cout << endl; cout << "Sekarang Masukan :" << num << "Bilangan yang Ingin di Urutkan:" << endl; for (i = 1; i <= num; i++) { cout << "Bilangan ke- :" << i << " = "; cin >> a[i]; } merge_sort(1, num); cout << endl; cout << "Hasil akhir pengurutan :" << endl; cout << endl; for (i = 1; i<=num; i++) cout << a[i] << " - "; cout << endl << endl << endl << endl; } #include<iostream> merupakan file header yang berisi fungsi – fungsi yang disediakan oleh C dan diletakan di file perpustakaan sehingga dapat sebutkan dengan prosesor directive. #include<conio.h> fileheader yang berisi fungsi –fungsi yangdisediakan oleh C dan diletakan di file perpustakaan sehingga dapatsebutkan dengan prosesor directive. Dengan nama extention .h menjunjukan file header. using namespace std; membuat semua elemen didalamnamespacestd seperti coutdan endl dapat langsung diakses int a[50]; deklarasi variabel interger a bertipe array yg berisi 50. void merge(int, int, int); deklarasi fungsi merge yang di inputkan ke komputer dengan type data variabel integer. void merge_sort(int low, int high); deklarasi funsi merge_sortyangdi inputkan kekomputer dengan data type integer nama variabel low, dan type data integer nama variabel high. { kurung kurawal buka untuk memulai statement int mid; deklarasi variabel bertype integer dengan nama variabel mid if (low<high) bentuk operator logika dengan kondisi low lebih kecil dari high { kurung kurawal buka untu memulai suatu statement dari operator logika if mid = (low + high) / 2; statement dimana variabel mid berisi kondisi lowplus high dan dimana kondisi tersebut dibagi 2. merge_sort(low, mid); statement dimana variabel merge_sort memiliki sebuah kondisi nilai variabel low dan mid. merge_sort(mid + 1, high); statement dimana variabel merge_sortmemiliki kondisi nilai variabel dimana mid plus 1, dan high. merge(low, mid, high); statement dimana variabel merge memiliki kondis nilai variabel low,mid, high. } kurung kurawal tutup untuk mengakhiri kondisi dari operator logika if. } kurung kurawal tutup untuk mengakhiri statement.
  • 3. void merge(int low, int mid, int high) dekalarasi fungsi variabel merge dengan nilai type data integer low, mid, high. Fungsi ini di inputkan ke komputer. { kondisi untuk memulai statement pada fungsi void merge int h, i, j, b[50], k; deklarasi variabel dengan type data integer dengan nama variabel h,i , j, k dan variabel b adala variabel integer yang memiliki aray dengan value 50. h = low; statement dimana h berisi variabel low i = low; statement dimana i berisi variabel low j = mid + 1; statement dimana j berisi variabel operand mid plus 1 while ((h <= mid) && (j <= high)) operator logika dengan kondisi variabel h lebih kecil atau sama dengan variabel mid. Dan variabel j lebih kecil atau sama dengan variabel high. { memulai statement pada operator logika while if (a[h] <= a[j]) operator logika if dengan kondisi variabel a dalam aray h lebih kecil atau sama dengan variabel a dalam aray j { memulai statement b[i] = a[h]; h++; statement dimana variabel b yangberaray i memiliki variabel a beraray h,kemudian nilai variabel h di tambah 1 nilai variabelnya. } mengakhiri statement dari operator logika if else suatu nilai default dari operator logika if dimana jika nilai kondisi tidak sama dengan if maka operator tersebut akan beralih ke nilai else { memulai statement b[i] = a[j]; j++; statement dimana variabel b berisi aray i memiliki nilai variabel a dengan array j, kemudian nilai variabel j ditambahkan nilainya. } menghakhiri statement dari nilai default else i++; penambahan nilai variabel dari operator logika while dimana nilai variabel i ditambah 1. } mengakhiri statement dari operator logika while. if (h > mid)operator logika if dengan kondisi dimanavariabel h lebih besar dari padanilai variabel mid. { memulai statement dari operator logika if for (k = j; k < high; k++) operator logika for dengan kondisi nilai variabel k sama dengan nilai pada variabel j, kemudian variabel k lebih kecil dari pada nilai pada variabel high, dan nilai variabel k ditambahkan 1. { memulai statement operator logika for b[i] = a[k]; i++; variabel b memiliki array data i dimana variabel b berisi variabel a yangmemiliki aray data k, kemudian variabel i ditambah nilai valuenya 1. } menutup statement dari operator logika for } menutup statement dari operator logika if Else kondisi nilai default dari operator if { memulai statement kondisi nilai default dari operator if for (k = h; k < high; k++) operator logika for dengan kondisi variabel k berisi variabel nilai h, kemudian variabel k memiliki nilai lebih kecil dari nilai variabel high,dan nilai valuevariabel k diatambhkan nilainya 1. { memulai statement dari operator logika for b[i] = a[k]; i++; statement dimana variabel b berisi data array i memiliki nilai variabel a yangberisi data array k, kemudian nilai variabel i ditambahkan 1. } menutup statement dari operator logika for } menutup statement dari nilai default operator logika for for (k = low; k < high; k++) operator logika dengan kondisi variabel nilai k memiliki nilai variabel low,kemudian variabel k lebih kecil dari variabel high, dan variabel k nilai valuenya di tambah 1.
  • 4. a[k] = b[k]; pendefinisian variabel dimana variabel a berisi nilai data aray k yangmemiliki nilai variabel b berisi nilai data array k } mengkahiri statement dari fungsi void merge int main(void)judul fungsi yang memiliki nilai variabel main bertipe integer. Dan kondisi void kondisi standar suatu fungsi. { memulai statement dari fungsi void main int num, i; deklarasi variabel dengan nama variabel num, i bertype integer. cout << "==============================" << endl; perintah menampilkan kelayar monitor dengan format yang tertera pada semicolom. cout << "Merge Sort Program" << endl; perintah menampilkan kelayara monitoe dengan perintah pada semicolom yang berisi Merge Sort Program cout << "------------------------------" << endl; perintah menampilkan kelayar monitor dengan format yang tertera pada semicolom. cout << endl << endl; fungsi manipulator untuk menyisipkan karakter new line cout << "Masukan Banyak Bilangan: "; cin >> num;perintah menampilkan kelayar monitor diman perintah tersebut memiliki inputan pada cin>> yang mengarah ke variabel num cout << endl; fungsi manipulasi untuk menyisipkan karakter new line cout << "Sekarang Masukan :" << num << "Bilangan yang Ingin di Urutkan:" << endl; perintah pengeluaran kelayar monitor yang tertera pada semicolom sekarang masukan : kemudian terdapat pengeluaran nilai variabel yangterdeklarasi di iputan diatasnyaygkemudian ditampilkan kembali.Kemudian menampilkan pada semicolomkembali pada Bilangan yangingin diurutkan.Yangmeliliki fungsi karakter new line for (i = 1; i <= num; i++)operasi logika for dengan kondisi i memiliki nilai 1,kemudian variabel i kurang atau sama dari variabel num, dan variabel i ditmabahkan nilai valuenya 1. { memulai statement operasi logika for cout << "Bilangan ke- :" << i << " = "; cin >> a[i]; perintah menampilkan kelayar monitor yangtertera pada tanda semicolom”Bilangan ke-:“kemudian menampilkan variabel i dan ygtertera pada semicolom “=” yang mana perintah pengeluaran tersebut memiliki inout variabel yang mengarah ke variabel a berarray i. } mengakhiri kondisi statement operasi logika for merge_sort(1, num); identifikasi fungsi merge_sort dengan kondisi variabel 1 dan num. cout << endl; fungsi karakter new line cout << "Hasil akhir pengurutan :" << endl; perintah pengeluaran ke layar monitor yg tertera pada semicolom cout << endl; fungsi karakter newline for (i = 1; i<=num; i++) operator logika for dengan kondisi variabel i bernilai 1,variabel i bernilai kurang dari atau sama dengan variabel num, dan variabel i ditambah 1 nilai valuenya. cout << a[i] << " - "; perintah pengeluaran menampilkan variabel yangberisi nilai pada variabel a[i] cout << endl << endl << endl << endl; fungsi karakter newline } mengakhiri statement dari fungsi void main 2. Tugas Memodifikasi Program yg Ada, dengan contoh sbb: 8 = [dari posisi 1 sebelumnya] 8 = [dari posisi 3 sebelumnya]
  • 5. 9 = [dari posisi 4 sebelumnya] Syntaks: #include<iostream> #include<conio.h> using namespace std; int a[50]; void merge(int, int, int); void merge_sort(int low, int high) { int mid; if (low<high) { mid = (low + high) / 2; merge_sort(low, mid); merge_sort(mid + 1, high); merge(low, mid, high); } } void merge(int low, int mid, int high) { int h, i, j, b[50], k; h = low; i = low; j = mid + 1; while ((h <= mid) && (j <= high)) { if (a[h] <= a[j]) { b[i] = a[h]; h++; } else { b[i] = a[j]; j++; } i++; } if (h > mid) { for (k = j; k <= high; k++) { b[i] = a[k]; i++; } } else { for (k = h; k <= high; k++) { b[i] = a[k]; i++; } } for (k = low; k <= high; k++) a[k] = b[k]; } int main(void) { int num, i;
  • 6. cout << "===============================================" << endl; cout << "Merge Sort Program" << endl; cout << "-----------------------------------------------" << endl; cout << endl; cout << "Masukan Banyak Bilangan: "; cin >> num; cout << endl; cout << "Sekarang Masukan :" << num << " Bilangan yang Ingin di Urutkan:" << endl; for (i = 1; i <= num; i++) { cout << "Bilangan ke- :" << i << " = "; cin >> a[i]; } merge_sort(1, num); cout << endl; cout << "Hasil akhir pengurutan :" << endl; cout << endl; for (i = 1; i<=num; i++) cout << a[i] << " - "; cout << endl << endl << endl; cout << "================================================"<<endl; cout << "Hasil pengurutan Dari Modifikasi Program yg Ada: "<<endl; cout <<endl<<endl; for (i = 1; i<=num; i++) cout << a[i]<<" = [Dari Posisi : "<<i<<" Sebelumnya]"<<endl; cout<<endl<<endl; cout<<"---------------------------------------------------"<<endl; cout << "Tekan Sembarang Tombol Untuk Keluar"<<endl; cout <<"--------------------------------------------------"<<endl; } Hasil outputnya:
  • 7. Catatan: untuk penggunaan Editor compiler menggunakan Dev C++ sehingga terjadi sedikit perbedaan pada sintaks tertentu. Dikarenakan Compiler Borland dengan Editor Notepad ++ sendiri tidak working pada Os win 8.1 64 bit. #include<iostream> merupakan file header yang berisi fungsi – fungsi yang disediakan oleh C dan diletakan di file perpustakaan sehingga dapat sebutkan dengan prosesor directive. #include<conio.h> fileheader yang berisi fungsi –fungsi yangdisediakan oleh C dan diletakan di file perpustakaan sehingga dapatsebutkan dengan prosesor directive. Dengan nama extention .h menjunjukan file header. using namespace std; membuat semua elemen didalamnamespacestd seperti coutdan endl dapat langsung diakses int a[50]; deklarasi variabel interger a bertipe array yg berisi 50. void merge(int, int, int); deklarasi fungsi merge yang di inputkan ke komputer dengan type data variabel integer. void merge_sort(int low, int high); deklarasi funsi merge_sortyangdi inputkan kekomputer dengan data type integer nama variabel low, dan type data integer nama variabel high. { kurung kurawal buka untuk memulai statement int mid; deklarasi variabel bertype integer dengan nama variabel mid if (low<high) bentuk operator logika dengan kondisi low lebih kecil dari high { kurung kurawal buka untu memulai suatu statement dari operator logika if mid = (low + high) / 2; statement dimana variabel mid berisi kondisi lowplus high dan dimana kondisi tersebut dibagi 2.
  • 8. merge_sort(low, mid); statement dimana variabel merge_sort memiliki sebuah kondisi nilai variabel low dan mid. merge_sort(mid + 1, high); statement dimana variabel merge_sortmemiliki kondisi nilai variabel dimana mid plus 1, dan high. merge(low, mid, high); statement dimana variabel merge memiliki kondis nilai variabel low,mid, high. } kurung kurawal tutup untuk mengakhiri kondisi dari operator logika if. } kurung kurawal tutup untuk mengakhiri statement. void merge(int low, int mid, int high) dekalarasi fungsi variabel merge dengan nilai type data integer low, mid, high. Fungsi ini di inputkan ke komputer. { kondisi untuk memulai statement pada fungsi void merge int h, i, j, b[50], k; deklarasi variabel dengan type data integer dengan nama variabel h, i , j, k dan variabel b adala variabel integer yang memiliki aray dengan value 50. h = low; statement dimana h berisi variabel low i = low; statement dimana i berisi variabel low j = mid + 1; statement dimana j berisi variabel operand mid plus 1 while ((h <= mid) && (j <= high)) operator logika dengan kondisi variabel h lebih kecil atau sama dengan variabel mid. Dan variabel j lebih kecil atau sama dengan variabel high. { memulai statement pada operator logika while if (a[h] <= a[j]) operator logika if dengan kondisi variabel a dalam aray h lebih kecil atau sama dengan variabel a dalam aray j { memulai statement b[i] = a[h]; h++; statement dimana variabel b yangberaray i memiliki variabel a beraray h,kemudian nilai variabel h di tambah 1 nilai variabelnya. } mengakhiri statement dari operator logika if else suatu nilai default dari operator logika if dimana jika nilai kondisi tidak sama dengan if maka operator tersebut akan beralih ke nilai else { memulai statement b[i] = a[j]; j++; statement dimana variabel b berisi aray i memiliki nilai variabel a dengan array j, kemudian nilai variabel j ditambahkan nilainya. } menghakhiri statement dari nilai default else i++; penambahan nilai variabel dari operator logika while dimana nilai variabel i ditambah 1. } mengakhiri statement dari operator logika while. if (h > mid)operator logika if dengan kondisi dimanavariabel h lebih besar dari padanilai variabel mid. { memulai statement dari operator logika if for (k = j; k < high; k++) operator logika for dengan kondisi nilai variabel k sama dengan nilai pada variabel j, kemudian variabel k lebih kecil dari pada nilai pada variabel high, dan nilai variabel k ditambahkan 1. { memulai statement operator logika for b[i] = a[k]; i++; variabel b memiliki array data i dimana variabel b berisi variabel a yangmemiliki aray data k, kemudian variabel i ditambah nilai valuenya 1. } menutup statement dari operator logika for } menutup statement dari operator logika if Else kondisi nilai default dari operator if { memulai statement kondisi nilai default dari operator if
  • 9. for (k = h; k < high; k++) operator logika for dengan kondisi variabel k berisi variabel nilai h, kemudian variabel k memiliki nilai lebih kecil dari nilai variabel high,dan nilai valuevariabel k diatambhkan nilainya 1. { memulai statement dari operator logika for b[i] = a[k]; i++; statement dimana variabel b berisi data array i memiliki nilai variabel a yangberisi data array k, kemudian nilai variabel i ditambahkan 1. } menutup statement dari operator logika for } menutup statement dari nilai default operator logika for for (k = low; k < high; k++) operator logika dengan kondisi variabel nilai k memiliki nilai variabel low,kemudian variabel k lebih kecil dari variabel high, dan variabel k nilai valuenya di tambah 1. a[k] = b[k]; pendefinisian variabel dimana variabel a berisi nilai data aray k yangmemiliki nilai variabel b berisi nilai data array k } mengkahiri statement dari fungsi void merge int main(void)judul fungsi yang memiliki nilai variabel main bertipe integer. Dan kondisi void kondisi standar suatu fungsi. { memulai statement dari fungsi void main int num, i; deklarasi variabel dengan nama variabel num, i bertype integer. cout << "==============================" << endl; perintah menampilkan kelayar monitor dengan format yang tertera pada semicolom. cout << "Merge Sort Program" << endl; perintah menampilkan kelayara monitoe dengan perintah pada semicolom yang berisi Merge Sort Program cout << "------------------------------" << endl; perintah menampilkan kelayar monitor dengan format yang tertera pada semicolom. cout << endl << endl; fungsi manipulator untuk menyisipkan karakter new line cout << "Masukan Banyak Bilangan: "; cin >> num;perintah menampilkan kelayar monitor diman perintah tersebut memiliki inputan pada cin>> yang mengarah ke variabel num cout << endl; fungsi manipulasi untuk menyisipkan karakter new line cout << "Sekarang Masukan :" << num << "Bilangan yang Ingin di Urutkan:" << endl; perintah pengeluaran kelayar monitor yang tertera pada semicolom sekarang masukan : kemudian terdapat pengeluaran nilai variabel yangterdeklarasi di iputan diatasnyaygkemudian ditampilkan kembali.Kemudian menampilkan pada semicolomkembali pada Bilangan yangingin diurutka n.Yangmeliliki fungsi karakter new line for (i = 1; i <= num; i++)operasi logika for dengan kondisi i memiliki nilai 1,kemudian variabel i kurang atau sama dari variabel num, dan variabel i ditmabahkan nilai valuenya 1. { memulai statement operasi logika for cout << "Bilangan ke- :" << i << " = "; cin >> a[i]; perintah menampilkan kelayar monitor yangtertera pada tanda semicolom”Bilangan ke-:“kemudian menampilkan variabel i dan ygtertera pada semicolom “=” yang mana perintah pengeluaran tersebut memiliki inout variabel yang mengarah ke variabel a berarray i. } mengakhiri kondisi statement operasi logika for merge_sort(1, num); identifikasi fungsi merge_sort dengan kondisi variabel 1 dan num. cout << endl; fungsi karakter new line cout << "Hasil akhir pengurutan :" << endl; perintah pengeluaran ke layar monitor yg tertera pada semicolom cout << endl; fungsi karakter newline
  • 10. for (i = 1; i<=num; i++) operator logika for dengan kondisi variabel i bernilai 1,variabel i bernilai kurang dari atau sama dengan variabel num, dan variabel i ditambah 1 nilai valuenya. cout << a[i] << " - "; perintah pengeluaran menampilkan variabel yangberisi nilai pada variabel a[i] cout << "Hasil pengurutan Dari Modifikasi Program yg Ada: "<<endl; Perintah pengeluaran kelayar monitor untuk menampilkan text yg terdapat pada semicolom. cout <<endl<<endl; fungsi karakter newline for (i = 1; i<=num; i++) operasi logika for dengan kondisi i memiliki nilai 1,kemudian variabel i kurang atau sama dari variabel num, dan variabel i ditmabahkan nilai valuenya 1. cout << a[i]<<" = [Dari Posisi : "<<i<<" Sebelumnya]"<<endl; perintah pengeluaran kelayar monitor dimana variabel a bearai i ditampilkan hasil operasionalnya. Dan begitu juga variabel i. Yang diikuti tanda semicolom dalam textnya. cout<<endl<<endl; fungsi karakter newline cout<<"---------------------------------------------------"<<endl; perintah pengeluaran kelayar monitor yg berada di tanda semicolom dengan fungsi katakter newline cout << "Tekan Sembarang Tombol Untuk Keluar"<<endl; perintah pengeluaran kelayar monitor yg berada di tanda semicolom dengan fungsi katakter newline cout <<"--------------------------------------------------"<<endl; perintah pengeluaran kelayar monitor yg berada di tanda semicolom dengan fungsi katakter newline cout << endl << endl << endl << endl; fungsi karakter newline } mengakhiri statement dari fungsi void main Tracking Pada Hasil Listing Praktikum Struktur Data Pertemuan ke 3:
  • 11. 3. Kesimpulan Dari hasil praktikumStrukturdataPertemuanke –3 tentangMerge Sort di laboratorium terpadu,makadapat diambil kesimpulansebagai berikut:  DalampenggunaanMerge Sort dikenal denganDivide andConquer.Dividememilah elemen –elemendari rangkaiandatamenjadi duabagiandalambentukoperasional yang dilakukanmerge sort.SedangkanConquer adlahmemanggil prosedurmerge secara secursif.  PenggunaanalgorithmaMerge Sortuntukmengurutkandansertamemahami karakteristikalgoritmamerge sort.  DalampenggunaanalgoritmaMerge Sortelemenyangdi pilah menjadi duabagian tersebutdi gabungkankembari denganperbandingandatayangpalingkecil berada palingdepan.