Algoritma Struct Dengan C++ (Maksudi Indra R - 1134040 - D4TI3A)

18:08 Pemrograman Web 0 Comments

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: