You are on page 1of 17

LAPORAN FINAL PROJECT

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)

JURUSAN SISTEM KOMPUTER


FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS ISLAM BALITAR
2023
DAFTAR ISI

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

Latar belakang dari program pengeluaran bulanan adalah adanya kebutuhan


untuk mengelola pengeluaran bulanan secara efisien dan terstruktur. Dalam
kehidupan sehari-hari, seringkali kita memiliki banyak pengeluaran bulanan
seperti bayar listrik, air, telepon, internet, dan lainnya. Tanpa adanya
pengelolaan yang baik, kita seringkali kesulitan untuk memantau pengeluaran
dan mengatasi kelebihan atau kekurangan pengeluaran.

Oleh karena itu, dibuatlah program pengeluaran bulanan untuk membantu


mengelola dan memantau pengeluaran bulanan. Program ini memiliki fitur untuk
memasukkan data item pengeluaran dan jumlah pengeluaran, melakukan sorting
dan searching berdasarkan nama item, dan menampilkan total pengeluaran dan
daftar item pengeluaran yang telah disortir dan dicari.

Program pengeluaran bulanan ini dapat membantu masyarakat dalam mengatasi


masalah pengeluaran bulanan dan membuat perencanaan keuangan lebih
terstruktur dan efisien. Hal ini akan membantu masyarakat untuk mengelola
pengeluaran dengan lebih baik dan mengatasi masalah keuangan yang mungkin
timbul akibat pengeluaran yang tidak terkontrol.

B. Rumusan Masalah

1. Bagaimana cara mempermudah pengelolaan pengeluaran bulanan?


2. Bagaimana cara membantu membuat keputusan keuangan yang lebih baik?
3. Bagaimana cara mencegah overspending?
4. Bagaimana cara mempermudah pencarian pengeluaran tertentu?
5. Bagaimana cara mempermudah pembuatan laporan keuangan?

C. Tujuan

Tujuan dari program pengeluaran bulanan adalah untuk membantu pengguna


mengelola pengeluaran mereka dengan lebih efisien dan teratur. Dengan
menggunakan program ini, pengguna dapat memasukkan informasi tentang

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

1. Mempermudah pengelolaan pengeluaran: Dengan memasukkan informasi


tentang pengeluaran ke dalam program, pengguna dapat memantau
pengeluaran mereka dengan mudah dan mengelola mereka dengan lebih
efisien.
2. Membantu membuat keputusan keuangan yang lebih baik: Program ini
menyediakan informasi yang jelas dan teratur tentang pengeluaran
pengguna, sehingga membantu mereka membuat keputusan keuangan yang
lebih baik di masa depan.
3. Mencegah overspending: Program ini membantu pengguna untuk memantau
pengeluaran mereka dan memastikan bahwa mereka tidak mengeluarkan
lebih dari yang mereka miliki.
4. Mencari pengeluaran tertentu: Program ini memudahkan pengguna untuk
mencari pengeluaran tertentu berdasarkan kategori atau tanggal, sehingga
mempermudah mereka untuk menemukan informasi yang mereka butuhkan.
5. Mempermudah laporan keuangan: Program ini menyediakan informasi yang
terstruktur tentang pengeluaran pengguna, sehingga mempermudah mereka
untuk membuat laporan keuangan dan melakukan analisis.

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.

1. Array Dimensi Satu


Yaitu data-data akan disimpan dalam satu baris array, sehingga hanya
dibutuhkan satu pernomoran indeks.
Misalkan kita ingin membuat program untuk mencari nilai rata-rata dari 5
buah data nilai yang diinputkan oleh user.
2. Array Dimensi Dua
Array dua dimensi sering digambarkan sebagai sebuah matriks
Array berdimensi dua memberikan kita kesempatan untuk menyimpan data
baik dalam bentuk baris maupun dalam bentuk kolom. Oleh karena itu
dibutuhkan dua buah nilai indeks.
3. Array Dimensi Tiga
Beberapa array memiliki tiga dimensi, seperti nilai dalam tiga dimensi
ruang, seperti koordinat x, y, dan z dalam koordinat ruang.

B. Pengkondisian (Conditional Statement)

Pengkondisian adalah `instruksi` pada pemrogaman untuk menjalankan suatu


baris program sesuai dengan `kondisi tertentu`. Misal jika ada dua kondisi, A dan
B dan ada juga baris program A dan B. Jika kondisi A terpenuhi maka program
akan menjalankan baris program A, sedangkan baris program B tidak akan
dijalankan begitu pula sebaliknya.

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.

Struktur perulangan dalam bahasa C mempunyai bentuk yang


bermacammacam. Sebuah/kelompok instruksi diulang untuk jumlah
pengulangan tertentu. Baik yang terdifinisikan sebelumnya ataupun tidak.
Struktur pengulangan terdiri atas dua bagian :

1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk


melaksanakan pengulangan;
2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang
akan diulang.
a. Statement For
Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang
telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur
perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan
sederhana.

Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping


yang dilakukan oleh for telah diketahui batas awal, syarat looping dan
perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus
dieksekusi.
b. Statement While
Perulangan WHILE banyak digunakan pada program yang terstruktur.
Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui.
Proses perulangan akan terus berlanjut selama kondisinya bernilai benar (≠0)
dan akan berhenti bila kondisinya bernilai salah (=0).

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

 Buat daftar pengeluaran


 Buat anggaran untuk setiap pengeluaran
 Buat catatan pengeluaran
 Hitung sisa anggaran setelah pengeluaran
 Tampilkan sisa anggaran
 Sorting pengeluaran berdasarkan jumlah pengeluaran tertinggi
 Mencari pengeluaran tertinggi

9
B. Flowchart Start

Input dartar pengeluran

Input anggaran untuk


setiap pengeluaran

Input catatan pengeluaran

Hitung sisa anggaran setelah


pengeluaran

Tampilkan sisa anggaran

Sorting pengeluaran berdasarkan


jumlah pengeluaran tertinggi

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]

Output "Sisa anggaran: " + remainingBudget

sort expenses based on expense value in descending order

search for expense with highest value

Output "Pengeluaran tertinggi adalah " + expenses[index of highest expense]

End

11
BAB IV
PEMBAHASAN PROGRAM

Kami menggunakan beberapa tipe code seperti berikut ini:

 Perkondisian: untuk memvalidasi input yang dimasukkan oleh user, seperti


memastikan penginputan angka atau membatasi jumlah pengeluaran yang
dimasukkan.
 Perulangan: untuk mempermudah user dalam memasukkan beberapa
pengeluaran dalam satu bulan dan melakukan perhitungan secara berulang.
 Array: untuk menyimpan data pengeluaran bulanan yang dimasukkan oleh
user.
 Sorting: untuk mengurutkan data pengeluaran bulanan berdasarkan jumlah
pengeluaran dari yang terkecil hingga yang terbesar.
 Searching: untuk mencari data pengeluaran bulanan yang dicari oleh user.

Keseluruhan dari program tersebut adalah untuk membantu user dalam


mengelola pengeluaran bulanannya dan mempermudah user dalam melihat
jumlah pengeluaran secara detail dan tersortir serta mengetahui pengeluaran
bulanan tertinggi.

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.

Kami menggunakan perkondisian (if-else statement) untuk menentukan apakah


pengguna ingin memasukkan data pengeluaran baru atau tidak. Jika tidak,
program akan selesai dan menampilkan total pengeluaran. Jika iya, pengguna
dapat memasukkan data pengeluaran baru. Kami menggunakan perulangan (for
loop) untuk memasukkan data pengeluaran sebanyak jumlah pengeluaran yang
ditentukan oleh pengguna. Kami menggunakan array untuk menyimpan data

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.

Dengan memanfaatkan perkondisian, perulangan, array, sorting, dan searching,


program ini dapat membantu pengguna dalam memantau dan mengelola
pengeluaran mereka.

Program akan meminta user untuk memasukan jumlah pemasukan dan


pengeluaran. Dalam program kali ini, kami membuat beberapa kategori sortir yaitu :

1. Anggaran untuk belanja Makan.


2. Anggaran untuk Tagihan.
3. Anggaran untuk Transportasi.
4. Anggaran untuk Hiburan.
5. Anggaran Tak Terduga (Lain – lain.)

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

Kesimpulan dalam program yang menghitung pengeluaran bulanan adalah hasil


dari perhitungan yang telah dilakukan dengan menggunakan perkondisian,
perulangan, array, sorting, dan searching. Hasil perhitungan tersebut dapat
memberikan gambaran kepada pengguna tentang pengeluaran bulanannya dan
membantu dalam perencanaan keuangan yang lebih baik.

B. Saran

Saran dalam program tersebut adalah untuk menambahkan fitur-fitur tambahan


seperti input data secara berkala dan laporan bulanan, sehingga mempermudah
pengguna dalam melacak pengeluaran bulannya. Selain itu, juga dapat
ditambahkan fitur untuk mengatur pengeluaran dengan menetapkan batasan
pengeluaran bulanan, sehingga dapat membantu pengguna dalam memantau
dan mengatur pengeluaran secara lebih baik.

14
DAFTAR PUSTAKA

ARRAY. (2012). Retrieved 10 February 2023, from


http://rahman011.blogspot.com/2012/06/array.h

Pengkondisian : If Statements. (2021). Retrieved 10 February 2023, from


https://www.anbidev.com/c-if-statements/

Aditama, W. (2023). LAPORAN PRAKTIKUM V PERULANGAN (LOOPING).


Retrieved 10 February 2023, from https://www.academia.edu/17565047/LAPOR

Pengertian dan Contoh Program Sorting pada C++ - pintarkom. (2019).


Retrieved 10 February 2023, from https://pintarkom.com/sorting-pada-c-plus/

Syaviri, A. (2023). laporan 3 ASD searching. Retrieved 10 February 2023, from


https://www.academia.edu/6668489/laporan_

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

You might also like