0% menganggap dokumen ini bermanfaat (0 suara)
17 tayangan

Modul 6 Algo Array Dan String C++

Array dan string merupakan tipe data koleksi yang penting dalam bahasa C dan C++. Array digunakan untuk menyimpan kumpulan data dengan tipe yang sama, sedangkan string digunakan untuk menyimpan serangkaian karakter. Keduanya disimpan secara terurut di memori dan dapat diakses elemen per elemennya.
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
17 tayangan

Modul 6 Algo Array Dan String C++

Array dan string merupakan tipe data koleksi yang penting dalam bahasa C dan C++. Array digunakan untuk menyimpan kumpulan data dengan tipe yang sama, sedangkan string digunakan untuk menyimpan serangkaian karakter. Keduanya disimpan secara terurut di memori dan dapat diakses elemen per elemennya.
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 36

Array dan String

Array
• Kumpulan beberapa elemen data dengan tipe
yang sama dan dipanggil dengan nama yang
sama
• Deklarasi array pada program:
unsigned short int arrayku[5];
• Berarti variabel arrayku memiliki 5 buah elemen
data dengan tipe unsigned short int
arrayku[0] arrayku[1] arrayku[2] arrayku[3] arrayku[4]

16 bit 16 bit 16 bit 16 bit 16 bit


Bagaimana array disimpan di memory?

• Ukuran suatu array dapat dihitung sbb:


• Byte total array = jumlah byte tipe data X jumlah elemen
• Misalnya suatu variabel : unsigned short int arrayku[5];
• Jumlah byte tipe=2 byte, jumlah elemen = 5, total byte =
10 byte
• Byte ke-0 dari elemen ke-0 menempati alamat memori
yang pertama
Alamat memori n n+1 n+2 n+3 n+4 n+5 n+6 n+7 n+8 n+9

arrayku[0] arrayku[1] arrayku[2] arrayku[3] arrayku[4]

2 byte 2 byte 2 byte 2 byte 2 byte


Penempatan data array di
memori

Misal: Arrayku[5] = {4, 5,7,2,9};

Pemetaan di memory RAM missal mulai alamat


4000H
Address Arrayku[5] data (2 byte)
4000H Arrayku[0] 4
4001H Arrayku[1] 5
4002H Arrayku[2] 7
4003H Arrayku[3] 2
4005H Arrayku[4] 9
Inisialisasi array
• Mengisi suatu array dengan suatu nilai
permulaan
• Dilakukan pada saat deklarasi variabel
• unsigned int myarray[4] = {2,4,6,8};
• Dengan demikian elemen ke-0 akan berisi
2, elemen ke-1 berisi 4,ke-2 berisi 6 dan
ke-3 berisi 8
Bagaimana mengakses suatu
array?
• Mengakses suatu array dilakukan dengan
mengakses salah satu elemennya secara
individual, misalnya:
• arrayku[1] = 100;
• X = arrayku[2];
• Y = arrayku[X+1];
Perlu diperhatikan
1.Ketika mengakses suatu array, indeks
elemen array yang diakses tidak boleh
melebihi indeks array pada waktu
dideklarasikan, contoh:
• int larik[10];//deklarasi array, max ada 10
elemen, yaitu 0 – 9
• larik[8]=1;//pengaksesan yang benar
• larik[9]=larik[2];//pengaksesan yang benar
• larik[10]=2;//pengaksesan yang salah
Perlu diperhatikan
2. Elemen array hanya bisa diakses secara
individual, tidak bisa diakses secara
bersamaan, kecuali pada saat inisialisasi
contoh:
int array1[5];//deklarasi array1
int array2[5]={1,2,3,4,5};//deklarasi+inisialisasi array2
array1[4]=array2[0];//contoh benar
array1[0]=array2[4];//contoh benar
array1 = array2; //contoh salah
Contoh Jika Jumlah deklarasi array lebih banyak dari datanya :
char kata[15] = {‘m’,‘u’,‘h’,‘a’,‘m’,‘m’,‘a’,‘d’};
m u h a m m a d 0 0 0 0 0 0 0

Inisialisasi di atas dapat juga ditulis seperti berikut:

char kata[15] = “muhammad”;

atau

char kata[] = “muhammad”;  jumlah elemen otomatis bernilai 8

atau

char *kata = “muhammad”;  menggunakan pointer


masalah 1: copy assignment dari
suatu array ke array lain
• Bagaimana cara melakukan operasi assignment
(meng-copy-kan seluruh element) dari suatu
array ke array lain?,misalnya:
• unsigned int a[5],b[5]={1,2,3,4,5};
• Diinginkan untuk meng-copy seluruh elemen b
ke a
• Elemen array tidak bisa diakses secara
bersama-sama secara langsung, misalnya: a = b
// a dan b suatu array
• Masing-masing elemen array harus diakses
secara individual
masalah 1: assignment dari suatu
array ke array lain (lanjutan…)
• Array tersebut (a dan b) harus diakses
satu persatu seperti ini,
a[0]=b[0];
a[1]=b[1];
…dst
• Bagaimana jika elemen array jumlahnya
banyak?
masalah 1: assignment dari suatu
array ke array lain (lanjutan…)
• Gunakan saja loop for
for(i=0;i<5;i++)
{
a[ i ] = b[ i ];
}
1 // Fig. 4.4: fig04_04.cpp
2// Initializing an array with a declaration

3#include <iostream>

5using std::cout;

6using std::endl;

8#include <iomanip>

10 using std::setw; // set field width

11

12 int main()

13 {

14 int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };

15

16 cout << "Element" << setw( 13 ) << "Value" << endl;

17

18 for ( int i = 0; i < 10; i++ )

19 cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl;

20

21 return 0;

22 }

Element Value
0 32
1 27
2 64
3 18
4 95
5 14
6 90
7 70
8 60
9 37
masalah 2: operasi vektor
• Bagaimana cara melakukan suatu operasi
vektor pada suatu program?
contoh vektor dalam notasi matematis:
a = [ 1, 3 , 5, 7 , 9]
b = [ 2, 4 , 6, 8, 10]
a+b=?
a – b=?
a . b =? (dot product)
masalah 2: operasi vektor
• Penjumlahan, pengurangan, perkalian
pada array juga tidak bisa dilakukan
secara bersamaan untuk semua elemen
array
• Operasi-operasi tersebut juga harus
dilakukan secara individual untuk masing-
masing element array
masalah 2: operasi vektor
• Contoh penjumlahan vektor: c = b + a
• Penerapan dalam program:
for( j=0; j<5; j++)
{
c[ j ]=b[ j ] + a[ j ];
}
Contoh soal 1: mencari nilai maksimal dan
minimal dari suatu array bilangan
• Diketahui suatu array:
• int v[8] = { 9, 11, 3, 7, 8, 12, 6, 5};
• Buatlah program untuk mencari nilai maks
dan min pada array tersebut!
Algoritma Mencari nilai minimal
pada suatu array
• Input : array v
• Output : v_min
• Var tambahan : temp (temporary v_min)
• Algoritma:
temp = v[0]; //langkah 1, anggap v[0] itu v_min
if (v[1] < temp) temp=v[1];
if (v[2] < temp) temp=v[2];
if (v[3] < temp) temp=v[3];
… dst, lakukan untuk semua elemen v
Contoh soal 2: mengurutkan
elemen-elemen pada suatu array
• int v[8] = { 9, 11, 3, 7, 8, 12, 6, 5};
• Buatlah program untuk mengurutkan
elemen array v dari yang terkecil sampai
yang terbesar!
string
• String : suatu array yang elemen-
elemennya adalah karakter (data bertipe
char)
• Pada C / C++ array karakter dalam suatu
string diakhiri dengan bilangan 0 sebesar
8 bit ( 0 atau ‘\0’)
Deklarasi string
• Suatu string dideklarasikan dan
diinisialisasi sbb:
char teks[8]=“progdas”;
• Statement diatas sama dengan statement
berikut:
char teks[8]={‘p’,’r’,’o’,’g’,’d’,’a’,’s’,’\0’};
atau
char teks[8]={‘p’,’r’,’o’,’g’,’d’,’a’,’s’,0};
Library cstring
• C++ mempunyai library yang mempunyai
fungsi-fungsi pengolah string. Library
tersebut ada dalam file cstring
• Untuk menggunakannya perlu di-include
dalam program:
#include<cstring>
Fungsi-fungsi dalam library cstring
• strcpy( ) : meng-copy data dari satu string
ke string yang lain
• strcat( ) : menyambung suatu string
dengan string yang lain
• strlen( ) : menentukan panjang suatu
string
• strcmp( ) : membandingkan 2 string
• tolower(); toupper()
Array multidimensi
• Topik yang telah kita bicarakan adalah
mengenai array 1 dimensi
• Bagaimana dengan array dengan dimensi
> 1?
• Bagaimana bahasa C/C++ menangani
array dengan dimensi >1?
Array 2 dimensi
• Dalam matematika, array 2 dimensi ini
disebut matriks 2 dimensi
• Deklarasi array 2 dimensi dalam C/C++:
unsigned int matriks [2][3];
berarti mendeklarasikan suatu array 2
dimensi dengan jumlah baris = 2 dan
jumlah kolom =3
visualisasi
• unsigned short int matriks [2][3];

matriks[0][0] matriks[0][1] matriks[0][2]


2 byte 2 byte 2 byte

matriks[1][0] matriks[1][1] matriks[1][2]


2 byte 2 byte 2 byte
Inisialisasi array 2 dimensi
• Array 2 dimensi diinisialisasi dengan cara
sbb:
unsigned int matriks[2][3] = {1,2,3,4,5,6};
• Menghasilkan array sbb:
matriks[0][0]=1; matriks[0][1]=2; matriks[0][2]=3;
matriks[1][0]=4; matriks[1][1]=5; matriks[1][2]=6;
Array 3 Dimensi
• Array 3 dimensi diinisialisasi dengan cara sbb:
• unsigned int Ar3D[2][2][3] = {1,2,3,4,5,6,7,8,9,10,11,12};
• Menghasilkan array sbb:
Ar3D[0][0][0]=1; Ar3D[0][0][1]=2; Ar3D[0][0][2]=3;
Ar3D[0][1][0]=4; Ar3D[0][1][1]=5; Ar3D[0][1][2]=6;
dan
Ar3D[1][0][0]=7; Ar3D[1][0][1]=8; Ar3D[1][0][2]=9;
Ar3D[1][1][0]=10; Ar3D[1][1][1]=11; Ar3D[1][1][2]=12;


Contoh: Penjumlahan matriks
3 5 6
• A= 1 9 2
5 1 2

• B= 1 2
3 0 4
2

7 1 1

• Buatlah program untuk menghitung


matriks C = A+B
Algoritma penjumlahan matriks
• Input : A, B
• Output : C
• Rumus penjumlahan matriks : c(i,j)=a(i,j)
+b(i,j)
• Sehingga,
c[0][0]=a[0][0]+b[0][0]
c[0][1]=a[0][1]+b[0][1]
…dst
• Algoritma penjumlahan matriks m x n dengan
loop for:
for(i=0;i<m;i++) // baris
{
for(j=0;j<n;j++) // kolom
{
c[ i ][ j ]=a[ i ][ j ]+b[ i ][ j ];
}
}
Contoh: Perkalian matriks
3 5 6
• A= 1 9 2
5 1 2

• B= 1 2
3 0 4
2

7 1 1

• Buatlah program untuk menghitung


matriks C = A B
Algoritma perkalian matriks
• Input A[3][3],B[3][3]
• Output C[3][3]
• Rumus perkalian matriks:
C[0][0]=A[0][0]*B[0][0]+A[0][1]*B[1][0]+A[0][2]*B[2][0]
C[0][1]=A[0][0]*B[0][1]+A[0][1]*B[1][1]+A[0][2]*B[2][1]
.. Dst k = m-1
• C[ i ][ j ] = Σ A[ i ][ k ]*B[ k ][ j ]
k=0

• m = jumlah kolom matriks A = jumlah baris matriks B


Algoritma perkalian matriks
• Jika diterapkan pada C/C++, matrik A 3x3, matrik B 3x3

for(i=0;i<2;i++)//untuk semua i
{ for(j=0;j<2;j++)// dan untuk semua j
{ C[i][j]=0;
for(k=0;k<2;k++)//menghitung sigma
{
C[i][j]=C[i][j]+A[i][k]*B[k][j];
}
}
}
Contoh program
• Ini contoh program penggunaan array. Silahkan
dicoba dan diamati hasilnya.
//Program 1. mencetak nilai array
#include <iostream>
#include <conio.h>

using namespace std;

int main() {

int A[3][4]={{3,4,8,0},{3,9,2,1},{6,3,0,2}};

for (int b=0;b<3;b++){


for (int k=0;k<4;k++){
cout<<A[b][k]<<" ";
}
cout << endl;
}
getch();

}
//Program 2. Mencari nilai terbesar
#include <iostream>
#include<conio.h>

using namespace std;

#define ARRAY_SIZE 5

int main()
{
int numbers[ARRAY_SIZE], i, largest;

cout<<"Find Largest or Biggest Number (Array) In C++ Example Program\n";

for (i = 0; i < ARRAY_SIZE; i++)


{
cout<<"Enter the Number : "<< (i+1) <<" : ";
cin>>numbers[i];
}

largest = numbers[0];
for (i = 1; i < ARRAY_SIZE; i++)
{
if (largest < numbers[i])
largest = numbers[i];
}
cout<<"\nLargest /Biggest Number Is : "<<largest;

getch();
return 0;
}

Anda mungkin juga menyukai