Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

T0616 ALGORITMA DAN PEMROGRAMAN (11-12)

Presentasi serupa


Presentasi berjudul: "T0616 ALGORITMA DAN PEMROGRAMAN (11-12)"— Transcript presentasi:

1 T0616 ALGORITMA DAN PEMROGRAMAN (11-12)
SUBANDIJO UNIVERSITAS BINA NUSANTARA FAKULTAS ILMU KOMPUTER JAKARTA, 2005 2/24/2019 T Algoritma dan Pemrograman

2 T0616 - Algoritma dan Pemrograman
LINGKUP IDENTIFIER (1) IDENTIFIER GLOBAL: IDENTIFIER YANG DIDEKLARASIKAN DILUAR FUNGSI DAN DILETAKKAN DI ATAS SEMUA FUNGSI YANG ADA DALAM SUATU PROGRAM. LINGKUP MELIPUTI SELURUH PROGRAM IDENTIFIER YANG DIDEKLARASIKAN SECARA GLOBAL DAPAT DIDEKLARASIKAN KEMBALI (REDECLARED) DI DALAM FUNGSI. 2/24/2019 T Algoritma dan Pemrograman

3 T0616 - Algoritma dan Pemrograman
LINGKUP IDENTIFIER (2) IDENTIFIER LOKAL: IDENTIFIER YANG DIDEKLARASIKAN DI DALAM SUATU FUNGSI, TERMASUK DAFTAR PARAMETER. LINGKUP TERBATAS PADA FUNGSI. JUGA DIKENAL DENGAN NAMA AUTOMATIC DAN STACK 2/24/2019 T Algoritma dan Pemrograman

4 T0616 - Algoritma dan Pemrograman
LINGKUP IDENTIFIER (3) KEUNTUNGAN MENGGUNAKAN IDENTIFIER GLOBAL ADALAH TRANSFER DATA ANTAR-FUNGSI LEBIH SEDERHANA. KERUGIAN MENGGUNAKAN IDENTIFIER GLOBAL DATA TIDAK TERJAGA DENGAN BAIK. SETIAP FUNGSI DAPAT MENGUBAH NILAI VARIABEL TANPA SEPENGETAHUAN FUNGSI LAIN SEHINGGA PROGRAM TIDAK MODULAR. JIKA PROGRAM MAKIN BESAR MAKA PELUANG TERJADINYA EROR MAKIN BESAR PULA SEHINGGA SULIT UNTUK MELACAK KESALAHAN. 2/24/2019 T Algoritma dan Pemrograman

5 T0616 - Algoritma dan Pemrograman
LINGKUP IDENTIFIER (4) KEUNTUNGAN MENGGUNAKAN IDENTIFIER LOKAL: CONVENIENT. EFFICIENT. LOCAL COPIES. KERUGIAN MENGGUNAKAN IDENTIFIER LOKAL: SHORT LIFETIME . RESTRICTED COMMUNICATION. 2/24/2019 T Algoritma dan Pemrograman

6 T0616 - Algoritma dan Pemrograman
LINGKUP IDENTIFIER (4) int x; fungsi1() { } int y; fungsi2() { int z; … scope vari. z scope variable x main() { scope variable y int y; z, y : hanya dikenal main … z di main <> z di fungsi2() 2/24/2019 T Algoritma dan Pemrograman

7 T0616 - Algoritma dan Pemrograman
CONTOH 1 PROGRAM BERIKUT MENUNJUKKAN PERUBAHAN NILAI VARIA-BEL X, GLOBAL SEKALIGUS LOKAL YANG SALING MEMPENGA-RUHI. #include<stdio.h> int x = 10; F(int n){ return x+=n; } main() { int x=5; x += F(x); printf(“\n x = %d”, x); x = = 15 x = 5 + F(5) = = 20 2/24/2019 T Algoritma dan Pemrograman

8 T0616 - Algoritma dan Pemrograman
CONTOH 2 APA KOMENTAR ANDA TENTANG PROGRAM BERIKUT? MANA PERNYATAAN YANG BENAR DAN MANA YANG SALAH? main() { x = 11; int x; { x = 22; y = 33; int y; x = 44; y = 55; } x = 66; y = 77; 2/24/2019 T Algoritma dan Pemrograman

9 T0616 - Algoritma dan Pemrograman
KLAS PENYIMPANAN LINGKUP (LOKAL | GLOBAL) DAN PERMANENCE ATAU UMUR VARIABEL: AUTO, EXTERN, STATIC, DAN REGISTER. KECUALI EXTERN YANG GLOBAL, VARIABEL YANG LAIN SEMUANYA LOKAL. KECUALI REGISTER YANG DISIMPAN DI MIKROPROSESOR, SEMUA VARAIBEL LAIN DISIMPAN DI RAM. 2/24/2019 T Algoritma dan Pemrograman

10 T0616 - Algoritma dan Pemrograman
AUTO DIDEKLARASIKAN DI DALAM FUNGSI. LINGKUP LOKAL TERHADAP FUNGSI. SEMBARANG VARIABEL YANG DIDEKLARASIKAN DI DALAM FUNGSI DIARTIKAN SEBAGAI VARIA-BEL OTOMATIS. KATA KUNCI AUTO BERSIFAT OPSIONAL KARE-NA DEFAULT ADALAH OTOMATIS. DIBENTUK SAAT FUNGSI DIPANGGIL, DIHAPUS SAAT FUNGSI SELESAI DIEKSEKUSI. NAMA LAIN ADALAH LOCAL DAN STACK. 2/24/2019 T Algoritma dan Pemrograman

11 T0616 - Algoritma dan Pemrograman
CONTOH long Fak(auto int n) { auto int i; auto long prod = 1; if(n>1) for( i =2; i <=n; i++) prod *= i; return (prod); } 2/24/2019 T Algoritma dan Pemrograman

12 T0616 - Algoritma dan Pemrograman
EXTERN DIDEKLARASIKAN DI LUAR FUNGSI. LINGKUPNYA GLOBAL. DIGUNAKAN ANTARA LAIN UNTUK PASSING PARAMETER DAN KOMPILASI TERPISAH. KATA KUNCI EXTERN SEBAIKNYA DITULIS DI DALAM FUNGSI YANG AKAN MENGGUNAKAN VARIABEL EKSTERNAL. 2/24/2019 T Algoritma dan Pemrograman

13 T0616 - Algoritma dan Pemrograman
CONTOH 1 #Iinclude<stdio.h> int x = 1947; void main() { extern int x; void cetak(void); printf(“\nmain(): x = %d”,x); cetak(); } void cetak(void) { extern int x; printf(“\ncetak(): x=%d”, x); } OUTPUT: main(): x = 1947 cetak(): x = 1947; 2/24/2019 T Algoritma dan Pemrograman

14 T0616 - Algoritma dan Pemrograman
CONTOH 2 MAIN.C DAN FUNGSI.C DI-KOMPILASI TERPISAH. int gX; main(){ int aZ; gx = 1947; aZ = fungsi(gX); printf(“\n%d\t%d”, aZ,gX); } extern int gX; fungsi(int argY){ int iZ; gX = 7491; iZ = argY; return(iZ); } 2/24/2019 T Algoritma dan Pemrograman

15 T0616 - Algoritma dan Pemrograman
STATIC (1) DIDEKLARASIKAN DI DALAM FUNGSI DAN DIAWALI DENGAN KATA KUNCI STATIC. LINGKUPNYA LOKAL TERHADAP FUNGSI. NILAI VARIABEL STATIC TETAP ADA MESKIPUN BLOK DI MANA IA DIDEFINISIKAN BERAKHIR. TIDAK HILANG SAAT SAAT FUNGSI SELESAI DIEKSEKUSI. NILAI TETAP ADA DI MEMORI HISTORY SENSITIVE. 2/24/2019 T Algoritma dan Pemrograman

16 T0616 - Algoritma dan Pemrograman
STATIC (2) NILAI VARIABEL STATIC DALAM FUNGSI TETAP DIPERTAHANKAN DI ANTARA PEMANGGILAN FUNGSI YANG SAMA. DAPAT DIBERI NILAI AWAL DENGAN DEFAULT = 0. INISIALISASI HANYA DILAKUKAN SATU KALI YAITU SAAT ALOKASI MEMORI YANG DILAKU-KAN OLEH KOMPILATOR. 2/24/2019 T Algoritma dan Pemrograman

17 T0616 - Algoritma dan Pemrograman
CONTOH void main() { int i; void tes(); for( i=1; i<4. i++) { printf(“\nIterasi ke- %d”,i); tes(); } void tes() { int lupa = 0; static int ingat = 1; printf(“\nLupa =%d, Ingat = %d”, lupa++, ingat++); } 2/24/2019 T Algoritma dan Pemrograman

18 T0616 - Algoritma dan Pemrograman
EXTERNAL STATIC KLAS PENYIMPANAN STATIC JUGA DAPAT DIAPLIKASIKAN PADA VARIABEL EXTERNAL IA HANYA DAPAT DIAKSES OLEH KODE YANG ADA PADA FILE DI MANA IA DIDEKLA-RASIKAN. /* FILE: XXX.C */ static int count; static char name[8]; main() { … /* program body */ } 2/24/2019 T Algoritma dan Pemrograman

19 T0616 - Algoritma dan Pemrograman
REGISTER (1) DEKLARASI DI DALAM FUNGSI DAN DIAWALI DENGAN KATA KUNCI REGISTER. LINGKUP LOKAL. DISIMPAN DI REGISTER MIKROPROSESOR, BUKAN DI MEMORI. DIGUNAKAN UNTUK MEMPERCEPAT EKSEKUSI. TIDAK SEMUA TIPE VARIABEL DAPAT BERUPA VARIABEL REGISTER, BIASANYA HANYA UNTUK INTEGER, CHAR, DAN POINTER. 2/24/2019 T Algoritma dan Pemrograman

20 T0616 - Algoritma dan Pemrograman
REGISTER (2) BANYAK VARIABEL REGISTER SANGAT TERBA-TAS, BIASANYA DUA ATAU TIGA. MENDEKLARASIKAN SUATU VARIABEL SEBAGAI VARIABEL REGISTER BELUM TENTU DITERIMA. JIKA TIDAK DITERIMA IA AKAN DIPERLAKUKAN SEBAGAI VARAIBEL OTOMATIS. DEKLARASI HANYA BERLAKU JIKA ADA REGISTER YANG KOSONG. 2/24/2019 T Algoritma dan Pemrograman

21 T0616 - Algoritma dan Pemrograman
CONTOH (1) #include<stdio.h> #include<time.h> main() { time_t awal, akhir; register int f, f1, f2; int i, j, n=23; time(&awal); for(j=1; j<=30000;j++) { f1=1; f2=1; for(i=1; i<=n; i++) { f=(i<3? 1: f1+f2; f2=f1; f1=f; } time(&akhir); printf(“\ni=%d Fib=%d”,i,f); printf(“\Elapsed time =%.01f dtk”,difftime(akhir,awal); 2/24/2019 T Algoritma dan Pemrograman

22 T0616 - Algoritma dan Pemrograman
CONTOH (2) main() { register unsigned int cepat; unsigned int lambat; long awalLoop, akhirLoop; long timer(); cepat=1; awalLoop=timer(); while(cepat<65535) { cepat+=1; } akhirLoop = timer(); waktu=akhirLoop awalLoop; printf(“\nWaktu eksekusi 1= %d clock”, waktu); lambat=1; awalLoop=timer(); while(lambat<65535) { lambat+=1; } akhirLoop = timer(); waktu=akhirLoop awalLoop; printf(“\nWaktu eksekusi 2= %d clock”, waktu); 2/24/2019 T Algoritma dan Pemrograman

23 T0616 - Algoritma dan Pemrograman
THE END “...ALL YOU NEED IS LOVE…” 2/24/2019 T Algoritma dan Pemrograman


Download ppt "T0616 ALGORITMA DAN PEMROGRAMAN (11-12)"

Presentasi serupa


Iklan oleh Google