Laman

Cari Blog Ini

Senin, 27 Oktober 2008

Metode Pengurutan Data

Tugas ke 3

TOLAK RUU PORNOGRAFI !!!!




METODE PENGURUTAN DATA
Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun). Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu. Beberapa metode pengurutan data sebagai berikut :
1. Bubble Shot, pengurutan berdasarkan perbandingan ( comparison based sorting)
2. Shell sort, pengurutan berkurang menurun (diminishing increment sort method)\
3. Quick sort, Pengurutan berdasarkan pembagian dan penguasaan (devide and conquer method )

Bubble Shot
Merupakan algoritma penyortiran yang dimulai dan berakhir pada sebuah daftar dengan n elemen dan memindahkan seluruhnya, menguji nilai setiap pasangan item yang berdekatan dan menukarkannya jika mereka tidak berada dalam urutan yang tepat.
Metode sorting termudah
Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah keposisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda..
Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.
Pengurutan Ascending : Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar.
Pengurutan Descending : Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.
Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, asc atau desc. Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1.
Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.

Shell sort
Mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu sehingga dibentuk sub-list, kemudian dilakukan pertukaran jika diperluka. Definisi lain merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiappergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir.

Quick sort
Quicksort ditemukan oleh C.A.R Hoare. Seperti pada merge sort, algoritma ini juga
berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini
hanya mengikuti langkah – langkah sebagai berikut :
1. Devidi
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r]
dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q]
dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan
elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada
elemen q merupakan salah satu bagian dari prosedur pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif



Contoh program Array



Tampilan program
Selengkapnya...



Rabu, 15 Oktober 2008

Pemrograman Prosedural dan OOP

Pendahuluan.
Object-Oriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan /action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object-oriented world. Jika akan bepergian kita pasti berinteraksi dengan object mobil. Sebagai sebuah object, mobil berisi object-object lain yang berinteraksi untuk melakukan tugasnya membawa kita.
Object-oriented programs terdiri dari objects yang berinteraksi satu sama lainnya untuk menyelesaikan sebuah tugas. Seperti dunia nyata, users dari software programs dilibatkan dari logika proses untuk menyelesaikan tugas. Contoh, ketika kamu mencetak sebuah halaman diword processor, kamu berarti melakukan inisialisasi tindakan dengan mengklik tombol printer. Kemudian kamu hanya menunggu respon apakah job tersebut sukses atau gagal, sedangkan proses terjadi internal tanpa kita ketahui. Tentunya setelah kamu menekan tombol printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk menyelesaikan job tersebut.
Konsep OOP dimulai pertengahan 1960-an dengan sebuah bahasa program SIMULA kemudian dilanjutkan di era 70-an dengan SMALLTALK. Meskipun developer software tidak secara intensif mengembangkan OOP, tetapi metodologi object-oriented tetap digunakan. Pada pertengahan 80-an, bahasa OOP seperti C++ dan Eifle menjadi popular diantara programmer computer. Popularitas OOP berlanjut pada tahun 90-an, banyak pengembang software menggunakan konsep OOP seperti Java dll. Di tahun 2002, versi terakhir dari Visual Studio, Microsoft memperkenalkan bahasa OOP baru yaitu C# (dibaca C-sharp) serta upgrade Visual Basic, dan ini merupakan sebuah bahasa OOP sesungguhnya
Karakteristik
Objects
Jika kita pikir maka kita sekarang hidup dalam sebuah dunia object-oriented. Kamu adalah object. Kamu berinteraksi dengan object lain. Untuk menulis tugas ini kami berinteraksi dengan object komputer. Ketika saya bangun pagi, saya merespon pesan suara object alarm jam. Faktanya, kamu adalah object dengan data-data seperti tinggi dan warna rambut. Kamu mempunyai metode-metode yang kamu akan lakukan, seperti makan dan berjalan.
Jadi, apa itu objects? Dalam term OOP, object adalah sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me-maintenance dan bekerja dengan data yang bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus bekerja dengan sebuah object printer yang bertanggung jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu.
Abstraction
Ketika kamu berinteraksi dengan object-object di dunia ini, kamu sering hanya konsentrasi dengan sebuah bagian dari propertiesnya. Tanpa kemampuan untuk mensarikan/abstract atau menyaring untuk dibuang properties object yang asing / tidak ada hubungannya, maka kamu akan menemukan kesulitan untuk memproses informasi yang kebanyakan membombarding kamu. Sebagai hasil abstraction, ketika 2 orang berbeda berinteraksi dengan object yang sama, mereka sering setuju dengan bagian yang berbeda atas atribut. Ketika kami mengendarai mobil, kami perlu tahu kecepatan serta tujuan yang akan dicapai.
Karena mobil itu otomatis, maka kami tidak perlu tahu berapa RPMs dari mesinnya, jadi kami akan membuang informasi ini. Tapi informasi ini sangat diperlukan oleh mekanik atau pembalap.
Ketika membangun objects dalam aplikasi OOP, adalah penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun aplikasi shipping, kamu harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kamu membangun order-entry application, warna menjadi penting dan harus termasuk atribut object produk.
Encapsulation
Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita mengirimkan pesan ke object produk, kemudian object produk akan membaca pesan dan mengirim pesan balik ke kamu.
Object produk mendefinisikan bahwa operasi dapat dilakukan pada data produk. Jika kamu mengirim pesan untuk memodifikasi data dan jika object produk menentukan bahwa permintaan itu valid maka permintaan tersebut akan dilakukan dan akan mengirimkan pesan balik bersama hasilnya.
Pikirkan mengenai Human Resource Department (HRD), yang meng-encapsulasi informasi mengenai karyawan. Mereka menentukan bagaimana data ini dapat digunakan da dimanipulasi. Setiap permintaan data karyawan atau permintaan untuk mengupdate datanya harus dijalankan melalui mereka. Contoh lain, network security. Setiap permintaan informasi security atau perubahan kebijakan security harus dilakukan melalui network administrator. Data security di-encapsulate dari user network.
Dengan melakukan encapsulasi pada data, berarti kamu membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu mengetahui bagaimana data diakses dan operasi apa yang sedang berjalan pada data. Hal ini membuat maintenance program menjadi lebih mudah. Kamu juga dapat memodifikasi metode yang digunakan untuk kerja pada data, dan jika kamu tidak merubah bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu tidak dapat merubah object lain dengan menggunakan metode tersebut. Pikirkan ketika kamu mengirim surat melalui pos. Kamu membuat permintaan ke kantor pos agar mengantar surat, dan bagaimana kantor pos menyelesaikannya kita tidak perlu tahu. Jika ada perubahan rute yang digunakan, maka hal itu tidak mempengaruhi keinginan untuk kirim surat lewat kantor pos. Kamu tidak perlu tahu prosedur internal yang digunakan oleh kantor pos untuk mengantar surat.
Polymorphism
Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.
Bagaimana hal ini berhubungan dengan OOP? Kamu dapat membuat objects yang dapat merespon pesan yang sama dalam implementasi yang unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan tipe polymorphism melalui proses yang disebut overloading. Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama yang sama.
Inheritance
Banyak objects diklasifikasikan menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta body. Keturunan berikutnya diklasifikasikan dengan atribut umum seperti ukuran, jumlah roda, isi silinder dll atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada kendaraan komersial atau kendaraan pribadi, ada truk atau mobil penumpang. Kamu menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya. Hal ini akan membuat pekerjaan bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum kedalam object parent dan mewariskan karakteristik ini ke child object.

Aggregation
Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dll. Object mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.
Konsep Pemrograman Prosedural
Pemrograman dalam paradigma prosedural dilakukan dengan memberikan serangkaian perintah yang berurutan. Dalam bab ini akan dibahas hal-hal yang menjadi dasar dalam pemrograman prosedural, meliputi definisi algoritma dan konstruktor pemrograman prosedural, serta konsep Input, Proses, dan Output yang sangat lazim dalam dunia pemrograman prosedural.

1 Algoritma

Algoritma adalah serangkaian langkah-langkah yang tepat, terperinci, dan terbatas untuk menyelesaikan suatu masalah. Langkah yang tepat artinya serangkaian langkah tersebut selalu benar untuk menyelesaikan masalah yang diberikan. Langkah yang tidak memberikan hasil yang benar untuk domain masalah yang diberikan bukanlah sebuah algoritma.
Langkah yang terperinci artinya setiap langkah diberikan secara detail dan dapat dieksekusi oleh komputer, instruksi seperti “angkat sedikit ke kiri” merupakan contoh instruksi yang tidak tepat, karena “sedikit” tidak menyatakan sesuatu dengan tepat.
Langkah yang diberikan harus terbatas, artinya suatu saat langkah harus berhenti, jika langkah tidak pernah berhenti (misalnya: “ambil air, masukkan ke bak mandi, ulangi ambil air, dan seterusnya”) maka serangkaian langkah itu tidak disebut sebagai algoritma (jika: “ambil air, masukkan ke bak mandi, ulangi ambil air sampai bak mandi penuh”, maka bisa disebut algoritma, namun langkah ambil air, masukkan ke bak mandi, harus diperinci dan dapat dieksekusi oleh mesin).

2 Konstruktor (elemen) Pemrograman Prosedural

Elemen bahasa pemrograman prosedural yang penting adalah:
1. Program utama
2. Tipe
3. Konstanta
4. Variabel
5. Ekspresi, operator, dan operand
6. Struktur Data
7. Instruksi dasar
8. Program Moduler
9. File eksternal
10. Rekurens
Konstruktor ini tidak untuk dipelajari secara berurutan, namun semua perlu dipelajari dan dimengerti untuk dapat membuat program dengan baik.

3 Input, Proses, dan Output

Sekumpulan aksi dalam pemrograman prosedural bisa dibagi menjadi tiga bagian penting yaitu: input, proses, dan output. Bagian input, proses, dan output dikerjakan secara sekuensial, dan dalam setiap bagian mungkin akan ada input, proses, dan output. Selengkapnya...



Selasa, 23 September 2008

Pengertian ASCII dan Tabel Kode ASCII

Character Data

Beberapa aplikasi menggunakan data yang bukan hanya bilangan tetapi juga huruf dari alfabet dan karakter khusus lainnya. Data semacam ini disebut dengan data alfanumerik dan mungkin dapat ditunjukkan dengan kode numerik. Jika bilangan-bilangan dimasukkan dalam data, maka bilangan-bilangan tersebut juga dapat ditunjukkan dengan kode khusus.
Set karakter alfanumerik secara khusus mencakup 26 huruf alfabet (termasuk huruf besar dan huruf kecil), angka dalam digit sepuluh desimal, dan sejumlah simbol seperti +, =, *, $, …, dan !. Dua kode alfabet yang paling umum dipakai adalah ASCII (American Standard Code for Information Interchange) dan EBCDIC (Extended Binary Coded Decimal Interchange Code). ASCII merupakan kode 7-bit dan EBCDIC berupa kode 8- bit. Jika suatu komputer menangani 8-bit (1-byte) kode lebih efisien, versi 8-bit, disebut dengan ASCII-8 juga telah dikembangkan. Selain itu ada juga beberapa kode spesial didalam penambahan set karakter alfanumerik. Kode simpanan ini digunakan sebagai signal komunikasi dalam aplikasi dimana data transfer terjadi antara komputer yang dihubungkan melalui baris komunikasi. Misalnya, LF (line feed) dan CR (carriage return) dihubungkan dengan printer, BEL digunakan untuk mengaktifitaskan bell; ACK (acknowledge), NAK (negative acknowledge), dan DLE (data link escape) berupa signal yang dapat diubah dalam baris komunikasi.
Bagi yang sudah cukup lama berkecimpung di dunia komputer, pasti pernah bekerja dengan ‘kode ASCII’. Dan bagi yang bekerja dengan mesin-mesin mainframe IBM, pasti pernah menjumpai ‘kode EBCDIC’ (dibaca: eb-si-dik). Di luar ASCII dan EBCDIC, besar kemungkinan anda paling tidak pernah mendengar istilah-istilah lain seperti berikut ini: ISO-8859-1, UCS-2, UTF-8, UTF-16, atau windows-1252. Kode-kode apakah itu? ASCII, EBCDIC, ISO-8859-x, UCS-2, UTF-x, dan windows-x merupakan sebagian dari kumpulan character set (set karakter) yang ada di dunia komputer. Sistim Binary Coded Decimal (BCD): Sebelum ASCII dan EBCDIC berkembang terlebih dahulu dikembangkan Binary Coded Decimal (BCD). Metode ini awalnya digunakan pada komputer mainframe IBM. Pada grup ini karakter diwakili oleh 64 - ( 26) lambang. Dengan kode ini, setiap huruf/angka diberikan kode yang terdiri dari enam bit, dua untuk zone dan empat untuk angka. Huruf A sampai dengan I diberikan tanda 11 pada tempat zone. Karena A adalah huruf pertama dalam kelompok ini, maka kodenya adalah: 0001, B sebagai huruf kedua dengan kode: 0010, C adalah 0011 dan seterusnya. Dengan perkataan lain, zone bit yang mempunyai formasi 11 harus juga disertakan pada kode lengkap masing-masing pada grup ini. Grup alfabetik kedua adalah J hingga R, ditetapkan kode awalnya 10, yang juga posisi masingmasing huruf ditentukan oleh angkanya masing-masing. Huruf S hingga Z dibentuk dengan menambahkan angka bit 0010 hingga 1001 berurutan pada kode 01 dimana pada grup ini hanya ada delapan huruf. Angka-angka 0 hingga sembilan diberikan kode 00 di depannya diikuti oleh angka itu sendiri dalam sistim binary. Angka 0 (nol) harus dibedakan dengan tanda kosong (spasi) guna mempermudah cara penggunaan kode.
Sistim Extended Binary Coded Decimal Interchange Code (EBCDIC): EBCDIC merupakan set karakter yang merupakan ciptaan dari IBM. Salah satu penyebab IBM menggunakan set karakter di luar ASCII sebagai standar pada komputer ciptaan IBM adalah karena EBCDIC lebih mudah dikodekan pada punch card yang pada tahun 1960-an masih jamak digunakan. Penggunaan EBCDIC pada mainframe IBM masih terbawa hingga saat ini, walaupun punch card sudah tidak digunakan lagi. Seperti halnya ASCII, EBCDIC juga terdiri dari 128 karakter yang masing-masing berukuran 7-bit. Bila menggunakan ukuran 8-bit maka karakternya menjadi 256 – (28). Hampir semua karakter pada ASCII juga terdapat pada set karakter EBCDIC.

Sistim American Standard Code for Information Interchange (ASCII): ASCII dan EBCDIC merupakan cikal bakal dari set karakter lainnya. ASCII merupakan set karakter yang paling umum digunakan hingga sekarang. Set karakter ASCII terdiri dari 128 – (27) buah karakter yang masing-masing memiliki lebar 7-bit atau gabungan tujuh angka 0 dan 1, dari 0000000 sampai dengan 1111111. Mengapa 7-bit? Karena komputer pada awalnya memiliki ukuran memori yang sangat terbatas, dan 128 karakter dianggap memadai untuk menampung semua huruf Latin dengan tanda bacanya, dan beberapa karakter kontrol. ASCII telah dibakukan oleh ANSI (American National Standards Institute) menjadi standar ANSI X3.4-1986.
Adapun kode-kode pada sistim-sistim tersebut di atas dapat dilihat pada tabel di bawah ini:





Tabel Kode ASCII

Selengkapnya...