Anda di halaman 1dari 10

Nama

: Zulfahmi Jufri
NIM
: 1507055034
Tugas Struktur Data
2. Modul Binary Search
Algoritma :
/* Buat prosedur dengan nama binarySearch */

int binarySearch (int arr[], int x, int y) {


int bawah, atas, tengah;
bawah = 0;
atas = y - 1;
while (bawah <= atas) {
/* Mencari titik tengah pada data array */

tengah = (bawah + atas) / 2;


/* Jika nilai data array[tengah] sama dengan angka yg dicari, langsung
tampilkan tengah */

if (arr[tengah] == x ) {
return tengah+1;
/* Jika nilai data array[tengah] lebih besar dari angka yg dicari, maka
pencariannya dilanjutkan ke data sebelumnya */

} else if ( arr[tengah] > x) {


atas = tengah - 1;
/* Jika nilai data array[tengah] lebih kecil dari angka yg dicari, maka
pencariannya dilanjutkan ke data setelahnya */

} else if ( arr[tengah] < x) {


bawah = tengah + 1;
/* NIM/Nama
Nama File
Topik
Tanggal
Deskripsi

:
:
:
:
:

1507055034/Zulfahmi Jufri
binary.h
Binary Search
20/10/2016
Koding untuk modul program binary search
yang berisi rumus-rumus pencarian binary
search. */

int binarySearch (int arr[], int x, int y) {


int bawah, atas, tengah;
bawah = 0;
atas = y - 1;
while (bawah <= atas) {
tengah = (bawah + atas) / 2;
if (arr[tengah] == x ) {
return tengah+1;
} else if ( arr[tengah] > x) {
atas = tengah - 1;
} else if ( arr[tengah] < x) {
bawah = tengah + 1;
}}
return -1; }

/* NIM/Nama
Nama File
Topik
Tanggal
Deskripsi

:
:
:
:
:

1507055034/Zulfahmi Jufri
binary.cpp
Binary Search
20/10/2016
Koding utama untuk program binary search yang
berisi pemanggilan modul binary.h, inputan
inputan, dan tampilan hasil.*/

#include <iostream.h>
#include <conio.h>
#include"binary.h"
int main() {
int arr[100], jml, x, hasil;
cout<<" \n Masukkan jumlah data yang akan diinput(Max 100) :
";
cin>>jml;
for (int i = 0; i < jml; i++) {
cout<<"\n Masukkan nilai data ke "<<i+1<<": ";cin>>arr[i];
}
cout<<"\n Masukkan angka yang ingin dicari : ";
cin>>x;
hasil = binarySearch (arr, x, jml);
if (hasil == -1) {
cout<<" \n Angka tidak ditemukan.";
} else {
cout<<" \n Angka ditemukan pada posisi ke "<<hasil ;
}
getch();
return 0;
}

3. Modul Sorting
Algoritma :
- Bubble Sort
void bubble_sort()
{
/* Memproses dari data pertama sampai data terakhir */

for(int i=1;i<n;i++)
{
/* Periksa nilai data dari data terakhir */

for(int j=n-1;j>=i;j--)
{
/* Jika nilai pada data[j] < data[j-1] (data sebelumnya) maka nilai
keduanya ditukar (menggunakan procedure tukar) */

if(data[j]<data[j-1]) tukar(j,j-1);
}}}
Selection Sort
void selection_sort()
{
int pos,i,j;
/* Memproses dari data pertama sampai data terakhir */

for(i=0;i<n-1;i++){
pos = i;
/* Periksa nilai data dari data pertama */

for(j = i+1;j<n;j++){
/* Jika nilai pada data[j] < data[pos] maka nilai keduanya ditukar
(menggunakan procedure tukar) */

if(data[j] < data[pos]) pos = j;


}
if(pos != i) tukar(pos,i);
}}
Insertion Sort
void insertion_sort()
{
int temp,i,j;

/* Memproses dari data pertama sampai data terakhir */

for(i=1;i<n;i++){
temp = data[i];
j = i -1;
/* Selama nilai dari data[j] > temp dan j >= nol maka data[j+1] =
data[j] dan nilai j terus berkurang 1 */

while(data[j]>temp && j>=0){


data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}}

/* NIM/Nama : 1507055034/Zulfahmi Jufri


Nama File : sorting.cpp
/*Topik
NIM/Nama :: Sorting
1507055034/Zulfahmi Jufri
Tanggal
Nama File :: 20/10/2016
acak.h
Deskripsi
:
Koding
Topik
: Sorting utama untuk program Sorting
yang Tanggal
berisi pemanggilan
: 20/10/2016modul-modul/include dan
inputan-inputan
Deskripsi : Koding
*/
untuk modul acak pada sorting.cpp
*/
#include <iostream.h>
void AcakLagi()
#include
<conio.h>
int{data[100],data2[100];
i=0;i<n;i++)
intfor(int
n;
{
#include"tukar.h"
data[i] = data2[i];
#include"bubble.h"
}
#include"selection.h"
cout<<"Data sudah teracak!"<<endl;
#include"insertion.h"
}
#include"input.h"
#include"tampil.h"
#include"acak.h"
/* NIM/Nama : 1507055034/Zulfahmi Jufri
int main()
Nama File : tampil.h
{
Topik
: Sorting
: 20/10/2016
int pil;Tanggal
Deskripsi
Koding untuk modul tampil pada
cout<<"
1. Input: Data"<<endl;
sorting.cpp
*/
cout<<" 2. Bubble Sort"<<endl;
void Tampil()
cout<<"
3. Selection Sort"<<endl;
{
cout<<"
4. Insertion Sort"<<endl;
cout<<"Data
: "<<endl;
cout<<" 5. Tampilkan
Data"<<endl;
for(int
i=0;i<n;i++)
cout<<" 6. Acak Data"<<endl;
do{
{ cout<<data[i]<<" ";
}
cout<<"
Pilihan Anda = "; cin>>pil;
cout<<endl;
switch(pil)
{ }
case 1:Input(); break;
case 2:bubble_sort(); break;
/* NIM/Nama : 1507055034/Zulfahmi Jufri
case 3:selection_sort(); break;
Nama File : input.h
case 4:insertion_sort();
break;
Topik
: Sorting
case 5:Tampil();
break;
Tanggal
:
20/10/2016
case 6:AcakLagi();
break; untuk modul input pada sorting.cpp
Deskripsi : Koding
} */
getch();
void Input()
}while(pil!=9);
{
} cout<<"Masukkan jumlah data = "; cin>>n;
for(int i=0;i<n;i++)
{
cout<<"Masukkan data ke-"<<(i+1)<<" = "; cin>>data[i];
data2[i] = data[i];
}}

/* NIM/Nama
Nama File
Topik
Tanggal
Deskripsi
sorting.cpp

: 1507055034/Zulfahmi Jufri
: bubble.h
: Sorting
: 20/10/2016
: Koding untuk modul bubble sort pada
*/

void bubble_sort()
{
for(int i=1;i<n;i++){
for(int j=n-1;j>=i;j--){
if(data[j]<data[j-1]) tukar(j,j-1);
}}}
/* NIM/Nama
Nama File
Topik
Tanggal
Deskripsi
sorting.cpp

: 1507055034/Zulfahmi Jufri
: selection.h
: Sorting
: 20/10/2016
: Koding untuk modul selection sort pada
*/

void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++){
pos = i;
for(j = i+1;j<n;j++){
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}}

/* NIM/Nama
Nama File
Topik
Tanggal
Deskripsi
sorting.cpp

: 1507055034/Zulfahmi Jufri
: insertion.h
: Sorting
: 20/10/2016
: Koding untuk modul insertion sort pada
*/

void insertion_sort(){
int temp,i,j;
for(i=1;i<n;i++){
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0){
data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}
}

/* NIM/Nama
Nama File
Topik
Tanggal
Deskripsi
*/

:
:
:
:
:

1507055034/Zulfahmi Jufri
tukar.h
Sorting
20/10/2016
Koding untuk modul tukar pada sorting.cpp

void tukar(int a,int b)


{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}

4. Pengolahan Matriks
Algoritma :
- Penjumlahan Matriks
/*Panggil semua baris */

for (i=0;i<3;i++){
/*Panggil semua kolom */

for (j=0;j<3;j++){
/*Menambahkan matriks array A[i][j]+B[i][j] */

C[i][j]=A[i][j]+ B[i][j];
}
Perkalian Matriks

/*Panggil semua baris */

for(i=0;i<3;i++)
{

/*Panggil semua kolom */

for(j=0;j<3;j++)
{
D[i][j]=0;
/*Variabel baru untuk mengali */

for(int k=0;k<3;k++)
{
/*D[i][j] adalah hasil sum dari A[i][k]*B[k][j] */

D[i][j]+=A[i][k]*B[k][j];
}
}
}

/* NIM/Nama : 1507055034/Zulfahmi Jufri


Nama File : operasimatriks.cpp
Topik
: Matriks
Tanggal
: 20/10/2016
Deskripsi : Koding modul pertambahan matriks untuk
operasimatriks.cpp
*/

for (i=0;i<3;i++){
for (j=0;j<3;j++){
C[i][j]=A[i][j]+ B[i][j];
}
cout<<endl;
}

/* NIM/Nama : 1507055034/Zulfahmi Jufri


File :
/* Nama
NIM/Nama
: operasimatriks.cpp
1507055034/Zulfahmi Jufri
Topik
Nama File :
: Matriks
operasimatriks.cpp
Tanggal
:
Topik
: 20/10/2016
Matriks
Deskripsi
:
modul perkalian matriks untuk
Tanggal
: Koding
20/10/2016
operasimatriks.cpp
*/
Deskripsi : Koding untuk Program Operasi Matriks

for(i=0;i<3;i++)
tambah dan kali { */
for(j=0;j<3;j++)
{
#include
<iostream.h>
D[i][j]=0;
#include <conio.h>
k=0;k<3;k++) {
intfor(int
main(){
intD[i][j]+=A[i][k]*B[k][j];
A[3][3];
}}
int}B[3][3];

int C[3][3];
int D[3][3];
int i,j;
cout<<"Matriks Ordo 3X3"<<endl;
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<"Matrik A["<<i<<","<<j<<"] : ";
cin>>A[i][j];}}
cout<<endl;
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<"Matrik B["<<i<<","<<j<<"] : ";
cin>>B[i][j];}}
#include"tambah.h"
#include"kali.h"
cout<<"Hasil Tambah : " <<endl;
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<C[i][j]<<" ";}
cout<<endl;}
cout<<"Hasil Kali : " <<endl;
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<D[i][j]<<" ";
}
cout<<endl;
}
getch();
}

Anda mungkin juga menyukai