Professional Documents
Culture Documents
Final Project Alpro 2023 (p2k)
Final Project Alpro 2023 (p2k)
ALGORITMA PEMOGRAMAN
KELOMPOK 2
PROGRAM PENGELUARAN BULANAN
ANGGOTA KELOMPOK
MOHAMAD RONALD SUBAGTI (22104420018)
WILDAN DWI JATMIKO (22104420016)
STEPHANUS RICKY ATTILA (22104420004)
EDWIN RIZKI PUTRA (22104420022)
DAFTAR ISI................................................................................................................1
BAB I PENDAHULUAN.............................................................................................1
A. Latar Belakang.................................................................................................1
B. Rumusan Masalah...........................................................................................2
C. Tujuan.............................................................................................................. 2
D. Manfaat.............................................................................................................2
BAB II DASAR TEORI...............................................................................................4
A. Array.................................................................................................................4
B. Pengkondisian (Conditional Statement).......................................................4
C. Perulangan (Loop)...........................................................................................5
D. Sorting..............................................................................................................6
E. Searching.........................................................................................................7
BAB III PERANCANGAN SISTEM............................................................................9
A. Algoritma..........................................................................................................9
B. Flowchart....................................................................................................... 10
C. PseudeCode...................................................................................................11
BAB IV PEMBAHASAN PROGRAM.......................................................................12
BAB V KESIMPULAN & SARAN.............................................................................14
A. Kesimpulan....................................................................................................14
B. Saran.............................................................................................................. 14
DAFTAR PUSTAKA.................................................................................................15
LAMPIRAN............................................................................................................... 16
1
BAB I
PENDAHULUAN
A. Latar Belakang
B. Rumusan Masalah
C. Tujuan
2
pengeluaran mereka dan program akan menyortir, mengelompokkan, dan
menampilkan informasi tersebut dengan cara yang mudah dipahami. Ini
membantu pengguna untuk memantau pengeluaran mereka dan membuat
keputusan keuangan yang lebih baik di masa depan. Program ini juga dapat
mencari pengeluaran tertentu berdasarkan kategori atau tanggal, sehingga
memudahkan pengguna untuk menemukan informasi yang mereka butuhkan.
D. Manfaat
3
BAB II
DASAR TEORI
A. Array
Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan
tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu
array disebut dengan elemen-elemen array. Letak urutan dari elemen-elemen
array ditunjukkan oleh suatu subscript atau indeks. Pada saat pendeklarasian
array, kompiler mengalokasikan memori yang cukup untuk menampung semua
elemen sesuai dengan yang dideklarasikan. Adapun array dibedakan menjadi
tiga macam, yaitu array berdimensi satu, array berdimensi dua, dan array
berdimensi banyak.
Dalam kehidupan sehari-hari sering kita jumpai keadaan atau kondisi seperti ini.
Misal “jika saya terlambat melakukan absensi, maka gaji saya akan dipotong,
4
jika saya tidak terlambat maka gaji saya tidak akan dipotong”. Anbi akan bahas
penggunaan if statement pada bahasa pemrogaman C.
C. Perulangan (Loop)
Dalam bahasa C++ tersedia suatu fasilitas yang digunakan untuk melakukan
proses yang berulang-ulang sebanyak keinginan kita. Misalnya saja, bila kita
ingin menginput dan mencetak bilangan dari 1 sampai 100 bahkan 1000,
tentunya kita akan merasa kesulitan. Namun dengan struktur perulangan proses,
kita tidak perlu menuliskan perintah sampai 100 atau 1000 kali, cukup dengan
beberapa perintah saja.
5
c. Statement Do-While
Perbedaan dengan WHILE sebelumnya yaitu bahwa pada DO WHILE
statement perulangannya dilakukan terlebih dahulu baru kemudian di cek
kondisinya. Sedangkan WHILE kondisi dicek dulu baru kemudia statement
perulangannya dijalankan. Akibat dari hal ini adalah dalam DO WHILE
minimal terdapat 1x perulangan. Sedangkan WHILE dimungkinkan
perulangan tidak pernah terjadi yaitu ketika kondisinya langsung bernilai
FALSE.
D. Sorting
Pengurutan data dalam struktur data sangat penting terutama untuk data yang
beritipe data numerik ataupun karakter. Pengurutan dapat dilakukan secara
ascending (urut naik) dan descending (urut turun). Pengurutan (Sorting) adalah
proses pengurutan data yang sebelumnya disusun secara acak sehingga
tersusun secara teratur menurut aturan tertentu.
1. Bubble Sort
Merupakan metode sorting termudah, diberi nama “Bubble” karena proses
pengurutan secara berangsur- angsur bergerak/berpindah ke posisinya yang
tepat, seperti gelembung yang keluar dari sebuah gelas bersoda. Bubble Sort
mengurutkan data dengan cara membandingkan elemen sekarang
dengan elemen berikutnya. Jika elemen sekarang lebih besar dari elemen
berikutnya maka kedua elemen tersebut ditukar, jika pengurutan ascending.
Jika elemens ekarang lebih kecil dari elemen berikutnya, maka kedua elemen
tersebut ditukar, jika pengurutan descending. Algoritma ini seolah-olah
menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan,
tergantungj enis pengurutannya. Ketika satu proses telah selesai, maka
bubble sort akan mengulangi proses, demikian seterusnya. Kapan
berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak
ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah
diinginkan.
6
2. Exchange Sort
Sangat mirip dengan Bubble Sort, dan banyak yang mengatakan Bubble Sort
sama dengan Exchange Sort. Pebedaan ada dalam hal bagaimana
membandingkan antar elemen-elemennya. Exchange sort membandingkan
suatu elemen dengan elemen-elemen lainnya dalam array tersebut,
dan melakukan pertukaran elemen jika perlu. Jadi ada elemen yang selalu
menjad ielemen pusat (pivot). Sedangkan Bubble sort akan membandingkan
elemen pertama/terakhir dengan elemen sebelumnya/sesudahnya, kemudian
elemen sebelum/sesudahnya itu akan menjadi pusat(pivot) untuk
dibandingkan dengan elemen sebelumnya/sesudahnya lagi, begitu
seterusnya.
3. Selection Sort
Merupakan kombinasi antara sorting dan searching. Untuk setiap proses,
akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil
atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array.
Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan
data
ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan
dicari data ke dua terkecil, dan akan ditempatkan di indeks kedua (data[1]).
Selama proses, pembandingan dan pengubahan hanya dilakukan pada
indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir
proses.
4. Insertion Sort
Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu
diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan
dimulai dari dat ke-2 sampai dengan data terakhir, jika ditemukan data yang
lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada
penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang
E. Searching
7
Secara umum search dapat diartikan mencari data dengan cara menelusuri
tempat penyimpanan data tersebut. Tempat penyimpanan data dalam memory
dapat berupa array atau dapat juga dalam bentuk Linked List.
Pencarian dapat dilakukan terhadap data yang secara keseluruhan berada
dalam
memory komputer ataupun terhadap data yang berada dalam penyimpanan
eksternal (hard disk).
Sequential Search
Teknik pencarian data dari array yang paling mudah adalah dengan cara
sequential search, dimana data dalam array dibaca 1 demi satu, diurutkan
dari index terkecil ke index terbesar, maupun sebaliknya.
Binary Search
Metode pencarian yang kedua adalah binary search, pada metode pencarian
ini, data harus diurutkan terlebih dahulu. Pada metode pencarian ini, data
dibagi menjadi dua bagian (secara logika), untuk setiap tahap pencarian.
Fibonacci Search
Fibonacci Search adalah pencarian sebuah elemen dalam array satu dimensi
dengan menggunakan angka fibonacci sebagai titik-titik (indeks) elemen array
yang isinya dibandingkan dengan nilai yang dicari.Sama halnya dengan
Binary Search, Fibonacci Search juga mengharuskan data yang sudah terurut
baik menaik (ascending) maupun menurun (descending).
Interpolation Search
Interpolation Search adalah pencarian sebuah elemen dalam array satu
dimensi dengan metode interpolasi atau perkiraan secara interpolasi, dimana
data harus diurutkan terlebih dahulu.
8
BAB III
PERANCANGAN SISTEM
A. Algoritma
9
B. Flowchart Start
Mencari pengeluaran
tertinggi
End
10
C. PseudeCode
Start
define expenses[NUM_EXPENSES] = {"Belanja Makan", "Tagihan",
"Transportasi", "Hiburan", "Lain-lain"}
define budget[NUM_EXPENSES]
define expense[NUM_EXPENSES]
define remainingBudget = 0
for i = 0 to NUM_EXPENSES
Input "Masukkan anggaran untuk " + expenses[i]
set budget[i] = Input value
for i = 0 to NUM_EXPENSES
Input "Masukkan jumlah pengeluaran untuk " + expenses[i]
set expense[i] = Input value
for i = 0 to NUM_EXPENSES
set remainingBudget = remainingBudget + budget[i] - expense[i]
End
11
BAB IV
PEMBAHASAN PROGRAM
Dengan menggunakan beberapa tipe code diatas, kami bisa membuat program
“Menghitung Pengeluaran Bulanan” tersebut.
Input: Dalam program ini, kita meminta pengguna untuk memasukkan jumlah
pengeluaran dalam satu bulan dan memasukkan data pengeluaran tersebut.
12
pengeluaran yang dimasukkan oleh pengguna. Kami menggunakan sorting
(selection sort) untuk mengurutkan data pengeluaran dari terkecil ke terbesar. Ini
berguna untuk mempermudah pengguna dalam memahami pengeluaran mereka.
Kami menggunakan searching (linear search) untuk mencari data pengeluaran
tertentu. Ini berguna untuk mempermudah pengguna dalam menemukan
pengeluaran tertentu. Program akan menampilkan total pengeluaran dan data
pengeluaran yang telah diurutkan dan dapat dicari.
Setelah itu program akan menghitung jumlah sisa anggaran selama sebulan, apakah
minus atau plus. Kemudian program akan menampilkan anggaran mana yang
menjadi pengeluaran terbesar user selama sebulan. Ini berguna untuk membantu
user memantau dan mengontrol pengeluarannya.
13
BAB V
KESIMPULAN & SARAN
A. Kesimpulan
B. Saran
14
DAFTAR PUSTAKA
15
LAMPIRAN
Biodata Kelompok
NIM : 22104420018
NAMA LENKAP : MOHAMAD RONALD SUBAGTI
TTL : BLITAR, 15 MEI 2003
ALAMAT : Desa.Jimbe, Kec.Kademangan,
Kab.Blitar
HOBBY : Bermusik
NIM : 22104420016
NAMA LENKAP : WILDAN DWI JATMIKO
TTL : BLITAR, 11 OKTOBER 2003
ALAMAT : Desa.Plosorejo, Kec.Kademangan,
Kab.Blitar
HOBBY : Bermain Bola
NIM : 22104420004
NAMA LENKAP : STEPHANUS RICKY ATTILA
TTL : BLITAR,
ALAMAT : Desa.Ngeni, Kec.Wonotirto, Kab.Blitar
HOBBY : Gamer
NIM : 22104420022
NAMA LENKAP : EDWIN RIZKI PUTRA
TTL : BLITAR, 15 JUNI 2004
ALAMAT : Desa.Ngeni, Kec.Wonotirto, Kab.Blitar
HOBBY : Futsal
16