• Pada Algoritma pencarian banyak yang bisa kita temukan atau gunakan. Ada Merge Sort, Quick Sort, Bubble Sort, dan...
  • Pada dasarnya algoritma searching banyak kita jumpai. Apalagi hanya untuk mencari nilai minimum dan nilai maximum...
  • Kalian pasti sudah tahu apa itu Deret Fibonacci, ya benar. (Padahal gak jawab). Tetapi pada pembahasan kali ini kita akan membuar program...
  • Metoda Pencarian Biner ( Binary Search) hanya bisa diterapkan jika data array sudah terurut. Pengurutan Array bisa menggunakan jenis sorting ...
  • Salah satu contoh tipe algoritma brute force lainnya adalah linear search (pencarian berurutan), Dikatakan demikian karena algoritma ini menggunakan ...

Wednesday, October 17, 2012

Membuat Form Upload File Dengan PhP

syntax php upload file
Untuk membuat suatu form upload, pertama kita harus menyiapkan form untuk menginputkan file yang akan diupload. Setelah itu baru menentukan aksi uploadnya. Untuk syntax php form upload seperti ini :

<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
File : <input type="file" name="file" id="file" />
<br />
<table width="200" border="0">
  <tr>
    <td>Deskripsi</td>
    <td>
      <label>
        <textarea id="deskripsi" name="deskripsi" cols="30" ></textarea>
      </label>
    </td>
  </tr>
</table>
<br/>
<input type="submit" name="submit" value="Upload" />
</form>
</body>
</html>

Setelah itu aksi kemana file yang diupload akan ditaruh dimana. Pertama buat dulu folder untuk penyimpanannya. Lalu tinggal panggil nama folder tersebut pada syntax php upload file seperti berikut ini  :


<?php
$namefile = $_FILES['file']['name'];
$tmpfile = $_FILES['file']['tmp_name'];

$path = "./files/".$namefile;

if(move_uploaded_file($tmpfile,$path)):
echo 'Berhasil mengupload file : '.$namefile;
// &&
//header( 'Location: http://localhost/jajal/list.php' ) ;
else:
echo 'Gagal mengupload';
endif;
?>

Untuk melihat file - file yang sudah diupload bisa menggunakan syntax php upload file seperti berikut ini :


<?php
if($fp = @opendir('./files')){

while($file = readdir($fp)):
if($file != '.' && $file !='..')
echo'<img src="files/'.$file.'">';
endwhile;

closedir($fp);
}
?>

Semoga sedikit ilmu ini bisa bermanfaat buat kita semua :D


Readmore

Wednesday, September 26, 2012

Java Programming with BufferredReader Program Java Input Keyboard

Java Programming with BufferredReader Program Java Input Keyboard
Java Programming with BufferredReader Program Java Input Keyboard - Pada pembahasan kali ini sedikit berbeda. Biasanya membahas program C++. Sekarang kita akan membahas sedikit tentang program java

Program sederhanan yang akan kita buat adalah program yang menerima inputan dari keyboard. Untuk itu kita akan membutuhkan BufferredReader.

Supaya lebih jelas langsung saja ke TKP
package inputansederhana;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 *
 */
public class Main {

    
    public static void main(String[] args) throws IOException {
        BufferedReader masuk = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Nama Anda : ");
        String nama = masuk.readLine();
        System.out.print("Pekerjaan Anda : ");
        String job = masuk.readLine();
        System.out.println(nama+" adalah "+job);
    }

}

Java Programming with BufferredReader Program Java Input Keyboard - Begitulah sedikit ilmu yang bisa dibagi kali ini. Selamat mencoba dan kembangkan!
Readmore

Tuesday, September 25, 2012

Program C++ Penggunaan Getline() String

Program C++ Penggunaan Getline() String
Program C++ Penggunaan Getline() String - Pada pertemuan kali ini, ciah kaya kuliah aja. Hehehe.... Pada postingan kali ini kita akan membahas sedikit mengenai string. Terutama masalah inputan string yang menggunakan spasi. Karena dengan biasa seperti ini cin<< tidak bisa membaca spasi atau dengan kata lain akan berhenti membaca karakter setelah menemukan spasi.

String dapat berupa konstanta atau variabel. String sebagai variabel belum diperkenalkan tetapi konstanta string sejak awal sudah diperkenalkan, misalnya pada pernyataan :

cout<<”Belajar keras biar lulus ujian “<<endl;

Dalam C++ tipe string diartikan sebagai larik karakter, sehingga dideklarasikan sebagai :
char nama_variabel [jumlah_maksimal_karakter];

Contoh dekalrasinya adalah :
char kata[20];
Artinya :
Dideklarasikan variabel kata sebagai string yang terdiri dari 20 karakter termasuk karakter null (\0) yang menyatakan akhir dari string.

Program C++ Penggunaan Getline() String - Seperti yang sudah dijelaskan diatas. Dalam memasukkan tipe data string, operator << pada cin hanya bisa membaca masukkan hingga terdapat spasi, tab, atau enter.
Solusi untuk mengatasi masalah tersebut dengan menggunakan fungsi  getline() pada obyek cin dalam bentuk :

cin. getline (nama_variabel_string, jumlah_maksimal_karakter),

contohnya :
cin. getline(kata,20); tulis cin,getline(kata, sizeof(kata));

Untuk program uji coba supaya bisa lebih paham seperti dibawah ini :
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    char kalimat[20];
    char kalimatku[25];
    cout<<"\n\nContoh kedua\n";
    cout<<"Kalimat pertama : "<<endl;
    cin.getline(kalimat, sizeof(kalimat));
    cout<<"Kalimat kedua   : "<<endl;
    cin.getline(kalimatku, sizeof(kalimatku));
    cout<<"Kalimat pertama yang diinputkan : "<<kalimat<<endl;
    cout<<"Kalimat kedua yang diinputkan : "<<kalimatku<<endl<<endl;
 
    //Program by dyas90
    system("PAUSE");
    return EXIT_SUCCESS;
}

Demikian kuliah singkat kali ini, semoga bermanfaat untuk kita semua.
Salam SUPER!
Readmore

Tuesday, August 7, 2012

Evolusi Compiler C++ : Turbo C, Turbo C++, Borland C++, Borland C++ Builder

Borland C++ Builder
Evolusi Compiler C++ : Perbedaan Turbo C, Turbo C++, Borland C++, Borland C++ Builder - Pada awal saya mengenal bahasa pemrograman adalah Pascal. Tetapi saya merasa sangat susah untuk memahaminya. Maklum saja masih anak SMA. Setelah kuliah masuk jurusan Teknik Informatika akhirnya ketemu lagi dengan bahasa pemrograman yang lain. Yaitu bahasa pemrograman C++.

Pada awalnya saya dikenalkan dengan Borland C++. Aplikasi sangat mudah digunakan untuk para pemula seperti saya. Tetapi setelah menginjak semester 2 saya menemukan Borland C++ Builder. Jujur saja saya bingung bagaimana menggunakannya. Ternyata mereka mempunyai hubungan pertalian sedarah. Berikut ini adalah perbedaan dari Turbo C, Turbo C++, Borland C++, Borland C++ Builder.

Turbo C untuk membuat program berbahasa C sedangkan Turbo C++ untuk membuat program bahasa C++, Kedua-duanya buatan Borland.

Turbo C++ 1.0 dirilis Februari 1991 jalan di lingkungan DOS.

Turbo C++ 3.0 dirilis November 1991 jalan di lingkungan DOS yang kemudian diupdate untuk mendukung pembuatan program aplikasi untuk Ms-Windows (Turbo C++ 3.1).

Evolusi Compiler C++ : Perbedaan Turbo C, Turbo C++, Borland C++, Borland C++ Builder - Borland merilis juga Borland C++ untuk segment yang berbeda seiring dirilisnya Turbo C++ 1.0. Turbo C++ ditargetkan untuk para pemula dan hobbyist, sedangkan Borland C++ ditargetkan untuk para professional sehingga memiliki lebih banyak fitur, tool, dan kemudahan pembuatan program aplikasi. Dari sisi bahasa, Turbo C++ dengan Borland C++ masih sama.

Turbo C++ 4.0 dirilis November 1993 jalan dilingkungan Ms-Windows yang mendukung pembuatan dan pemakaian template lebih lanjut. Lalu dilanjutkan dengan Turbo C++ 4.5

Borland C++ dilanjutkan sampai Borland C++ 5.02 (1997) yang kemudian diganti dengan Borland C++ Builder yang dikembangkan sampai saat ini menjadi CodeGear C++ Builder 2009 (Dirilis Agustus 2008).

Sedangkan Turbo C++ "dihidupkan" lagi tahun 2007 yang dinamai CodeGear Turbo C++ Explorer (gratis) dan CodeGear Turbo C++ Professional (bayar) yang dibuat berbasiskan Borland C++ Builder 2006. CodeGear adalah anak perusahaan Borland.

Kemudian pada tahun 2008 CodeGear di akuisisi oleh Embarcadero dan terus mengembangkan C++ Builder. Versi yang dirilis C++ Builder 2009, 2010, XE, dan XE2 (2011).

Dengan demikian evolusi Turbo C++ adalah : Turbo C++ --> Borland C++ --> Borland C++ Builder --> CodeGear C++ Builder --> Embarcadero C++ Builder.

Bahasa C++ distandarisasi secara internasional oleh ISO/ANSI tahun 1998. Dengan demikian Turbo C++ 1.0 sampai Borland C++ 5.02 belum mengacu pada perintah-perintah ISO/ANSI C++.

Evolusi Compiler C++ : Perbedaan Turbo C, Turbo C++, Borland C++, Borland C++ Builder - Untuk membuat program C++ yang mengacu pada ISO/ANSI C++, dapat menggunakan MinGW C++ (ukuran file 6 Mb) atau Dev-C++ (ukuran file 6 MB) atau Turbo C++ Explorer (ukuran file 320Mb) atau Ms Visual C++ 2008/2010 Express Edition yang dapat di-download secara gratis dari internet.

Sekarang bagi kalian yang ingin belajar bahasa pemrograman C++ tidak usah bingung lagi ingin menggunakan compiler yang mana. Tinggal bagaimana kebutuhan kalian atas program yang ingin kalian bangun. Selamat berjuang!
Readmore

Friday, July 6, 2012

Program C++ Graph Coloring : Pewarnaan Graf

Program C++ Graph Coloring : Pewarnaan Graf - Pewarnaan graf adalah kasus khusus dari pelabelan graf , yaitu menggunakan warna untuk menandai pada batasan tertentu. Dalam bentuk yang paling sederhana, itu adalah cara untuk mewarnai simpul dari graf sehingga tidak ada dua simpul yang berdekatan mempunyai warna yang sama.

Tentunya tidak mudah untuk menggambarkan graf pada program console. Sehingga perlu teknik khusus. Kita misalkan 1 adalah tanda graf yang terhubung dan 0 adalah tanda graf tidak terhubung. Sebagai contoh, kita mempunyai 7 vertex dan terhubung seperti gambar dibawah ini :

Program C++ Graph Coloring : Pewarnaan Graf - Kemudian penulisan hubungan graf adalah sebagai berikut :
0 1 1 0 1 1 0
1 0 0 1 0 1 1
1 0 0 1 1 1 0
0 1 1 0 0 1 1
1 0 1 0 0 0 1
1 1 1 1 0 0 0
0 1 0 1 1 0 0

Implementasi program c++ pewarnaan graf atau Graph Coloring sebagai berikut :

#include <cstdlib>
#include <iostream>

using namespace std;

// inisialisai
const int MAX = 100;
int n;
int a[MAX][MAX];
int color[MAX];
int degree[MAX];
int NN[MAX];
int NNCount;
int unprocessed;

void Coloring();
void GetInput();
void Init();
int MaxDegreeVertex();
void scannedInit(int scanned[MAX]);
void UpdateNN(int ColorNumber);
int FindSuitableY(int ColorNumber, int& VerticesInCommon);
int MaxDegreeInNN();
void PrintOutput();


void Coloring()
{
    int x,y;
    int ColorNumber = 0;
    int VerticesInCommon = 0;
    while (unprocessed>0)
    {
        x = MaxDegreeVertex(); 
        ColorNumber ++;
        color[x] = ColorNumber;
        unprocessed --;
        UpdateNN(ColorNumber);
        while (NNCount>0)
        {
            y = FindSuitableY(ColorNumber, VerticesInCommon);
            if (VerticesInCommon == 0)
                y = MaxDegreeInNN();
            color[y] = ColorNumber;
            unprocessed --;
            UpdateNN(ColorNumber);
        }
    }
}

void GetInput()
{
    cout<<"Masukkan banyak data : ";
    cin >> n;
    cout<<"Masukkan hubungan graph : \n";
    for (int i=0; i < n; i++){
        for (int j=0; j < n; j++){
            cout<<"Simpul "<<i+1<<" - "<<j+1<<" : ";
            cin >> a[i][j]; 
            }
        }
}

void Init()
{
    for (int i=0; i < n; i++)
    {
        color[i] = 0;
        degree[i] = 0;
        for (int j = 0; j < n; j++)
            if (a[i][j] == 1)
                degree[i] ++;
    }
    NNCount = 0;
    unprocessed = n;
}

int MaxDegreeVertex()
{
    int max = -1;
    int max_i;
    for (int i =0; i < n; i++)
        if (color[i] == 0)
            if (degree[i]>max)
            {
                max = degree[i];
                max_i = i;
            }
    return max_i;
}

void scannedInit(int scanned[MAX])
{
    for (int i=0; i < n; i++)
        scanned[i] = 0;
}

void UpdateNN(int ColorNumber)
{
    NNCount = 0;
    for (int i=0; i < n; i++)
        if (color[i] == 0)
        {
            NN[NNCount] = i;
            NNCount ++; 
        }
    
    for (int i=0; i < n; i++)
        if (color[i] == ColorNumber)
            for (int j=0; j < NNCount; j++)
                while (a[i][NN[j]] == 1)
                {
                    NN[j] = NN[NNCount - 1];
                    NNCount --;
                }
}

int FindSuitableY(int ColorNumber, int& VerticesInCommon)
{
    int temp,tmp_y,y;
    int scanned[MAX];
    VerticesInCommon = 0;
    for (int i=0; i < NNCount; i++)
    {
        tmp_y = NN[i];
        temp = 0;
        scannedInit(scanned);
        for (int x=0; x < n; x++)
            if (color[x] == ColorNumber)
                for (int k=0; k < n; k++)
                    if (color[k] == 0 && scanned[k] == 0)
                        if (a[x][k] == 1 && a[tmp_y][k] == 1)
                        {
                            temp ++;
                            scanned[k] = 1;
                        }
        if (temp > VerticesInCommon)
        {
            VerticesInCommon = temp;
            y = tmp_y;
        }
    }
    return y;
}

int MaxDegreeInNN()
{
    int tmp_y;
    int temp, max = 0;
    for (int i=0; i < NNCount; i++)
    {
        temp = 0;
        for (int j=0; j < n; j++)
            if (color[j] == 0 && a[NN[i]][j] == 1)
                temp ++;
        if (temp>max)
        {
            max = temp;
            tmp_y = NN[i];
        }
    }
    if (max == 0)
        return NN[0];
    else
        return tmp_y;
}

void PrintOutput()
{
     cout<<"\n\n";
    for (int i=0; i < n; i++)
        cout << "Vertex " << i+1 
             << " warna " << color[i] << endl;
}



int main(int argc, char *argv[])
{
    
    system("color f2");
    system("title Program Graph Coloring - 1 Juni 2012 - dyasprogramming.blogspot.com");
    
    awal:
    GetInput();
    Init();
    Coloring();
    PrintOutput();
    
    cout<<"\nIngin mengulang ? (y/n) : ";
    char p;
    cin>>p;
    if(p=='y') {
               system("cls");
               goto awal;
               }
    else return EXIT_SUCCESS;
}

Readmore

Program C++ N Queen Secara Rekursif

Program C++ N Queen Secara Rekursif - Program n queen atau n ratu adalah masalah menempatkan n catur ratu pada papan catur n × n sehingga tidak ada dua ratu atau lebih menyerang satu sama lain atau saling memakan. Dengan demikian, solusi mensyaratkan bahwa tidak ada dua ratu atau lebih berbagi baris yang sama, kolom, atau diagonal.

Implementasi program n queen menggunakan bahasa c++ bisa menggunakan dua jenis perulangan. Yang pertama secara iteratif dan secara rekursif. Berikut ini adalah program c++ penempatan n ratu secara rekursif : (lihat juga program c++ nqueen secara iteratif)

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

void cetakSolusi(int x[],int n){
    int i,j;
    char c[100][100];
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            c[i][j]='X';
        }
    }
    for(i=1;i<=n;i++)
    {
        c[i][x[i]] ='Q';
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            cout<<"\t"<<c[i][j];
        }
    cout<<endl;
    }
    cout<<endl;
}

bool tempat (int x[], int k ){
int i;
bool stop, kedudukan;
kedudukan = true;
i = 1;
stop = false;
while((i<k) && (!stop)){
if((x[i]==x[k]) || (abs(x[i]-x[k])==abs(i-k))){
kedudukan = false;
stop = true;
}else{
i++;
}
}
return kedudukan;
}

void nRatuR(int n, int k, int x[]){
bool stop;
stop = false;
while(!stop){
x[k] +=1;
        while((x[k] <= n) && ( !tempat(x,k))){
            x[k] +=1;
        }
        
        if(x[k] <= n){
            if(k == n){
                cetakSolusi(x,n);
            }else{
                nRatuR(n,k+1,x);
            }
        }
        else{
            stop = true;
            x[k]=0;
        }
}
}

int main(int argc, char *argv[])
{
    system("color f2");
    system("title Program N_Ratu - 1 Juni 2012 - dyasprogramming.blogspot.com");
    
    awal:
    int n;
    int x [100];
    cout<<"Masukkan banyak ratu : ";
    cin>>n;
    cout<<"\n\nKemungkinan yang didapatkan :\n\n";
nRatuR(n,1,x);
    cout<<"\nIngin mengulang ? (y/n) : ";
    char p;
    cin>>p;
    if(p=='y') {
               system("cls");
               goto awal;
               }
    else return EXIT_SUCCESS;
}

Readmore

Program C++ N Queen Secara Iteratif

Program C++ N Queen Secara Iteratif - Program n queen atau n ratu adalah masalah menempatkan n catur ratu pada papan catur n × n sehingga tidak ada dua ratu atau lebih menyerang satu sama lain atau saling memakan. Dengan demikian, solusi mensyaratkan bahwa tidak ada dua ratu atau lebih berbagi baris yang sama, kolom, atau diagonal.

Implementasi program n queen menggunakan bahasa c++ bisa menggunakan dua jenis perulangan. Yang pertama secara iteratif dan secara rekursif. Berikut ini adalah program c++ penempatan n ratu secara iteratif : (lihat juga program c++ nqueen secara rekursif)

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

void cetakSolusi(int x[],int n){
    int i,j;
    char c[100][100];
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            c[i][j]='X';
        }
    }
    for(i=1;i<=n;i++)
    {
        c[i][x[i]] ='Q';
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            cout<<"\t"<<c[i][j];
        }
    cout<<endl;
    }
    cout<<endl;
}

bool tempat (int x[], int k ){
int i;
bool stop, kedudukan;
kedudukan = true;
i = 1;
stop = false;
while((i<k) && (!stop)){
if((x[i]==x[k]) || (abs(x[i]-x[k])==abs(i-k))){
kedudukan = false;
stop = true;
}else{
i++;
}
}
return kedudukan;
}

void nRatuI(int n){
int x[100],k;
k=1; 
    x[k] = 0;
     
    while(k > 0){
x[k] +=1;
        while((x[k] <= n) && ( !tempat(x,k))){        
            x[k] +=1;
        }
        
        if(x[k] <= n){
            if(k == n){
                cetakSolusi(x,n);
            }else{
                k++;
                x[k]=0;
            }
        }
        else{
            k--;
        }
         
    }
}

int main(int argc, char *argv[])
{
    system("color f2");
    system("title Program N_Ratu - 1 Juni 2012 - dyasprogramming.blogspot.com");
    
    awal:
    int n;
    cout<<"Masukkan banyak ratu : ";
    cin>>n;
    cout<<"\n\nKemungkinan yang didapatkan :\n\n";
nRatuI(n);
    cout<<"\nIngin mengulang ? (y/n) : ";
    char p;
    cin>>p;
    if(p=='y') {
               system("cls");
               goto awal;
               }
    else return EXIT_SUCCESS;
}

Readmore

Wednesday, May 30, 2012

Program C++ Merge Sort Devide and Conquer

Program C++ Merge Sort Devide and Conquer - Pada Algoritma pencarian banyak yang bisa kita temukan atau gunakan. Ada Merge Sort, Quick Sort, Bubble Sort, dan masih banyak lagi.

Pada kesempatan kali ini kita akan fokus membahas masalah Merge Sort. Tetapi disini kita akan menambahkan algoritma Devide and Conquer.

Algoritma Devide and Conquer secara singkat adalah algoritma pemecahan masalah menjadi lebih kecil. Shingga permasalahan akan lebih mudah dan cepat untuk diselesaikan.

Sekarang kita langsung menuju program untuk memecahkan masalah pencarian dengan Merge Sort secara Devide and Conquer.

Program C++ Merge Sort Devide and Conquer


#include <cstdlib>
#include <iostream>

using namespace std;

void merge(int A[], int kiri, int tengah,int kanan){
/*Menggabung tabel A[kiri..tengah] dan tabel A[tengah+1..kanan]
  menjadi tabel A[kiri..kanan] yang terurut menaik.
  Masukan: A[kiri..tengah] dan tabel A[tengah+1..kanan] yang sudah terurut menaik.
  Keluaran: A[kiri..kanan] yang terurut menaik.
*/
int B[100];
int i, kidal1, kidal2;
kidal1=kiri;// { A[kiri .. tengah] }
kidal2=tengah + 1;//   { A[tengah+1 .. kanan] }
i=kiri;
while ((kidal1 <= tengah) && (kidal2 <= kanan)){ 
       if (A[kidal1] <= A[kidal2]){ 
          B[i]=A[kidal1];
          kidal1=kidal1 + 1;
         } 
  else{
            B[i]=A[kidal2];
   kidal2=kidal2 + 1;
       }
  i=i + 1;
    } 
//{ kidal1 > tengah or kidal2 > kanan }
//{ salin sisa A bagian kiri ke B, jika ada }
while (kidal1 <= tengah){ 
       B[i]=A[kidal1];
  kidal1=kidal1 + 1;
  i=i + 1;
    }
   //{ kidal1 > tengah }
   //{ salin sisa A bagian kanan ke B, jika ada }
while (kidal2 <= kanan){
  B[i]=A[kidal2];
  kidal2=kidal2 + 1;
  i=i + 1;
//{ kidal2 > kanan }
   //{ salin kembali elemen-elemen tabel B ke A }
for (i=kiri;i<=kanan;i++){
  A[i]=B[i];
    }   
   //{ diperoleh tabel A yang terurut membesar }

}

void MergeSort(int A[], int i, int j){
/* Mengurutkan tabel A[i..j] dengan algoritma Merge Sort 
  Masukan: Tabel A dengan n elemen
  Keluaran: Tabel A yang terurut
*/
int k;
   if (i < j){// { Ukuran(A)> 1}
     k=(i+j)/2;
     MergeSort(A, i, k);
     MergeSort(A, k+1, j);
     merge(A, i, k, j);
   }
}

int main(int argc, char *argv[])
{
    system("color f2");
    system("title MergeSort - Selasa, 29 Mei 2012 - dyasprogramming.blogspot.com");
    
    int A[100],n,i,j;
    cout<<"Mauskkan banyak data : ";
    cin>>n;
    for(int a=1;a<=n;a++){
            cout<<"Data ke-"<<a<<" : "; //Masukan data sebanyak n elemen
            cin>>A[a];
            }
    i=1;
    j=n;
    
    MergeSort(A,i,j);
    
    for(int a=1;a<=n;a++){
            cout<<A[a]<<" ";
            }
    
   system("PAUSE");
    return EXIT_SUCCESS;
}

Readmore

Program C++ Minimal Maksimal Devide and Conquer

Program C++ Minimal Maksimal Devide and Conquer - Pada dasarnya algoritma searching banyak kita jumpai. Apalagi hanya untuk mencari nilai minimum dan nilai maximum.

Pada pembahasan kali ini kita menggunakan algoritma yang sedikit berbeda. Kita tambahkan algoritma Devide and Conquer.

Algoritma Devide and Conquer secara singkat adalah algoritma pemecahan masalah menjadi lebih kecil. Shingga permasalahan akan lebih mudah dan cepat untuk diselesaikan.

Tidak berlama - lama lagi karena yang lama tidak selamanya enak. Langsung saja pada praktek programnya.

Program C++ Minimal Maksimal Devide and Conquer

#include <cstdlib>
#include <iostream>

using namespace std;

void minmax2(int A[], int i, int j, int &min, int &max ){
     /*
     Mencari nilai maksimum dan minimum di dalam tabel A yang 
     berukuran n elemen secara Divide and Conquer.
     Masukan: tabel A yang sudah terdefinisi elemen-elemennya
     Keluaran: nilai maksimum dan nilai minimum tabel
     */
     int min1, min2, max1, max2,k;
     if(i==j){
              min=A[i];
              max=A[i];
              }
     else if(i==j-1){
          if(A[i]<A[j]){
                        max=A[j];
                        min=A[i];
                        }
          else{
               max=A[i];
               min=A[j];
               }
          }
     else{
          k=(i+j)/2;
          minmax2(A,i,k,min1,max1);
          minmax2(A,(k+1),j,min2,max2);
          if(min1<min2)min=min1;
          else min=min2;
          if(max1<max2)max=max2;
          else max=max1;
          }
     }

int main(int argc, char *argv[])
{
    system("color f2");
    system("title MinMax - Selasa, 29 Mei 2012 - dyasprogramming.blogspot.com");
    
    int A[100],n,i,j,min,max;
    cout<<"Mauskkan banyak data : ";
    cin>>n;
    for(int a=1;a<=n;a++){
            cout<<"Data ke-"<<a<<" : "; //Masukan data sebanyak n elemen
            cin>>A[a];
            }
    i=1;
    j=n;
    
    minmax2(A,i,j,min,max);
    
    cout<<"\nNilai max = "<<max<<endl;
    cout<<"Nilai min = "<<min<<endl<<endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
Readmore

Tutorial Algorithm and Programming ©Template Blogger Green by Dicas Blogger.

To Up