280 likes | 416 Views
Algo & Struk Data. Struct By : H endri Sopryadi. STRUCTURE. Struktur merupakan kumpulan elemen data yang digabungkan menjadi satu kesatuan data. Masing-masing elemen data tersebut dinamakan field atau elemen struktur .
E N D
Algo & Struk Data Struct By : HendriSopryadi
STRUCTURE • Strukturmerupakankumpulanelemen data yang digabungkanmenjadisatukesatuan data. • Masing-masingelemen data tersebutdinamakan field atauelemenstruktur. • Field tersebutbisamemilikitipe data yang samaataupunberbeda, • meskipun field tersebutdalamsatukesatuantetapitetapbisasiaksessecaraindividu.
Strukturdan array mempunyaikesamaandanperbedaan, kesamaannyayaitu : • alokasimemoriuntukelemen-elemennyasudahditentukansebelum program dijalankan. • Perbedaannya, array adalahstruktur data yang tipe data darielemen-elemennya harus sama dan elemen tersebut diakses melalui indeks • Sedangkan struktur adalah struktur data yang tipe data dari elemen-elemennya tidakharussamadanelementersebutdiaksesmelalui identifier ataunamavariabel.
/* ---------------------------- */ /* Program Penggunaan structure */ /* Nama File : struct1.cpp */ /* ---------------------------- */ #include<stdio.h> #include<conio.h> #include<iostream.h> main() { struct { char nim[5]; char nama[15]; float nilai; } mahasiswa; clrscr(); cout<<"masukan NIM = "; cin>>mahasiswa.nim; cout<<"masukanNama = "; cin>>mahasiswa.nama; cout<<"masukanNilaiAkhir = "; cin>>mahasiswa.nilai; clrscr(); cout<<"NIM = "<<mahasiswa.nim<<endl; cout<<"Nama = "<<mahasiswa.nama<<endl; cout<<"NilaiAkhir = "<<mahasiswa.nilai<<endl; getch(); }
Nested Structure • Nested Structure merupakansuatu Structure dapatdigunakandidalam structure yang lainnya. • Hal sepertiiniandadapatlihatpada program berikutini :
/* ----------------------------------- */ /* Program Penggunaan Nested structure */ /* Nama File : struct2.cpp */ /* ----------------------------------- */ #include<stdio.h> #include<conio.h> #include<iostream.h> main() { structdtmhs { char nim[5]; char nama[15]; }; structdtnil { float nil1; float nil2; }; struct { structdtmhsmhs; structdtnil nil; } nilai;
clrscr(); //-> masukan data cout<<"masukan NIM = "; cin>>nilai.mhs.nim; cout<<"masukanNama = "; cin>>nilai.mhs.nama; cout<<"masukanNilai UTS = "; cin>>nilai.nil.nil1; cout<<"masukanNilai UAS = "; cin>>nilai.nil.nil2; cout<<endl; //-> menampilkanhasilmasukan cout<<"masukan NIM = "<<nilai.mhs.nim<<endl; cout<<"masukanNama = "<<nilai.mhs.nama<<endl; cout<<"masukanNilai UTS = "<<nilai.nil.nil1<<endl; cout<<"masukanNilai UAS = "<<nilai.nil.nil2<<endl; cout<<endl; getch(); return(0); }
Structure dengan Array • Penggunaan Array seringdikaitkandengan Structure, sehinggamembentuk Array dari Structure. Berikutbentukdeklarasi array structure :
Ada 2 jenispenulisan • artinyastructmahasiswadigunakanuntuk 3 variabel, yaitua,b,c
contohstruct of array • artinyastructmahasiswadigunakanuntukmhs[0], mhs[1], danmhs[2]
/* ---------------------------------- */ /* Program Penggunaan array structure */ /* Nama File : struct3.cpp */ /* ---------------------------------- */ #include<stdio.h> #include<conio.h> #include<iostream.h> main() { inti, j=1; struct { char nim[5]; char nama[15]; float nilai; } mhs[5]; clrscr();
for(i=0; i<2; i++) { cout<<"masukan NIM = "; cin>>mhs[i].nim; cout<<"masukanNama = "; cin>>mhs[i].nama; cout<<"masukanNilaiAkhir = "; cin>>mhs[i].nilai; } for(i=0; i<2; i++) { cout<<"Data Ke - "<<j++<<endl; cout<<"NIM = "<<mhs[i].nim<<endl; cout<<"Nama = "<<mhs[i].nama<<endl; cout<<"NilaiAkhir = "<<mhs[i].nilai<<endl; cout<<endl; } getch(); }
Structure dengan Function • Suatuelemen-elemendarisuatu Structure dapatdikirimkankedalamsuatu function dengancara yang samasepertimengirimkansuatuvariabelsederhanakedalamsuatu function. • Berikutcontohsederhana yang andadapatlihatpadacontoh program berikut :
/* ------------------------------------------ */ /* Program Penggunaan structure pada function */ /* Nama File : struct4.cpp */ /* ------------------------------------------ */ #include<stdio.h> #include<conio.h> #include<iostream.h> char* ket(float n); main() { inti, j=1, k=1; struct { char nim[5]; char nama[15]; float nilai; } mhs[5]; clrscr(); for(i=0; i<2; i++) { cout<<"Data Ke - "<<j++<<endl; cout<<"masukan NIM = "; cin>>mhs[i].nim; cout<<"masukanNama = "; cin>>mhs[i].nama; cout<<"masukanNilaiAkhir = "; cin>>mhs[i].nilai; cout<<endl; }
clrscr(); • for(i=0; i<2; i++) • { • cout<<"Data Ke - "<<k++<<endl; • cout<<"NIM = "<<mhs[i].nim<<endl; • cout<<"Nama = "<<mhs[i].nama<<endl; • cout<<"NilaiAkhir = "<<mhs[i].nilai<<endl; • cout<<"Keterangan yang didapat = "; • cout<<ket(mhs[i].nilai)<<endl; • cout<<endl; • } • getch(); • } • char* ket(float n) • { • if(n > 65) • return 'Lulus'; • else • return 'Gagal'; • }
Union • Samasepertistruct, union merupakantipe data yang elemen-elemennyamenggunakansecarabersamaruangsimpanmemori yang sama, berbedadenganstruktur yang tiapvariabelnyamenempatiruangmemoriberbeda
Contoh : • Union nilaiujian • { intuts,uas; float nilai_akhir; • }
Enumerasi • Enumerasiadalahtipe data yang mempunyaielemen-elemenbertipekonstntadenganurutan yang sudahdtentukan. • Nilai-nilaidarikonstantainiberupanilai-nilai integer yang diwakiliolehpengenal yang ditulisdiantaratandakurungkurawal “{ “ dan “}”. • Tipeinidideklarasikandengankatakuncienum. • DeklarasiEnumerasi : • Enumnama_enumerasi{nilai1,nilai2,…}