Translate

tentang saya

haiii
aku novi..........
tujuan saya membuat blog ini..
sekedar ingin sedikit membantu dengan apa yang saya Tau, agar teman teman juga tau.
semoga blog ini dapat bermanfaat :)
"AMIN"
Terimakasih

Senin, 12 Mei 2014

Algoritma Sorting pada c++ DAN ARRAY

Algoritma Sorting pada c++


#include "conio.h"
#include "stdio.h"

int main() {

int i, j, iMin;
int n, Urut;
int Tmp, code;
int Arr[100];
do {


printf("=====================================\n");
printf("| Pilihan Program Sorting |\n");
printf("=====================================\n");
printf("| 1. Selection Sorting (Ascending) |\n");
printf("| 2. Selection Sorting (Descending) |\n");
printf("| 3. Bubble Sorting (Ascending) |\n");
printf("| 4. Bubble Sorting (Descending) |\n");
printf("| 5. Insertion Sorting (Ascending) |\n");
printf("| 6. Insertion Sorting (Descending) |\n");
printf("| 7. Keluar . . . |\n");
printf("=====================================\n\n");
printf("Masukan Pilihan Anda : ");
scanf("%d", &code);
switch (code) {

case 1 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] < Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] > Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;


case 2 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
Urut = 1;
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 0; i < n - 1; i++) {
iMin = i;
for(j = Urut; j < n; j++) {
if(Arr[j] > Arr[iMin]) {
iMin = j;
if(Arr[i] != Arr[iMin]) {
Tmp = Arr[i];
if(Arr[i] < Arr[iMin]) {
Arr[i] = Arr[iMin];
Arr[iMin] = Tmp;
}
}
}
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

case 3 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
for(j = 0; j < n - 1; j++) {
if(Arr[j] > Arr[j + 1]) {
Tmp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = Tmp;
}
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}

getch();
break;

case 4 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
for(j = 0; j < n - 1; j++) {
if(Arr[j] < Arr[j + 1]) {
Tmp = Arr[j];
Arr[j] = Arr[j + 1];
Arr[j + 1] = Tmp;
}
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

case 5 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
Tmp = Arr[i];
j = i - 1;
while(Arr[j] >= Tmp && j > 0) {
Arr[j + 1] = Arr[j];
j = j - 1;
}
if(Tmp >= Arr[j]) {
Arr[j + 1] = Tmp;
} else {
Arr[j + 1] = Arr[j];
Arr[j] = Tmp;
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;

case 6 :
printf("\nInputkan banyak data yang akan diurutkan : ");
scanf("%i", &n);
for(i = 0; i < n; i++) {
printf("Masukan data ke %i : ", i + 1);
scanf("%i", &Arr[i]);
}
for(i = 1; i < n; i++) {
Tmp = Arr[i];
j = i - 1;
while(Arr[j] <= Tmp && j > 0) {
Arr[j + 1] = Arr[j];
j = j - 1;
}
if(Tmp <= Arr[j]) {
Arr[j + 1] = Tmp;
} else {
Arr[j + 1] = Arr[j];
Arr[j] = Tmp;
}
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++) {
printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
break;


default : {
printf("\nSilahkan Tekan Enter Untuk Keluar . . . "); }}

} while(code >=1 && code <= 6);
getch();
}

PROGRAM SORT KOMPLIT C++

Posted by celulux on 15/06/2009






Rate This

Ada beberapa cara atau algoritma untuk mengurutkan data.
Bubble Sort
Bubble Sort adalah Cara pengurutan data atau file dengan cara saling menukar tempat dalam urutan, mirip dengan gelembung dalam air. Metode ini adalah cara terbaik untuk mengurutkan data/file dengan jumlah sedikit. Untuk file yang lebih besar terdapat metode lainnya.
Selection Sort
Algoritma ini mudah diterjemahkan ke dalam program computer tetapi memiliki kekurangan yaitu sort dengan menggunakan metode Seleksi membutuhkan ruang di memori untuk meyimpan 2 daftar lengkap.
Jika memiliki satu daftar nama dan meletakkan dalam urutan berdasarkan huruf bisa menggunakan pemdekatan umum sebagai berikut :
1. Temukan atau cari nama yang pertama kali datang dalam urutan huruf dan tulis di sheet kedua
2. Tandai nama yang keluar dari daftar asli
3. Lanjutkan perputaran ini sampai semua nama di daftar semula telah di coret dan ditulis di daftar kedua dimana di bagian daftar yang kedua ini nama-nama sudah terurut berdasarkan huruf
Quick Sort
Ide dasar quick sort (pengurutan cepat) yaitu membandingkan hasil setiap perbandingan sebagai penunjuk ke perbandinga berikutnya. Selama perbandingan, kunci dipertukarkan setelah dilengkapi, daftar kemudian dibagi menjadi nilai kunci pada satu partisi (tidak terurut) semuanya kurang dari nilai kunci yang dipilih dan nilai kunci di partisi yang lain semuanya lebih besar dari nilai kunci.
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang telah diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.
Berikut contoh program sorting paling komplit.
contoh program c++ :


#include
#include

int data[100],data2[100];
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 {
for(int j=n-1;j>=i;j–)
{
if(data[j] }
}
cout<<”bubble sort selesai!”< }

void exchange_sort()
{
for (int i=0; i {
for(int j = (i+1); j {
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”< }

void selection_sort()
{
int pos,i,j;
for(i=0;i {
pos = i;
for(j = i+1;j {
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<”selection sort selesai!”< }

void insertion_sort()
{
int temp,i,j;
for(i=1;i {
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”< }

void QuickSort(int L, int R) //the best sort i’ve ever had :)
{
int i, j;
int mid;

i = L;
j = R;
mid = data[(L+R) / 2];

do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;

if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);

if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}

void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i {
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}

void Tampil()
{
cout<<”Data : “< for(int i=0;i {
cout< }
cout< }

void AcakLagi()
{
for(int i=0;i {
data[i] = data2[i];
}
cout<<”Data sudah teracak!”< }

void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”< cout<<”*********************************************”< cout<<” 1. Input Data”< cout<<” 2. Bubble Sort”< cout<<” 3. Exchange Sort”< cout<<” 4. Selection Sort”< cout<<” 5. Insertion Sort”< cout<<” 6. Quick Sort”< cout<<” 7. Tampilkan Data”< cout<<” 8. Acak Data”< cout<<” 9. Exit”< cout<<”    Pilihan Anda = “;  cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”< break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}
getch();
}while(pil!=9);
}

Procedure dan Function C++


LP C++ (Function dan Procedure)

1.        Apa yang kalian ketahui tentang Procedure dan Function pada C++?
Jawab :
Ø  Procedure adalah subroutine yang terdiri dari blok perintah/statement untuk mengolah suatu masalah dengan satu atau lebih  masukan untuk menghasilkan satu atau lebih keluaran.
Ø  Fungtion adalah subroutine yang mengolah suatu nasalah tertentu untuk menghasilkan suatu keluaran tertentu. Keluaran Fungsi harus memiliki tipe data.
2.        Tuliskan bentuk umum dari procedure dan function?
Jawab :
Ø  Bentuk umum procedure :
Procedure Nama_Prosedur(param1:tipedata,param2:tipedata)
Ø  Bentuk umum function :
Function Nama_fungsi(param1:tipedata,param2:tipedata):integer
3.        Buat contoh programnya?
Contoh program menggunakan parameter procedure:
#include
#include
void gaya(double m, double a); //prototype function
void main() //main function
{
double m,a;
cout<<"Massa : "; cin>>m;
cout<<"percepatan : "; cin>>a;
cout<<"F : ";
gaya(m,a); //parameter aktual
getch();
}

void gaya(double m, double a) //function definition
{
double hasil;
hasil=m*a;
cout<
}

Procedure and Function di C++

Februari 24, 2012dion87 | Leave a comment
Akhirnya bisa nulis di blog ini lagi, setelah sekian lama tak terjamah..(haha). Mungkin faktor M (baca: malas) yang menyebabkan ini semua, tapi tak apa lah faktor M kan juga sifat manusia. langsung aja dh….
Postingan kali ini saya akan coba membagikan tulisan saya atau lebih tepatnya makalah yang saya buat beberapa hari yang lalu, guna memenuhi syarat tes interview pemilihan Asisten Laboratorium  (mudahan2an lulus.. aminn). Di tulisan saya coba akan membahas tentang procedure dan fungsi pada pemrograman C++.
Prosedur
Pada dasarnya bahasa C++ tidak mengenal istilah prosedur, C++ hanya mengenal fungsi, prosedur dalam C++ dianggap sebagai fungsi yang tidak mengembalikan nilai, sehingga dalam pendeklarasian prosedur cukup dituliskan dengan kata kunci void dan diikuti dengan nama prosedur.
Berikut akan diberikan contoh prosedur dalam C++ dan cara pemanggilannya di program utama :
//program penjualan
#include 
#include 
 
void penjualan (float a, float b, float c) {
float total, temp ;
temp = b * c ;
total = temp - (a * temp) ;
cout << "Harga Kotor Barang  : " << temp << endl ;
cout << "Harga Bersih Barang : " << total << endl ;
}
 
//program utama
 
void main() {
float diskon, harga, jumlah ;
float total, temp ;
cout << "PROGRAM HITUNG HARGA BARANG" << endl ;
cout << "===========================" << endl << endl ;
cout << "Masukkan harga barang : " ; cin >> harga ;
cout << "Masukkan jumlah barang : " ; cin >> jumlah ;
cout << "Masukkan diskon barang : " ; cin >> diskon ;
cout << "\n" ;
penjualan(diskon, harga, jumlah) ;
getch(); }
 
Fungsi
Agar sebuah fungsi bisa mengembalikan nilai, di akhir sub program yang kita buat harus diakhiri dengan kata kunci return diikuti dengan nilai yang akan dikembalikan. Dalam sebuah fungsi, kata kunci return hanya bisa mengembalikan satu buah nilai saja.
Untuk memanggil sebuah fungsi, kita cukup memanggil nama fungsi di program utama, diikuti dengan parameter aktual. Karena fungsi bisa mengembalikan nilai, nilai tersebut bisa ditampung di dalam sebuah variabel atau langsung dimanipulasi.
//program menampilkan deret bilangan prima
#include 
#include 
bool prima(int n) {
int i, jml;
jml = 0 ;
for (i=1;i<=n;i++) {
if (n % i == 0) {
jml ++ ; }
}
if (jml == 2) {
return (true); }
else {
return(false) ; }
}
 
//program utama
main() {
int j, n, cacah ;
cout << "Masukkan Batas bilangan : " ; cin >> n ;
cout << "Berikut Bilangan itu : " << endl ;
cacah = 0 ;
for (j=1;j<=n;j++) {
if (prima(j) == true) {
cout << j << " " ;
cacah ++ ;
}
}
cout << "\nBanyak bilangan prima adalah : " << cacah << endl ;
getch();}


Pengenalan Array dan String

Jul 13, 2009 20 Comments by Author
Array merupakan koleksi data dimana setiap elemen memakai nama dan tipe yang sama serta setiap elemen diakses dengan membedakan indeks array-nya. Berikut adalah contoh variable bernama c yang mempunyai lokasi memori yang semuanya bertipe int.
C[0] = -45;
C[1] = 6;
C[2] = 0;
C[3] = 72;
C[4] = 1543;
C[5] = 43;
C[6] = 4;
Masing-masing nilai dalam setiap lokasi mempunyai identitas berupa nama c dan nomor indeks yang dituliskan di dalam tanda kurung ‘[..]’. sebagai contoh, 72 adalah nilai dari c[3].
Deklarasi Array
Variable array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variable array c di atas adalah :
int c[7];
Perlu diperhatikan bahwa C++ secara otomatis menyediakan lokasi memori yang sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0. Nilai suatu variable array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya;
Int c[7] = {-45, 0, 6, 72, 1543, 43, 4}
Berarti setiap lokasi memori dari variable array c langsung diisi dengan nilai-nilai yang dituliskan didalam tanda kurung kurawal.
Banyaknya lokasi memori dapat secara otomatis disediakan sesuai degan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variable array dengan 10 lokasi memori:
Int x []={10, 15 12, 5, 13, 9, 6, 17, 25, 31};
Untuk memperjelas gambaran anda tentang array perhatikan contoh aplikasi variable array, yaitu program untuk menghitung jumlah setiap elemen dalam suatu array.
Sebagai gambaran dari program tersebut, dapat dibuat sebuah algoritma sebagai berikut:
  1. Tentukan elemen array sebanyak yang diinginkan (dalam hal ini, elemen array tersebut berjumlah 12 buah)
  2. Tentukan nilai awal indeks, batas akhir indeks dan kenaikannya (dalam hal ini, nilai awal indeks adalah 0, batas akhir indeks adalah jumlah elemen array diatas yaitu 12 dikurangi dengan 1, kenaikannya adalah 1)
  3. Lakukan perulangan sesuai dengan langkah 2
  4. Lakukan penjumlahan masing-masing elemen array sampai batas akhir indeks terpenuhi
  5. Tampilkan penjumlahan semua elemen array
  6. Selesai.
Sedangkan implementasi dalam program dapat dilihat berikut ini.
Contoh Program array
1
2
3
4
5
6
7
8
9
10
11
12
/*Program :array1.cpp*/
#include 
#define SIZE 12
main()
{
  int a[SIZE]={1, 3, 5, 4, 7, 2, 99, 16, 45, 67, 89, 45};
  int indeks, total =0;
  for(indeks=0; indeks<=SIZE-1; indeks++)
    total += a[indeks];
  printf("\nTotal setiap elemen array adalah %d",total);
  return 0;
}
Bila program diatas dijalankan, akan muncul hasil :
Total setiap elemen array adalah 383
Adapun keterangan dari program diatas adalah sebagai berikut :
Hasil penjumlahan setiap elemen array diperoleh dari jumlah data atau elemen array sebanyak 12 buah yang sudah didefinisikan pada awal program yaitu #define SIZE 12. Kemudian setiap elemen array dari a[0] yang berisi data, a[1] yang berisi data 3 di jumlahkan sampai dengan a[11] yang berisi data 45. Proses penjumlahan dilakukan pada loop dimulai dari 0 sampai data yang terakhir atau elemen terakhir.
Array Dimensi Satu
Bentuknya :
Tipe nama_var[ukuran];
Dengan :
Tipe : menyatakan jenis elemen array (int, char, unsigned, dan lain-lain)
Ukuran : menyatakan jumlah maksimal elemen array
Contoh :
Float nilai_ujian[5];
Pada turbo C++ array disimpan dalam memori secara berurutan. Elemen pertama berindeks nol digambarkan sebagai berikut :
Nilai_ujian[0]
Nilai_ujian[1]
Nilai_ujian[2]
Nilai_ujian[3]
Nilai_ujian[4]
Masing-masing berbentuk float dan berjumlah 5 elemen.
Selain itu, deklarasi array juga dapat berupa :
Static int bulan[12]={1,2,3,4,5,6,7,8,9,10,11,12}
Sesuai dengan deklarasi array diatas, maka isi variable array telah ditentukan yaitu :
Bulan[0] bernilai 1
Bulan[1] bernilai 2
Bulan[2] bernilai 3
Bulan[3] bernilai 4
Bulan[4] bernilai 5
Bulan[5] bernilai 6
Bulan[6] bernilai 7
Bulan[7] bernilai 8
Bulan[8] bernilai 9
Bulan[9] bernilai 10
Bulan[10] bernilai 11
Bulan[11] bernilai 12
Untuk memperjelas tentang array dimensi satu, perhatikan maslah berikut ini :
Misalkan Anda diminta membuat algoritma dan program untuk menampilkan bilangan dari 1 sampai bilangan 10, dengan pangkatnya masing-masing. Adapun batas nilai maksimal yang disimpan adalah 100.
Sesuai yang telah Anda pelajari , bahwa bilangan 1 pangkatnya adalah 1. Hasil ini diperoleh dari 1*1, kemudian bilangan 2 pangkatnya adalah 4, hasil ini diperoleh dari 2*2 sampai bilangan 10 yang pangkatnya adalah 100, hasil ini diperoleh dari 10*10.
Algoritma dari permasalahan diatas adalah berikut ini :
1. Tentukan elemen array untuk menampung nilai perkalian
2. Tentukan nilai awal indeks, batas akhir indeks dan kenaikannya (dalam hal ini , nilai awal indeks adalah 0, batas akhir indeks adalah 10, dan kenaikannya adalah 1)
3. Lakukan perulangan sesuai langkah 2
4. Nilai awal indeks ditambah dengan 1
5. Lakukan perkalian masing-masing elemen array sampai batas akhir indeks terpenuhi.
6. Tampilkan perkalian semua elemen array
7. Selesai .
Contoh program array dimensi satu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*Program :array2.cpp*/
#include 
int main()
{
  int square[100];
  int i; /*loop index*/;
  int k; /*the integer*/
 
  /*calculate the squares */
  for (i=0; i<10; i++)
  {
    k= i+1;
    square[i]=k*k;
    printf("\nPangkat dari %d adalah %d ", k, square[i]);
  }
  return 0;
}
Bila program dijalankan akan muncul hasil :
Pangkat dari 1 adalah 1
Pangkat dari 2 adalah 4
Pangkat dari 3 adalah 9
Pangkat dari 4 adalah 16
Pangkat dari 5 adalah 25
Pangkat dari 6 adalah 36
Pangkat dari 7 adalah 49
Pangkat dari 8 adalah 64
Pangkat dari 9 adalah 81
Pangkat dari 10 adalah 100
Penjelasan :
Dari program diatas, Anda dapat melihat ada 10 buah elemen yang masing-masing nilainya akan dipangkatkan, mulai dari 1 sampai 10. Dimana dalam memori sudah dipesan tempat sebanyak 100.
Sedangkan apabila array akan dikirim ke sebuah fungsi caranya adalah hanya dengan mencantumkan nama array tanpa diikuti dengan tanda apapun, seperti contoh berikut :
int c[5] = {-45, 0, 6, 72, 1543};


JUMLAH (c, 5)
—-
Dalam contoh diatas, yang memanggil fungsi JUMLAH dengan mengirimkan argument berupa variable array c dan sebuah konstanta 5. Perhatikan bahwa variable array ditulis hanya c tanpa notasi tambahan apapun. Deklarasi variable array yang menjadi parameter dari suatu fungsi dituliskan dengan nama variable array yang diikuti dengan tanda kurung [], tanpa menuliskan banyaknya lokasi memori yang diinginkan.
ARRAY DIMENSI DUA
Struktur array yang dibahas diatas mempunyai satu dimensi, sehingga variabelnya disebut variable array berdimensi satu. Pada bagian ini ditunjukkan array berdimensi lebih dari satu, yang sering disebut dengan array berdimensi dua.
Sebagai contoh, sebuah matrik B berukuran 2 X 3 dapat dideklarasikan dalam C seperti berikut : int B[2][3] = {[2, 4, 1}, {5, 3, 7}}; yang menempati lokasi memori dengan susunan sebagai berikut :
0 1 2
0 2 4 1
1 5 3 7
Dan definisi variable untuk setiap elemen tersebut adalah :
0 1 2
0 b[0][0] b[0][1] b[0][2]
1 b[1][0] b[1][1] b[1][2]
Sebagai implementasi dari keterangan diatas, perhatikan program berikut ini :
Contoh Program array dimensi dua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*Program :array2.cpp*/
#include 
void printArray(int[][3]);
main()
{
  int matrik1[2][3] = {{1, 2, 3},{4, 5, 6}};
  int matrik2[2][3] = {1, 2, 3, 4, 5};
  int matrik3[2][3] = {{1, 2},{4}};
  printArray (matrik1);
  printArray (matrik2);
  printArray (matrik3);
  return 0;
}
 
void printArray (int a[][3])
{
  int i,j;
  for (i=0; i<=1; i++)
  {
    for (j=0; j<=2; j++)
    printf("%d",a[i][j]);;
    printf("\n");
  }
}
Bila program diatas dijalankan, akan mucul hasil :
123
456
123
450
120
400
Penjelasan :
Dari program diatas untuk matrik 1, penulisannya adalah 123 456, sedangkan pada matrik 2 penulisannya adalah 123 450. 0 disini mempunyai arti tempat yang disediakan untuk data kolom ke 3 dan baris ke 2 tidak diisi. Sedangkan matrik 3 penulisannya adalah 120 400. Dari matrik 3 disini kita bisa melihat bahwa pada baris pertama kolom ketiga data tidak diisi dan dianggap 0 dan pada baris kedua kolom kedua dan ketiga juga tidak diisi juga diisi 0.
Dalam program tersebut, juga digunakan fungsi untuk menampung hasil penjumlahan matrik.
Perhatikan contoh lain :
Int datasiswa[4][3];
Deklarasi diatas digunakan untuk mendeklarasikan suatu data siswa yang berbentuk demikian :
No Nama Kelas Jumlah Siswa
Tahun 1989 Tahun 1990 Tahun 1991
1 Kelas 1 50 55 49
2 Kelas 2 60 60 55
3 Kelas 3 56 56 56
4 Kelas 4 49 50 54
Dari deklarasi diatas maka angka empat [4] menyatakan jumlah kelas, dan angka indek [3] menyatakan tahun.
Data siswa [0][2] adalah Kelas 1 dan jumlah siswa tahun 1990 yaitu 55. Atau jumlah siswa kelas 1 pada tahun 1990 adalah 55.
Bentuk data siswa dapat juga digambarkan sebagai berikut :
1 2 3
1 50 55 49
2 60 60 55
3 56 56 56
4 49 50 54
Array ini dapat pula diberi nilai tetap dengan static seperti pada array dimensi satu. Deklarasinya adalah sebagai berikut :
Static int jumlah [4][3]=
{
50, 55, 49,
60, 60, 55,
56, 56, 56,
49, 50, 54
};
ARRAY DIMENSI BANYAK
Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan banyak, maka array ini sangat memegang peranan yang penting.

Pengertian, Definisi, dan Contoh Program Array Pada C++

7:03 PM Arif Hanafi No comments
Array merupakan sekumpulan data yang mempunyai nama dan tipe yang sama, array disebut juga variable berindeks. Nilai suatu data dala array ditentukan oleh nama dan indeksnya. Tipe data array dapat berupa array satu dimensi atau  array berdemensi banyak.

1) Deklarasi
-    Array satu dimensi
type_array nama_array [ukuran]
contoh : int bilangan [10]

-    Array dua dimensi
type_array nama_array [ukuran1] [ukuran2]
contoh : int bilangan [5][10]

-    Array tiga dimensi
type_array nama_array [ukuran1] [ukuran2] [ukuran3]
contoh : float bilangan [3] [5] [10]

array dalam bahasa C++ tidak dimulai dari indeks satu, tetapi dimulai dari indeks 0 (nol). Misalnya dideklarasikan array satu dimensi : int bilangan [3] berarti array  yang terjadi adalah  :
bilangan [0],bilangan [1], bilangan [3].


2)  Memberi Nilai Pada Array
Untuk memberi nilai pada Array dapat dilakukan dengan mengakses indeksnya, contoh :
bilangan [3]= {10,43,67};

atau:

bilangan [0] = 10;
bilangan [1] = 2;
bilangan [2] = 4;

Selain itu, memberi nilai pada Array juga dapat dilakukan dnegan menggunakan struktur perulangan for yang mana jumlah perulangan yang trjadi disesuaikan dengan ukuran Array. contoh :

for (int i=0;i<10 br="" i=""> {
    bilangan[i] = i;
}

Selain bertipe numerik, Array dapat juga bertipe char. Array char dapat dianggap sebagai sebuah string. Contoh :
char nama[15] = "HELLO";
char alamat[ ] = "WORLD";


Untuk memberi nilai pada suatu string, tidak diperbolehkan menggunakan operator penugasan (=). Untuk memberi nilai string dapat menggunakan tiga cara yaitu dengan inisialisasi, diambil dari papan ketik atau menggunakan fungsi strcpy().

3) Membaca Nilai Dari Array
Nilai Array dapat langsung ditampilkan misalnya :
cout << bilangan [0];
cout << bilangan [1];
cout << bilangan [2];

Atau dapat juga dengan bantuan strukur for, misalnya :
for (int i=0;i<10 br="" i=""> {
   cout << bilangan[i];
}

Contoh Program Array pada C++ :

#include
#include
void main()
{
    int data[3][3];
    int rata, total = 0;
    //input data ke array
    for (int k=0;k<3 br="" k="">     {
        for (int j=0;j<3 br="" j="">         {
            cout<<"masukkan data["<             cin>>data[k][j];
        }
    }
    //menghitung total nilai pada array
    for (int m=0;m<3 br="" m="">     {
        for (int n=0;n<3 br="" n="">         {
            cout<             total = total + data[m][n];
        }
        cout<<""<     }
    //menghitung rata - rata
    rata = total / 3;
    cout<<"rata - rata data pada array = "<     getch();
}

Apakah Array?
Contoh Kasus : Suatu universitas ingin mendata nilai mahasiswa di sutau kelas dengan banyak mahasiswa 10 orang. Dari semua nilai yang  telah dimasukan tersebut ingin ditampilkan kembali dan dicari nilai rata-ratanya.
Untuk membuat program dengan ketentuan seperti diatas, ada beberapa cara untuk memecahkannya :
Program 1 : Tanpa menggunakan array
#include
#include
void main()
{
int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10;
float total, ratarata;
// Pembacaan semua nilai dari keyboard
printf(“Pemasukan data nilai mahasiswa : \n”);
printf(“Nilai mahasiswa Ke-1 : “);scanf(“%d”,&n1);
printf(“Nilai mahasiswa Ke-2 : “);scanf(“%d”,&n2);
/* diulang dari nilai ke-3 sampai terakhir */
printf(“Nilai mahasiswa Ke-10: “);scanf(“%d”,&n10;
// perhitungan total dan rata-rata
total=n1+n2+n3+n4+n5+n6+n7+n8+n9+n10;
ratarata=total/10;
// Menampilkan data nilai yang telah dimasukan
printf(“Nilai mahasiswa Ke-1 : %3d\n”,n1);
printf(“Nilai mahasiswa Ke-2: %3d\n”,n2);
/* diulang dari nilai ke-3 sampai terakhir */
printf(“Nilai mahasiswa Ke-10 : %3d\n”,n10);
// Menampilkan nilai rata-rata
printf(“Rata-rata kelas : %6.2f\n”,ratarata);
getch();
}
Dengan menggunakan cara diatas, sebenarnya programnya telah mencukupi, tetapi kalau nilai yang akan diolah menjadi lebih banyak, maka pendeklarasian variabel n harus dilakukan sebanyak yang diperlukan.  Jadi kalau data yang akan diolah sebanyak 100 buah, maka pendeklarasian dan pembacaan datanya pun dilakukan sebanyak 100 kali. Dan perhitungannya juga. Rumus perhitungan total pun menjadi berubah. Pemrograman di atas sebenarnya sederhana tetapi bisa sangat merepotkan. Oleh karena



Array 1 dimensi
Solusi kedua dari kasus diatas adalah dengan menggunakan array. Array adalah suatu variabel yang dapat menampung lebih dari satu data dengan tipe data yang sama dan dibedakan berdasarkan nomor indexnya. Dalam bahasa C, array selalu dimulai dari index ke-0 (nol).
Contoh deklarasi array :

     int N[10];

Deklarasi diatas berarti pendeklarasian variabel array bernama N yang mempunyai elemen sebanyak 10 buah dengan index dimulai dengan nomor 0 sampai 9. Dalam memori deklarasi tersebut dapat digambarkan seperti berikut :

N[0]
N[1]
N[2]
N[3]
N[4]
N5]
N[6]
N[7]
N[8]
N[9]

Untuk memasukan suaut elemen data dalam array, perintah yang dilakukan ditulis seperti pembacaan data variabel biasa hanya perbedaannya harus ditulis untuk index ke berapa.

Contoh untuk pengisian data ke elemen array :
scanf(“%d”, &N[2]);

Perintah diatas berarti pembacaan data dari keyboard untuk data bertipe integer (%d) dan dimasukan ke variabel array index ke-2 (urutan ke-3).

Contoh-contoh lain pengisian ke suatu elemen array :
I=5; // variabel I diisi dengan nilai 5
N[I] = 7; // data ke-I dari variabel N diisi dengan nilai 7
scanf(“%d”,&N[N[I]]);
// pembacaan data untuk variabel N pada index ke-N[I] (7)

Karena nomor elmeen dari array bisa diisi dengan variabel, berarti kita bisa melakukan perulangan (loop) untuk melakukan pembacaan data dari elemen pertama sampai elemen terakhir.

Untuk lebih jelas, lihat program pada halaman berikutnya.
#include
#include
void main()
{
int Nilai[10];
int index;
float total,ratarata;

// Pembacaan data dari keyboard
printf(“Pembacaan data nilai \n”);
for (index=0;index<10 index="" p=""> {
printf(“Nilai mahasiswa ke-%d = “,index+1);
scanf(“%d”,&Nilai[index]);
}
// Perhitungan total dan rata-rata
total=0;
for (index=0;index<10 index="" p=""> total=total+Nilai[index];// atau total+=Nilai[index];
ratarata=total/10;

// Menampilkan data yang telah dimasukan dan rata-rata.
for (index=0;index<10 index="" p=""> printf(“Nilai mahasiswa ke-%d = %3d\n“,index+1,Nilai[index]);
printf(“Rata-rata = %6.2f\n”,ratarata);

getch();

}


Array 2 Dimensi

Array 2 dimensi biasanya digunakan untuk menyimpan data dalam bentuk matrik. Index Array 2 dimensi terdiri dari index baris dan kolom.
Pendeklarasian array 2 dimensi adalah :
Tipedata  namaarray[b][k];
Dimana : b adalahbanyak baris dan k adalah banyak kolom.
Contoh
int matrik[5][5];

Perintah di atas akan membuat sebuah array 2 dimensi yang kalau digambarkan adalah sebagai berikut :
index
0
1
2
3
4
0
0,0
0,1
0,2
0,3
0,4
1
1,0
1,1
1,2
1,3
1,4
2
2,0
2,1
2,2
2,3
2,4
3
3,0
3,1
3,2
3,3
3,4
4
4,0
4,1
4,2
4,3
3,3
Cara pengaksesan elemen array 2 dimensi dapat dilihat pada contoh di bawah ini :
      mat[0][0]=7;
      printf(“Masukan data : “);scanf(“%d”,&mat[2][1]);
      printf(“Data yang dimasukan : %d\n”,mat[2][1]);
Keterangan :
-          Baris pertama adalah mengisikan nilai 7 ke array mat pada baris 0 kolom 0.
-          Baris kedua adalah perintah untuk membaca data elemen matrik pada baris 2 kolom ke 1.
-          Baris ketiga adalah perintah untuk menampilkan data elemen matrik/array pada baris 2 dan kolom ke-1.


Pembacaan elemen-elemen array 2 dimensi melibatkan 2 perulangan. 1 perulangan baris dan 1 perulangan kolom. Untuk lebih jelas perhatikan program di bawah ini.

Contoh Program Array 2 Dimensi :
#include
#include
#define maks 3
main()
{
    int mat[maks][maks];
    int b,k;
    printf(“Pengisian Array : \n”);
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“Matrik [%d,%d] : “,b,k);
            scanf(“%d”,&mat[b][k]);
        }
    }
    printf(“Matrik yang telah dimasukan :\n”)
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“%6d”,mat[b][k]);
        }
        printf(“\n”);
    }
    getch();
    return 0;
}

Contoh Program Operasi pertambahan 2 matrik.
#include
#include
#define maks 3
main()
{
    int mat1[maks][maks], mat2[maks][maks], mathasil[maks][maks];
    int b,k;
    printf(“Pengisian Matrik 1 : \n”);
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“Matrik [%d,%d] : “,b,k);
            scanf(“%d”,&mat1[b][k]);
        }
    }
   



    printf(“Pengisian Matrik 2 : \n”);
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“Matrik [%d,%d] : “,b,k);
            scanf(“%d”,&mat2[b][k]);
        }
    }
    // awal operasi pertambahan matrik
   
    for (b=0;b
        for (k=0;k
            mathasil[b][k]=mat1[b][k]+mat2[b][k];
   
    // akhir operasi perhitungan

    printf(“Matrik 1 :\n”)
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“%6d”,mat1[b][k]);
        }
        printf(“\n”);
    }
    printf(“Matrik 2 :\n”)
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“%6d”,mat2[b][k]);
        }
        printf(“\n”);
    }
    printf(“Matrik Hasil :\n”)
    for (b=0;b
    {
        for (k=0;k
        {
            printf(“%6d”,mathasil[b][k]);
        }
        printf(“\n”);
    }
    getch();
    return 0;
}


Kasus Array 2 Dimensi
1.
Buatlah suatu program untuk menghitung jumlah anggota yang ada dalam suatu matrik.
Contoh :
2
3
4
5
6
2
1
3
4
Total Elemen matrik adalah 30

Catatan : Anggota elemen dimasukan dari keyboard

2.
Buatlah suatu program untuk menampilkan total elemen per baris dan per kolom.
Contoh :
Input :
2
3
4
5
6
2
1
3
4

Output :
2
3
4
9
5
6
2
13
1
3
4
8
8
12
10



3.
Buatlah suatu program untuk mengecek apakah suatu matrik simetris atau tidak.
Contoh 1 :
Input :
2
3
4
5
6
2
1
3
4
Matrik tidak simetris

Contoh 2 :
Input :
2
5
6
5
1
2
6
2
4
Matrik simetris

Catatan : Suatu matrik akan disebut simetris jika Mij = Mji, jadi satu elemen saja tidak terpenuhi berarti matrik tersebut tidak simetris.

4.
Buatlah program untuk melakukan perhitungan perkalian matrik. Matrik pertama dan Matrik kedua dimasukan dari keyboard, kemudian lakukan operasi perkalian dan kemudian tampilkan hasilnya.

Array pada c++

Posted by irwantav
Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Deklarasi Array 1 Dimensi
tipe nama_var[max_data];
Contoh:
int a[5];
float x[100];
char nama[25];
.
dst.
Cara mengakses data bertipe array
nama_variabel[alamat]
Misal : Array a
27
23
35
46
87
à data yang tersimpan di array
0
1
2
3
4
à alamat array (dimulai dari 0)
a[0] = 27
a[1] = 23
.
.
a[4] = 87
Menginputkan data ke array
Data dapat diinputkan untuk setiap emelen array. Tetapi jika jumlah elemen array banayk, tentunya cara ini tidak efisien. Oleh karena itu dapat digunakan bantuan instruksi perulangan untuk input datanya.
Contoh 1:
#include
#include
main() {
  int a[5];
  cout<<”Data ke 0 = “;cin>>a[0];
  cout<<”Data ke 1 = “;cin>>a[1];
  cout<<”Data ke 2 = “;cin>>a[2];
  cout<<”Data ke 3 = “;cin>>a[3];
  cout<<”Data ke 4 = “;cin>>a[4];
  int jumlah;
  jumlah=a[0]+a[1]+a[2]+a[3]+a[4];
  cout<<”\n\nJumlahnya = “<
  getch();
}
Contoh 2:
#include
#include
main() {
  int a[5];
  int jumlah=0;
  for(int i=0;i<5 i="" p="">
  { cout<<”Data ke “<>a[i];
    jumlah+=a[i];
  }
  cout<<”\n\nJumlahnya = “<
  getch();
}
Tipe array juga dapat digabungkan dengan pointer. Untuk itu kita akan melakukan perubahan pada contoh 3 menjadi sebagai berikut:
Contoh 3:
#include
#include
main() {
  int *a=new int[5];
  int jumlah=0;
  for(int i=0;i<5 i="" p="">
  { cout<<”Data ke “<>a[i];
    jumlah+=a[i];
  }
  cout<<”\n\nJumlahnya = “<
  getch();
}
Perhatikan contoh 3 diatas pada pengaksesan datanya. Jika array dideklarasikan sebagai pointer, maka untuk pengaksesan datanya cukup dituliskan sebagai array. Tetapi kita tetap bisa menuliskannya sebagai pointer tanpa harus menyertakan alamat arraynya. Jika demikian maka data akan diambilkan dari data pertama, atau data pada alamat ke 0.
Sehingga misalkan pada akhir program contoh 3 diatas kita tambahkan instruksi :
cout<<”\nData = “<<*a;
atau instuksi :
cout<<”\nData = “<
akan mempunyai arti yang sama, data akan diambil dari data pertama (alamat 0).
Selain itu untuk input data dan proses penjumlahan, dapat juga dibuat dalam bentuk fungsi seperti pada contoh 4. Perhatikan pada saat tipe array menjadi parameter fungsi, jumlah data yang tersimpan dalam array boleh ditulis boleh tidak (optional). Sehingga bisa ditulis dengan : b[] saja
Contoh 4 :
#include
#include
void input_array(int b[],int n)
{ for(int i=0;i
  { cout<<”Data ke “<>b[i]; }
}
int jumlah(int b[],int n)
{ int hasil=0;
  for(int i=0;i
      hasil+=b[i];
  return hasil;
}
main() {
  int a[100];
  int bd;
  cout<<”Masukkan banyaknya data = “;cin>>bd;
  input_array(a,bd);
  cout<<”\n\nJumlahnya = “<
  getch();
}
Penggunaan array 1D untuk sorting data
Pada proses berikut ingin akan diurutkan n data yang tersimpan di array dengan metode Bubble Sort.
Contoh 5:
#include
#include
void masukan(int a[],int n)
{
  for(int i=0;i
  { cout<<”Data ke “<
      cin>>a[i];
      }
 }
void urutkan(int a[], int n)
{ int temp;
  for(int i=0;i
  for(int j=0;j<(n-i);j++)
  if (a[j]>a[j+1])
          {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
            }
  }
void tampil(int a[], int n)
{
  for(int i=0;i
      cout<
 }
main() {
  int a[100];
  int jml;
  cout<<”Banyak data = “;cin>>jml;
  masukan(a,jml);
  urutkan(a,jml);
  cout<<”\n\nSetelah diurutkan “;
  tampil(a,jml);
  getch();
}
Pada contoh program diatas ada tiga fungsi, fungsi pertama digunakan untuk menginputkan data ke dalam array, fungsi kedua untuk mengurutkan arraynya, dan fungsi ketiga untuk menampilkan data yang tersimpan di array ke layar.
Array 2 Dimensi
Contoh deklarasi :
int a[4][5];

0
1
2
3

0
25
40
26
12

1
6
8
12
5

2
1
3
8
9

3
15
22
13
19

4
0
5
7
15







Mengakses data :
a[0][0] = 25
a[0][1] = 40
.
.
dst
Penggunaan array 2D untuk menjumlahkan dua matrik
Matrik asal adalah a dan b, dijumlahkan dan hasilnya disimpan di matrik c. Syarat agar matrik dapat dijumlahkan adalah keduanya mempunyai ukuran yang sama.
Baris matrik 1 = Baris matrik 2
Kolom matrik 1 = Kolom matrik 2
Contoh 6:
#include
#include
void masukan(int a[10][10],int b,int k)

Tidak ada komentar:

Posting Komentar

novi

novi