Rabu, 03 Desember 2008

Tugas 3

MACAM – MACAM PENGURUTAN DATA

1. Bubble sort
Bubble sort adalah salah satu pengurutan metode
exchanging yang bersifat langsung dan termasuk jenis
pengurutan yang paling sederhana. Nama bubble sort
ini berasal dari sifat elemen terbesar yang selalu naik
ke atas (ke akhir dari list) seperti bubble.

Ide dari bubble sort adalah sebagai berikut :
· Algoritma dimulai dari elemen paling awal.
· 2 buah elemen pertama dari listdibandingkan.Jika elemen pertama lebih besar dari elemen kedua,dilakukan pertukaran.
· Langkah 2 dan 3 dilakukan lagi terhadap elemen kedua dan ketiga, seterusnya sampai ke ujung elemen
· Bila sudah sampai ke ujung dilakukan lagi ke awal sampai tidak ada terjadi lagi pertukaran elemen.
· Bila tidak ada pertukaran elemen lagi, maka list elemen sudah terurut.

2. Quick Sort
Quick sort merupakan divide and conquer algorithm.
Algoritma ini mengambil salah satu elemen secara
acak (biasanya dari tengah) lalu menyimpan semua
elemen yang lebih kecil di sebelah kirinya dan semua
elemen yang lebih besar di sebelah kanannya. Hal ini
dilakukan secara rekursif terhadap elemen di sebelah
kiri dan kanannya sampai semua elemen sudah terurut.
Algoritma ini termasuk algoritma yang cukup baik dan
cepat. Hal penting dalam algoritma ini adalah
pemilihan nilai tengah yang baik sehingga tidak
memperlambat proses sorting secara keseluruhan.

Ide dari algoritma ini adalah sebagai berikut :
· Pilih satu elemen secara acak
· Pindahka semua elemen yang lebih kecil ke sebelah elemen tersebut dan semua elemen yang lebih besar ke sebelah kanannya. Elemen yang nilainya sama bisa disimpan di salah satunya. Ini disebut operasi partisi
· Lakukan sort secara rekursif terhadap sublist sebelah kiri dan kanannya.


3. Shell Short
· Metode Pertambahan Menurun
· Dikembangkan oleh Donald L. Shell (1959)
· Mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu sehingga dibentuk sub-list, kemudian dilakukan pertukaran jika diperlukan


Contoh Program Sederhana Array :

#include

class Foo
{
public:
Foo() {} // default ctor
virtual ~Foo() {} // dtor
Foo( const Foo& ) {} // copy ctor
operator = ( const Foo& ) {} // assignment op
};

int main(int argc, char *argv[])
{
std::vector arrFoo;

Foo f1,f2,f3;
arrFoo.push_back(f1);
arrFoo.push_back(f2);
arrFoo.push_back(f3);
cout << "Size arrFoo: " << arrFoo.size();
arrFoo.pop_back();
cout << "Size arrFoo: " << arrFoo.size();
system( "PAUSE" );
return 0;
}

Minggu, 12 Oktober 2008

TUGAS 2

Object-Oriented Programming & Procedural Programming

Procedural Programming
  • Membagi program ke beberapa fungsi. Sekumpulan perintah yang sama dan dipakai berulang-ulang di lokasi yang berbeda dari sebuah program, dipisah menjadi sebuah fungsi.
  • Fungsi bersifat umum untuk semua data. Mis: 2 struct yang berbeda bisa dikirim ke sebuah fungsi. Tidak ada pengecekan apakah yang dikirim adalah struct yang “benar” atau “salah”
  • Diselesaikan dalam bentuk prosedur atau fungsi
  • Program merupakan urut-urutan instruksi
  • Program dipecah-pecah ke dalam sub program yang lebih sederhana
  • Fokus utama pada prosedur dan fungsi
  • Fungsi dan prosedur digunakan untuk memanipulasi data
  • Sedangkan data sendiri bersifat pasif

Pemrograman Berbasis Obyek

  • Fungsi dan data menjadi satu kesatuan yang disebut obyek
  • Obyek-obyek dalam OOP bersifat aktif
  • Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah
  • Object terdiri dari data dan fungsi sekaligus.
  • Antar object saling berinteraksi dengan mengirim message (fungsi public) satu sama lain.
  • Tidak memerlukan variable global

Beda nyata antara prosedural dan OOP

  • Prosedural

Fokus pada bagaimana cara komputer menangani masalah

  • OOP

Fokus pada masalah yang ditangani dengan menggunakan komputer

Keuntungan OOP

  • Data safety, encapsulation
  • Reusability
  • Creating new types
  • Classes – object is a member of the class
  • Inheritance - Polymorphism
  • Overloading

OOP bukanlah sekedar cara penulisan sintaks program yang berbeda, namun lebih dari itu, OOP merupakan cara pandang dalam menganalisa system dan permasalahan pemrogarman. Dalam OOP, setiap bagian dari program, aalah object. Sebuah object mewakili suatu bagian program yang akan diselesaikan.

Beberapa konsep OOP dasar, antara lain:

  1. Encapsulation (Class dan Object)
  2. Inheritance (penurunan sifat)
  3. Polymorphisme

Object

Object adalah semua hal yang ada dalam dunia nyata, baik konkrit maupun abstrak
  • Contoh obyek konkrit : rumah, sekolah, dosen, mahasiswa, dll.
  • Contoh obyek abstrak : mata kuliah, penjadwalan, dll.
Ciri-ciri atau karakteristik Obyek

      1. Obyek memiliki status (state) dan tingkah laku (behavior)
      2. Status (state) disebut juga dengan atribut
      3. Pada OOP : status disimpan dalam variabel, dan tingkah laku disimpan dalam method
      4. Contoh obyek : obyek mobil
        • Atribut : merek, warna, bahan baker
        • Method : pindah persnelling, kecepatan bertambah, dll

Class

  • Class merupakan tempat untuk membuat obyek
  • Di dalam class dideklarasikan variable dan method yang dimiliki oleh obyek
  • Proses pembuatan obyek dari sebuah class disebut dengan instantiation
  • Jadi obyek merupakan hasil instansiasi dari class
  • Obyek disebut juga dengan instance

Anggota Class (class member)

  • Anggota Class terdiri dari atribut dan method.
  • Tiap anggota class memiliki kontrol pengaksesan tersendiri, artinya apakah anggota tersebut dapat diakses dengan bebas (tipe public) atau hanya dapat diakses melalui sebuah interface.

Atribut

  • Atribut adalah data yang dapat membedakan antara satu obyek dengan obyek yang lain
  • Contoh untuk class mahasiswa terdapat obyek mahasiswa si A, dan obyek mahasiswa si B. Yang membedakan antara obyek si A dan obyek si B adalah NRP-nya yang merupakan atribut dari obyek tersebut.

Rabu, 08 Oktober 2008

TUGAS 1

ASCII

Komputer
mengolah data yang ada adalah secara digital, melalui sinyal listrik yang diterimanya atau dikirimkannya. Pada prinsipnya, komputer hanya mengenal dua arus, yaitu on atau off, atau istilah dalam angkanya sering juga dikenal dengan 1 (satu) atau 0 (nol). Kombinasi dari arus on atau off inilah yang yang mampu membuat komputer melakukan banyak hal, baik dalam mengenalkan huruf, gambar, suara, bahkan film-film menarik yang anda tonton dalam format digital. Sinyal digital ini memiliki berbagai keistimewaan yang unik yang tidak dapat ditemukan pada teknologi analog, yaitu:

* Mampu mengirimkan informasi dengan kecepatan cahaya yang dapat membuat informasi dapat dikirim dengan kecepatan tinggi.
* Penggunaan yang berulang-ulang terhadap informasi tidak mempengaruhi kualitas dan kuantitas informasi itu sendiri,
* Informasi dapat dengan mudah diproses dan dimodifikasi ke dalam berbagai bentuk,
* Dapat memproses informasi dalam jumlah yang sangat besar dan mengirimnya secara interaktif.
Bit dan byte Komunikasi yang dilakukan oleh komputer satu dengan lainnya menggunakan kode-kode yang telah disusun sedemikian rupa, yang dibentuk dari sinyal tadi, yang disebut juga dengan istilah bit dan byte. Bit biasanya disingkat dengan huruf b sedangkan byte disingkat menjadi B. Bit merupakan singkatan dari binary digit. Satuan terkecil dalam hitungan biner. Satu bit menunjukkan kuantitas dasar yang mewakili nilai 1 atau 0 (atau on/off, dan sebagainya). Dalam matematika disebut juga dengan bilangan biner yang terdiri dari dua nilai yaitu satu atau nol. Komputer dalam menjalankan fungsinya melalui nilai bit tersebut. Meskipun bit ini dirancang untuk melakukan test dan memanipulasi nilai bit itu sendiri, secara umum juga digunakan untuk menjalankan instruksi yang dikerjakan oleh komputer, nilai bit ini juga digunakan untuk menyimpan berbagai data. Lebih spesifiknya, masing-masing bit disimpan dalam satu kapasitor yang isinya tergantung dari nilai bit itu sendiri. Untuk mengolah data, bit dieksekusi dalam bentuk kumpulan. bit, kumpulan bit ini dikenal dengan byte. Satu byte adalah merupakan sebuah karakter yang dibangun dari tujuh atau delapan bit. Satuan yang digunakan untuk menunjukkan kapasitas dalam dunia digital, termasuk komputer, besar file, serta ukuran lain, digunakan dalam satuan byte ini. Nibble Informasi yang disimpan dalam bentuk setengah dari byte disebut dengan nibble. Nibble adalah data yang disimpan dalam bentuk empat bit. Istilah ini cukup jarang digunakan. Nibble ini terkadang ditulis nybble Octed Pada beberapa sistem data diolah dalam bentuk octed, octed adalah merupakan informasi yang disimpan dalam bentuk delapan bit, yang sering disebut dengan istilah byte. Dalam kebanyakan sistem, pengolahan bit dilakukan dalam bentuk 4 byte, yaitu sama dengan 32 bit. Untuk sistem sendiri, panjangnya suatu perintah diekspresikan dalam bentuk ini (sebanyak 32 bit) atau setengahnya (sebanyak 16 bit). Bits per second (bps) Ukuran kapasitas pengiriman informasi melalui suatu media, dalam jaringan digital yang digunakan adalah satuan bit, dan sering juga dikenal dengan jumlah bit yang bisa dikirimkan dalam satu detik, yaitu bits persecond (bps) atau dikirimkan sekian bit dalam setiap detiknya. Bit persecond mengartikan jumlah informasi yang terkirimkan dari suatu titik ke titik lainnya. ASCII dan EBCDIC Komputer dapat membaca data bit dengan standard yang telah diaturdan merupakan definisi terurut dari kombinasi on dan off dari nilai bit. Komputer berbasis IBM dan Macintosh menggunakan tipe kode dalam bentuk ini. Kode utama yang digunakan adalah American Standard Code for Information Interchange (ASCII). Versi internasionalnya dari ASCII ini dikenal dengan International Reference Alphabet (IRA). Sedangkan pada komputer IBM mini dan mainframe menggunakan kode yang berbeda, yaitu Extended Binary Coded Decimal Interexchange Code (EBCDIC). American Standard Code for Information Interchange (ASCII) American Standard Code for Information Interchange (ASCII) adalah format yang banyak digunakan untuk file teks di dalam dunia komputer dan internet. Di dalam file ASCII, masing-masing alphabetic, numeric, atau karakter khusus seperti Return, Tab Control dan sebagainya. Dengan adanya standard ini, membuatkan anda mudah melakukan pertukaran informasi antar berbagai peralatan yang berbeda, antar operating system yang berlainan, bahkan komputer yang berbeda. Anda juga mudah mencetak teks dan angka biasa di hampir di setiap printer. Jika Anda bekerja diaplikasi pengolah kata MacWrite di Mac, dan perlu mengirimkan file ke seseorang yang menggunakan NotePad di Microsoft Windows, Anda dapat menyimpan dokumen dalam dokumen sebagai file ASCII (sama dengan text-only). Dalam ASCII, setiap karakter mempunyai angka yang digunakan oleh komputer atau printer untuk mewakili karakter tersebut. Contoh, huruf kapital A diwakili kode 65. Meski dalam ASCII terdapat 256 kemungkinan karakter, ASCII hanya memakan 128 karakter standar, karena direpresentasikan dalam 7-bit bilangan biner (kumpulan dari nol atau satu sebanyak tujuh angka), dimana 32 karakter pertama adalahkarakter control”. Karakter kontrol adalah karakter yang mengendalikan komputer dan tidak ditampilkan di layar. Angka selebihnya disediakan untuk menghasilkan huruf besar dan kecil, digit, dan berbagai tanda baca yang umum.
Pada tabel ASCII terlihat bahwa fungsi dari kode tersebut dialokasikan dalam bentuk matrix, yang disusun berdasarkan kelompok-kelompok (nilainya diperlihatkan dalam heksadesimal)
1. 00-1F Control Codes
2. 20-3F Punctuation and digit
3. 40-5F Uppercase
4. 60-7F Lowercase

Karakter dalam kode ASCII dibagi dalam beberapa group yaitu: control character, angka, huruf besar, huruf kecil, dan tanda baca (pada tabel tidak begitu jelas). Control-character ini sering disebut sebagai non-printable-character, yaitu karakter yang dikirim sebagai tahap awal (pengenalan) dalam berbagai kegunaan komunikasi data, misalnya sebelum informasi dikirim dari PC ke printer. Dengan kumpulan bit ini terdapat sebanyak 128 character yang bisa didefinisikan. Sistem operasi berbasis Unix dan DOS menggunakan ASCII untuk file teks, sedangkan Windows NT dan 2000 menggunakan kode yang lebih baru yang dikenal dengan istilah unicode. Sistem yang dikeluarkan oleh IBM menggunakan data yang dibentuk dari 8 bit, yang disebut dengan EBCDIC. EBCDIC EBCDIC (Extended Binary Coded Decimal Interchange Code) adalah sebuah standar kode biner untuk alphabetic dan angkat yang diciptakan oleh IBM untuk sistem operasinya yang berskala besar. Kode ini digunakan untuk file text di sistem operasi IBM OS/390 untuk server S/390-nya. Selain pada mesin IBM masalalu tersebut, pengkodean ini juga digunakan pada mesin telex. Sedangkan untuk mesin IBM PC pengkodean ini tidak digunakan, IBM PC sendiri menggunakan pengkodean ASCII. Dengan metoda EBCDIC ini memungkinkan sebanyak 256 character bisa didefinisikan. Unicode Unicode adalah satu metoda baru dalam pengaturan kode biner untuk text dan bentuk tulisan lainnya. Metoda ini diharap dapat menjembatani berbagai karakter yang tidak sama dengan tulisan latin. Katakanlah tulisan Cina, Arab, Aksara Bali, dan lain sebagainya. Sistem ini memiliki kemampuan untuk menuliskan, memproses, dan menampilkan berbagai aktifitas dari tulisan itu sendiri. Teknologi ini diharapkan dapat menyelesaikan masalah penulisan dengan bahasa yang ditulis bukan menggunakan tulisan Yunani. Unicode mendukung seluruh sistem penulisan yang ada di dunia ini. Unicode merupakan karakter set dengan kemampuan multi-lingual. Saat ini hampir seluruh vendor sistem operasi mendukungnya. . Character Istilah yang umum untuk hal ini di Indonesia ditulis dengan karakter. Karakter merupakan lambang-lambang yang terdiri dari huruf, angka, serta lambang-lambang lainnya, dibentuk dari susunan bit. Kode yang dihasilkan dari ASCII ataupun EBCDIC dapat diolah oleh komputer menjadi informasi yang disebut dengan karaker tadi, sehingga manusiapun dapat membacanya. Contoh dari kode ASCII adalah sebagai berikut: