Adobe Photoshop CS6

AYO DOWNLUT Adobe Photoshop CS6 Jon .

KASPERSKY KIS 2011

SOLUSI BUAT AMAN KOMPUTER DAN BROWSING DI INTENET.

Tube Mate

Download video Youtube menggunakan Android.

Antivirus terbaik 2013

10 Antivirus terbaik 2013 yang beredar di internet.

This is default featured post 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Selasa, 01 Maret 2016

Cara Install Ubuntu 15.10

Pada kesempatan kali ini saya akan menjelaskan bagaimana langkah langkah menginstall ubuntu . Iso ubuntu bisa didownload di disini

  1. Buatlah sebuah live cd/usb ubuntu lalu boot melalui device tersebut. 
  2. Setelah masuk kita akan memilih bahasa apa yang akan digunakan pada proses installasi ubuntu. 

Kamis, 04 Juni 2015

Searching

 SEQUENTIAL SEARCH
Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal)

Berikut adalah Contoh Sequential Search : 


Binary Search
Tujuan binary search adalah memperkecil 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.

Contoh Program Binary Search :

#include

using namespace std;
int main () {
int n, angka[12], kiri, kanan, tengah, temp, key;
bool ketemu = false;
cout<<"Masukan jumlah data : ";
cin>>n;
for(int i=0; i
{
cout<<"Angka ke - ["<
cin>>angka[i];
}
for (int i=0; i
{
for(int j=0; j< n-i-1; j++)
{
if(angka [j] > angka [j+1])
{
temp=angka[j];
angka[j]=angka[j+1];
angka[j+1]=temp;
}
}
}
cout<<"Data yang telah diurutkan adalah : ";
for(int i=0; i
{
cout<
}
cout<<"\n Masukan angka yang dicari : ";
cin>>key;
kiri=0;
kanan=n-1;
while(kiri<=kanan)
{
tengah=(kiri + kanan)/2;
if(key == angka[tengah])
{
ketemu=true;
break;
}
else if (key < angka [tengah])
{
kanan = tengah -1;
}
else
{
kiri = tengah +1;
}
}
if (ketemu == true)
cout<<"Angka ditemukan!";
else
cout<<"Angka tidak ditemukan";
return 0;
} 


Sumber : academia.edu & Modul STIMIK Surabaya

Insertion Sort dan Selection Sort

Selection Sort
Metode selection sort merupakan perbaikan dari metode bubble sort dengan  mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut:
1. Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
2. Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan data di posisi i jika k.
3. Ulangi langkah 1 dan 2 dengan j = j+i sampai dengan j = N-1, dan seterusnya sampai j = N - 1.

Berikut adalah contoh Selection Sort :

#include
#include
#include
#include
main()
{
int x[5];
int i;
int temp;
int minindex;
int j;

clrscr();
cout<<" >> Welcome To The Program Selection Sort << \n" <
cout<<"masukkan nilai x :\n";
for(i=0; i<5 font="" i="">
{
cout<<"x["<>x[i];
}
cout<<"\n data sebelum di sort :";
for(i=0; i<5 font="" i="">
{
cout<
}
for(i=0; i<5-1 font="" i="" iterasi="" perulangan="">
{
minindex=i;
for(j=i+1; j<5 data="" font="" j="" membandingkan="" perulangan="">
{
if(x[minindex]>x[j])
{
minindex=j;
}
}
temp=x[i];
x[i]=x[minindex];
x[minindex]=temp;
}
cout<<"\n\nData setelah di sort :";
for(i=0; i<5 font="" i="">
{
cout<
}
getch();
}


Insertion Sort
Metode pengurutan selection sort sering dipakai oleh orang saat bermain kartu bridge dalam mengurutkan kartunya, yaitu dengan cara menyisip kartu yang lebih kecil ke urutan sebelum posisi kartu yang dibandingkannya. Perhatikan tabel berikut.

Contoh Program Insertion Sort :

#include
#include
using namespace std ;
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 insertion_sort()
{
 int temp,i,j;
 for(i=1;i<=n;i++)
 {
  temp = data[i];
  j = i -1;
  while(data[j]>temp && j>=0)
  {
   data[j+1] = data[j];
   j--;
  }
 data[j+1] = temp;
 }
}
int main()
{
 cout<<"\t\t\t===PROGRAM INSERTION SORT===\n\n"<

 //Input Data
 cout<<"Masukkan Jumlah Data : ";
 cin>>n;
 cout<<"\n";
 for(int i=1;i<=n;i++)
 {
  cout<<"Masukkan data ke "<
  cin>>data[i];
  data2[i]=data[i];
 }

 insertion_sort();

 cout<<"\n\n";
 //tampilkan data
 cout<<"Data Setelah di Sort : ";
 for(int i=1; i<=n; i++)
 {
  cout<<" "<
 }
 cout<<"\n\nSorting Selesai";
 getch();
}


Queue

Queue adalah FIFO yang merupakan singkatan dari First In First Out, artinya adalah data yang pertama kali dimasukkan atau disimpan, maka data tersebut adalah yang pertama kali akan diakses atau dikeluarkan. Analoginya sama dengan antrian di sebuah loket pembelian tiket kereta, orang yang datang lebih dahulu, maka akan dilayani terlbih dahulu, dan akan selesai lebih dulu dari orang-orang yang datang setelahnya. 

Pada dasarnya, operasi-operasi dasar pada queue mirip dengan operasi-operasi dasar pada
stack. Perbedaannya hanya pada prosedur push dan pop saja. Pada queue, prosedur yang berfungsi untuk memasukkan data/ nilai ke dalam antrian adalah enqueue, sedangkan prosedur untuk mengeluarkan data/ nilai dari antrian adalah dequeue. 

a. Prosedur createEmpty Sama pada stack, prosedur ini berfungsi untuk mengosongkan queue dengan cara meletakkan HEAD dan TAIL pada indeks array ke-0. Berikut deklarasi prosedur createEmpty pada queue dalam Bahasa C:

void createEmpty() { antrian.HEAD = 0; antrian.TAIL = 0; }
b. Prosedur enqueue Prosedur ini digunakan untuk memasukkan sebuah data/ nilai ke dalam queue. Sebelum sebuah data/ nilai dimasukkan ke dalam queue, maka prosedur ini terlebih dahulu melakukan pengecekan terhadap posisi HEAD dan TAIL. Jika posisi HEAD dan TAIL masih berada pada indeks ke-0 (artinya queue masih kosong), maka prosedur ini akan menempatkan HEAD dan TAIL pada indeks ke-1 terlebih dahulu, baru setelah itu memasukkan data/ nilai ke dalam array data queue. Namun, jika posisi HEAD dan TAIL tidak berada pada posisi ke-0, maka posisi TAIL yang akan dinaikkan satu level. Jadi, pada proses enqueue, TAIL-lah yang berjalan seiring masuknya data baru ke dalam antrian, sedangkan HEAD akan tetap pada posisi ke-1. Berikut deklarasi prosedur enqueue dalam Bahasa C:
void enqueue(int x) 
{ 
if ((antrian.HEAD == 0) && (antrian.TAIL == 0)) 
{ 
antrian.HEAD = 1; antrian.TAIL = 1; } else { antrian.TAIL = antrian.TAIL + 1; } antrian.data[antrian.TAIL] = x; 
}

Prosedur dequeue Prosedur ini digunakan untuk mengeluarkan atau membuang sebuah data/ nilai yang paling awal masuk (yang berada pada posisi HEAD, yakni yang paling depan dari antrian) ke dalam queue. Pekerjaan yang dilakukan oleh prosedur ini adalah menaikkan nilai HEAD satu level. Jadi, setiap satu kali data dikeluarkan, maka posisi HEAD naik bertambah satu level. Misalkan HEAD berada pada indeks ke-1, maka ketika akan mengeluarkan/ menghapus data pada posisi paling depan (pada posisi HEAD), prosedur ini akan menaikkan posisi HEAD ke indeks array ke-2. Berikut deklarasi prosedur pop dalam Bahasa C:

void Dequeue(){ if (q.head > q.tail) { q.head = 0; q.tail = 0; } q.head = q.head + 1; 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
2 7
2 HEAD TAIL TAIL HEAD
2 TAIL HEAD
11 }

d. Fungsi IsEmpty Sama seperti fungsinya pada stack, fungsi ini berfungsi untuk melakukan pengecekan terhadap queue, apakah queue tersebut kosong atau tidak. Jika queue tersebut kosong (artinya, HEAD dan TAIL berada pada posisi 0, atau bisa juga ketika HEAD > TAIL), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika queue tersebut tidak kosong/ berisi (artinya, HEAD dan TAIL tidak berada pada posisi 0), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsEmpty dalam Bahasa C:

int IsEmpty()
{
if ((antrian.HEAD> antrian.TAIL) || (antrian.HEAD == 0) &&
(antrian.TAIL == 0))
return 1;
else
return 0;
}

e. Fungsi IsFull Fungsi ini berfungsi untuk melakukan pengecekan terhadap queue, apakah queue tersebut penuh atau tidak. Jika queue tersebut penuh (artinya, TAIL berada pada posisi MAX), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika queue tersebut tidak penuh (artinya, TAIL tidak berada pada posisi MAX), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsFull dalam Bahasa C:

int IsFull() { if (antrian.TAIL == max) return 1; else return 0; }
Contoh Queue

//program implementasi queue
#include
#define max 5
typedef struct
{
int HEAD, TAIL; //untuk mencacah indeks dari stack
int data[max+1];
}Queue;
Queue antrian;
void createEmpty();
int IsEmpty();
int IsFull();
void Enqueue(int x);
void Dequeue();
void main()
{
int lagi;
int input;
createEmpty();
//mengisi queue
lagi = 1;
while (lagi == 1)
{
if ((IsEmpty() == 1) || (IsFull() == 0))
{
system("cls");
printf("Antrian masih tersedia.\n");
printf("Masukkan nilai: ");
scanf("%d",&input);
Enqueue(input);
printf("Tambah data (1/0)?");
scanf("%d",&lagi);
}
else if (IsFull() == 1)
{
printf("Antrian sudah penuh.\n");
lagi = 0;
}
}
//menampilkan isi stack
while (IsEmpty() == 0)
{
printf("%d ",antrian.data[antrian.HEAD]);
Dequeue();
}
return 0;
}









Rabu, 03 Juni 2015

Stack

Stack (tumpukan) sebenarnya adalah sebuah cara dalam mengorganisasikan data-data yang dimiliki. Ibarat seseorang yang menyimpan buku-bukunya, ada yang disusun dengan cara ditumpuk, ada juga yang dijejerkan di dalam lemari. Kaidah utama dalam konsep stack adalah LIFO yang merupakan singkatan dari Last In First Out, artinya adalah data yang terakhir kali dimasukkan atau disimpan, maka data tersebut adalah yang pertama kali akan diakses atau dikeluarkan.

Operasi-operasi dasar dalam stack Sebuah stack setidaknya memiliki lima buah operasi-operasi dasar, yakni: 

a. Prosedur createEmpty Prosedur ini berfungsi untuk mengosongkan stack dengan cara meletakkan TOP ke posisi ke-0. Berikut adalah deklarasi prosedur createEmpty dalam Bahasa C:
void createEmpty() 
{ 
tumpukan.TOP = 0;

}

b. Prosedur push Prosedur ini berfungsi untuk memasukkan sebuah nilai/ data ke dalam stack. Sebelum sebuah nilai/ data dimasukkan ke dalam stack, prosedur ini terlebih dahulu akan menaikkan posisi TOP satu level ke atas. Misalkan kondisi stack masih kosong (TOP = 0), lalu prosedur push akan menaikkan posisi TOP satu level ke atas, yakni ke posisi 1 (TOP = 1), baru setelah itu data dimasukkan ke dalam array pada indeks ke-1 (yakni indeks dimana TOP berada). Berikut adalah deklarasi prosedur push dalam Bahasa C:

void push(int x) 
{ 
tumpukan.TOP = tumpukan.TOP + 1; 
tumpukan.data[tumpukan.TOP] = x; 
}

c. Prosedur pop Prosedur ini berfungsi untuk mengeluarkan/ menghapus nilai terakhir (yang berada pada posisi paling atas) dari stack, dengan cara menurunkan nilai TOP satu level ke bawah. Misalkan TOP berada pada indeks ke-5, maka ketika akan mengeluarkan/ menghapus data pada posisi paling atas (pada posisi TOP), prosedur ini akan menurunkan posisi TOP ke indeks array ke-4. Berikut deklarasi prosedur pop dalam Bahasa C:

void pop() 
{ 
tumpukan.TOP = tumpukan.TOP - 1; 
}
d. Fungsi IsEmpty Fungsi ini berfungsi untuk melakukan pengecekan terhadap stack, apakah stack tersebut kosong atau tidak. Jika stack tersebut kosong (artinya, TOP berada pada posisi 0), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika stack tersebut tidak kosong/ berisi (artinya, TOP tidak berada pada posisi 0), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsEmpty dalam Bahasa C:
int IsEmpty() 
{ 
if (tumpukan.TOP == 0)
return 1; 
else return 0; 
}
e. Fungsi IsFull Fungsi ini berfungsi untuk melakukan pengecekan terhadap stack, apakah stack tersebut penuh atau tidak. Jika stack tersebut penuh (artinya, TOP berada pada posisi MAX), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika stack tersebut tidak penuh (artinya, TOP tidak berada pada posisi MAX), maka fungsi akan mengembalikan nilai 0 (false). Berikut deklarasi fungsi IsFull dalam Bahasa C:

int IsFull() 
{
if (tumpukan.TOP == MAX)
return 1; 
else return 0; 
}

Contoh STACK :

//program implementasi stack
#include
#include
#define max 5
typedef struct {
int top; //untuk mencacah indeks dari stack
int data[max+1];
}stack;
stack tumpukan;
void createEmpty();
int IsEmpty();
int IsFull();
void push(int x);
void pop();
void main(){
int lagi;
int input;
int pilih;
createEmpty();
pilih = 0;
while (pilih != 5){
//Menu utama
system("cls");
puts("=====================================");
puts(" MENU UTAMA");
puts("=====================================");
puts("1. Cek kondisi Stack");
puts("2. Tambah data");
puts("3. Keluarkan isi stack");
puts("4. Kosongkan stack");
puts("5. Keluar");
printf("Pilihan: ");
scanf("%d",&pilih);
switch(pilih){
case 1: if (IsEmpty() == 1)
puts("Stack masih kosong");
else if ((IsEmpty() == 0) && (IsFull() == 0))
puts("Stack sudah terisi, tapi belum penuh");
else
puts("Stack sudah penuh");
getch();
break;
case 2: if (IsFull() == 1)
puts("Stack sudah penuh.");
else
{
printf("Masukkan data: ");
scanf("%d",&input);
push(input);
printf("%d",tumpukan.top);
printf("%d",IsFull());
printf("%d",IsEmpty());
}
break;
6
case 3: while (IsEmpty() == 0)
{
printf("%d \n",tumpukan.data[tumpukan.top]);
pop();
}
getch();
break;
case 4: createEmpty();
puts("Stack sudah kosong. Top = 0");
getch();
break;
case 5: puts(“Byeee………”);
getch();
break;
}
}
}
//DEKLARASI OPERASI-OPERASI DASAR STACK
void createEmpty(){
tumpukan.top = 0;
}
int IsEmpty(){
if (tumpukan.top == 0)
return 1;
else
return 0;
}
int IsFull(){
if (tumpukan.top == max)
return 1;
else
return 0;
}
void push(int x){
tumpukan.top = tumpukan.top + 1;
tumpukan.data[tumpukan.top] = x;
}
void pop(){
tumpukan.top = tumpukan.top - 1;
}











Share

Twitter Delicious Facebook Digg Stumbleupon Favorites