Jumat, 24 Desember 2010

Algoritma Pencarian

Pencarian sekuensial
Pencarian linear adalah sebuah algoritma pencarian,yang juga dikenal sebagai pencarian sekuensial, yang cocok untuk mencari sebuah nilai tertentu pada sebuah himpunan data.
Algoritma ini beroperasi dengan memeriksa setiap elemen dari sebuah list sampai sebuah kecocokan ditemukan. Proses membandingkan setiap elemen array satu persatu dengan nilai yang dicari secara beruntun mulai dari elemen pertama sampai elemen yang dicari ditemukan, atau sampai seluruh elemen sudah diperiksa. Kasus terbaik adalah ketika nilai yang dicari adalah elemen pertama dari list, kasus ini hanya memerlukan 1 pembandingan. Kasus terburuk adalah ketika nilai yang dicari tidak ada dalam list, yang memerlukan n pembadingan. Kelebihannya Algoritma ini termasuk algoritma yang sederhana dan cepat apabila hanya dalam mencari sebuah nilai dari sekumpulan data yang kecil, karena tidak memerlukan proses persiapan data seperti pengurutan, tapi memiliki kelemahan yaitu sangat lambat saat harus mencari sebuah nilai yang terletak di bagian akhir dan dari sekumpulan data yang banyak.
Diibaratkan sebagai bagian dari ruangan, Pengerjaannya apabila kita mencari sebuah nilai dalam sekumpulan data kita harus memeriksa satu persatu ruangan yang ada untuk menemukan datanya, apabila pada ruangan pertama sudah ditemukan maka pencarian pun selesai kecuali apabila data yang dicari terdapat pada ruangan terakhir maka kita harus memeriksa satu persatu bagian ruangan sampai data yang dicari ditemukan, oleh sebab itu memerlukan waktu yang lama terhadap data yang banyak.
Contoh algoritma pencarian sekuensial :

KAMUS DATA
   K : integer
BEGIN
   K <- 0
   WHILE ((K<N) AND (L[K] !=X))
      K<- K+1
   ENDWHILE
   IF (L[K]=X)&&(K<N))
      Idx <- k+1
   ELSE
     Idx
   ENDIF
END
 Pencarian Biner                                                                                
Pencarian biner adalah pencarian yang lebih efisien yang dapat digunakan untuk mencari sebuah list berurut. Jika diperlukan beberapa kali pencarian, disarankan untuk menggunakan Struktur data yang lebih efisien. Satu pendekatan adalah dengan mengurutkan terlebih dahulu kemudian gunakan pencarian biner untuk setiap pencarian
Pencarian biner adalah proses mencari data dengan membagi data atas dua bagian secara terus menerus sampai elemen yang dicari sudah ditemukan, atau indeks kiri lebih besar dari indeks kanan.
Algoritma ini lebih efisien daripada algorima sekuensial, tetapi harus mengikuti syaratnya dengan mengurutkan terlebih dulu setiap data pencarian baik manaik maupun menurun. Dengan data yang sudah terurut, algoritma dapat menentukan apakah nilai data yang dicari berada sebelum atau sesudah elemen yang sedang dibandingkan. Dengan begitu algoritma dapat lebih menghemat waktu pencarian.
Prosedur dimulai dengan inisialisasi pencacah dan menyimpan jumlah elemen larik dalam variable lain. Variablel ketemu akan diberi nilai false, ini menjelaskan bahwa data yang dicari belum ditemukan. Perulangan pun akan diawali dengan membandingkan elemen tengah .
  •  Jika elemen larik yang dibandingkan bernilai sama dengan data yang dicari maka variabelnya akan bernilai TRUE dan datanya pun berhasil ditemukan.
  • Jika elemen larik bernilai lebih kecil dari data yang dicari, maka pencarian akan bergeser kekanan dengan cara mengubah nilai awal pencacah dengan indeks di sebelah kanan nilai tengah
  • Jika elemen larik bernilai lebih besar dari data yang dicari, maka pencarian akan bergeser ke kiri dengan mengubah nilai awal pencacah dengan indeks di sebelah kiri tengah.
Contoh algoritma pencarian biner dengan elemen larik terurut menaik :
KAMUS DATA
   i,j,k : integer
   ketemu : Boolean
BEGIN
   I <- 0
   J <- N
   Ketemu <- false
WHILE ((!ketemu) and (i<=j))
   K<- (i+j) div 2
IF (L[K] =X)
Ketemu = true
ELSE
   IF (L[K] < X)
   I<- k+1
ELSE
   J<- k-1
ENDIF
ENDIF
ENDWHILE
IF (ketemu)
   Idx <- k+1
ELSE
   Idx <-  -1
ENDIF
END
Contoh algoritma pencarian biner dengan elemen larik menurun :
KAMUS DATA
 
 i,j,k : integer
   ketemu : Boolean
BEGIN
   I <- 0
   J <- N
   Ketemu <- false
WHILE (( !ketemu) and (i <=j ))
   K<- ( i+j ) div 2
IF (L[K] =X)
Ketemu = true
ELSE
   IF (L[K] < X)
   I<- k-1
ELSE
   J<- k+1
ENDIF
ENDIF
ENDWHILE
IF (ketemu)
   Idx <- k+1
ELSE
   Idx <-  -1
ENDIF
END
pencarian pohon 
Algoritma ini mencari data dengan bantuan struktur pohon. Breadth-first search ( mencari level demi level), depth-first search ( mencari dengan meraih kedalaman pohon terlebih dahulu.
Sebuah pohon pencarian biner (PPB) adalah sebuah pohon biner yang memiliki sifat-sifat berikut:
§  Setiap node memiliki sebuah nilai.
§  Subpohon kiri dari sebuah node hanya memuat nilai-nilai yang lebih kecil atau sama dengan dengan nilai dari node.
§  Subpohon kanan dari sebuah node hanya memuat nilai-nilai yang lebih besar atau sama dengan dengan nilai dari node.
Pohon pencarian biner adalah sebuah struktur data dasar yang digunakan untuk membentuk struktur data yang lebih abstrak seperti set, multiset, dan array assosiatif.
Pencarian sebuah nilai tertentu pada pohon biner adalah sebuah proses yang dapat dilakukan secara rekursif karena nilai-nilai yang disimpan adalah terurut. Pencarian dimulai dengan memeriksa akar (root). Jika nilai yang dicari sama dengan akar, maka nilai ditemukan. Jika nilai yang dicari kurang dari akar, maka pencarian dilakukan terhadap subpohon kiri, sehingga kita secara rekursif mencari subpohon kiri dengan cara yang sama. Jika nilai yang dicari lebih besar dari akar, maka pencarian dilakukan terhadap subpohon kanan sehingga kita secara rekursif mencari subpohon kanan dengan cara yang sama. Jika kita mencapai sebuah ujung (leaf) dan belum menemukan yang dicari, maka nilai tersebut tidak ada dalam pohon. Sebuah pembandingan dapat dibuat dengan pencarian biner, yang beroperasi hampir mirip dengan pengaksesan acak pada sebuah array.
Penyisipan dimulai sebagaimana sebuah pencarian dilakukan. Jika akar tidak sama dengan nilai sisipan, kita mencari subpohon kiri atau kanan seperti di atas. Pada suatu saat kita akan mencapai sebuah node luar dan menambahkan nilai sisipan sebagai anak kiri atau anak kanan, bergantung pada nilai node. Dengan kata lain, kita memeriksa akar dan secara rekursif menyisipkan node yang baru ke subpohon kiri jika nilai yang baru lebih kecil atau sama dengan akar, atau menyisipkan ke subpohon kanan jika nilai yang baru lebih besar dari root.

Senin, 20 Desember 2010

array ((algoritma pemrograman))

tipe data bentukan array yaitu tipe data dalam format tabel yang bisa terdiri dari baris dan kolom .
=> array 1 dimensi yaitu array yang hanya terdiri dari 1 baris dan beberapa kolom
=> array 2 dimensi yaitu array yang terbentuk dari beberapa kolom dan baris dan memiliki sumbu X dan Y
=> array 3 dimensi yaitu array yang berbentuk kubus
        tipe data bentukan (record)

  • integer
  • real/float
  • char & string
  • boolean
  • array
contoh dalam bahasa C :
struct mahasiswa {
         int NIM ;
         char Nama[50] ;
         char Alamat[150];
 };
   Struct mahasiswa mhs[10];
         for(i=0; i<10; i++){
              scanf("%d", &mhs[i].nim);
              scanf("%s", &mhs[i].nama);
              scanf("%s", &mhs[i].alamat); }

Fungsi dan Prosedure
untuk kamus data :
Fungsi : sub program yang menerima inputan dan mengembalikan sebuah nilai function nama_fungsi (parameter input)
Prosedure : procedure nama_proc (parameter)
Parameter dalam procedure
  • Parameter input
  • Parameter output
  • Parameter input/output
procedure tambah (input : nil 1,nil 2 : integer) (output : hasil : integer)
begin procedure
         hasil = nil 1, nil 2
end procedure


Jumat, 03 Desember 2010

Nilai-Nilai Astabrata Himatek Politeknik Telkom

       Astabrata adalah dasar-dasar untuk menjadi seorang pemimpin yang harus di miliki oleh mahasiswa Himatek (Himpunan Mahasiswa Teknik Komputer).
   Astabrata tersusun 7 bagian, yaitu Spiritualitas, Integristas, Intelektualitas, Profesional Kerja, Solidaritas, Enterpreneurship, Ketekunan, dan Dedikasi. Sebagai mahasiswa Himatek harus memiliki semua poin astabrata untuk menjadi seorang pemimpin yang sukses. penjelasan dari nilai-nilai Astabrata:
  • Spiritualitas => Bagi mereka yang menerapkan pentingnya spiritualitas mereka akan bersikap baik ketika ditengah keramaian maupun disaat sendirian karena dimanapun dia berada akan merasa dilihat oleh Allah.Orang seperti ini mempunyai integritas, sesuai antara hati, kata dan perbuatannya, selaras antara apa yang ada dalam hatinya, ucapan dan perbuatannya. Orang-orang inilah yang memiliki potensi untuk meraih sukses di dunia sekaligus sukses menikmati kehidupan surgawi di akhirat nanti.
  • Integritas => Integritas adalah bertindak sesuai dengan ucapan dan dapat di percaya, walaupun dalam keadaan yang sulit untuk melakukan ini. Dengan kata lain, “satunya kata dengan perbuatan”. Mengkomunikasikan maksud, ide dan perasaan secara terbuka, jujur dan langsung sekalipun dalam negosiasi yang sulit dengan pihak lain.
  • Intelektualitas => kemampuan mengatasi masalah dengan hasil yang baik. Kecakapan untuk berpikir, mengamati atau mengerti. Dengan demikian kecakapan berbeda dari kemauan dan perasaan. intelligensi sebagai "keseluruhan kemampuan individu untuk berpikir dan bertindak secara terarah serta kemampuan mengolah dan menguasai lingkungan secara efektif.
  • Profesional kerja => Mampu menyadari hak dan kewajiban sesuai dengan porsinyaProfesionalisme mengandung pula pengertian menjalankan suatu profesi untuk keuntungan atau sebagai sumber penghidupan.
  • Solidaritas => Secara etimologi arti solidaritas adalah kesetiakawanan atau kekompakkan, berarti peduli akan sesama dan tidak mementingkan ego sendiri. Dengan begitu kita juga dapat saling membantu sesama dan saling menghargai satu sama lain.
  • Enterpreneurship => Jiwa kewirausahaan yang dibangun untuk menjembatani antara ilmu dengan kemampuan pasar. Enterpreneurship adalah seorang yang memiliki dorongan untuk menciptakan sesuatu yang lain dengan menggunakan waktu dan kegiatan, disertai modal dan resiko, serta menerima balas jasa dan kepuasan serta kebebasan pribadi atas usahanya tersebut.
  • Ketekunan => Ketekunan adalah kemampuan untuk bertahan di tengah tekanan dan kesulitan. Kita harus tetap mengambil langkah selanjutnya, Jangan hanya berhenti di langkah pertama. Memang semakin jauh kita berjalan, semakin banyak rintangan yang menghadang. Arti lain ketekunan berarti serius dan sungguh-sungguh dalam melakukan suatu hal yang dikerjakan.
  • Dedikasi => Kewajiban yang mengharuskan untuk tidak menguntungkan diri pribadi, baik secara langsung maupun tidak langsung, dalam bentuk materi atau lainnya.
    Dedikasi adalah kunci menuju kesuksesan, dedikasi melibatkan kesabaran(patience), keuletan(persistence), dan kerja keras(hard-work). Sejarah mencatat, orang-orang yang berdedikasi pada suatu hal merupakan orang-orang yang berhasil menorehkan tinta emas dalam sejarah.Tidak ada yang tidak bisa diraih di dunia ini, namun sebanyak apa pencapaian kita akan suatu hal tergantung pada seberapa besar usaha kita untuk meraihnya. Untuk mendapatkan sesuatu kita harus berani mengorbankan sesuatu pula. Hidup ini memang penuh dengan pilihan, Kita tinggal memilih “luas tapi dangkal atau sempit tapi dalam”. Namun tetap saja ada anomali di dunia ini, dimana bisa saja ditemukan orang-orang dengan kemampuan yang banyak dan mendalami semua kemampuannya itu.
    STRUKTUR MANAJEMEN POLITEKNIK TELKOM



i'm waiting for who like this,, i hope so n i will always wish ^_^