بِسْمِ اﷲِالرَّحْمٰنِ الرَّحِيْم Banyak kegagalan dalam hidup ini dikarenakan orang-orang tidak menyadari betapa dekatnya mereka dengan keberhasilan saat mereka menyerah Raihlah ilmu, dan untuk meraih ilmu belajarlah untuk tenang dan sabar

Selasa, 30 Maret 2010

Pengenalan struktur data dan algoritma


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))               ;  



A:


B=(int *) malloc (sizeof(int));



A:
B:

                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:


5
                *A=5;
                A:



                B:

                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.........