Featured Post

:●๋• Tessa Aulia •●๋:

~ sedikit catatan hidupku ~

Home Archive for Desember 2010

Sorting/pengurutan adalah teknik atau cara untuk mengurutkan suatu deretan data.

Bubble Sort

Pengertian Bubble Sort
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
Kelebihan Bubble Sort
  • Metode Buble Sort merupakan metode yang paling simpel
  • Metode Buble Sort mudah dipahami algoritmanya
Kelemahan Bubble Sort    
Meskipun simpel metode Bubble sort  merupakan metode pengurutanyang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak.
Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.

Lihat sytax bubble sort berikut ini:

#include <iostream.h>
#include <conio.h>

int data[10],data2[10];
int n;

void tukar(int a, int b)
{
 int t;
 t = data[b];
 data[b] = data[a];
 data[a] = t;
}

void bubble_sort()
{
 for(int i=1;i<=n;i++)
 {
  for(int j=n; j>=i; j--)
  {
   if(data[j] < data[j-1]) tukar(j,j-1);
  }
 }
}
void main()
{
 cout<<"===PROGRAM BUBBLE SORT==="<<endl;


Selection Sort
Pengertian dari selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan.Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar. Dan begitu seterusnya.

Berikut adalah syntax dari selection sort dalam C++:

#include <iostream.h>
#include <conio.h>

int data[10],data2[10];
int n;

void tukar(int a, int b)
{
 int t;
 t = data[b];
 data[b] = data[a];
 data[a] = t;
}
void selection_sort()
{
 int pos,i,j;
 for(i=1;i<=n-1;i++)
 {
  pos = i;
  for(j = i+1;j<=n;j++)
  {
   if(data[j] < data[pos]) pos = j;
  }
  if(pos != i) tukar(pos,i);
 }
}

void main()
{
 cout<<"===PROGRAM SELECTION SORT==="<<endl;
Pencarian (Searching)
Proses pencarian (searching) adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar atau bertipe bentukan).

Pencarian terbagi Dua
1. Pencarian Internal
adalah pencarian terhadap sekumpulan
data yang disimpan di dalam memori utama
(primary memory);
2. Pencarian Eksternal
adalah pencarian terhadap sekumpulan
data yang disimpan di dalam memori
sekunder (secondary memory), seperti tape
atau disk.

Pencarian Sekuensial (Sequential Searching)
Pencarian sekuensial sering disebut pencarian linear merupakan metode pencarian
yang paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut : data
yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data
tersebut ditemukan atau tidak ditemukan.
Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai
dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang
dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling
buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1 i ← 0
2 ketemu ← false
3 Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
4 Jika (Data[i] = x) maka ketemu ← true, jika tidak i ← i + 1
5 Jika (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak
ditemukan

Pencarian beruntun terbadi dua:
1. Pencarian beruntun pada larik tidak terurut
2. Pencarian beruntun pada larik terurut.

Pencarian beruntun pada larik
tidak terurut
Pencarian dilakukan dengan memeriksa setiap elemen larik mulai dari
elemen pertama sampai elemen yang dicari ditemukan atau sampai
seluruh elemen sudah diperiksa.
Contoh:
13
16
14
21
76
21
Misal nilai yang dicari adalah X = 21, maka elemen yang
diperiksa : 13, 16, 14, 21 (ditemukan!)
Indeks larik yang dikembalikan: IX = 4
Misal nilai yang dicari adalah X = 15, maka elemen yang
diperiksa : 13, 16, 14, 21, 76, 21 (tidak ditemukan!)
Indeks larik yang dikembalikan: IX = 0.

Pencarian Beruntun pada Larik
yang Terurut
• Jika larik sudah terurut (misal terurut
menaik, yaitu untuk setiap I=1..N, Nilai[I-
1]<Nilai[I] atau terurut mengecil, yaitu
untuk setiap I=1..N, Nilai[I-1]>Nilai[I]),
maka proses pencarian lebih singkat
dibandingkan pencarian larik yang tidak
terurut.


Pencarian Biner (Binary Search)
Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam
keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner
tidak dapat dilakukan. Dalam kehidupan sehari-hari, sebenarnya kita juga sering
menggunakan pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus
Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil
posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus
(posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data
tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama
dengan posisi tengah –1. Jika lebih besar, porses dilakukan kembali tetapi posisi awal
dianggap sama dengan posisi tengah + 1. Demikian seterusnya sampai data tengah
sama dengan yang dicari.
Untuk lebih jelasnya perhatikan contoh berikut. Misalnya ingin mencari data 17
pada sekumpulan data berikut :
 
3
9
11
12
15
17
20
23
31
35
                   
Mula-mula dicari data tengah, dengan rumus (0 + 9) / 2 = 4. Berarti data tengah
adalah data ke-4, yaitu 15. Data yang dicari, yaitu 17, dibandingkan dengan data tengah
82
ini. Karena 17 > 15, berarti proses dilanjutkan tetapi kali ini posisi awal dianggap sama
dengan posisi tengah + 1 atau 5.
 
3
9
11
12
15
17
20
23
31
35
                                                                       
Data tengah yang baru didapat dengan rumus (5 + 9) / 2 = 7. Berarti data tengah
yang baru adalah data ke-7, yaitu 23. Data yang dicari yaitu 17 dibandingkan dengan
data tenah ini. Karena 17 < 23, berarti proses dilanjukkan tetapi kali ini posisi akhir
dianggap sama dengan posisi tengah – 1 atau 6.
 
3
9
11
12
15
17
20
23
31
35
                                                                         
Data tengah yang baru didapat dengan rumus (5 + 6) / 2 = 5. Berarti data tengah
yang baru adalah data ke-5, yaitu 17. data yang dicari dibandingkan dengan data tengah
ini dan ternyata sama. Jadi data ditemukan pada indeks ke-5.
Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar
daripada posisi akhir. Jika posisi sudah lebih besar daripada posisi akhir berarti data
tidak ditemukan.


Algoritma Pencarian String

Algoritma pencarian string atau sering disebut juga pencocokan string adalah algoritma untuk melakukan pencarian semua kemunculan string pendek pattern[0..n − 1] yang disebut pattern di string yang lebih panjang teks[0..m − 1] yang disebut teks.
Pencocokkan string merupakan permasalahan paling sederhana dari semua permasalahan string lainnya, dan dianggap sebagai bagian dari pemrosesan data, pengkompresian data, analisis leksikal, dan temu balik informasi. Teknik untuk menyelesaikan permasalahan pencocokkan string biasanya akan menghasilkan implikasi langsung ke aplikasi string lainnya.

Contoh algoritma pencocokkan string

Algoritma-algoritma pencocokkan string dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya.
Tiga kategori itu adalah :
  • Dari arah yang paling alami, dari kiri ke kanan, yang merupakan arah untuk membaca, algoritma yang termasuk kategori ini adalah:
    1. Algoritma Brute Force
    2. Algoritma dari Morris dan Pratt, yang kemudian dikembangkan oleh Knuth, Morris, dan Pratt
  • Dari kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara praktikal, contohnya adalah:
    1. Algoritma dari Boyer dan Moore, yang kemudian banyak dikembangkan, menjadi Algoritma turbo Boyer-Moore, Algoritma tuned Boyer-Moore, dan Algoritma Zhu-Takaoka;
  • Dan kategori terakhir, dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis, algoritma yang termasuk kategori ini adalah:
    1. Algoritma Colussi
    2. Algoritma Crochemore-Perrin

Algoritma brute force dalam pencarian string

Algoritma brute force merupakan algoritma pencocokan string yang ditulis tanpa memikirkan peningkatan performa. Algoritma ini sangat jarang dipakai dalam praktek, namun berguna dalam studi pembanding dan studi-studi lainnya.

Cara kerja

Secara sistematis, langkah-langkah yang dilakukan algoritma brute force pada saat mencocokkan string adalah:
  1. Algoritma brute force mulai mencocokkan pattern pada awal teks.
  2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi:
    1. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch).
    2. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini.
  3. Algoritma kemudian terus menggeser pattern sebesar satu ke kanan, dan mengulangi langkah ke-2 sampai pattern berada di ujung teks
Berikut adalah Algoritma brute force yang sedang bekerja mencari string:

Algoritma Brute Force

Dengan sumsi bahwa teks berada di dalam array T[1..n] dan pattern berada di dalam array P[1..m], maka algoritma brute force pencocokan string adalah sebagai berikut:
1.   Mula-mula pattern P dicocokkan pada awal teks T.
2.   Dengan bergerak dari kiri ke kanan, bandingkan setiap setiap karakter di dalam pattern P dengan karakter yang bersesuaian di dalam teks T sampai:
a.   semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau
b.   dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil)
3.   Bila pattern P belum ditemukan kecocokannya dan teks T belum habis, geser pattern P satu karakter ke kanan dan ulangi langkah 2.

Kompleksitas algoritma brute-force:
•         Kompleksitas kasus terbaik adalah O(n).
•         Kasus terbaik terjadi jika yaitu bila karakter pertama pattern P tidak pernah sama dengan karakter teks T yang dicocokkan .
•         Pada kasus ini, jumlah perbandingan yang dilakukan paling banyak n kali


ARRAY
Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu
identifier (pengenal).
Masing-masing elemen array diakses menggunakan indeks (subscript) dari nol sampai n-1 (n
menyatakan jumlah elemen array).
Pengolahan data array harus per elemen. Elemen array dapat diakses langsung (acak), maksudnya
untuk memanipulasi elemen keempat tidak harus melalui elemen kesatu, kedua dan ketiga.
Berdasarkan banyaknya indeks array dibagi menjadi satu dimensi dan multi dimensi (dua
dimensi, tiga dimensi).

1. Array Satu Dimensi
Bentuk umum larik satu dimensi dideklarasikan dengan:

tipe_data nama_larik[ukuran];
 
tipe_data menyatakan jenis elemen larik (int, float, char, unsigned, dan lain-lain), tidak
boleh jenis void.
nama_larik adalah nama larik, harus memenuhi ketentuan pengenal.
ukuran menyatakan jumlah maksimal elemen larik, normalnya lebih besar dari satu.
Contoh:
int nilai[4];
    [?]      [ ?]      [ ?]     [ ?]
nilai[0] nilai[1] nilai[2] nilai[3]
untuk memberi nilai ke elemen larik dengan cara:
1. memberikan nilai langsung (assignment)
nilai[2] ← 5 (nilai[2]=5;), artinya kita memberikan nilai 5 ke elemen larik yang berindeks
2;
2. memasukkan nilai melalui papan ketik (keyboard)
cin>> nilai[2]; atau scanf(“%d”, &nilai[2]);
untuk mengakses (membaca) elemen larik dengan cara akses berikut.
nama_larik[indeks];
contoh: nilai[2];
atau
cout<<nilai[2]; atau printf(“%d”,nilai[2]);
Elemen larik dapat juga langsung diberi nilai awal waktu larik dideklarasikan. Dalam hal ini
ukuran larik boleh dituliskan atau dikosongkan.

2. Array Dua Dimensi (Matriks)
Matriks adalah sekumpulan informasi yang setiap individu elemennya diacu dengan
menggunakan dua buah indeks (yang biasanya dikonotasikan dengan baris dan kolom).
Konsep umum larik berlaku juga pada Matriks, yaitu:
1. kumpulan elemen bertipe sama;
2. setiap elemen data dapat diakses secara acak, jika indeksnya (baris dan kolom) sudah
diketahui;
3. merupakan struktur data statis, artinya jumlah elemennya sudah ditentukan terlebih
dahulu di dalam kamus dan tidak bisa diubah selama pelaksanaan program.
Deklarasi Matriks

tipe_data nama_matriks[baris] [kolom];

tipe_data menyatakan jenis elemen matriks (int, float, char, unsigned, dan lain-lain),
tidak boleh jenis void.
nama_matriks adalah nama matriks, harus memenuhi ketentuan pengenal.
baris menyatakan jumlah maksimal elemen baris matriks,
kolom menyatakan jumlah maksimal elemen kolom matriks.
Struktur Pengulangan
Secara umum terdiri atas dua bagian :
• kondisi pengulangan, yaitu ekspresi
boolean yang harus dipenuhi untuk
melaksanakan pengulangan yang
dinyatakan secara eksplisit oleh
pemrogram atau implisit oleh
komputer.
• badan pengulangan, yaitu bagian
algoritma yang diulang.

Struktur pengulangan biasanya
(opsional) disertai bagian :
• inisialisasi, yaitu aksi yang dilakukan
sebelum pengulangan dilakukan
pertama kali.
• Terminasi, yaitu aksi yang dilakukan
setelah pengulangan selesai
dilaksanakan.

notasi struktur pengulangan :
• Struktur FOR
• Struktur WHILE

Struktur FOR
• Digunakan untuk
menghasilkan pengulangan
sejumlah kali yang
dispesifikasikan. Jumlah
pengulangan diketahui atau
dapat ditentukan sebelum
eksekusi.

Struktur WHILE
Notasi algoritmik :
while kondisi do
Aksi
Endwhile
Keterangan :
Aksi ( atau runtunan aksi) akan
dilaksanakan berulang kali selama kondisi
bernilai true, jika false maka badan
pengulangan tidak akan dilaksanakan yang
berarti pengulangan selesai.
Sebagai Mahasiswa Politeknik Telkom, kita harus memegang teguh nilai - nilai astabrata. Istilah “ASTHA BRATA” Berasal dari kata Asto atau Hasto yang artinya delapan, kemudian Baroto yang artinya laku atau perbuatan.
Jadi ASTABRATA adalah 8 perilaku kebaaikan. Dan nilai - nilai astabrata tersebut adalah:

1. Spiritualitas
adalah kepercayaan diri terhadap Tuhan agar Diri kita senantiasa berada di jalan yang benar sesuai dengan apa yang diperintahkan Tuhan. Dan ajaran yang baik itupun kita amalkan
dalam kehidupan sehari hari agar memiliki nilai lebih. Dengan nilai ini mahasiswa Tekhnik komputer Politeknik Telkom memiliki arahan dalam hidupnya agar tetap berbuat sesuai ajaran agama

2. Integritas
integritas' berarti 'keteguhan prinsip dan sikap yang membuat mahasiswa Tekhnik komputer Politeknik Telkom bisa memgang setiap prinsip yang dimiliki agar berkeprbadian teguh dalam kehidupanya

3. Intelektualitas
Setiap mahasiswa Tekhnik komputer Politeknik Telkom harus memiliki intelektualitas dan kecerdasan yang tinggi, agar ilmu yang dimilikinya bisa berguna di masyarakat.

4. Solidaritas
Dibutuhkan agar persaudaraan dan pertemanan selalu terjalin erat, saling menolong, dan meminimalisir perbedaan yang ada dalam diri setiap mahasiswa Politeknik telkom yang berbeda beda.

5. Entrepreneurship
Jiwa entrepeneurship harus dimiliki oleh setiap mahasiswa Politeknik Telkom. Entreupeneur ship sendiri adalah sikapa seseorang yang bisa memanfaatkan keadaan.
kita semua harus memiliki jiwa ini, agar setiap keadaan bisa kita kendalikan dan manfaatkan, bukan sebaliknya.

6. Professionalitas Kerja
Setiap pekerjaan pasti menuntut orang yang mengerjakannya harus profesional dan ahli di bidangnya, agar pekerjaan tersebut bisa menjadi hal yang terbaik. Jiwa profesionalitas pun harus ditanmkan sejak dini,
agar di masa depan, mahasiswa Politeknik Telkom memiliki Profesionalsitas kerja.


7. Dedikasi
Dedikasi yang dibutukan, agar setiap pekerjaan, dan tanggung jawab yang kita miliki dikerjakan dengan sepenuh hati dan penuh tanggung jawab juga selalu setia dalam mengerjakan hal tersebut.

8. Ketekunan
Segala sesuatu butuh kektekunan, agar semuanya sempurna dan tepat waktu, Oleh karena itu, didalam Astabrata diajarkan hal tersebut, supaya mahasiswa Politeknik Telkom memiliki ketekunan dalam dirinya








Struktur Jabatan Management Politeknik Telkom
  •  Senat
  • Direktur: Budi Sulistiyo
  • Bag. Pengembangan Lembaga
  • Urusan Pengembangan sistem Pendidikan: 1. Heriyono Lalu 2. Melia Puspita Dewi
  • Urusan Pengembangan Profesional
  • Bag. Penjamin Mutu
  • Analis Penjamin Mutu Internal : 1. Hanung NP 2.Sri Widianingsih
  • Analis Pengendalian dokumen
  • Wakil Direktur 1: Christanti Wibisono
  • Bag. Perpustakaan & PPM
  • Urusan Perpustakaan: 1 Pikir Wisnu P 2. Lina Wardani
  • Urusan Penelitian dan pengabdian Masyrakat 1. Henry R.A 2.Ra. Paramita 3. Inne Gartina
  • Jur. Tekhnologi Informasi: agus Pratondo
  • Program Studi. Manajemen Informatika: Anak Agung Gde Agung
  • Program Studi Komputerisasi Akutansi: Neisi Wisna
  • Program Studi Teknik Komputer: Nina Hendrarini
  • Urusan Labotoria Jurusan: 1. Ismail 2. Rixard G.D
  • Urusan ADM jurusan: 1. Heru Nugroho 2. Hesti Hasanah
  • Faculty: 1. Siska Komala Sari 2. Umar Ali Ahmad 3. Irna Yuniar  
  •              4. Magdalena Karismariyanti  5. Dahliar Ananda 6. sari Dewi Budiawarti 7. Tafta Zanin   
  •              8.Fitri Susanti 9. wardani Muhammad

  • Wakil Direktur 2 : Indra P sitijaning Budi
  • Bag. dukungan Manajemen: Novi Chandra B
  • Urusana Keuangan: 1 .Rashwinoe Boeing K 2. Widdy D. A 3.Muhammad M
  • Urusan Logistik: 1. Alex Winarno 2. Kastaman 3. Andri M.P 4. Reza Pramitha
  • Urusan SDM dan sekretariat: 1. Eka W.Y 2. Novi G.P 3. Trisye R. O 4. Affiful Azizah
  • Bag. Layanan Akademik & Sisfo
  • Urusana Layanan Akademik: 1. Guntur Prabawa 2. Euis S 3. Rinta N. H 4. Nurul S. I 
  •                                              5. Silvia Agustin
  • Urusan sistem Informasi: 1. Dedy R. W 2. Suryatinigsih 3.Tora Fahrudin 4. Feddy Dea

  • Wakil Direktur 3: Dede Rohidin






Langganan: Postingan ( Atom )

About This Blog

Blog ini isinya random abis. Jadi nikmati aja apa adanya semua postingan yang ada di sini ya ;) hehe

About Me

Unknown
Lihat profil lengkapku

Find Me

Facebook  Twitter  Google+ Instagram Path Yahoo

Blog Archive

  • ►  2015 (21)
    • ►  Oktober (2)
    • ►  Juli (4)
    • ►  Juni (6)
    • ►  Mei (4)
    • ►  April (3)
    • ►  Maret (2)
  • ►  2014 (3)
    • ►  Desember (3)
  • ►  2013 (13)
    • ►  Agustus (3)
    • ►  April (9)
    • ►  Februari (1)
  • ►  2012 (25)
    • ►  Desember (4)
    • ►  Oktober (1)
    • ►  Juli (1)
    • ►  Juni (7)
    • ►  Mei (1)
    • ►  April (7)
    • ►  Maret (3)
    • ►  Januari (1)
  • ►  2011 (24)
    • ►  November (22)
    • ►  Oktober (2)
  • ▼  2010 (14)
    • ▼  Desember (5)
      • Sorting....
      • Pencarian...
      • Algoritma dan Pemrograman => Array^^
      • ~~Pengulangan~~
      • Astabrata Dan Struktur Jabatan Management Politekn...
    • ►  Oktober (5)
    • ►  September (4)

Popular Posts

  • jatuh cinta sama sahabat?
  • DON'T TELL ME!!!!!!!!!!!
  • sahabat, inilah sekelumit permasalahan antara kita~~
  • International Mask & Puppets Festival 2015
  • Unforgettable Friendships: Camping

Labels

  • Camping
  • Festival
  • Kota Baru Parahyangan
  • MeetUp
  • Unforgettable Friendships

Instagram

Contact Us

Nama

Email *

Pesan *

Diberdayakan oleh Blogger.

About

Tessa Aulia

Create Your Badge
Copyright 2014 :●๋• Tessa Aulia •●๋:.
Blogger Templates Designed by OddThemes