Selasa, 03 Mei 2011

Materi UTS Struktur Data


Struktur Data adalah suatu teknik dalam pembuatan program sehingga program lebih ringkas, lebih mudah dan lebih efsien dalam penggunaan memori dan waktu
Struktur Data = Obyek Data + Operasi Manipulasi Data
Obyek Data = Kumpulan elemen yang mungkin untuk suatu tipe data tertentu
Tipe Data = Jenis data yang mampu ditangani oleh suatu bahasa pemprograman pada komputer
 Variabel = Tempat untuk menyimpan nilai atau data sementara pada aplikasi
Variabel isinya tidak tetap atau berubah-ubah

Tipe data menentukan nilai yang dapat kita masukkan pada variabel tersebut dan mempengaruhi besarnya memori yang digunakan
Jenis tipe data pada C++ :
1.       char (Karakter)
Kapasitas memori = 1byte
Size (Range) = -128 s/d 127
2.       int (Integer/Bilangan)
Kapasitas memori = 2byte
Size (Range) = -32768 s/d 32786
3.       long (Bilangan Bulat)
Kapasitas memori = 3byte
Size (Range) = -2147438648 s/d 2147438648
4.       float (Real Presisi Tunggal)
Kapasitas memori = 4byte
Size (Range) = 3.4E-38 s/d 3.4E+38
5.       double (Real Presisi Ganda)
Kapasitas memori = 5byte
Size (Range) = 1.7E-308 s/d 1.7E+308

Syarat penamaan Variabel :
1.       Harus diawal denga huruf/abjad atau sebuah garis bawah (underscore)
Contoh : nama, _nama
2.       Tidak boleh menggunakan karakter khusus, misal : ? ; : ! ,
3.       Tidak boleh menggunakan nama variabel yang sama dalam satu blok program
4.       Tdak boleh mengacu pada nama fungsi, reserved keyword dan sejenisnya
5.       Penamaan varabel bersifat Case Sensitve
Konstanta hampir sama dengan variabel, yang membedakan adalah jika variabel nilainya dapat berubah-ubah, sedangkan konstanta nilanya tetap
                Contoh : #devine PAJAK 0.01 dan const float PI =3.14;

Struktur Runtunan
Setiap Struktur akan dikerjakan satu persatu dan akhir dari instruksi terakhir adalah akhir program
Contoh
                #include <stdio.h>
                #include <stdlib.h>
                int main () {
                                printf ("Belajar pemprograman C++ di Kampus Ungu \n\n");
                                system ("pause");
                                retrun 0;
                }
Struktur Percabangan
Struktur ini memungkinkan suatu pernyataan untuk dieksekusi hanya jika kondisi terpenuhi dan tidak terpenuhi.
Bentuk-bentuk percabangan :
1.       Instruksi Tunggal
if (testRelasi) {
                Blok satu atau beberapa pernyataan C/C++
}
2.       Instruksi IF - ELSE
if (testRelasi) {
                Blok satu atau beberapa pernyataan C/C++
} else {
                Blok satu atau beberapa penyataan C/C++
}
Ada operator yang berfungsi sama dengan instruksi IF-ELSE yaitu Operator Bersyarat (TERNARY)
                (testRelasi) ? ekspresi_1 (true) : ekspresi_2 (false)
3.       Instruksi IF-ELSE Majemuk
if (testRelasi_1) {
                Blok satu atau beberapa pernyataan C/C++
} else if (testRelasi_2) {
                Blok saatu atau beberapa pernyataan C/C++
} else if (testRelasi_3){
                Blok satu atau beberapa pernyataan C/C++
}else{
                Blok satu atau beberapa pernyataan C/C++
}
4.       Instruksi SWITCH-CASE
Dirancan untuk menangani pengendalian program yang melibatkan banyak alternative dan harus bertipe data char atau int
switch (ekspresi){
                case nilaiSatu;
                pernyataan;
                break;
                case nilaiDua;
                pernyataan;
                break;
                case nilaiTiga;
                pernyataan;
                break;
}
Struktur Perulangan
Struktur ini memungkinkan suatu pernyataan dieksekusi berulang selama kondisi yang disyaratkan terpenuhi
Bentuk-bentuk perulangan :
1.       Perulangan FOR
for (ekspresi Awal; kondisi; ekspresiPencacah){
                Blok satu atau beberapa pernyataan C/C++
}
2.       Perulangan WHILE
while (ekspresiPenguji){
                Blok satu atau beberapa pernyataan C/C++
}
3.       Perulangan DO-WHILE
do {
                Blok satu atau beberapa penyataan C/C++
} while (ekspresiPenguji)

Operasi Input/Output
1.       scanf
Merupakan fungsi yang digunakan untuk memasukkan berbagai jenis data.
Fungsi ini mirip dengan printf.
Format penulisan :
                scanf ("format I/O", %variabel);
Operator & dikenal dengan istilah operator alamat.
2.       printf
Merupakan fungsi yang digunakan menampilkan berbagai jenis data yang dapat di format menggunakan kode-kode tertentu
Format penulisan
                printf ("string + format I/O", arg1, arg2, argN);

Fungsi : Merupakan sub bagian dari program yang dmaksudkan untuk mengerjakan tugas tertentu dan letaknya terpisah dar program yang memanggilnya
Format penulisan
                TypeData namaFungsi (daftarParameter) {
                                variabel lokal;
                                blok kode;
                }
Daftar Parameter berfungsi sebagai media untuk melewatkan data yang akan di proses didalam fungsi.
Jenis fungsi :
1.       Fungsi yang mengembalikan nilai
2.       Fungsi yang tidak mengembalikan nilai
Parameter Formal adalah parameter yang ada pada deklarasi fungsi.
Parameter Aktual adalah parameter yang ada pada saat pemanggilan fungsi.
Parameter sendiri berguna sebagai media untuk melewatkan data, dengan kata lain berfungsi sebagai input bagi sebuah fungsi.

Melewatkan parameter
Parameter yang dilewatkan dari parameter aktual ke parameter formal dapat berupa by value maupun by reference.
Jika menggunakan konsep passing by value maka isi atau nilai dari variabel yang ada di parameter aktual akan dicopykan ke parameter formal. Dengan demikian tidak ada hubungannya parameter aktual dengan parameter formal. Sehingga perubahan pada parameter formal tidak akan mengubah parameter aktual.
Jika menggunakan konsep passing by reference maka yang dilewatkan bukan nilainya melainkan alamat memory (reference) dari parameter aktual. Dengan demikian, jika ada perubahan terhadap nilai yang dilakukan oleh fungsi pemanggil maka nilai pada parameter aktual-pun ikut berubah.

Array
          Array adalah suatu tipe data terstruktur berupa koleksi data yang tipenya sejenis dan jumlahnya tetap
          Elemen-elemen array tersusun secara sequensial di dalam memory sehingga memiliki alamat yang berdekatan
          Array dapat berupa array 1 dimensi maupun array 2 dimensi
          Elemen-elemen array bertipe data sama tapi bisa mempunyai nilai yang sama atau berbeda
Deklarasi Array
                tipeData namaVarArray[ukuranArray];
tipeData : menyatakan jenis tipe data elemen array (int, char, float, dll)
namaVarrArray : menyatakan nama variabel yang dipakai
ukuranArray : menunjukkan jumlah maksimal elemen array

Inisialisasi Array
Inisialisasi array adalah proses pemberian nilai awal pada variabel array.
Inisialisasi bisa ditentukan pada saat deklarasi atau sesudahnya.

Cara Akses Array
          Elemen-elemen array dapat diakses menggunakan suatu index / alamat
          Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan index-nya

Array 2-D
Jika array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi 2 terdiri dari banyak baris dan banyak kolom yang bertipe sama.
Seringkali array 2D dianalogikan sebagai sebuah matriks

Struct (Struktur)
Salah satu bentuk struktur data berupa sekelompok data dengan satu nama (identifier).
Elemen data ini, yang dikenal sebagai anggota, dapat memiliki berbagai jenis dan panjang yang berbeda.
Deklarasi
struct nama_struct {
                tipeData var1;
                tipeData var2;
                tipeData varN;
};

Searching Array
          Pada suatu data seringkali dibutuhkan pembacaan kembali informasi dengan cara searching.
          Searching adalah proses pencarian data dengan cara menelusuri data-data tersebut.
          Tempat pencarian data dapat berupa array dalam memori, bisa juga pada file pada external storage
          Ada beberapa teknik searching yang biasa digunakan yaitu sequential search  dan binary search

Sequential Search
          Adalah suatu teknik pencarian data dalam array yang akan menelusuri semua elemen-elemen array dari awal sampai akhir.
          Kemungkinan terbaik adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal).
          Kemungkinan terburuk adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).

Binary Search
          Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian.
          Teknik pencarian datanya dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian
          Algoritmanya adalah sebagai berikut :
1.       Baca nilai array yang sudah diurutkan
2.       Baca nilai yang dicari
3.       Inisialisasi
        depan = 0, belakang = elemen array - 1
4.       Kerjakan langkah 5 dan 6 selama belakang >= depan
5.       Menentukan batas sub array
        Tentukan : tengah = (depan + belakang) / 2
6.       Tes nilai yang dicari terhadap nilaiArray[tengah]
        kondisi #1
        jika cari < nilaiArray[tengah], berarti ada di sub array 1
                        tentukan : belakang = tengah – 1
        kondisi #2
        jika cari > nilaiArray[tengah], berarti ada di sub array 2
                        tentukan : depan = tengah + 1
        kondisi #3                                                                                           
        jika cari = nilaiArray[tengah], berarti ketemu      
                        tentukan : index = tengah                                           
                                              depan = belakang + 1

Tidak ada komentar:

Posting Komentar