LABORATORIUM JARINGAN & KOMPUTER (2023) BAB VIII TUGAS AKHIR 8.1 Studi Kasus Dewasa ini, zaman yang terus berkembang membuat kegiatan masyarakat semakin dinamis. Ditambah dengan cuaca yang tidak menentu dan pesatnya perkembangan teknologi, tidak dapat disangkal bahwa kebutuhan masyarakat terus bertambah. Meningkatnya kebutuhan (needs) ini berefek pada meningkatnya permintaan akan produk terkait karena produk merupakan sesuatu yang dapat memenuhi kebutuhan. Salah satu produk yang dibutuhkan semua orang adalah produk makanan dan minuman yang mudah diperoleh dan dikonsumsi. Titik penjualan produk makanan dan minuman yang mulai mengalami perkembangan signifikan dalam beberapa dekade terakhir adalah Vending Machine, atau mesin retail/jual otomatis. Dalam pembuatan Vending Machine ini, kami memanfaatkan teknologi dibidang pemrograman yang menggunakan bahasa C. Konsumen yang ingin memilih dan membeli produk makanan dan minuman yang kemudian produk yang diinginkan akan keluar melalui Vending Machine dapat melakukan pembayaran melalui 2 metode yaitu pertama menggunakan Qris yang berupa sebuah Barcode sehingga konsumen dapat melakukan pembayaran secara cashless dimana langsung sesuai dengan nominal yang tertera dan tidak perlu ada nya kembalian dan yang kedua menggunakan Cash jika konsumen mengalami gangguan jaringan/masalah dalam pembayaran dengan Qris, dan akaada nya kembalian jika konsumen memberikan Cash yang lebih dari nominal. Dibuatnya program ini diharapkan agar: 1. Mempermudah konsumen dalam memilih dan membeli produk makanan dan minuman yang diinginkan 2. Efisiensi waktu, karena ketepatan dan kecepatan alat ini dalam memproses pembelian khususnya dalam pembayaran yang menggunakan 2 metode 3. 8.2 Sintaks Program //TUGAS AKHIR KELOMPOK 1 /* NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) DIAN NOVRIANTO(2307111844) HERBETH ANJUALANA(2307135294) JULIO SONTRI DEO VANI LUMBAN G.(2307112926) MIRA WULANDARI(2307113365) MUHAMMAD FARHAN FAYADH(2307127038) MUHAMMAD YUDHA AKBAR(2307111843) TAMARA MAHARANI LESILOLO(2307135302) */ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> void garis(); int main () { int j, k, jumlah, pilihan, total, tambahBarang, hargaBarang, bayar, kembali, statusTambah; char CocaCola, PucukHarum, Frestea, pemilihan_1, pemilihan_2; srand(time(NULL)); //Judul Program Menggunakan Array Multidimensi// awal: system("color 0A"); static int VENDINGMACHINE [14][52]= { NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0, 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,0, 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,1,0,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,1,0,0,1,1,1,0, 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0, 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,1,0,1,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,1,1,1,0, 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0, 0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, }; for(j=0;j<14;j++) { for(k=0;k<52;k++){ if (VENDINGMACHINE[j][k]){ putchar('\xDB'); }else{ putchar(' '); NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) } } puts(""); } puts(""); garis(); printf("\t AR Vending Machine\n"); garis(); printf("| 1| Coca-Cola |Rp 7.000\n"); printf("| 2| Pucuk Harum |Rp 5.000\n"); printf("| 3| Frestea |Rp 8.000\n"); printf("| 4| Qtela |Rp 9.000\n"); printf("| 5| Chitato |Rp 6.000\n"); printf("| 6| Potabee |Rp 8.000\n"); garis(); printf("\n\nApakah Anda ingin menggunakan vending machine? Y/N : "); pemilihan_1 = getche(); if(toupper(pemilihan_1)=='Y') { printf("\n\n1. Coca-Cola\n"); printf("2. Pucuk harum\n"); printf("3. Frestea\n"); printf("4. Qtela\n"); printf("5. Chitato\n"); printf("6. Potabee\n"); NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) pilihan = pilihMenu(); /*variabel pilihan akan bernilai berdasarkan input user dari 1 sampai 3. apabila tidak sesuai, maka akan meminta input kembali*/ printf("Jumlah Barang : "); scanf("%d", &jumlah); hargaBarang = daftarHarga(pilihan); total += hargaBarang * jumlah; //Looping penambahan barang tambahBarang = 3; statusTambah = 1; while(tambahBarang > 0 && statusTambah){ int pilihanTambahan, jumlahTambahan; printf("\nAnda dapat menambah Pembelian sebanyak %dx", tambahBarang); printf("\nApakah Anda ingin menambah Pembelian? Y/N : "); pemilihan_2 = getche(); if(toupper(pemilihan_2)=='Y'){ printf("\n"); pilihanTambahan = pilihMenu(); printf("Jumlah Barang : "); scanf("%d", &jumlahTambahan); hargaBarang = daftarHarga(pilihanTambahan); total += hargaBarang * jumlahTambahan; NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) tambahBarang--; }else{ statusTambah = 0; } } //Total Keseluruhan printf("\n\nTotal : %d\n", total); printf("1. Cash\n"); printf("2. QRIS\n"); printf("Pilih Metode Pembayaran : "); int pilihPembayaran; scanf("%d", &pilihPembayaran); if(pilihPembayaran == 1){ //Fungsi pembayaran Cash void pembayaranCash(); pembayaranCash: printf("Masukkan Nominal Uang sesuai total harga : "); scanf("%d", &bayar); if(bayar < total){ printf("\n tolong bayar sesuai/melebihi total\n"); goto pembayaranCash; }else{ if(bayar > total){ kembali = bayar - total; NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) printf("Kembalian Anda : %d\n", kembali); } printf("\nTerima kasih atas kunjungannya\n"); } }else{ int i, h, x, y; int qrcode [15][30]; for(i = 0;i<15;i++){ for(h=0;h<30;h++){ qrcode[i][h] = rand() % 2; } } printf("\nMembuat QR Code....\n"); for(x = 0;x<15;x++){ for(y=0;y<30;y++){ if (qrcode[x][y]){ putchar('\xDB'); }else{ putchar(' '); } } puts(""); } puts(""); printf("Tekan ENTER"); NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) getche(); printf("Verifikasi Data dan Keamanan...(Harap Tunggu)\n"); Sleep(3000); printf("Dalam Proses Pembayaran...(Harap Tunggu)\n"); Sleep(2000); printf("\nPEMBAYARAN BERHASIL\n"); printf("Terima kasih atas kunjungannya\n"); } } else{ exit(0); } return 0; } void garis() { int i; for(i=0;i<52;i++) printf("-"); printf("\n"); } //Fungsi ini sebagai input error handling //Jika input tidak sesuai, maka akan meminta input lagi hingga benar NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) int pilihMenu(){ int input; printf("Silahkan masukan pilihan Anda: "); scanf("%d",&input); if(input < 1 || input > 6){ printf("Masukkan Angka 1, 2 , atau 3\n"); pilihMenu(); }else{ return input; } } // Fungsi ini untuk menentukan harga barang yg dipilih // jika pilihan == 1, maka harga barang mrnjadi 7000 // jika pilihan == 2, maka harga barang mrnjadi 5000 // jika pilihan == 3, maka harga barang mrnjadi 8000 int daftarHarga(int pilihan){ int harga; switch(pilihan){ case 1: harga = 7000; break; case 2: harga = 5000; break; case 3: harga = 8000; break; NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) case 4: harga = 9000; break; case 5: harga = 6000; break; case 6: harga = 8000; break; } return harga; } NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) Gambar 8.1 Program Mesin Jual Makanan dan Minuman Otomatis NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) NASHWA NABILA AUDIPO (2307110315) LABORATORIUM JARINGAN & KOMPUTER (2023) NASHWA NABILA AUDIPO (2307110315)