uts praktikum dan algoritma

Soal:

1. Seorang petugas perpustakaan ingin membuat program sederhana untuk menghitung

denda keterlambatan pengembalian buku. Aturan denda perpustakaan sebagai berikut:

• Jika keterlambatan antara 1 hingga 5 hari, denda adalah Rp3.000 per hari.

• Jika keterlambatan antara 6 hingga 10 hari, denda adalah Rp4.500 per hari.

• Jika keterlambatan lebih dari 10 hari, denda adalah Rp6.000 per hari.

Buatlah program yang meminta pengguna untuk memasukkan jumlah hari keterlambatan,

kemudian menghitung dan menampilkan total denda yang harus dibayar.


a) Buat Pseudocode untuk menyelesaikan masalah di atas.


START

    START

    PRINT "Masukkan jumlah hari keterlambatan:"

    INPUT hari_keterlambatan

    SET total_denda = 0

    

    IF hari_keterlambatan >= 1 AND hari_keterlambatan <= 5 THEN

        total_denda = hari_keterlambatan * 3000

    ELSE IF hari_keterlambatan >= 6 AND hari_keterlambatan <= 10 THEN

        total_denda = hari_keterlambatan * 4500

    ELSE IF hari_keterlambatan > 10 THEN

        total_denda = hari_keterlambatan * 6000

    END IF


    PRINT "Total denda yang harus dibayar: ", total_denda

END



b) Flowchart




  • c) Implementasikan program tersebut dalam bahasa C.


    #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

    Popular posts from this blog

    PRAKTIKUM 11: Menggunakan struktur data tree dalam pemrograman

    PRAKTIKUM 3: Menggunakan fungsi dan prosedur dalam pemrograman

    1 .pengantar pemrograman