Laporan Hasil Praktikum Struktur Data
Laporan Hasil Praktikum Struktur Data
STRUKTUR DATA
NAMA : IRWANDI
NIM : 193030503054
KELAS :B
MODUL : I (ARRAY, STRUCT DAN POINTER)
1. Array
Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu
yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik
disebut dengan elemen-elemen larik. Letak urutan dari suatu elemen larik
ditunjukkan oleh suatu subscript atau suatu index.
Menurut dimensinya, array dapat dibedakan menjadi :
Syntax :
Struct [<struct type name>]{
[<type><variabel-name[,variabel-name, …]>];
} [<structure variabels>];
Contoh :
typedef struct
{
int NIP ;
char nama[30]
} pegawai_t;
Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan
sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan
beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.
3. Pointer
Pointer adalah variabel yang merujuk pada alamat lokasi suatu memori tertentu,
variable pointer dapat dideklarasikan dengan menuliskan nama variabelnya
diawali dengan asterisk (‘*’). Perubahan yang terjadi pada variabel asal akan
mengakibatkan perubahan pada variabel pointernya dan sebaliknya.
Misalnya kita ingin membuat beberapa penunjuk ke blok penyimpan yang berisi
integer. Deklarasi pada C adalah:
int *IntegerPointer;
Tanda asterik (*) yang berada sebelum nama variable IntegerPointer menandakan
‘pointer pada suatu int’. Jadi deklarasi diatas berarti ‘definisikan sebuah tipe yang
terdiri dari pointer bertipe integer yang bernama IntegerPointer’. Apabila
didepannya ditambahkan typedef sebagai berikut
Berarti kompiler C akan berisi nilai dari variable A dan B yang ‘menunjuk ke
integer’.
Misalnya kita akan menyimpan integer 5 pada blok penyimpan yang ditunjuk
pointer pada variable A. Untuk menuimpan angka 5 pada blok penyimpan
integer itu melalui pointer A, digunakan pernyataan :
*A = 5; 5
Linked list adalah salah satu struktur data yang paling fundamental. Linked list
terdiri dari sejumlah kelompok elemen (linked ) dengan urutan tertentu.
Linked list sangat berguna untuk memelihara sekelompok data, semacam
array, tetapi linked list lebih menguntungkan dalam beberapa kasus. Linked
list lebih efisien dalam proses penyisipan (insertion ) dan penghapusan
(deletion )
BAB II
PEMBAHASAN
1.1. Program pertama (Array) :
For (1=3;1<=MAX++)
Fibo[1]=fibo[1-2]+fibo[i-1];
Printf (“b bilangan fibonachi pertama adalah : \n”,MAX);
For(i=1;i<=MAX;1++);
Printf ( “d-“, fibo[i]);
1. mulai
2. Definisi maksimal MAX = 10
3. Integer i
4. Bilangan fibo[1] = 1 dan fibo[2] = 1
5. Untuk i = 3 , i <=MAX dan i bertambah , fibo[i] = fibo [i-2] + fibo [i-1]
6. Tampilkan “%d bilangan Fibonaci pertama adalah :” \n, MAX
7. Untuk i = 1 , i < MAX dan i bertambah , output fibo[i]
8. Tampilkan %d, fibo[i]
9. Selesai
Penjelasan
Contoh lain: array_data.cpp
#include <iostream>
using namespace std;
int main(){
// membuat array kosong
int nilai[5];
// mengisi array
nilai[0] = 32;
nilai[1] = 42;
nilai[2] = 76;
nilai[3] = 31;
nilai[4] = 57;
return 0;
}
Contoh program array
Output:
1. Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana
satu elemen adalah karakter, elemen lain bilangan, dan elemen lain
adalah tipe-tipe lain
2. Kebanyakan bahasa pemrograman mengimplementasikan array statik
yang sulit diubah ukurannya di waktu eksekusi. Bila penambahan dan
pengurangan terjadi terus-menerus, maka representasi statis Tidak
efisien dalam penggunaan memori Menyiakan banyak waktu komputasi
Pada suatu aplikasi, representasi statis tidak dimungkinkan
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
};
main(){
int n,i;
dataBuku buku[n];
for(i=1;i<=n;i++)
{
cout<<"buku ke- ["<<i<<"] ";
cout<<endl;
cout<<"Kode buku :";
cin >> buku[n].kode;
cout<<"Nama buku :";
cin >> buku[n].nama;
cout<<"Tahun terbit :";
cin >> buku[n].tahunTerbit;
cout<<"nama pengarang :";
cin >> buku[n].pengarang;
cout<<"Harga buku :";
cin >> buku[n].hargaBuku;
cout << endl;
system ("cls");
}
for (i=1;i<=n;i++)
{
cout <<"buku ke- " <<i<<endl;
cout <<"kode buku " <<buku[n].kode<<endl;
cout <<"Nama buku " <<buku[n].nama<<endl;
cout <<"Tahun terbit " <<buku[n].tahunTerbit<<endl;
cout <<"Nama pengarang " <<buku[n].pengarang<<endl;
cout <<"Harga buku " <<buku[n].hargaBuku<<endl;
cout<<endl;
}
return 0;
}
1.2 Program struct
Output :
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
Nama_struct : merupakan identitas dari struct tersebut
Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama,
dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa
dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi
sebuah satu kesatuan.
Contoh sebuah struktur adalah informasi data tanggal, yang berisi: tanggal,
bulan dan tahun.
struct data Buku{
char kode[50];
char nama[50];
char tahunTerbit[50];
char pengarang[40];
double hargaBuku;
};
main(){
int n,i;
Mendeklarasikan Struktur
Contoh pendefinisian tipe struktur adalah sebagai berikut:
Struct data_buku
{ int banyaknya buku
int banyaknya buku
};
pendeklarasian struktur
dapat juga ditulis sebagai
berikut:
struct data buku
{ int tanggal;
Int bulan; int tahun; }
tgl_lahir;
Bentuk umum dalam mendefinisikan dan mendeklarasikan struktur adalah
sebagai berikut
struct nama_tipe_struktur {
tipe field1;
tipe field2;
tipe fieldn;
}variabel_struktur1, ... , variabel_strukturM;
Masing-masing tipe dari elemen struktur dapat berlainan. Adapun
variabel_struktur1 sampai dengan variabel_strukturM menyatakan bahwa
variabel struktur yang dideklarasikan bisa lebih dari satu. Jika ada lebih dari
satu variabel, antara variabel struktur dipisahkan dengan tanda koma.
dataBuku buku[n];
for(i=1;i<=n;i++)
{
cout<<"buku ke- ["<<i<<"] ";
cout<<endl;
cout<<"Kode buku :";
cin >> buku[n].kode;
cout<<"Nama buku :";
cin >> buku[n].nama;
cout<<"Tahun terbit :";
cin >> buku[n].tahunTerbit;
cout<<"nama pengarang :";
cin >> buku[n].pengarang;
cout<<"Harga buku :";
cin >> buku[n].hargaBuku;
cout << endl;
system ("cls");
}
#Include <stdio.h>
Main()
{
Int y, x =87;
Int *px;
Px=x;
Y =px;
Output:
1.3 Output hasil dari program pointer
1. Mulai
2. Variabel integer y, x =87
3. Variabel integer *px
4. Nilai px = alamat x(&x)
5. Nilai y = *px
6. Output alamat x = &x (alamat x)
7. Output isi px = px yaitu &x (alamat x)
8. Output isi x = x yaitu 87
9. Output nilai yang di tunjuk px = *px(nilai yang ada di alamat x) yaitu 87
10. Output nilai y = y yaitu *px(nilai yang ada di alamat x)
11. Selesai
Penjelasan
Program ini digunakan untuk menampilakan nilai dari varibel yang didenifisikan
berupa x dan y berupa alamat x, isi px, isi x, nilai yang ditunjuk oleh px, dan nilai
y. Header yang digunakan adalah <stdio.h> untuk perintah printf dengan tipe data
integer. Ini menunjukkan bagaimana cara pointer bekerja, *px (variabel integer
pointer x).
Tanda asterik (*) di baca sebagai nilai yang ada dalam alamat pointer, sedangkan
tanda & dibaca sebagai alamat dari pointer. Diketahui bahwa nilai px=&x, nilai y
= *px. Tidak terdapat kesalahan sintax pada program ini.
Dari program (code) contoh penggunaan Operator Dereference (&) diatas,
kami mencoba membuat ilustrasinya pada gambar dibawah ini sehingga sobat
dapat lebih memahami code yang kami buat, perlu diketahui alamat memori dari
sebuah variabel / pointer pada setiap komputer kemungkinan besar berbeda
Pada program diatas awalnya kita membuat variabel dengan tipe data int dengan
nama "x", kemudian sebuah pointer dengan tipe data int dengan nama "p". setelah
itu memberikan nilai x dengan nilai "20" kemudian mengarahkan / mengisi /
menunjukkan pointer p ke alamat memori variabel x. setelah itu menampilkan
data dari variabel x dan pointer p,.
Tidak terbatas menunjuk alamat dari suatu variabel, pointer dapat pula menunjuk
ke pointer lainnya. Didalam pendeklarasianya, hanya menambahkan pointer refere
nce ( * ) pada variabel yang akan ditunjuk.
Contog Program :
#include <iostream> //file header input output
using namespace std; //mengunakan namespace std
int main(void){ //fungsi utama yang dijalankan program
int angka = 10; //deklarasi variable angka dengan nilai 10
int *point; //deklarasi pointer point
int **pointpoint; //deklarasi pointer pointpoint yang akan diisi pointer point
point = &angka; //pengisian pointer point dengan alamat angka
pointpoint = &point; //pengisian pointer pointpoint dengan alamat pointer point
cout<<**pointpoint; //mengkases nilai angka dari pointer ke pointer
return 0; //mengmbalikan nilai 0
BAB III
KESIMPULAN
1.4 Array
Array adalah organisasi kumpulan data homogen yang ukuran atau jumlah
elemen maksimumnya telah diketahui dari awal. Array umumnya disimpan
di memori komputer secara kontigu (berurutan). Deklarasi dari array adalah
sebagai berikut:
int A[5]; artinya variabel A adalah kumpulan data sebanyak 5
bilangan bertipe integer. Operasi terhadap elemen di array dilakukan
dengan pengaksesan langsung. Nilai di masing-masing posisi elemen
dapat diambil dan nilai dapat disimpan tanpa melewati posisi-posisi lain.
Struct
Penggunaan dari nama_struct dan nama_object merupakan opsional, kita
bisa mendirikan tanpa hal tersebut, tapi kita tidak bisa mengabaikan
keduanya. Dan masing-masing tindakan akan membuat struct memiliki
sifat yang berbeda.
Jika kita mendirikan struct tanpa menggunakan nama_struct, maka kita
diharuskan menggunakan object. Jika tindakan ini dilakukan maka akan
membuat struct tidak bisa di pakai di luar deklarasi struct (kita tidak bisa
mendirikan object diluar struct tersebut). biasanya tindakan ini digunakan
untuk membuat sebuah struct yang tidak di anjurkan untuk digunakan
(agar tidak terjadi pembuatan object di luar deklarasi struct).
Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama,
dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa
dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi
sebuah satu kesatuan.
Contoh sebuah struktur adalah informasi data tanggal, yang berisi: tanggal,
bulan dan tahun.
Pointer
Program ini digunakan untuk menampilakan nilai dari varibel yang
didenifisikan berupa x dan y berupa alamat x, isi px, isi x, nilai yang ditunjuk
oleh px, dan nilai y. Header yang digunakan adalah <stdio.h> untuk perintah
printf dengan tipe data integer. Ini menunjukkan bagaimana cara pointer
bekerja, *px (variabel integer pointer x).
Tanda asterik (*) di baca sebagai nilai yang ada dalam alamat pointer,
sedangkan tanda & dibaca sebagai alamat dari pointer. Diketahui bahwa nilai
px=&x, nilai y = *px. Tidak terdapat kesalahan sintax pada program ini.
Dari program (code) contoh penggunaan Operator Dereference (&) diatas,
kami mencoba membuat ilustrasinya pada gambar dibawah ini sehingga sobat
dapat lebih memahami code yang kami buat, perlu diketahui alamat memori
dari sebuah variabel / pointer pada setiap komputer kemungkinan besar
berbeda
Pada program diatas awalnya kita membuat variabel dengan tipe data int
dengan nama "x", kemudian sebuah pointer dengan tipe data int dengan nama
"p". setelah itu memberikan nilai x dengan nilai "20" kemudian mengarahkan /
mengisi / menunjukkan pointer p ke alamat memori variabel x. setelah itu
menampilkan data dari variabel x dan pointer p,.
BAB IV
DAFTAR PUSTAKA
1.5 Daftar Pustaka
Tim Asisten Praktikum. 2010. Modul 1 Struct, Array, Pointer. Malang:
Unversitas Negeri Malang.
BAB V
LAMPIRAN
1.6 Lampiran
Program Array
Output :
Program Pointer
1.3 Program Pointer
Output :