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
Meminta inputan penyajian. Validasikan inputan berupa Dingin, panas atau
hangat.
Menampilkan Detail pembelian berupa nama minuman, size, dan Harga.
Harga didapat dengan menggunakan rumus:
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.
2. Apabila kita menggunakan mode ‘w+’ ketika data tersebut telah tersedia.
Data yang sebelumnya akan hilang
Contoh ;
Berikut adalah
syntax awal
pembuatan file
Berikut hasil dari penggunaan mode ‘w+’ pada file yang telah tersedia. Isi
file sebelumnya akan menghilang dan digantikan dengan isi file yang baru.
3. A) Dynamic Memory
Alokasi memori dalam C sangat penting untuk mencapai kinerja terbaik
khususnya dalam aplikasi perangkat terintegrasi (embedded system).
Bahasa C dapat digunakan untuk menangani alokasi memori dinamis.
Terdapat empat fungsi yang digunakan untuk mengatur bagian heap yang
mengalokasikan memori secara dinamis:
#include <stdio.h>
#include <stdlib.h>
int *ptr_i;
ptr_i = (int *) malloc(sizeof (int));
*ptr_i = 10;
printf(“%d\n”, *ptr_i);
free(ptr_i);
return 0;
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr_i, i;
ptr_i = (int *) calloc (4, sizeof (int));
for (i = 0; i < 4; ++i) {
ptr_i[i] = i;
}
free(ptr_i);
return 0;
int *ptr_i;
ptr_i; (int *) malloc(sizeof(int)*4);
Bedanya adalah, fungsi calloc() memasang setiap byte pada setiap blok
memori yang dipesan menjadi nol sedangkan fungsi malloc() tidak,
maka setiap blok di fungsi malloc() yang dialokasikan isinya adalah
undefined.
int main() {
int *ptr_i, i, n;
printf(“Masukkan ukuran array yang diinginkan: ”);
scanf(“%d”, &n);
printf(“%p\n”, &ptr_i[i]);
printf(“\n”);
printf(“Masukkan ukuran baru array yang diinginkan:”);
scanf(“%d”, &n);
ptr_i = realloc(ptr_i, n);
printf(“%p\n”, &ptr_i[i]);
return 0;
B) Macro
Preprocessor adalah bagian dari sebuah software development tool untuk bahasa
C yang bertugas untuk melakukan pengolahan source code sebelum diberikan kepada
compiler untuk diolah lebih lanjut.
Tujuan macro pada awal diperkenalkan adalah untuk membantu pemogram mengurangi
frekuensi menulis kode secara repetitif. Pada saat awal diperkenalkan macro, hanya untuk
menyingkat penulisan formula yang sederhana. Namun seiring perkembangannya, macro
akan diterjemahkan langsung sebagai bagian dari rutin pemanggil sebagai kesatuan yang
artinya sebanyak macro tersebut digunakan dalam kode, sebanyak itu juga replikasi/duplikasi
kode tersebut. Macro secara spesifik dimanfaatkan dalam proses optimasi kode.
Terdapat beberapa cirinya:
- Menggunakan #define
Misalnya, macro #define a((c)*(d)) akan mengganti setiap kemunculan a dengan nilai hasil
perkalian variable c dan d. Tanda kurung yang banyak untuk memastikan bahwa makro
dieksekusi sesuai dengan yang diinginkan, sebab ada yang disebut dengan operator
precedence, dimana urutan pengerjaan operator jika berbagai operator muncul dalam sebuah
pernyataan. Misalnya a*b+c, pada ekspresi ini, yang akan diolah terlebih dulu adalah
perkalian a dan b, kemudian hasilnya dijumlahkan dengan c.
Macro juga digunakan sebagai fungsi seperti argument, dimana argument tidak diperiksa
untuk tipe data. Contohnya macro increment(x) yang dapat digunakan untuk x dengan tipe
data apapun.
Contoh:
#include <stdio.h>
#define INCREMENT(x) ++x
int main()
{
char *ptr = “HelloWorld”;
int x = 10;
printf(“%s”, INCREMENT(ptr));
printf(“%d”, INCREMENT(x));
return 0;
4. Berikut programnya hasil output (untuk programnya telah disediakan dalam file
zip):