Jalani Dan Nikmati Hidup Dengan Senyum Dan Penuh Tanggung Jawab Dan Tetap Mencari Celah Untuk Memperbaiki Kualitas Hidup Yang Lebih Baik Dari Hari Ini Dan Buatlah Hidup Yang Cuma Sekali Ini Bermakna Buatmu Dan Buat Orang Sekitarmu

Thursday, November 8, 2012

Flowchart

Flowchart adalah penyajian yang sistematis tentang proses dan logika dari kegiatan penanganan informasi atau penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. System flowchart adalah urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data.
Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program

PEDOMAN-PEDOMAN DALAM MEMBUAT FLOWCHART
Jika seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti :

  1.  Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
  2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti       oleh  pembacanya.
  3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
  4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan Melakukan penggandaan diri.
  5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
  6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
  7. Gunakan simbol-simbol flowchart yang standar di bawah ini
    Simbol Flow chart

Wednesday, October 10, 2012

Menghilangkan blacklist pada Windows 7

Bagi Anda pengguna Microsoft Windows XP pasti sudah mengenal dengan Windows Genuine Advantage (WGA) yang otomatis terdownload jika mengaktifkan Windows Update.
Untuk menghilangkan WGA relatif mudah karena jika Anda cari melalui situs pencarian seperti Google maka akan cukup banyak situs web yang memberikan petunjuk
untuk menghilangkan WGA tersebut.

Bagaimana dengan Windows 7? Walaupun sama mudahnya tetapi bagi Anda yang baru pertama kali menggunakan Windows 7 mungkin cukup terkejut karena penampilan
dari "polisi" ini berbeda dan sedikit "menipu" dari Windows XP sehingga mungkin saja Anda "kecolongan" mendapati "polisi" ini sudah terinstall dengan
suksesnya di komputer Anda.

Micosoft tidak lagi menggunakan WGA pada Windows 7 tetapi menggantinya dengan Windows Activation Technologies (WAT). WAT termasuk update jenis "Important"
sehingga jika Anda set Windows Update menjadi "Install updates automatically (recommended)" maka "polisi" ini akan otomatis terinstall pada komputer Anda.
Apalagi nama dari update ini tidak mengandung "Windows Genuine Advantage" maupun "Windows Activation Technologies" melainkan
"Update for Windows 7 for x86-based Systems (KB971033)" sehingga bagi Anda yang tidak hati-hati membaca detail keterangan update ini bisa saja melewatkan
checkboxnya tetap tercentang.
Jika WAT sudah terinstall maka akan muncul kotak peringatan pada komputer Anda yang berjudul "This copy of Windows is not genuine".
Wallpaper desktop Anda akan menghilang digantikan dengan layar hitam yang di pojok kanan bawah bertuliskan:
Windows 7
Build 7600
This copy of Windows is not genuine

Untuk menghilangkan dan menyingkirkan (unistall) WTA ini yang harus Anda lakukan adalah:
1. Buka Control Panel kemudian pilih System and Security.
2. Pada Windows Update pilih”View Installed Updates" yang berada di pojok kiri .
3. Cari "Update for Windows 7 for x86-based Systems (KB971033)". Klik kanan dan pilih Uninstall.
4. Setelah selesai uninstall silahkan restart komputer Anda.

Setelah Anda login maka desktop masih tetap menampilkan layar hitam dan tulisan "This copy of Windows is not genuine" masih ada di pojok kanan bawah.
Untuk menghilangkannya yang harus Anda lakukan adalah:
1. Buka windows explorer dan browse ke C:\Windows\System32. C: adalah drive dimana system Windows 7 Anda berada.
2. Cari file cmd atau cmd.exe dengan tipe Application. Klik kanan kemudian pilih "Run as administrator".
3. Pada window cmd yang telah terbuka ketik perintah berikut: slmgr.vbs -rearm
4. Silahkan restart komputer Anda.

Setelah Anda login seharusnya tulisan "This copy of Windows is not genuine" sudah menghilang dari desktop Anda.
Namun karena Anda telah uninstall "Update for Windows 7 for x86-based Systems (KB971033)"
maka Windows Update akan otomatis mendownload kembali update ini ke komputer Anda.
Sebaiknya Anda ubah settingan Windows Update menjadi "Check for updates but let me choose whether to download and install them".
Dan jika Windows Update menampilkan "Update for Windows 7 for x86-based Systems (KB971033)" yang Anda harus lakukan adalah klik KANAN dan pilih "Hide update"
untuk memastikan update WAT ini tidak pernah terinstall lagi.

Friday, October 5, 2012

Pengertian Algoritma

Beginilah hidupnya anak informatika…. Setiap hari musti ada yang namanya algoritma. Algoritma itu sendiri apa sih? Algorima itu merupakan deskripsi langkah-langkah pelaksanaan dari suatu proses. Setiap langkah dalam algoritma itu dinyatakan dalam sebuah pernyataan atau istilah lainnya adalah instruksi. Instruksi itu sendiri berisi sebuah aksi yang akan dilakukan.  Bila sebuah pernyataan dieksekusi maka akan dikerjakan sebuah aksi yang bersesuaian dengan instruksi tersebut.
Tentang dasar algoritma sendiri sebenarnya ada 3 macam bentuk struktur dasar dari algoritma. Apa sajakah itu??? Inilah dia bentuk bentuknya:
Pertama adalah runtutan , sering kita sebut dengan sequence. Sebuah runtutan itu terdiri dari satu atau lebih pernyataan dan setiap pernyataan itu ditulis dalam satu bari atau dipisahkan dengan tanda semicolon atau sering disebut titik koma ( ; ). Tiap pernyataan dikerjakan secara berurutan mulai dari awal sampai akhir sesuai dengan urutannya di dalam teks algoritma. Sebuah instruksi akan dilaksanakan setelah instuksi sebelumnya selesai dilaksanakan. Bila urutannya diubah, ada kemungkinan hasilnya pun juga akan berubah
Saya misalkan saya menulis sebuah urutan demikian
Algoritma urutan mau minum:
  • Ambil air
  • Tuangkan ke gelas
  • Minum air yang ada di dalam gelas
Atau demikian yang lebih singkat
Algoritma urutan mau minum:
  • Ambil sebotol air
  • Teguk air yang ada dalam botol
Dua algoritma di atas pada dasarnya bertujuan sama yaitu untuk urutan mau minum, tetapi caranya berbeda, namun coba anda bedakan dengan algoritma dibawah ini
Algorima urutan mau minum:
  • Minum air
  • Tuangkan ke gelas
  • Ambil air
Tidak  akan mungkin kalau algoritma di atas akan menghasilkan suatu hasil yang sama dengan yang sebelumnya. Itu karena urutannya tidak benar.
Saya punya contoh lain…..
Coba berfikir!!!
Bagaimana algoritma untuk menukarkan isi dari dua buah ember  berisi air yang misalnya masing-masing ember saya beri variabel A dan B (isi ember A menjadi isi ember B dan sebaliknya)?masing-masing ember berisi air penuh.
Tidak mungkin kalau kita akan langsung menuangkan ember A ke B atau sebaliknya. Karena embernya kan penuh. Misalnya kita tuang langsung ember A ke ember B pasti airnya akan tumpah.
Jadi hal yang harus kita lakukan adalah tambahkan sebuah variabel lagi yang kosong, misalnya ember C yang kosong. Hal yang kita lakukan adalah sebagai berikut
Status awal :
Proses Pertukaran :

Masukkan isi ember A kedalam ember C

Masukkan isi ember B kedalam ember A

Masukkan isi ember C kedalam  ember B
Status akhir yang dihasilkan:

Yang ke dua adalah pemilihan,  Ada kalanya suatu perintah itu di lakukan apabila pada kondisi tertentu. Misalnya saat kita melanggar peraturan pemerintah, kita akan dipenjara. Langkah tersebut dapat kita tuliskan sebagai berikut :
Jika kita melanggar peraturan pemerintah, maka kita akan dipenjara
Pernyataan diatas dapat kita tulis dalam pernyataan pemilihan (selection-statement), atau disebut juga pernyataan kondisional, sebagai berikut:
If kodisi then Aksi
Kalau kita definisikan dalam bahasa indonesia if artinya adalah jika dan then artinya adalah maka. Kondisi tersebut dapat bernilai benar ataupun salah. Seperti yang kita lihat pada contoh kalimat di atas, misalkan jika kita benar melanggar peraturan pemerintah , maka aksi yang dilakukan adalah kita akan dipenjara, namun jika kita tidak melanggar peraturan pemerintah, maka kita tidak akan dikenai aksi apapun.
Namun, adakalanya ketika kita ingin membuat pernyataan kondisional yang pasti dikenai suatu  aksi baik kondisi bernilai benar maupun salah kita dapat mendeklarasikannya sebagai berikut :
If kondisi then aksi1 Else aksi2
Misalkan saja untuk kondisi seperti di bawah ini :
Jika tinggi > 165 maka tinggi selain itu pendek
Jadi ketika tinggi kita lebih dari 165 maka kita tergolong tinggi dan selain itu ( ≤ 165) kita tergolong pendek.
Dalam algoritma dapat kita tulis
if tinggi > 165 then panjang else pendek
Adakalanya juga ketika sebuah pernyataan kondisional bersarang. Kita sering menyebutnya nested if atau if bersarang.
Contohnya seperti di bawah ini:
if nilai>80 then output(‘A’) else if nilai>60 then
output(‘B’)
else if nilai>50 then
output(‘C’)
else if nilai>30 then
output(‘D’)
else output(‘E’)
{endif}
Algoritma yang dicek berurutan mulai dari if yang pertama sampai if yang terakhir secara berurutan
Jadi ketika inputan nilai adalah 40 maka akan dicek dari atas, apakah 40 itu lebih dari 80?Karena tidak, maka lanjut ke proses berikutnya. Apakah 40 lebih dari 60?Karena 40 tidak lebih dari 60 maka lanjut ke if berikutnya. Apakah 40 lebih dari 50? Karena tidak maka lanjut ke if berikutnya lagi. Di cek lagi apakah 40 lebih dari 30?Karena perbandingan tersebut bernilai benar maka akan menghasilkan outputan D . Sedangkan kondisi berikutnya tidak akan ikut dieksekusi karena kondisi sudah terpenuhi.
Kemudian,
Yang ketiga adalah perulangan,
Pernahkah anda dihukum menulis sesuatu misalnya “aku berjanji aku akan jadi anak baik” sebanyak 500 kali? Apakah anda melakukan hal tersebut? Apakah anda menulisnya seperti dibawah ini?
1.aku berjanji aku akan jadi anak baik
2.aku berjanji aku akan jadi anak baik
3.aku berjanji aku akan jadi anak baik
Sampai yang ke500.
Sebenarnya itu bagus, tapi kurang efektif. Tangan anda pasti akan serasa putus jika melakukan hal tersebut terus-menerus.
Sebenarnya ada cara lain yang lebih efektif, yaitu dengan memakai algoritma. Seperti apakah itu?Perhatikan Algoritma dibawah ini:
Repeat 500 timesOutput(‘aku berjanji aku akan menjadi anak baik’)
Singkatkan!!!!!!
Bagaimana?Cukup dengan menuliskan algoritma di atas anda jadi orang yang efektif. Tak perlu capek-capek menulisnya sebanyak 500 kali.
Itulah hebatnya komputer. Komputer itu tidak akan lelah dan bodsan ketika mengerjakan sesuatu yang sama secara berulang-ulang, berbeda dengan manusia, manusia akan cepa t lelah dan bosan ketika melakukan sesuatu secara berulang-ulang.
Perulangan itu digunakan ketika ingin melakukan proses yang sama dan berulang-ulang.
Berikut ini merupakan beberapa struktur Algoritma dalam pengulangan:
Repeat N times Aksi
Yang artinya aksi diulang dan dikerjakan sebanyak N kali
Kemudian struktur lainya adalah:
Pencacah travesal [1..N] Aksi
Kalau di pascal seperti “for….. to …..do…….”
Maksudnya adalah untuk pencacah dari satu sampai N kerjakan aksinya.
(pencacah harus bersifat suksesif, maksudnya adalah pencacah harus punya successor ataupun predesessor). Pencacahnya misalnya sesuatu yang bertipe char ataupun integer.
Struktur berikutnya adalah:
while kondisi do aksi
Maksudnya selama kondisi terpenuhi (bernilai benar) maka aksi akan dilakukan sampai kondisi tidak terpenuhi
Kemudian ada algoritma  yang berbentuk seperti ini :
Repeat Aksi Until kondisi
Maksudnya adalah lakukan aksi hingga kondisi terpenuhi ( kondisi bernilai true).

Demikianlah pengertian algoritma yang saya ketahui.Jika ad pendapat lain monggo....saran dan kritik selalu saya nantikan.

sorting pada desain dan analisa algoritma



Algoritma Sorting

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Sedangkan sorting adalah sebuah proses merangkai benda dalam urutan tertentu dan/atau dalam himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum yang berbeda:
  1. pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang teratur.
  2. kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat yang serupa.
algoritma sorting terdiri dari beberapa algoritma seperti Bubble sort, Quick sort, Selection Sort, Insertion Sort, dan Merge Sort yang dimana setiap jenis sorting ini memiliki perbedaan satu sama lainnya. berikut ini merupakan pembahasan umum mengenai jenis-jenis atau algoritma sorting yang telah dijelaskan diatas :

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 yang telah di-sorting dan bagian yang belum di-sorting.

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 lebih berarti: bagi dan atasi). Hal ini dikarenakan algoritma ini melakukan pembagian struktur data sebelum kemudian dioperasi satu per satu. Intinya, algoritma ini menggunakan dua ide utama sebagai berikut,
  1. Sebuah list yang kecil membutuhkan langkah yang lebih sedikit untuk pengurutan daripada sebuah list yang besar.
  2. Untuk membentuk sebuah list terurut dari duabuah list terurut membutuhkan langkah yangl ebih sedikit daripada membentuk sebuah list terurut dari dua buah list tak terurut. Contoh:hanya diperlukan satu kali traversal untuk masing-masing list jika keduanya sudahterurut.

Algoritma Merge Sort
Algoritma Merge Sort sederhananya, dapat ditulis berikut:
  1. Bagi list yang tak terurut menjadi dua sama panjang 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 elemen yang harus diurutkan, kembalikan struktur data itu apa adanya.
  2. Ambil sebuah elemen yang akan digunakansebagai pivot point (poin poros).  (Biasanya elemen yang paling kiri.)
  3. Bagi struktur data menjadi dua bagian – satu dengan elemen-elemen yang lebih besar daripada pivot point, dan yang lainnya dengan elemen-elemen yang lebih kecil dari pada pivot point.
  4. Ulangi algoritma secara rekursif terhadap kedua paruh struktur data.
KESIMPULAN
Algoritma yang mudah dalam hal implementasi adalah Bubble Sort, Selection Sort, dan Insertion Sort. Ketiganya memiliki kompleksitas O(n2). Di antara algoritma ini, yang paling effisien adalah Insertion Sort.  Algoritma yang lebih mangkus adalah MergeSort dan Quick Sort dengan kompleksitasnya adalah O(n log n). Adapun yang paling mangkus dari lima algoritma ini adalah Quick Sort.