GROUP 3 – LLCA
COMPILER : Dev-C++
4. Buatlah program .
Sebuah toko minuman menjual berbagai macam jenis minuman. Pemilik Toko
minuman tersebut menginginkan sebuah aplikasi yang mampu mencatat semua
transaksi yang ada sehingga memudahkan dalam me-monitoring usahanya.
Berikut aturan dalam membuat aplikasinya :
a. Input data
b. View History
c. Delete History
d. Exit
1). Jika user memilih menu Input data (tekan tombol ‘1’), maka program akan:
Meminta inputan nama minuman. Validasikan inputan harus berupa Kopi,
Teh, Coklat atau Soda.
Meminta inputan size. Validasikan inputan berupa Small, Medium dan
Largest
Harga = size x pjg karakter nama minuman x pjg karakter Penyajian x 100
Contoh:
2). Jika user memilih menu View History (tekan tombol ‘2’), maka program akan
menampilkan data history penjualan yang pernah dilakukan dengan format:
No, Nama pesanan, Size, Penyajian dan Harga.
3). Jika user memilih menu Delete History (tekan tombol ‘3’), maka program
akan menampilkan list data history penjualan.
a) Meminta inputan index. Validasikan input minimal 1 dan maksimal
sebanyak jumlah data.
b) Hapus data sesuai dengan index yang diinput. Contoh: Jika user memilih
index 1, maka hapus data yang pertama.
Lalu Tampilkan pesan “Data Successfully delete..”.
4). Jika user memilih menu Exit (tekan tombol ‘4’), maka program akan menulis
data tersebut ke dalam file ”dataminuman.txt” dan program selesai dijalankan.
Jawaban
No 1
File : File digunakan untuk penyimpanan data yang bentuknya adalah permanen bukan
sementara.
Stream : adalah di mana data diteruskan dari pengirim ke penerima. Stream memungkinkan
perjalanan hanya dalam satu arah. Data dapat dikirim keluar dari program pada output
stream, atau diterima ke dalam program pada input stream. Membuat stream
sama seperti dengan deklarasi variable contoh : ifstream in_stream; (input-file-stream) of-
stream out_stream; (output-file-stream).
File yang dibuka dengan mode ‘w+’ bila terdapat file .txt yang sudah ada datanya dan
dibuka dengan mode ‘w+` maka data yang terdapat pada file tersebut akan di hapus dan
diisi dengan content yang terbaru dari program tersebut.
Berikut untuk contoh program dan screenshot hasil
Source Code
#include <stdio.h>
int main()
{
FILE* demo;
demo = fopen("demo_file.txt", "w+");
fclose(demo);
return 0;
}
Screenshot:
Dynamic memory
pengertian :
Dynamic Memory atau dalam Bahasa Indonesia disebut Memori dinamis, adalah suatu
teknik alokasi memori yang memungkinkan program memesan memori di saat program
berjalan (runtime) bukan di saat eksekusi program.
Misalnya, jika program pada awalnya hanya memiliki memori statis yang sudah program-
mer pesan dan tulis saat pengkodingan. Kemudian suatu saat pengguna program tersebut
membutuhkan penyimpanan data lebih yang tak terduga, otomatis dia membutuhkan mem-
ori lagi untuk menyimpan data tersebut.
Refrensi : https://www.belajarcpp.com/tutorial/cpp/dynamic-memory/
Source Code
#include <stdio.h>
int main()
{
int n, i, *ptr, sum = 0;
return 0;
}
Screenshot:
Macro
Macro pada bahasa C memungkinkan nilai-nilai konstan dapat digunakan di seluruh code
program. Macro merupakan semen code yang digunakan dengan nilai macro sebuah kon-
stanta. Macro ditentukan dengan perintah #define.
Fungsi Macro : untuk membuat konstanta yang mewakili angka, string, atau ekspresi.
Contoh penerapan nya pada Define. Define merupakan salah satu macro pada bahasa C.
Source Code
#include <stdio.h>
#define NUMBER 1
#define COLOR "Hitam"
#define SIZE 39
int main()
{
printf("Order Nomor %d Sepatu %s Ukuran %d.\n", NUMBER, COLOR,
SIZE);
getchar();
return 0;
}
No 4
Source Code
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//MAIN FUNCTION
int main(){
//title
printf("\t======================================\n");
printf("\t===PROGRAM TOKO MINUMAN KELOMPOK 3====\n");
printf("\t======================================\n\n");
//open file
open_file();
//menu
menu();
return 0;
}
do{
//menu
printf("\n\nSilahkan pilih menu : \n\n");
printf("1. Input Data\n");
printf("2. View History\n");
printf("3. Delete History\n");
printf("4. Exit\n");
printf("Silahkan masukkan pilihan anda:");scanf("
%d",&opt);
//switch menu
switch(opt){
case 1:
input_data();
menu();
break;
case 2:
view_history();
menu();
break;
case 3:
delete_history();
menu();
break;
case 4:
write_file();
printf("exit program\n");
exit(0);
break;
default:
printf("\nSilahkan pilih menu yang disedi-
akan!\n\n");
break;
}
}while(opt != 4);
}
FILE *myfile;
myfile = fopen("dataminuman.txt","r");
if(myfile == NULL)
{
printf("file dataminuman.txt telah dibuat\n");
myfile = fopen("dataminuman.txt","w+");
fclose(myfile);
return 0;
}
i_history++;
}
printf("file dataminuman.txt berhasil dibaca\n");
fclose(myfile);
// }
}
if(i_history == 0){
fprintf(myfile,"");
return 0;
fclose(myfile);
printf("berhasil disimpan ke file\n");
return 0;
}
//title
printf("\n\t=======INPUT DATA MINUMAN========\n");
//main body
//input name
do{
printf("Masukkan nama minuman:"); scanf(" %[^\n]s",
&data_minuman[i_data].name);
}while(check_input(valid_name,data_minuman[i_data].name,"Pa
stikan anda memasukkan minuman yang sesuai
(Kopi,Teh,Coklat,Soda)") == 0);
//input size
do{
printf("Masukkan size minuman:"); scanf(" %[^\n]s",
&data_minuman[i_data].size);
}while(check_input(valid_size,data_minuman[i_data].size,"Pa
stikan anda memasukkan size yang sesuai (Small,Medium,Large)")
== 0);
//input serve
//save or not
printf("\n=======HASIL INPUT======\n");
printf("Nama Minuman : %s \n",data_minuman[i_data].name);
printf("Size : %s\n",data_minuman[i_data].size);
printf("Penyajian : %s\n",data_minuman[i_data].serve);
printf("Harga : %d\n",data_minuman[i_data].price);
printf("\n Simpan data (y/n):");scanf(" %c", &save);
//save validate
if(save == 'y' || save == 'Y')
{
//copy to history
data_history[i_history].no = i_history+1;
strcpy(data_history[i_history].name,data_minuman[i_data].name);
strcpy(data_history[i_history].size,data_minuman[i_data].size);
strcpy(data_history[i_history].serve,data_minuman[i_data].serve)
;
data_history[i_history].price =
data_minuman[i_data].price;
i_data++;
i_history++;
printf("Data Successfully saved\n");
}
//init variable
int pos;//index position
int i;
/* Decrement i history*/
i_history--;
printf("Data Successfully deleted");
}
//VALIDATE FUNCTION
int check_input(char **valid[],char value[],char error[]){
//init var
int i;
int len = sizeof (valid);//get array legth
//notif error
printf("\n%s\n\n",error);
return 0;
}
printf("\n=======HISTORY PENJUALAN=======\n\n");
if(i_history == 0){
printf("TIDAK ADA HISTORY PENJUALAN\n\n");
return 0;
}
printf("--------------------------------------------------------
----------\n");
Input Data
View History