Skip to content

Instantly share code, notes, and snippets.

@w33ladalah
Last active June 24, 2024 04:21
Show Gist options
  • Save w33ladalah/5dcc969fcb7bf253650c48d4b4858723 to your computer and use it in GitHub Desktop.
Save w33ladalah/5dcc969fcb7bf253650c48d4b4858723 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <iostream>
struct WAKTU {
int jam;
int menit;
int detik;
};
struct BARANG {
char id_penitip[100];
char nama_barang[100];
float volume_berat;
struct WAKTU jam_awal;
struct WAKTU jam_akhir;
};
struct WAKTU hitung_durasi(struct WAKTU wkt_awal, struct WAKTU wkt_akhir) {
struct WAKTU durasi;
if ((wkt_akhir.jam > wkt_awal.jam) || (wkt_akhir.jam == wkt_awal.jam && wkt_akhir.menit > wkt_awal.menit) || (wkt_akhir.jam == wkt_awal.jam && wkt_akhir.menit == wkt_awal.menit && wkt_akhir.detik > wkt_awal.detik)) {
struct WAKTU temp = wkt_awal;
wkt_awal = wkt_akhir;
wkt_akhir = temp;
}
if (wkt_akhir.detik > wkt_awal.detik) {
--wkt_awal.menit;
wkt_awal.detik += 60;
}
durasi.detik = wkt_awal.detik - wkt_akhir.detik;
if (wkt_akhir.menit > wkt_awal.menit) {
--wkt_awal.jam;
wkt_awal.menit += 60;
}
durasi.menit = wkt_awal.menit - wkt_akhir.menit;
durasi.jam = wkt_awal.jam - wkt_akhir.jam;
return durasi;
}
int hitung_tarif(float volume_berat, struct WAKTU awal, struct WAKTU akhir) {
int tarif_volume_berat;
if (volume_berat >= 0.3 && volume_berat <= 3)
{
tarif_volume_berat = 2500;
}
else if (volume_berat >= 3.1 && volume_berat <= 5)
{
tarif_volume_berat = 5000;
}
else if (volume_berat >= 5.1 && volume_berat <= 10)
{
tarif_volume_berat = 10000;
}
int tarif_akhir;
struct WAKTU durasi = hitung_durasi(awal, akhir);
printf("Durasi penitipan: %d jam %d menit %d detik\n", durasi.jam, durasi.menit, durasi.detik);
if (durasi.jam > 0) {
int durasi_jam = durasi.jam;
if (durasi.menit > 0 && durasi.detik > 0) {
durasi_jam += 1;
}
tarif_akhir = tarif_volume_berat * durasi_jam;
} else {
tarif_akhir = tarif_volume_berat;
}
return tarif_akhir;
}
int main() {
struct BARANG barang;
printf("================ PROGRAM PENITIPAN BARANG ================\n");
printf("Masukkan informasi berikut:\n");
printf("ID penitip: ");
scanf("%s", barang.id_penitip);
printf("Nama barang: ");
scanf("%s", barang.nama_barang);
printf("Volume atau berat: ");
scanf("%f", &barang.volume_berat);
printf("ID penitip: %s\n", barang.id_penitip);
printf("Nama barang: %s\n", barang.nama_barang);
printf("Volume atau berat: %f\n", barang.volume_berat);
int jam_awal, jam_akhir,
menit_awal, menit_akhir,
detik_awal, detik_akhir;
printf("\nWaktu awal: \n");
printf("Jam: ");
scanf("%d", &jam_awal);
printf("Menit: ");
scanf("%d", &menit_awal);
printf("Detik: ");
scanf("%d", &detik_awal);
struct WAKTU waktu_awal;
waktu_awal.jam = jam_awal;
waktu_awal.menit = menit_awal;
waktu_awal.detik = detik_awal;
printf("\nWaktu akhir: \n");
printf("Jam: ");
scanf("%d", &jam_akhir);
printf("Menit: ");
scanf("%d", &menit_akhir);
printf("Detik: ");
scanf("%d", &detik_akhir);
struct WAKTU waktu_akhir;
waktu_akhir.jam = jam_akhir;
waktu_akhir.menit = menit_akhir;
waktu_akhir.detik = detik_akhir;
int tarif = hitung_tarif(barang.volume_berat, waktu_awal, waktu_akhir);
printf("Tarif: Rp %d\n", tarif);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment