Anda di halaman 1dari 16

LAPORAN HASIL PRAKTIKUM

STRUKTUR DATA

NAMA : Naufal Nahendra Shafy


NIM : 203020503065
KELAS :A
MODUL : I (ARRAY, STRUCT DAN POINTER)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
2021
BAB I
LANDASAN TEORI
I. Tujuan Praktikum
1. Mahasiswa mampu mengimplementasikan Array, Struct dan
Pointer.
II. Landasan Teori
A. Pengenalan Array
Array merupakan sebuah variabel yang menyimpan lebih dari 1 buah
data yang memiliki tipe data yang sama. Jadi dapat dikatakan bahwa
array merupakan kumpulan dari data-data tunggal yang dijadikan
dalam 1 variabel array yang alamat memorinya berbeda yang
selanjutnya disebut elemen-elemen array yang bisa kita akses
berdasarkan indeks..
Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.
a. Deklarasi
tipe_data nama_var [ukuran];
tipe_data : tipe data elemen larik (int,char,float, dll)
nama_var : menyatakan nama variabel yang dipakai.
ukuran : menunjukkan jumlah maksimal elemen larik.

Contoh :
int nilai[6];

b. Inisialisasi
Menginisialisasi array sama dengan memberikan nilai awal array pada
saat didefinisikan.
int nilai[5] = {8,7,5,6,4,3};
//atau
int a [2;
a [0] = 10;
a [1] = 3;11
a [2] = 1;
c. Pengaksesan
Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan
dengan mengeset nilai atau menampilkan nilai pada indeks yang
dimaksud. Pengaksesan elemen array dapat dilakukan berurutan atau
random berdasarkan indeks tertentu secara langsung.
#include <iostream>
int main (){
int billy [] = {16, 2, 77, 40, 12071};
int n, result=0;
for ( n=0 ; n<5 :n++) {
cout <<”cetak dengan loop : “<<billiy [n] :
}
cout <<”cetak nilai indek 0 : “<<billiy [0] :
}

B. Pengenalan Struct
Struct adalah tipe data bentukan yang berisi kumpulan variabel-
variabel yang berada dalam satu nama yang sama dan memiliki kaitan
satu sama lain. Berbeda dengan array hanya berupa kumpulan variabel
yang bertipe data sama, struct bisa memiliki variabel-variabel yang
bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang
bertipe data array atau struct itu sendiri. Variabel-variabel yang
menjadi anggota struct disebut dengan elemen struct.
a. Deklarasi
Ada 2 cara pendeklarasian struct, yaitu :
typedef struct Mahasiswa { //cara pertama
char NIM[8];
char nama[50];
float ipk; };
//atau
struct { //cara kedua
char NIM[8];
char nama[50];
float ipk;
}mhs;

Contoh program:
#include <iostream>
int main(){
struct orang{
11 char nama[40];
short umur;
}saya;
cout<<”nama : “: cin.getline(saya.nama.40);
cout<<”umur : “: cin>>saya.umur;
cout<<saya.nama<<”berumur”<<saya.umur;

b. Array of Struct
Apabila struct akan digunakan untuk beberapa kali, ada 2 cara :
#include <stdio.h>
typedef struct Mahasiswa {char NIM[8];
char NIM[8];
char nama[50
float ipk;
};
int main() {
Mahasiswa a,b,c; //cara pertama
//atau
Mahasiswa mhs [3]; //cara kedua
……
}
C. Pengenalan Pointer
Pointer adalah penunjuk suatu variabel. Karena menunjuk suatu
variabel, maka pointer wajib memiliki alamat dari variabel yang
ditunjuknya. Kadangkala dalam program yang besar, penghematan
memori wajib untuk dilakukan. Dengan mekanisme copy dan paste
nilai variabel satu kedalam variabel lain, akan sangat memboroskan
memori. Dengan mekanisme pointer, suatu variabel dalam suatu fungsi
dapat diakses oleh fungsi yang lain.

Gambar 1.1 Ilustrasi Pointer


Ada dua operator pada pointer yaitu operator deference dan reference.
a. Deference (&)
Deference dengan simbol & (ampersand) merupakan suatu
operator yang berfungsi untuk menanyakan alamat dari suatu
variabel. Memberikan simbol & pada awal variabel dan mencetak
hasilnya pada jendela CLI, maka yang akan tercetak adalah alamat
dari variabel tersebut bukan nilai yang ditampung oleh variabel
tersebut. Berikut contoh programnya:
#include <iostream>
int main(){
int a = 5;
cout<<"Alamat Variabel a adalah :"<<&a<<endl;
cout<<"Nilai Variabel a adalah :"<<a<<endl;
return 0;
}
b. Reference (*)
Reference dengan simbol * (asterisk) merupakan suatu operator
yang berfungsi menyatakan suatu variabel adalah variabel pointer.
Sama halnya dengan operator11 deference, peletakan simbol
operator reference diletakan diawal variabel. Operator reference ini
akan membuat suatu variabel pointer untuk menampung alamat.
Perhatikan contoh berikut
#include
int main( ){
int a=5; //Memberikan nilai 5 pada variabel a
int *b; //Mendeklarasikan variabel b sebagai pointer
b = &a; //Mengkopikan alamat a kedalam pointer b
cout<<"Nilai variabel a adalah "<<a<<endl;
cont<<"Alamat variabel a adalah "<<&a<<endl;
cont<<"Isi dari variabel b adalah "<<b<<endl;
cont<<"Nilai yang tertampung dalam variabel b adalah "<<*b<<endl;
return 0;
}
Ada beberapa cara atau pengoperasian pointer yang dapat
dilakukan, diantaranya :
a. Pointer dan array
Pointer dapat digunakan sebagai penunjuk dari nilai index yang
akan digunakan pada sebuah array, bahkan pointer itu sendiri
dapat di berikan index sama seperti array.
#include <iostream>
int main() {
int nilaiArray[3] = {1,2,3};
int *pointerArray;
pointerArray = nilaiArray;
for (int i = 0; i<3; i++){
cont<<”index [“<< i << ”] = “;
cout<<*(pointerArray+i)<<endl;
}
}

b. Pointer dan Struct


#include <iostream>
struct mhs{
int nim;
string nama;
};
int main( ) {
mhs m;
mhs *p = &m;
//struct biasa
m.nama = "Anne";
cout<<m.nama<<endl;
//struct pointer
p->nim = 123;
cout<<p->nim;

c. Pointer sebagai paramater suatu fungsi


Pointer dapat juga digunakan sebagai parameter pada sebuah
fungsi. Parameter ini akan bersifat by reference yang artinya
apa yang dikirimkan sebagai parameter adalah alamat
variabelnya, bukan nilainya. Jadi perubahan nilai yang terjadi
didalam fungsi akan mengubah juga dari variabel alamat
aslinya.
#include <iostream>
void tambah(int *angka){
*angka +=20;
}
int main( ) {
int nilai = 10;
cout<<”Nilai = “<<nilai<<endl;
tambah(&nilai);
cont<<”Nilai = “<<nilai<<endl;
return 0;
}
BAB II
PEMBAHASAN
Pembahasan Tugas
2.1. Program untuk mencetak dan memasukan data buku
#include <iostream>
using namespace std;

int main() {
char kode[10];
char judul[50];
char pengarang[20];
char penerbit[50];
char buku[20];
int jmlhal;

cout << "masukan kode buku : ";


gets(kode);
cout << "masukan judul buku : ";
gets(judul);
cout << "masukan pengarang buku : ";
gets(pengarang);
cout << "masukan penerbit buku : ";
gets(penerbit);
cout << "masukan jumlah halaman buku : ";
cin>>jmlhal;

cout << "kode : " << kode;


cout << ", judul : " << judul;
cout << ", pengarang : " << pengarang;
cout << ", penerbit : " << penerbit;
cout << ", jumlah halaman : " << jmlhal << "
Lembar";

return 0;
}

Gambar 2.1 Tampilan Program pada Aplikasi Dev-C++


Gambar 2.2 Tampilan Output Program pada Aplikasi Dev-C++

Penjelasan Program:
Program diatas mencetak dan memasukan data buku dengan
menggunakan code, hal yang harus di input adalah kode, judul
pengarang buku, penerbit buku dan jumlah halaman buku.

2.2. Program deretan bilangan fibonacci


#include <iostream>
#define max 50
using namespace std;

int*fibo(int n) {
int*arr = new int[n];
arr[0]=1;
arr[1]=1;
for (int i=2; i<n; i++){
arr[i] = arr[i-1]+arr[i-2];
}
return arr;
}

int main ()

{
int num, *ptr;
cout <<"jumlah bilangan fibonacci : ";
cin >> num;
ptr = fibo(num);
for (int i=0; i<num; i++){
cout << *(ptr+i)<<" ";
}
}

`
Gambar 2.3 Tampilan Program pada Aplikasi Dev-C++

Gambar 2.4 Tampilan Output Program pada Aplikasi Dev-C++


Penjelasan Program:
Program diatas memunculkan deretan Fibonacci dengan
menginput angka, dan akan muncul deretan Fibonacci dari angka
tersebut
BAB III
KESIMPULAN
Struktur adalah sekumpulan elemen-elemen data yang digabung
menjadi suatu kesatuan. Struktur array adalah kumpulan elemen-elemen
data yang digabungkan menjadi suatu kesatuan yang memiliki tipe
homogen (sama). Array merupakan bagian dari struktur data yaitu
termasuk ke dalam struktur data sederhana yang dapat didefinisikan
sebagai pemesanan alokasi memori sementara pada komputer. Pointer
adalah sebuah variabel yang berisi alamat lain. Suatu pointer
dimaksudkan untuk menunjukan ke suatu alamat memori sehingga
alamat dari suatu variabel dapat diketahui dengan mudah.
Apabila kita membuat progam dengan data yang yang sudah kita
ketahui batasnya, maka kita menggunakan array (tipe data statis),
namum apabila datanya belum kita ketahui batasnya maka gunakan
pointer (tipe data dinamis). Elemen-elemen array tersusun secara
sekuensial dalam memori komputer. Array dapat berupa satu dimensi,
dua dimensi, ataupun multidimensi.

DAFTAR PUSTAKA
Modul Praktikum Struktur Data
2021. Palangka Raya. Jurusan Teknik Informatika Fakultas Teknik
Universitas Palangka Raya (UPR).
Mahir koding. 2016 Pengenalan Struct
https://www.mahirkoding.com/pengertian-dan-penggunaan-struct-
dalam-bahasa-c/ (Diakses pada 29 Maret 2021
Sinau Ardiono. 2016 Pengenalan Pointer
https://www.sinauarduino.com/artikel/pointer-pada-pemrograman-
cpp/ (Diakses pada 29 Maret 2021)
LAMPIRAN
`

Gambar 2.1 Tampilan Program pada Aplikasi Dev-C++

Gambar 2.2 Tampilan Output Program pada Aplikasi Dev-C++


`
Gambar 2.3 Tampilan Program pada Aplikasi Dev-C++

Gambar 2.4 Tampilan Output Program pada Aplikasi Dev-C++