SlideShare a Scribd company logo
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

DOCX
Lapopran praktikum struktur data pertemuan 2 Sorting
Ady Achirul
 
DOCX
Lapopran praktikum struktur data pertemuan 1 Tipe Data
Ady Achirul
 
PDF
Modul 2 strukdat
Vincentius Kristanto
 
PPTX
Algoritma&Pemrograman C++ Operasi string
Menny SN
 
PDF
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Dian Aditya
 
PDF
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
 
PPT
Fungsi dan Prosedur
Muhammad Fahmi
 
PDF
Pemrograman C++ - Fungsi dan Prosedur
KuliahKita
 
Lapopran praktikum struktur data pertemuan 2 Sorting
Ady Achirul
 
Lapopran praktikum struktur data pertemuan 1 Tipe Data
Ady Achirul
 
Modul 2 strukdat
Vincentius Kristanto
 
Algoritma&Pemrograman C++ Operasi string
Menny SN
 
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Dian Aditya
 
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
 
Fungsi dan Prosedur
Muhammad Fahmi
 
Pemrograman C++ - Fungsi dan Prosedur
KuliahKita
 

What's hot (16)

PPTX
Dts x dicoding #4 memulai pemrograman kotlin
Ahmad Arif Faizin
 
PDF
Function pada PHP
Materi Kuliah Online
 
PPTX
Ppt ganjil genap
1300018047
 
PPTX
Ppt ganjil genap2
1300018047
 
PPTX
11 operasi dasar masukan dan keluaran
Budi Yono
 
PDF
Pertemuan 5 Perulangan (Looping)
Endang Retnoningsih
 
PDF
Algoritma dan Struktur Data - fungsi dan prosedur c++
Georgius Rinaldo
 
PPTX
Kelompok 2.3
fiqriany1300018072
 
PPT
07 function 2
Evert Sandye Taasiringan
 
PDF
Function c++
bimo widanto
 
PDF
PostgreSQL Stored-procedure
Ammar Shadiq
 
PPTX
Materi kuliah 17 string
Budi Yono
 
DOCX
modul algoritma Bab 5
Eko Widyanto Napitupulu
 
PDF
PostgreSQL Trigger
Ammar Shadiq
 
PDF
scikit-learn cheat sheet untuk data science
softscients
 
PDF
Pertemuan 6 Rekursif
Endang Retnoningsih
 
Dts x dicoding #4 memulai pemrograman kotlin
Ahmad Arif Faizin
 
Function pada PHP
Materi Kuliah Online
 
Ppt ganjil genap
1300018047
 
Ppt ganjil genap2
1300018047
 
11 operasi dasar masukan dan keluaran
Budi Yono
 
Pertemuan 5 Perulangan (Looping)
Endang Retnoningsih
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Georgius Rinaldo
 
Kelompok 2.3
fiqriany1300018072
 
Function c++
bimo widanto
 
PostgreSQL Stored-procedure
Ammar Shadiq
 
Materi kuliah 17 string
Budi Yono
 
modul algoritma Bab 5
Eko Widyanto Napitupulu
 
PostgreSQL Trigger
Ammar Shadiq
 
scikit-learn cheat sheet untuk data science
softscients
 
Pertemuan 6 Rekursif
Endang Retnoningsih
 
Ad

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

PDF
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
Kelinci Coklat
 
DOCX
Laporan praktikum modul ii & iii
Devi Apriansyah
 
PDF
Materi Pelajaran Program Pascal
Simon Patabang
 
PDF
Tutor C
S N M P Simamora
 
PDF
Review Operator, Boolean, Selection, Repetition
Herbert Abdillah
 
DOC
Intruksi Fundamental Lanjutan
Akmal Fajar
 
PPTX
materi pemrograman untuk smp/mats kelas 8
erlanrwikanda17
 
PDF
Download
Kiswan Homnizar
 
PDF
Cc++
donasiilmu
 
DOC
Intruksi Fundamental
Akmal Fajar
 
PPTX
Mengenal C++ koding yang simple dan interaktif bagi siswa sma dan menarik.pptx
peserta06921
 
PPTX
207 p05
itranus
 
PDF
Tugas kelompok
Aidil Kun
 
DOC
Modul ii operatorlogika
Shafrizal Kagashi
 
PPTX
Algoritma pemrograman 7
ZainalAbidin909479
 
DOCX
Laporan praktikum modul v
Devi Apriansyah
 
DOC
Praktikum Decision + Output
Ambar Ayu Susilowati
 
PPT
Fungsi rekursif, queue, stack
Icha Dicaprio
 
PDF
Resume praktikum 7__queue
Deprilana Ego Prakasa
 
PDF
Program Pascal
Simon Patabang
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
Kelinci Coklat
 
Laporan praktikum modul ii & iii
Devi Apriansyah
 
Materi Pelajaran Program Pascal
Simon Patabang
 
Review Operator, Boolean, Selection, Repetition
Herbert Abdillah
 
Intruksi Fundamental Lanjutan
Akmal Fajar
 
materi pemrograman untuk smp/mats kelas 8
erlanrwikanda17
 
Download
Kiswan Homnizar
 
Intruksi Fundamental
Akmal Fajar
 
Mengenal C++ koding yang simple dan interaktif bagi siswa sma dan menarik.pptx
peserta06921
 
207 p05
itranus
 
Tugas kelompok
Aidil Kun
 
Modul ii operatorlogika
Shafrizal Kagashi
 
Algoritma pemrograman 7
ZainalAbidin909479
 
Laporan praktikum modul v
Devi Apriansyah
 
Praktikum Decision + Output
Ambar Ayu Susilowati
 
Fungsi rekursif, queue, stack
Icha Dicaprio
 
Resume praktikum 7__queue
Deprilana Ego Prakasa
 
Program Pascal
Simon Patabang
 
Ad

Recently uploaded (20)

PPTX
494471454-DESAIN-BRIE9ooooooooooooooooooooooooooooooooooooF.pptx
ARIWIHARTO1
 
PPTX
Teks Deskripsi Presentasi Coklat dan Krem Ilustratif Imut.pptx
nandakhalisah84
 
PDF
Jual Stasiun Total Manual Leica FlexLine TS03
Budi Minds
 
PDF
Jual Alpha Geo Lixel K1 Compact Handheld 3D Scanner
Budi Minds
 
PDF
Presentasi Materi Ventilasi Bagian 5.pdf
gziplan01
 
PPTX
2025_SOSIALISASI PPK AIH_SMKN 2 TANJUNGPANDAN_OK.pptx
AdeSukmana17
 
PPTX
PERSENTASI AUTO FEEDER mesin pemberi pakan otomati.pptx
AdeSukmana17
 
PDF
TEGANGAN Geser dan Normal.pdf1etueio2344556.
VionaHandayaniAriton
 
PDF
RAK TIANG BUNGA 23 NOV 2023 PAK SURYA.pdf
Hendri Anur
 
PPTX
Konsep Kriteria - Desain Geometrik Jalan.pptx
ArKur1
 
PPTX
DASARPENGUKURAN TOPOGRAFI UNTUK PEKERJAAN JALAN1.pptx
ArKur1
 
PPTX
GEMPA BUMI George Van Veen - 160216495.pptx
RandySaputra45
 
PPTX
201510-Bandung-AplikasiAIS-UntukMendukungDSS-SEMAR.pptx
UnggulSYudhotomo
 
PPTX
System Development Life Cycle Overview for IT
dyanartakusuma
 
PPTX
PPT MAGANG DI PT INSIGHT MEDICA FAME.pptx
jutribonal2
 
PDF
Jual GPS Geodetik EFIX F7 Plus GNSS IMU-RTK
Budi Minds
 
PPTX
Teknologi Fermentasi Teknik Kimia 2023 15
egivia20
 
PPTX
SEMINAR HASIL PENELITIAN DUKUNG SOEKARNO 183210001 02-07-2025.pptx
muhammadhafif1010
 
PDF
Jual GPS Geodetik Efix C8 Vision IMU RTK
Budi Minds
 
PPTX
Exum Design and Build untuk Sekolah SMA Unggulan.pptx
suhariyanto10
 
494471454-DESAIN-BRIE9ooooooooooooooooooooooooooooooooooooF.pptx
ARIWIHARTO1
 
Teks Deskripsi Presentasi Coklat dan Krem Ilustratif Imut.pptx
nandakhalisah84
 
Jual Stasiun Total Manual Leica FlexLine TS03
Budi Minds
 
Jual Alpha Geo Lixel K1 Compact Handheld 3D Scanner
Budi Minds
 
Presentasi Materi Ventilasi Bagian 5.pdf
gziplan01
 
2025_SOSIALISASI PPK AIH_SMKN 2 TANJUNGPANDAN_OK.pptx
AdeSukmana17
 
PERSENTASI AUTO FEEDER mesin pemberi pakan otomati.pptx
AdeSukmana17
 
TEGANGAN Geser dan Normal.pdf1etueio2344556.
VionaHandayaniAriton
 
RAK TIANG BUNGA 23 NOV 2023 PAK SURYA.pdf
Hendri Anur
 
Konsep Kriteria - Desain Geometrik Jalan.pptx
ArKur1
 
DASARPENGUKURAN TOPOGRAFI UNTUK PEKERJAAN JALAN1.pptx
ArKur1
 
GEMPA BUMI George Van Veen - 160216495.pptx
RandySaputra45
 
201510-Bandung-AplikasiAIS-UntukMendukungDSS-SEMAR.pptx
UnggulSYudhotomo
 
System Development Life Cycle Overview for IT
dyanartakusuma
 
PPT MAGANG DI PT INSIGHT MEDICA FAME.pptx
jutribonal2
 
Jual GPS Geodetik EFIX F7 Plus GNSS IMU-RTK
Budi Minds
 
Teknologi Fermentasi Teknik Kimia 2023 15
egivia20
 
SEMINAR HASIL PENELITIAN DUKUNG SOEKARNO 183210001 02-07-2025.pptx
muhammadhafif1010
 
Jual GPS Geodetik Efix C8 Vision IMU RTK
Budi Minds
 
Exum Design and Build untuk Sekolah SMA Unggulan.pptx
suhariyanto10
 

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.