1 / 18

Array dalam Bahasa C

Array dalam Bahasa C. Alvano Yulian, MSi STMIK Jakarta. 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

bat
Download Presentation

Array dalam Bahasa C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Array dalam Bahasa C Alvano Yulian, MSi STMIK Jakarta

  2. Pendahuluan (1) • Definsi : Kumpulan nilaidengantipe data yang sama yang menggunakannamasama. • Deklarasi Array : • Tipe data elemen array • Nama array • Jumlahelemen array • Contoh : short val[ 200 ]; //declaration val[ 12 ] = 5; //assignment • Jikasebuah array y memiliki n elemen, maka: • Elemenpertamaadalah : y[0] • Elementerakhiradalah : y[n-1] • Contoh : • Short y[4], memilikielemen y[0], y[1], y[2], y[3] • Tetapi y[4], bukanmerupakanelemen array ini. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  3. Pendahuluan (2) • Array dapatdibedakanmenjadi : • Array berdimensisatu (1D), berpadanan dg vektordiMatematika • Array berdimensidua (2D), berpadanan dg matriksdiMatematika • Array berdimensibanyak • Contoh array integer 1D bernamanygmemiliki 5 elemen,n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9 dideklarasikansbb: • int n[5] = {1,3,5,7,9}; n 1 3 5 7 9 indeks 0 1 2 3 4 IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  4. Alokasi Memory Array (1) • Hati-hati dengan indeks array • jika ceroboh dapat mengakses data lain • hati-hati pula dengan pointer • Ilustrasi kasus: • int a[6]; • int anu; Memori a[0] a[1] a[2] a[3] a[4] a[5] anu Array a[ ] Data lain IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  5. Alokasi Memory Array (2) • Array, sepertihalnyavariabelbiasaataupunfungsiharusidideklarasikanterlebihdahulu. • Array dapatdideklarasikansecara global denganmendeklarasikannyadiluarfungsi main • Hati-hatijikaandamendeklarasikannyasecara (didalamsebuahfungsiatau main), karena, variabellokalakandibentukandalam stack ketikanfungsitersebutdibentuk, danakandihapusketikafungsitersebutdihancurkan (ketikafungsitersebutselesaidieksekusi). • Mungkinhalinitidakbermasalahbagivariabelbiasa, namun array umumnyaakanmenuntutjumlah memory yang sangatbesar (array 'float mydata[5000]' akanmembutuhkan memory sebesar 20000 bytes), sementara stack hanyamemilikikapasitassekitar 2000 - 4000 bytes • Olehkarenaituuntuk array yang besarharusdideklarasikansecara global, ataumempergunakanstatic statement (static float mydata[5000]; ) jikaandahendakmendeklarasikannyasecara local. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  6. Alokasi Memory Array (3) • Global arrays selalubersifat “static” • Local arrays selalubersifat “dynamic” • Alokasi memory space array danvariabel “static” umumnyalebihbesardaripada array danvariabel “dynamic” • Untukmembuat local array “static”, deklarasikansecaraeksplisit : static short x[200]; • Hati-hatidenganbatasan 64 kBpadabeberapa compiler IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  7. Deklarasi dan Inisialisasi Array • Deklarasisecara global, semuaelemen array akandiinisialiasidengannilai nol. • Deklarasisecaralokal, elemen array tidakdi-inisialisasi. • Contoh-contohdeklarasidaninisialisasi 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’}; • Jikaandaakanmendeklarasikanukuran/dimensi array andaharusmenggunakansebuahnilaiataukonstanta, janganvariabel • short x[12]; • Short x[MAX], dimana MAX adalahkonstanta 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 dapatdiaksesdenganbentuk: • nama_array[subscript] untukdimensi 1 • nama_array[subscript_baris][subscript_kolom] untukdimensi 2 • Dalampemrogramanharusdiusahakan agar tidakterjadipengaksesanelemendiluarjumlah yang didefinisikan. • Perludiketahui, C tidakakanmemberikanpesankesalahanapabilaterjadipengaksesandengannilaiindeks yang beradadiluarnilai yang telahdidefinisikan. IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  10. Alamat (disederhanakan) RAM 0 1 2 3 4 5 … … 81345 81346 81347 ... ... ... ... Review SistemKomputer(1) OUTPUT (CONSOLE) CPU HDD INPUT (KEYBOARD) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  11. Review SistemKomputer(2) • 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 IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  12. Review Sistem Komputer(3) • Merupakansubsistemkomputer yang seringmenjadifokuspemrogram: • Terutamamemori primer (RAM) • Memorisekunderlebihbanyakdiaksessebagai file • Jikatidakdisebutkansecarakhusus, kata ‘memori’ berarti ‘memori primer’ • Memorimerupakantempat software berada • Jadi, isinyadapatberupa SO, aplikasiatau data • Jikaditelusurilebihrincilagi, setiaplokasidapatberisiperintahdan/atau data (angka, alamat, nilai, dsb.) IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  13. Review Sistem Komputer(4) • Lihat ilustrasi • Lebar bit memori saat ini 32 bit(co: Intel Pentium IV) • Prosesor 64 bit sudah mulai muncul(co: AMD Athlon64) Memudahkan Manusia Membaca IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  14. Review Sistem Komputer(5) • Untukkemudahanpemrograman,komputerdapatdimodelkansecarasederhanaterdiriatas • prosesor (CPU) • memori (RAM) • Sebenarnya, CPU hanyamemahamiinstruksisederhana, misalnya: • baca data darisebuahlokasimemori • tulis data kesebuahlokasimemori • jumlahkanduabilangan • bandingkanduabilangan • Ingat, semuainidirepresentasikandalambilanganbiner! • Dinamakan BAHASA MESIN • Sebuah program merupakanseruntunaninstruksi-instruksidan data dalambahasamesinini IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  15. Review Sistem Komputer(6) • Karenamanusiamengalamikesulitanketikaharusmemberikanperintahdalambahasamesin • Diciptakanlahbahasapemrograman yang lebihmendekatibahasamanusia (terutama: bahasaInggris) • COMPILER atau INTERPRETER bertindaksebagaipenerjemahbahasatingkattinggiinikebahasamesin • Compiler • Menerjemahkandari file teksbahasatingkattinggike file binerbahasamesin • Co: hello.cpp (file teksbahasa C++)  hello.exe (file binerbahasamesin) • Interpreter • Menerjemahkan on-the-fly, instruksi per instruksi, jaditidakmenghasilkan file binernya • Co: hello.bas (file teksbahasa BASIC) dijalankandi BASIC prompt • Co: hello.m (file teksbahasaMatlab) dijalankandiMatlab prompt IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  16. Review Sistem Komputer(7) C Compiler C++ Program int main() { int i=1; . . . Machine Language Program 01001001 10010100 file teks  file biner (bahasa C++) (bahasa mesin) coba.cppcoba.exe IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  17. Review Sistem Komputer(8) Proses penerjemahan bahasa C/C++ ke bahasa mesin Keterangan: bahasa mesin di bawah-kanan ini sebenarnya berupa angka-angka biner (‘dimanusiawikan’ untuk memudahkan pemahaman) x=1; i=0; while (i!=10) { i++; x=x*2; } printf("%d",x); 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] { IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

  18. Bahasa C Bahasa Assembly Bahasa Mesin x=1; i=0; while (i!=10) { i++; x=x*2; } printf("%d",x); 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 Review Sistem Komputer(9) • Biasanya, proses penterjemahan itu beberapa tahap • Melalui bahasa assembly IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

More Related