#include <stdio.h>
int main() {
int hari_keterlambatan;
int total_denda = 0;
// Meminta input dari pengguna
printf("Masukkan jumlah hari keterlambatan: ");
scanf("%d", &hari_keterlambatan);
// Menghitung total denda berdasarkan jumlah hari keterlambatan
if (hari_keterlambatan >= 1 && hari_keterlambatan <= 5) {
total_denda = hari_keterlambatan * 3000;
} else if (hari_keterlambatan >= 6 && hari_keterlambatan <= 10) {
total_denda = hari_keterlambatan * 4500;
} else if (hari_keterlambatan > 10) {
total_denda = hari_keterlambatan * 6000;
}
// Menampilkan total denda yang harus dibayar
printf("Total denda yang harus dibayar: Rp %d\n", total_denda);
return 0;
}
2. Seorang guru ingin membuat program untuk menghitung nilai rata-rata dan menentukan
kategori nilai berdasarkan nilai ujian siswa. Program ini akan meminta input berupa tiga
nilai ujian untuk seorang siswa, kemudian menghitung rata-rata dari ketiga nilai tersebut.
Berdasarkan rata-rata nilai, program akan menentukan kategori nilai sebagai berikut:
• Jika rata-rata nilai 80 atau lebih, kategori: A
• Jika rata-rata nilai antara 70 dan 79, kategori: B
• Jika rata-rata nilai antara 60 dan 69, kategori: C
• Jika rata-rata nilai kurang dari 60, kategori: D
a. Buat dua fungsi dalam bahasa C:
• Fungsi hitungRataRata untuk menghitung nilai rata-rata dari tiga nilai ujian.
• Fungsi tentukan Kategori untuk menentukan kategori berdasarkan rata-rata nilai.
#include <stdio.h>
// Fungsi untuk menghitung rata-rata dari tiga nilai ujian
float hitungRataRata(int nilai1, int nilai2, int nilai3) {
return (nilai1 + nilai2 + nilai3) / 3.0;
}
// Fungsi untuk menentukan kategori berdasarkan rata-rata nilai
char tentukanKategori(float rataRata) {
if (rataRata >= 80) {
return 'A';
} else if (rataRata >= 70) {
return 'B';
} else if (rataRata >= 60) {
return 'C';
} else {
return 'D';
}
}
int main() {
int nilai1, nilai2, nilai3;
float rataRata;
char kategori;
// Input nilai ujian
printf("Masukkan nilai ujian 1: ");
scanf("%d", &nilai1);
printf("Masukkan nilai ujian 2: ");
scanf("%d", &nilai2);
printf("Masukkan nilai ujian 3: ");
scanf("%d", &nilai3);
// Menghitung rata-rata nilai
rataRata = hitungRataRata(nilai1, nilai2, nilai3);
// Menentukan kategori berdasarkan rata-rata
kategori = tentukanKategori(rataRata);
// Menampilkan hasil
printf("Rata-rata nilai: %.2f\n", rataRata);
printf("Kategori nilai: %c\n", kategori);
return 0;
}
b. Gunakan kedua fungsi tersebut dalam main program untuk menampilkan rata-rata nilai
dan kategori yang sesuai.

3. Dalam bahasa C, konsep kelas dan objek seperti pada bahasa pemrograman berorientasi
objek lainnya tidak didukung secara langsung. Namun, kita bisa mengimplementasikan
konsep tersebut dengan menggunakan struktur data (struct) dan fungsi terkait untuk
mensimulasikan cara kerja kelas dan objek.
Soal
Anda diminta untuk membuat program sederhana untuk mengelola data buku di
perpustakaan. Setiap buku memiliki informasi sebagai berikut:
• Judul (string)
• Penulis (string)
• Tahun Terbit (integer)
• Harga (float)
Program harus memiliki fitur untuk:
1. Menyimpan data sebuah buku menggunakan struktur Buku.
2. Menampilkan informasi buku.
3. Mengubah harga buku.
Tugas:
1. Buatlah struktur Buku untuk menyimpan data buku di perpustakaan.
2. Buat fungsi tampilkanBuku untuk menampilkan informasi buku.
3. Buat fungsi ubahHarga untuk mengubah harga buku berdasarkan parameter harga
yang baru.
4. Buat contoh program dalam fungsi main yang membuat objek Buku, menampilkan
data buku, lalu mengubah harga buku dan menampilkan data buku yang sudah
diperbarui.
jawaban
#include <stdio.h>
#include <string.h>
// Struktur untuk menyimpan data buku
struct Buku {
char judul[100];
char penulis[100];
int tahunTerbit;
float harga;
};
// Fungsi untuk menampilkan informasi buku
void tampilkanBuku(struct Buku buku) {
printf("Informasi Buku:\n");
printf("Judul : %s\n", buku.judul);
printf("Penulis : %s\n", buku.penulis);
printf("Tahun Terbit: %d\n", buku.tahunTerbit);
printf("Harga : Rp %.2f\n", buku.harga);
}
// Fungsi untuk mengubah harga buku
void ubahHarga(struct Buku *buku, float hargaBaru) {
buku->harga = hargaBaru;
}
int main() {
// Membuat objek Buku dan mengisi data awal
struct Buku buku1;
strcpy(buku1.judul, "apa itu cinta");
strcpy(buku1.penulis, "aira");
buku1.tahunTerbit = 2021;
buku1.harga = 50000.0;
// Menampilkan informasi buku sebelum perubahan harga
printf("Data Buku Sebelum Perubahan Harga:\n");
tampilkanBuku(buku1);
// Mengubah harga buku
float hargaBaru = 95000.0;
ubahHarga(&buku1, hargaBaru);
// Menampilkan informasi buku setelah perubahan harga
printf("\nData Buku Setelah Perubahan Harga:\n");
tampilkanBuku(buku1);
return 0;
}

4. Seorang pemilik toko elektronik ingin menyimpan dan mengelola data harga beberapa
produk elektronik yang dijualnya. Setiap produk memiliki harga yang berbeda-beda.
Pemilik toko ingin dapat melakukan beberapa operasi berikut pada data harga produk:
• Menyimpan harga produk dalam bentuk array.
• Mengurutkan harga produk dari yang termurah ke yang termahal agar memudahkan
pelanggan dalam melihat daftar harga.
• Mencari harga tertentu di dalam daftar untuk memastikan ketersediaan produk
dengan harga tersebut.
1. Buatlah sebuah program dalam bahasa C yang menyimpan data harga dalam sebuah
array.
2. Implementasikan fungsi pengurutan menggunakan Bubble Sort untuk mengurutkan
harga produk dari yang termurah ke yang termahal.
3. Implementasikan fungsi pencarian menggunakan Linear Search untuk mencari
harga produk dalam array.
4. Di dalam fungsi main, masukkan beberapa harga produk sebagai data awal, urutkan
daftar harga tersebut, dan kemudian cari harga tertentu berdasarkan input pengguna.
Contoh Tampilan Program:
jawaban
#include <stdio.h>
// Fungsi untuk menampilkan daftar harga
void tampilkanHarga(int harga[], int ukuran) {
for (int i = 0; i < ukuran; i++) {
printf("%d ", harga[i]);
}
printf("\n");
}
// Fungsi untuk mengurutkan harga menggunakan Bubble Sort
void bubbleSort(int harga[], int ukuran) {
for (int i = 0; i < ukuran - 1; i++) {
for (int j = 0; j < ukuran - i - 1; j++) {
if (harga[j] > harga[j + 1]) {
// Tukar harga[j] dan harga[j + 1]
int temp = harga[j];
harga[j] = harga[j + 1];
harga[j + 1] = temp;
}
}
}
}
// Fungsi untuk mencari harga menggunakan Linear Search
int cariHarga(int harga[], int ukuran, int target) {
for (int i = 0; i < ukuran; i++) {
if (harga[i] == target) {
return i; // Kembalikan indeks jika ditemukan
}
}
return -1; // Kembalikan -1 jika tidak ditemukan
}
int main() {
// Data awal harga produk (berbeda dari contoh sebelumnya)
int harga[] = {950000, 320000, 780000, 1250000, 540000};
int ukuran = sizeof(harga) / sizeof(harga[0]);
int target;
// Tampilkan daftar harga sebelum diurutkan
printf("Data harga sebelum diurutkan: ");
tampilkanHarga(harga, ukuran);
// Mengurutkan harga
bubbleSort(harga, ukuran);
// Tampilkan daftar harga setelah diurutkan
printf("Data harga setelah diurutkan: ");
tampilkanHarga(harga, ukuran);
// Meminta input pengguna untuk harga yang akan dicari
printf("\nMasukkan harga yang ingin dicari: ");
scanf("%d", &target);
// Mencari harga dalam array
int indeks = cariHarga(harga, ukuran, target);
if (indeks != -1) {
printf("Harga ditemukan pada indeks %d\n", indeks);
} else {
printf("Harga tidak ditemukan\n");
}
return 0;
}
Comments
Post a Comment