ALGORITMA DAN STRUKTUR DATA Erni Seniwati STMIK AMIKOM Yogyakarta TIPE DATA TERSTRUKTUR • Array • Struct (Struktur) ARRAY • Salah satu bentuk struktur data yang bersifat linear (kontinu). • Array merupakan variabel yang mampu menyimpan sejumlah nilai yang bertipe sama. • Nilai data array harus homogen (bertipe data sama). • Bentuk Array 1. Array Berdimensi Satu 2. Array Berdimensi Dua 3. Array Berdimensi Tiga 4. Array Berdimensi Banyak NB:pada umumnya digunakan berdimensi satu dan dua. SIFAT ARRAY • Array Statis jumlah elemen yang ada harus ditentukan terlebih dahulu dan tak bisa di ubah saat program berjalan. • Array Dinamis jumlah elemen yang ada tidak harus ditentukan terlebih dahulu dan bisa di ubah saat program berjalan. Bentuk Umum Array (C++) • Array Berdimensi Satu Data_Type Array_Name[jumlah elemen data]; • Array Berdimensi Dua Data_Type Array_Name[jlh baris, jlh kolom]; Contoh ARRAY Statis #include <conio.h> #include <iostream> void main() { char nama[3]; nama[1]= 'E'; nama[2]= 'K'; nama[3]= 'A'; cout<<nama[1]<<nama[2]<<nama[3]; getch(); } Contoh ARRAY Dinamis #include <conio.h> #include <iostream> void main () { int nilai_algoritma [10],i; for (i=1;i<=5;i++) { cout<< "Masukkan Nilai Algoritma " <<i<<"="; cin>>nilai_algoritma[i]; } for (i=1;i<=5;i++) { cout<<"Nilai Algoritma " <<i <<"=" <<nilai_algoritma[i] <<endl; } getch(); } KASUS ARRAY DIMENSI 1 Buat algoritma untuk menghitung rata-rata nilai algoritma dari 10 mahasiswa dengan array SOLUSI Int nilai_algoritma [10] Total_nilai=0 For (i=1;i<=10;i+1) { Input nilai_algoritma[i] Total_nilai=total_nilai+nilai_algoritma[i] } Rata_rata=total_nilai/10 Output rata_rata KASUS ARRAY DIMENSI 2 Contoh deklarasi array 2 D Int nilai[2,3] Buat algoritma untuk proses input terhadap variabel array int nilai[2,3] SOLUSI Int nilai[2,3]; For(baris=1; baris<=2; baris+1) { for (kolom=1; kolom<=3; kolom+1) { input nilai[baris,kolom]; } } STRUCT (Struktur) • Merupakan kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. • Masing-masing elemen data tersebut dinamakan field atau elemen struktur. • Jumlah field sebuah struktur tidak terbatas, namun untuk suatu objek, atribut-atribut yang perlu dicatat akan terseleksi sesuai keperluannya. • Filed data dapat memiliki tipe data yang sama ataupun berbeda. Persamaan ARRAY dan STRUCT • Alokasi memori untuk elemen-elemennya sudah ditentukan sebelum program dijalankan (statis). Perbedaan ARRAY dan STRUCT • Array adalah struktur data yang tipe data dari elemen-elemennya harus sama (homogen) dan elemen-elemennya diakses atau diidentifikasi menggunakan indeks. • Struct adalah struktur data yang tipe data dari elemen-elemennya tidak harus sama (heterogen) dan elemen-elemennya diakses atau diidentifikasi menggunakan identifier atau nama variabel. Bentuk Umum Struct (C++) Struct Variabel_name { data_type1 variabel_name1; data_type2 variabel_name2; … … data_typen variabel_namen; }; Contoh STRUCT Struct mahasiswa { char nim[10]; char nama[25]; float IPK; }; Contoh STRUCT (Lanjutan…) Buatlah algoritma untuk menghitung sisi miring segitiga siku-siku dengan menggunakan struktur. SOLUSI #include <conio.h> #include <iostream> void main() { struct { float datar; float tegak; float miring; } segitiga; //struct segitiga segi3; cout<<"masukkan sisi datar = " ; cin>>segitiga.datar; cout<<"masukkan sisi tegak = " ; cin>>segitiga.tegak; segitiga.miring=segitiga.datar*segitiga.tegak; cout<<"sisi miring dari segitiga yang mempunya sisi : " <<endl; cout<<"Datar = " <<segitiga.datar <<endl; cout<<"Tegak = " <<segitiga.tegak <<endl; cout<<"Miring = " <<segitiga.miring <<endl; getch(); }