Last active
June 24, 2024 04:21
-
-
Save w33ladalah/5dcc969fcb7bf253650c48d4b4858723 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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