Algoritma Struct Dengan C++ (Maksudi Indra R - 1134040 - D4TI3A)
Plagiat Cek
Struct merupakan suatu
struktur data yang menggabungkan beberapa data dengan berbagai tipe data yang
memiliki ukuran yang berbeda (terdiri dari 1 atau lebih variabel yang bertipe
data sama atau berbeda) di kelompokan dalam satu deklarasi unik dan saling
berkaitan, dengan format sebagai berikut :
struct
model_name
{
type1
element1;
type2
element2;
type3
element3;
}
object_name;
Dimana model_name
adalah nama untuk model tipe stukturnya dan parameter optional object_name
merupakan identifier yang valid untuk objek struktur. Diantara kurung kurawal {
} berupa tipe dan sub-identifier yang mengacu ke elemen pembentuk struktur.
Jika pendefinisian stuktur menyertakan parameter model_name (optional), maka
parameter tersebut akan menjadi nama tipe yang valid ekuivalen dengan struktur.
1.
Struct secara logik membuat suatu tipe data
baru (user defined) yang dapat dipergunakan untuk menampung informasi / data
yang bersifat majemuk.
2.
Berbeda dengan array yang berisi
kumpulan variable-variable yang bertipe sama dalam satu nama, maka suatu
struktur dapat terdiri atas variable-variable yang berbeda tipenya dalam satu
nama struktur.
3.
Struktur dalam C++ dideklarasikan
menggunakan keyword struct diikuti dengan nama struktur, atau sering disebut
dengan tag. Variabel-variabel strukur dideklarasikan dalam kurung kurawal { },
setiap elemennya dipisahkan dengan tanda titik koma atau semi colon. Bentuk
umum/sintaks deklarasi struktur :
Contoh :
struct
nama_struktur
{
type1
element1;
type2
element2;
type3
element3;
}
;
struct
nama_struktur nama_object;
Contoh
definisi dari struktur adalah:
struct
mahasiswa
{
char
nama[25];
int
umur;
float
rata2;'
};
4.
Struct dapat dideklarasikan secara bertingkat,
yaitu salah satu field struct bertipe struct lainnya (nested Structure) .
Selain itu struct juga dapat digabungkan dengan array, struct yang field-nya
berupa array atau array yang setiap elemennya berupa structure.
b.) Kegunaan dari
struct :
1.
Pemakaian struktur data yang tepat di
dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan
tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan
sederhana.
Jenis struct :
• Struktur Data
Sederhana
1. Array (Larik)
Larik
yaitu struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama.
Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data
yang menyatakan keterurutan misalnya integer atau karakter. Tipe elemen larik
dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain
array adalah Larik, tabel, atau vektor.
2. Record (Catatan)
ADT adalah definisi
tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut. Tipe
diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang
bersangkutan.
• Struktur Data Majemuk
1. Linier
a. Queue (Antrian)
Queue (antrian) adalah
list linier yang dikenali elemen pertama (head) dan elemen terakhirnya (tail);
Aturan penyisipan dan penghapusan elemennya disefinisikan sebagai penyisipan
selalu dilakukan setelah elemen terakhir, penghapusan selalu dilakukan pada
elemen pertama; Satu elemen dengan elemen lain dapat diakses melalui informasi
next.
b. List dan Multi-List
(Daftar)
List linier adalah
sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang
setiap elemennya terdiri dari 2 bagian. sebuah list linier dikenali dengan (1)
elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut (first);
(2) Alamat elemen berikutnya (suksesor), jika kita mengetahui alamat sebuah
elemen, yang dapat diakses melalui field next; (3) Setiap elemen mempunyai
alamat, yaitu tempat elemen disimpan dapat diacu. Untuk mengacu sebuah elemen,
alamat harus terdefinisi. Dengan alamat tersebut informasi yang tersimpan pada
elemen list dapat diakses; (4) Elemen terakhirnya.
2. Non-Linier
a. Binary Tree (Pohon
Biner)
Sebuah pohon biner
(binary tree) adalah himpunan terbatas yang mungkin kosong atau terdiri dari
sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang
disjoint yang merupakan pohon biner yang disebut sebagai sub pohon kiri (left)
dan sub pohon kanan (right) dari pohon biner tersebut. Pohon biner merupakan
tipe yang sangat penting dari struktur data dan banyak dijumpai dalam berbagai
terapan. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap
simpul paling banyak hanya memiliki dua buah anak, dan mungkin tidak punya
anak.
b. Graph (Graf)
Graph merupakan
struktur data yang paling umum. Jika struktur linier memungkinkan pendefinisian
keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan
pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan
pendefinisian keterhubungan tak terbatas antara entitas data. Banyak
entitas-entitas data dalam masalah-masalah nyata secara alamiah memiliki
keterhubungan langsung (adjacency) secara tak terbatas demikian. Struktur data
graph secara eksplisit menyatakan keterhubungan ini sehingga pencariannya
langsung (straightforward) dilakukan pada strukturnya sendiri.
c.) Struct sebagai
parameter :
Structure
dapat dikirim ke function sebagai parameter, jika structure ini hanya merupakan
data masukan, maka dapat dikirimkan dengan call by value, tetapi bila structure
yang dikirimkan akan mengalami perubahan nilai maka pengiriman parameter harus
dengan call by reference dengan mengirimkan pointer to struct. Struct juga
dapat menjadi return type sebuah function.
Contoh struct1 (pass by
reference):
#include<
stdio.h >
#include<
conio.h >
struct
t_hitung{
int
x;
int
y;
};
int
Hitung(struct t_hitung *Nilai)
{
int
y;
y=Nilai->y*5+2;
Nilai->x=25;
return
y;
}
int
main()
{
struct
t_hitung *Angka;
int
m;
Angka->x=5,
Angka->y=10;
m
= Hitung(Angka);
printf("x=
%d\ny= %d\nm= %d",Angka->x,Angka->y, m);
return
0;
}
Contoh
struct2 (array structures) :
#include<
stdio.h >
#include<
conio.h >
#define
X 5
struct
products{
char
name[30];
float
price;
};
int
main()
{
int
i, j, jml;
struct
products Apple[X];
char
temp[30];
float
Harga;
printf("Berapa
jenis apel [Max %d]: ", X);
scanf("%d",
&jml);
for(i=0;i{
printf("Masukkan
nama buah ke-%d: ", i+1);
flushall();
gets(temp);
strcpy(Apple[i].name,
temp);
printf("Masukkan
harga buah : ");
scanf("%f",
&Harga);
Apple[i].price=Harga;
}
printf("\n\nHasil
:\n");
for(j=0;jprintf("%s
Rp %.2f\n",Apple[j].name, Apple[j].price);
return
0;
}
d.) Pengaksesan struct
:
1. Operator titik
digunakan sebagai pemisah antara variabel struktur dengan elemennya, penulisan
ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk
mengakses suatu element dari variabel struktur.
2. Operator panah
digunakan untuk pengaksesan operasi pointer, atau menggunakan operator bintang
(’*’), untuk pengaksesan element-element suatu struktur yang berupa pointer.
Contoh Pengaksesan
dengan operator titik dan panah:
-
p Pegawai_t.NIP
-
p Pegawai_t.nama
-
( (*peg_t).NIP == peg_t -> NIP
0 komentar: