Anda di halaman 1dari 23

1

BAB I
PENDAHULUAN

1. Latar Belakang
Dalam era komputerisasi telah banyak diciptakan berbagai alat yang memudahkan
pekerjaan manusia bahkan mampu menggantikan manusia. Salah satunya adalah ATM
(Automated Teller Machine) yang berguna untuk memudahkan nasabah bank dalam
bertransaksi, penarikan tabungan, dan berbagai keperluan perbankan lainnya.
Untuk mengoperasikan ATM diperlukan sebuah program komputasi computer yang
harus ditanamkan ke dalam hardwarenya. Pemrogram ini biasanya disusun menggunakan
bahasa pemrograman dasar C++.

2. Rumusan Masalah
1. Bagaimana sistem kerja ATM?
2. Apa implementasi dari pemrograman C++?
3. Bagaimana cara membuat fasilitas multi-user?

3. Batasan Masalah
Batasan masalah dalam proyek tengah semester ini adalah membuat simulasi sederhana
mengenai tampilan mesin ATM menggunakan fungsi-fungsi dasar bahasa pemrograman
C++.

4. Tujuan dan Manfaat


1. Memahami sistem kerja mesin ATM.
2. Mengimplementasikan pemrograman C++ pada kehidupan sehari-hari.
3. Memahami cara pembuatan dan kerja fasilitas mullti-user.

5. Metodologi
Dalam penyusunan simulasi sederhana ATM, penulis menggunakan metodologi
sebagai berikut:
1. Metode Observasi
Penulis melakukan studi lapangan untuk mengetahui tampilan dan cara kerja mesin
ATM.
2. Metode Literatur
Penulis mempelajari literatur-literatur yang dapat mendukung penyusunan simulasi
sederhana ATM.
3. Metode Konsultasi
Penulis melakukan konsultasi dengan berbagai pihak mengenai penyusunan
simulasi sederhana ATM yang baik.
2

6. Sistematika Penulisan
Penyusunan laporan proyek tengah semester ini terdiri dari :
1. BAB I Pendahuluan
Menerangkan latar belakang mengenai proyek tengah semester.
2. BAB II Landasan Teori
Pada bab ini akan dijelaskan mengenai ATM dan bahasa pemrograman yang
digunakan.
3. BAB III Perencanaan Sistem
Pada bab ini akan ditampilkan flowchart program.
4. BAB IV Implementasi dan Pembahasan
Menerangkan cara kerja program simulasi sederhana program ATM.
5. BAB V Kesimpulan dan Saran.
3

BAB II
LANDASAN TEORI

1. ATM
ATM (bahasa Indonesia: Anjungan Tunai Mandiri atau dalam bahasa Inggris:
Automated Teller Machine) adalah sebuah alat elektronik yang melayani nasabah bank
untuk mengambil uang dan mengecek rekening tabungan mereka tanpa perlu dilayani oleh
seorang "teller" manusia.
Dengan migrasi ke komoditas perangkat keras Personal Computer, sistem operasi
standar komersial "di luar cangkang", dan lingkungan pemrograman dapat digunakan di
dalam ATM. Platform Khas sebelumnya digunakan dalam pengembangan ATM termasuk
RMX atau OS/2.
Saat ini ini sebagian besar ATM di seluruh dunia menggunakan sistem operasi
Microsoft Windows, terutama Windows XP Professional atau Windows XP Embedded.
Sejumlah kecil penyebaran dapat masih menjalankan versi Windows OS seperti Windows
NT, Windows CE, atau Windows 2000.
Terdapat pula industri keamanan komputer yang berpandangan bahwa sistem operasi
desktop masyarakat umum memiliki resiko yang lebih besar sebagai sistem operasi untuk
mesin pengeluaran uang daripada jenis lain dari sistem operasi seperti (aman) Sistem
operasi waktu-nyata (RTOS). RISKS Digest memiliki banyak artikel tentang kerentanan
kas mesin sistem operasi.
Linux juga menemukan beberapa penerimaan di pasar ATM. Contoh dari hal ini adalah
Banrisul, bank terbesar di selatan dari Brasil, yang mengganti sistem operasi MS-DOS di
ATM nya dengan Linux. Banco do Brasil juga me-migrasikan ATM-nya ke Linux.
Dengan terjadinya sistem operasi Windows dan XFS di ATM, aplikasi perangkat lunak
yang memiliki kemampuan untuk menjadi lebih cerdas. Hal ini telah menciptakan generasi
baru ATM aplikasi yang umum disebut sebagai aplikasi diprogram. Jenis aplikasi ini
memungkinkan sebuah host yang sama sekali baru teraplikasi di mana terminal ATM dapat
melakukan lebih dari hanya sekedar berkomunikasi dengan switch ATM. Sekarang sedang
diberdayakan untuk terhubung ke server konten lain dan sistem video perbankan.
Perangkat lunak ATM terkemuka yang beroperasi pada platform XFS di antaranya
Triton PRISM, Diebold Agilis EmPower, NCR APTRA Edge, Absolute Systems
AbsoluteINTERACT, KAL Kalignite, Phoenix Interactive VISTAatm, dan Wincor
Nixdorf ProTopas.

2. Bahasa Pemrograman C++


C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang
merupakan perkembangan dari bahasa C dikembangkan di Bong Labs (Dennis Ritchie)
pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu B, Pada
awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada
sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute)
Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang
dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne
Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk
4

mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk
pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan konsep-konsep
baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading. Salah satu
perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep
pemrograman berorientasi objek.
5

BAB III
PERENCANAAN SISTEM

Pada penyempurnaan program kali ini. Diberikan pengembangan pada “Masukkan


PIN” menjadi fitur login dimana akan dilakukan pemasukan ID dan PIN untuk menentukan
user mana yang akan digunakan.
6

BAB IV
IMPLEMENTASI DAN PEMBAHASAN

1. Implementasi Program
Penyusunan program sederhana ini bermanfaat untuk membangun kepahaman siswa
terhadap sistem program pada mesin ATM sehingga mahasiswa mendapatkan kepahaman
lebih terhadap implementasi pemrograman menggunakan C++ dalam kehidupan sehari-
hari. Dan diharapkan mahasiswa mampu mengembangkan implementasi pemrograman
dalam kehidupan sehari-hari.
Selain itu dengan penyusunan program ini mahasiswa menjadi lebih terlatih dalam
melakukan analisis program dalam suatu perangkat elektronik dan kemudian menyusunnya
kembali dalam algoritma dan fungsi pribadi berdasarkan analisa yang telah dilakukan.

2. Pembahasan Program
Program simulasi ATM ini merupakan penyempurnaan dari program sebelumnya.
Penyempurnaan yang dilakukakn berupa pelengkapan fitur dan efisiensi kinerja
menggunaan fungsi-fungsi yang lebih bervariasi dari pemrograman C++.
Program pada perbaikan program simulasi mesin ATM ini, terdapat penambahan fitur
database multi-user dimana kita dimungkinkan masuk sebagai salah satu dari beberapa
akun yang memiliki informasi yang berbeda. Dengan adanya fasilitas ini maka kita dapat
melakukan penghidupan fitur transfer saldo secara lebih nyata. Selain terdapat fitur multi-
user, juga terdapat fasilitas Admin sebagai pemantau informasi dari setiap akun user.
Beberapa fungsi pemrograman C++ yang digunakan untuk menyempurnakannnya
adalah Looping, sebagai pencari atau pengurut data ketika akan dipanggil; Array, sebagai
media penyusunan dan pembuatan database multi-user; String, sebagai pembuatan
informasi user yang berupa tulisan atau susunan karakter; Struct, sebagai pengelompokan
informasi user kedalam satu kelompok data yang lebih tersruktur. Selain itu juga terdapat
pembuatan fungsi sendiri sebagai cara pembuatan struktur penjalanan fitur program.

3. Penyusunan Multi-user
Dalam penyusunan database Multi-user, digunakan penggabungan array dan stuct. Dan
untuk tipe datanya adalah string dan integer.
struct data {
char id[9];
char pin[7];
char nama[35];
int saldo;
};

struct data user[6] = {


{{"06091996"},{"960906"},{"RAKASIWI BANGUN HAMARSUDI"},19000000},
{{"15061997"},{"970615"},{"FAIZAH NUR FATIMAH"},25000000},
{{"18041997"},{"970418"},{"RADITYA HIDAYAT"},24000000},
{{"24011997"},{"970124"},{"ZANA RISKA GLACISIA"},21000000},
{{"25051997"},{"970525"},{"NUR SHOLIKHAH"},21000000},
{{"05091996"},{"960905"},{"LENY MADINATUL MUNAWAROH"},18000000}
};
7

Kemudian dalam pemanggilan data user digunakan cara looping guna membandingkan
input dengan data pada database dengan cara memeriksa data pada database secara urut.
Misalnya pada fungsi login:
printf("\n\n\n\n SILAHKAN MASUKKAN ID ANDA:\n\t\t");
gets_s(id);
for (i = 0; i < 6; i++) {
if (strcmp(id, user[i].id) == 0) {
printf("\n\n\n\n SILAHKAN MASUKKAN PIN ANDA:\n\t\t");
gets_s(pin);
if (strcmp(pin, user[i].pin) == 0) utama();
else printf("\nMaaf, Pin yang anda masukkan salah.");
} else {
printf("\nMaaf, ID yang anda masukkan tidak terdaftar \nmohon masukkan ID
anda dengan benar.");
printf("\nAtau hubungi Customer Service kami bila terjadi masalah.");}
}

Setelah proses looping terjadi dan menemukan data user yang sesuai dengan yang
diinputkan (proses login berhasil), maka nilai variable i akan tersimpan guna memangil
data dari user pada database. (variable ‘i’ berguna sebagai nomor data user)
8

BAB V
KESIMPULAN DAN SARAN

1. Kesimpulan
Dari pembuatan program simulasi ATM sederhana yang telah dilaksanakan, dapat
diambil kesimpulan :
1. Program pada mesin ATM dibuat menggunakan bahasa pemrograman C++.
2. Algoritma penyusun mesin ATM dapat dibuat menggunakan fungsi-fungsi
sederhana terutama statemen penentu keputusan.
3. Pembuatan fasilitas multi-user dapat memanfaatkan fungsi array dan struct.
4. Pembuatan fungsi sendiri sangat bermanfaat dalam melakukan pembuatan respon
dari input pada pemilihan menu.

2. Saran
Dalam pembuatan program simulasi ATM ini masih terdapat banyak kekurangan di
dalamnya. Pada kesempatan kali ini penyusun memberikan saran-saran sebagai berikut :
1. Gunakan pembuatan fungsi sendiri sebagai pengganti fungsi goto.
2. Gunakan pilihan bahasa dalam setiap penampilan fungsi program.
3. Lakukan penghematan memory dengan pemilihan tipe variable seperlunya.
9

DAFTAR PUSTAKA

https://id.wikipedia.org/wiki/C_(bahasa_pemrograman)
https://id.wikipedia.org/wiki/ATM
10

LAMPIRAN
1. Program
#include "stdafx.h"
#include "stdlib.h"
#include "windows.h"
#include "string.h"

struct data {
char id[9];
char pin[7];
char nama[35];
int saldo;
};

struct data user[6] = {


{{"06091996"},{"960906"},{"RAKASIWI BANGUN HAMARSUDI"},19000000},
{{"15061997"},{"970615"},{"FAIZAH NUR FATIMAH"},25000000},
{{"18041997"},{"970418"},{"RADITYA HIDAYAT"},24000000,},
{{"24011997"},{"970124"},{"ZANA RISKA GLACISIA"},21000000 },
{{"25051997"},{"970525"},{"NUR
SHOLIKHAH"},21000000},{{"05091996"},{"960905"},{"LENY MADINATUL
MUNAWAROH"},18000000}
};

void login();
void utama();
void tarik();
void ambil();
void transfer();
void pembayaran();
void ceksaldo();
void gantipin();
void payment();
void byr_payment();
void pay();
void byr_tel();
void hp();
void pln();
void cp1();
void cek_admin();

char bhs, menu, pin[9], pil, bayar, bpln, pilpay, bpayment, btel;
int vambil, cek, nid, bpay, pins, lpin, notel, i;

void main() {
system("cls");
printf("======================================================");
printf("\n\t SELAMAT DATANG");
printf("\n\t DI");
printf("\n\t BANK COLOR BAR");
printf("\n======================================================");
printf("\n\t\tSILAHKAN PILIH BAHASA\n\t\t---------------------
\n\t\tSELECT YOUR LANGUAGE");
printf("\n\n\n\t\t\t\t ENGLISH--->[1]\n\n\t\t\t\tINDONESIA---
>[2]\n\nPILIHAN ANDA : ");
bhs = getchar();
if (bhs == '1' || bhs == '2') login();
else {
system("cls");
11

printf("MAAF PILIHAN BAHASA TIDAK TERSEDIA.MOHON ULANGI PILIH


BAHASA");
printf("\n----------------------------------------------------
------");
printf("\nSORRY LANGUAGE IS UNAVAILABLE.PLEASE RECHOICE THE
LANGUGE."); Sleep(2000);
} main();

void login()
{
char id[9];
int cpin = 0;

system("cls");
getchar();
if (bhs == '1') {

printf("======================================================");
printf("\n\t WELCOME");
printf("\n\t IN");
printf("\n\t COLOR BAR BANK");

printf("\n======================================================");
printf("\n\n\n\n PLEASE ENTER YOUR ID NUMBER:\n\t\t");
}
else {

printf("======================================================");
printf("\n\t SELAMAT DATANG");
printf("\n\t DI");
printf("\n\t BANK COLOR BAR");

printf("\n======================================================");
printf("\n\n\n\n SILAHKAN MASUKKAN ID ANDA:\n\t\t");
};
gets_s(id);
for (i = 0; i < 6; i++) {
if (strcmp(id, user[i].id) == 0) {
if (strcmp(user[i].pin, "blokir")==0) {
if (bhs == '1') printf("Sorry, your account has
been blocked.\nPlease contact our Customer Service.");
else printf("Maaf, Akun anda telah
terblokir.\nSilahkan hubungi Customer Service kami.");
Sleep(3000); login();
}else{
for (cpin = 0; cpin < 3; cpin++) {
system("cls");
if (bhs == '1') {

printf("======================================================");
printf("\n\t
WELCOME");
printf("\n\t IN");
printf("\n\t COLOR BAR
BANK");

printf("\n======================================================");
printf("\n\n\n\n PLEASE ENTER
YOUR PIN:\n\t\t");}
else {
12

printf("======================================================");
printf("\n\t SELAMAT
DATANG");
printf("\n\t DI");
printf("\n\t BANK COLOR
BAR");

printf("\n======================================================");
printf("\n\n\n\n SILAHKAN
MASUKKAN PIN ANDA:\n\t\t"); }
gets_s(pin);
if (strcmp(pin, user[i].pin) == 0)
utama();
else {
if (bhs == '1') {printf("\nSorry,
Your entered PIN is wrong."); Sleep(2000); }
else { printf("\nMaaf, Pin yang
anda masukkan salah."); Sleep(2000); }
}
}
strcpy_s(user[i].pin, "blokir");
if (bhs == '1') {
printf("\n\nSorry, Your account has been
blocked.\nBecause a mistake entering your PIN three times.");
printf("\nPlease contact our Customer
Service.");
}
else {
printf("\n\nMaaf, Akun anda telah
terblokir.\nDikarenakan kesalahan memasukkan PIN tiga kali.");
printf("\nSilahkan hubungi Customer
Service kami.");
}
Sleep(2000); login();
}
}
}
if (bhs == '1') {
printf("\nSorry, ID you entered is not
registered.\nplease enter your ID correctly.");
printf("\nOr contact our customer service when problems
occur.");
}
else {
printf("\nMaaf, ID yang anda masukkan tidak terdaftar
\nmohon masukkan ID anda dengan benar.");
printf("\nAtau hubungi Customer Service kami bila
terjadi masalah.");
}
Sleep(2000); login();
}

void utama() {
char menu;
system("cls");
if (bhs == '1') {
printf("\t\tMAIN MENU\n\t(BANKNOTES RP.50.000)\n\t------------
------------");
printf("\nHALLO, %s\n",user[i].nama);
printf("\n[1]<---100.000\t\t 200.000---->[2]");
13

printf("\n[3]<---300.000\t\t 500.000---->[4]");
printf("\n[5]<---PAYMENT\\\t\t WITHDRAWAL->[6]\n\tPURCHASE\t
OTHER AMOUNT");
printf("\n[7]<---CHECK BALANCE\tCHANGE PIN--->[8]");
printf("\n[9]<---TRANSFER\n\nYOUR CHOICE : ");
}
else {
printf("\t\tMENU UTAMA\n\t(PECAHAN UANG RP.50.000)\n\t--------
----------------");
printf("\nHAI, %s\n", user[i].nama);
printf("\n[1]<---100.000\t\t\t200.000--->[2]");
printf("\n[3]<---300.000\t\t\t500.000--->[4]");
printf("\n[5]<---PEMBAYARAN\\\t\tPENARIKAN-
>[6]\n\tPEMBELIAN\t\tJUMLAH LAIN");
printf("\n[7]<---CEK SALDO\t GANTI PIN--->[8]");
printf("\n[9]<---TRANSFER\n\nPILIHAN ANDA : ");
}
menu = getchar();
switch (menu) {
case '1': vambil = 100000; tarik(); break;
case '2': vambil = 200000; tarik(); break;
case '3': vambil = 300000; tarik(); break;
case '4': vambil = 500000; tarik(); break;
case '5': pembayaran(); break;
case '6': ambil(); break;
case '7': ceksaldo(); break;
case '8': gantipin(); break;
case '9': transfer(); break;
case 'A': cek_admin(); break;
default: if (bhs == '1') { printf("\n\nYOUR CHOICE IS UNAVAILABLE.
PLEASE RECHOICE"); }
else { printf("\n\nPILIHAN MENU TIDAK TERSEDIA.
SILAHKAN ULANGI"); }
Sleep(1500); utama();
}
};

void transfer() {
char id[9];
int r, nominal;
system("cls");
if (bhs == '1') printf("Enter destination ID number : ");
else printf("Masukkan nomor ID tujuan : ");
gets_s(id);
for (r = 0; r < 6; r++) {
if (strcmp(id, user[r].id) == 0) {
if (bhs == '1') { printf("\nENTERED AMOUNT: Rp."); }
else { printf("\nMASUKKAN NOMINAL : Rp."); }
scanf_s("%d", &nominal); Sleep(1500);
if (user[i].saldo < nominal) {
if (bhs == '1') {
printf(" SORRY YOUR BALANCE IS
INSUFFICIENT\n YOUR BALANCE NOW IS Rp %d\n", user[i].saldo);
}
else {
printf(" MAAF SALDO ANDA TIDAK
MENCUKUPI.\n SALDO ANDA SAAT INI ADALAH Rp %d\n", user[i].saldo);
} Sleep(2000); transfer();
}
user[i].saldo = user[i].saldo - nominal;
user[r].saldo = user[r].saldo + nominal;
if (bhs == '1') {
14

printf("\nTRANSFER SUCCESS");
printf("\n\nENTER 'm' FOR BACK TO MAIN
MENU.\nENTER 'e' FOR EXIT.\n\nYOUR CHOICE : ");
}
else {
printf("\nTRANSFER TELAH BERHASIL");
printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : ");
} cp1();
}
}if (bhs == '1') printf("\nID you entered is not registered.");
else printf("\nID yang anda masukkan tidak terdaftar."); Sleep(2000);
transfer();
};

void ceksaldo() {
system("cls");
if (bhs == '1') {
printf("YOUR BALANCE NOW : Rp. %d", user[i].saldo);
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e' FOR
EXIT.\n\nYOUR CHOICE : ");
}
else {
printf("SALDO ANDA SAAT INI : Rp. %d", user[i].saldo);
printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : ");
} cp1();
};

void gantipin() {
system("cls");
if (bhs == '1') { printf("ENTER YOUR PIN : "); }
else {
printf("MASUKKAN PIN ANDA : ");
}
gets_s(pin);
if (strcmp(pin, user[i].pin) == 0) {
if (bhs == '1') {
printf("\nENTER NEW PIN : ");
}
else {
printf("\nMASUKKAN PIN BARU : ");
} gets_s(user[i].pin);
if (bhs == '1') {
printf("PIN CHANGED SUCCESS");
}
else { printf("\nPIN BERHASIL DIGANTI."); }
Sleep(2000);
if (bhs == '1') {
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e'
FOR EXIT.\n\nYOUR CHOICE : ");
}
else { printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : "); }
cp1();
}
else {
if (bhs == '1') { printf("\nYOUR PIN ENTERED IS WRONG. PLEASE
REENTERED"); }
else { printf("\nPIN YANG ANDA MASUKKAN SALAH. ULANGI
KEMBALI"); }
Sleep(2000); gantipin();
15

}
};

void ambil() {
system("cls");
if (bhs == '1') { printf("PLEASE ENTER NUMBER OF WITHDRAWAL\n\t IN
MULTIPLE RP. 50000\nMAXIMUM EACH WITHDRAWAL Rp1250000 : \n\t Rp."); }
else {
printf("SILAHKAN MASUKKAN JUMLAH PENARIKAN\n\tDALAM KELIPATAN
Rp50000\nMAKSIMUM SEKALI PENARIKAN Rp1250000 :\n\tRp.");
}
scanf_s("%d", &vambil); tarik();
};

void tarik() {
system("cls");
if (bhs == '1') { printf("YOUR REQUEST IS BEING PROCESSED"); }
else {
printf("PERMINTAAN ANDA AKAN SEGERA DIPROSES");
} Sleep(2000);
if (user[i].saldo < vambil) {
system("cls");
if (bhs == '1') {
printf(" SORRY YOUR BALANCE IS INSUFFICIENT\n YOUR
BALANCE NOW IS Rp %d\n", user[i].saldo);
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e'
FOR EXIT.\n\nYOUR CHOICE : ");
}
else {
printf(" MAAF SALDO ANDA TIDAK MENCUKUPI.\n SALDO
ANDA SAAT INI ADALAH Rp %d\n", user[i].saldo);
printf("MASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : ");
} cp1();
}
else {
user[i].saldo = user[i].saldo - vambil;
Sleep(1000); system("cls");
cek = vambil % 50000;
if (cek != 0 || vambil > 1250000) {
if (bhs == '1') { printf("SORRY, PLEASE ENTER IN
Rp50000 MULTIPLE\n\tAND MAXIMUM IS Rp1250000"); }
else {
printf("MAAF, MOHON MASUKKAN DALAM KELIPATAN
Rp50000\n\tDAN MAKSIMAL Rp1250000");
} Sleep(3000); ambil();
}
else {
if (bhs == '1') { printf("\tYOUR REQUEST IS
PROCESSED\n\n\tPLEASE TAKE YOUR MONEY"); }
else {
printf("\tPERMINTAAN TELAH
DIPROSES\n\n\tSILAHKAN AMBIL UANG ANDA");
}
} Sleep(2000);
if (bhs == '1') {
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e'
FOR EXIT.\n\nYOUR CHOICE : ");
}
else { printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : "); }
}
16

cp1();
};

void cp1() {
scanf_s("%c", &pil);
switch (pil) {
case 'm': utama(); break;
case 'e': system("cls");
if (bhs == '1') {
printf("THANK YOU FOR USING OUR SERVICE");
}
else { printf("TERIMA KASIH TELAH MENGGUNAKAN LAYANAN KAMI.");
} Sleep(3000); _exit(2000); break;
default: cp1();
}

getchar();
};

void pembayaran() {
system("cls");
if (bhs == '1') {
printf("\t PAYMENT / PURCHASE\n\t -------------------
\n");
printf("[1]<---ELECRICITY / PLN\n[2]<---TELEPHONE\n");
printf("[3]<---OPEN PAYMENT\n[4]<---TO MAIN MENU\n\nYOUR
CHOICE : ");
}
else {
printf("\t PEMBAYARAN / PEMBELIAN\n\t ----------------
-------\n");
printf("[1]<---LISTRIK / PLN\n[2]<---TELEPON / HP\n");
printf("[3]<---OPEN PAYMENT\n[4]<---KE MENU UTAMA\n\nPILIHAN
ANDA : ");
}
bayar = getchar();
switch (bayar) {
case '1': pln(); break;
case '2': hp(); break;
case '3': payment(); break;
case '4': utama(); break;
default: if (bhs == '1') {
printf("\n\nYOUR CHOICE UNAVAILABLE. PLEASE REENTERED.");
}
else { printf("\n\nPILIHAN MENU TIDAK TERSEDIA.
SILAHKAN ULANGI"); } Sleep(1500); pembayaran();
}
};

void pln() {
system("cls");
if (bhs == '1') {
system("cls");
printf("\tCUSTOMER'S INFORMATION\n\t--------------------");
printf("\n\nID CUSTOMER : %s", user[i].id);
printf("\nCUSTOMER'S NAME : %s", user[i].nama);
printf("\nBILL\t : Rp.150603");
printf("\n\n[y] PROCESS PAYMENT\n[n] CANCEL\n\nYOUR CHOICE :
");
}
else {
system("cls");
17

printf("\tINFORMASI PELANGGAN\n\t--------------------");
printf("\n\nID PELANGGAN : %s", user[i].id);
printf("\nNAMA PELANGGAN : %s",user[i].nama);
printf("\nTAGIHAN OUTS : Rp.150603");
printf("\n\n[y] LAKUKAN PEMBAYARAN\n[n] BATAL\n\nPILIHAN ANDA
: ");
}
bpln = getchar();
if (bpln == 'y') {
user[i].saldo = user[i].saldo - 150603; system("cls");
if (bhs == '1') {
printf("TRANSACTION SUCCESS");
}
else { printf("TRANSAKSI TELAH BERHASIL"); } Sleep(2000);
if (bhs == '1') {
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e'
FOR EXIT.\n\nYOUR CHOICE : ");
}
else { printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : "); } cp1();
}
else if (bpln == 'n') pembayaran();
else { if (bhs == '1') printf("\n\nYOUR CHOICE UNAVAILABLE. PLEASE
REENTERED.");
else printf("\n\nPILIHAN TIDAK TERSEDIA. SILAHKAN ULANGI.");
}pln();
}

void payment() {
system("cls");
printf("\tOPEN PAYMENT\n------------\n");
printf("[1]<---KOMPAS\n[2]<---INDOVISION\n[3]<---AXA MANDIRI\n[4]<---
BSI");
if (bhs == '1')printf("\n\nYOUR CHOICE : "); else printf("\n\nPILIHAN
ANDA :");
pilpay = getchar();
switch (pilpay) {
case '1': pay(); break;
case '2': pay(); break;
case '3': pay(); break;
case '4': pay(); break;
default:if (bhs == '1') { printf("YOUR CHOICE UNAVAILABLE"); }
else {
printf("PILIHAN TIDAK TERSEDIA");
} Sleep(2000); payment();
}
};

void pay() {
system("cls");
if (bhs == '1') {
printf("ENTER AMOUNT : Rp.");
scanf_s("%d", &bpay);
system("cls");
printf("\tCUSTOMER'S INFORMATION\n\t--------------------");
printf("\nREFERENCE NUMBER : %s", user[i].id);
printf("\nTOTAL : %d", bpay);
printf("\n\n[y] PROCCESS PAYMENT\n[n] CANCEL\n\nYOUR CHOICE :
");
}
else {
printf("MASUKKAN NOMINAL : Rp.");
18

scanf_s("%d", &bpay);
system("cls");
printf("\tINFORMASI PELANGGAN\n\t--------------------");
printf("\nNOMOR REFRENSI : %s", user[i].id);
printf("\nJUMLAH : %d", bpay);
printf("\n\n[y] LAKUKAN PEMBAYARAN\n[n] BATAL\n\nPILIHAN ANDA
: ");
}; byr_payment();
};

void byr_payment() {
bpayment = getchar();
if (bpayment == 'y') {
user[i].saldo = user[i].saldo - bpay; system("cls");
if (bhs == '1') { printf("TRANSACTION SUCCESS"); }
else { printf("TRANSAKSI TELAH BERHASIL"); } Sleep(2000);
if (bhs == '1') {
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e'
FOR EXIT.\n\nYOUR CHOICE : ");
}
else { printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : "); } cp1();
}
else if (bpayment == 'n') pembayaran();
else byr_payment();
};

void hp() {
char notel[15];
system("cls");
if (bhs == '1') {
printf("ENTER PHONE NUMBER : ");
gets_s(notel);
system("cls");
printf("\tPAYMENT CONFIRMATION\n\t------------------");
printf("\nPHONE NUMBER\t: %s", notel);
printf("\nCUSTOMER'S NAME\t: %s",user[i].nama);
printf("\nPERIODE\t\t: July 2015");
printf("\nTOTAL\t\t: Rp.350000");
printf("\n\n[y] PROCCESS PAYMENT\n[n] CANCEL\n\nYOUR CHOICE :
");
}
else {
printf("MASUKKAN NOMOR TELEPON : ");
gets_s(notel);
system("cls");
printf("\tKONFIRMASI PEMBAYARAN\n\t---------------");
printf("\nNOMOR TELEPON\t: %s", notel);
printf("\nNAMA PENGGUNA\t: %s", user[i].nama);
printf("\nPERIODE\t\t: Juli 2015");
printf("\nJUMLAH\t\t: Rp.350000");
printf("\n\n[y] LAKUKAN PEMBAYARAN\n[n] BATAL\n\nPILIHAN ANDA
: ");
} byr_tel();
};

void byr_tel() {
btel = getchar();
if (btel == 'y') {
user[i].saldo = user[i].saldo - 350000; system("cls");
if (bhs == '1') { printf("TRANSACTION SUCCESS"); }
else { printf("TRANSAKSI TELAH BERHASIL"); } Sleep(2000);
19

if (bhs == '1') {
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e'
FOR EXIT.\n\nYOUR CHOICE : ");
}
else { printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : "); } cp1();
}
else if (btel == 'n') pembayaran();
else byr_tel();
};

void cek_admin() {
int t, c, sld_bank=0;
system("cls");
for (t = 0; t < 6; t++) { sld_bank = sld_bank + user[t].saldo; };
printf("\n=======================================================");
printf("\n|ID | NAMA | SALDO |");
printf("\n=======================================================");
for (c = 0; c < 6; c++) {
printf("\n|%9s|%30s|Rp %9d|", user[c].id, user[c].nama,
user[c].saldo);
}
printf("\n=======================================================");
printf("\n\n TOTAL SALDO BANK : %d", sld_bank);
if (bhs == '1') {
printf("\n\nENTER 'm' FOR BACK TO MAIN MENU.\nENTER 'e' FOR
EXIT.\n\nYOUR CHOICE : ");
}
else {
printf("\n\nMASUKKAN 'm' UNTUK KEMBALI KE MENU
UTAMA.\nMASUKKAN 'e' UNTUK SELESAI.\n\nPILIHAN ANDA : ");
} cp1();
1. }

2. Hasil Program
20
21
22
23

Anda mungkin juga menyukai