Anda di halaman 1dari 18

LAPORAN TUGAS BESAR

PEMROGRAMAN JAVA
Nama Dosen : Ichsan Taufik, M.T.

Disusun Oleh :
Aaz Muhammad Hafidz Azis 1177050001
Cecep rafqi al husni 1177050025
Firman Nudin 1177050047
Fena Ayu Islamiatik 1157050056

Kelas : Struktur Data – C

TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UIN SUNAN GUNUNG DJATI BANDUNG
2018
BAB 1

PENDAHULUAN

1.1.LATAR BELAKANG
Dewasa ini kemajuan teknologi terasa semakin pekat terutama bidang teknologi
informasi, informasi merupakan salah satu bagian untuk dapat mendukung kemajuan suatu
maupun instansi tertentu dengan tujuan memperkecil pengeluaran biaya dan mempersingkat
waktu kerja. Atas dasar tujuan tersebut perlu adanya dukungan penuh pada keberadaan system
informasi.
Agar dapat menghasilkan suatu informasi yang berkulalitas memenuhi persyaratan suatu
informasi yang akurat, relevan serta teapt waktu. Diperlukan beberapa system teknologi
informasi yang andal pengguna teknologi tersebut akan berdampak baik terhadap usaha.
Program yang kami buat berfungsi untuk menyediakan sistem billing pada ppengguna
jasa warnet dengan aturan aturan tertenu . sehingga penyediajasa interdenet dapat secara
otomatis memberikan data harga, bonus dan yang lainnya sehingga mempermudah kerja dari
penyedia jasa.
Makalah ini juga dibuat untuk memenuhi salah satu tugas besar mata kuliah praktikum
algoritma pemprograman dan juga syarat untuk mengikuti UAS semester genap.
1.2.RUMUSAN MASALAH
1.2.1. bagaimana bentuk flowchart program 4 menu ?
1.2.2. Bagaimana Screenshot program 4 menu?
1.2.3. Bagaimana SourceCode program 4 menu?

1.3.TUJUAN
Tujuan disusunnya Makalah ini yaitu untuk menyelesaikan salah satu tugas mata
pelajaran yang khususnya mata pelajaran Algoritma dan Pemograman sekaligus tugas atau nilai
tambahan untuk UAS.
Selain itu, penulis berharap di buatnya makalah ini bukan hanya untuk tugas yang di
berikan semata, akan tetapi bisa membantu kita semua dalam hal mempelajari ilmu
pengetahuan yang khususnya Pemograman java ini.
Harapan penulis yaitu semoga Makalah ini tidak hanya bermanfaat bagi penulis akan
tetapi sangat-sangat bermanfaat khususnya juga bagi para pembaca atau kita semua yang
membutuhkan untuk referensi ataupun salah satu sarana untuk menambah wawasan dalam hal
ilmu pengetahuan yang khususnya Pemograman java Semoga makalah ini bisa bermanfaat bagi
penulis khsususnya dan kita semua amiin.
BAB 1

PEMBAHASAN

1. Program Binary Search


a. Teori

Binary search adalah sebuah algoritma pencarian dengan cara membagi data
menjadi dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai
tertentu dalam sebuah larik (array) linear. Sebuah pencarian biner mencari nilai
tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai
yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya
dengan cara yang sama. Pencarian Biner (Binary Search) dilakukan untuk
:memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang
dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang
sangat besar ukurannya.
 Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data
yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah
data yang sangat besar ukurannya.
 Beban komputasi juga lebih kecil karena pencarian dilakukan dari depan,
belakang, dan tengah.
 Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara
berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak
dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
 Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah
terurut.

Kekurangan binary search yaitu data harus disorting dahulu dan Algoritma lebih
rumit.
b. Flowchart
c. SourceCode

d. Screenshot
2. HashSet
a. Teori

Himpunan (set) adalah kumpulan Object yang mana tidak boleh ada dua
dari objek yang sama di dalam satu himpunan. Objek obj1 dan obj2 adalah objek
yang sama jika obj1.equals(obj2) menghasilkan nilai true (lihat bagian sebelumnya
untuk penjelasan tentang ini).

Set mengimplementasikan metode umum pada Collection dengan sedikit


modifikasi sehingga tidak memiliki objek yang sama di dalamnya. Selain sebagai
Set, objek bertipe TreeSet memiliki sifat di mana elemen-elemennya terurut dalam
urutan menaik. Iterator dari suatu TreeSet akan mengunjungi elemen dalam set
tersebut dalam urutan menaik. TreeSet tidak bisa menyimpan semua objek, karena
objek yang disimpan harus bisa diurutkan.

HashSet mengimplementasikan tabel hash yang akan kita bahas di bagian


berikutnya. Operasi penambahan, pencarian, dan penghapusan dilakukan dengan
sangat efisien pada tabel hash, bahkan lebih cepat lagi dari TreeSet. Elemen pada
HashSet tidak disimpan dalam urutan tertentu.
Iterator dari HashSet akan mengunjungi elemen-elemen pada HashSet dalam urutan
yang sepertinya acak dan mungkin berubah jika elemen baru ditambahkan.

Karena elemen pada HashSet tidak diurutkan, maka semua objek


(termasuk yang tidak mengimplementasikan interface Comparable) bisa
dimasukkan dalam HashSet. Kita bisa menggunakan HashSet jika elemen yang kita
akan masukkan tidak bisa dibandingkan, atau urutannya tidak penting, atau jika
kecepatan lebih dipentingkan.
b. Flowchart
c. SourceCode

d. Screenshoot

3. LinkList
a. Teori

Linked List adalah class library yang termasuk ke dalam Collection , di


dalam bahasa pemrograman Java ,yang mewarisi (extends) AbstractSequentialList
, dan juga mengimplementasi (implements) interface List dan Deque. Pada dasarnya
untuk tahap implementasinya LinkedList , digunakan untuk keperluan strukturisasi
data , sama seperti ArrayList. Namun ,perbedaanya terletak bagaimana cara
menyimpan dan memaintain suatu objek. Jika di ArrayList , lebih fokus ke dalam
aspek , menyimpan ,dan mengakses. Di LinkedList , lebih fokus ke dalam aspek ,
memanipulasi data, seperti misalnya membuat banyak insert dan delete."

a. Single Linked List


Adalah sebuah LL yang menggunakan sebuah variabel pointer saja untuk
menyimpan banyak data dengan metode LL, suatu daftar isi yang saling berhubungan.
Ilustrasi single LL:

Pada gambar di atas, data terletak pada sebuah lokasi dalam sebuah memory, tempat
yang disediakan memory untuk menyimpan data disebut node ? simpul, setiap node
memiliki pointer ( penunjuk ) yang menunjuk ke node berikutnya sehingga terbentuk suatu
untaian yang disebut single LL.
Bila dalam single LL pointer hanya dapat bergerak ke satu arah saja, maju / mundur, kanan
/ kiri, sehingga pencarian datanya juga hanya satu arah saja.

b. Double Linked List


Dalam double LL ( Linked List berpointer ganda ) dapat mengatasi kelemahan-
kelemahan single LL tersebut.
Ilustrasi double LL:

b. Flowchart
Mulai

String buah
buah = new LinkedList

buah.add = “Jeruk”
buah.add = “Jambu”
buah.add = “Apel”
buah.add = “Melon”
buah.add = “Semangka”
buah.add = “Nanas”
buah.add = “Sirsak”

buah.addFirst = “Salak”

buah.addLast = “Delima”

buah.set = 2 “Alpukat”

buah.set = 5 “kiwi”

buah.getFirst
buah.getLast
buah.get = 1
buah.get = 3

buah
buah.size

buah.removeFirst
buah.removeLast
buah.remove = 4

buah

Buah.size

Selesai
c. SourceCode
d. Screenshoot

4. Stack
a. Teori

Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data
yang lain. Dengan demikian stack adalah struktur data yang menggunakan konsep
LIFO. Dengan demikian, elemen terakhir yang disimpan dalam stack menjadi
elemen pertama yang diambil. Dalam proses komputasi, untuk meletakkan sebuah
elemen pada bagian atas dari stack, maka kita melakukan push. Dan untuk
memindahkan dari tempat yang atas tersebut, kita melakukan pop.
Pada saat ukuran stack, kalau kita teruskan menambah data lagi, akan terjadi
overflow. Dengan demikian perlu data tambahan untuk mencatat posisi ujung stack.
Dengan kebutuhan seperti ini, kita dapat menyajikan stack dengan menggunakan
tipe data struktur (struct) yang terdiri dari dua field. Field pertama bertipe array
untuk menyimpan elemen stack, medan kedua bertipe integer untuk mencatat posisi
ujung stack.
Sebagai ilustrasi, “Benda yang terakhir masuk ke dalam stack akan
menjadi yang pertama keluar dari stack. Hal ini asemacam kebalikan dari
postingan saya sebelumnya tentang queue
b. Flowchart
Main utama
c. SourceCode
d. Screenshot

Anda mungkin juga menyukai