SlideShare a Scribd company logo
1 of 19
Array dalam Bahasa C
Hamonangan Situmorang
STEI-ITB
Latar Belakang Array
• Sejauh ini cuplikan program yang kita pelajari masih
sangat terbatas, karena statement assignment hanya
berupa pemberian satu nilai pada satu variabel
• Padahal sering kali kita perlu untuk meng-assign
ataupun memanipulasi banyak nilai ke sekelompok
variabel
• Sebagai contoh jika anda membuat program yang
membaca 6000 nilai percobaan untuk dihitung nilai
rata-rata-nya, akan sangat lucu jika anda
menghitungnya dengan cara berikut: rata_rata = (x1 +
x2 + x3 + x4 + x5 + + dst )/6000.
• Ekspresi matematis berikut akan lebih baik :
2
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
Pendahuluan (1)
• Definsi : Kumpulan nilai dengan tipe data yang sama yang menggunakan
nama sama.
• Deklarasi Array :
– Tipe data elemen array
– Nama array
– Jumlah elemen array
• Contoh :
short val[ 200 ]; //declaration
val[ 12 ] = 5; //assignment
• Jika sebuah array y memiliki n elemen, maka:
– Elemen pertama adalah : y[0]
– Elemen terakhir adalah : y[n-1]
• Contoh :
– Short y[4], memiliki elemen y[0], y[1], y[2], y[3]
– Tetapi y[4], bukan merupakan elemen array ini.
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
3
Pendahuluan (2)
• Array dapat dibedakan menjadi :
– Array berdimensi satu (1D), berpadanan dg vektor di Matematika
– Array berdimensi dua (2D), berpadanan dg matriks di Matematika
– Array berdimensi banyak
• Contoh array integer 1D bernama n yg memiliki 5
elemen,
n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9
dideklarasikan sbb:
– int n[5] = {1,3,5,7,9};
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
4
1 3 5 7 9
n
0 1 2 3 4
indeks
Alokasi Memory Array (1)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
5
• Hati-hati dengan indeks
array
– jika ceroboh dapat
mengakses data lain
– hati-hati pula dengan
pointer
• Ilustrasi kasus:
int a[6];
int anu;
Array a[ ]
Data lain
Memori
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
anu
Alokasi Memory Array (2)
• Array, seperti halnya variabel biasa ataupun fungsi harusi dideklarasikan
terlebih dahulu.
• Array dapat dideklarasikan secara global dengan mendeklarasikannya
diluar fungsi main
• Hati-hati jika anda mendeklarasikannya secara (didalam sebuah fungsi
atau main), karena, variabel lokal akan dibentukan dalam stack ketikan
fungsi tersebut dibentuk, dan akan dihapus ketika fungsi tersebut
dihancurkan (ketika fungsi tersebut selesai dieksekusi).
• Mungkin hal ini tidak bermasalah bagi variabel biasa, namun array
umumnya akan menuntut jumlah memory yang sangat besar (array 'float
mydata[5000]' akan membutuhkan memory sebesar 20000 bytes),
sementara stack hanya memiliki kapasitas sekitar 2000 - 4000 bytes
• Oleh karena itu untuk array yang besar harus dideklarasikan secara global,
atau mempergunakan static statement (static float mydata[5000]; ) jika
anda hendak mendeklarasikannya secara local.
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
6
Alokasi Memory Array (3)
• Global arrays selalu bersifat “static”
• Local arrays selalubersifat “dynamic”
• Alokasi memory space array dan variabel “static”
umumnya lebih besar daripada array dan variabel
“dynamic”
• Untuk membuat local array “static”, deklarasikan
secara eksplisit : static short x[200];
• Hati-hati dengan batasan 64 kB pada beberapa
compiler
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
7
Deklarasi dan Inisialisasi Array
• Deklarasi secara global, semua elemen array akan diinisialiasi
dengan nilai nol.
• Deklarasi secara lokal, elemen array tidak di-inisialisasi.
• Contoh-contoh deklarasi dan inisialisasi array :
– short x[ 12 ] = { 1, 3, 88};
– double w[ ] = {3.14, 127.0, 22};
• Strings:
– char a_name[ 10 ] = “Hello”;
– char name[ 20 ] ={‘H’,‘e’,‘l’,’l’,’o’};
• Jika anda akan mendeklarasikan ukuran/dimensi array anda harus
menggunakan sebuah nilai atau konstanta, jangan variabel
– short x[12];
– Short x[MAX], dimana MAX adalah konstanta
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
8
Review Deklarasi Konstanta
• Contoh deklarasi konstanta
– #define ACONSTANT 300.0
– #define TRUE 1
– #define FALSE 0
• Catatan:
– Tidak ada semicolon diakhir deklarasi konstanta
– Kesepakatan dalam C: nama konstatnta ditulis
dengan menggunakan huruf besar semua.
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
9
Mengolah Elemen Array
• Elemen array dapat diakses dengan bentuk:
– nama_array[subscript] untuk dimensi 1
– nama_array[subscript_baris][subscript_kolom] untuk dimensi 2
• Dalam pemrograman harus diusahakan agar tidak terjadi
pengaksesan elemen di luar jumlah yang didefinisikan.
• Perlu diketahui, C tidak akan memberikan pesan kesalahan
apabila terjadi pengaksesan dengan nilai indeks yang
berada di luar nilai yang telah didefinisikan.
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
10
Review Sistem Komputer(1)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
11
CPU
OUTPUT
(CONSOLE)
INPUT
(KEYBOARD)
HDD
...
...
RAM
0
1
2
3
4
5
…
…
81345
81346
81347
Alamat
(disederhanakan)
...
...
Review Sistem Komputer(2)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
12
• Komputer sekarang ini = komputer digital
• Komputer ini hanya memahami bilangan
digital: ‘0’ and ‘1’
– Disebut BIT (binary digit)
– Mewakili tegangan elektronik -5 atau +5 volt
(secara mudahnya)
• ‘Semua’ bilangan dapat direpresentasikan
dengan menggunakan bit ini
– 15  1111 (cukup 4 bit)
– 253  11111101 (cukup 8 bit)
– -2.99x108  1001010100101…10101011
(cukup 32 bit, ilustrasi)
• Kebanyakan bit menyulitkan manusia
membaca, jadi dikelompokkan
– Kelompok 4 bit diwakili dengan bilangan
heksa (hexadecimal)
• Biasa dinotasikan dengan prefiks 0x
• Co: 1001 ditulis 0x9
– Kelompok 8 bit disebut BYTE
• Perlu 2 angka heksa
• Co: 1000 1111 ditulis 0x8F
Biner
(4 bit)
Desimal Heksa
0000 0 0x0
0001 1 0x1
0010 2 0x2
0011 3 0x3
0100 4 0x4
0101 5 0x5
0110 6 0x6
0111 7 0x7
1000 8 0x8
1001 9 0x9
1010 10 0xA atau 0xa
1011 11 0xB atau 0xb
1100 12 0xC atau 0xc
1101 13 0xD atau 0xd
1110 14 0xE atau 0xe
1111 15 0xF atau 0xf
Review Sistem Komputer(3)
• Merupakan subsistem komputer yang sering
menjadi fokus pemrogram:
– Terutama memori primer (RAM)
– Memori sekunder lebih banyak diakses sebagai file
– Jika tidak disebutkan secara khusus, kata ‘memori’
berarti ‘memori primer’
• Memori merupakan tempat software berada
– Jadi, isinya dapat berupa SO, aplikasi atau data
– Jika ditelusuri lebih rinci lagi, setiap lokasi dapat berisi
perintah dan/atau data (angka, alamat, nilai, dsb.)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
13
Review Sistem Komputer(4)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
14
• Lihat ilustrasi
– Lebar bit memori saat ini 32 bit
(co: Intel Pentium IV)
– Prosesor 64 bit sudah mulai muncul
(co: AMD Athlon64)
Keadaan sebenarnya dalam sistem memori komputer
Alamat Memori
... ...
... ...
00000000000100101111000010000100 00000000000000000000000000000001
00000000000100101111000010001000 00000000000000000000000000000010
00000000000100101111000010010100 00010010010001000100100100100110
00000000000100101111000010010000 00100010010001000100100100100110
00000000000100101111000010010100 01001011001100001110100010100110
01011011001100101110101010110110
00000000000100101111000010010110 01000101001010100110011100100010
01000011011100000110101001110110
... ...
... ...
Alamat memori dalam notasi heksa,
isi memori dalam notasi desimal
Alamat Memori Keterangan
... ...
... ...
0x0012F084 1 int = 32 bit
0x0012F088 2 int = 32 bit
0x0012F08C 3.33 float = 32 bit
0x0012F090 4.44 float = 32 bit
0x0012F094
5.5x1067
double = 64 bit
0x0012F09C
6.6x1078
double = 64 bit
... ...
... ...
Review Sistem Komputer(5)
• Untuk kemudahan pemrograman,
komputer dapat dimodelkan secara sederhana terdiri atas
– prosesor (CPU)
– memori (RAM)
• Sebenarnya, CPU hanya memahami instruksi sederhana, misalnya:
– baca data dari sebuah lokasi memori
– tulis data ke sebuah lokasi memori
– jumlahkan dua bilangan
– bandingkan dua bilangan
• Ingat, semua ini direpresentasikan dalam bilangan biner!
– Dinamakan BAHASA MESIN
– Sebuah program merupakan seruntunan instruksi-instruksi dan data
dalam bahasa mesin ini
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
15
Review Sistem Komputer(6)
• Karena manusia mengalami kesulitan
ketika harus memberikan perintah dalam bahasa mesin
– Diciptakanlah bahasa pemrograman yang lebih mendekati bahasa
manusia (terutama: bahasa Inggris)
– COMPILER atau INTERPRETER bertindak sebagai penerjemah bahasa
tingkat tinggi ini ke bahasa mesin
• Compiler
– Menerjemahkan dari file teks bahasa tingkat tinggi ke file biner bahasa
mesin
• Co: hello.cpp (file teks bahasa C++)  hello.exe (file biner bahasa mesin)
• Interpreter
– Menerjemahkan on-the-fly, instruksi per instruksi, jadi tidak
menghasilkan file binernya
• Co: hello.bas (file teks bahasa BASIC)  dijalankan di BASIC prompt
• Co: hello.m (file teks bahasa Matlab)  dijalankan di Matlab prompt
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
16
Review Sistem Komputer(7)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
17
C++ Program
int main() {
int i=1;
. . .
Machine
Language
Program
01001001
10010100
C Compiler
file teks         file biner
(bahasa C++) (bahasa mesin)
coba.cpp coba.exe
Review Sistem Komputer(8)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
18
set memory[801] to hold 00000001
set memory[802] to hold 00000000
if memory[802] = 10 jump to inst #8
increment memory[802]
set memory[803] to 2 times memory[801]
put memory[803] in to memory[801]
jump to instruction #3
print memory[801]
x=1;
i=0;
while (i!=10) {
i++;
x=x*2;
}
printf("%d",x);
{
Proses penerjemahan bahasa C/C++ ke bahasa mesin
Keterangan: bahasa mesin di bawah-kanan ini sebenarnya berupa angka-
angka biner (‘dimanusiawikan’ untuk memudahkan pemahaman)
Review Sistem Komputer(9)
IF2031-Algoritma dan Struktur
Data/Hamonangan Situmorang
19
• Biasanya, proses penterjemahan itu beberapa
tahap
– Melalui bahasa assembly
ST 1,[801]
ST 0,[802]
TOP: BEQ [802],10,BOT
INCR [802]
MUL [801],2,[803]
ST [803],[801]
JMP TOP
BOT: LD A,[801]
CALL PRINT
00000000001001011101001100000000
00000000001001001101010000000000
00000000100010100100100111110000
00000000010001000101010000000000
00000000010010001010011110100011
00000000111001011010101100000010
00000000001010010000000000000000
00000000110101010000000000000000
00000000110101001010100000000000
00000000100100010100010000000000
x=1;
i=0;
while (i!=10) {
i++;
x=x*2;
}
printf("%d",x);
Bahasa C Bahasa Assembly Bahasa Mesin

More Related Content

Similar to Array_dalam_Bahasa_C_bahan4.ppt

6.adp array (larik)
6.adp array (larik)6.adp array (larik)
6.adp array (larik)Hardini_HD
 
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptxStrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptxSuprapto60
 
bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1taufikhidayat607720
 
analisis data tikus percobaan materi informatika kelas X.pptx
analisis data tikus percobaan materi informatika kelas X.pptxanalisis data tikus percobaan materi informatika kelas X.pptx
analisis data tikus percobaan materi informatika kelas X.pptxrulimustiyawan37
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutJeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutIndividual Consultants
 
Arsitektur dan desain set
Arsitektur dan desain setArsitektur dan desain set
Arsitektur dan desain setPrisca Renatha
 
Pelatihan Bahasa R
Pelatihan Bahasa RPelatihan Bahasa R
Pelatihan Bahasa Ranom0164
 
Array C++ MG3.pptx
Array C++ MG3.pptxArray C++ MG3.pptx
Array C++ MG3.pptxKemangKres
 
Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)rdbmn
 
Set intruksi
Set intruksiSet intruksi
Set intruksiryobroza
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program rKhair Norrasid
 

Similar to Array_dalam_Bahasa_C_bahan4.ppt (20)

6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6.adp array (larik)
6.adp array (larik)6.adp array (larik)
6.adp array (larik)
 
struktur data
struktur datastruktur data
struktur data
 
Sbd ke1 2
Sbd ke1 2Sbd ke1 2
Sbd ke1 2
 
Matlab tutor sns
Matlab tutor snsMatlab tutor sns
Matlab tutor sns
 
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptxStrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
StrukDat Pertemuan 1 - Pengenalan Struktur Data.pptx
 
bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1
 
Tutor Tasm2
Tutor Tasm2Tutor Tasm2
Tutor Tasm2
 
analisis data tikus percobaan materi informatika kelas X.pptx
analisis data tikus percobaan materi informatika kelas X.pptxanalisis data tikus percobaan materi informatika kelas X.pptx
analisis data tikus percobaan materi informatika kelas X.pptx
 
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman LanjutJeni Intro2 Bab03 Teknik Pemrograman Lanjut
Jeni Intro2 Bab03 Teknik Pemrograman Lanjut
 
Arsitektur dan desain set
Arsitektur dan desain setArsitektur dan desain set
Arsitektur dan desain set
 
Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)
 
Matlab Tutorial Chapter 2
Matlab Tutorial Chapter 2Matlab Tutorial Chapter 2
Matlab Tutorial Chapter 2
 
Pelatihan Bahasa R
Pelatihan Bahasa RPelatihan Bahasa R
Pelatihan Bahasa R
 
Array C++ MG3.pptx
Array C++ MG3.pptxArray C++ MG3.pptx
Array C++ MG3.pptx
 
Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)
 
Tipe data abstract
Tipe data abstractTipe data abstract
Tipe data abstract
 
Set intruksi
Set intruksiSet intruksi
Set intruksi
 
Handout rakitan
Handout rakitanHandout rakitan
Handout rakitan
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program r
 

Recently uploaded

prinsip dasar kepramukaan dan metode kepramukaan
prinsip dasar kepramukaan dan metode kepramukaanprinsip dasar kepramukaan dan metode kepramukaan
prinsip dasar kepramukaan dan metode kepramukaanaji guru
 
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...Kanaidi ken
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdfAndiCoc
 
UAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfUAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfssuser29a952
 
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananriniaandayani
 
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdfAndiCoc
 
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptxMETODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptxFidiaHananasyst
 
MODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdf
MODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdfMODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdf
MODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdfAndiCoc
 
Penjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuPenjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuKhiyaroh1
 
M5 Latihan Program Prolog Aritmatika.pptx
M5 Latihan Program Prolog Aritmatika.pptxM5 Latihan Program Prolog Aritmatika.pptx
M5 Latihan Program Prolog Aritmatika.pptxAndrewKen3
 
Ppt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptxPpt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptxMeilianiPuspitaSari
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfAndiCoc
 
Materi E-modul Ekosistem kelas X SMA.docx
Materi E-modul Ekosistem kelas X SMA.docxMateri E-modul Ekosistem kelas X SMA.docx
Materi E-modul Ekosistem kelas X SMA.docxAmmar Ahmad
 
Variasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar Mengajar
Variasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar MengajarVariasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar Mengajar
Variasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar MengajarAureliaAflahAzZahra
 
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdfAndiCoc
 
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
Power point materi IPA pada materi unsur
Power point materi IPA pada materi unsurPower point materi IPA pada materi unsur
Power point materi IPA pada materi unsurDoddiKELAS7A
 
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025Fikriawan Hasli
 
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
Demokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.pptDemokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.pptretno12886
 

Recently uploaded (20)

prinsip dasar kepramukaan dan metode kepramukaan
prinsip dasar kepramukaan dan metode kepramukaanprinsip dasar kepramukaan dan metode kepramukaan
prinsip dasar kepramukaan dan metode kepramukaan
 
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 4 KURIKULUM MERDEKA.pdf
 
UAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfUAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdf
 
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
 
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
 
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptxMETODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
 
MODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdf
MODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdfMODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdf
MODUL AJAR PENDIDIKAN AGAMA ISLAM & BUDI PEKERTI (PAIBP) KELAS 6.pdf
 
Penjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuPenjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwu
 
M5 Latihan Program Prolog Aritmatika.pptx
M5 Latihan Program Prolog Aritmatika.pptxM5 Latihan Program Prolog Aritmatika.pptx
M5 Latihan Program Prolog Aritmatika.pptx
 
Ppt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptxPpt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptx
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
 
Materi E-modul Ekosistem kelas X SMA.docx
Materi E-modul Ekosistem kelas X SMA.docxMateri E-modul Ekosistem kelas X SMA.docx
Materi E-modul Ekosistem kelas X SMA.docx
 
Variasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar Mengajar
Variasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar MengajarVariasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar Mengajar
Variasi dan Gaya Mengajar, Mata Kuliah Strategi Belajar Mengajar
 
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
 
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
 
Power point materi IPA pada materi unsur
Power point materi IPA pada materi unsurPower point materi IPA pada materi unsur
Power point materi IPA pada materi unsur
 
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
PPDB SMAN 1 SURADE - PROV JABAR 2024 / 2025
 
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
 
Demokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.pptDemokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.ppt
 

Array_dalam_Bahasa_C_bahan4.ppt

  • 1. Array dalam Bahasa C Hamonangan Situmorang STEI-ITB
  • 2. Latar Belakang Array • Sejauh ini cuplikan program yang kita pelajari masih sangat terbatas, karena statement assignment hanya berupa pemberian satu nilai pada satu variabel • Padahal sering kali kita perlu untuk meng-assign ataupun memanipulasi banyak nilai ke sekelompok variabel • Sebagai contoh jika anda membuat program yang membaca 6000 nilai percobaan untuk dihitung nilai rata-rata-nya, akan sangat lucu jika anda menghitungnya dengan cara berikut: rata_rata = (x1 + x2 + x3 + x4 + x5 + + dst )/6000. • Ekspresi matematis berikut akan lebih baik : 2 IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang
  • 3. Pendahuluan (1) • Definsi : Kumpulan nilai dengan tipe data yang sama yang menggunakan nama sama. • Deklarasi Array : – Tipe data elemen array – Nama array – Jumlah elemen array • Contoh : short val[ 200 ]; //declaration val[ 12 ] = 5; //assignment • Jika sebuah array y memiliki n elemen, maka: – Elemen pertama adalah : y[0] – Elemen terakhir adalah : y[n-1] • Contoh : – Short y[4], memiliki elemen y[0], y[1], y[2], y[3] – Tetapi y[4], bukan merupakan elemen array ini. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 3
  • 4. Pendahuluan (2) • Array dapat dibedakan menjadi : – Array berdimensi satu (1D), berpadanan dg vektor di Matematika – Array berdimensi dua (2D), berpadanan dg matriks di Matematika – Array berdimensi banyak • Contoh array integer 1D bernama n yg memiliki 5 elemen, n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9 dideklarasikan sbb: – int n[5] = {1,3,5,7,9}; IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 4 1 3 5 7 9 n 0 1 2 3 4 indeks
  • 5. Alokasi Memory Array (1) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 5 • Hati-hati dengan indeks array – jika ceroboh dapat mengakses data lain – hati-hati pula dengan pointer • Ilustrasi kasus: int a[6]; int anu; Array a[ ] Data lain Memori a[0] a[1] a[2] a[3] a[4] a[5] anu
  • 6. Alokasi Memory Array (2) • Array, seperti halnya variabel biasa ataupun fungsi harusi dideklarasikan terlebih dahulu. • Array dapat dideklarasikan secara global dengan mendeklarasikannya diluar fungsi main • Hati-hati jika anda mendeklarasikannya secara (didalam sebuah fungsi atau main), karena, variabel lokal akan dibentukan dalam stack ketikan fungsi tersebut dibentuk, dan akan dihapus ketika fungsi tersebut dihancurkan (ketika fungsi tersebut selesai dieksekusi). • Mungkin hal ini tidak bermasalah bagi variabel biasa, namun array umumnya akan menuntut jumlah memory yang sangat besar (array 'float mydata[5000]' akan membutuhkan memory sebesar 20000 bytes), sementara stack hanya memiliki kapasitas sekitar 2000 - 4000 bytes • Oleh karena itu untuk array yang besar harus dideklarasikan secara global, atau mempergunakan static statement (static float mydata[5000]; ) jika anda hendak mendeklarasikannya secara local. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 6
  • 7. Alokasi Memory Array (3) • Global arrays selalu bersifat “static” • Local arrays selalubersifat “dynamic” • Alokasi memory space array dan variabel “static” umumnya lebih besar daripada array dan variabel “dynamic” • Untuk membuat local array “static”, deklarasikan secara eksplisit : static short x[200]; • Hati-hati dengan batasan 64 kB pada beberapa compiler IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 7
  • 8. Deklarasi dan Inisialisasi Array • Deklarasi secara global, semua elemen array akan diinisialiasi dengan nilai nol. • Deklarasi secara lokal, elemen array tidak di-inisialisasi. • Contoh-contoh deklarasi dan inisialisasi array : – short x[ 12 ] = { 1, 3, 88}; – double w[ ] = {3.14, 127.0, 22}; • Strings: – char a_name[ 10 ] = “Hello”; – char name[ 20 ] ={‘H’,‘e’,‘l’,’l’,’o’}; • Jika anda akan mendeklarasikan ukuran/dimensi array anda harus menggunakan sebuah nilai atau konstanta, jangan variabel – short x[12]; – Short x[MAX], dimana MAX adalah konstanta IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 8
  • 9. Review Deklarasi Konstanta • Contoh deklarasi konstanta – #define ACONSTANT 300.0 – #define TRUE 1 – #define FALSE 0 • Catatan: – Tidak ada semicolon diakhir deklarasi konstanta – Kesepakatan dalam C: nama konstatnta ditulis dengan menggunakan huruf besar semua. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 9
  • 10. Mengolah Elemen Array • Elemen array dapat diakses dengan bentuk: – nama_array[subscript] untuk dimensi 1 – nama_array[subscript_baris][subscript_kolom] untuk dimensi 2 • Dalam pemrograman harus diusahakan agar tidak terjadi pengaksesan elemen di luar jumlah yang didefinisikan. • Perlu diketahui, C tidak akan memberikan pesan kesalahan apabila terjadi pengaksesan dengan nilai indeks yang berada di luar nilai yang telah didefinisikan. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 10
  • 11. Review Sistem Komputer(1) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 11 CPU OUTPUT (CONSOLE) INPUT (KEYBOARD) HDD ... ... RAM 0 1 2 3 4 5 … … 81345 81346 81347 Alamat (disederhanakan) ... ...
  • 12. Review Sistem Komputer(2) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 12 • Komputer sekarang ini = komputer digital • Komputer ini hanya memahami bilangan digital: ‘0’ and ‘1’ – Disebut BIT (binary digit) – Mewakili tegangan elektronik -5 atau +5 volt (secara mudahnya) • ‘Semua’ bilangan dapat direpresentasikan dengan menggunakan bit ini – 15  1111 (cukup 4 bit) – 253  11111101 (cukup 8 bit) – -2.99x108  1001010100101…10101011 (cukup 32 bit, ilustrasi) • Kebanyakan bit menyulitkan manusia membaca, jadi dikelompokkan – Kelompok 4 bit diwakili dengan bilangan heksa (hexadecimal) • Biasa dinotasikan dengan prefiks 0x • Co: 1001 ditulis 0x9 – Kelompok 8 bit disebut BYTE • Perlu 2 angka heksa • Co: 1000 1111 ditulis 0x8F Biner (4 bit) Desimal Heksa 0000 0 0x0 0001 1 0x1 0010 2 0x2 0011 3 0x3 0100 4 0x4 0101 5 0x5 0110 6 0x6 0111 7 0x7 1000 8 0x8 1001 9 0x9 1010 10 0xA atau 0xa 1011 11 0xB atau 0xb 1100 12 0xC atau 0xc 1101 13 0xD atau 0xd 1110 14 0xE atau 0xe 1111 15 0xF atau 0xf
  • 13. Review Sistem Komputer(3) • Merupakan subsistem komputer yang sering menjadi fokus pemrogram: – Terutama memori primer (RAM) – Memori sekunder lebih banyak diakses sebagai file – Jika tidak disebutkan secara khusus, kata ‘memori’ berarti ‘memori primer’ • Memori merupakan tempat software berada – Jadi, isinya dapat berupa SO, aplikasi atau data – Jika ditelusuri lebih rinci lagi, setiap lokasi dapat berisi perintah dan/atau data (angka, alamat, nilai, dsb.) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 13
  • 14. Review Sistem Komputer(4) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 14 • Lihat ilustrasi – Lebar bit memori saat ini 32 bit (co: Intel Pentium IV) – Prosesor 64 bit sudah mulai muncul (co: AMD Athlon64) Keadaan sebenarnya dalam sistem memori komputer Alamat Memori ... ... ... ... 00000000000100101111000010000100 00000000000000000000000000000001 00000000000100101111000010001000 00000000000000000000000000000010 00000000000100101111000010010100 00010010010001000100100100100110 00000000000100101111000010010000 00100010010001000100100100100110 00000000000100101111000010010100 01001011001100001110100010100110 01011011001100101110101010110110 00000000000100101111000010010110 01000101001010100110011100100010 01000011011100000110101001110110 ... ... ... ... Alamat memori dalam notasi heksa, isi memori dalam notasi desimal Alamat Memori Keterangan ... ... ... ... 0x0012F084 1 int = 32 bit 0x0012F088 2 int = 32 bit 0x0012F08C 3.33 float = 32 bit 0x0012F090 4.44 float = 32 bit 0x0012F094 5.5x1067 double = 64 bit 0x0012F09C 6.6x1078 double = 64 bit ... ... ... ...
  • 15. Review Sistem Komputer(5) • Untuk kemudahan pemrograman, komputer dapat dimodelkan secara sederhana terdiri atas – prosesor (CPU) – memori (RAM) • Sebenarnya, CPU hanya memahami instruksi sederhana, misalnya: – baca data dari sebuah lokasi memori – tulis data ke sebuah lokasi memori – jumlahkan dua bilangan – bandingkan dua bilangan • Ingat, semua ini direpresentasikan dalam bilangan biner! – Dinamakan BAHASA MESIN – Sebuah program merupakan seruntunan instruksi-instruksi dan data dalam bahasa mesin ini IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 15
  • 16. Review Sistem Komputer(6) • Karena manusia mengalami kesulitan ketika harus memberikan perintah dalam bahasa mesin – Diciptakanlah bahasa pemrograman yang lebih mendekati bahasa manusia (terutama: bahasa Inggris) – COMPILER atau INTERPRETER bertindak sebagai penerjemah bahasa tingkat tinggi ini ke bahasa mesin • Compiler – Menerjemahkan dari file teks bahasa tingkat tinggi ke file biner bahasa mesin • Co: hello.cpp (file teks bahasa C++)  hello.exe (file biner bahasa mesin) • Interpreter – Menerjemahkan on-the-fly, instruksi per instruksi, jadi tidak menghasilkan file binernya • Co: hello.bas (file teks bahasa BASIC)  dijalankan di BASIC prompt • Co: hello.m (file teks bahasa Matlab)  dijalankan di Matlab prompt IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 16
  • 17. Review Sistem Komputer(7) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 17 C++ Program int main() { int i=1; . . . Machine Language Program 01001001 10010100 C Compiler file teks         file biner (bahasa C++) (bahasa mesin) coba.cpp coba.exe
  • 18. Review Sistem Komputer(8) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 18 set memory[801] to hold 00000001 set memory[802] to hold 00000000 if memory[802] = 10 jump to inst #8 increment memory[802] set memory[803] to 2 times memory[801] put memory[803] in to memory[801] jump to instruction #3 print memory[801] x=1; i=0; while (i!=10) { i++; x=x*2; } printf("%d",x); { Proses penerjemahan bahasa C/C++ ke bahasa mesin Keterangan: bahasa mesin di bawah-kanan ini sebenarnya berupa angka- angka biner (‘dimanusiawikan’ untuk memudahkan pemahaman)
  • 19. Review Sistem Komputer(9) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang 19 • Biasanya, proses penterjemahan itu beberapa tahap – Melalui bahasa assembly ST 1,[801] ST 0,[802] TOP: BEQ [802],10,BOT INCR [802] MUL [801],2,[803] ST [803],[801] JMP TOP BOT: LD A,[801] CALL PRINT 00000000001001011101001100000000 00000000001001001101010000000000 00000000100010100100100111110000 00000000010001000101010000000000 00000000010010001010011110100011 00000000111001011010101100000010 00000000001010010000000000000000 00000000110101010000000000000000 00000000110101001010100000000000 00000000100100010100010000000000 x=1; i=0; while (i!=10) { i++; x=x*2; } printf("%d",x); Bahasa C Bahasa Assembly Bahasa Mesin