Pages

7/31/13

Contoh Program Pointer C++

#include <iostream>

using namespace std;

int main ()
{
   int  var1;
   char var2[10];

   cout << "Address of var1 variable: ";
   cout << &var1 << endl;

   cout << "Address of var2 variable: ";
   cout << &var2 << endl;

   return 0;
}

Contoh Program Menghitung Bulan C++

#include<iostream.h>
#include<string.h>
main()
{
char nm[20],pw[10],hr[10],bln[10];
cout<<"user name : ";cin>>nm;
cout<<"password  : ";cin>>pw;
if ((strcmp(nm,"syamsir")==0) && (strcmp(pw,"1234")==0))

{    cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
     cout<<"| | | | | | | | | | | | | | | |  STRUKTUR DATA   | | | | | | | | | | | | | | | |"<<endl;
     cout<<"| | | | | | | | | | | | | | | | Menghitung Bulan | | | | | | | | | | | | | | | |"<<endl;
     cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;

cout<<"^_^Nama Bulan^_^    : ";cin>>hr;
cout<<"^_^Angka Bulan^_^   : ";cin>>bln;

if (strcmp(hr,"Januari")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 1 "<<endl;
if (strcmp(bln,"1")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Januari "<<endl;

if (strcmp(hr,"Februari")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 2 "<<endl;
if (strcmp(bln,"2")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Februari "<<endl;

if (strcmp(hr,"Maret")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 3 "<<endl;
if (strcmp(bln,"3")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Maret "<<endl;

if (strcmp(hr,"April")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 4 "<<endl;
if (strcmp(bln,"4")==0)
    cout<<"Hasil Dari Angka Bulan ->    : April "<<endl;

if (strcmp(hr,"Mei")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 5 "<<endl;
if (strcmp(bln,"5")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Mei "<<endl;

if (strcmp(hr,"Juni")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 6 "<<endl;
if (strcmp(bln,"6")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Juni "<<endl;

if (strcmp(hr,"Juli")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 7 "<<endl;
if (strcmp(bln,"7")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Juli "<<endl;

if (strcmp(hr,"Agustus")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 8 "<<endl;
if (strcmp(bln,"8")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Agustus "<<endl;

if (strcmp(hr,"September")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 9 "<<endl;
if (strcmp(bln,"9")==0)
    cout<<"Hasil Dari Angka Bulan ->    : September "<<endl;

if (strcmp(hr,"Oktober")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 10 "<<endl;
if (strcmp(bln,"10")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Oktober "<<endl;

if (strcmp(hr,"November")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 11 "<<endl;
if (strcmp(bln,"11")==0)
    cout<<"Hasil Dari Angka Bulan ->    : November "<<endl;

if (strcmp(hr,"Desember")==0)
    cout<<"Hasil Dari Nama Bulan ->     : 12 "<<endl;
if (strcmp(bln,"12")==0)
    cout<<"Hasil Dari Angka Bulan ->    : Desember "<<endl;

}

else
    cout<<"SALAH"<<endl;

}

Pengertian STACK



STACK

1. DEFINISI STACK
Stack merupakan suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data yang lain. Dimana kita dapat menambah (menyisip) data, dan mengambil (menghapus) data lewat ujung yang sama, yang disebut sebagai ujung atas tumpukan (top of stack).

Stack bersifat LIFO (Last In First Out), yang berarti data yang terakhir masuk ke dalam stack akan menjadi data pertama yang dikeluarkan dari stack. Secara sederhana sebuah stack dapat kita ilustrasikan.

2. OPERASI ATAU FUNGSI STACK
Ada enam jenis operasi atau fungsi pada stack, yaitu:
a. Create, digunakan untuk membuat stack baru.
b. Push, digunakan untuk menambahkan elemen pada urutan terakhir.
c. Pop, digunakan untuk mengambil elemen stack pada tumpukan paling atas.
d. Clear, digunakan untuk mengosongkan stack.
e. Print, digunakan untuk menampilkan semua elemen-elemen stack.
f. IsEmpety, digunakan untuk mengecek apakah stack dalam keadaan kosong.
g. IsFull, digunakan untuk memeriksa apakah stack sudah penuh.

3. PENDEKLARASIAN STACK
Proses pendeklarasian stack adalah proses pembuatan struktur stack dalam memori. Karena stack dapat direpresentasikan menggunakan array maka suatu stack memiliki beberapa bagian yaitu:
a. Top yang menunjuk posisi data terakhir.
b. Elemen yang berisi data yang ada dalam stack. Bagian inilah yang berbentuk array.
c. Maks_elemen yaitu variabel yang menunjuk maksimal banyaknya elemen dalam stack.
Contoh pendeklarasian dalam bahasa C adalah:


4. OPERASI-OPERASI STACK SECARA LENGKAP
a. Operasi Push
Operasi push adalah operasi dasar dari stack. Operasi ini berguna untuk menambah suatu elemen data baru pada stack dan disimpan pada posisi top yang akan mengakibatkan posisi top akan berubah. Langkah operasi ini adalah:
Ø Periksa apakah stack penuh (isfull). Jika bernilai false/0 (tidak penuh) maka proses push dilaksanakan dan jika pemeriksaan ini bernilai true/1 (stack penuh), maka proses push digagalkan.
Ø Proses push-nya sendiri adalah dengan menambah field top dengan 1, kemudian elemen pada posisi top diisi dengan elemen data baru.


b. Operasi Pop
Operasi pop adalah salah satu operasi paling dasar dari stack. Operasi ini berguna untuk mengambil elemen terakhir (top) dan kemudian menghapus elemen tersebut sehingga posisi top akan berpindah. Operasi ini biasanya dibuat dalam bentuk function yang me-return-kan nilai sesuai data yang ada di top.
Langkah operasi pop pada stack yang menggunakan array adalah terlebih dahulu memeriksa apakah stack sedang keadaan kosong, jika tidak kosong maka data diambil pada posisi yang ditunjuk oleh posisi top, kemudian simpan dalam variable baru dengan nama data, kemudian posisi top -1, kemudian nilai pada variable data di-return-kan ke function.
Implementasi dalam bahasa C adalah:

c. Operasi Isempty
Operasi ini digunakan untuk memeriksa apakah stack dalam keadaan kosong. Operasi ini penting dilakukan dalam proses pop. Ketika suatu stack dalam keadaan kosong, maka proses pop tidak bisa dilakukan.
Operasi ini dilakukan hanya dengan memeriksa field top. Jika top bernilai 0 (untuk elemen yang dimulai dengan index 1) atau top bernilai -1 (untuk elemen yang dimulai dengan index 0), maka berarti stack dalam keadaan empty (kosong) yang akan me-return-kan true (1) dan jika tidak berarti stack mempunyai isi dan me-return-kan nilai false (0).
Implementasi dalam bahasa C adalah:

d. Operasi Isfull
Operasi ini berguna untuk memeriksa keadaan stack apakah sudah penuh atau belum. Operasi ini akan menghasilkan nilai true (1) jika stack telah penuh dan akan menghasilkan nilai false (0) jika stack masih bisa ditambah.
Operasi ini akan memberikan nilai true (1) jika field top sama dengan field maks_elemen (untuk array yang elemennya dimulai dari posisi 1) atau top sama dengan maks_elemen-1 (unauk array yang elemennya dimulai dari posisi 0).
Implementasinya dalam bahasa C adalah :

5. Aplikasi Stack
Suatu perhitungan aritmatika biasanya berhubungan dengan operand dan operator. Operand merupakan suatu karakter atau elemen yang nilainya dioperasikan dengan bantuan suatu operator untuik menghasilkan suatu solusi.
Misalkan jika diberikan suatu ekspresi aritmatika 2*3, maka elemen ‘dua’ dan elemen ‘tiga’ merupakan operand dari ekspresi tersebut dan elemen ‘*’ merupakan operator perkalian atas dua operand yang menghasilkan suatu solusi. Suatu ekspresi aritmatika dapat dibedakan dalam tiga bentuk notasi perhitungan yaitu :
1) Notasi prefix, jika operator ditempatkan sebelum dua operand
2) Notasi infix, jika operator ditempatkan diantara dua operand
3) Notasi postfix, jika operator ditempatkan setelah dua operand
Dalam penggunaannya di kehidupan sehari-hari, notasi infix merupakan notasi aritmatika yang paling banyak digunakan untuk mengekspresikan suatu perhitungan artimatik dibanding dengan dua notasi yang lain, akan tetapi notasi postfix merupakan notasi yang digunakan oleh mesin kompilasi pada komputer dengan maksud untuk mempermudah proses pengkodean, sehingga mesin kompilasi membutuhkan stack untuk proses translasi ekspresi tersebut.
Berdasarkan teori yang diterangkan tersebut di atas, proses konversi infix menjadi notasi postfix dalam implementasinya membutuhkan stack pada proses konversinya, adapun proses tersebut memiliki 4 (empat) aturan yang digunakan, yaitu :
1) Jika ditemukan simbol kurung buka “(“, maka operasi push pada stack akan digunakan untuk menyimpan simbol tersebut ke dalam stack.
2) Jika ditemukan simbol kurung buka “)”, operasi pop digunakan untuk mengeluarkan operator-operator yang berada di dalam stack.
3) Jika terdapat simbol operator, maka operasi yang dilakukan pada stack terbagi atas:
a. Jika TOP(S) dari stack tersebut kosong atau berisi simbol “(“ maka operasi push akan digunakan untuk memasukan operator tersebut pada posisi di TOP(S).
b. Jika operator yang berada dipuncak stack merupakan elemen yang memiliki tingkat yang sama atau lebih tinggi maka operasi pop digunakan untuk mengeluarkan operator tersebut diikuti operasi push untuk menyimpan operator hasil scanning untai.
c. Jika operator yang berada di puncak stack memiliki tingkat yang lebih rendah dari operator yang discan, maka operator baru akan langsung dimasukan ke dalam stack dengan operasi push.
Adapun tingkatan operator yang dilacak menurut urutan tingkat adalah:
Tabel 1. Level Operator dalam Stack
Operator Level Operator
** Tinggi
* atau / Menengah
+ atau - Rendah

1. Notasi Prefix
Seorang ahli matematika “Jan Lukasiewicz“ mengembangkan satu cara penulisan ungkapan numeris yang selanjutnya disebut “Notasi Polish“ atau “Notasi Prefix” yang artinya: operator ditulis sebelum kedua operand yang akan disajikan.
Contoh notasi prefix dari notasi infix:
Infix Prefix
A + B + A B
A + B – C - + A B C
( A + B ) * ( C – D ) * + A B – C D
A – B / ( C * D $ E ) - - -

Secara sederhana, proses konversi dari infix menjadi prefix sebagai berikut:
1. Ungkapan yang akan dikonversikan adalah ( A + B ) * ( C – D ).
2. Dengan menggunakan tanda kurung bantuan, ungkapan diatas kita ubah menjadi: [ + A B ] * [ - C D ]
3. Jika [ + A B ] kita misalkan P, dan [ - C D ] kita misalkan Q maka ungkapan di atas bisa ditulis sebagai berikut: P * Q
4. Selanjutnya notasi infix dirubah menjadi prefix: * P Q
5. Dengan mengembalikan P dan Q pada notasinya semula dan menghapus tanda kurung bantuan, kita peroleh notasi prefix dari persamaan ( A + B ) * ( C – D ) yaitu: * + A B – C D
Contoh:
1. A + B * C
B * C = * B C ..... P
C * P = * C P ..... Q
Algoritma Infix Ke Prefix:
Langkah 0:- Baca ungkapan dalam notasi infix, misalnya S;
- Tentukan panjang ungkapan tersebut, misalnya N;
- Siapkan sebuah tumpukan kosong dan siapkan derajat masing-masing operator. Misalnya: $ berderajat 3, * dan / berderajat 2, + dan – berderajat 1 dan (berderajat 0).
Langkah 1:
Dimulai dari I : N sampai 1, kerjakan langkah-langkah berikut :
a. R = S ( I )
b. Test nilai R. Jika R adalah:
- Operand : Langsung ditulis
- Kurung buka : Pop dan tulis semua isi tumpukan sampai ujung tumpukan = ‘)‘, pop juga tanda ini tetapi tidak perlu ditulis.
- Kurung tutup : Push kedalam tumpukan
- Operator : Jika tumpukan kosong, atau derajat R lebih tinggi
dibanding derajat ujung tumpukan, push operator
ke dalam tumpukan. Jika tidak pop ujung tumpukan dan tulis, kemudian ulangi perbandingan R dengan ujung tumpukan, lalu R di push.
Catatan: Kurung tutup di dalam tumpukan dianggap mempunyai derajat yang lebih rendah dibanding R.
Langkah 2: Jika akhir notasi infix telah tercapai dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya.

Contoh:
1. A + B * C
Proses Ke- Karakter Dibaca Isi Stack Karakter Tercetak Notasi Prefix Terbentuk
1. C C C
2. * *
3. B * B BC
4. + + * *BC
5. A + A A*BC
6. + +A*BC

2. Notasi Infix
Salah satu pemanfaatan tumpukan adalah untuk menulis ungkapan menggunakan notasi tertentu. Dalam penulisan ungkapan khususnya ungkapan numeris, kita selalu menggunakan tanda kurung untuk mengelompokkan bagian mana yang harus dikerjakan lebih dahulu.
Contoh :
1. ( A + B ) * ( C – D )
Suku ( A + B ) akan dikerjakan lebih dahulu, kemudian suku ( C – D ) dan terakhir mengalikan hasil yang diperoleh dari 2 suku ini.
2. A + B * C – D
Maka B * C akan dikerjakan lebih dahulu diikuti yang lain.
Dalam hal ini pemakaian tanda kurung akan sangat mempengaruhi hasil akhir. Cara penulisan ungkapan sering disebut dengan “Notasi Infix” artinya operator ditulis diantara 2 operand.
3. Notasi Postfix
Notasi lain yang merupakan kebalikan notasi prefix adalah “Notasi Postfix” atau lebih dikenal dengan Notasi Polish Terbalik (Reverse Polish Notation atau RPN). Dalam hal ini operator ditulis sesudah operand. Sama halnya dengan notasi prefix disini juga diperlukan tanda kurung pengelompokan.
Proses notasi dari infix ke postfix adalah :
1. Ungkapan yang akan dikonversikan adalah: (A + B ) * ( C – D ).
2. Dengan menggunakan tanda kurung bantuan, ungkapan diatas diubah menjadi: [ A B + ] * [ C D - ]
3. Jika [ A B + ] kita misalkan P, dan [ C D - ] kita misalkan Q, maka ungkapan diatas dapat ditulis: P * Q
4. Selanjutnya notasi infix dirubah menjadi postfix yaitu: P Q *
5. Dengan mengembalikan P dan Q paada notasinya semula dan menghapus tanda kurung bantuan kita peroleh notasi postfix dari persamaan:
( A + B ) * ( C - D ) yaitu A B + C D - *
Contoh notasi infix ke postfix:
Infix Postfix
A + B – C A B + C –
( A + B ) * ( C – D ) A B + C D - *
A – B / ( C * D $ E ) - - -

Contoh soal:
1. A – B / ( C * D $ E )
D $ E = D E $ .... P
C * P = C P * .... Q
B / Q = B Q / .... R
A – R = A R –
= A B Q / -
= A B C P * / -
= A B C D E $ * / -


Algoritma Infix Ke Postfix:
Langkah 0:- Baca ungkapan dalam notasi infix, misalnya S;
- Tentukan panjang ungkapan tersebut, misalnya N;
- Siapkan sebuah tumpukan kosong dan siapkan derajat masing-masing operator. Misalnya: $ berderajat 3, * dan / berderajat 2, + dan – berderajat 1 dan (berderajat 0).
Langkah 1:
Dimulai dari I : 1 sampai N, kerjakan langkah-langkah berikut:
a. R = S ( I )
b. Test nilai R . Jika R adalah:
- Operand : Langsung ditulis
- Kurung buka : Push kedalam tumpukan
- Kurung tutup : Pop dan tulis semua isi tumpukan sampai ‘(‘, pop juga tanda ini tetapi tidak perlu ditulis
- Operator : Jika tumpukan kosong, atau derajat R lebih tinggi
dibanding derajat ujung tumpukan, push operator ke dalam tumpukan. Jika tidak pop ujung tumpukan dan tulis, kemudian ulangi perbandingan R dengan ujung tumpukan, lalu R di push.
Catatan: Kurung buka di dalam tumpukan dianggap mempunyai derajat yang lebih rendah dibanding R.
Langkah 2: Jika akhir notasi infix telah tercapai dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya.
Contoh:
1. A + B * C
Proses ke- Karakter Dibaca Isi Stack Karakter Tercetak Notasi Postfix Terbentuk
1. A A A
2. + +
3. B + B AB
4. * *+
5. C *+ C ABC
6. + * ABC*
7. + ABC*+

Pengertian ARRAY



ARRAY


Array adalah kumpulan data bertipe sama yang menggunakan nama sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku.

Array dapat dibedakan menjadi :
1. Array berdimensi satu
2. Array berdimensi dua
3. Array berdimensi tiga

Array Berdimensi Satu

      Contoh array berdimensi satu, misalnya menginputkan 5 buah data temperatur. Dan kelima data tersebut disimpan pada array bernama suhu.

Contoh 1 :
#include
#include

void main()
{
float suhu[5];
// array dengan 5 elemen bertipe float
// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl;
for (int i=0; i<5; i++)
{
cout << i + 1 << " : "; cin >> suhu[i];
}

// Menampilkan isi array ke layar
cout << "Data suhu yang dimasukkan : " << endl;
for (i=0; i<5; i++)
cout << suhu[i] << endl;
}
Mendefinisikan array
Float suhu[5]; float : Tipe elemen array suhu : Nama array [5] : Jumlah elemen array Maka array suhu dapat menyimpan data sebanyak 5 buah.
2 Subscript dari array selalu dimulai dari nol. Misal, jika jumlah elemen array [5], maka index dari array tersebut yaitu 0, 1, 2, 3, 4. 2 Mengakses elemen array Setelah suatu array didefinisikan, elemen array dapat diakses dengan bentuk : suhu[i] menyatakan “elemen suhu dengan subscript sama dengan i” Perintah seperti cin >> suhu[i]; berarti “membaca data dari keyboard dan meletakkan ke elemen nomor i pada array suhu”.
Perintah seperti cout >> suhu[i]; berarti “menampilkan elemen bernomor i pada array suhu”.


Contoh 2 :
#include
#include

const int jum_data = 5;
void main()
{
float suhu[jum_data]; // array suhu
float total; // untuk menampung total suhu

// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl; for (int i=0; i<5; i++) { cout << i + 1 << " : "; cin >> suhu[i];
}
// Menghitung nilai rata-rata
total = 0; // Mula-mula diisi dengan nol
for(i=0; i<< "Suhu rata-rata= " << total/jum_data << endl; }
2 Memberikan nilai awal terhadap array Seperti halnya variabel biasa, array juga dapat diberi nilai awal (diinisialisasikan) pada saat didefinisikan. Misalnya: int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Catatan: C++ secara otomatis akan memberikan nilai awal nol terhadap array yang bersifat global. Jika bersifat lokal, maka harus diatur terlebih dahulu. Contoh 3 : #include
#include
#include

void main()
{
// Pendefinisian array jum_hari dan pemberian nilai awal
int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// Tampilkan isi jum_hari
cout << "Masukkan 5 buah data suhu" << endl; for (int i=0; i<12; i++) { cout << "jum_hari[" << i << "] =" << jum_hari[i] << endl; } } Array Berdimensi Dua Sebagai gambaran, data kelulusan dari jurusan Teknik Informatika, Manajemen Informatika, dan Teknik Komputer dari tahun 1992 hingga 1995. Nama 1992 1993 1994 1995 Teknik Informatika 35 45 80 120 Manajemen Informatika 100 110 70 101 Teknik Komputer 10 15 20 17
2 Mendefinisikan array berdimensi dua Bentuk diatas dapat dibentuk dalam array berdimensi dua, pendefinisiannya : int nilai[3][4]; Pada pendefinisian di atas : - 3 menyatakan jumlah baris (mewakili nama) - 4 menyatakan jumlah kolom (mewakili nilai) 2 Mengakses array berdimensi dua Masing-masing elemen di dalam array berdimensi dua dapat diakses dengan bentuk : Baris dan kolom dimulai dari 0. Contoh pengaksesan elemen array berdimensi dua : 1. data_lulus[1][2] = 5; Merupakan instruksi untuk memberikan nilai 5 ke baris 1 kolom 2. 2. cout << data_lulus[1][2]; Merupakan perintah untuk menampilkan elemen data_lulus dengan subscript pertama (baris) berupa 1 dan subscript kedua (kolom) bernilai 2. Contoh 4 : #include
#include

void main()
{
int data_lulus[3][4]; // Array berdimensi dua
int tahun, jurusan;

// Memberikan data ke elemen array data_lulus
data_lulus[0][0] = 35; // TI - 1992
data_lulus[0][1] = 45; // TI - 1993
data_lulus[0][2] = 90; // TI - 1994
data_lulus[0][3] = 120; // TI - 1995
data_lulus[1][0] = 100; // MI - 1992
data_lulus[1][1] = 110; // MI - 1993
data_lulus[1][2] = 70; // MI - 1994
data_lulus[1][3] = 101; // MI - 1995
data_lulus[2][0] = 10; // TK - 1992
data_lulus[2][1] = 15; // TK - 1993
data_lulus[2][2] = 20; // TK - 1994
data_lulus[2][3] = 17; // TK - 1995

// Proses untuk memperoleh informasi kelulusan
while(1)
{
cout << "Jurusan (0 = TI, 1 = MI, 2 = TK): "; cin >> jurusan;
if ((jurusan==0) || (jurusan==1) || (jurusan==2))
break; // keluar dari while
}
while(1)
{
cout << "Tahun (1992 - 1995): "; cin >> tahun;

if ((tahun >= 1992) && (tahun <= 1995)) { tahun -= 1992; // konversi ke 0, 1, 2 atau 3 break; // keluar dari while } } cout << "Jumlah yang lulus = " << data_lulus[jurusan][tahun] << endl; } Melewatkan Array Sebagai Argumen Fungsi
2 Array juga dapat berkedudukan sebagai parameter di dalam fungsi. Misalnya : const int MAKS = 5 int data[MAKS]; Dari data di atas, fungsi yang menerima array di atas dapat dibuat prototipe-nya sebagai berikut : void inisialisasi_data(data[MAKS]); Dan deklarasi fungsi sebagai berikut : void inisialisasi_data(data[], int & jumlah); Pada contoh kedua, tanda di dalam tanda [ ] tidak terdapat apa-apa dan parameter kedua digunakan untuk menyatakan jumlah elemen array serta berkedudukan sebagai referensi (bisa diubah dari dalam fungsi inisialisasi_data()). Contoh 5 : #include
#include
#include
#include

const int MAKS = 100;
void inisialisasi_data(int data[], int &jumlah);
void main()
{
int data_acak[MAKS]; // array berdimensi satu
int jumlah;
inisialisasi_data(data_acak, jumlah);

// Tampilkan elemen-elemen array
cout << "Isi array : " << endl; for(int i=0; i<< data_acak[i] << endl; } // Definisi fungsi void inisialisasi_data(int data[], int &jumlah) { while(1) { cout << "Berapa jumlah data yang ingin" << endl; cout << "dibangkitkan secara acak (5 - 100) ? "; cin >> jumlah;

if ((jumlah >= 5) && (jumlah<=100)) break; } randomize(); // Menyetel pembangkit bilangan acak for(int i=0; i
#include
#include

const int BARIS = 5;
const int KOLOM = 5;
void isi_matriks(float mat[][KOLOM], int &brs, int &kol);

void main()
{
float matriks[BARIS][KOLOM];
int jum_baris, jum_kolom;
int i,j;

isi_matriks(matriks, jum_baris, jum_kolom);
cout << "\nMatriks yang terbentuk: " << endl; cout << setiosflags(ios::fixed); // ios::fixed --> mengatur angka yg dimasukkan dalam bentuk angka biasa
// bukan dalam bentuk eksponen
for (i=0; i<< setw(12) << setprecision(5) << matriks[i][j]; // setprecision(5) --> mengatur banyak angka dibelakang koma
cout << endl; } } // Definisi Fungsi void isi_matriks(float mat[][KOLOM], int &brs, int &kol) { int i,j; cout << "Pastikan jumlah baris dan kolom" << endl; cout << "tidak melebihi 5" << endl; cout << "Jumlah baris = "; cin >> brs;
cout << "Jumlah kolom = "; cin >> kol;
for (i=0; i< brs; i++) for (j=0; j<< "Elemen " << i << ", " << j << " = "; cin >> mat[i][j];
}
}

2 Mengurutkan Data
Salah satu mengurutkan data adalah dengan menggunakan bubble sort. Pengurutan dilakukan dengan membandingkan setiap elemen dengan seluruh elemen yang terletak sesudah posisinya.

Contoh 7 :
#include
#include
#include

void main()
{
int i, j, tmp, jumdata;
int data[] = {5, 100, 20, 31, 77, 88, 99, 20, 55, 1};
jumdata = sizeof(data)/sizeof(int);

// Menampilkan data
cout << "Data semula: " << endl; for(i=0; i<< setw(4) << data[i]; cout << endl; // Pindah baris // Mengurutkan data for(i=0; i data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}

// Menampilkan data
cout << "Data setelah diurutkan: " << endl;
for (i=0; i
cout << setw(4) << data[i];
cout << endl; // Pindah baris
}

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cheap international voip calls