Anda di halaman 1dari 4

Nama : Muhammad Rifai

Kelas : Ra 4
Prodi : teknik informatika

1. Array 1 dimensi:

#include <iostream>
using namespace std;

int main()
{
int penjualan[12] = {100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100};
int total = 0;

for(int i=0; i<12; i++)


{
total += penjualan[i];
}

cout << "Total penjualan susu selama 1 tahun: " << total*30 << " liter" << endl;

return 0;
}

Array 2 dimensi:

#include <iostream>
using namespace std;

int main()
{
int penjualan[3][4] = {{100, 150, 200, 300}, {400, 500, 600, 700}, {800, 900, 1000, 1100}};
int total = 0;

for(int i=0; i<3; i++)


{
for(int j=0; j<4; j++)
{
total += penjualan[i][j];
}
}

cout << "Total penjualan susu selama 1 tahun: " << total*30 << " liter" << endl;

return 0;
}
Kedua program di atas akan menghasilkan output yang sama, yaitu total penjualan susu selama 1
tahun dengan nilai bobot 30 dan dapat diubah nilai bobot sesuai dengan yang di inginkam

2. Array struct :

#include <iostream>
using namespace std;

struct PenjualanSusu {
string nama_pembeli;
int jumlah_pembelian;
string nama_susu;
float harga_total;
};

int main() {
const int MAX_PENJUALAN = 100; // jumlah maksimal penjualan
PenjualanSusu penjualan[MAX_PENJUALAN]; // array struct untuk menyimpan penjualan
int jumlah_penjualan = 0; // jumlah penjualan saat ini
char jawaban;

do {
// input data penjualan
cout << "Masukkan nama pembeli: ";
cin >> penjualan[jumlah_penjualan].nama_pembeli;
cout << "Masukkan jumlah pembelian: ";
cin >> penjualan[jumlah_penjualan].jumlah_pembelian;
cout<< "Masukan nama susu: ";
cin>> penjualan[jumlah_penjualan].nama_susu;
cout << "Masukkan harga total: ";
cin >> penjualan[jumlah_penjualan].harga_total;

// tanyakan apakah ingin memasukkan data penjualan lagi


cout << "Apakah ingin memasukkan data penjualan lagi? (y/n) ";
cin >> jawaban;

jumlah_penjualan++;
} while (jawaban == 'y' && jumlah_penjualan < MAX_PENJUALAN);

// tampilkan data penjualan


cout << "Data Penjualan Susu\n";
for (int i = 0; i < jumlah_penjualan; i++) {
cout << "Pembeli: " << penjualan[i].nama_pembeli << endl;
cout << "Jumlah pembelian: " << penjualan[i].jumlah_pembelian << endl;
cout<< "Nama susu: " << penjualan[i].nama_susu << endl;
cout << "Harga total: " << penjualan[i].harga_total << endl;
}

return 0;
}
Dalam program ini, saya menggunakan array of struct PenjualanSusu untuk menyimpan data
penjualan dan Setiap elemen array berisi informasi tentang satu pembelian, yaitu nama pembeli,
jumlah pembelian, dan harga total.
Saya juga menentukan konstanta MAX_PENJUALAN untuk membatasi jumlah penjualan yang dapat
dimasukkan ke dalam array.
Program ini meminta pengguna untuk memasukkan data penjualan, dan kemudian menampilkan
semua data yang dimasukkan.

Pointer dereference dan reference :

#include <iostream>
using namespace std;

int main() {
int penjualan[12] = {100, 150, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100};
int total = 0;
int *p = penjualan; // inisialisasi pointer p dengan alamat dari elemen pertama pada array
penjualan

for(int i=0; i<12; i++) {


total += *p; // operator dereference digunakan untuk mengakses nilai dari alamat yang ditunjuk
oleh pointer p
p++; // operator increment digunakan untuk menggeser alamat yang ditunjuk oleh pointer p ke
elemen selanjutnya pada array penjualan
}

cout << "Total penjualan susu selama 1 tahun: " << total*30 << " liter" << endl;

return 0;
}

Pada program di atas, pertama-tama saya membuat sebuah array penjualan yang berisi data
penjualan susu selama 1 tahun. Selanjutnya, kita membuat sebuah pointer `p` yang diinisialisasi
dengan alamat dari elemen pertama pada array `penjualan`.

Kemudian, kita melakukan perulangan untuk mengakses setiap elemen pada array `penjualan`
menggunakan pointer `p`. Pada setiap iterasi, kita menggunakan operator dereference `*p` untuk
mengakses nilai dari alamat yang ditunjuk oleh pointer `p`, dan operator increment `p++` untuk
menggeser alamat yang ditunjuk oleh pointer `p` ke elemen selanjutnya pada array `penjualan`.

Akhirnya, saya menghitung total penjualan susu selama 1 tahun dengan menjumlahkan semua nilai
penjualan pada array `penjualan`, dan mencetak hasilnya dengan nilai bobot 30.

Perlu diketahui bahwa operator reference `&` juga dapat digunakan untuk mendapatkan alamat dari
sebuah variabel, dan operator dereference `*` dapat digunakan untuk mengakses nilai dari alamat
yang ditunjuk oleh sebuah pointer. Namun, pada contoh program di atas kita tidak menggunakan
operator reference

Anda mungkin juga menyukai