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
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
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
Operator Titik (
.): Digunakan untuk mengakses isi di dalam variabel struct. Contohnya p1.id artinya kita mengakses bagian ID milik pelajar 1Dua 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
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
Inisialisasi Array: Program membuat array bernama
myarray dengan 4 elemen: {2, 4, 6, 8}
Dua Perintah
cout1. cout << myarray[i]: Baris ini bertugas mencetak nilai yang tersimpan di dalam array pada indeks ke-i2. cout << "id: " << &myarray[i]: Baris ini menggunakan operator & (address-of) untuk mencetakalamat 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
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
Posting Komentar