Anda di halaman 1dari 14

LAPORAN PRAKTIKUM

STRUKTUR DATA DAN


ALGORITMA

MODUL I
TIPE DATA

Disusun Oleh :
NAMA : Haposan Felix Marcel Siregar
NIM : 2311102210
Kelas : IF_11_F

Dosen
Aditya Dwi Putro.W, S.Kom., M.Kom

PROGRAM STUDI S1 TEKNIK


INFORMATIKA FAKULTAS
INFORMATIKA
INSTITUT TEKNOLOGI TELKOM
PURWOKERTO 2024
A. Dasar Teori
` Jenis data yang akan dipelajari adalah sebagai berikut:
1. Tipe data Primitif
2. Tipe data Abstrak
3. Tipe data Koleksi
Tipe data adalah pengklasifikasian data yang dibutuhkan kompiler untuk
mengetahui bagaimana data akan digunakan.Berikut mengenai penjelasan
lebih lanjut dari masing-masing tipe data, yakni

1. Tipe Data primitif


Tipe data primitif adalah tipe data yang telah ditentukan oleh sistem.
Banyak bahasa pemrograman dapat menyediakan tipe data primitif, tetapi
jumlah bit yang dialokasikan untuk setiap bit berbeda-beda tergantung
pada bahasa pemrograman, compiler, dan sistem operasinya. Contoh tipe
data primitif adalah Int, Float, Char, dan Boolean.
2. Tipe Data Abstrak
Programer menciptakan tipe data abstrak, juga dikenal sebagai tipe data
abstrak (ADT). Tipe data abstrak dapat berisi lebih dari satu tipe data,
sehingga nilainya dapat beragam. Pada bahasa C++, fitur Class adalah
fitur program berorientasi objek (OOP), mirip pada fitur pada bahasa C,
Yang mana fungsinya sama, yakni untuk membungkus tipe data di
dalamnya sebagai anggota. Sedangkan perbedaan antara Praktikum Struktur
Data dan Algoritma 2 Struct dan Class adalah pada akses defaultnya dimana
Struct bersifat public dan Class bersifat private
3. Tipe Data koleksi
Tipe data koleksi adalah tipe data yang digunakan untuk
mengelompokkan dan menyimpan sejumlah nilai atau objek secara
bersamaan. Tipe data koleksi memungkinkan Anda menyimpan,
mengelola, dan mengakses jumlah data yang terstruktur. Berikut ini
merupakan beberapa tipe data koleksi yang umum digunakan , antara lain
:

a. Array
b. Vector
c. Map
B. Guided (berisi screenshot source code & output program disertai
penjelasannya)

Guided 1
#include <iostream>
#include <iomanip>

using namespace std;

// Nama : Haposan Felix Marcel Siregar


// NIM : 2311102210

int main(){
char op2311102210;
float num1, num2;

// Meminta user memasukkan operator


cout << "Enter to Operands: " ;
cin >> num1 >> num2;

// Meminta user memasukkan operator


cout << "Enter Operator (+, -, *, /): ";
cin >> op2311102210;

switch (op2311102210){
// Jika pengguna memasukkan +
case '+' :
cout << "Result: " << num1 + num2;
break;
// Jika memasukkan -
case '-' :
cout << "Result: " << num1 - num2;
break;
// Jika memasukkan *
case '*' :
cout << "Result: " << num1 * num2;
break;
// Jika memasukkan /
case '/' :
if (num2 != 0){
cout << "Result: " << fixed << setprecision(2) << num1/num2;
} else {
cout << "Error! Division by zero is not allowed. ";
}
break;

// Jika operator selain diatas dimasukkan


// pesan kesalahan akan ditampilkan

default:
cout << "Error! Operator is not correct";
// switch statement berakhir
}

return 0;
}

Screenshoots Output
Deskripsi:
Program ini adalah contoh kalkulator dasar yang dibuat menggunakan bahasa
pemrograman C++.Program ini dapat melakukan operasi seperti penjumlahan,
pengurangan, perkalian, dan pembagian antar dua bilangan real.

1. Fungsi utama program adalah fungsi main.


2. Program mendeklarasikan variabel op untuk menyimpan operator,
num1 dan num2, dan meminta pengguna memasukkan dua bilangan
real dengan menggunakan cin dan menyimpannya pada num1 dan
num2.
3. Dalam program, pengguna diminta untuk memasukkan operator
menggunakan cin dan menyimpannya pada op.
4. Kemudian, jika op bernilai +, program melakukan penjumlahan num1
dan num2 dan menampilkan hasilnya.
5. Operasi pengurangan, perkalian, dan pembagian juga dilakukan
dengan cara yang sama.
6. Khusus pembagian adalah untuk menghindari pembagian nol. Jika
num2 bernilai nol, program akan menampilkan pesan kesalahan
menggunakan cout. Jika op tidak sesuai dengan operator yang
didefinisikan, program akan menampilkan pesan kesalahan.
Guided 2
#include <iostream>
#include <array>
using namespace std;

// Nama : Haposan Felix Marcel Siregar


// NIM : 2311102210

int main (){


int nilai2311102210[5];
nilai2311102210[0] = 23;
nilai2311102210[1] = 50;
nilai2311102210[2] = 78;
nilai2311102210[3] = 86;
nilai2311102210[4] = 90;

cout << "Isi array pertama : " << nilai2311102210[0] << endl;
cout << "Isi array kedua : " << nilai2311102210[1] << endl;
cout << "Isi array ketiga : " << nilai2311102210[2] << endl;
cout << "Isi array keempat : " << nilai2311102210[3] << endl;
cout << "Isi array kelima : " << nilai2311102210[4] << endl;

return 0;

}
Screenshots Output

Deskripsi:
Program ini menggunakan C++ sederhana untuk menampilkan nilai-nilai pada
array.
Program berikut akan mendeklarasikan array nilai, yang berukuran 5 dan
menginisialisasi nilai pada elemennya. Program juga menggunakan
perulangan for untuk menampilkan nilai pada setiap elemen array nilai.
C. Unguided/Tugas (berisi screenshot source code & output program disertai
penjelasannya)
Unguided 1
#include <iostream>

using namespace std;

//Haposan Felix Marcel Siregar


//2311102210

int main() {
// Deklarasi variabel
int umur2311102210;
float tinggi2311102210;
char initial2311102210;

// Minta pengguna memasukkan nilai


cout << "Masukkan umur: ";
cin >> umur2311102210;
cout << "Masukkan tinggi badan (dalam meter): ";
cin >> tinggi2311102210;
cout << "Masukkan initial nama: ";
cin >> initial2311102210;
cout << endl;

// Tampilkan hasil
cout << "Berikut Hasil Inputan Anda" << endl;
cout << "==========================" << endl;
cout << "Umur: " << umur2311102210 << " tahun" << endl;
cout << "Tinggi badan: " << tinggi2311102210 << " meter" << endl;
cout << "Initial nama: " << initial2311102210 << endl;

return 0;
}
Screenshots Output

Deskripsi:
1. Program ini menunjukkan cara sederhana untuk menyimpan dan
memproses tipe data primitif.
2. Tipe data int umur , float tinggi , dan char initial dideklarasikan
sebagai variabel umur (int), tinggi badan (float), dan initial nama
(char).

Tipe data primitif adalah tipe data yang telah ditentukan oleh sistem. Banyak
bahasa pemrograman dapat menyediakan tipe data primitif, tetapi jumlah bit
yang dialokasikan untuk setiap bit berbeda-beda tergantung pada bahasa
pemrograman, compiler, dan sistem operasinya. Contoh tipe data primitif
adalah Int, Float, Char, dan Boolean.
Unguided 2

#include <iostream>

using namespace std;

//Haposan Felix Marcel Siregar


//2311102210

// Struct untuk menyimpan buku


struct Buku210 {
string judul210;
string penulis210;
int tahunTerbit210;
};

class Perpustakaan {
private:
// Array Buku untuk menyimpan koleksi buku
Buku210 koleksi[20];
int jumlahBuku210;

public:
// Untuk menginisialisasi jumlahBuku menjadi 0
Perpustakaan() {
jumlahBuku210 = 0;
}

// Fungsi untuk menambahkan buku ke koleksi


void tambahBuku(const Buku210& buku210) {
if (jumlahBuku210 < 100) {
koleksi[jumlahBuku210] = buku210;
jumlahBuku210++;
} else {
cout << "Perpustakaan sudah penuh!" << endl;
}
}

// Fungsi untuk menampilkan semua buku


void tampilkanSemuaBuku() {
if (jumlahBuku210 == 0) {
cout << "Tidak ada buku di perpustakaan." << endl;
} else {
for (int i = 0; i < jumlahBuku210; i++) {
cout << "Judul: " << koleksi[i].judul210 << endl;
cout << "Penulis: " << koleksi[i].penulis210 << endl;
cout << "Tahun terbit: " << koleksi[i].tahunTerbit210 << endl;
cout << "Penulis: " << koleksi[i].penulis210 << endl;
cout << "Tahun terbit: " << koleksi[i].tahunTerbit210 << endl;
cout << "########################" << endl;
}
}
}
};

int main() {
// beberapa contoh Buku
cout << "PERPUSTAKAAN BERJALAN" << endl;
cout << "#####################" << endl;
Buku210 buku1 = {"Pengalaman Hidup", "Haposan Siregar", 2024};
Buku210 buku2 = {"Belajar C++", "Haposan Siregar", 2024};
Buku210 buku3 = {"Menguasi C++", "Haposan Siregar", 2024};
Buku210 buku4 = {"Cara Bermain Gitar untuk Pemula", "Haposan Siregar",
2024};
Buku210 buku5 = {"Teknik Pentatonik pada Gitar", "Haposan Siregar",
2024};
Buku210 buku6 = {"Jenis-Jenis Tipe Data", "Haposan Siregar", 2024};
Buku210 buku7 = {"Cara Memilih Gitar", "Haposan Siregar", 2024};

// Membuat objek Perpustakaan


Perpustakaan perpus;

// Input buku ke perpustakaan


perpus.tambahBuku(buku1);
perpus.tambahBuku(buku2);
perpus.tambahBuku(buku3);
perpus.tambahBuku(buku4);
perpus.tambahBuku(buku5);
perpus.tambahBuku(buku6);
perpus.tambahBuku(buku7);

// Menampilkan semua buku di perpustakaan


perpus.tampilkanSemuaBuku();

return 0;
}
Screenshots Output

Deskripsi:
Program ini merupakan penerapan sederhana Class dan struct.
Struc buku dalam program ini untuk menyimpan informasi tentang buku,
seperti judul, penulis, dan tahun terbitnya. Selanjutnya, program
mendefinisikan class Perpustakaan, yang memiliki anggota berupa array buku
(koleksi) dan variabel jumlahBuku untuk mencatat jumlah buku.

Class Perpustakaan memiliki kemampuan untuk memulai jumlah buku.


Kemudian fungsi dalam program ini memiliki kemampuan untuk menambah
buku (tambahBuku) dan menampilkan semua buku (tampilkanSemuaBuku).

Pada bahasa C++, fitur Class adalah fitur program berorientasi objek (OOP),
mirip pada fitur pada bahasa C, Yang mana fungsinya sama, yakni untuk
membungkus tipe data di dalamnya sebagai anggota.

Berikut perbedaan antara Struct dan Class


 Struct: Anggota, termasuk variabel dan fungsi, bersifat publik secara
default. Artinya, tanpa deklarasi khusus, anggota dapat diakses
langsung dari luar struktur.

 Class: Secara default, anggota, baik variabel maupun fungsi, bersifat


private. Ini berarti bahwa anggota hanya dapat diakses dari class itu
sendiri atau melalui fungsi member, yang merupakan fungsi yang
dideklarasikan di dalam class.

Simpelnya, perbedaan antara Praktikum Struktur Data dan Algoritma 2 Struct


dan Class adalah pada akses defaultnya dimana Struct bersifat public dan
Class bersifat private

Unguided 3
#include <iostream>
#include <map>

using namespace std;

int main() {
// Deklarasi map dengan key bertipe string (Kode Unik) dan value bertipe
string (Jenis Gitar)
map<string, string> gitar210;

gitar210["12345"] = "Fender Telecaster";


gitar210["54321"] = "Akustik Yamaha CX-40";
gitar210["67890"] = "Gibson Les Paul";

// Output
cout << "~~~~~TOKO GITAR HAPOSAN~~~~~" << endl << endl;

for (auto it = gitar210.begin(); it != gitar210.end(); ++it) {


cout << "kode: " << it->first << ", jenis : " << it->second << endl;
}

return 0;
}
Screenshots Output

Deskripsi:
 Deklarasi map mahasiswa dengan key bertipe string (Kode Unik) dan
value bertipe string (Jenis Gitar).
 Data Jenis Gitar ditambahkan menggunakan key berupa Kode Unik
dan value berupa Jenis Gitar
 Looping untuk menampilkan data Jenis Gitar menggunakan iterator.
Key diakses melalui it->first dan value diakses melalui it->second

Perbedaan antara “array” dengan “map”


1. Array : Array adalah struktur data statis yang menyimpan elemen-elemen
dengan tipe data yang sama sedangkan Map : Map terasa mirip dengan array
namun dengan index yang memungkinkan untuk berupa tipe data selain integer
2. Array: Ukuran array harus ditentukan saat deklarasi dan bersifat tetap.
Sedangkan
Map: Ukuran map dinamis dan menyesuaikan dengan jumlah data yang
ditambahkan
3. Array: Elemen dalam array tidak harus unik. Sedangkan Map: Key dalam map
harus unik. Setiap key hanya boleh muncul sekali
4. Array dapat digunakan ketika kita mengetahui persis berapa banyak data
yang akan disimpan dan ingin mengaksesnya dengan indeks numerik.
Sedangkan Map cocok digunakan ketika kita membutuhkan struktur data
yang dinamis, mendukung pencarian berdasarkan key yang unik, dan
ingin melakukan operasi penambahan atau penghapusan elemen secara
efisien.
D. Kesimpulan
Tipe data adalah pengklasifikasian data berdasarkan jenisnya, agar kompiler
memahami bagaimana data akan digunakan. Ada 3 jenis utama:

1. Tipe Data Primitif:


Disediakan oleh sistem.
Contoh: int, float, char, boolean.
Digunakan untuk menyimpan data sederhana seperti bilangan, huruf, dan
nilai true/false.
2. Tipe Data Abstrak:
Dibentuk oleh programmer.
Bisa berisi banyak tipe data.
Contoh: struct dan class.
Digunakan untuk membungkus tipe data dan mendefinisikan perilaku
objek.
3. Tipe Data Koleksi:
Digunakan untuk mengelompokkan dan menyimpan beberapa nilai atau
objek.
Contoh: array, vector, map.
Memungkinkan penyimpanan, pengelolaan, dan akses data dalam jumlah
besar dengan cara terstruktur.

E. Referensi (APA)

Adam, R. (2020, Agustus 8). blog. From structilmy.com:


https://structilmy.com/blog/2020/08/08/tutorial-struktur-data-
map-pada-c/
anonim. (n.d.c). diakses dari. From programiz.com:
https://www.programiz.com/cpp-
programming/map#google_vignette
Educba. (2023, April 1). diakses dari blog. From educba.com:
https://www.educba.com/c-plus-plus-map/
Fadielse. (2020, Februari 12). Blog. From KodingKita:
https://kodingkita.com/class-dan-struct/
TylerMSFT, d. (2023, 10 13). diakses dari. From learn.microsoft.com:
https://learn.microsoft.com/id-id/cpp/dotnet/how-to-define-
and-consume-classes-and-structs-cpp-cli?view=msvc-170

Anda mungkin juga menyukai