Tampilkan postingan dengan label KUliuyah. Tampilkan semua postingan
Tampilkan postingan dengan label KUliuyah. Tampilkan semua postingan

Beberapa macam mode search dan pengurutan dalam C++

0 komentar

1. Pencarian Biner (Binary Search) dilakukan untuk :

* memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.

* Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).

* Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.

Berikut ini code binary search dengan bahasa C++

#include
#include
#include

void binSearch(int cari);

void main(){

clrscr();

int searchValue=20; /*Nilai yang dicari dalam arry yang sudah terurut */

binSearch(searchValue);

getch();

}

void binSearch(int cari)

{ int lb=1, ub=19, mid; /* lb merupakan batas bawah, up merupakan batas atas */

int nilai [20] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

int jumlahPerbandingan =1; /* Optional */

mid= (lb+ub)/2;

while( nilai[mid]!= cari && lb<=ub)

{

jumlahPerbandingan++;

if( nilai [mid] > cari )

{ub = mid-1;}

else

{lb = mid +1;}

mid = (lb+ub)/2;

}

if(lb<=ub)

{

cout << “Nilai berhasil ditemukan”;

cout<<”Jumlah perbandingan :”<
}
else
cout <<”Nilai tidak ditemukan”;
}

Catatan :

Array bersifat statis baik nilai maupun jumlah element telah ditentukan sejak awal program.


2. Sequence search


pencarian sekuensial atau pencarian linear merupakan model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan data. Secara konsep, penjelasannya adalah sebagai berikut: Terdapat L yang merupakan larik yang berisi n buah data (L[0], L[1],…, L[n-1]) dan k adalah data yang hendak dicari. Pencarian dilakukan untuk menemukan

L[i] = k

dengan I adalah bilangan indeks terkecil yang memenuhi kondisi 0 ≤ k ≤ n-1. Tentu saja ada kemungkinan bahwa data yang dicari tidak ditemukan. Contoh,

L = [10,9,4,6,4,2,5]

dimanakah posisi 4 yang pertama? Dalam hal ini k adalah 4 dan k ditemukan pada posisi dengan indeks berupa 2.

Dan setelah browsing, saya menemukan penjelasan yang lebih mudah dimengerti dan dipahami ^-^

The sequential search is best used if the array you are searching is unsorted. This method of searching is usually used on small arrays of less than 16 elements. We start the sequential search by first declaring a target to be found. The search initiates at the beginning of the array until it finds the target.

In the following example we will find a target value of 23 within a one dimensional array. At index 0, 32 is not equal to 23 so we proceed on to the next element.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

At index 1, 431 is not equal to 23 so we proceed.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

At index 2, -34 is not equal to 23 so we proceed.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

Finally at index 3, 23 is equal to 23 and we have found our target.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

Now we will implement this example of a sequential search into C++ code. The program below asks the user for a target to be found, then uses a for loop to analyze each element of the array. If the array element is equal to the target it will display that the target was found. Whenever a target is found the variable “flag” will be incremented by 1. At the end of the program if the variable “flag” is less than one, thenthe target was obviously not found.

Contoh codenya …

#include iostream.h
#include conio.h
using namespace std;

int main()
{
const int arraySize = 5;
double target;
int array[arraySize] = {32, 431, -34, 23, 12};
int flag;

// flag is used to log how many times the target is encountered.

flag = 0;

cout << "Enter a target to be found: ";
cin >> target;

for(int cntr = 0; cntr < arraySize; cntr++)
{
if(array[cntr] == target)
{
cout << "Target found in array index " << cntr << "."
<< endl;

flag += 1;
}
}

// Test to see if target was found.

if(flag < 1)
{
cout << "Target not found." << endl;
}

return 0;
getch();
}

Namespace digunakan untuk menghindari name collision -> tubrukan nama yang sama.
Std sendiri adalah namespace yang digunakan untuk standard template library di C++. Jadi semua fungsi & template class STL didefinisikan didalam namespace "std".

Mengakses fungsi / struktur / class yang didefinisikan dalam suatu namespace dapat dilakukan dengan dua cara. Ini contoh akses namespace std untuk deklarasi variabel MyString yang merupakan type string.

Back to topic, dari code di atas, pertama dibuat dulu array berdimensi satu yang berisi 5 buah data, lalu dimasukkan data yang ingin dicari. Dideklarasikan "cntr=0",dilakukan pengulangan selama cntr kurang dari target, ketika sudah ditemukan cntr=target, maka ditampilkan bahwa data telah ditemukan pada indexarray[cntr], misal data yang dicari adalah 431, maka "Target found in array index 2"

The sequential search does have a pitfall. It is very slow and its performance rating is low. If a person had an array of one million elements, that would mean there could be up to one million comparisons, and that takes time! The sequential search method would be advisable to use only if the array you were searching was unsorted and small.

Terdapat 2 bersi algoritma pencarian beruntun, yaitu:

1. Pembandingan Elemen Dilakukan di Awal Pengulangan

2. Aksi Pembandingan dilakukan di dalam badan pengulangan (dengan

fungsi). Secara umum metode pencarian beruntun berjalan lambat. Waktu pencarian sebanding dengan jumlah elemen larik. Misalkan larik berukuran n elemen, maka pada kasus di mana x tidak terdapat di dalam larik atau x ditemukan pada elemen yang terakhir. Kita harus melakukan perbandingan dengan seluruh elemen larik, yang berarti jumlah perbandingan yang terjadi sebanyak n kali.

Metode Pencarian Beruntun Pada Larik Terurut

Larik yang elemennya sudah terurut dapat meningkatkan kinerja algoritma pencarian beruntun. Jika pada larik tidak terurut jumlah perbandingan elemen larik maksimum n kali, maka pada larik terurut (dengan asumsi distribusi elemen- elemen larik adalah seragam) hanya dibutuhkan rata-rata n/2 kali perbandingan. Hal ini karena pada larik yang terurut kita dapat segera menyimpulkan bahwa x tidak terdapat di dalam larik bila ditemukan, elemen larik yang lebih besar dari x.

Secara singkat, kita akan melakukan proses yang serupa dengan pencarian berurutan. Kita mulai dengan pembandingan dengan elemen yang pertama. Jika kita menganggap larik terurut naik (ascending), maka pencarian akan diteruskan sepanjang data yang dicari masih lebih kecil dari nilai elemen pada larik. Jika elemen larik sudah lebih besar, maka pencarian dihentikan karena pasti data yang dicari tidak akan pernah ditemukan pada larik.

Penelitian para ahli menunjukkan bahwa metode ini berjalan dengan sangat efektif dan efisien dibandingkan pencarian berurutan yang tidak terurut, jikaq data yang dicari berada (relatif) pada bagian awal larik. Tetapi, karena kondisi berhenti yang kita tentukan, metode ini kurang lebih berkinerja sama dengan pencarian berurutan jika data yang dicari terletak di bagian akhir larik.


Pengurutan

Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending) atau menurun (descending). Bila N buah objek atau data disimpan di dalam larik L, maka pengurutan menaik berarti menyusun elemen larik sedemikian sehingga:

L[1]≤≤≤ …≤ L[2] L[3 L[N]

Sedangkan pengurutan menurun berarti menyusun elemen larik sedemikian

sehingga:

L[1]≥≥≥ …≥ L[2] L[3 L[N]

Data yang diurut dapat berupa data bertipe dasar atau tipe terstruktur (record). Jika data bertipe terstruktur, maka harus dispesifikasikan berdasarkan field apa data tersebut diurutkan. Field yang dijadikan dasar pengurutan dikenal sebagai field kunci.

Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam- macam metode pengurutan. Metode tersebut diantaranya adalah: 1) Metode Pengurutan Gelembung (Bubble Sort), 2) Metode Pengurutan Pilih (Selection

Sort), 3) Metode Pengurutan Sisip (Insertion Sort), 4) Metode Pengurutan Shell

(Shell Sort), 5) Heap Sort, 6) Quick Sort, 7) Merge Sort, 8) Radix Sort dan 9)

Tree Sort. Pada modul ini, tidak semua metode pengurutan akan dibahas.

Tidak ada metode yang terbaik untuk pengurutan. Kebanyakan metode pengurutan sederhana hanya bagus untuk volume data yang kecil tetapi lambat untuk ukuran data yang besar. Metode pengurutan yang lebih cepat pun (seperti

quick sort dan merge sort) memang bagus untuk mengurutkan data yang banyak, tetapi tidak bagus untuk ukuran data yang sedikit karena memerlukan beban tambahan (overhead) yang boros waktu dan memori.

Metode pengurutan dapat diklasifikasikan sebagai berikut:

a.Metode pengurutan internal, yaitu metode pengurutan untuk data yang disimpan di dalam memori computer. Umumnya struktur internal yang dipakai untuk pengurutan internal adalah larik, sehingga pengurutan internal disebut juga pengurutan larik.

b.Metode pengurutan eksternal, yaitu metode pengurutan untuk data yang disimpan di dalam disk storage, disebut juga pengurutan arsip (file), karena struktur eksternal yang dipakai adalah arsip.

ASTABRATA

0 komentar

Asta Brata merupakan 8 sifat inti seorang pemimpin dalam tradisi Jawa. Sikap yang harus dimiliki oleh penguasa jika ingin rakyat yang dipimpinnya menjadi tentram dan sejahtera. Asta Brata yang dalam terjemahan bebas; delapan ajaran utama tentang kepemimpinan, merupakan petunjuk Sri Rama kepada adiknya yang akan dinobatkan sebagai raja Ayodya. Secara simbol, Asta Brata merupakan sifat-sifat mulia yang di ambil dari alam semesta dan patut untuk dijadikan pedoman bagi seluruh pemimpin negeri ini.

Asta Brata merupakan kebijaksanaan turun-temurun yang diselipkan dalam artefak-artefak Jawa, salah satunya melalui kesenian Wayang atau Ketoprak. Banyak makna yang mengacu pada jalan pencerahan yang akan menuntun siapapun, khususnya para pemimpin jika berhasil memahami esensi falsafah Asta Brata ini. Kebijaksanaan dan keselamatan merupakan inti pemahaman yang akan didapatkan seorang pemimpin jika mempelajari dan mempraktekkannya.

Delapan sifat pemimpin menurut falsafah Asta Brata antara lain:

1. Laku Hambeging indra

Seorang yang dipercaya menjadi pemimpin, hendaknya mengusahakan kemakmuran bagi rakyatnya dan dalam segala tindakannya dapat membawa kesejukan dan kewibawaan yang seperti bintang. Maknanya, seorang pemimpin haruslah kuat, tidak mudah goyah, berusaha menggunakan kemampuan untuk kebaikan rakyat, tidak mengumbar hawa nafsu, kuat hati dan tidak suka berpura-pura. Seorang pemimpin haruslah adil seperti air, yang jika di seduh di gelas akan rata mengikuti wadahnya. Keadilan yang ditegakkan bisa memberi kecerahan ibarat air yang membersihkan kotoran. Air juga tidak pernah emban oyot emban cindhe “pilih kasih” karena air akan selalu turun ke bawah, tidak naik ke atas.

2. Laku Hambeging Yama

Pemimpin hendaknya meneladani sikap dan sifat Dewa Yama, dimana Dewa Yama selalu menegakkan keadilan menurut hukum atau peraturan yang berlaku demi mengayomi rakyatnya. Harus menindak tegas abdinya, jika mengetahui abdinya itu memakan uang rakyat dan mengkhianati negaranya. Dewa Yama memiliki sifat seperti mendung (awan), mengumpulkan segala yang tidak berguna menjadi lebih berguna. Adil tidak pilih kasih. Bisa memberikan ganjaran yang berupa hujan dan keteduhan. Jika ada yang salah maka akan dihukum dengan petir dan halilintar.

3. Laku Hambeging Surya

Seorang pemimpin yang baik haruslah memiliki sifat dan sikap seperti matahari (surya) yang mampu memberi semangat dan kekuatan yang penuh dinamika serta menjadi sumber energi bagi bumi pertiwi. Sifat matahari berarti sabar dalam bekerja, tajam, terarah dan tanpa pamrih. Semua yang dijemur pasti kena sinarnya, tapi tidak dengan serta merta langsung dikeringkan. Jalannya terarah dan luwes. Tujuannya agar setiap manusia sabar dan tidak sulit dalam mengupayakan rejeki. Menjadi matahari juga berarti menjadi inspirasi pada bawahannya, ibarat matahari yang selalu menyinari semesta.

4. Laku Hambeging Candra

Pemimpin hendaknya memiliki sifat dan sikap yang mampu memberikan penerangan bagi rakyatnya yang berada dalam kebodohan dengan wajah yang penuh kesejukan seperti rembulan (candra), penuh simpati, sehingga rakyat menjadi tentram dan hidup dengan nyaman. Rembulan juga bersifat halus budi, terang perangai, menebarkan keindahan kepada seisi alam. Seorang pemimpin harus berlaku demikian, menjadi penerang bagi rakyatnya.

5. Laku Hambeging Maruta

Maruta adalah angin. Pemimpin harus menjadi seperti angin. Senantiasa memberikan kesegaran dan selalu turun ke bawah melihat rakyatnya. Angin tidak berhenti memeriksa dan meneliti, selalu melihat perilaku manusia, bisa menjelma besar atau kecil, berguna jika digunakan. Jalannya tidak kelihatan, nafsunya tidak ditonjolkan. Jika ditolak ia tidak marah dan jika ditarik ia tidak dibenci. Seorang pemimpin harus berjiwa teliti di mana saja berada. Baik buruk rakyat harus diketahui oleh mata kepala sendiri, tanpa menggantungkan laporan bawahannya. Biasanya, bawahan bagitu pelit dan selektif dalam memberikan laporan kepada pemimpin, dan terkadang hanya kondisi baik-baiknya saja yang dilaporkan.

6. Laku Hambeging Bumi

Pemimpin hendaknya memiliki sifat-sifat utama dari bumi, yaitu teguh, menjadi landasan pijak dan memberi kehidupan (kesejahteraan) untuk rakyatnya. Bumi selalu dicangkul dan digali, namun bumi tetap ikhlas dan rela. Begitu pula dengan seorang pemimpin yang rela berkorban kepentingan pribadinya untuk kepentingan rakyat. Seorang pemimpin haruslah memiliki sikap welas asih seperti sifat-sifat bumi. Falsafah bumi yang lain adalah air tuba dibalas dengan air susu. Keburukan selalu dibalas dengan kebaikan dan keluhuran.

7. Laku Hambeging Baruna

Baruna berarti samudra yang luas. Sebuah samudra memiliki wawasan yang luas, mampu mengatasi setiap gejolak dengan baik, penuh kearifan dan kebijaksanaan. Samudera merupakan wadah air yang memiliki sifat pemaaf, bukan pendendam. Air selalu diciduk dan diambil tapi pulih tanpa ada bekasnya. Seorang pemimpin harus mempunyai sifat pemaaf, sebagaimana sifat air dalam sebuah samudra yang siap menampung apa saja yang hanyut dari daratan. Samudra mencerminkan jiwa yang mendukung pluralisme dalam hidup bermasyarakat yang berkarakter majemuk.

8. Laku hambeging Agni

Pemimpin hendaknya memiliki sifat mulia dari api (agni), yang selalu mendorong rakyatnya memiliki sikap nasionalisme. Seperti api, berarti pemimpin juga harus memiliki prinsip menindak yang bersalah tanpa pilih kasih. Api bisa membakar apa saja, menghanguskan semak-semak, menerangkan yang gelap. Bisa bersabar namun juga bisa sangat marah membela rakyatnya jika dizolimi dan tetap memiliki pertimbangan berdasarkan akal sehat dan bisa dipertanggungjawabkan.

Jika kita melihat para pemimpin Indonesia saat ini, sudahkah sesuai dengan falsafah Asta Brata di atas? Jika belum, hendaknya beliau para para pemimpin negeri ini segera berubah agar segala konflik dan permasalahan negeri ini segera bisa diselesaikan. Karena bagaimanapun juga saat ini rakyat sudah terlalu banyak menderita dan butuh perubahan.


GAMBAR STRUKTUR MANAGEMENT POLITEKNIK TELKOM



Mouse I/O device

0 komentar

Mouse pertama kali ditemukan oleh Douglas Engelbart dari Stanford Research Institute pada tahun 1963. Saat itu bentuk mouse masi gede dan mengunakan dua buah roda yang tegak lurus untuk mendektesi gerakan dari Sumbu X dan Y. Tentu saja bukan manusia jika hanya cuman puas dengan bentuk seperti itu.. Selalu saja melakukan inovasi dan inovasi yang baru.. (Ga kenal kata puas deh...)


MOUSE BOLA
Mouse BolaPerkembangan selanjutnya dilakukan oleh Bill English di Xerox PARC pada awal tahun 1970. Ia menggunakan bola yang dapat berputar kesegala arah, kemudian putaran bola tersebut dideteksi oleh roda-roda sensor didalam mouse tersebut. Pengembangan tipe ini kemudian melahirkan mouse tipe Trackball, yaitu jenis mouse terbalik dimana pengguna menggerakkan bola dengan jari, yang populer antara tahun 1980 sampai 1990. Xerox PARC juga mempopulerkan penggunaan keyboard QWERTY dengan dua tangan dan menggunakan mouse pada saat dibutuhkan saja.
Mouse saat ini mengikuti desain École polytechnique fédérale de Lausanne (EPFL) yang diinspirasikan oleh Professor Jean-Daniel Nicoud.

MOUSE OPTIKAL
Mouse OpticalSelain mouse bola, saat ini banyak digunakan mouse optikal. Mouse optikal lebih unggul dari mouse bola karena lebih akurat dan perawatannya lebih mudah dibandingkan mouse bola. Mouse optikal tidak perlu dibersihkan, berbeda dengan mouse bola yang harus sering dibersihkan karena banyak debu yang menempel pada bolanya.

Mouse optikal pertama dibuat oleh Steve Kirsch dari Mouse Systems Corporation.Mouse jenis ini menggunakan LED (light emitting diode) dan photo dioda untuk mendeteksi gerakan mouse. Mouse optikal pertama hanya dapat digunakan pada alas (mousepad) khusus yang berwarna metalik bergaris-garis biru--abu-abu.

Mouse optikal saat ini dapat digunakan hampir di semua permukaan padat dan rata, kecuali permukaan yang memantulkan cahaya. Mouse optikal saat ini bekerja dengan menggunakan sensor optik yang menggunakan LED sebagai sumber penerangan untuk mengambil beribu-ribu frame gambar selama mouse bergerak. Perubahan dari frame-frame gambar tersebut diterjemahkan oleh chip khusus menjadi posisi X dan Y yang kemudian dikirim ke komputer.

MOUSE LASER
Mouse LaserMouse laser pertama kali diperkenalkan oleh Logitech, perusahaan mouse terkemuka yang bekerja sama dengan Agilent Technologies pada tahun 2004, dengan nama Logitech MX 1000. Logitech mengklaim bahwa mouse laser memilki tingkat akurasi 20 kali lebih besar dari mouse optikal. Dasar kerja mouse optikal dan mouse laser hampir sama, perbedaannya hanya penggunaan laser kecil sebagai pengganti LED digunakan oleh mouse optikal. Saat ini mouse laser belum banyak digunakan, mungkin karena harganya yang masih mahal.

Jumlah TombolDari semua perkembangan mouse, yang tidak banyak berubah adalah jumlah tombolnya. Semuamouse memiliki tombol antara satu sampai tiga buah. Mouse pertama memiliki satu tombol.Kebanyakan mouse saat ini, yang didesain untuk Microsoft Windows, memiliki dua tombol.Beberapa mouse modern juga memiliki sebuah Wheel untuk mempermudah scrolling. Sementara itu,Apple memperkenalkan mouse satu tombol, yang tidak berubah hingga kini.

Mouse modern juga sudah banyak yang tanpa kabel, yaitu menggunakan teknologi wireless
seperti Infra Red, gelombang radio ataupun Bluetooth. Mouse wireless yang populer saat ini menggunakan gelombang radio ataupun Bluetooth. Sedangkan mouse yang menggunakan Infra Red kurang begitu populer karena jarak jangkauannya yang terbatas, selain itu juga kurang praktis karena antara mouse dan penerimanya tidak boleh terhalang.

Aneka mouse 

Mouse Sidewinder: khusus untuk pecinta game

sidewinder.jpg
Sidewinder mouse keluaran dari Microsoft ini memang dikhususkan bagi anda yang maniak dengan permaianan game di komputer.
Beberapa keunggulan yang dimilikinya:
Mempunyai tingkat akurasi sampai dengan 2000 dpi (mouse yang biasa kita gunakan adalah 800 dpi).
Mempunyai sisi yang berguna untuk menyesuaikan berat mouse yang sesuai dengan kenyamanan kita (dengan menaruh beberapa pemberat sampai dengan 30g).






AirMouse: mouse yang langsung dipakaikan ke tangan anda



Inovasi sebuah mouse komputer terus bekembang untuk membuat pengguna semakin lebih nyaman dan cepat dalam penggunaan mouse di komputer.
AirMouse adalah sebuah mouse dengan sistim seperti sebuah sarung tangan atau dengan kata lain mouse ini dipakaikan ke tangan anda langsung.
AirMouse menggunakan sistim nirkabel dimana baterai isi ulang yang ada dapat bertahan selama 1 minggu dengan sekali isi ulang.
Cara penggunaannya juga mudah, anggap saja anda menggunakan mouse tapi tidak ada mouse di bawah tangan anda. :D
AirMouse juga menggunakan sistim laser sama seperti mouse lainnya dan optical diletakkan di bawah telapak tangan.
AirMouse menjanjikan kecepatan dan akurasi dibandingkan mouse biasa.
AirMouse rencananya akan mulai dijual dalam 6-12 bulan ke depan dengan harga US$ 129 (sekitar Rp. 1,25 juta). 

My first algorithm

0 komentar

Ni hari pertama saya kuliah...trus dapet jadwal plajaran algoritma.
bayanganku belum tahu seperti apa ntar...ternyata baru pengenalan, eh disuruh buat blog...untung aq dah punya blog..hehe.
tinggal posting aja...

tapi aku berharap ntar bisa lebih tahu tentang algoritma yang katanya sulit...ah jalanin aja
there is nothing impossible

Second day of NSO 2010 poltek

0 komentar

Scedule of NSO was so fun. . .in fact,all new students of poltek were enjoyed all activities. . .we have think before that activities will making so borred,but it was so fun guys. .haha

the game devided into 4 post. That was so fun to do. .

And for the seniors . .gud luck and good job!

NSO oh NSO dum dum dum dum......cik

0 komentar

NSO 2010 was started. It was New Student Orientation in Politeknik Telkom Bandung and we were Batch 15 group...that was the firs time from NSO schedule. hmmm..we hope that would be so fun after....but...oh my god...opening ceremony?that was so hot guys..and the seniors?for today, they not like evil yet...but we didn't know with tomorrow.LOL

we just make a wish, NSO will be our way for new student Politeknik Telkom to know more about culture, study system, organizations, ETC. we're believe NSO will make us better for ourselves, our family, our faculty, our nation, and our world...we are small but we can!!!! ^_^ giving and caring the world..success for all guys.