Selasa, 30 Maret 2010

Pengertian Data Dan Informasi

a. Data adalah deskripsi dari sesuatu dan kejadian yang kita hadapi
(data is the description of things and events that we face).
b. Data bisnis (business data) adalah deskripsi organisasi tentang sesuatu
(resources) dan kejadian (transactions) yang terjadi
(business data is an organization's description of things (resources)
and events (transactions) that it faces).
c. Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan
kesatuan nyata. Kejadian (event) adalah sesuatu yang terjadi pada saat
tertentu. Sebagai contoh, dalam dunia bisnis kejadian-kejadian nyata
yang sering terjadi adalah perubahan dari suatu nilai yang disebut
dengan transaksi. Misalnya penjualan adalah transaksi perubahan nilai
barang menjadi nilai uang atau nilai piutang dagang. Kesatuan nyata
(fact and entity) adalah berupa suatu obyek nyata seperti tempat, benda
dan orang yang betul-betul ada dan terjadi.
Sumber dari informasi adalah data. Data merupakan bentuk jamak dari
bentuk tunggal data-item. Data merupakan bentuk yang belum dapat
memberikan manfaat yang besar bagi penerimanya, sehingga perlu suatu
model yang nantinya akan dikelompokkan dan diproses untuk menghasilkan
informasi.

Keuntungan Fungsi

1. Dapat melakukan pendekatan top-down dan divide-and-conquer:
2. Top-down: penelusuran program mudah
3. Divide-and-conquer: program besar dapat dipisah menjadi program-program kecil.
4. Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami
5. Program dapat dikerjakan oleh beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
6. Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas dan sederhana Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.
7. Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
8. Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.
9. Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi – fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.
10. Fungsi -fungsi digunakan untuk menghindari penulisan program yang sama yang ditulis secara berulang – ulang. Langkah – langkah tersebut dapat dituliskan sekali saja secara terpisah dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan langkah – langkah ini tidak perlu selalu menuliskannya, tidak cukup memanggil fungsi tersebut.
11. Mempermudah dokumentasi.
12. Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain

Modular programming pada C

Modular programming pada C
Bahasa C sangat mendukung modular programming . Sejak awal bahasa C sudah membagi program-programnya menjadi modul-modul (bagian-bagian). Modul pada bahasa C dikenal dengan nama fungsi (function). Bahasa C terdiri dari fungsi-fungsi, baik yang langsung dideklarasikan dalam program ataupun dipisah di dalam header file. Fungsi yang selalu ada pada program C adalah fungsi main

Function
Fungsi/function adalah suatu kumpulan instruksi/perintah/program yang dikelompokkan menjadi satu, letaknya terpisah dari program yang menggunakan fungsi tersebut, memiliki nama tertentu yang unik, dan digunakan untuk mengerjakan suatu tujuan tertentu. Dalam bahasa pemrograman lain fungsi dapat disebut sebagai subrutin (basic, VB) atau procedure (pascal, Delphi)

Rabu, 24 Maret 2010

Kelebihan C++

C++ itu kan pada dasarnya bahasa C juga, nah kemampuan C yang utama itu adalah seperti :

Ø mampu mengakses komponen hardware komputer dengan syntax yang lebih manusiawi dibanding Assembly bahasa Standard-nya.

Ø ANSI bisa dipakai diberbagai platform

Ø kecepatan program jika dibanding dengan program yang sama buatan bahasa lain, relatif lebih cepat…

Naaah,,,,,

kelebihan C++ mencakup semua kelebihan C namun dengan tambahan seperti misalnya yang utama penanganan kompleksitas dengan OOP

Kekurangan C++

Salah satu kelemahan C++ adalah kurangnya library built in, sehingga untuk proses-proses tertentu kita harus membuat sebuah program nearly built from scratch, atau dari dasar sekali. Terlebih lagi bahasa C++ dewasa ini kurang begitu popular karena kita masih memikirkan pemrograman dari sisi mesin ketimbang memikirkan probis (proses bisnis) yang seharusnya menjadi tujuan kita.

macam – macam bahasa pemprograman

1. Bahasa Pemrograman PERL
Perl adalah bahasa pemrograman untuk mesin dengan sistem operasi Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC.
PERL merupakan bahasa pemograman yang mirip bahasa pemograman C.

2. Bahasa Pemrograman CFM
Cfm dibuat menggunakan tag ColdFusion dengan software Adobe ColdFusion / BlueDragon / Coldfusion Studio.
Syntax coldfusion berbasis html.

3. Bahasa Pemrograman Javascript
Javascript adalah bahasa scripting yang handal yang berjalan pada sisi client.
JavaScript merupakan sebuah bahasa scripting yang dikembangkan oleh Netscape.
Untuk menjalankan script yang ditulis dengan JavaScript kita membutuhkan JavaScript-enabled browser yaitu browser yang mampu menjalankan JavaScript.

4. Bahasa Pemrograman CSS
Cascading Style Sheets (CSS) adalah suatu bahasa stylesheet yang digunakan untuk mengatur tampilan suatu dokumen yang ditulis dalam bahasa markup.
Penggunaan yang paling umum dari CSS adalah untuk memformat halaman web yang ditulis dengan HTML dan XHTML.
Walaupun demikian, bahasanya sendiri dapat dipergunakan untuk semua jenis dokumen XML termasuk SVG dan XUL.
Spesifikasi CSS diatur oleh World Wide Web Consortium (W3C).

Senin, 22 Maret 2010

CHARACTER

Character merupakan type data primitif yang merepresentasikan suatu nilai / data dalam format huruf alphabetic, numerik, dan symbolik, spasi, dan bentuk – bentuk yang telah terdaftar dalam ASCII (American Standard Code for Information Interchange). Type data character itu sendiri memunyai 2 ragam type data lagi; signed char / char dan unsigned char.

Perbedaannya adalah :

Type data byte range
signed char 1 -128 -> +127
unsigned char 1 0 -> +255

Dalam bahasa pemrograman C
Dalam pemrograman C, type data character dikenal sebagai type data char. Cara pengaksesannya adalah sebagai berikut :

char x = ‘f’;

scanf(“%c”,&x);

printf(“%c”,x);

Mengisi Binary TREE

Setiap node dalam binary tree memiliki sebuah String yang harus dicetak. Peraturan yang harus
ditaati adalah sebagai berikut:
• Isi node root selalu dicetak pada baris pertama, dan dimulai pada awal baris.
• Setiap node yang isinya dicetak harus diikuti oleh isi subtree kirinya, lalu diikuti oleh isi subtree
kanannya. Isi node anak kiri dan anak kanan selalu dicetak dengan jarak indentasi 5 karakter ke
kanan dibandingkan parent-nya.
• Sebuah subtree kosong dinyatakan dengan mencetak string “[NULL]”.
• Harus ada tepat satu baris yang dilongkap antara setiap baris yang berisi isi node.
• Harus terbentuk garis yang menghubungkan sebuah node dengan kedua anak kiri dan kanannya
dengan menggunakan untaian karakter garis tegaklurus (‘|’), strip (‘-’), dan simbol plus (‘+’).
Agar lebih jelas, lihat contoh di bawah.
Sebagai contoh, perhatikan gambar binary tree berikut:
Program yang anda buat harus bisa mencetak isi tree ini sesuai dengan ketentuan-ketentuan di atas,

Fungsi algoritma

engan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan proses percabangan.
C. Kriteria Program Algoritma dalam Bidang Komputer
Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya bisa mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrogaman komputer. Bahasa pemrogaman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin. Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah difahami manusia biasa disebut dengan mnemonic code. Bahasa pemrogaman yang menggunakan singkatan kata ini disebut bahasa assembly.
Program algoritma harus komplit, nyata, dan jelas. Meskipun tugas algoritma tidak menghasilkan solusi, tetapi proses harus berakhir hal ini disebut dengan semi algorithm (prosedur akan berjalan terus atau biasa disebut dengan perulangan). Intinya kita tidak boleh menambah masalah, akan tetapi kita harus mampu menyelesaikan masalah untuk mendapat hasil yang tepat. Adapun contoh algoritma seperti dalam menghitung luas lingkaran dari masukan berupa jari-jari lingkaran. Rumus lingkaran adalah L=?*R*R
Berikut ini adalah contoh algoritma untuk menghitung luas lingkaran:
1. Masukkan R
2. Pi ? 3,14
3. L ? Pi*R*R
4. Tulis L
Perhatikan tanda ? pada baris kedua dan ketiga. Tanda ini berarti nilai di sebelah kanan diberikan pada operan di sebelah kiri. Sebagai contoh, untuk baris kedua, nilai 3,14 diberikan pada variabel Pi. Berikutnya, nilai Pi*R*R diberikan pada variable L. Baris terakhir menuliskan luas lingkaran tersebut.
Seperti yang dikemukakan di atas, bahwa algoritma ada yang tidak berurutan dan biasa di sebut dengan pengulangan. Adapun contohnya yaitu dalam penghitungan rata-rata dari sekumpulan data yang dimasukkan pengguna.
Berikut ini adalah algoritma untuk menghitung rata-rata data yang dimasukkan pengguna:
1. Masukkan N
2. i?1
3. j?0
4. Selama (i<=N) kerjakan baris 4 sampai dengan 7 5. Masukkan dt 6. i?i+1 7. j?j+dt 8. Rata?j/N 9. Tulis rata Baris pertama meminta pengguna memasukkan N, yaitu jumlah data. Pada baris kedua, variabel I, yang berguna sebagai pencacah banyaknya data yang telah dimasukkan pegguna, bernilai 1. Pada baris ketiga, variabel j, yang digunakan untuk menyimpan hasil penjumlahan data, diberi nilai 0. Baris keempat memberikan perintah untuk mengulangi baris keempat sampai dengan baris ketujuh selama I kurang dari sama dengan N. Dengan kata lain, setelahi lebih besar dari N, baris kedelapan yang dijalankan. Baris kelima meminta masukkan data yang ke-i. Baris keenam menambah variabel I dengan 1. Perhatikan arti dari perintah i?i+1 adalah nilai i ditambah dengan 1 kemudian hasilnya disimpan pada variabel i kembali. Baris ketujuh menambah variabel j dengan data yang dimasukkan pengguna. Sebagaimana dijelaskan di atas, variabel j digunakan untuk menyimpan hasil penjumlahan semua data, jadi untuk setiap masukan data, nilai variabel j harus ditambah dengan dt. Baris kedelapan menghitung rata-rata dengan cara membagi hasil penjumlahan dengan banyaknya data. Baris terakhir menuliskan rata-rata tersebut. Tetapi banyak pemrogram yang sudah berpengalaman tidak pernah menuliskan algoritma di atas kertas lagi.. Artinya dia menuliskan algoritma itu di daalam kepalanya.

Fungsi algoritma

engan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan proses percabangan.
C. Kriteria Program Algoritma dalam Bidang Komputer
Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya bisa mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrogaman komputer. Bahasa pemrogaman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin. Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah difahami manusia biasa disebut dengan mnemonic code. Bahasa pemrogaman yang menggunakan singkatan kata ini disebut bahasa assembly.
Program algoritma harus komplit, nyata, dan jelas. Meskipun tugas algoritma tidak menghasilkan solusi, tetapi proses harus berakhir hal ini disebut dengan semi algorithm (prosedur akan berjalan terus atau biasa disebut dengan perulangan). Intinya kita tidak boleh menambah masalah, akan tetapi kita harus mampu menyelesaikan masalah untuk mendapat hasil yang tepat. Adapun contoh algoritma seperti dalam menghitung luas lingkaran dari masukan berupa jari-jari lingkaran. Rumus lingkaran adalah L=?*R*R
Berikut ini adalah contoh algoritma untuk menghitung luas lingkaran:
1. Masukkan R
2. Pi ? 3,14
3. L ? Pi*R*R
4. Tulis L
Perhatikan tanda ? pada baris kedua dan ketiga. Tanda ini berarti nilai di sebelah kanan diberikan pada operan di sebelah kiri. Sebagai contoh, untuk baris kedua, nilai 3,14 diberikan pada variabel Pi. Berikutnya, nilai Pi*R*R diberikan pada variable L. Baris terakhir menuliskan luas lingkaran tersebut.
Seperti yang dikemukakan di atas, bahwa algoritma ada yang tidak berurutan dan biasa di sebut dengan pengulangan. Adapun contohnya yaitu dalam penghitungan rata-rata dari sekumpulan data yang dimasukkan pengguna.
Berikut ini adalah algoritma untuk menghitung rata-rata data yang dimasukkan pengguna:
1. Masukkan N
2. i?1
3. j?0
4. Selama (i<=N) kerjakan baris 4 sampai dengan 7 5. Masukkan dt 6. i?i+1 7. j?j+dt 8. Rata?j/N 9. Tulis rata Baris pertama meminta pengguna memasukkan N, yaitu jumlah data. Pada baris kedua, variabel I, yang berguna sebagai pencacah banyaknya data yang telah dimasukkan pegguna, bernilai 1. Pada baris ketiga, variabel j, yang digunakan untuk menyimpan hasil penjumlahan data, diberi nilai 0. Baris keempat memberikan perintah untuk mengulangi baris keempat sampai dengan baris ketujuh selama I kurang dari sama dengan N. Dengan kata lain, setelahi lebih besar dari N, baris kedelapan yang dijalankan. Baris kelima meminta masukkan data yang ke-i. Baris keenam menambah variabel I dengan 1. Perhatikan arti dari perintah i?i+1 adalah nilai i ditambah dengan 1 kemudian hasilnya disimpan pada variabel i kembali. Baris ketujuh menambah variabel j dengan data yang dimasukkan pengguna. Sebagaimana dijelaskan di atas, variabel j digunakan untuk menyimpan hasil penjumlahan semua data, jadi untuk setiap masukan data, nilai variabel j harus ditambah dengan dt. Baris kedelapan menghitung rata-rata dengan cara membagi hasil penjumlahan dengan banyaknya data. Baris terakhir menuliskan rata-rata tersebut. Tetapi banyak pemrogram yang sudah berpengalaman tidak pernah menuliskan algoritma di atas kertas lagi.. Artinya dia menuliskan algoritma itu di daalam kepalanya.

Algoritma Sorting

Algoritma adalah kumpulan langkah sistematis untukmemperoleh hasil yang diinginkan1. Sebelum sebuahalgoritma dijalankan, biasanya ada suatu kondisi awal(initial state)yang harus dipenuhi. Kemudian, langkah-langkah ini diproses hingga mencapai suatukondisi akhir (final state).Salah satu contoh dari algoritma adalah Sorting(pengurutan).

Definisi Sorting

Sorting didefinisikan sebagai pengurutan sejumlahdata berdasarkan nilai kunci tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar (ascending) atau sebaliknya (descending).Algoritma Sorting termasuk salah satu contoh yangkaya akan solusi. Dalam makalah ini, hanya akandibahas lima algoritma sorting yang populer dipakai didunia informatika. Lima algoritma tersebut adalah:

1. Bubble Sort
2. Selection Sort
3. Insertion Sort
4. Merge Sort, dan
5. Quick Sort.

Bubble Sort

Bubble Sort merupakan cara pengurutan yangsederhana. Konsep dari ide dasarnya adalah seperti“gelembung air” untuk elemen struktur data yangsemestinya berada pada posisi awal. Cara kerjanyaadalah dengan berulang-ulang melakukan traversal(proses looping) terhadap elemen-elemen struktur datayang belum diurutkan. Di dalam traversal tersebut,nilai dari dua elemen struktur data dibandingkan. Jikaternyata urutannya tidak sesuai dengan “pesanan”,maka dilakukan pertukaran (swap). Algoritma sortingini disebut juga dengan comparison sort dikarenakanhanya mengandalkan perbandingan nilai elemen untukmengoperasikan elemennya.

Algoritma Bubble Sort

Algoritma bubble sort dapat diringkas sebagaiberikut, jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, …, TN-1,TN, maka:

1. Lakukan traversal untuk membandingkan
dua elemen berdekatan. Traversal ini
dilakukan dari belakang.
2. Jika elemen pada TN-1 > TN , maka lakukan
pertukaran (swap). Jika tidak, lanjutkan ke
proses traversal berikutnya sampai bertemu
dengan bagian struktur data yang telah
diurutkan.
3. Ulangi langkah di atas untuk struktur data
yang tersisa.

Selection Sort

Algoritma sorting sederhana yang lain adalahSelection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksianelemen struktur data. Untuk sorting ascending(menaik), elemen yang paling kecil di antara elemenelemenyang belum urut, disimpan indeksnya,kemudian dilakukan pertukaran nilai elemen denganindeks yang disimpan tersebut dengan elemen yangpaling depan yang belum urut. Sebaliknya, untuksorting descending (menurun), elemen yang paling. besar yang disimpan indeksnya kemudian ditukar.

Algoritma Selection Sort

Algoritma selection sort dapat dirangkum sebagaiberikut:
1 Temukan nilai yang paling minimum (atau sesuaikeinginan) di dalam struktur data. Jika ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending, maka temukan nilai yang paling maksimum.
2 Tukar nilai tersebut dengan nilai pada posisipertama di bagian struktur data yang belum diurutkan.
3. Ulangi langkah di atas untuk bagian struktur datayang tersisa.

Insertion Sort

Cara kerja insertion sort sebagaimana namanya.Pertama-tama, dilakukan iterasi, dimana di setiap iterasi insertion sort memindahkan nilai elemen,kemudian menyisipkannya berulang-ulang sampai ketempat yang tepat. Begitu seterusnya dilakukan. Dariproses iterasi, seperti biasa, terbentuklah bagian yangtelah di-sorting dan bagian yang belum

Algoritma Insertion Sort

Algoritma Insertion Sort dapat dirangkum sebagai berikut:
1. Simpan nilai Ti kedalam variabel sementara, dengan i = 1.
2. Bandingkan nilainya dengan elemen sebelumnya.
3. Jika elemen sebelumnya (Ti-1) lebih besar nilainya daripada Ti, maka tindih nilai Ti dengan nilai Ti-1 tersebut. Decrement i (kurangi nilainya dengan 1).
4. Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
5. Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
6. Ulangi langkah dari poin 1 di atas dengan i di-increment (ditambah satu).

Merge Sort

Algoritma Merge Sort ditemukan oleh John vonNeumann di tahun 1945. Merge Sort termasuk paradigma algoritma divide and conquer (kurang lebihberarti: bagi dan atasi). Hal ini dikarenakan algoritma ini melakukan pembagian struktur data sebelumkemudian dioperasi satu per satu. Intinya, algoritma ini menggunakan dua ide utama sebagai berikut,
1. Sebuah list yang kecil membutuhkan langkahyang lebih sedikit untuk pengurutan daripadasebuah list yang besar.
2. Untuk membentuk sebuah list terurut dari duabuah list terurut membutuhkan langkah yanglebih sedikit daripada membentuk sebuah listterurut dari dua buah list tak terurut. Contoh:hanya diperlukan satu kali traversal untukmasing-masing list jika keduanya sudahterurut.

Algoritma Merge Sort

Algoritma Merge Sort sederhananya, dapat ditulis berikut:
1. Bagi list yang tak terurut menjadi dua samapanjang atau salah satunya lebih panjang satu elemen.
2. Bagi masing-masing dari 2 sub-list secara rekursif sampai didapatkan list dengan ukuran 1.
3. Gabung 2 sublist kembali menjadi satu list terurut.

Quick Sort

Quick Sort adalah algoritma sorting yang terkenal yang dirancang oleh C.A.R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan manufaktur komputer saintifik kecil, Elliott Brothers. Algoritma ini rekursif, dan termasuk paradigma algoritma divide and conquer.

Algoritma Quick Sort

Algoritma ini terdiri dari 4 langkah utama:
1. Jika struktur data terdiri dari 1 atau 0 elemenyang harus diurutkan, kembalikan strukturdata itu apa adanya.
2. Ambil sebuah elemen yang akan digunakansebagai pivot point (poin poros). (Biasanyaelemen yang paling kiri.)
3. Bagi struktur data menjadi dua bagian – satudengan elemen-elemen yang lebih besar
daripada pivot point, dan yang lainnya denganelemen-elemen yang lebih kecil dari pada pivot point.
4. Ulangi algoritma secara rekursif terhadapkedua paruh struktur data.

KESIMPULAN

Algoritma yang mudah dalam hal implementasi adalahBubble Sort, Selection Sort, dan Insertion Sort.Ketiganya memiliki kompleksitas O(n2). Di antaraalgoritma ini, yang paling effisien adalah InsertionSort. Algoritma yang lebih mangkus adalah MergeSort dan Quick Sort dengan kompleksitasnya adalah O(n log n). Adapun yang paling mangkus dari limaalgoritma ini adalah Quick Sort.

Algoritma Sorting

Algoritma adalah kumpulan langkah sistematis untukmemperoleh hasil yang diinginkan1. Sebelum sebuahalgoritma dijalankan, biasanya ada suatu kondisi awal(initial state)yang harus dipenuhi. Kemudian, langkah-langkah ini diproses hingga mencapai suatukondisi akhir (final state).Salah satu contoh dari algoritma adalah Sorting(pengurutan).

Definisi Sorting

Sorting didefinisikan sebagai pengurutan sejumlahdata berdasarkan nilai kunci tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar (ascending) atau sebaliknya (descending).Algoritma Sorting termasuk salah satu contoh yangkaya akan solusi. Dalam makalah ini, hanya akandibahas lima algoritma sorting yang populer dipakai didunia informatika. Lima algoritma tersebut adalah:

1. Bubble Sort
2. Selection Sort
3. Insertion Sort
4. Merge Sort, dan
5. Quick Sort.

Bubble Sort

Bubble Sort merupakan cara pengurutan yangsederhana. Konsep dari ide dasarnya adalah seperti“gelembung air” untuk elemen struktur data yangsemestinya berada pada posisi awal. Cara kerjanyaadalah dengan berulang-ulang melakukan traversal(proses looping) terhadap elemen-elemen struktur datayang belum diurutkan. Di dalam traversal tersebut,nilai dari dua elemen struktur data dibandingkan. Jikaternyata urutannya tidak sesuai dengan “pesanan”,maka dilakukan pertukaran (swap). Algoritma sortingini disebut juga dengan comparison sort dikarenakanhanya mengandalkan perbandingan nilai elemen untukmengoperasikan elemennya.

Algoritma Bubble Sort

Algoritma bubble sort dapat diringkas sebagaiberikut, jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, …, TN-1,TN, maka:

1. Lakukan traversal untuk membandingkan
dua elemen berdekatan. Traversal ini
dilakukan dari belakang.
2. Jika elemen pada TN-1 > TN , maka lakukan
pertukaran (swap). Jika tidak, lanjutkan ke
proses traversal berikutnya sampai bertemu
dengan bagian struktur data yang telah
diurutkan.
3. Ulangi langkah di atas untuk struktur data
yang tersisa.

Selection Sort

Algoritma sorting sederhana yang lain adalahSelection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksianelemen struktur data. Untuk sorting ascending(menaik), elemen yang paling kecil di antara elemenelemenyang belum urut, disimpan indeksnya,kemudian dilakukan pertukaran nilai elemen denganindeks yang disimpan tersebut dengan elemen yangpaling depan yang belum urut. Sebaliknya, untuksorting descending (menurun), elemen yang paling. besar yang disimpan indeksnya kemudian ditukar.

Algoritma Selection Sort

Algoritma selection sort dapat dirangkum sebagaiberikut:
1 Temukan nilai yang paling minimum (atau sesuaikeinginan) di dalam struktur data. Jika ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending, maka temukan nilai yang paling maksimum.
2 Tukar nilai tersebut dengan nilai pada posisipertama di bagian struktur data yang belum diurutkan.
3. Ulangi langkah di atas untuk bagian struktur datayang tersisa.

Insertion Sort

Cara kerja insertion sort sebagaimana namanya.Pertama-tama, dilakukan iterasi, dimana di setiap iterasi insertion sort memindahkan nilai elemen,kemudian menyisipkannya berulang-ulang sampai ketempat yang tepat. Begitu seterusnya dilakukan. Dariproses iterasi, seperti biasa, terbentuklah bagian yangtelah di-sorting dan bagian yang belum

Algoritma Insertion Sort

Algoritma Insertion Sort dapat dirangkum sebagai berikut:
1. Simpan nilai Ti kedalam variabel sementara, dengan i = 1.
2. Bandingkan nilainya dengan elemen sebelumnya.
3. Jika elemen sebelumnya (Ti-1) lebih besar nilainya daripada Ti, maka tindih nilai Ti dengan nilai Ti-1 tersebut. Decrement i (kurangi nilainya dengan 1).
4. Lakukan terus poin ke-tiga, sampai Ti-1 ≤ Ti.
5. Jika Ti-1 ≤ Ti terpenuhi, tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
6. Ulangi langkah dari poin 1 di atas dengan i di-increment (ditambah satu).

Merge Sort

Algoritma Merge Sort ditemukan oleh John vonNeumann di tahun 1945. Merge Sort termasuk paradigma algoritma divide and conquer (kurang lebihberarti: bagi dan atasi). Hal ini dikarenakan algoritma ini melakukan pembagian struktur data sebelumkemudian dioperasi satu per satu. Intinya, algoritma ini menggunakan dua ide utama sebagai berikut,
1. Sebuah list yang kecil membutuhkan langkahyang lebih sedikit untuk pengurutan daripadasebuah list yang besar.
2. Untuk membentuk sebuah list terurut dari duabuah list terurut membutuhkan langkah yanglebih sedikit daripada membentuk sebuah listterurut dari dua buah list tak terurut. Contoh:hanya diperlukan satu kali traversal untukmasing-masing list jika keduanya sudahterurut.

Algoritma Merge Sort

Algoritma Merge Sort sederhananya, dapat ditulis berikut:
1. Bagi list yang tak terurut menjadi dua samapanjang atau salah satunya lebih panjang satu elemen.
2. Bagi masing-masing dari 2 sub-list secara rekursif sampai didapatkan list dengan ukuran 1.
3. Gabung 2 sublist kembali menjadi satu list terurut.

Quick Sort

Quick Sort adalah algoritma sorting yang terkenal yang dirancang oleh C.A.R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan manufaktur komputer saintifik kecil, Elliott Brothers. Algoritma ini rekursif, dan termasuk paradigma algoritma divide and conquer.

Algoritma Quick Sort

Algoritma ini terdiri dari 4 langkah utama:
1. Jika struktur data terdiri dari 1 atau 0 elemenyang harus diurutkan, kembalikan strukturdata itu apa adanya.
2. Ambil sebuah elemen yang akan digunakansebagai pivot point (poin poros). (Biasanyaelemen yang paling kiri.)
3. Bagi struktur data menjadi dua bagian – satudengan elemen-elemen yang lebih besar
daripada pivot point, dan yang lainnya denganelemen-elemen yang lebih kecil dari pada pivot point.
4. Ulangi algoritma secara rekursif terhadapkedua paruh struktur data.

KESIMPULAN

Algoritma yang mudah dalam hal implementasi adalahBubble Sort, Selection Sort, dan Insertion Sort.Ketiganya memiliki kompleksitas O(n2). Di antaraalgoritma ini, yang paling effisien adalah InsertionSort. Algoritma yang lebih mangkus adalah MergeSort dan Quick Sort dengan kompleksitasnya adalah O(n log n). Adapun yang paling mangkus dari limaalgoritma ini adalah Quick Sort.

Pengertian overloading

Overloading Merupakan Suatu Function yang memiliki parameter , dan function tersebut dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah parameter mesti berbeda

atau bisa kita bilang Situasi di mana beberapa rutin dalam sebuah program dapat mempunyai nama sama tetapi berbeda jenis parameter dan/utau jenis return value.

lebih Jelasnya Overloading secara singkat :

* Nama Method Boleh Sama , Tapi Jumlah Parameter Mesti berbeda
* Nilai Yang Di Return Harus memiliki Tipe yang sama

Sample Overloading pada function TaxCalc pada C#.Net :

public static double TaxCalc(double pamt1, double prate1, double pamt2,
double prate2)
{
double taxamt;

Console.WriteLine(“Using method with 4 arguments”);
taxamt = (pamt1 * prate1) + (pamt2 * prate2);

return taxamt;

} // *** TaxCalc ***

// This method only takes two arguments: an amount and a rate
public static double TaxCalc(double pamt1, double prate1)
{
double taxamt;

Console.WriteLine(“Using method with 2 arguments”);
taxamt = pamt1 * prate1;

return taxamt;

} // *** TaxCalc ***

// This method only takes one argument: an amount
public static double TaxCalc(double pamt)
{
double taxrate = 0.15;
double taxamt = 0;

Console.WriteLine(“Using method with 1 argument”);
taxamt = pamt * taxrate;

return taxamt;

} // *** TaxCalc ***

// This method only takes one argument as well but it differs
// from the above in the argument type.
public static double TaxCalc(string whichtable)
{
double taxrate = 0;
Console.WriteLine(“Calling the method with 1 string argument”);

if (whichtable == “TaxTable1″)
taxrate = 0.15;

return taxrate;

}

Overriding Merupakan Suatu Keadaan Dimana kelas anak dapat mengubah atau bisa kita bilang memodifikasi atau memperluas data dan method pada kelas induk
Keuntungan Overriding : dapat menambahkan sifat / atribut pada kelas induk nya

contoh Overriding pada C#.Net

abstract class ShapesClass
{
abstract public int Area();
}

class Square : ShapesClass
{
int x, y;
// Because ShapesClass.Area is abstract, failing to override
// the Area method would result in a compilation error.
public override int Area()
{
return x * y;

Pengertian Class

Definisi dari class dan object

*

Class adalah blueprint, atau prototype, yang mendefinisikan variable dan method-method pada seluruh object tertentu
*

Object adalah sekumpulan software yang terdiri dari variable dan method-method terkait.

Keuntungan dari pewarisan

* Keuntungan dari pewarisan adalah pemrogram atau programmer dapat menciptakan class baru dari class yang sudah ada, sehingga tidak perlu menuliskan code dari nol ataupun pengulangannya, namun tetap bisa menambahkan attribute dan atau method unik dari class itu sendiri.

Perbedaan antar override dengan overload

Override

1. Mendefinisikan method dengan nama sama pada class yang berbeda.
2. Konsep dapat di manfaatkan dalam beberapa kasus inheritance, di mana menginginkan penamaan method dengan nama sama namunberbeda dalam impelementasinya.

Overload

Pengertian Epkasulasi

Enkapsulasi = Pembungkusan , maksudnya di sini semua objek yang kita definisikan / bisa juga informasi kita sembunyikan di dalam enkapsulasi tersebut agar tidak dapat dibaca oleh kelas lain yang tidak berhak membacanya. maksudnya secara lebih jelas agar memastikan agar object hanya dapat di ubah oleh object yang mendapat ijin untuk mengubahnya , bila tidak memiliki ijin maka tidak dapat mengubahnya atau membacanya.

Polymorphism = Memiliki Banyak Bentuk.
Contoh Polymorphism

public class BaseClass
{
public void DoWork() { }
public int WorkField;
public int WorkProperty
{
get { return 0; }
}
}

public class DerivedClass : BaseClass
{
public new void DoWork() { }
public new int WorkField;
public new int WorkProperty
{
get { return 0; }
}
}

Inheritance = Pewarisan , Mewariskan objek yang dimiliki ke pada objek yang diturunkan , bersifat menyeluruh.
Kelas yang mewariskan biasa di sebut super class / class induk
Kelas yang diwariskan biasa di sebut sub class / kelas anak

Secara lebih singkat begini :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam jg .

Ini merupakan inheritance terhadap A kepada B , dan inheritance bukan hanya dapat 1x diwariskan , tetapi dapat lebih dari 1x. seperti berikut :
A sebagai Ayah memiliki Anak bernama B , A berkulit Hitam maka B akan berkulit Hitam jg . dan B pun memiliki anak C maka C pun akan berkulit hitam

Keuntungan dari inheritance :
- Tidak perlu mendefinisikan Variabel Bila membutuhkan , Cukup menurunkan dari class induk
- Memudahkan dan Mempercepat pemprogramman , mengurangi Code

Sample inheritance dalam C#.Net

public class A
{
public A() { }
}

public class B : A
{
public B() { }

Membuat aplikasi ANtrian dalam suatu perusahaan

PT Angin Ribut memerlukan sebuah aplikasi inventory yang dapat dijalankan secara multi-user. Dari 10 orang programer yang mengajukan diri, Anda lah yang terpilih untuk membuat aplikasi tersebut. Setelah mentraktir teman-teman Anda untuk merayakan hari bersejarah tersebut, Anda duduk di depan komputer dan bertanya, mulai dari mana ya?

Bagi Anda yang baru pertama kali membuat program untuk sebuah perusahaan, tentunya situasi yang Anda hadapi saat ini berbeda dibandingkan membuat program untuk tugas kuliah atau skripsi. Perbedaannya tidak semata-mata dari kompleksitas, tetapi lebih merujuk pada tanggung-jawab dan bagaimana memberikan aplikasi yang baik untuk perusahaan.

Hal pertama yang perlu diingat, sebuah perusahaan seharusnya memiliki jaringan komputer yang berpotensi menjadi semakin besar dan luas, sehingga aplikasi untuk perusahaan dapat berkembang menjadi besar baik dalam kaitannya dengan pengguna atau kode program.

Aplikasi yang dibuat untuk perusahaan mutlak harus stabil dan dapat menangani dengan baik kesalahan yang mungkin terjadi, mengingat operasi bisnis perusahaan tergantung pada aplikasi tersebut.

Client Server

Kita akan membahas client server yang tentunya harus Anda pertimbangkan untuk membuat aplikasi perusahaan. Pada model client server umumnya, client akan melakukan request langsung kepada server. Client bertanggung jawab menangani input dari pengguna, sementara server bertanggung jawab menangani permintaan operasi database.

Aplikasi client server tidak selalu harus merujuk pada dua komputer dimana satu komputer berlaku sebagai server dan komputer lainnya sebagai client. Anda dapat melakukan development dengan menggunakan satu komputer.

Kenyataannya, hanya dengan melakukan pemrograman untuk satu komponen object yang memanggil object yang lain, sudah menggambarkan satu contoh dari teknologi client server.

Perancangan aplikasi client server harus mempertimbangkan hal-hal sebagai berikut:

1. Banyaknya client didalam sistem.
2. Apakah sistem menggunakan lebih dari satu DBMS.
3. Kebutuhan update aplikasi di masa mendatang.

Terdapat dua pendekatan arsitektur aplikasi client server, yaitu two-tier (2-tier) dan n-tier.

Two-tier

Tier dapat diartikan sebagai tingkatan. Konsep tier menjelaskan arsitektur aplikasi secara logical ketimbang secara physical. Arsitektur two-tier menerangkan aplikasi yang dirancang digunakan oleh satu atau lebih client yang terkoneksi pada server database.

Contoh two-tier yang paling sederhana adalah saat seluruh client yang terkoneksi menjalankan aplikasi yang sama dan mengakses satu database.

Secara sederhana, konsep two-tier dapat digambarkan sebagai berikut.

Pada two-tier konvensional, aplikasi pada sisi client umumnya menangani beberapa business logic. Contoh business logic dari sebuah aplikasi client server yaitu sekumpulan komponen object yang memiliki fungsi tertentu. Pada lingkungan jaringan, business logic ini menempati dan dijalankan pada masing-masing komputer client.

Dari penjelasan diatas, aplikasi dengan arsitektur two-tier seperti digambarkan diatas bisa jadi cukup sederhana untuk diterapkan, tetapi dapat menjadi masalah yang cukup sulit dan memakan waktu, biaya dan tenaga jika tiba saatnya untuk melakukan update aplikasi. Mengapa demikian?

Karena penerapan business logic pada two-tier yang digambarkan diatas harus dijalankan pada masing-masing komputer client, sehingga jika dilakukan update aplikasi, maka pada seluruh komputer client yang terkait harus dilakukan proses update.

Anda dapat menghindari permasalahan ini dengan melakukan sentralisasi business logic pada server. Teknologi DBMS seperti pada Microsoft SQL Server menyediakan fasilitas stored procedure untuk menyimpan business logic.

Dengan demikian, masing-masing client tidak lagi melakukan proses business logic pada dirinya, tetapi memanggil stored procedure untuk melakukan business logic, kemudian business logic akan menjalankan operasi database yang diminta.

Dengan cara ini, saat Anda ingin melakukan update business logic, cukup dengan melakukan update pada stored procedure yang terletak pada server database, maka perubahan business logic telah berlaku secara keseluruhan sistem.

Perubahan business logic ini berlaku transparan pada client, dalam artian client hanya perlu mengetahui nama dari procedure yang ada, tidak perlu merisaukan kode program yang terdapat pada procedure tersebut.

Solusi ini cukup menenangkan dan menghindari Anda dari kerja lembur selama dua malam untuk mengupdate seluruh komputer client pada sistem, yang mana Anda harus melakukannya setelah jam pulang kantor pada saat tidak ada lagi yang menggunakan komputer, selain Anda tentunya.

N-tier

Stored procedure ternyata tidak mencukupi untuk sistem dimana database disimpan pada lebih dari satu server, karena bisa jadi terdapat client yang tidak dapat mengakses procedure tersebut. Mungkin Anda bertanya, apa perlunya menyimpan database lebih dari satu server?

Tentu saja Anda juga menginginkan perusahaan yang menggunakan aplikasi Anda dapat berkembang, bukan? Penggunaan lebih dari satu database sangat memungkinkan saat sebuah perusahaan telah memiliki divisi yang cukup besar dimana harus memiliki database tersendiri.

Dalam kasus penggunaan lebih dari satu server database, Anda perlu mengimplementasikan strategi development yang berbeda, pendekatan yang baik adalah dengan menggunakan model n-tier.

Huruf “n” pada n-tier menunjukkan variabel numerik yang dapat berisi angka sebanyak apapun, misalnya 3-tier, 4-tier dan seterusnya. Karena itu sebuah aplikasi n-tier memiliki 3 atau lebih tingkatan logical, umumnya aplikasi n-tier saat ini menggunakan 3-tier.

Untuk menggambarkannya, Anda dapat membayangkan skema disain aplikasi two-tier yang mengimplementasikan business logic pada stored procedure seperti yang telah diterangkan diatas, kemudian melakukan improvisasi disain dengan menambahkan sebuah tingkatan (tier) sebagai middle tier sebagai business object, arsitektur inilah yang dikenal dengan 3-tier.

Perbedaan nyata dengan 2-tier adalah, business object pada 3-tier terpisah dari aplikasi client dan elemen database. Sehingga dapat digambarkan bahwa sistem 3-tier secara umum terbentuk dari tingkatan client, business dan database.

Untuk membayangkan penerapan 3-tier dalam kehidupan sehari-hari yang mungkin paling sering Anda temui adalah penerapan Internet ataupun Intranet.

Pada aplikasi Internet/Intranet, terdapat client yang menjalankan browser dan meminta informasi dari middle-tier yang berupa HTTP Server. Middle-tier akan meminta data pada server database, kemudian mengirimkannya kembali kepada HTTP Server. HTTP Server akan mengirimkan kepada browser dalam bentuk page/halaman web.

Diagramnya terlihat seperti dibawah ini:

Sebuah sistem 3-tier menyediakan support multi-user yang stabil, bahkan saat pada client menjalankan aplikasi yang berbeda, juga dapat mendayagunakan beberapa database yang digunakan secara bersamaan.

Dalam pembahasan berikut ini, akan dijelaskan contoh kasus penerapan 3-tier. Bayangkan sebuah sistem 3-tier, yang terdiri dari client, business dan database. Sistem tersebut harus melakukan kalkulasi gaji karyawan berdasarkan pajak dan peraturan lainnya yang dapat berubah dari tahun ke tahun.

Pada tahun ini, terdapat perubahan peraturan pajak yang harus diterapkan pada sistem, pada tingkatan mana Anda harus melakukan update? Anda hanya perlu melakukan update pada tingkatan business object, yang ada karena arsitektur 3-tier ini.

Satu hal yang harus terus diingat sebagai konsep dasar, bahwa pengertian arsitektur 2-tier maupun 3-tier adalah secara logical dan bukan secara physical. Sehingga pada sebuah sistem kecil Anda dapat menjalankan business logic dan database pada komputer yang sama.

Tetapi pada sistem yang besar, Anda mungkin memerlukan beberapa komputer untuk menjalankan baik tingkatan business ataupun database.

Keuntungan Dan Kerugian n-tier

Diantara keuntungan-keuntungan yang dapat diperoleh dari arsitektur n-tier (atau 3-tier pada umumnya), yang terutama adalah:

1. Kemudahan perubahan business logic di masa yang akan datang.
2. Business logic yang mudah diimplementasi dan dipelihara.
3. Aplikasi client dapat mengakses berbagai tipe DBMS yang berbeda-beda secara transparan.

Apakah terdapat kerugian n-tier? Mungkin lebih tepat dikatakan sebagai konsekuensinya, yaitu sistem n-tier relatif mahal untuk development dan instalasinya.

Hal ini dikarenakan perencanaan software pada 3-tier bisa jadi sangat kompleks. Bahkan pada awal tahap perencanaan, Anda telah harus mempertimbangkan potensi pengembangan perusahaan pada masa yang akan datang.

Kompleksitas dalam hal ini meliputi seluruh aspek, baik infrastruktur maupun pembuatan software secara keseluruhan. Sementara dalam suatu perusahaan, semakin besar perubahan sistem yang dilakukan, maka akan semakin memerlukan adaptasi yang semakin luas ruang lingkupnya. Karena itu secara otomatis memerlukan rentang waktu relatif lebih lama.

Terutama jika sistem 3-tier tersebut akan menggantikan sistem yang telah lama digunakan, terdapat cukup banyak tantangan untuk sosialisasi sistem yang baru. Dalam hal ini, interaksi dan komunikasi dengan pengguna sistem secara keseluruhan sangat diperlukan.

Karena itu terdapat dua sisi yang harus Anda temukan titik imbangnya, antara keuntungan-keuntungan yang dapat diraih oleh arsitektur aplikasi n-tier berbanding dengan biaya, tenaga dan waktu yang diperlukan untuk development dan implementasinya.

Keuntungan Dan Kerugian 2-tier

Karena berbagai faktor, jika konsekuensi arsitektur aplikasi n-tier masih terlalu besar dibandingkan dengan keuntungan-keuntungannya, maka Anda dapat mempertimbangkan arsitektur aplikasi 2-tier.

Berlawanan dengan n-tier, sistem 2-tier relatif lebih sederhana untuk didevelop dan diimplementasikan, dibandingkan dengan sistem 3-tier. Sehingga untuk kasus-kasus tertentu, contohnya untuk bisnis kecil, sistem 2-tier lebih cocok untuk diterapkan.

Teknologi Pendukung

Konsep arsitektur tanpa teknologi pendukung tidak akan dapat diterapkan. Termasuk dalam arsitektur 2-tier dan n-tier. Beberapa contoh teknologi yang umum dipergunakan untuk mendukung 2-ter dan n-tier:

1. Component Object.

Umumnya merupakan model object oriented dimana dapat dipergunakan oleh aplikasi yang berbeda dan penggunaan ulang komponen. Contohnya adalah COM/DCOM. Aplikasi yang ditulis dengan bahasa pemrograman yang berbeda dapat saling berkomunikasi dengan menggunakan Component Object.

Component Object itu sendiri dapat ditulis dengan bahasa pemrograman yang berbeda-beda. Pada prinsipnya komponen tersebut terdiri dari class yang memiliki sekumpulan method.

2. Microsoft Transaction Server.

MTS atau Microsoft Transaction Server merupakan software yang dikembangkan oleh Microsoft untuk keperluan monitoring transaksi pada aplikasi terdistribusi. MTS beroperasi pada middle-tier dan menyediakan control transaksi.

Sebagai contoh, jika Anda mengembangkan sistem 3-tier yang mana menempatkan business object pada middle-tier, maka Anda dapat membuat ActiveX DLL sebagai business objectnya, dan melakukan instalasi didalam lingkungan MTS pada middle-tier.

MTS akan bertanggung-jawab dalam menangani akses multi-client pada busines object tersebut. MTS menyediakan fasilitas seperti transaksi rollback, commit dan deadlock pada middle-tier.

3. HTTP/Web Server.

Untuk aplikasi n-tier pada aplikasi Internet/Intranet, Anda mutlak memerlukan Web Server. Terdapat cukup banyak web server yang umum digunakan seperti Apache Web Server atau Internet Information Server (IIS).

Anda dapat menggunakan web server sebagai middle-tier untuk menangani permintaan dari browser komputer client.

4. Microsoft Message Queue Server.

MMQS atau Microsoft Message Queue Server merupakan teknologi yang dikembangkan oleh Microsoft yang berjalan pada middle-tier dan berfungsi untuk mengelola antrian permintaan.

Hal ini dilatarbelakangi karena didalam jaringan yang besar, tidak semua komputer yang terkoneksi berfungsi pada saat yang diperlukan, sehingga diperlukan sebuah aplikasi yang dapat mengelola antrian request dari client dan response dari server yang akan dikirimkan lagi ketika komputer tujuan telah berfungsi.

Bahkan jika Anda menggunakan banyak server dan keseluruhan server sedang dalam kondisi down, MMQS akan menyimpan semua request hingga beberapa atau semua server kembali online.

Satu keuntungannya lagi, jika client-client meminta request yang melebihi kapasitas sebuah server, maka MMQS dapat menyimpannya untuk kemudian mendelegasikannya pada server yang tidak sibuk. Untuk kebutuhan ini diperlukan aplikasi pada server yang berfungsi sebagai listener atau referral.

5. Database Management System.

Database Management System atau dikenal dengan singkatan DBMS merupakan sumber penyimpanan data dan tentu saja memegang peranan vital dalam keseluruhan sistem.

Untuk arsitektur 2-tier dan n-tier, diperlukan aplikasi DBMS yang mampu bekerja pada lingkungan tersebut, beberapa contohnya adalah MySQL, Microsoft SQL Server dan Oracle.

Jika pada DBMS yang dipergunakan terdapat fasilitas stored procedure, maka dimungkinkan untuk menyimpan business logic didalam stored procedure yang akan diakses oleh client.

Conceptual Model

Tahap disain untuk merancang aplikasi untuk perusahaan bisa jadi merupakan pekerjaan yang rumit dan harus berhati-hati. Sehingga sangat disarankan Anda mencurahkan waktu yang cukup pada tahap disain.

Pendekatan terbaik untuk melakukan disain adalah dengan membagi aplikasi kedalam unit-unit kecil yang disebut modul. Pada awalnya Anda dapat membuat modul standalone yang dapat dipanggil oleh modul lainnya dan dapat digunakan berulang kali (reused) pada project yang lain.

Hal ini akan mempermudah pekerjaan Anda dan menghindari duplikasi pengkodean yang tidak perlu, serta menghemat waktu kerja Anda.

Pada tahap disain ini juga, Anda perlu mengenal apa yang dinamakan dengan conceptual model, yang juga dikenal dengan sebutan service model atau application model.

Pada implementasi siste 3-tier, dikenal tingkatan sebagai berikut:

1. User service/Presentation tier.
Saat Anda melakukan perancangan pada tahap awal, presentation tier merupakan tingkatan yang mengijinkan pengguna berkomunikasi dengan aplikasi.

2. Business service/Application server tier.
Digunakan untuk melakukan implementasi business logic.

3. Data service/Data source tier.
Tingkatan terakhir ini berfungsi untuk mengelola permintaan operasi data.

Mengenal Ruang Lingkup

Keberhasilan membuat aplikasi perusahaan juga sangat tergantung pada informasi yang Anda dapatkan mengenai perusahaan yang bersangkutan. Pengertian perusahaan tidak selalu mengacu pada PT Angin Ribut seperti pada contoh, tetapi bisa jadi organisasi seperti sekolah, universitas, atau bahkan pemerintah.

Yang pasti, aplikasi tersebut memiliki nilai guna yang besar bagi customer maupun perusahaan yang bersangkutan, mengenal business rule perusahaan yang bersangkutan merupakan kata lain dari mengenal “medan tempur”, dimana masing-masing perusahaan memiliki orientasi yang bisa jadi berbeda. Sehingga sisi komunikasi yang baik pun harus dimiliki untuk menghindari kesalahan interpetasi.

Menciptakan komunikasi yang baik dengan user yang secara langsung akan menggunakan aplikasi Anda juga akan sangat membantu pemahaman dan kesulitan yang dialami, sehingga pemecahan atau solusinya akan lebih mudah ditemukan dan diimplementasikan dalam aplikasi Anda.

STACK

Secara bahasa, Stack berarti tumpukan. Jika dikaitkan dengan struktur data, Stack berarti sekumpulan data yang organisasi atau strukturnya bersifat tumpukan atau menyerupai tumpukan.

Secara ilustrasi, stack dapat digambarkan dengan gambar di samping.

“Top “ merupakan pintu untuk keluar masuknya elemen – elemen stack. A, B, dan C merupakan suatu koleksi. Dari ilustrasi dapat digambarkan bahwa C merupakan elemen yang terakhir memasuki stack namun pertama keluar dari stack. Begitu sebaliknya dengan A. A merupakan elemen pertama yang memasuki tumpukan namun terakhir saat keluar dari tumpukan.

Di dalam gambar juga terlihat urutan masuk dan keluar yang berkebalikan. Elemen yang masuk pertama akan keluar erakhir dan sebaliknya. Prinsip ini telah dikenal dalam struktur data dengan nama prinsip LIFO (Last In First Out).

Di dalam pengembangannya, stack dapat dikelompokkan menjadi dua bagian. Dua bagian tersebut yaitu Single Stack dan Double Stack.

Single Stack

Single Stack atau Stack Tunggal adalah stack yang hanya terdiri dari satu koleksi. Bila stack ini direpresentasikan dengan array, maka pengisian dan penghapusan harus dilakukan bertahap dari indeks TOP-nya.

Di dalam proses single stack terdapat tiga macam proses utama, yaitu :

- Inisialisasi

- PUSH (Insert, Masuk, Simpan, Tulis)

- POP (Delete, Keluar, Ambil, Baca, Hapus)

Array dan Range

1.Array dimensi satu dan banyak
Sebuah array dimensi satu yang misalnya kita beri nama nilai , dapat kita bayangkan berbentuk seperti gambar dibawah ini
Nilai ( 1 ) Nilai ( 2 ) Nilai ( 3 ) – - – Nilai ( n )
Subscript atau indeks dari elemen array menyatakan posisi, elemen pada urutan dalam array tersebut.
Notasi yang digunakan bagi elemen array biasanya adalah nama array dilengkapi dengan subscript. Harga minimum dari subscript dari array disebut batas bawah ( lower bound ), sedangkan harga maksimumnya disebut dengan batas atas ( upper bound ).
Array dimensi banyak ( multi dimensional array ) didefenisikan sebagai sebuah array yang elemennya berupa array juga. Untuk itu diperlukan dua buah subscript, ddimana subscript yang pertama digunakan untuk menyatakan posisi baris sedangkan subscript yang kedua digunakan untuk posisi kolom.
Seperti halnya pada array berdimensi satu, pada array berdimensi dua batas bawah untuk subscript I maupun J dapat diambil secara umum.
Yang dimaksud dengan cross section suatun array berdimensi dua adalah pengambilan salah satu subscript, misalnya subscript baris untuk tetap( konstan ), sedangkan subscriptnya yang satu lagi kita ubah-ubah sepanjang rangenya, dimana notasi yang umum digunakan adalah notasi * ( asterisk ) bagi subscript yang berubah-ubah nilaianya tersebut.
Transpose dari suatu array dimensi dua adalah penulisan baris menjadi kolom ataun kolom menjadi baris dari suatu array.
Contoh :
Transpose dari array berorder A x V adalah array berorder V x A

2. Deklarasi Array dalam bahasa pemprograman

a. Deklarasi array 1 dimensi
Bentuk umum dari deklarasi tipe array adalah :

type pengenal = array [tipe_index] of tipe;

dengan pengenal : nama tipe data
tipe_index : tipe data untuk nomor index
tipe : tipe data komponen

Parameter tipe_index menentukan banyaknya komponen array tersebut. Berikut contoh dari deklarasi :

type vek = array [1…..100] of integer;

menunjukkan bahwa vek adalah nama-pengenal/variabel yang berupa array yang komponennya bertipe integer dan banyaknya 100 buah.
Deklarasi yang demikian ini disebut deklarasi array dimensi satu, yang disebut vektor.

2.deklarasi array 2 dimensi
type tabel = array [1..3, 1..4] of real;
tabel(3,4)
artinya terdapat variabel yang bernama tabel yang di deklarasikan sebagai array dimensi dua dengan jumlah maksimal barisnya = 3 dan kolom = 4; serta tipe komponen datanyaadalah real.

c. Deklarasi array 3 Dimensi
type tabel = array [1..3, 1..4] of real;
tabel(3,4)
artinya terdapat variabel yang bernama tabel yang di deklarasikan sebagai array dimensi dua dengan jumlah maksimal barisnya = 3 dan kolom = 4; serta tipe komponen datanyaadalah real.

3. Pemetaan Array ke Storage

Seperti halnya struktur data yang lain, ada beberapa cara untuk menyajikan array di dalammemori. Skema penyajian dapat dievaluasi berdasarkan
4 karakteristik, yakni:
1. kesederhanaan dari akses elemen
2. mudah untuk ditelusuri
3. efisiensi dari utilitasi storage
4. mudah dikembangkan
Umumnya tidaklah mungkin untuk mengoptimalkan keempat faktor tersebut
sekaligus. Pandang array satu dimensi NOPEG dengan batas bawah subscript 1, dan batas atas subscript = N. Salah satu cara untuk menyimpan array ini adalah sedemikian sehingga urutan fisik dari elemen sama dengan urutan logik dari elemen. Storage untuk elemenNOPEG(I+1) adalah berdampingan dengan storage untuk elemen NOPEG(I), untuksetiap I = 1, 2, 3,…, N-1. Untuk menghitung alamat (address) awal dari elemen NOPEG(I), diperlukan untuk mengetahui 2 hal yakni:
1. address awal dari ruang storage yang dialokasikan bagi array tersebut.
2. ukuran dari masing-masing elemen array.
Address awal dari array, kita nyatakan dengan B, disebut juga base-location. Misalkan
bahwa masing-masing elemen dari array menduduki S byte. Maka, address awal dari elemenke-I adalah:
B + (I-1) * S
Sekarang kita perluas persamaan di atas untuk mendapat address dari elemen ke-I dari
array yang mempunyai batas bawah subscript tidak sama dengan 1. Perhatikan array Z(4:10),
maka address awal dari Z(6) adalah:
B + (64) * S
Untuk array Z2 (-2:2) misalnya, address awal dari Z2(l) adalah:
B + (I -(-2)) * S
Maka secara umum, untuk array:
ARRAY(L:U),
elemen ARRAY(I) mempunyai address awal
B + (U-L) *

4.TRINGULAR ARRAY (ARRAY SEGITIGA)

Akan kita tinjau beberapa aspek pelinearan suatu array yang khusus, yakni tringular array. Tringular array dapat merupakan upper tringular (seluruh elemen di bawah diagonal utama = 0) ataupun lower tringular (seluruh elemen di atas diagonal utama = 0).
Dalam array lower triangular dengan N baris, jumlah maksimum elemen 0 pada
baris ke-I adalah 1, karenanya total elemen 0, tidak lebih dari:
N
Σ I = N ( N+1) / 2
I =I
Rumus ini berlaku pula untuk array upper tringular dengan N baris. Kalau N besar,
alangkah baiknya kalau elemen nol tidak usah kita simpan dalam memori. Suatu pendekatanterhadap problema ini adalah dengan pelinearan array, dan dengan hanya menyimpanbagian array yang tidak nol.
Misalkan kita menyimpan array upper tringular T secara baris dalam array satu dimensi
S, dengan batas subscript I sampai N(N+I)/2. Elemen T(1,1) disimpan sebagai S(1), elemenT(1,2) sebagai S(2) dan seterusnya, sehingga elemen T(1,N) disimpan sebagai S(N). Maka elemen T(2,2) disimpan sebagai S(N+1) (karena T(2,1) = 0). Terakhir sekali, elemenT(N,N) akan disimpan sebagai S(N(N+1)/2).
Kadang-kadang suatu program menggunakan lebih dari satu array tringular. Untuk
itu kita dapat menyimpan 2 array sekaligus. Misalnya array A upper triangular berorder Nx N dan array B lower triangular berorder (N-1) x (N-1). Mereka dapat kita simpan
sebagai array C berorder N x N. Di sini C(l,J) = A(l,J) untuk I = J. Sekarang apabila array A upper tringular berorder N x N sedangkan array B lower tringular, juga berorder N x N, maka array C yang mengandung keduanya harus berorder N x (N+1). Di sini elemen A(I,J) disimpan sebagai C(I,J+1) untuk I = J.

5.Definisi RECORD
Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai
type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan
menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield.
Sebagai Contoh, data personalia dari seorang pegawai suatu perusahaan di Amerika Serikat,merupakan sebuah record yang dapat terdiri dari berbagai field, dan subfield seperti berikut ini:
1. NOMOR-JAMINAN-SOSIAL
2. NAMA, yang terdiri atas:
NAMA-BELAKANG
NAMA-DEPAN
NAMA-TENGAH
3. ALAMAT, terdiri atas:
JALAN
NOMOR RUMAH
NAMA-JALAN
KOTA
NEGARA-BAGIAN
KODE-POS
4. MENIKAH
dan sebagainya lagi.
Pada record tersebut di atas, satuan data seperti NAMA BELAKANG ataupun KOTA
merupakan tipe data string, sedangkan data lain seperti GAJI POKOK, TUNJANGAN
JABATAN dan berbagai data yang akan diolah secara matematis akan disimpan dengan
tipe data numerik, bisa integer maupun real. Data MENIKAH bisa digunakan tipe data
boolean atau logikal.
Seperti telah kita paparkan terdahulu, array berbeda dengan record, yakni array bersifat
homogen (terdiri dari tipe data yang sama), dan komponen array tidak memiliki nama
sendiri, dan hanya diberi identifikasi oleh posisi mereka di dalam array. Penggunaan
keduanya di dalam program juga berbeda, jika penggunaan array pada umumnya akan
disimpan di memori utama komputer (bersifat sementara), sedangkan record biasanya
digunakan dalam filing yang akan disimpan di memori sekunder komputer, seperti hard
disk, disket, dan lainnya.
Sebuah record memberi informasi tentang berbagai kondisi dari obyek padapermasalahan yang nyata sehari-hari. Setiap field memberi uraian tentang satu atribut dari
obyeknya. Sebuah record biasanya diberi identifikasi oleh key-nya. Key atau kunci adalah
salah satu atau lebih field yang dipilih untuk tujuan penyampaian informasi yang terjadi
di dalam record yang bersangkutan.
Koleksi dari record yang sama struktur fieldnya disebut suatu file atau berkas. Jadi, koleksi
dari record semua pegawai perusahaan membentuk sebuah file personalia. Pada umumnya
record disimpan membentuk file, dalam urutan sesuai dengan nilai dari key masing-masing.
Di dalam suatu file PERSONALIA, field NOMOR JAMINAN SOSIAL dari seorang pegawai
dapat digunakan sebagai key. Di dalam bahasa pemrograman tingkat tinggi, record dapat
dinyatakan sebagai struktur data (COBOL dan PL/1) dapat diadakan spesifikasi tentang
nama record, field dan subfield yang bersangkutan.

JENIS – JENIS DATA

A. Definisi data
Beberapa definisi tentang data dari sudut pandang yang berbeda – beda:
• Menurut berbagai kamus bahasa Inggris-Indonesia, data diterjemahkan sebagai istilah yang berasal dari kata “datum” yang berarti fakta atau bahan-bahan keterangan.
• Dari sudut pandang bisnis, data bisnis (business data) adalah deskripsi organisasi tentang sesuatu(resources) dan kejadian (transactions) yang terjadi (business data is an organization’s description of things (resources)and events (transactions) that it faces).
• Data adalah deskripsi dari sesuatu dan kejadian yang kita hadapi.
• Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadian adalah sesuatu yang terjadi pada saat tertentu. Kesatuan nyata adalah berupa suatu objek nyata seperti tempat, benda dan orang yang betul-betul ada dan terjadi.

B. Tipe data
Secara sederhana tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Dalam versi lain tipe data juga diartikan sebagai batasan terhadap fungsi tanda pengenal terhadap semua nilai yang diterima. logika yang dapat kita berikan adalah ketika kita menempatkan tanda pengenal harga hanya mengenal angka, maka ketika kita memberikan nilai berupa string maka secara otomatis data tersebut akan ditolak karena nilai tersebut tidak dikenali oleh tipe data yang diberikan.

1 Tipe Data Numeric Integer

Tipe data integer merupakan tipe data bilangan bulat yang hanya mengenal bilangan decimal. Dimana tipe data Integer tidak mengenal pecahan

Bentuk Umum

Var
Nil1:integer;
Begin
Nil1:=5000;

2.2.2 Tipe Data Real

Tipe data numeric real adalah tipe data dari suatu tanda pengenal selain mengenal bilangan bulat utuh tipe data ini juga mengenal nilai angka yang mengenal pecahan.

Bentuk Umum

Var
Nil:real;
Begin
Nil1:=20,5;

2. Tipe Data String
Tipe data string merupakan salah satu jens tipe data selain mengenal angak disini tipe data dapat juga mengenla data berupa huruf maupun tanda baca.

Bentuk umum

Var
Nama:string;
Begin
Nama:=’Anton’;

2.2.4 Tipe Data Char

Secara fungsi tipe data char sama dengan tipe data string tetapi dari segi kapsitas ruang diperoleh tipe data char jauh lebih sedikit karena hanya mengenal 1 karakter.

3. Deklarasi data

Dalam setiap penulisan bahasa pemograman deklarasi sangat digunakan apabila dalam penulisan program dibutuhkan indentifier atau tanda pengenal. Indentifier pada umumnya di buat oleh progremmmer yang digunakan untuk mewakili nilai dari suatu object.
Indentifier yang dikenal dalam Delphi adalah label, konstanta, tipe, fungsi, procedure maupun variabel.

a. Deklarasi Konstanta

Deklarasi konstanta adalah tanda pengenal dalam Delphi yang mempunyai nilai yang sudah tetap. Definisi konstanta diawali dengan kata baku Const diikuti dengan kumpulan indentifier yang diberi sebuah nilai.

Contoh

procedure TForm2.etertulisChange(Sender: TObject);
const
nil1:=’30000′;
begin
end;

b. Deklarasi Variabel

Deklarasi variabel adalah tanda pengenal dalam Delphi yang mempunyai nilai yang mana nilai tersebut akan terus berubah selama proses berjalan. Definisi variabel diawali dengan kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang dibutuhkan.

Contoh

procedure TForm2.EpraktekKeyPress(Sender: TObject; var Key: Char);
var
praktek,nil2,nil1 :real;
begin
if (key = #13) then
begin
nil1 := strtofloat(ehtulis.Text);
praktek:= strtofloat(epraktek.Text);
nil2:= 0.4 * praktek;
ehpraktek.Text := floattostr(nil2);
form2.ActiveControl := cmi;
emurni.Text := floattostr(nil1 + nil2);
if nil1 > 60 then
egrade.Text := ‘Lulus’
else
egrade.Text := ‘Gagal’
end;

4. Pemetaan organisasi

6 Fase proses pemetaaan organisasi : :
1. Pengumpulan data dan analisis
2. Perancangan basis data secara konseptual
3. Pemilihan DBMS
4. Perancangan basis data secara logika (data model mapping)
5. Perancangan basis data secara fisik
6. Implementasi Sistem basis data.

ftutguuy

ghfjghjghjgjhghjg