Anda di halaman 1dari 43

TIPE ARRAY

DEFINISI ARRAY
Array adalah tipe data yang dapat menampung sejumlah elemen dengan tipe yang sama. Pengaksesan
elemen array dapat dilakukan dengan menyebutkan nama array dan indeks atau nomor elemennya.
Dalam pemrograman array dapat dibedakan menjadi array berdimensi satu dan array berdimensi
banyak.

ARRAY BERDIMENSI SATU


Array berdimensi satu adalah array yang memiliki satu tipe indek atau satu nomor subscript.
Pendefinisian Tipe Array
Dalam C++
Bentuk :
tipe_data nama_variabel_array[jumlah_elemen_array];

Contoh :
int nilai[5];
didefnisikan sebuah variabel array dengan nama nilai yang mempunyai lima buah elemen.
Penggambaran elemen array :

Gambar Gambaran array dimensi satu dalam C++


Dalam C++ nomor elemen dari array selalu diawali dengan 0 (nol). Penomoran elemen diberikan secara
otomatis oleh C++, sehingga yang kita berikan pada saat pendefinisian array hanya jumlah elemennya
saja.
Operasi Pada Array
nilai[0] = 10;
Memasukkan data 10 pada array nilai nomor elemen 0.

Gambar Memberikan data pada nomor elemen 0


nilai[3] = nilai[0];
memasukkan data pada array nilai nomor elemen 3 dengan data yang ada pada array nilai nomor
elemen 0.

Gambar Memberikan data pada nomor elemen 3


Untuk menampilkan data :
cout<<nilai[0]; //10

1
cout<<nilai[3]; //10
Contoh program :
Algoritmik

Pseudocode Input_Data_Array
// Akan dimasukkan 5 data dalam array dan mencetaknya

//DEKLARASI
int nilai[5]

//DESKRIPSI
{
//membaca data
read(nilai[1])
read(nilai[2])
read(nilai[3])
read(nilai[4])
read(nilai[5])

//menampilkan data
write(nilai[1])
write(nilai[2])
write(nilai[3])
write(nilai[4])
write(nilai[5])
}

Program

/*
contoh program array dimensi satu
*/

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

void main()
{
clrscr(); //menghapus layar
int nilai[5];

cout<<"Masukkan lima data nilai"<<endl;


cout<<"========================"<<endl;
cout<<"Nilai 1 : ";
cin>>nilai[0];
cout<<"Nilai 2 : ";
cin>>nilai[1];
cout<<"Nilai 3 : ";
cin>>nilai[2];
cout<<"Nilai 4 : ";
cin>>nilai[3];
cout<<"Nilai 5 : ";
cin>>nilai[4];
cout<<endl;

cout<<"Data nilai yang anda masukkan"<<endl;


cout<<"1 2 3 4 5"<<endl;
cout<<"============================="<<endl;
cout<<nilai[0]<<" ";
cout<<nilai[1]<<" ";
cout<<nilai[2]<<" ";
cout<<nilai[3]<<" ";
cout<<nilai[4]<<" "<<endl;
getch();
}

2
Hasil eksekusi :

Masukkan lima data nilai


========================
Nilai 1 : 89
Nilai 2 : 90
Nilai 3 : 75
Nilai 4 : 55
Nilai 5 : 95

Data nilai yang anda masukkan


1 2 3 4 5
=============================
89 90 75 55 95

Dalam pengisian data ke dalam elemen array secara berulang dapat dilakukan dengan for. Contoh
program diatas akan diganti pemasukkan datanya dengan menggunakan for :
Algoritmik

Pseudocode Input_Data_Array_dengan_for
// Akan dimasukkan 5 data dalam array dan mencetaknya

//DEKLARASI
int i;
int nilai[5]

//DESKRIPSI
{
//membaca data
for(i=0;i<5;i++)
read(nilai[i])

//menampilkan data
for(i=0;i<5;i++)
write(nilai[3])
}

Program

/*
contoh program array dimensi satu dengan for
*/

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

void main()
{
clrscr(); //menghapus layar
int nilai[5];

cout<<"Masukkan lima data nilai"<<endl;


cout<<"========================"<<endl;
for (int i = 0; i < 5; i++)
{
cout<<"Nilai ke "<<(i+1)<<" : ";
cin>>nilai[i];
}

cout<<endl;
cout<<"Data nilai yang anda masukkan"<<endl;

3
cout<<"1 2 3 4 5"<<endl;
cout<<"============================="<<endl;
for (int i = 0; i < 5; i++)
{
cout<<nilai[i]<<" ";
}
getch();
}

Contoh program mencari nilai terbesar dan nilai terkecil dari sejumlah data yang dimasukkan dalam
variabel array.
#include <iostream.h>
#include <conio.h>

void main()
{
int jum;
int nilai[20];
cout<<"Jumlah data : ";
cin>>jum;

for (int i=0;i<jum;i++)


{
cout<<"Data ke - "<<(i+1)<<" : ";
cin>>nilai[i];
}

//nilai pertama array dianggap sebagai


//data terkecilk dan data terbesar

int min;
min=nilai[0];
int maks;
maks = nilai[0];

for(int i=0;i<jum;i++)
{
if (nilai[i] < min)
min = nilai[i];
if (nilai[i] > maks)
maks = nilai[i];
}

cout<<"Nilai Terkecil : "<<min<<endl;


cout<<"Nilai Terbesar : "<<maks<<endl;
getch();
}

Hasil Eksekusi :
Jumlah data : 5
Data ke - 1 : 8
Data ke - 2 : 6
Data ke - 3 : 9
Data ke - 4 : 4
Data ke - 5 : 5
Nilai Terkecil : 4
Nilai Terbesar : 9

4
ARRAY BERDIMENSI BANYAK
Array berdimensi banyak adalah array yang memiliki lebih dari satu tipe indek atau lebih dari satu
nomor subscript, misalnya memiliki dua, tiga dan seterusnya.
Pendefinisian Tipe Array
Dalam C++
Bentuk :
tipe_data nama_variabel_array[jumlah_elemen_baris] [jumlah_elemen_kolom];

Contoh :
int matrik[3][4];
didefnisikan sebuah variabel array dimensi dua dengan nama matrik yang mempunyai 3 elemen baris
dan 4 elemen kolom.
Penggambaran elemen array :

Gambar Gambaran array dimensi 2 dalam C++

Operasi Pada Array


matrik[1][2] = 23;
Memasukkan data 23 pada array matrik baris 1 dan kolom 2.

Gambar Memberikan data pada baris 1, kolom 2

matrik[2][3] = matrik[1][2];
memasukkan data pada array matrik baris 2, kolom 3 dengan data yang ada pada array matrik baris 1,
kolom 2.

Gambar Memberikan data pada baris 2, kolom 3


Untuk menampilkan data :
cout<<matrik[1][2]; //23
cout<<matrik[2][3]; //23

5
contoh program menghitung penjumlahan dua matrik. Syarat penjumlahan dua matrik adalah bahwa
kedua matrik mempunyai ordo yang sama :
#include <iostream.h>
#include <conio.h>
void main()
{
int a[10][10], b[10][10], c[10][10];
int brs,klm;
clrscr();
cout<<"Masukan jumlah Baris : ";
cin>>brs;
cout<<"masukan Jumlah kolom : ";
cin>>klm;
for(int i=0;i<brs;i++) //input matrik A
{
for(int j=0;j<klm;j++)
{
cout<<" Matrik A["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
}
}
for(int i=0;i<brs;i++) //input matrik B
{
for(int j=0;j<klm;j++)
{
cout<<" Matrik B["<<i<<"]["<<j<<"] = ";
cin>>b[i][j];
}
}
for(int i=0;i<brs;i++) //menjumlahkan matrik A dengan B
{
for(int j=0;j<klm;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}

clrscr();
cout<<"Matrik A"<<endl; //menampilkan matrik A
for(int i=0;i<brs;i++)
{
for(int j=0;j<klm;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}

cout<<"\nMatrik B"<<endl; //menampilkan matrik B


for(int i=0;i<brs;i++)
{
for(int j=0;j<klm;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
cout<<"\nMatrik C hasil penjumlahan"<<endl;
for(int i=0;i<brs;i++) //menampilkan matrik C
{
for(int j=0;j<klm;j++)
{
cout<<c[i][j]<<" ";
}
cout<<endl;
}
getch();

6
}
Contoh program menghitung perkalian dua matrik. Syarat perkalian dua matrik adalah bahwa jumlah
baris matrik kedua sama dengan jumlah kolom matrik pertama.
#include <iostream.h>
#include <conio.h>

void main()
{
int a[20][20], b[20][20], c[20][20];
int brsa, klmabrsb, klmb;

cout<<"Baris matrik a : ";


cin>>brsa;
cout<<"Klm mtrik a Brs b : ";
cin>>klmabrsb;
cout<<"Klm matrik b : ";
cin>>klmb;

//input matrik A
cout<<"Masukkan matrik A"<<endl;
for(int i=0;i<brsa;i++)
for(int j=0;j<klmabrsb;j++)
{
cout<<"Matrik A["<<i<<"]["<<j<<"] : ";
cin>>a[i][j];
}

cout<<"Masukkan matrik B"<<endl;


for(int i=0;i<klmabrsb;i++)
for(int j=0;j<klmb;j++)
{
cout<<"Matrik B["<<i<<"]["<<j<<"] : ";
cin>>b[i][j];
}

//perkalian dua matrik


for(int i=0;i<brsa;i++)
for(int j=0;j<klmb;j++)
{
c[i][j]=0;
for(int k=0;k<klmabrsb;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}

clrscr();

7
cout<<"\nIsi matrik A"<<endl;
for(int i=0;i<brsa;i++)
{
for(int j=0;j<klmabrsb;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}

cout<<"\nIsi matrik B"<<endl;


for(int i=0;i<klmabrsb;i++)
{
for(int j=0;j<klmb;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}

cout<<"\nIsi matrik C"<<endl;


for(int i=0;i<brsa;i++)
{
for(int j=0;j<klmb;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
getch();
}

8
STRING
Konstanta string
Konstanta string ditulis dengan awalan dan akhiran tanda petik ganda (“), contoh :
“Tes”
konstanta string diatas disimpan dalam memori secara berurutan dengan susunan :

T e s \0

Pada karakter terakhir terdapat karakter NULL (\0) yang berfungsi sebagai pengakhir string.

Variabel string
Variabel string adalah variabel yang digunakan untuk menyimpan data string. Misalnya :
char nama[20];
merupakan pernyataan untuk mendefinisikan variabel string dengan panjang maksimal 20 (termasuk
NULL). Pernyataan diatas tidak lain digunakan untuk mendefinisikan array bertipe karakter.

Memasukkan data dari keyboard


Untuk memasukkan data dari keyboard digunakan cin, tetapi pada cin yang biasa kita gunakan tidak
dapat digunakan untuk membaca spasi. Untuk mengatasinya dapat kita gunakan fungsi getline().
Contoh program :
#include <iostream.h>
#include <conio.h>

void main()
{
char nama[20];
char alamat[30];
cout<<"Masukkan nama : ";
cin.getline(nama,sizeof(nama));
cout<<"Masukkan alamat : ";
cin.getline(alamat,sizeof(alamat));

cout<<"\nNama anda : "<<nama<<endl;


cout<<"Alamat anda : "<<alamat<<endl;
getch();
}

Hasil eksekusi :
Masukkan nama : Joko Purnomo
Masukkan alamat : Jl. Kaliurang km 10

Nama anda : Joko Purnomo


Alamat anda : Jl. Kaliurang km 10

9
Menyalin string
Menyalin string berbeda dengan menyalin bilangan. Dalam c++ untuk menyalin string digunakan
fungsi strcpy().
Contoh program :
#include <iostream.h>
#include <conio.h>

void main()
{
char teks1[20];
char teks2[30];
cout<<"Masukkan teks 1 : ";
cin.getline(teks1,sizeof(teks1));
strcpy(teks2,teks1);
cout<<"Isi teks 2 : "<<teks2<<endl;
getch();
}

Hasil eksekusi :
Masukkan teks 1 : Tes salin teks
Isi teks 2 : Tes salin teks

toupper() dan tolower()


Fungsi toupper() berguna untuk memperoleh huruf kapital dari suatu huruf kecil, sedangkan tolower()
berguna untuk memperoleh huruf kecil dari suatu huruf kapital.
Contoh :
#include <iostream.h>
#include <conio.h>
#include <ctype.h>

void main()
{
char teks1[20];
char teks2[30];
cout<<"Masukkan huruf kecil : ";
cin.getline(teks1,sizeof(teks1));
for(int i=0;i<teks1[i];i++)
teks1[i]=toupper(teks1[i]);
cout<<"Isi teks 1 : "<<teks1<<endl;
cout<<"MASUKKAN HURUF KAPITAL : ";
cin.getline(teks2,sizeof(teks2));
for(int i=0;i<teks2[i];i++)

10
teks2[i]=tolower(teks2[i]);
cout<<"Isi teks 2 : "<<teks2<<endl;
getch();
}

Hasil eksekusi :
Masukkan huruf kecil : ngetes
Isi teks 1 : NGETES

MASUKKAN HURUF KAPITAL : NYOBA


Isi teks 2 : nyoba

Menghitung panjang string dengan strlen()


Contoh program :
#include <iostream.h>
#include <conio.h>

void main()
{
char teks[50]= "Jangan bersedih, Bajaj pasti berlalu";
cout<<strlen(teks);
getch();
}

Hasil eksekusi :
36

Menggabungkan string dengan strcat()


Contoh program :
#include <iostream.h>
#include <conio.h>

void main()
{
char teks1[30]= "Belajar C++ memang mudah ";
char teks2[30]= "Semudah membalik tank baja";
cout<<strcat(teks1,teks2);
getch();
}

Hasil eksekusi :
Belajar C++ memang mudah Semudah membalik tank baja

11
F U N G S I
Fungsi adalah sebuah blok pernyataan yang berisi sejumlah pernyataan yang dikemas dalam sebuah
nama yang dapat dipanggil beberapa kali dibeberapa tempat dalam program.
Tujuan pembuatan fungsi :
 Memudahkan dalam mengembangkan program, karena program dipecah menjadi program-
program yang lebih kecil.
 Menghemat ukuran program, ini akan terasa kalau ada beberapa deretan instruksi yang sama
digunakan pada beberapa tempat didalam program.
Deklarasi/prototipe fungsi
Deklarasi / prototipe sebuah fungsi berupa :
 Nama fungsi
 Tipe nilai balik fungsi
 Jumlah dan tipe argumen

Format deklarasi untuk fungsi yang menghasilkan nilai balik :

Tipe Nama_fungsi(daftar_parameter);

Format deklarasi untuk fungsi yang tidak menghasilkan nilai balik :

void Nama_fungsi(daftar_parameter);

Definisi fungsi
Setiap fungsi yang dipanggil didalam program harus didefinisikan terlebih dahulu yang letaknya bisa
dimana saja. Khusus untuk fungsi yang disediakan oleh sistem, definisi sebenarnya sudah ada dalam
pustaka yang disebut file header.

Fungsi tanpa Nilai Balik


Adakalanya suatu fungsi tidak perlu memiliki nilai balik. Misalnya fungsi yang hanya dimasudkan
untuk menampilkan suatu keterangan saja. Pada fungsi seperti ini, tipe nilai balik fungsi yang
diperlukan adalah void.
Contoh :
void tampilkan_judul ()
{
cout << “PT. Maju Mundur” << endl;
cout << “Jl. Buntu No. 76” << endl;
cout << “Yogyakarta” << endl;
}
pada contoh fungsi diatas, tidak ada pernyataan return, mengingat fungsi tidak memiliki nilai balik.
Namun penggunaan pernyataan return secara eksplisit juga diperkenankan. Dalam hal ini digunakan
berbentuk :
return

12
Jadi contoh diatas dapat ditulis :
void tampilkan_judul ()
{
cout << “PT. Maju Mundur” << endl;
cout << “Jl. Buntu No. 76” << endl;
cout << “Yogyakarta” << endl;
return;
}

Contoh program :
#include <iostream.h>
#include <conio.h>

//prototipe fungsi
void garis();
void tampilkan_judul();

//fungsi utama
void main()
{
clrscr();
tampilkan_judul();
garis();
getch();
}

//definisi fungsi
void garis()
{
cout<<"=========================="<<endl;
}

void tampilkan_judul ()
{
cout << "PT. Maju Mundur" << endl;
cout << "Jl. Buntu No. 76" << endl;
cout << "Yogyakarta" << endl;
return;
}

Hasil eksekusi :
PT. Maju Mundur
Jl. Buntu No. 76
Yogyakarta
==========================

13
Argumen fungsi
Argumen fungsi adalah nilai bawaan yang akan disertakan saat pemanggilan fungsi.
Contoh :
#include <iostream.h>
#include <conio.h>

void cetak(int jum);

void main()
{
clrscr();
cetak(10);
getch();
}

void cetak(int jum)


{
for(int i = 1; i <= jum; i++)
cout<<i<<". Teks ini tercetak 10 kali"<<endl;
}

Hasil eksekusi :
1. Teks ini tercetak 10 kali
2. Teks ini tercetak 10 kali
3. Teks ini tercetak 10 kali
4. Teks ini tercetak 10 kali
5. Teks ini tercetak 10 kali
6. Teks ini tercetak 10 kali
7. Teks ini tercetak 10 kali
8. Teks ini tercetak 10 kali
9. Teks ini tercetak 10 kali
10. Teks ini tercetak 10 kali

Pada contoh diatas pada fungsi cetak mempunyai argumen fungsi bernama jum bertipe int. Pada
pemanggilan fungsi cetak harus disertai dengan jumlah argumen yang akan diberikan pada saat fungsi
dipanggil.
cetak(10);
Contoh program yang mengandung fungsi untuk mencetak teks ditengah layar dan mencetak teks
pada koordinat tertentu :
#include <iostream.h>
#include <conio.h>
void hapus()
{
clrscr();

14
}
void henti()
{
getch();
}
//prototipe fungsi mencetak pada koordinat tertentu
void cetak(int klm, int brs, char *teks);

//prototipe fungsi mencetak pada tengah layar


void cetakc(int brs, char *teks);

void main()
{
hapus();
cetakc(1,"TULISAN INI TERCETAK DI TENGAH LAYAR");
cetakc(2,"====================================");
cetak(3,4,"Tulisan ini tercetak pada baris 4 kolom 3");
henti();
}

//definisi fungsi
void cetak(int klm, int brs, char *teks)
{
gotoxy(klm,brs);cout<<teks;
}

void cetakc(int brs, char *teks)


{
gotoxy(40-strlen(teks)/2,brs);cout<<teks;
}

Hasil eksekusi :
TULISAN INI TERCETAK DI TENGAH LAYAR
====================================

Tulisan ini tercetak pada baris 4 kolom 3

Lingkup variabel
Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam fungsi. Ada variabel yang
hanya dikenal di suatu fungsi dan tidak dikenal pada fungsi lain. Namun ada juga variabel yang
dapat diakses oleh semua fungsi.

Variabel Otomatis
Variabel yang didefinisikan di dalam suatu fungsi berlaku sebagai variabel lokal bagi fungsi.
Artinya, variabel tersebut hanya dikenal didalam fungsi tempat variabel didefinisikan. Sifat dari
variabel otomatis adalah :
• Variabel akan diciptakan pada saat fungsi dipanggil dan variabel akan sirna pada saat fungsi
berakhir.

15
• Variabel hanya dikenal pada fungsi yang mendefinisikan.
• Inisialisasi oleh pemrogram akan dikerjakan setiap kali fungsi dipanggil

Contoh program :

#include <iostream.h>
#include <conio.h>
void coba(); // Prototipe fungsi
void main()
{
int x = 22; // Variabel lokal pada main()
double y = 2.22;
clrscr();
cout << "Pada fungsi main() : x = " << x
<< " y = " << y << endl;
coba(); // Panggil fungsi alpha
cout << "Pada fungsi main() : x = " << x
<< " y = " << y << endl;
getch();
}

// Definisi fungsi alpha()

void coba()
{
int x = 20; // Variabel lokal pada coba()
double y = 3.14;
cout << "Pada fungsi coba() : x = " << x
<< " y = " << y << endl;
}

Hasil ekseskusi :
Pada main() : x = 22 y = 2.22
Pada coba() : x = 20 y = 3.14
Pada main() : x = 22 y = 2.22

Variabel Eksternal
Variabel eksternal adalah variabel yang didefinisikan diluar fungsi manapun. Variabel ini dikenal
juga sebagai variabel global, sebab variabel ini dikenal disemua fungsi.
Contoh program :

#include <iostream.h>

16
#include <conio.h>
int nilai = 50; // Variabel eksternal
void tambah(); // Prototipe fungsi
void main()
{
clrscr();
cout << nilai << endl;
tambah();
cout << nilai << endl;
tambah();
cout << nilai << endl;
getch();
}
// Definisi fungsi
void tambah ()
{
nilai ++ ; // Variabel eksternal dinaikkan
}

Hasil eksekusi :

50
51
52

Contoh program :

int nilai = 50; // Variabel eksternal


void tambah(); // Prototipe fungsi
void main()
{
clrscr();
cout << nilai << endl;
tambah();
cout << nilai << endl;
tambah();
cout << nilai << endl;
getch();
}
// Definisi fungsi
void tambah ()
{
extern nilai;

17
nilai ++ ; // Variabel eksternal dinaikkan
}

Variabel Statis
Variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu variabel
statis mempunyai sifat :
- Jika variabel lokal berdiri sebagai variabel statis, maka :
- Variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya
- Variabel tidak hilang saat eksekusi fungsi berakhir
- Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan.
- Jika variabel eksternal dijadikan sebagai variabel statis,variabel ini dapat diakses oleh semua file
yang didefinisikan pada file yang sama dengan variabel eksternal tersebut.
Contoh program :

#include <iostream.h>
#include <conio.h>
void saya_ingat(); // Prototipe fungsi
void main()
{
int mana = 50;
clrscr();
saya_ingat();
saya_ingat();
saya_ingat();
cout << " main() : mana = " << mana << endl;
getch();
}
// Pada fungsi berikut
// mana didefinisikan sebagai variabel statis
void saya_ingat()
{
static int mana = 77; // variabel statis
mana ++; // Naikkan sebesar 1
cout << " Saya_ingat () : mana = " << mana << endl;
}

Hasil eksekusi :

Saya_ingat () : mana = 78
Saya_ingat () : mana = 79
Saya_ingat () : mana = 80
main() : mana = 50

18
Fungsi Dengan Nilai Balik
Adalah fungsi yang memberikan nilai balik ke pemanggil fungsi.
Contoh :
// Prototipe funsi
long kuadrat (long l);
-------------------------------------
// Definisi fungsi
long kuadrat(long l)
{
return(l * l);
}
Pernyataan return di dalam fungsi digunakan untuk memberikan nilai balik fungsi. Pada contoh diatas,
fungsi kuadrat() memberikan nilai balik berupa nilai kuadrat dari argumen.
Contoh program :
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>

long kuadrat(long l); // prototipe fungsi

void main()
{
clrscr();
for ( long bil = 200; bil < 2000; bil+= 200 )
cout << setw(8) << bil
<< setw(8) << kuadrat(bil) << endl;
getch();
}

// Definisi fungsi

long kuadrat(long l)
{
return( l * l );
}

Hasil eksekusi :
200 40000
400 160000
600 360000
800 640000
1000 1000000
1200 1440000
1400 1960000
1600 2560000
1800 3240000

19
Contoh program yang mengandung fungsi tanpa nilai balik dan fungsi dengan nilai balik :
#include <iostream.h>
#include <conio.h>
#include <string.h>

void judul();
char tanya();
void isi();
char huruf(float rat);

void cetak(int a, int b, char *tek)


{
gotoxy(b,a);cout<<tek;
}

void cetakc(int a, char *teks)


{
gotoxy(40-((strlen(teks)/2)),a);cout<<teks;
}

void main()
{
judul();
isi();
getch();
}

void judul()
{
cetakc(1,"DAFTAR NILAI");
cetakc(2,"PRODI TEKNIK INFORMATIKA");
cetak(4,4,"=========================================================================");
cetak(5,4,"|");
cetak(5,7,"No");
cetak(5,10,"|");
cetak(5,14,"NIM");
cetak(5,21,"|");
cetak(5,27,"N A M A");
cetak(5,44,"|");
cetak(5,46,"UTS");
cetak(5,50,"|");
cetak(5,52,"UAS");
cetak(5,56,"|");
cetak(5,58,"TUGAS");

20
cetak(5,64,"|");
cetak(5,66,"NILAI HRF");
cetak(5,76,"|");

cetak(6,4,"=========================================================================");
}

void isi()
{
int nim,uts,uas,tugas,tot; char nama[15],maxnm[15],minnm[15];
float rata, maxnil,minnil,ratkelas,totrat;
char jawab;
static int i = 1;
maxnil=0;minnil=100;totrat=0;
do
{
gotoxy(4,6+i);cout<<"|";
gotoxy(7,6+i);cout<<i;
gotoxy(10,6+i);cout<<"|";
gotoxy(12,6+i);cin>>nim;
gotoxy(21,6+i);cout<<"|";
gotoxy(23,6+i);cin>>nama;
gotoxy(44,6+i);cout<<"|";
gotoxy(46,6+i);cin>>uts;
gotoxy(50,6+i);cout<<"|";
gotoxy(52,6+i);cin>>uas;
gotoxy(56,6+i);cout<<"|";
gotoxy(58,6+i);cin>>tugas;
gotoxy(64,6+i);cout<<"|";
tot=uts+uas+tugas;
rata=tot/3;
totrat=totrat+rata;
ratkelas=totrat/i;
if (rata>maxnil)
{
maxnil=rata;
strcpy(maxnm,nama);
}
if (rata<minnil)
{
minnil=rata;
strcpy(minnm,nama);
}
gotoxy(69,6+i);cout<<huruf(rata);
gotoxy(76,6+i);cout<<"|";
jawab=tanya();

21
if (jawab=='t')
{
gotoxy(4,7+i);

cout<<"======================================================================
===";
gotoxy(4,8+i);cout<<"Jumlah data : "<<i;
gotoxy(4,9+i);cout<<"Rata kelas : "<<ratkelas;
gotoxy(4,10+i);cout<<"Nilai tertinggi : "<<maxnil;
gotoxy(30,10+i);cout<<"Nama : "<<maxnm;
gotoxy(4,11+i);cout<<"Nilai terendah : "<<minnil;
gotoxy(30,11+i);cout<<"Nama : "<<minnm;
}
i++;
}while(jawab!='t');
}
char tanya()
{
char jw;
cetak(3,20,"Input data lagi[Y/T]? : ");
cin>>jw;
gotoxy(20,3);clreol();
return(jw);
}
char huruf(float rat)
{
if (rat>80)
return('A');
else if (rat>70)
return('B');
else if (rat>60)
return('C');
else if (rat>50)
return('D');
else
return('E');
}

Operator Resolusi Lingkup


Pada C++ terdapat operator dua buah tanda titik dua ( :: ). Operator ini disebut operator resolusi
lingkup (scope resolution). Kegunaanya untuk mengakses variabel yang didefinisikan diluar suatu fungsi.
Contoh program :

#include <iostream.h>

22
#include <conio.h>
int x = 50; // Variabel eksternal
void main()
{
double x; // Definisi variabel lokal
clrscr();
x = 5.678901234; // Variabel lokal yang diberi nilai
cout << x << " " << ::x << endl;
::x = 77; // Variabel eksternal yang diberi nilai
cout << x << " " << ::x << endl;
getch();
}

Hasil eksekusi :

5.6789 50
5.6789 77

Referensi
Referensi digunakan untuk memberikan nama alias dari variabel. Bentuk pendeklarasiannya :
int &ref = nama_variable ;

Tanda & mengawali nama referensi.


Setelah pendeklarasian seperti diatas, ref menjadi nama alias dari nama_variabel. Penggubahan nilai
terhadap nama_variabel dapat dilakukan melalui nama_variabel itu sendiri atau melalui referensi ref,
sebagaimana dapat dilihat pada contoh dibawah ini.
Contoh program :

#include <iostream.h>
#include <conio.h>
void main()
{
int i ;
int &r = i; // Deklarasi referensi
clrscr();
i =10;
cout << "i = " << i << endl;
cout << "r = " << r << endl;
r = 55;

cout << "i = " << i << endl;


cout << "r = " << r << endl;

23
getch();
}

Hasil eksekusi :

i = 10
r = 1
i = 10
r = 55

Tampak bahwa pengubahan nilai terhadap i maupun r memberikan efek sama.


Operator juga bekerja pada suatu variabel maupun referensinya dengan efek yang sama. Contoh :

#include <iostream.h>
#include <conio.h>
void main()
{
int i = 55;
int &r = i; // Referensi
clrscr();
cout << "i = " << i << " r = " << r <<endl;
i ++ ;
cout << "i = " << i << " r = " << r << endl;
r ++ ;
cout << "i = " << i << " r = " << r << endl;
getch();
}

Hasil eksekusi :

i = 55 r = 55
i = 56 r = 56
i = 57 r = 57

Operator ++ pada i maupun r akan mengubah nilai keduanya, karena i dan r menyiratkan memori
yang sama.
Dalam fungsi pengiriman argumen dapat bersifat berdasar nilai dan berdasar referensi. Pengiriman
argumen berdasarkan nilai yaitu argumen yang dikirimkan dimaksudkan tidak untuk diubah

24
sekembalinya dari pemanggilan fungsi. Sedangkan pengiriman argumen berdasar referensi yaitu
argumen yang dikirimkan dimaksudkan untuk diubah sekembalinya dari pemanggilan fungsi.
#include <iostream.h>
#include <conio.h>

void tukar(int a, int b);

void main()
{
int nil1,nil2;
cout<<"Nilai 1 : ";
cin>>nil1;

cout<<"Nilai 2 : ";
cin>>nil2;

cout<<"Nilai 1 sebelum tukar : "<<nil1<<endl;


cout<<"Nilai 2 sebelum tukar : "<<nil2<<endl;

tukar(nil1,nil2);

cout<<"Nilai 1 sesudah tukar : "<<nil1<<endl;


cout<<"Nilai 2 sesudah tukar : "<<nil2<<endl;
getch();
}

void tukar(int a, int b)


{
int tmp;
tmp = a;
a = b;
b = tmp;
cout<<"Nilai 1 dalam tukar : "<<a<<endl;
cout<<"Nilai 2 dalam tukar : "<<b<<endl;
}

Hasil eksekusi :
Nilai 1 : 10
Nilai 2 : 20
Nilai 1 sebelum tukar : 10
Nilai 2 sebelum tukar : 20
Nilai 1 dalam tukar : 20
Nilai 2 dalam tukar : 10
Nilai 1 sesudah tukar : 10
Nilai 2 sesudah tukar : 20

25
Pada contoh diatas fungsi tukar memiliki dua argumen fungsi yang pengirimannya berdasar nilai
karena sekembali dari pemanggilan fungsi argumen yang dikirimkan nilainya tetap. Sehingga fungsi
tukar diatas tidak menghasilkan nilai sesuai dengan yang diharapkan yaitu menukar kedua nilai yang
dikirimkan. Untuk mengatasi permasalahan diatas maka argumen pada fungsi tukar dikirimkan secara
referensi :
#include <iostream.h>
#include <conio.h>

void tukar(int &a, int &b);

void main()
{
int nil1,nil2;
cout<<"Nilai 1 : ";
cin>>nil1;

cout<<"Nilai 2 : ";
cin>>nil2;

cout<<"Nilai 1 sebelum tukar : "<<nil1<<endl;


cout<<"Nilai 2 sebelum tukar : "<<nil2<<endl;

tukar(nil1,nil2);

cout<<"Nilai 1 sesudah tukar : "<<nil1<<endl;


cout<<"Nilai 2 sesudah tukar : "<<nil2<<endl;
getch();
}

void tukar(int &a, int &b)


{
int tmp;
tmp = a;
a = b;
b = tmp;
cout<<"Nilai 1 dalam tukar : "<<a<<endl;
cout<<"Nilai 2 dalam tukar : "<<b<<endl;
}

Hasil eksekusi :
Nilai 1 : 10
Nilai 2 : 20
Nilai 1 sebelum tukar : 10
Nilai 2 sebelum tukar : 20

26
Nilai 1 dalam tukar : 20
Nilai 2 dalam tukar : 10
Nilai 1 sesudah tukar : 20
Nilai 2 sesudah tukar : 10

Array sebagai argumen fungsi


Array dapat juga berkedudukan sebagai parameter dalam argumen fungsi :
#include <iostream.h>
#include <conio.h>

const int brs = 10;


const int klm = 10;

void jumlah(int a[brs][klm],int b[brs][klm],int c[brs][klm], int jbr, int


jkl);

void main()
{
int mat_a[brs][klm], mat_b[brs][klm], mat_c[brs][klm];
int br,kl;
clrscr();
cout<<"Masukan jumlah Baris : ";
cin>>br;
cout<<"masukan Jumlah kolom : ";
cin>>kl;
for(int i=0;i<br;i++) //input matrik A
{
for(int j=0;j<kl;j++)
{
cout<<" Matrik A["<<i<<"]["<<j<<"] = ";
cin>>mat_a[i][j];
}
}
for(int i=0;i<br;i++) //input matrik B
{
for(int j=0;j<kl;j++)
{
cout<<" Matrik B["<<i<<"]["<<j<<"] = ";
cin>>mat_b[i][j];
}
}

jumlah(mat_a,mat_b,mat_c,br,kl);

clrscr();

27
cout<<"Matrik A"<<endl; //menampilkan matrik A
for(int i=0;i<br;i++)
{
for(int j=0;j<kl;j++)
{
cout<<mat_a[i][j]<<" ";
}
cout<<endl;
}

cout<<"\nMatrik B"<<endl; //menampilkan matrik B


for(int i=0;i<br;i++)
{
for(int j=0;j<kl;j++)
{
cout<<mat_b[i][j]<<" ";
}
cout<<endl;
}
cout<<"\nMatrik C hasil penjumlahan"<<endl;
for(int i=0;i<br;i++) //menampilkan matrik C
{
for(int j=0;j<kl;j++)
{
cout<<mat_c[i][j]<<" ";
}
cout<<endl;
}
getch();
}

void jumlah(int a[brs][klm],int b[brs][klm],int c[brs][klm],int jbr, int


jkl)
{
for(int i=0;i<jbr;i++)
{
for(int j=0;j<jkl;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}
}

28
Inline Function
Inline function dengan cukup menyisipkan kata-kata inline didepan tipe nilai balik fungsi dalam
pendefinisian fungsi. Contoh :
inline int jumlah (int x, int y)
{
return(x + y);
}
inline function disarankan dipakai pada fungsi yang sering dipanggil dan ukurannya kecil (terdiri satu
atau dua pernyataan), terutama jika dilibatkan pada pernyataan pengulangan proses (while, for dan do-
while). Misalnya pada bentuk seperti berikut :
for (int i = 1; i < 100; i++)
cout << i << “.” << jumlah (i, 2 * i) << endl;
jika fungsi jumlah() tidak ditulis sebagai inline function, proses tersebut akan menjadi relatif lambat.
Contoh program :

#include <iostream.h>
#include <conio.h>
// Definisi fungsi sebagai inline
inline int jumlah(int x, int y)
{
return(x + y );
}
void main()
{
clrscr();
for (int i = 1; i < 100; i ++ )
cout << i << " . " << jumlah(i, 2 * i) << endl;
getch();
}

Function Overloading
Function Overloading atau Overloading terhadap fungsi memungkinkan sebuah fungsi dapat menerima
bermacam-macam tipe dan memberikan nilai balik yang bervariasi pula.
Contoh program :

#include <iostream.h>
#include <conio.h>
// Prototipe fungsi
int kuadrat (int i);
long kuadrat(long l);
double kuadrat(double d);
void main()
{
cout << kuadrat(2) << endl;

29
cout << kuadrat(66666) << endl;
cout << kuadrat(1.2) << endl;
getch();
}
// Definisi fungsi
int kuadrat (int i)
{
return(i * i);
}
long kuadrat (long l)
{
return(l * l);
}
double kuadrat (double d)
{
return(d * d);
}

Hasil eksekusi :
4
149388260
1.44

Rekursi
Fungsi dalam C++ dapat dipakai secara rekursi, artinya suatu fungsi dapat memanggil fungsi yang
merupakan dirinya sendiri. Penerapan rekursi diantaranya untuk menghitung nilai :
Xn
Dengan n merupakan bilangan bulat positif. Solusi dari persoalan ini berupa :
Jika n = 1 maka Xn = X
Selain itu : Xn = X * Xn – 1
Contoh program :

#include <iostream.h>
#include <conio.h>
long int pangkat ( int x, int n);
void main()
{
int x, y;
clrscr();
cout << "Menghitung x ^ y "<< endl;
cout << "x = " ;

30
cin >> x ;
cout << "y = " ;
cin >> y ;
cout << x << " ^ " << y << " = "
<< pangkat(x, y) << endl;
getch();
}
long int pangkat(int x, int n)
{
if (n == 1 )
return(x);
else
return(x * pangkat(x, n - 1));
}

Hasil elsekusi :

Menghitung x ^ y
x = 3
y = 4
3 ^ 4 = 81

31
MENGENAL POINTER

Pointer sesungguhnya berisi alamat dari suatu data, bukan data sebagaimana variabel biasa. Dengan
kata lain pointer adalah variabel yang berisi alamat memori sebagai nilainya dan berbeda dengan variabel
biasa yang berisi nilai tertentu.

Mengetahui Alamat variabel


Alamat dari variabel dapat diketahui dengan menambahkan operator alamat berupa simbol & di depan nama
variabel.
Contoh program :

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

void main()
{
clrscr();
int a = 11;
float b = 12.4;
double c = 12.23456;
cout<<"Isi Variabel :"<<endl;
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
cout<<"\nAlamat Variabel :"<<endl;
cout<<"a = "<<&a<<endl;
cout<<"b = "<<&b<<endl;
cout<<"c = "<<&c<<endl;
getch();
}

Output :
Isi Variabel :
a = 11
b = 12.4
c = 12.2346

32
Alamat Variabel :
a = 0x0012ff88
b = 0x0012ff84
c = 0x0012ff7c

Mendefinisikan Variabel Pointer


Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :

tipe_data *nama_variabel

- tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
- nama_variabel adalah nama variabel pointer
- * adalah operator memori yang fungsinya untuk mengembalikan nilai variabel pada alamatnya
yang ditentukan oleh operand.
Supaya suatu variabel menunjuk ke variabel lain, mula-mula harus diisi dengan alamat dari variabel
yang hendak ditunjuk.
Contoh program :
#include <iostream.h>
#include <conio.h>
void main()
{
int var_int = 55; // Variabel bukan pointer
int *poin_int; // Variabel pointer
clrscr();
poin_int = &var_int; // Pointer menunjuk ke vint
cout << "Alamat var_int = " << &var_int << endl;
cout << "poin_int = " << poin_int << endl;
getch();
}

Output :
Alamat var_int = 0x0012ff88
poin_int = 0x0012ff88

Pada program diatas :


cout << "poin_int = " << poin_int << endl;
ternyata menampilkan isi pointer itu sendiri, bukan isi dari variabel vint.

Mengakses Nilai yang ditunjuk Pointer

Berdasarkan contoh program diatas, nilai dari var_int dapat diakses melalui poin_int setelah pernyataan :
poin_int = &var_int
dijalankan. Caranya dengan melibatkan operator “tak langsung”. Operator ini berupa simbol “ * “ dan
diletakkan di depan nama variabel pointer.Contoh
*poin_int

33
Contoh program :
#include <iostream.h>
#include <conio.h>

void main()
{
int var_int = 60; // Variabel bukan pointer
int *poin_int; // Variabel pointer
clrscr();
poin_int = &var_int; // Pointer menunjuk ke vint
cout << " Nilai yang ditunjuk oleh pint = "
<< *poin_int << endl;
getch();
}

Output:

Nilai yang ditunjuk oleh pint = 60

Pointer void
Untuk membuat pointer yang tidak bertipe yakni dengan meletakkan kata kunci pada void pada bagian
penentu tipe pointer. Contoh :
void *ptr;
Merupakan pernyataan untuk mendefinisikan ptr sebagai variabel pointer void.
Suatu pointer void adalah pointer yang dapat menunjuk ke sembarang tipe data. Misalnya, Anda dapat
mengatur agar pointer ini menunjuk ke tipe data int, tetapi di saat lain diperlukan untuk menunjuk data
bertipe float.
Contoh program :
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
void *ptr; // Pointer tak bertipe
int vint = 45;
float vfl = 17.5;
ptr = &vint; // menunjuk ke int
cout << "Nilai yang ditunjuk oleh ptr = "
<< *(int *)ptr << endl;
ptr = &vfl; // menunjuk ke float
cout << "Nilai yang ditunjuk oleh ptr = "

34
<< *(float *) ptr << endl;
getch();
}

Output :
Nilai yang ditunjuk oleh ptr = 45
Nilai yang ditunjuk oleh ptr = 17.5

Dari program diatas bahwa variabel pointer ptr dapat menunjuk ke tipe int ataupun float.
Pointer dapat pula digabungkan dengan array, karena pada umumnya antara pointer dan array
mempunyai kesamaan.
Contoh program :

#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int tgl_lahir[] = {28, 11, 1982 };
int *poin_tgl;

poin_tgl = tgl_lahir; // ptgl menunjuk ke array


cout << "Nilai yang ditunjuk poin_tgl : "
<< *poin_tgl << endl;
cout << "Nilai dari tgl_lahir[0] : "
<< tgl_lahir[0] << endl;
getch();
}

Output :
Nilai yang ditunjuk poin_tgl : 28
Nilai dari tgl_lahir[0] : 28

Setelah penugasan poin_tgl = tgl_lahir ptgl akan menunjuk ke elemen pertama (tgl_lahir[0]) dari array
tgl_lahir.
Untuk mengakses semua tanggal dapat dilakukan dengan perintah :
for (int i=0;i<3;i++)
cout<<*(poin_tgl+i)<<endl;

Array Pointer

35
Suatu array bisa digunakan untuk menyimpan sejumlah pointer. Sebagai contoh :
char *namahari[7];
merupakan pernyataan untuk mendefinisikan array namahari yang berisi 7 buah elemen berupa
pointer. Pointer ini menunjuk ke data bertipe char.
Contoh program :
#include <iostream.h>
#include <conio.h>

void main()
{
clrscr();
char *namahari[] = {"Senin", "Selasa", "Rabu", "Kamis",
"Jumat","Sabtu", "Minggu"};
for (int i = 0; i < 7; i++)
cout << namahari[i] << endl;
getch();
}

Output :
Senin
Selasa
Rabu
Kamis
Jumat
Sabtu
Minggu

Pointer Menunjuk Pointer


Suatu pointer bisa menunjuk ke pointer lain
ptr2 ptr1 Var_x

Pointer menunjuk
ke pointer

Untuk membentuk rantai seperti gambar diatas diperlukan pendefinisian sebagai berikut :
int var_x; //Variabel bertipe int
int *ptr1; //Variabel pointer yg menunjuk ke data bertipe int
int **ptr2; //Variabel pointer yg menunjuk ke pointer int

36
Agar ptr1 menunjuk ke variabel var_x, perintah yang diperlukan berupa :
ptr1 = &var_x;
Sedangkan supaya ptr2 menunjuk ke ptr1, diperlukan perintah :
ptr2 = &ptr1;
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int var_x = 2345;
int *ptr1; //pointer ke variabel bukan pointer
int **ptr2; //pointer ke pointer
cout << "var_x = " << var_x << endl;
//penugasan alamat
ptr1 = &var_x;
ptr2 = &ptr1;
//Mengakses nilai var_x melalui ptr1
cout << "*ptr1 = " << *ptr1 << endl;
//Mengakses nilai var_x melalui ptr2
cout << "**ptr2 = " << **ptr2 << endl;
getch();
}

Output :

var_x = 2345
*ptr1 = 2345
**ptr2 = 2345

Pointer Dan Fungsi


Pointer biasa digunakan di dalam argumen fungsi kalau nilai argumen dimasudkan untuk diubah di
dalam fungsi.

Pointer Sebagai Argumen Fungsi


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

void ubah_nilai(int &x);

void main()
{
clrscr();

37
int pinokio = 80;
cout << "Nilai mula-mula untuk pinokio : "
<< pinokio << endl;

ubah_nilai(pinokio);

cout << "Nilai untuk pinokio sekarang : "


<< pinokio << endl;
getch();
}
//Definisi fungsi

void ubah_nilai(int &x)


{
x = 95;
}

Output :

dengan menuliskan & didepan argumen fungsi, nilai argumen dapat diubah didalam fungsi. hal serupa
dapat diimplentasikan didalam pointer sebagai berikut :
#include <iostream.h>
#include <conio.h>

void ubah_nilai(int *x);

void main()
{
clrscr();
int pinokio = 80;
cout << "Nilai mula-mula untuk pinokio : "
<< pinokio << endl;
ubah_nilai(&pinokio);
cout << "Nilai untuk pinokio sekarang : "
<< pinokio << endl;
getch();
}
//Definisi fungsi

void ubah_nilai(int *x)


{
*x = 95;
}

38
Perbedaan :
 Fungsi ubah_nilai() didefinisikan sebagai judul berupa void ubah_nilai(int *x)
 Pada saat fungsi dipanggil argumen perlu ditulis dengan awalan & (&pinokio)
 Prototipe fungsi disesuaikan dengan definisi fungsi : void ubah_nilai(int *x);
 Didalam fungsi ubah_nilai(), tanda * perlu diberikan di depan nama argumen : *x=95;

39
STRUKTUR

Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. Apabila
suatu struktur telah dideklarasikan, struktur ini dapat dgunakan untuk mendefinisikan suatu
variabel.
Suatu struktur juga dapat mengandung struktur yang lain dan anggota struktur dapat diakses
menggunakan bentuk :

Varibel_struktur.nama_anggota

Contoh program lengkap yang melibatkan pendeklarasian dan pendefinisian variabel struktur dan juga
pengaksesan terhadap anggota variabel struktur dapat dilihat dibawah ini :
#include <iostream.h>
#include <conio.h>
void main()
{
struct data_tanggal // Pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};

data_tanggal tanggal_lahir // Pendefinisian struktur


// Pengaksesan anggota struktur
tanggal_lahir.tangal = 28;
tanggal_lahir.bulan = 11;
tanggal_lahir.tahun = 1982;
cout << tanggal_lahir.tanggal << ‘ / ’
<< tanggal_lahir.bulan << ‘/ ’
<< tanggal_lahir.tahun << endl;
}

Hasil eksekusi :

28/11/1982

Pada program diatas tanda titik diantara nama variabel dan nama anggota menyatakan penugasan
untuk memberikan nilai 28 ke anggota tanggal pada variabel struktur tanggal_lahir.
Pemberian nilai terhadap suatu struktur dapat dilakukan dengan bentuk :
var1 = var2;
sepanjang kedua variabel adalah variabel struktur bertipe sama.

40
Contoh program :
#include <iostream.h>
#include <conio.h>
void main()
{
struct data_tanggal // Pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};

data_tanggal tgl1, tgl2 ; // Pendefinisian struktur


// Penugasan per anggota
tgl1.tanggal = 28;
tgl1.bulan = 11;
tgl1.tahun = 1982;
// Penugasan antaranggota struktur
tgl1 = tgl2;
cout << tgl2.tanggal << ‘ / ’
<< tgl2.bulan << ‘ / ’
<< tgl2.tahun << endl;
}

Hasil eksekusi :

28/11/1982

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

void main()
{
struct mahasiswa
{
int nim;
char nama[30][30];
};

int jml;
mahasiswa mhs[25];
cout<<"Berapa jumlah siswa : ";

41
cin>>jml;
for(int i = 0;i < jml; i++)
{
cout<<"Nim : ";cin>>mhs[i].nim;
cout<<"Nama : ";cin>>mhs[i].nama[i];
}
for(int i = 0;i < jml; i++)
{
cout<<"Nim : "<<mhs[i].nim<<endl;
cout<<"Nama : "<<mhs[i].nama[i]<<endl;
}
getch();
}

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

void main()
{
struct mahasiswa
{
int nim;
char nama[30][1];
int nilai[3];
int tot;
};

int jml;

mahasiswa mhs[25];
mahasiswa tmp;
cout<<"Berapa jumlah siswa : ";
cin>>jml;

for(int i = 0;i < jml; i++)


{
mhs[i].tot = 0;
cout<<"Nim : ";cin>>mhs[i].nim;
cout<<"Nama : ";cin>>mhs[i].nama[i];
for(int j = 0; j<3; j++)
{
cout<<"Nilai "<<(j+1)<<" : ";
cin>>mhs[i].nilai[j];
mhs[i].tot = mhs[i].tot + mhs[i].nilai[j];

42
}
}
clrscr();
for(int i = 0;i < jml; i++)
{
cout<<"Nim : "<<mhs[i].nim<<endl;
cout<<"Nama : "<<mhs[i].nama[i]<<endl;
cout<<"Total : "<<mhs[i].tot<<endl<<endl;;
}
getch();
}

43

Anda mungkin juga menyukai