TUGAS PERTEMUAN 3_STRUKTUR DATA (D)

Nama : Rado Putra Yustisiawan

NRP : 5025251048

Kelas : Struktur Data D

TUGAS 1
Mencoba setiap short code yang tersedia, dengan format pengerjaan
a. Nama program dan deskripsi
b. Screenshoot dari program
c. Penjelasan dari program
d. Link source code


1) KODE 1

    a. Nama program dan deskripsi
Nama program : Deklarasi Struct user data 
Deskripsi : Program ini mendemonstrasikan cara pembuatan tipe data baru menggunakan kata kunci struct. Tujuannya adalah untuk mengelompokkan berbagai variabel dengan tipe data berbeda (seperti string, int, dan float) ke dalam satu kesatuan entitas yang mewakili objek di dunia nyata.

    b. Screenshoot

    c. Penjelasan program
Konsep struct: Dalam pemrograman, struct digunakan untuk membuat tipe data kompleks. Jika tipe data dasar seperti int hanya bisa menyimpan satu angka, struct memungkinkan kita menyimpan banyak informasi sekaligus dalam satu variabel.

Struktur data_pelajar: Mengelompokkan data identitas siswa. Terdiri dari string untuk teks (ID, Nama, Jurusan) dan float untuk angka desimal (Nilai Akhir). Ini memudahkan manajemen data jika ada banyak siswa.

Struktur koleksi_buku: Digunakan untuk mengorganisir informasi pustaka. Menggabungkan tipe string untuk judul dan penulis, int untuk jumlah halaman (lembar), serta float untuk harga atau biaya buku.

Struktur spek_mobil: Merupakan contoh struktur yang lebih kompleks. Menampung banyak atribut sekaligus, mulai dari detail teknis mesin (int cc), identitas kendaraan (string plat), hingga nilai ekonomi (float harga_jual).

Fungsi main(): Pada kode ini, fungsi utama hanya mengembalikan nilai 0. Ini berarti program hanya berfungsi sebagai definisi cetak biru (blueprint) tipe data yang siap digunakan untuk deklarasi variabel di tahap pengembangan selanjutnya.

    d. Link Source code
https://drive.google.com/file/d/1xgpNUbCC33-JGnw_ym8UFsCKwQ5_5ERD/view?usp=sharing

2) KODE 2

    a. Nama program dan deskripsi
        Nama : Implementasi struct deklarasi objek
        Deskripsi : Program ini mendemonstrasikan cara menggunakan struktur data yang telah didefinisikan sebelumnya (data_pelajar dan koleksi_buku) untuk menciptakan variabel atau objek baru di dalam fungsi utama (main). Hal ini menunjukkan bagaimana sebuah "cetak biru" tipe data diaplikasikan untuk menampung data riil di dalam memori.

    b. Screenshoot

    c. Penjelasan program 
Membuat Cetakan (struct): Kita mendefinisikan data_pelajar dan koleksi_buku sebagai wadah yang bisa menampung campuran tipe data (teks, angka bulat, dan desimal) sekaligus.

Membuat Objek di main(): Baris data_pelajar siswa_A, siswa_B; artinya kita membuat dua orang siswa (A dan B) yang masing-masing otomatis punya kolom ID, Nama, Jurusan, dan Nilai.

Variabel Buku: Baris koleksi_buku novel1, novel2; artinya kita menyiapkan dua slot buku yang masing-masing punya kolom judul, pengarang, halaman, dan harga.

Kesimpulan: Di sini kita baru menyiapkan "wadah kosong" di memori komputer; variabel-variabel tersebut sudah siap diisi datanya nanti.

    d. Link source code
https://drive.google.com/file/d/1zERrc2W-d7xs7ACPz-qutpXVjLEHjO2h/view?usp=sharing


3) KODE 3

    a. Nama program dan deskripsi
        Nama : Akses dan manipulasi data struct
        Deskripsi : program ini menunjukkan cara mengisi nilai ke dalam anggota struct secara langsung maupun melalui input pengguna (cin), serta cara menampilkannya kembali ke layar (cout).

    b. Screenshoot 

    c. Penjelasan program 
Operator Titik (.): Digunakan untuk mengakses isi di dalam variabel struct. Contohnya p1.id artinya kita mengakses bagian ID milik pelajar 1

Dua Cara Isi Data:
1. Langsung: Menggunakan tanda sama dengan (=) untuk memberikan nilai tetap.
2. Input User: Menggunakan cin agar pengguna bisa mengetikkan nama atau nilai saat program berjalan.

Alur Output: Menggunakan cout untuk memanggil kembali data yang sudah disimpan di memori dan mencetaknya ke layar konsol.

    d. Link source code
https://drive.google.com/file/d/1bNeBsUvs3yQc5DqDiqcx_7hke1fftke8/view?usp=drive_link


4) KODE 4

    a. Nama program dan deskripsi
        Naama : implementasi perulangan array menggunakan for
        Deskripsi : Program ini menunjukkan cara mengakses dan menampilkan setiap elemen yang tersimpan di dalam sebuah larik (array) secara berurutan dengan memanfaatkan struktur kontrol perulangan.

    b. Screenshoot

    c. Penjelasan program
Inisialisasi Array: Baris int myarray[] = {2, 4, 6, 8}; menyiapkan sebuah wadah bernama myarray yang berisi empat angka genap.

Struktur for Loop: Perulangan dimulai dari indeks 0 hingga 3 (kurang dari 4). Ini penting karena indeks array di C++ selalu dimulai dari nol.

Akses Elemen: Perintah myarray[i] mengambil nilai di posisi ke-i pada setiap putaran perulangan.

Output: Nilai tersebut kemudian dicetak ke layar, diikuti dengan endl yang membuat angka berikutnya muncul di baris baru.

    d. Link Source code
https://drive.google.com/file/d/1fy_v9EN5JQELKqHEK93epxeR7QoJBUke/view?usp=drive_link


5) KODE 5

    a. Nama program dan deskripsi
        Nama : Implementasi batas memori
        Deskripsi : Program ini digunakan untuk melihat bagaimana data dan alamat memori disimpan dalam sebuah array, serta menunjukkan konsekuensi dari mengakses indeks yang melebihi kapasitas asli larik tersebut.

    b. Screenshoot

    c. Penjelasan program 
Inisialisasi Array: Program membuat array bernama myarray dengan 4 elemen: {2, 4, 6, 8}

Dua Perintah cout
1. cout << myarray[i]: Baris ini bertugas mencetak nilai yang tersimpan di dalam array pada indeks ke-i
2. cout << "id: " << &myarray[i]: Baris ini menggunakan operator & (address-of) untuk mencetak

alamat memori (ID lokasi) tempat nilai tersebut disimpan.

Masalah Batas (Out of Bounds): Perulangan dipaksa berjalan dari i = 0 sampai i = 8, padahal array hanya punya elemen sampai indeks ke-3.

Dampak Eksekusi:
1. Untuk i dari 0-3, program akan menampilkan nilai dan alamat yang benar.
2. Untuk i dari 4-8, program akan mencetak data dari alamat memori lain (data sampah) karena sudah keluar dari batas myarray.

    d. Link source code
https://drive.google.com/file/d/1bqM7Ppyr6mns919XCnlY6gyFZGC7v2Ip/view?usp=drive_link


6) KODE 6

    a. Nama program dan deskripsi
        Nama : implementasi pengisian dan pemanggilan inputan
        Deskripsi : Program ini mendemonstrasikan cara menerima input angka secara dinamis dari pengguna untuk mengisi setiap elemen di dalam array, kemudian menampilkannya kembali secara berurutan.

    b. Screenshoot
    c. Penjelasan program
Deklarasi: Program menyiapkan wadah bernama nilai yang bisa menampung 5 angka bulat (int).

Proses Input: Menggunakan loop for agar pengguna bisa memasukkan nilai satu per satu. Perintah cin >> nilai[i] menyimpan angka yang diketik user langsung ke posisi indeks ke-i.

Proses Output: Setelah semua data terkumpul, program melakukan loop sekali lagi untuk mencetak isi array nilai[i] ke layar agar user bisa melihat data yang sudah diinput.

    d. Link source code
https://drive.google.com/file/d/1IEPXqyS0T5L7y2UP9H16loKS61TIGjc4/view?usp=drive_link


7) KODE 7

    a. Nama program dan deskripsi
        Nama : kalkulasi nilai kumulatif dan rata rata menggunakan array
        Deskripsi : Program ini berfungsi untuk menerima input nilai dari sejumlah mahasiswa, menyimpannya dalam array, menjumlahkan seluruh nilai tersebut, dan menghitung nilai rata-ratanya menggunakan tipe data desimal (float).

    b. Screenshoot


       c. Penjelasan program
Variabel Pendukung: Program menyiapkan array nilai berkapasitas 5, variabel total untuk menampung jumlah, dan rata bertipe float agar hasil pembagiannya bisa desimal.

Akumulasi Data: Di dalam loop, selain mengambil input dengan cin, program langsung menambahkan nilai tersebut ke variabel total menggunakan operator +=.

Perhitungan Presisi: Rata-rata dihitung dengan membagi total dengan 5.0. Penggunaan angka .0 memastikan hasil pembagian tetap akurat dalam bentuk desimal.\

Output: Program menampilkan hasil penjumlahan akhir dan rata-rata mahasiswa ke layar.

    d. Link source code
https://drive.google.com/file/d/1n4vtL2ON9b77bRy_PR8n1T-XeYvoMmEd/view?usp=sharing


8) KODE 8

    a. Nama program dan deskripsi
        Nama : Penentuan mencari nilai max
        Deskripsi : Program ini menerima input 5 nilai mahasiswa secara dinamis, menyimpannya dalam array, lalu melakukan perbandingan iteratif untuk menemukan nilai yang paling besar di antara data tersebut.

    b. Screenshoot


    c. Penjelasan program 
Deklarasi & Input: Program menyiapkan array nilai berkapasitas 5 elemen dan menggunakan loop for untuk meminta input user satu per satu.

Inisialisasi max: Variabel max diisi dengan nilai[0] sebagai patokan awal sebelum dibandingkan dengan data lainnya.

Logika Perbandingan: Loop dimulai dari indeks ke-1 (i = 1) untuk mengecek apakah elemen saat ini (nilai[i]) lebih besar dari nilai max yang sedang dipegang.

Hasil Akhir: Setelah loop selesai menyisir seluruh isi array, variabel max akan berisi angka tertinggi yang kemudian dicetak ke layar.

    d. Link source code
https://drive.google.com/file/d/1PZH-rZuK4SHGlUGcrexH_TL7dmTPGMyo/view?usp=drive_link


9) KODE 9

    a. Nama program dan deskripsi
        Nama : Implementasi percabangan untuk program status  kelulusan
        Deskripsi : Program ini menerima input nilai dari 5 mahasiswa, menyimpannya dalam array, lalu melakukan pengecekan satu per satu menggunakan kondisi if-else untuk menentukan apakah mahasiswa tersebut lulus atau tidak berdasarkan standar nilai tertentu.

    b. Screenshoot 


    c.  Penjelasan program
Input Data: Program menggunakan perulangan for untuk meminta 5 input nilai dari user dan menyimpannya di indeks nilai[0] sampai nilai[4].

Parameter Lulus: Batas nilai minimal untuk dinyatakan lulus adalah 75.

Logika if-else:
Jika nilai[i] lebih besar atau sama dengan (>=) 75, maka program mencetak status "Lulus".
Jika nilai di bawah 75, program otomatis masuk ke blok else dan mencetak "Tidak Lulus".

Iterasi Akhir: Program menyisir seluruh isi array sehingga setiap mahasiswa mendapatkan status kelulusannya masing-masing di layar.

    d. Link source code
https://drive.google.com/file/d/1WG8KzApMFmV55DS-lZQ-p9p4oIkeyNtd/view?usp=sharing


10) KODE 10

    a. Nama program dan deskripsi
        Nama : Implementasi Struktur Data menggunakan array of struct
        Deskripsi : Program ini menggabungkan konsep struct dan array untuk menyimpan data kolektif mahasiswa. Setiap mahasiswa memiliki biodata lengkap (NPM, Nama, Jurusan, Umur) dan juga memiliki list hobi di dalam datanya (array di dalam struct).

    b. Screenshoot




    c. Penjelasan program 
Definisi struct: Kita bikin tipe data baru bernama Mahasiswa. Di dalamnya ada campuran string, int, dan bahkan array hobi[3].

Array of Struct: Baris Mahasiswa mhs[3] artinya kita bikin 3 slot "lemari" data mahasiswa sekaligus.

Nested Loop (Perulangan Bersarang):
Loop Luar (i): Mengatur urutan mahasiswanya (Mahasiswa 1, 2, 3).
Loop Dalam (j): Mengatur urutan hobi untuk mahasiswa tersebut (Hobi 1, 2, 3).

Akses Data: Menggunakan operator titik ganda, misalnya mhs[i].hobi[j] yang artinya: "Akses mahasiswa ke-i, lalu ambil hobi ke-j milik mahasiswa itu".

    d. Link source code
https://drive.google.com/file/d/1fuL0o7Hyv6dYdML5nALwENXTuGLS3ORD/view?usp=sharing





-----------------------------------------------------------------------------------------------------------------------

Itu dia implementasi kodingan saya untuk tugas kali ini. Saya sadar ini masih jauh dari sempurna, jadi mohon koreksinya jika ada kesalahan. 

Let’s discuss in the comments if you have any thoughts. 

                                                                                                                                     Thankyou, ciao!






















































































































































Komentar

Postingan populer dari blog ini

TUGAS PERTEMUAN 6_STRUKTUR DATA (D)

TUGAS PERTEMUAN 2_STRUKTUR DATA (D)