Pengenalan struktur data dan algoritma
Tujuan :
1. Mahasiswa memahami apakah yang dimaksud dengan struktur data.
2. Mahasiswa memahami apakah yang dimaksud dengan algoritma.
3. Mengingat kembali array, struktur, pointer dalam bahasa C.
1.1 . pengenalan struktur data
Struktur data adalah skema organisasi, seperti struktur dan array, yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasi-operasi spesifik dapat dilaksanakan pada data tersebut.
1.2. pengenalan algoritma
Algoritma adalah barisan langkah-langkah perhitungan dasar yang mengubah masukan (dari beberapa fungsi matematika) menjadi keluaran.
Contoh:
§ Perkalian
Input :integer positif a,b
Output :a X b
Algoritma perkalian:
contoh kasus :a=365, b=24
metode 1:365*24=365+(365*23)
=730+(365*22)
………..
=8760+(365*0)
=8760
Metode 2:
365
24
1460
730
8760
Manakah algoritma yang lebih baik?
1.3. array
Array adalah organisasi kumpulan data homogeny yang ukuran atau jumlah elemen maksimumnya telah diketahui dari awal. Array umumnya disimpan dimemory computer secara kontigu(berurutan). Deklerasi dari array adalah sebagai berikut:
Int A[5]; artinya variable A adalah kumpulan data sebanyak sebanyak 5 bilangan brtipe integer.
Operasi tehadap elemen di array dilakukan dengan pengaksesan langsung. Nilai di masing-masing posisi elemen dapat di ambil dan nilai dapai disimpan tampa melewati posisi lain.
Terdapat dua tipe operasi, yaitu:
1. Operasi terhadap satu elemen/posisi dari array.
2. Operasi terhadap array sebagai keseluruhan.
Dua operasi paling dasar terhadap satu elemen/posisi adalah
1. Penyimpanan nilai elemen ke posisi tertentu di array
2. Pengambilan nilai elemen dari posisi tertentu di array
1.3.1. penyimpanan dan pengambilan nilai
Biasanya bahasa pemograman menyediakan sintaks tertentu untuk penyimpanan dan pengambilan nilai elemen pada posisi tertentu di array.
Contoh:
A[10]=78, berarti penyimpanan nilai 78 keposisi ke-10 dari array A
C=A[10], berarti pengambilan nilai elemen posisi ke 10 dari array A
1.3.2. keunggulan dan kelemahan array
Keunggulan array adalah sebagai berikut:
1. Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat di acu secara langsung tampa melalui elemen-elemen lain.
2. Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-elemen tetangga, baik elemen pendahulu atau elemen penurus.
3. Jika elemen-elemen array adalah nilai-nilai independendan seluruhnya harus terjaga, maka penggunaan penyimpanannya sangat efesien.
Kelemahan array adalah sebagai berikut:
Array mempunyai fleksibilitas rendah, karena array mempunyai batasan sebagai berikut
1. Array harus bertipe homogeny. Kita tidak dapat mempunyai array dimana satu elemen adalah kerakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain.
2. Kebanyakan bahasa pemograman mengiplementasikan array static yang sulit di ubah ukurannya diwaktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menurus, maka representasi statis
· Tidak efesien dalam penggunaan memory
· Menyiakan banyak waktu komputasi
· Pada sustu aplikasi, representasi statis tidak dimungkinkan
1.4 pointer
Misalnya kita ingin membuat beberapa penunjuk ke blog penyimpanan yang berisi integer. Deklarasi pada C adalah:
Int *integerpointer;
Tanda asterisk (*) yang berada sebelum nama variable inteegerpointer menandakan pointer pada suatu int. jadi deklarasi diatas berarti definikan sebuah tipe yang terdiri dari pointer bertipe integer yang bernama intergerpointer.
Apabila didepan ditambahkan Typedef sebagai berikut
Typedef int *integerpointer;
Berarti integerpointer merupakan suatu tipe pointer berbentuk integer.
Apabila ingin mendeklarasikan dua variable A dan B yang menunjuk ke integer:
Integerpointer A, B;
Berarti compiler C akan berisi nilai dari variable A dan B yang menunjukkan ke integer
Untuk membuat beberapa penunjuk ke beberapa penyimpanan integer yang kosong untuk membuat A dan B menunjuk ke tempat tersebut, digunakan prosedur dinamis untuk alokasi penyimpanan yang disebut malloc
A=(integerpointer *) malloc (sizeof(int)) ;
B=(int *) malloc (sizeof(int));
Misalnya kita akan menyimpan integer 5 pada blog penyimpan yang ditunjuk pointer pada variable A. untuk menyimpan angka 5 pada blog penyimpan integer itu melalui pointer A, digunakan pernyataan:
|
Linket list adalah satu struktur yang paling fundamental. Linked list terdiri dari sejumlah kelompok elemen (lingked) dengan ukuran tertentu. Lingked list sangat berguna untuk memelihara sekelompok data, semacam array, tetapi lingked list lebih menguntungkan dalam beberapa kasus. Lingked list lebih efision dalam proses peenyisipan (insertion) dan penghapusan (deletion). Linked lis juga menggunakan pengalokasian penyimpanan dinamis, dimana penyimpan di alokasikan pada saat waktu berjalan(runtime).
1.5 struktur
Struktur adalah koleksi dari variable yang dinyatakan dengan sebuah nama, dengan sifat setiap variable dapat memiliki tipe yang berlainan. Struktur biasa di pakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi suatu kesatuan.
Contoh sebuah struktur adalah informasi data tanggal, yang berisi tanggal, bulan dan tahun.
1.5.1 mendeklarasikan struktur
Contoh pendevinisian struktur adalah sebagai berikut
Struct data_tanggal
{
Int tanggal;
Int bulan;
Int tahun;
};
Yang mendevinisikan tipe struktur bernama data_tanggal, yang terdiri dari tiga buah elemen (field) berupa: tanggal, bulan dan tahun.
Pendevinisian dan pendeklarasian struktur dapat juga di tulis sebagai berikut:
Struct data_tanggal
{
Int tanggal;
Int bulan;
Int tahun;
} tanggal_lahir;
Bentuk umum dalam mendevinisikan dan mendeklarasikan struktur adalah sebagai berikut:
Struct nama_tipe_struktur
{
Tipe field 1;
Tipe field 2;
Tipe field n;
} variable struktur 1,….variable _strukturM;
Masing-masing tipe dari elemen struktur dapat berlainan . adapun variable_struktur1 sampai dengan variable_strukturM menyatakan bahwa variable struktur yang dideklarasikan bias lebih dari satu. Jika ada lebih dari satu variable, antara variable struktur dipisahkan dengan tanda koma.
1.5.2. mengakses elemen struktur
Elemen dari struktur dapat di akses dengan mengunakan bentuk
Variable_struktur.nama_field
Antara variable_struktur dan nama_field dipisahkan dengan operator titik( disebut operator anggota struktur). Contoh berikut merupakan instruksi untuk mengisikan data pada field tanggal
Tanggal_lahir.tanggal=30;
1.6 kesimpulan
1. Struktur data adalah sebuah skema organisasi yang diterapkan pada data sehingga data dapat di interprestasikan dan sehingga operasi spesifik dapat dilaksanakan pada data tersebut
2. Apabila kita membuat program dengan data yang telah kita ketahui batasnya,maka kita bias menggunakan array(tipe data statis), namum apabila data kita belum kita ketahui batasnya, kita bias menggunakan pointer(tipe data dinamis)
3. Untuk sekumpulan data dengan tipe data yang berlainan, namun merupakan satu kesatuan, kita dapat menggunakan struktur untuk mepresentasikannya
0 comments:
Poskan Komentar
salam kenal.........