Anda di halaman 1dari 15

LAPORAN HASIL PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN II

NAMA : TRI ULANDARI


NIM : 203010503013
KELAS :C
MODUL : II (DIVIDE AND CONQUER )

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PALANGKA RAYA

2021
LAPORAN HASIL PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN II

NAMA : TRI ULANDARI

NIM : 203010503013

KELAS :C

MODUL : II (DIVIDE AND CONQUER)

KOMPOSISI MAX NILAI


BAB I Tujuan dan Landasan Teori 10
BAB II Pembahasan 60
BAB III Kesimpulan 20
Daftar Pustaka 5
Lampiran 5
Jumlah 100

Penilai

Asisten Praktikum

Edy Pratamajaya

BAB I
TUJUAN DAN LANDASAN TEORI

A. Tujuan
1. Mahasiswa dapat memahami dan menerapkan konsep array dengan
menggunakan pemrograman Java.
2. Mahasiswa dapat memahami dan menerapkan konsep function dengan
menggunakan bahasa pemrograman Java.
3. Mahasiswa dapat menerapkan algoritma divide and conquer dalam
pemrograman Java.
B. Landasan Teori
1. Array
a. Pengertian Array
Array adalah sekumpulan variabel yang memiliki tipe data
yang sama dan dinyatakan dengan nama yang sama. Array
merupakan konsep yang penting dalam pemrograman, karna array
memungkinkan untuk menyimpan data maupun referensi objek
dalam jumlah banyak dan terindeks. Array menggunakan indeks
integer untuk menentukan urutan elemen-elemennya, dimana
elemen pertamanya dimulai dari indeks 0,elemen kedua memiliki
indeks 1, dan seterusnya.
b. Mendeklarasikan Variabel Array
Mendeklarasikan variabel array dengan tipe data yang
diinginkan dengan cara yang hampir sama dengan variabel biasa.
Misalnya untuk mendeklarasikan variabel bertipe integer, dapat
dilakukan dengan cara :
Int [ ] bilangan; atau int bilangan [ ];
Jadi perbedaan utama pendeklarasian variabel array dengan
variabel biasa adalah adanya tanda kurung [ ] di akhir tipe data atau
di akhir nama variabel array. Pada tahap pendeklarasian variabel
array ini belum ada alokasi memory untuk menyimpan data
c. Mendefinisikan Array
Setelah mendeklarasikan array, kita perlu mendefenisikan
array, dalam arti menentukan besar array yang diinginkan.
Misalnya dengan cara :
Bilangan = new int [5];
Array memiliki ukuran yang tetap dalam arti tidak dapat
membesar atau mengecil ukurannya setelah didefenisikan. Setelah
didefenisikan, maka variabel dengan nama bilangan dapat
menyimpan 5 nilai integer yang dapat diakses melalui indeks 0
sampai indeks 4. Setelah pendefenisian array, maka memori akan
dialokasikan untuk menyimpan data dari array. Besar memori yang
dialokasikan tergantung dari tipe data variabel array dan jumlah
elemen array yang didefenisikan.
d. Array Dua Dimensi
Pada java juga menyediakan fasilitas untuk membuat array
dua dimensi yang dapat membantu dalam pemrograman apabila
array datu dimensi tidak mencukupi dalam menghasilkan suatu
solusi. Array dua dimensi sebenarnya adalah array yang berisi
array.
e. Array Multidimensi
Selain array satu dimensi dan array dua dimensi, dapat juga
membuat array multi dimensi pada java. Array multidimensi
merupakan array yang terdiri dari array yang tidak terbatas hanya
dua dimensi saja. Kita dapat menggunakan kode berikut untuk
mendapatkan array 3 dimensi :
Int [ ] [ ] array dimensi = new int [ 5 ] [ 10 ] [ 5 ] ;
Dan pada array multidimensi , kita dapat menetukan ukuran
array yang berbeda pada tiap array. Misalnya :
Int [ ] [ ] [ ] mdimensi = new int [ 5 ] [ ] [ ] ;
Dari kode diatas, kita mendapatkan array pertama dengan 5
elemen, tetapi kita belum mendefinisikan ukuran array dimensi
kedua dan ketiga.
Contoh :
// Elemen 512 x 128 dari integer array
int[][] twoD = new int[512][128];
// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];
// String array 4 baris x 2 kolom
String[][] dogs = {{ "terry", "brown" },
{ "Kristin", "white" },
{ "toby", "gray"},
{ "fido", "black"}

};

Untuk mengakses sebuah elemen didalam array


multidimensi, sama saja dengan mengakses array satu dimensi.
Misalnya saja, untuk mengakses element pertama dari baris
pertama didalam array dogs, kita akan menulis :
System.out.print( dogs[0][0] );
Kode di atas akan mencetak String “terry” di layar.
2. Function dan Procedure
a. Function
Function merupakan sebuah method yang memiliki nilai
fungsi untuk mengembalikan nilai, function merupakan penerapan
dari prinsip modularitas dari java itu sendiri, pengembalian fungsi
di function menggunakan kendali return.
Deklarasi procedure bisa digambarkan seperti:

Static tipedata namamethod (tipedata namavar) {

Tipedata namavar = (rumus);

Return namavar;

{
b. Procedure
Sama seperti function, procedur merupakan suatu method,
yang membedakan antara function dan procedure yaitu, jika
procedur memiliki fungsi untuk pengembalian maka procedure
tidak memiliki fungsi untuk melakukan pengembalian nilai.
Procedure identik dengan diawali dengan kata void
dibagian atas blok kode program. Deklarasi procedure bisa
digambarkan seperti :
Public void namamethod ( ) {

System.out.println (“Saya”) ;

3. Algoritma Divide and Conquer


Algoritma Divide and Conquer merupakan algoritma yang sangat
populer di dunia Ilmu Komputer. Divide and Conquer merupakan
algoritma yang berprinsip memecah-mecah permasalahan yang terlalu
besar menjadi beberapa bagian kecil sehingga lebih mudah untuk
diselesaikan. Langkah-langkah umum algoritma Divide and Conquer :
a) Divide : Membagi masalah menjadi beberapa upa-masalah yang
memiliki kemiripan dengan masalah semula namun berukuran
lebih kecil ( idealnya berukuran hampir sama ).
b) Conquer : Memecahkan (menyelesaikan) masing-masing
upamasalah ( secara rekursif ).
c) Combine : Menggabungkan solusi masing-masing upa-masalah
sehingga membentuk solusi masalah semula.
Objek masalah yang di bagi adalah masukan (input) atau instances
yang berukuran n: tabel (larik), matriks, dan sebagainya, bergantung
pada masalahnya. Tiap-tiap upa-masalah mempunyai karakteristik
yang sama (the same type) dengan karakteristik masalah asal, sehingga
metode Divide and Conquer lebih natural diungkapkan dalam skema
rekursif. Sesuai dengan karakteristik pembagian dan pemecahan
masalah tersebut, maka algoritma ini dapat berjalan baik pada
persoalan yang bertipe rekursif (perulangan dengan memanggil dirinya
sendiri). Dengan demikian, algoritma ini dapat diimplementasikan
dengan cara iteratif ( perulangan biasa ), karena pada prinsipnya iteratif
hampir sama dengan rekursif. Salah satu penggunaan algoritma ini
yang paling populer adalah dalam hal pengolahan data yang bertipe
array ( elemen larik ). Mengapa ? Karena pengolahan array pada
umumnya selalu menggunakan prinsip rekursif atau iteratif.
Penggunaan secara spesifik adalah untuk mencari nilai minimal dan
maksimal serta untuk mengurutkan elemen array. Dalam hal
pengurutan ini ada empat macam algoritma pengurutan yang berdasar
pada algoritma Divide and Conquer, yaitu merge sort, insert sort, quick
sort, dan selection sort. Merge sort dan Quick sort mempunyai
kompleksitas algoritma O(n ²log n). Hal ini lebih baik jika
dibandingkan dengan pengurutan biasa dengan menggunakan
algoritma brute force
BAB II

PEMBAHASAN

Sebuah program untuk mengurutkan bilangan yang diinput oleh user


menggunakan algoritma Divide and Conquer.

Input Program :

Gambar 2.1 Input Program pengurutan bilangan yang diinput oleh user
menggunakan algoritma Divide and Conquer (Bubble Sort).

Output Program :
Gambar 2.2 Output Program pengurutan bilangan yang diinput oleh user
menggunakan algoritma Divide and Conquer.

Penjelasan :

1. Deklarasi Package

Package marupakan sebuah folder yang berisi sekumpulan program Java.


Deklarasi package biasanya dilakukan saat membuat program atau aplikasi
besar.
2. Bagian Class

Blok class dibuka dengan tanda kurung kurawal sebagai blok pembuka ({ )
kemudian ditutup atau diakhiri dengan blok penutup (}). Dengan membari
nama untuk menjadi objek.
Di dalam blok class, dapat mengisinya dengan method atau fungsi-fungsi
dan juga variabel.
3. Bagian Deklarasi Metode Sorting
Sorting atau pengurutan data adalah proses yang sering harus dilakukan
dalam pengolahan data. Sort dalam hal ini diartikan mengurutkan data yang
berada dalam suatu tempat penyimpanan, dengan urutan tertentu baik urut
menaik (ascending) dari nilai terkecil sampai dengan nilai terbesar, atau urut
menurun (descending) dari nilai terbesar sampai dengan nilai terkecil. Sorting
adalah proses pengurutan.
Bubble sort adalah proses pengurutan sederhana yang bekerja dengan cara
berulang kali membandingkan dua elemen data pada suatu saat dan menukar
elemen data yang urutannya salah. Ide dari Bubble sort adalah gelembung air
yang akan “mengapung” untuk table yang terurut menaik (ascending).
Elemen bernilai kecil akan “diapungkan” (ke indeks terkecil), artinya
diangkat ke “atas” (indeks terkecil) melalui pertukaran.

4. Method Main

Method main ( ) atau fugsi main ( ) merupakan blok pembuka yang akan
dieksekusi pertama kali. Ini adalah entri point dari program.
Method main ( ) wajib kita buat. Kalau tidak, maka programnya tidak akan
bisa dieksekusi.
Method main ( ) memiliki parameter args[]. Parameter ini akan
menyimpan sebauh nilai dari argumen di command line.
5. Bagian Program
Array adalah sebuah variabel yang bisa menyimpan banyak data dalam
satu varibael. Array menggunakan indeks untuk memudahkan akses terhadap
data yang disimpannya.
Array di atas memiliki 6 komponen yaitu 15, 5, 7, 80, 11, 18 yang bertipe
data integer (bilangan desimal) yang akan dilakukan pengurutan data dari
yang nilai terkecil ke nilai terbesar dengan menggunakan pengurutan Bubble
Sort.
BAB III

KESIMPULAN

Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan
dinyatakan dengan nama yang sama. Array merupakan konsep yang penting
dalam pemrograman, karna array memungkinkan untuk menyimpan data maupun
referensi objek dalam jumlah banyak dan terindeks.

Function merupakan sebuah method yang memiliki nilai fungsi untuk


mengembalikan nilai, function merupakan penerapan dari prinsip modularitas dari
java itu sendiri, pengembalian fungsi di function menggunakan kendali return.
Divide and Conquer merupakan algoritma yang berprinsip memecah-mecah
permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih
mudah untuk diselesaikan.
DAFTAR PUSTAKA

Nurul, D. (2012). "Pengertian Array & Contoh Program Array".


http://belajarpemrogramanprogrammer.blogspot.com/2012/03/pengertiana
rray-contoh-program-array.html Diakses pada 6 April 2021, 23.57 WIB.

ADMIN. (2019). "Tutorial Pemrograman Java Part 7|Pengertian Function dan


Procedure". https://www.foxteamswin.com/tutorial-pemrograman-java
part-7 pengertian-function-dan-procedure/. Diakses pada 7 April 2021,
00.38 WIB.

Andikafisma. (2010). "Algoritma Divide and Conquer".


https://andikafisma.wordpress.com/algoritma-divide-and-conquer/ Diakses
pada 7 April 2021, 00.59 WIB.
LAMPIRAN

Gambar 2.1 Input Program pengurutan bilangan yang diinput oleh user
menggunakan algoritma Divide and Conquer (Bubble Sort).

Gambar 2.2 Output Program pengurutan bilangan yang diinput oleh user
menggunakan algoritma Divide and Conquer.