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

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 kotlinAhmad Arif Faizin
 
Ppt ganjil genap
Ppt ganjil genapPpt ganjil genap
Ppt ganjil genap1300018047
 
Ppt ganjil genap2
Ppt ganjil genap2Ppt ganjil genap2
Ppt ganjil genap21300018047
 
11 operasi dasar masukan dan keluaran
11   operasi dasar masukan dan keluaran11   operasi dasar masukan dan keluaran
11 operasi dasar masukan dan keluaranBudi Yono
 
Pertemuan 5 Perulangan (Looping)
Pertemuan 5 Perulangan (Looping)Pertemuan 5 Perulangan (Looping)
Pertemuan 5 Perulangan (Looping)Endang Retnoningsih
 
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++Georgius Rinaldo
 
PostgreSQL Stored-procedure
PostgreSQL Stored-procedurePostgreSQL Stored-procedure
PostgreSQL Stored-procedureAmmar Shadiq
 
Materi kuliah 17 string
Materi kuliah 17   stringMateri kuliah 17   string
Materi kuliah 17 stringBudi Yono
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL TriggerAmmar Shadiq
 
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 sciencesoftscients
 

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

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 beginnersGentaSahuri2
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2Budi Yono
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2Budi Yono
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2kua
 
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++Ilan Surf ﺕ
 
Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Dian Aditya
 
Pertemuan 5a.pptx
Pertemuan 5a.pptxPertemuan 5a.pptx
Pertemuan 5a.pptxMenny SN
 
Pertemuan 6B.pptx
Pertemuan 6B.pptxPertemuan 6B.pptx
Pertemuan 6B.pptxMenny SN
 
Laporan Praktikum 3 DPK Operator
Laporan Praktikum 3 DPK OperatorLaporan Praktikum 3 DPK Operator
Laporan Praktikum 3 DPK OperatorHanifah Has
 
Function
FunctionFunction
Functionwindi1
 

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

Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxmuhammadrizky331164
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studiossuser52d6bf
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptxMuhararAhmad
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.pptSonyGobang1
 

Recently uploaded (6)

Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt
 

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.