Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma dan Pemrograman 2C Scope Variabel dan Memori Aurelio Rahmadian.

Presentasi serupa


Presentasi berjudul: "Algoritma dan Pemrograman 2C Scope Variabel dan Memori Aurelio Rahmadian."— Transcript presentasi:

1 Algoritma dan Pemrograman 2C Scope Variabel dan Memori Aurelio Rahmadian

2 Variabel Variabel digunakan dalam program untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung.

3 Variabel Umumnya dideklarasikan dengan format: type var_name. type menandakan jenis variabel.

4 Ciri Variabel ◦ Made up of letters, digits and underscore. ◦ Must start with a non-digit. ◦ Case sensitive.

5 Scope Variabel Variabel Otomatis Variabel Eksternal Variabel Statis Variabel Dinamis

6 Variabel Otomatis  Variabel yg didefinisikan dalam suatu fungsi berlaku sebagai variabel lokal bagi fungsi dengan sifat: Variabel hanya akan diciptakan pada saat fungsi dipanggil. Saat fungsi berakhir, variabel otomatis akan hilang. Tidak perlu ada inisialisasi pada variabel. Hanya dapat diakses dalam fungsi saja.

7 #include int jml2bil( int x1, int x2 ) // fungsi standard { // var x1 dan x2 adlh var otomatis int jml; jml = x1 + x2 ; return(jml); } int main(void) { int y,a,b; cout << "Masukkan 2 bilangan \n"; cin >> a >> b; y = jml2bil(a,b); cout << "a is " << a << endl; cout << "b is " << b << endl; cout << "y is " << y << endl; return(0); }

8 Variabel Eksternal  Adalah suatu variabel yg didefinisikan di luar fungsi, yg dikenal sebagai variabel global.  Catatan: Usahakan menggunakan seminim mungkin suatu variabel global. Variabel ini mudah sekali berubah oleh pernyataan penugasaan yang letaknya bisa dimana saja. Ini bisa menimbulkan efek samping yang sulit untuk melacaknya, terutama untuk program yang besar. Variabel global mempunyai durasi selama program dieksekusi atau, memori yg digunakan untuk variabel ini dipertahankan selama program dieksekusi.

9 #include Int A=5; // var eksternal int jml2bil( int x1, int x2 ) // fungsi standard { int jml; jml = x1 + x2 + A; return(jml); } int main(void) { int y,a,b; cout << "Masukkan 2 bilangan \n"; cin >> a >> b; y = jml2bil(a,b); cout << "a is " << a << endl; cout << "b is " << b << endl; cout << "y is " << y << endl; return(0); }

10 Variabel Statis  Variabel ini dapat berupa variabel lokal atau global dengan sifat: Jika berupa variabel lokal maka variabel tetap hanya dapat diakses pada fungsi yg mendefinisikannya. Variabel tidak hilang saat berakhir. Inisialisasi hanya dilakukan sekali. Jika berupa var global dapat diakses dari semua file yg didefinisikan (hati hati dalam menggunakannya). Caranya dengan menambah kata static type-data var-name.

11 #include int fncstatis(int); void main( ) { int in,out; in = 1 ; while(in!=0) { cout << "Enter input value:"; cin>>in; out=fncstatis(in); cout<<"Result:"<< out; } cout<<" End of Program"<< out; } int fncstatis(int x) { static int a=0; static int b=0; a++; b=b+x; return(b/a); }

12 Memori Memori dapat menyimpan program dan data. Setiap data merupakan kumpulan dari beberapa bit. Umumnya memori diatur dalam kumpulan 8 bit. Setiap byte memiliki address.

13 Penggambaran Memori CPU MEMORY Address

14 Program Sederhana #Instruction 1Set memory[801] to hold Set memory[802] to hold If memory[802] = 10 jump to instruction #8 4increment memory[802] 5set memory[803] to 2 times memory[801] 6put memory[803] in to memory[801] 7jump to instruction #3 8print memory[801]

15 Penggambaran Program CPU Instruction #1 Instruction #2 Instruction #3 Instruction #4 Instruction #5 Instruction #6 MEMORY Address

16 Human vs Machine Programs The computer can only understand the bits (the encoded program) Humans don't like to deal with bits, so they developed english-like abbreviations for programs. Assembly Language Machine Language

17 Assembly & Machine Language ST 1,[801] ST 0,[802] TOP:BEQ [802],10,BOT INCR [802] MUL [801],2,[803] ST [803],[801] JMPTOP BOT:LD A,[801] CALL PRINT Assembly Language Machine Language

18 High Level Language set memory[801] to hold set memory[802] to hold if memory[802] = 10 jump to instruction #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); }

19 Tata Letak Memori STACK HEAP DATA KODE


Download ppt "Algoritma dan Pemrograman 2C Scope Variabel dan Memori Aurelio Rahmadian."

Presentasi serupa


Iklan oleh Google