Anda di halaman 1dari 15

FINAL PROJECT TUGAS INDIVIDU

"Membuat Aplikasi Quick Sort & Merge Sort Menggunakan Java"

Disusun Oleh:
Ginda Tigora Rizkhar 1461600225

Dosen Pengampuh
Agus Hermanto, S.Kom.,M.MT.,ITIL.,COBIT

PROGRAM STUDI TEKNIK INFORMATIKA


UNIVERSITAS 17 AGUSTUS 1945 SURABAYA
2019
A. Metode White Box Testing Quick Sort KodeSoal H
1. Pengujian

Pada kasus ini dilakukan pengujian dengan metode White Box Testing
untuk menilai sebuah program atau aplikasi. Berikut ini adalah program
yang akan dilakukan pengujian dengan metode White Box Testing :

1.1 Program Quick Sort

Pada program ini, terdapat sebuah nilai 1,5, 7, 8, 9 yang dimana nilai 1
sampai 9 tersebut adalah nilai acak, setelah itu nomor yang teracak tadi
akan diurutkan. Berikut ini adalah model dari Source Code Merge Sort
menggunakan Java.

QuickSort.java
class QuickSort
{
int partition(int arr[], int low, int high)
{
int pivot = arr[high];
int i = (low-1);
for (int j=low; j<high; j++)
{
if (arr[j] <= pivot)
{
i++;

// swap arr[i] and arr[j]


int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}

int temp = arr[i+1];


arr[i+1] = arr[high];
arr[high] = temp;

return i+1;
}

{
if (low < high)
{
int pi = partition(arr, low, high);
sort(arr, low, pi-1);
sort(arr, pi+1, high);
}
}

static void printArray(int arr[])


{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i]+" ");
System.out.println();
}

public static void main(String args[])


{
int arr[] = {10, 7, 8, 9, 1, 5};
int n = arr.length;

QuickSort ob = new QuickSort();


ob.sort(arr, 0, n-1);

System.out.println("sorted array");
printArray(arr);
}
}
1.2 Tabel Pengujian

No Input Output Status Keterangan


1 Memasukan Menampilkan Valid prog.java:69:
error: cannot
data yang pesan
find symbol
tidak sesuai int arr[]
= {A, B, C, 9,
1, 5};

^
symbol:
variable A
location:
class
QuickSort
prog.java:69:
error: cannot
find symbol

int arr[]
= {A, B, C, 9,
1, 5};

^
symbol:
variable B
location:
class
QuickSort
prog.java:69:
error: cannot
find symbol

int arr[]
= {A, B, C, 9,
1, 5};

^
symbol:
variable C
location:
class
QuickSort
3 errors
2 Memasukan Menampilkan Valid sorted array
1 5 7 8 9 10
data yang Pesan
sesuai

E. Metode Black Box Testing Quick Sort


1. Pengujian Pada kasus ini dilakukan pengujian dengan metode Black
Box Testing untuk kegunaan secara fungsionalitas dan non-
fungsionalitas. Berikut penjelasannya :
1.1 Fungsionalitas

- System dapat melakukan input data berupa nomor.

- System dapat menghitung input nomor mulai 1,5,7,8,910

- System dapat menghitung input nomor dengan refresh browser.

- System dapat menampilkan pesan error jika terjadi kesalahan.


1.2 Non-Fungsionalitas

- System memiliki tampilan yang sangat sederhana.


- Proses program untuk menampilkan hasil output tidak lebih dari 4
detik.

F. Kompleksitas Algoritma Program Quick Sort


1. Algoritma untuk pemberian nilai yang diacak.

PROSEDURE
class QuickSort
{

int partition(int arr[], int low, int high)


{ DEKLARASI
int pivot = arr[high];
int i = (low-1);

for (int j=low; j<high; j++)


{ ALGORITMA
if (arr[j] <= pivot)
{
i++;

// swap arr[i] and arr[j]


int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}

int temp = arr[i+1];


arr[i+1] = arr[high];
arr[high] = temp;

return i+1;
}
2. Algoritma untuk menentukan tempat nilai yang diacak.

PROSEDURE
public static void main(String args[])
{ DEKLARASI
int arr[] = {10, 7, 8, 9, 1, 5};
int n = arr.length;
ALGORITMA
QuickSort ob = new QuickSort();
ob.sort(arr, 0, n-1);

System.out.println("sorted array");
printArray(arr);
}

D. Metode White Box Testing Merge Sort


1. Pengujian

Pada kasus ini dilakukan pengujian dengan metode White Box Testing
untuk menilai sebuah program atau aplikasi. Berikut ini adalah program
yang akan dilakukan pengujian dengan metode White Box Testing :
1.1 Program Merge Sort
Pada program ini, terdapat sebuah nilai 5,6,7,11,12,13 yang dimana nilai
1 sampai 9 tersebut adalah nilai acak, setelah itu nomor yang teracak tadi
akan diurutkan. Berikut ini adalah model dari Source Code Merge Sort
menggunakan Java.

MergeSort.Java

/* Java program for Merge Sort */


class MergeSort
{
void merge(int arr[], int l, int m, int r)
{
int n1 = m - l + 1;
int n2 = r - m;
int L[] = new int [n1];
int R[] = new int [n2];

for (int i=0; i<n1; ++i)


L[i] = arr[l + i];
for (int j=0; j<n2; ++j)
R[j] = arr[m + 1+ j];

int i = 0, j = 0;
int k = l;
while (i < n1 && j < n2)
{
if (L[i] <= R[j])
{
arr[k] = L[i];
i++;
} else{
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1)
{
arr[k] = L[i];
i++;
k++;
}
while (j < n2)
{
arr[k] = R[j];
j++;
k++;
}
}
void sort(int arr[], int l, int r)
{
if (l < r)
{
int m = (l+r)/2;
sort(arr, l, m);
sort(arr , m+1, r); \
merge(arr, l, m, r);
}
}
static void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}

// Driver method
public static void main(String args[])
{
int arr[] = {12, 11, 13, 5, 6, 7};
System.out.println("Given Array");
printArray(arr);
MergeSort ob = new MergeSort();
ob.sort(arr, 0, arr.length-1);
System.out.println("\nSorted array");
printArray(arr);
}
}

1.2 Tabel Pengujian

No Input Output Status Keterangan


1 Memasukan Menampilkan Valid prog.java:93:
data yang pesan error: cannot
tidak sesuai find symbol

int arr[]
= {A, B, C, 5,
6, 7};

^
symbol:
variable A
location:
class
MergeSort
prog.java:93:
error: cannot
find symbol
int arr[]
= {A, B, C, 5,
6, 7};

^
symbol:
variable B
location:
class
MergeSort
prog.java:93:
error: cannot
find symbol

int arr[]
= {A, B, C, 5,
6, 7};

^
symbol:
variable C
location:
class
MergeSort
3 errors
2 Memasukan Menampilkan Valid Given Array
data yang pesan 12 11 13 5 6 7
sesuai
Sorted array
5 6 7 11 12 13

E. Metode Black Box Testing Merge Sort


1. Pengujian Pada kasus ini dilakukan pengujian dengan metode Black
Box Testing untuk kegunaan secara fungsionalitas dan non-
fungsionalitas. Berikut penjelasannya :
1.1 Fungsionalitas

- System dapat melakukan input data berupa nomor.

- System dapat menghitung input nomor tak terhingga.

- System dapat menampilkan pesan error jika terjadi kesalahan.

1.2 Non-Fungsionalitas

- System memiliki tampilan yang sangat sederhana.

- Proses program untuk menampilkan hasil output tidak lebih dari 4


detik.

F. Kompleksitas Algoritma Program Merge Sort

1. Algoritma untuk menentukan tempat nilai yang diacak.

PROCEDUR
class MergeSort
{
void merge(int arr[], int l, int m, int r)
{ DEKLARASI
int n1 = m - l + 1;
int n2 = r - m;
int L[] = new int [n1];
int R[] = new int [n2];
ALGORITMA
for (int i=0; i<n1; ++i)
L[i] = arr[l + i];
for (int j=0; j<n2; ++j)
R[j] = arr[m + 1+ j];

int i = 0, j = 0;
int k = l;
while (i < n1 && j < n2)
{
if (L[i] <= R[j])
{
arr[k] = L[i];
i++;
} else{
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1)
{
arr[k] = L[i];
i++;
k++;
}
while (j < n2)
{
arr[k] = R[j];
j++;
k++;
}
}

Anda mungkin juga menyukai