Program Quick Sort Ascending C++

Berikut Codingnya... Program Quick Sort Ascending



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

void quicksort( int arr[], int left, int right)
{
int i=left, j=right;
int tmp;
int pivot=arr[(left+right)/2];

while(i<=j)
{
while(arr[i]<pivot)
i++;
while(arr[j]>pivot)
j--;
if(i<=j)
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
i++;
j--;
}
}

if(left<j)
quicksort(arr,left,j);
if(i<right)
quicksort(arr,i,right);
}

void main()
{
int arr[100];
int i,n,lb,ub;
lb=0;
cout<<"PROGRAM QUICK SORT ASCENDING\n";
cout<<"_____________________________ \n\n";
cout<<"masukkan banyak data yang di urut: "; cin>>n;

ub=n;
cout<<"masukkan data-datanya: \n\n";
for(i=1; i<=n; i++)
{
cout<<"\tdata ke- "<<i<<" : "; cin>>arr[i];
}

quicksort(arr,lb,ub);
cout<<"\nHasil pengurutan data: ";
for(i=1; i<=n; i++)
cout<<" "<<arr[i];
getch();
 }

Program Selection Sort Ascending C++

Berikut codingnya Program Selection sort ascending

#include<conio.h>
#include<stdio.h>
typedef int larik[10];
void input(larik A, int n)
{
int i;
for(i=0; i<n; i++)
{
printf("data[%d]= ",i);
scanf("%d",&A[i]);
}}

void output(larik A,int n)
{
int i;
for(i=0; i<n; i++)
{
printf("%d\t",A[i]);
}}

void seleksi_min(larik A,int n)
{
int i,j,idx_mak,temp;
for(i=0; i<n; i++)
{
idx_mak=i;
for(j=i+1; j<n; j++)
{
if(A[j]<=A[idx_mak])
{
idx_mak=j;
}}
temp=A[i];
A[i]=A[idx_mak];
A[idx_mak]=temp;
}}


void main()
{
larik A;
int n;
printf("Program Selection Sort Ascending\n ");
printf("Banyak data: "); scanf("%d",&n);
input(A,n); printf("\n");

printf("Sebelum terurut\n");
output(A,n); printf("\n");

seleksi_min(A,n);printf("\nSetelah terurut\n");
output(A,n); printf("\n");

getch();
}

Program Insertion Sort Ascending C++

Berikut Program Insertion Sort Ascending..

#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 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;
    }
}
void main()
{
int i;
cout<<"PROGRAM INSERTION SORT ASCENDING"<<endl;
cout<<"Masukkan jumlah data: "; cin>>n;
for(int i=1; i<=n; i++)
    {
    cout<<"Masukkan data ke "<<i<<" : "; cin>>data[i];
    }
insertion_sort();
cout<<"Data setelah di sort: ";
for(i=1; i<=n; i++)
    {
    cout<<" "<<data[i];
    }getch();
}

Program Bubble Sort Ascending C++

Gambar di atas adalah hasil output dari program Bubble sort ascending.... Semoga bermanfaat. Berikut programnya

#include <stdio.h>
#include <conio.h>
int main()
{
int array[100],n,c,d,swap;
printf("PROGRAM BUBBLE SORT ASCENDING\n");
printf("_____________________________ \n");
printf("Berapa data yang akan di proses: "); scanf("%d",&n);
printf("Ada %d data yang akan di proses: \n",n);
for(c=0; c<n; c++)
scanf("%d",&array[c]);
for(c=0; c<(n-1); c++)
{
for(d=0; d<n-c-1; d++)
{
if(array[d]>array[d+1])
{
swap=array[d];
array[d]=array[d+1];
array[d+1]=swap;
}
}
}
printf("Data setelah di proses: \n");
for(c=0; c<n; c++)
printf("%d  ",array[c]);
getch();
return 0;
}

Fungsi dalam C++

FUNGSI

Dasar Teori
Function ( Fungsi ) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus. Pada intinya fungsi berguna untuk :
  • Mengurangi pengulangan penulisan program yang berulangan atau sama.
  • Program menjadi terstruktur, sehingga mudah dipahami dan dikembangkan.
Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi printf() yang mempunyai tugas untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.
Struktur Fungsi
Sebuah fungsi sederhana mempunyai bentuk penulisan sebagai berikut :
nama_fungsi(argumen)
            {
                        … pernyataan / perintah;
                        … pernyataan / perintah;
                        … pernyataan / perintah;
            }
Prototipe Fungsi
Prototipe fungsi digunakan untuk menjelaskan kepada kompiler mengenai :
  • Tipe keluaran fungsi.
  • Jumlah parameter.
  • Tipe dari masing-masing parameter.
Salah satu keuntungan pemakai prototipe, kompiler akan melakukan konversi antara tipe parameter dalam definisi dan parameter saat pemanggilan fungsi tidak sama atau akan menunjukkan kesalahan jika jumlah parameter dalam definisi dan saat pemanggilan berbeda.
Contoh prototipe fungsi :
float total ( float a, float b); (menggunakan titik koma)
Jika dalam penggunaan fungsi yang dideklarasikan dengan menggunakan prototipe, maka bentuk definisi harus diubah. Sebagai contoh pada pendefinisian berikut :
float total(a, b)
float a, y;
Bentuk pendefinisian diatas harus diubah menjadi bentuk modern pendefinisian fungsi :
float total(float a, float b) (Tidak menggunakan titik koma)
Parameter Fungsi
Terdapat dua macam para parameter fungsi, yaitu :
  1. Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi.
  2. Parameter Aktual adalah variabel yang dipakai dalam pemanggilan fungsi.
Bentuk penulisan Parameter Formal dan Parameter Aktual.
  1. Pemanggilan dengan nilai ( Call by Value )
Pemanggilan dengan nilai merupakan cara yang dipakai untuk seluruh fungsi buatan yang telah dibahas didepan. Pada pemanggilan dengan nilai, nilai dari parameter aktual akan ditulis keparameter formal. Dengan cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai parameter formal berubah.
  1. Pemanggilan dengan Referensi (Call by Reference)
Pemanggilan dengan reference merupakan upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu variabel diluar fungsi dengan melaksanakan pengubahan dilakukan didalam fungsi.
Inline Function
Fungsi inline ( inline function ) digunakan untuk mempercepat proses program, terutama program-program yang menggunakan sering menggunakan fungsi, terutama program-program yang menggunakan pernyataan perulangan proses seperti for, while dan do – while. Inline function dideklarasikan dengan menyisipkan kata kunci inline didepan tipe data.
Function Overloading
Function Overloading adalah mendefinisikan beberapa fungsi, sehingga memiliki nama yang sama. Dapat diartikan bahwa fungsi yang overload berarti menyediakan versi lain dari fungsi tersebut. Salah satu kelebihan dari C++ adalah Overloading. Sebagai contoh membentuk fungsi yang sama dengan tipe yang berbeda-beda dan dibuatkan pula nama fungsi yang berbedabeda pula.
Fungsi Untuk Operasi String
Kompiler seperti Borland C++ maupun TURBO C++ menyediakan sejumlah fungsi yang berkaitan dengan operasi string, antara lain :
  1. Fungsi Manipulasi String
  2. Fungsi Konversi string
Sekian terimakasih . . .:-)

Array dalam C++

ARRAY

Dasar Teori
Array adalah kelompok variabel dengan tipe sejenis dan dinyatakan dengan nama yang sama. Dengan kata lain, array merupakan tipe khusus yang menyatukan sekelompok variabel dengan tipe yang sama.

Array 1 Dimensi 

       Array 1 dimensi pada dasarnya senarai (deretan) variabel bertipe serupa. Kita lebih dahulu menciptakan variabel array dari tipe yang dikehendaki. int monthDays[];
Meskipun deklarasi telah menetapkan bahwa monthDays adalah variabel array, namun sesungguhnya tidak ada array yang diciptakan pada saat itu. Nilai dari monthDays adalah nilai null yang merepresentasikan array tanpa nilai dan bukan bernilai nol.
Bentuk umum new() untuk array 1 dimensi adalah sebagai berikut:
array-var = new( ) type[size]
Dalam hal ini,  type  menspesifikasikan  tipe  data  yang  dialokasikan,  size menspesifikasikan jumlah dari elemen array, dan array-var adalah variabel array yang dirangkai ke array. Dengan demikian, untuk menggunakan new(), kita harus menspesifikasikan tipe dan jumlah elemen untuk dialokasikan. Elemen-elemen di array yang dialokasikan oleh new( ) akan secara otomatis dinisialisasi ke nol.

Array 2 Dimensi

 Array 2 dimensi tersusun dalam bentuk baris dan kolom, dimana indeks pertama menunjukkan baris dan indeks kedua menunjukkan kolom.
Bentuk umum deklarasi array 2 dimensi
Contoh :


Sekian terimakasih. . .:-)

Perulangan dalam C++


Dasar Teori
Pernyataan for
Pernyataan for pada dasarnya sama dengan pernyataan while, yaitu digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi, cuma di dalamnya terdapat pernyataan untuk pra dan pasca pelaksanaan statement. Bentuk umum pernyataan ini adalah:

for ([prestatement]; [ekspresi]; [poststatement]) statement;

Algoritma pernyataan ini adalah:

prestatement;
ulangi:
statement;
poststatement;
if (ekspresi)
goto ulangi;
endif

Contoh source code:
#include <iostream.h>
 void main()
 {
 int i;
 for(i=1; i<=4; i++)
 {
 cout<<i<<".Hello \n";
 }
 }


Pernyataan while
Pernyataan while digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi. Bentuk umum pernyataan ini adalah:
while (ekspresi) statement;
Di mana ekspresi adalah ekspresi ordinal (mengembalikan nilai bilangan bulat). Statement akan dilakukan secara berulang selama ekspresi bernilai bukan 0.

Algoritma pernyataan ini adalah:

ulangi:
if (ekspresi)
statement;
goto ulangi;
endif

Contoh source code:
#include <iostream.h>
void main()
{
int i;
i=1;
while(i<=4)
{
cout<<i<<".Hello \n";
i++;
}
}

Pernyataan do-while
Pernyataan do-while pada dasarnya sama dengan pernyataan while, yaitu digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi, cuma letak pengujian kondisinya adalah di akhir pernyataan tersebut. Bentuk umum pernyataan ini adalah:
do statement; while (ekspresi);
Di mana ekspresi adalah ekspresi ordinal (mengembalikan nilai bilangan bulat). Statement akan dilakukan secara berulang selama ekspresi bernilai bukan 0.

Algoritma pernyataan ini adalah:

ulangi:
statement;
if (ekspresi)
goto ulangi;
endif

Contoh source code:
#include <iostream.h>
void main()
{
int i;
i=1;
do
{
cout<<i<<".Hello \n";
i++;
}
while (i<=4);
}

Sekian terimakasih . . .:-)

Operator dan seleksi dalam C++

<!--[if gte mso 10]> <!--> Dasar Teori
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi, seperti penjumlahan, pengurangan dan lain-lain.
Operator Aritmatika
Operator untuk operasi aritmatika yang tergolong sebagai operator Binary adalah :
Operator
Keterangan
Contoh
*
Perkalian
4 * 5
/
Pembagian
8 / 2
%
Sisa Pembagian
5 % 2
+
Penjumlahan
7 + 2
Pengurangan
6 − 2
 Operator yang tergolong sebagai operator Unary, adalah :
Operator
Keterangan
Contoh
+
Tanda Plus
−4
− 
Tanda Minus
+6
Operator Penugasan
Sebelumnya kita telah mengenal operator pemberi nilai ( assignment operator ) yaitu tanda “ = “. Sebagai contoh penggunaan operator pemberi nilai : 
      A = A + 1
Dari penulisan ekspresi diatas, Turbo C++ dapat menyederhanakan menjadi : 
     A += 1
A+ = 1 atau A – = 1 ; masih dapat disederhanakan menjadi A ++ atau A –
Notasi ++ atau — dapat diletakkan di depan atau di belakang variable.
Contoh A ++ atau ++ A / A — atau — A
Kedua bentuk penulisan notasi ini mempunyai arti yang berbeda :
1.    Jika diletakkan di depan variable, maka proses penambahan atau pengurangan akan dilakukan sesaat sebelum atau langsung pada saat menjumpai ekspresi ini sehingga nilai variabel tadi akan langsung berubah begitu ekspresi ini ditemukan, sedangkan
2.    Jika diletakkan di belakang variable, maka proses penambahan atau pengurangan akan dilakukan setelah ekspresi ini dijumpai atau nilai variabel tadi akan tetap pada saat ekspresi ini ditemukan
Notasi “ += “ ini dikenal dengan operator majemuk. Ada beberapa operator pemberi nilai aritmatka diantaranya :
Operator
Keterangan
*=
Perkalian
/=
Pembagian
%=
Sisa Pembagian
+=
Penjumlahan
-=
Pengurangan


Operator Penaikan dan Penurunan
Masih berkaitan dengan operator pemberi nilai, Borland C++ menyediakan operator penambah dan pengurang. Dari contoh penulisan operator pemberi nilai sebagai penyederhanaannya dapat digunakan operator penambah dan pengurang.
Operator
Keterangan
++
Increment
decrement
Operator Bitwise
Operator Bitwise digunakan untuk  memanipulasi data dalam bentuk bit. Turbo C++ menyedikan enam buah operator bitwise.
Operator
Keterangan
~
Bitwise NOT
<< 
Bitwise Shift Left
>> 
Bitwise Shift Right
&
Bitwise AND
^
Bitwise XOR
|
Bitwise OR

·       Operator Bitwise << (Shift Left)
Operator Bitwise Shift Left digunakan untuk menggeser sejumlah bit kekiri.
·       Operator Bitwise >> (Shift Right)
Operator Bitwise Shift Right digunakan untuk menggeser sejumlah bit kanan.
·       Operator Bitwise & (And)
Operator Bitwise & ( And ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai benar (1) jika semua operand yang digabungkan bernilai benar (1). Berikut anda dapat melihat ilustrasi untuk membandingkan bit dari 2 operand
·       Operator Bitwise | ( Or )
Operator Bitwise | ( Or ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai benar jika ada salah satu operand yang digabungkan ada yang bernilai benar (1). Berikut anda dapat melihat ilustrasi untuk membandingkan bit dari 2 operand.
·       Operator Bitwise ^ ( eXclusive Or )
Operator Bitwise ^ ( XOr ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai benar (1) jika dari dua bit yang dibadingkan hanya sebuah bernilai benar (1). Berikut anda dapat melihat ilustrasi untuk membandingkan bit dari 2 operand.
·       Operator Bitwise ~ ( Not )
Operator Bitwise ~ ( Not ) digunakan membalik nilai bit dari suatu operand. Berikut anda dapat melihat ilustrasi untuk membandingkan bit dari 2 operand.
Operator Relasi
Operator Relasi digunakan untuk membandingkan dua buah nilai. Hasil perbandingan operator ini menghasilkan nilai numerik 1 (True) atau 2 (False).
Operator
Keterangan
==
Sama Dengan ( bukan pemberi nilai )
!=
Tidak Sama dengan
Lebih Dari
Kurang Dari
>=
Lebih Dari sama dengan
<=
Kurang Dari sama dengan
Operator Logika
Operator
Keterangan
&&
Operator Logika AND
| |
Operator Logika OR
!
Operator Logika NOT

·       Operator Logika AND
Operator logika AND digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila semua ekspresi relasi yang dihubungkan bernilai BENAR.
·       Operator Logika OR
Operator logika OR digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila salah satu ekspresi relasi yang dihubungkan bernilai BENAR dan bila semua ekspresi relasi yang dihubungkan bernilai SALAH, maka akan bernilai SALAH.
·       Operator Logika NOT
Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi yang disebutkan. Jika nilai yang disebutkan bernilai BENAR maka akan menghasilkan nilai SALAH, begitu pula sebaliknya.
Operator Kondisi
Digunakan untuk mendapatkan sebuah nilai dari dua buah kemungkinan, berdasarkan suatu kondisi. Biasanya menggunakan pernyataan berkondisi if. Bentuk umumnya:
Ekspresi?operand2:operand3
Nilai yang diambil dari operand2 kalau operand1 bernilai benar. Nilai yang diambil dari operand3 kalau operand1 bernilai salah.
Seleksi Kondisi
Pernyataan IF
Pernyataan if mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan”.
Bentuk umum dari pernyataan if
if (kondisi)
pernyataan;
Pernyataan IF – ELSE
Pernyataan if -else mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2”.
Bentuk umum dari pernyataan if-else
if (kondisi)
perintah-1;
else
perintah-2;
Jika if-else diikuti dengan pernyataan majemuk maka bentuk penulisannya sebagai berikut :
if (kondisi)
{
perintah-1;
}
else
{
perintah-2;
}
Pernyataan NESTED IF
Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya. Bentuk penulisan pernyataan Nested if adalah :
if(kondisi)
if(kondisi)
…perintah;
else
…perintah;
else
if(kondisi)
…perintah;
else
…perintah;
Pernyataan IF – ELSE Mejemuk
Bentuk dari if-else bertingkat sebenarnya serupa dengan nested if, keuntungan penggunanan if-else bertingkat dibanding dengan nested if adalah penggunaan bentuk penulisan yang lebih sederhana
if(kondisi1)
{
..perintah;
..perintah;
}
else if(kondisi2)
{
..perintah;
..perintah;
}
else
{
..perintah;
..perintah;
}
Pernyataan SWITCH – CASE
Pernyataan switch – case ini memiliki kegunaan sama seperti if – else bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe karakter atau integer. Bentuk penulisan perintah ini sebagai berikut :
switch (ekspresi integer atau karakter )
{
case konstanta-1 :
… perintah;
… perintah;
break;
case konstanta-2 :
… perintah;
… perintah;
break;
……
……
default :
… perintah;
… perintah;
}
Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika pernyataan ini tidak ada, maka program akan diteruskan kecabang – cabang yang lainnya.

Sekian Terimakasih . . .:-)