Anda di halaman 1dari 20

TUGAS BESAR

PEMECAHAN MASALAH DENGAN


BAHASA C

Dibuat Oleh:
Anton Nugroho
13117017

Jurusan Teknologi Industri dan Produksi


Program Studi Teknik Elektro
Institut Teknologi Sumatera
KATA PENGANTAR

Puji syukur kepada Allah SWT karena beliau telah


memberikan nikmat serta karunianya, sehingga saya dapat
menyelesaikan tugas besar Pemecahan Masalah Dengan Bahasa
C ini. Adapun tujuan dari diberikannya tugas besar inni adalag
untuk memenuhi tugas dari mata kuliah Pemecahan Masalah
Dengan Bahasa C Semester 4 TA. 2019/2020 di Institut Teknologi
Sumatera. Untuk menyelesaikan tugas besar ini, saya dibantu
dengan bimbingan dari beberapa pihak sehingga pada akhirnya
saya dapat menyelesaikan tugas besar Pemecahan Masalah
Dengan Bahasa C ini. Oleh karena itu, sudah sepantasnya saya
mengucapkan terima kasih kepada :
1. Tuhan yang Maha Esa, yang telah memberikan rahmat dan
nikmatnya sehingga dapat melakukan praktikum dan
menyusun laporan dengan baik.
2. Orang tua tercinta dan keluarga yang telah banyak
memberikan doa dan dukungan kepada saya secara moril
maupun materil hingga tugas besar ini dapat selesai.
3. Bapak Harry Yuliansyah, S.T., M.T. selaku dosen mata kuliah
Pemecahan Masalah Dengan Bahasa C yang selalu
memberikan pengetahuan lebih mengenai materi mata kuliah
Pemecahan Masalah Dengan Bahasa C
4. Bapak Rudi Usmarwan, S.T., M.Eng. selaku dosen mata kuliah
Pemecahan Masalah Dengan Bahasa C yang selalu
memberikan pengetahuan lebih mengenai materi mata kuliah
Pemecahan Masalah Dengan Bahasa C
5. Bapak Heriansyah, S.T., M.T. selaku dosen mata kuliah
Pemecahan Masalah Dengan Bahasa C yang selalu
memberikan pengetahuan lebih mengenai materi mata kuliah
Pemecahan Masalah Dengan Bahasa C
6. Bayu Satrio Bagaskoro yang telah membantu melancarkan
tugas besar mata kuliah Pemecahan Masalah Dengan Bahasa
C dengan mengizinkan bekerja di rumahmya
7. Astrid Friskila Sahry yang telah membantu melancarkan tugas
besar mata kuliah Pemecahan Masalah Dengan Bahasa C
dengan menemani saya bertugas hingga tulisan ini dapat
saya selesaikan
8. M. Rian Holio yang telah membantu melancarkan tugas besar
mata kuliah Pemecahan Masalah Dengan Bahasa C dengan
mengizinkan bekerja di rumahmya
9. M. Arief Naufal yang telah membantu melancarkan tugas
besar mata kuliah Pemecahan Masalah Dengan Bahasa C
dengan membagikan wifi hotspot saat jaringan hp saya tidak
ada
10. Ikhbal Abdullah yang telah membantu melancarkan tugas
besar mata kuliah Pemecahan Masalah Dengan Bahasa C
dalam membantu saya menyusun laporan
11. Loksa Tobias Maratur Situmorang yang telah membantu
melancarkan tugas besar mata kuliah Pemecahan Masalah
Dengan Bahasa C dalam membantu saya menyusun laporan
12. I Putu Astika Cittacora Dhananjaya yang telah membantu
melancarkan tugas besar mata kuliah Pemecahan Masalah
Dengan Bahasa C dalam membantu saya menyusun laporan
13. Teman-teman saya yang telah ikut serta membantu dalam
pengerjaan tugas besar ini
Saya menyadari bahwa dalam penyusunan tugas besar ini
masih banyak kekurangan dan saya meminta maaf jika masih
terdapat banyak kesalahan.
Semoga tugas besar ini dapat bermanfaat bagi penulis dan
pembaca, agar kedepannya dapat lebih memahami dari mata
kuliah ini. Demikian saya ucapkan terima kasih.

Jakarta, 4 Juni
2019

Penulis
DAFTAR ISI
DAFTAR ISI..........................................................................................................................5
BAB I PENDAHULUAN.........................................................................................................6
1.1 Latar Belakang.....................................................................................................6
1.2 Rumusan Masalah...............................................................................................8
1.3 Maksud dan Tujuan.............................................................................................8
1.4 Batasan...............................................................................................................8
BAB II PEMBAHASAN..........................................................................................................9
2.1 Algoritma Flowchart...........................................................................................9
2.2 Kompleksitas Algoritma....................................................................................10
2.3 Perancangan GUI (Graphic User Interface)........................................................11
a. Header..............................................................................................................11
b. Deklarasi...........................................................................................................11
c. Inputan Barang.................................................................................................11
d. Kembalian.........................................................................................................12
e. Hutang..............................................................................................................12
f. Perulangan........................................................................................................13
2.4 Source Code dan Screenshot............................................................................13
BAB III KESIMPULAN.........................................................................................................17
3.1 Kesimpulan.......................................................................................................17
3.2 Saran.................................................................................................................17
DAFTAR PUSTAKA..............................................................................................................18
BAB I

PENDAHULUAN
1.1 Latar Belakang
Kasir adalah seseorang yang bisa mengoperasikan seperangkat komputer
yang di tujukan untuk menunjang sebuah transaksi penjualan. ada istilah kasir dan
ada juga istilah kassa keduanya mempunyai perbedaan dari pungsionalnya kalo
kasir itu adalah pengguna / user, sedangkan kassa adalah tempatnya.
Profesi kasir adalah seseorang yang pekerjaannya menerima uang
pembayaran saat pembelian produk barang atau jasa dan melakukan pengembalian
uang sisa pembayaran, sekaligus menyerahkan produk barang atau jasa kepada
pelanggan (customer) di loket-loket kasir di suatu toko, super market, mini
market, hotel, mall, restoran, rumah sakit, ataupun departement store. Selain itu,
tugas kasir juga melakukan penghitungan jumlah total penjualan per hari, per
minggu, ataupun per bulan serta mengenali barang yang paling laris terjual.
Dengan bantuan alat berupa mesin Cash Register (CR) standar, maka
jumlah konsumen yang berbelanja setiap harinya dapat diketahui. Oleh sebab itu,
seorang kasir harus dapat mengoperasikan dan merawat mesin CR dengan benar
untuk menunjang tugas-tugas pekerjaannya dalam menerima pembayaran atas
pembelian, pengembalian uang sisa, meneliti keaslian mata uang, dan mencatat
barang yang terjual.
Alat Cash Register dibuat dari sebuah bahasa pemrograman atau sering
diistilahkan juga dengan bahasa komputer yaitu adalah teknik komando/instruksi
untuk memerintahkan komputer. Dan untuk mendefinisikan program komputer ini
memungkinkan seorang programmer dapat menentukan secara persis data mana
yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan,
dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Terlepas dari hal tersebut, Ada banyak sekali Bahasa pemrograman dalam
kehidupan sehari-hari salah satunya adalah Bahasa C. Bahasa pemrograman
C adalah sebuah bahasa pemrograman komputer yang bisa digunakan untuk
membuat berbagai aplikasi (general-purpose programming language), mulai dari
sistem operasi (seperti Windows atau Linux), antivirus, software pengolah gambar
(image processing), hingga compiler untuk bahasa pemrograman, dimana C
banyak digunakan untuk membuat bahasa pemrograman lain yang salah satunya
adalah PHP.
Meskipun termasuk general-purpose programming language, yakni bahasa
pemrograman yang bisa membuat berbagai aplikasi, bahasa pemrograman C
paling cocok merancang aplikasi yang berhubungan langsung dengan Sistem
Operasi dan hardware. Ini tidak terlepas dari tujuan awal bahasa C dikembangkan.
1.2 Rumusan Masalah
Dalam penulisan makalah kali ini, penulis menyusun masalah yang akan
diangkat ke dalam bab pembahasan:
1. Bagaimana isi program C pada sebuah cash register berjalan?
2. Bagaimana alat Cash Register dapat mendata setiap daftar belanja?
3. Bagaimana struktur program pada cash register?
4. apa saja kondisi-kondisi yang terjadi pada saat program berjalan?

1.3 Maksud dan Tujuan


Terdapat beberapa maksud dan tujuan dalam adanya tugas besar ini
sebagai berikut:
1. Mengetahui alat Cash Register dapat berjalan
2. Mengetahui komponen Source Code pada sebuah alat Cash Register.
3. Mengetahui fungsi dan kegunaan dari Cash Register itu sendiri.

1.4 Batasan
Terdapat beberapa batasan pada penulisan kali ini terutama:
1. Mengenai proses Cash Register dalam mendata jumlah belanjaan dan
perhitungan pembayaran pada kasir
2. Program yang saya jalankan pada program Cash Register
Menggunakan Bahasa C
3. Proses hasil Executable pada program Cash Register Menggunakan
Compiler MinGW.
4. Alat Untuk membuat Source Code menggunakan program Code||Block
dan DevC++.
BAB II

PEMBAHASAN
2.1 Algoritma Flowchart

Gambar 2.1.1 Flowchart Cash Register


2.2 Kompleksitas Algoritma
Kompleksitas Algoritma pada sebuah source code tidak dapat dipastikan
secara tepat akibat dikarenakan setiap computer dengan arsitektur yang berbeda
sudah pasti memiliki bahasa mesin yang berbeda sehingga menjadikan waktu
setiap operasi antara satu computer satu dengan computer lainnya berbeda dan
compiler bahasa pemograman yang berbeda menghasilkan kode messin yang
berbeda sehingga waktu operasi pun juga sudah berbeda. Tetapi kalau dilihat dari
analisis source code dapat dilihat bahwa ada beberapa proses sehingga kita dapa
melihat berapa operasi sehingga dapat diketahui kompleksitas waktu.
Dalam Source Code alat Cash Register Terdapat 4 proses algoritma yaitu 2
buah proses berdasarkan jumlah operasi perkalian dan 1 operasi penjumlahan dan
pengurangan dengan ketentuan:
Operasi – operasi pada Source code Cash register:
- totalharga[customer] = jumlah[customer] * harga[customer]
- total = total + totalharga[customer]
- kembalian = pembayaran - total
- hutang = -1 * kembalian

Sehingga dapat ditentukan berapa kemungkinan kompleksitas waktu yang


didapat:
T(n) = 3n + 1
Dimana:
t1 = Operasi Penjumlahan:
- total = total + totalharga n kali
t2 = Operasi Perkalian
- totalharga = jumlah * harga n kali
- hutang = -1 * kembalian 1 kali
t3 = Operasi Pengurangan
- kembalian = pembayaran – total n kali
Sehingga:
T(n) = t1 + t2 + t3 = 3n + 1
2.3 Perancangan GUI (Graphic User Interface)
a. Header
Pada bagian header kami menggunakan library <stdio.h> dan
<string.h> sebagai input dan output dan berfungsi untuk
menampilkan

Print(f) Merupakan fungsi keluaran.


Scan(f) Merupakan fungsi masukan
Strcmp Digunakan Untuk Membandingkan dua buah String

b. Deklarasi
Digunakan untuk mendeklarasikan sebuah nilai integer atau
variable

int customer, barang, pembayaran, kembalian, hutang;


int harga[100], jumlah[100], total=0, totalharga[100];
char nama[100][100], ulang[100];

c. Inputan Barang
Digunakan untuk menginputkan jumlah barang, nama barang harga
barang, total barang dan, total harga.

printf("\t\t Jumlah barang\t\t: ");


scanf("%i",&barang);
for(customer=1; customer<=barang; customer++)
{
printf("\t\t Nama barang ke-%i\t: ",customer);
scanf("%s", &nama[customer]);
printf("\t\t Harga per barang\t: Rp. ");
scanf("%i",&harga[customer]);
printf("\t\t Jumlah barang\t\t: ");
scanf("%i", &jumlah[customer]);
printf("\n");
}
d. Kembalian
Berfungsi sebagai pernyataan bahwa sudah membayar dan jika ada
kembalian maka source code akan memberitahu bahwa ada uang yang
tersisa dari hasil berbelanja.
printf("\t\t Total harga \t\t: Rp. %i\n", total);
printf("\t\t Pembayaran\t\t: Rp. ");
scanf("%i", &pembayaran);
kembalian=pembayaran-total;
printf("\t\t=========================================\n");
for(customer=1; customer<=barang; customer++)
{
printf("\t\t %i. %i buah %s (@ Rp. %i)\t: Rp. %i\n", customer, jumlah[customer],
nama[customer], harga[customer], totalharga[customer]);
}
if(pembayaran>=total)
{
printf("\t\t Total harga\t\t: Rp. %i\n", total);
printf("\t\t Pembayaran\t\t: Rp. %i\n", pembayaran);
printf("\t\t Kembalian\t\t: Rp. %i\n", kembalian);
}

e. Hutang
Jika dalam proses pembayaran kurang dari harga total maka ada
tagihan yang belum terbayarkan
Else
{
hutang=-1*kembalian;
printf("\t\tTotal harga\t: Rp. %i\n", total);
printf("\t\tPembayaran\t: Rp. %i\n", pembayaran);
printf("\t\tJumlah Pembayaran Yang Belum Lunas\t: Rp. %i\n", hutang);
}
f. Perulangan
Kondisi ini untuk menambahkan barang yang belum terdaftar atau
mengulangi program berjalan diawal kembali
printf("\nApakah Masih Ada Pelanggan Yang Mengantri? (y/t): ");
scanf("%s", &ulang);
if(strcmp(ulang,"y")==0||strcmp(ulang,"Y")==0)
{
goto awal;
}
else if(strcmp(ulang,"t")==0||strcmp(ulang,"T")==0)
{
printf("\t\t\t Program ini akan ditutup...\n");
}
else
{
printf("\t\t\t Masukkan pilihan yang benar...\n");
goto pilih; }
2.4 Source Code dan Screenshot
#include <stdio.h>
#include <string.h>
#include <math.h>

int customer, barang, pembayaran, kembalian, hutang;


int harga[100], jumlah[100], total=0, totalharga[100];
char nama[100][100], ulang[5];
int main ()
{
printf("\t\t TUGAS BESAR PMC \n");
printf("\t\t ANTON NUGROHO \n");
printf("\t\t NIM 13117017 \n");
printf("\t\t PROGRAM KASIR MARTINDOALFA \n");
printf("\n");

awal:
printf("\t\t Jumlah barang\t\t: ");
scanf("%i",&barang);
for(customer=1; customer<=barang; customer++)
{
printf("\t\t Nama barang ke-%i\t: ",customer);
scanf("%s", &nama[customer]);
printf("\t\t Harga per barang\t: Rp. ");
scanf("%i",&harga[customer]);
printf("\t\t Jumlah barang\t\t: ");
scanf("%i", &jumlah[customer]);
printf("\n");
}
for(customer=1; customer<=barang; customer++)
{
totalharga[customer]=jumlah[customer]*harga[customer];
total=total+totalharga[customer];
}
printf("\t\t Total harga \t\t: Rp. %i\n", total);
printf("\t\t Pembayaran\t\t: Rp. ");
scanf("%i", &pembayaran);
kembalian=pembayaran-total;
printf("\t\t=========================================\n");
for(customer=1; customer<=barang; customer++)
{
printf("\t\t %i. %i buah %s (@ Rp. %i)\t: Rp. %i\n", customer,
jumlah[customer], nama[customer], harga[customer],
totalharga[customer]);
}
if(pembayaran>=total)
{
printf("\t\t Total harga\t\t: Rp. %i\n", total);
printf("\t\t Pembayaran\t\t: Rp. %i\n", pembayaran);
printf("\t\t Kembalian\t\t: Rp. %i\n", kembalian);
}
else
{
hutang=-1*kembalian;
printf("\t\tTotal harga\t: Rp. %i\n", total);
printf("\t\tPembayaran\t: Rp. %i\n", pembayaran);
printf("\t\tJumlah Pembayaran Yang Belum Lunas\t: Rp. %i\n",
hutang);
}
pilih:
printf("\nApakah Masih Ada Pelanggan Yang Mengantri? (y/t): ");
scanf("%s", &ulang);
if(strcmp(ulang,"y")==0||strcmp(ulang,"Y")==0)
{
goto awal;
}
else if(strcmp(ulang,"t")==0||strcmp(ulang,"T")==0)
{
printf("\t\t\t Program ini akan ditutup...\n");
}
else
{
printf("\t\t\t Masukkan pilihan yang benar...\n");
goto pilih; }
return 0;
}

Gambar 2.4.1. Tampilan Awal


Gambar 2.4.2. Input detail barang

Gambar 2.4.3 Masukkan nilai pembayaran

Gambar 2.4.4 Struk Perbelanjaan


Gambar 2.4.5 Kondisi Perulangan

Gambar 2.4.6 Kondisi Pembayaran belum cukup

BAB III

KESIMPULAN
3.1 Kesimpulan
Dengan dibentuk program cash register, sekarang ini banyak sekali
pekerjaan kasir yang dapat terbantu dikarenakan lebih efisien dan dapat
melakukan pendaftaran setiap pebelanjaan dengan mudah dan dalam
mampu menyimpan data dalam jumlah banyak dan dengan cash
register dapat menentukan data-data yang akan dioperasikan seperti
saat mendaftarkan jumlah barang, nama barang, hingga
mengoperasikan pembayaran dan pemasukkan keuangan setiap
customer yang berbelanja.
Tetapi, kembali lagi pada kenyataan bahwa setiap program
mempunyai struktur dan bahasa pemograman yang berbeda
dikarenakan setiap komputer atau compiler yang digunakan berbeda
sehingga bahasa mesin sehingga menyebabkan waktu operasi yang
berbeda pula tetapi tak menutup kemungkinan bahwa setiap design
yang berbeda akan menghasilkan struktur yang sama dalam bentuk
source yang berbeda

3.2 Saran
Dalam Pengerjaan Source Code Sebaiknya diperhatikan juga setiap
kondisi dikarenakan kesalahan input dapat mengakibatkan kesalahan
logika atau runtime dan dari source code diatas dapat divariasikan
kembali agar dapat digunakan sesuai kebutuhan

DAFTAR PUSTAKA

Berliana, P. (2017, November 8). Program Penghitung Transaksi Kasir. Retrieved from
http://www.filmmaking.ga: http://www.filmmaking.ga/2016/11/program-kasir-
sederhana-menggunakan.html

Bintang, L. E. (2014, Juni 10). MAKALAH RESPON SOSIAL "PROFESI KASIR ". Retrieved
from https://www.academia.edu:
https://www.academia.edu/9664443/MAKALAH_RESPON_SOSIAL_PROFESI_KAS
IR_
Firmansyah, I. (2019, Mei 17). Kompleksitas Algoritma. Retrieved from
https://www.academia.edu:
https://www.academia.edu/28994996/Kompleksitas_Algoritma

Anda mungkin juga menyukai