materi 5 nama dan environment

29
Materi 5 Nama dan Environment Dasar-Dasar Pemrograman

Upload: ernie

Post on 21-Jan-2016

65 views

Category:

Documents


0 download

DESCRIPTION

Materi 5 Nama dan Environment. Dasar-Dasar Pemrograman. Pentingnya Penamaan. Dalam membuat program, alur program harus logis dan masuk akal. Untuk itu perlu dipikirkan penamaan yang baik. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Materi 5 Nama dan  Environment

Materi 5Nama dan Environment

Dasar-Dasar Pemrograman

Page 2: Materi 5 Nama dan  Environment

Pentingnya Penamaan

Dalam membuat program, alur program harus logis dan masuk akal. Untuk itu perlu dipikirkan penamaan yang baik.

Pemanggilan nama prosedur dan parameter bersifat case-sensitive (huruf besar dan kecil dibedakan). Hindari penamaan menggunakan tanda baca seperti !@#$%^&*() dan sebagainya.

Page 3: Materi 5 Nama dan  Environment

Menyesuaikan Argumen dan Parameter

Perhatikan potongan program berikut :

def r3(p) = p(); p(); p() enddefr3(‘+’)

Program tersebut tidak masuk akal.r3(‘+’) akan menghasilkan ‘+’(); ‘+’(); ‘+’()

Seharusnya (‘….’) diisi dengan nama prosedur, bukan sembarang karakter.

Page 4: Materi 5 Nama dan  Environment

Menyesuaikan Argumen dan Parameter

Perhatikan potongan program berikut :

def r3(p) = p(); p(); p() enddefr3()

Program tersebut juga tidak masuk akal.r3() tidak akan memanggil prosedur apapun.

Page 5: Materi 5 Nama dan  Environment

Menyesuaikan Argumen dan Parameter

Perhatikan potongan program berikut :def r3(p) = p(); p(); p() enddefr3(r3)

Program tersebut juga tidak masuk akal.r3(r3) akan menghasilkan r3(); r3(); r3() yang jika dieksekusi masing-masing r3() tidak akan memanggil prosedur apapun.

Page 6: Materi 5 Nama dan  Environment

Menyesuaikan Argumen dan Parameter

Perhatikan potongan program berikut :

def A(x) = x(); printchar(x) enddef

Program tersebut akan menghasilkan error.Kita harus membedakan penulisan nama prosedur dan penulisan karakter. Seharusnya :

def A(x) = x(); printchar(‘x’) enddef

Page 7: Materi 5 Nama dan  Environment

Memilih Nama untuk Parameter

Perhatikan potongan program berikut :def r3(stop) = stop(); stop(); stop() enddefdef r3(start) = start(); start(); start() enddefdef r3(no) = no(); no(); no() enddef

Hindari penggunaan nama yang sama untuk parameter yang berbeda. Sebaiknya :

def r1(stop) = stop(); stop(); stop() enddefdef r2(start) = start(); start(); start() enddefdef r3(no) = no(); no(); no() enddef

Page 8: Materi 5 Nama dan  Environment

Nama Parameter dan Alias

Perhatikan potongan program berikut :def r3(r3) = r3(); r3(); r3() enddefdef one() = print* enddefdef two() = NL; r3(one) enddefr3(one); r3(two)

Akan menghasilkan output yang sama dengan program berikut ini:

def r3(r3) = r3(); r3(); r3() enddefdef one() = print* enddefdef two() = NL; r3(one) enddefone(); one(); one(); r3(two)

Page 9: Materi 5 Nama dan  Environment

Nama Parameter dan Alias

Perhatikan potongan program berikut :def r3(r3) = r3(); r3(); r3() enddefdef one() = print* enddefdef two() = NL; r3(one) enddefr3(one); r3(two)

Akan menghasilkan output yang sama dengan program berikut ini:

def r3(r3) = r3(); r3(); r3() enddefdef one() = print* enddefdef two() = NL; r3(one) enddefprint*; print*; print*; r3(two)

Page 10: Materi 5 Nama dan  Environment

Nama Parameter dan Environments

Perhatikan potongan program berikut :def r3(r3) = r3(); r3(); r3() enddefdef one() = print* enddefdef two() = NL; r3(one) enddefr3(one); r3(two)

Jika dieksekusi, compiler akan menghasilkan environment (lingkungan kerja) yang terstruktur sebagai berikut :

Page 11: Materi 5 Nama dan  Environment

Env 1

r3=λ(r3).(r3();r3();r3())one= λ().print*two= λ().(NL;r3(one))

Execute r3(one)

Execute r3(two)Env 2

r3=two

Execute r3()=two()

Execute r3()=two()Execute r3()=two()

Env 3Execute NLExecute r3(one)

NEWLINE

Env 4r3=oneExecute r3()=one()

Execute r3()=one()Execute r3()=one()

Env 5

Execute print*

*

**

NEWLINE, *, *, *

NEWLINE, *, *, *

Jadi, hasil akhir program adalah :NEWLINE, *, *, *NEWLINE, *, *, *NEWLINE, *, *, *

* * ** * ** * *ata

u

Page 12: Materi 5 Nama dan  Environment

Membuat prosedur berparameter

Perhatikan potongan program berikut :def r3(p) = p(); p(); p() enddefdef one() = print* enddefdef line() = NL; r3(one) enddefr3(line)

Jika dieksekusi, program tersebut akan menghasilkan output :

* * ** * ** * *

Page 13: Materi 5 Nama dan  Environment

Membuat prosedur berparameter

Jika saya ingin menghasilkan output :

Maka saya harus merubah program sebagai berikut :

def r3(p) = p(); p(); p() enddefdef one() = printchar(‘+’) enddefdef line() = NL; r3(one) enddefr3(line)

+ + ++ + ++ + +

Page 14: Materi 5 Nama dan  Environment

Membuat prosedur berparameter

Untuk mempermudah pekerjaan saya, saya dapat membuat sebuah prosedur berparameter, sehingga jika saya ingin membuat bentuk yg sama dengan karakter yg berbeda, saya hanya perlu merubah parameternya saja:Prosedur yg saya buat adalah sebagai berikut :

def square(c) = def r3(p) = p(); p(); p() enddef def one() = printchar(c) enddef def line() = NL; r3(one) enddef r3(line)

enddef

Page 15: Materi 5 Nama dan  Environment

Membuat prosedur berparameterSehingga, jika saya ingin merubah dalam bentuk lain, saya hanya perlu mengganti parameternya saja :def square(c) = def r3(p) = p(); p(); p() enddef

def one() = printchar(c) enddef def line() = NL; r3(one) enddef r3(line)

enddefsquare(‘+’)square(‘A’)square(‘#’)

A A AA A AA A A

+ + ++ + ++ + +

# # # # # # # # #

Page 16: Materi 5 Nama dan  Environment

Tipe-tipe Nama

Ada 3 tipe nama dalam program, yaitu free name, bound name, dan binding name.Perhatikan rumus berikut :

X x Y where Y=7 (X dikali Y, dimana Y=7)Terdapat 3 nama, yaitu X, Y, dan 7. Selain itu, ada 3 simbol yaitu x (kali), where, dan = (sama dengan). Hanya Y yang diberi nilai awal, sehingga X dan 7 disebut free name, sedangkan Y disebut bound name. Sehingga rumus dapat diganti menjadi :

X x 7Angka 7 di dalam X x 7 disebut binding name, yaitu nama alias yang menggantikan bound name (Y).

Page 17: Materi 5 Nama dan  Environment

Tipe-tipe Nama

Perhatikan potongan program berikut :def a() = printchar(b); printchar(b) enddefa(); a()

Ada 3 nama dalam program tersebut : a, b, dan printchar. Printchar adalah nama konstan di dalam Pascal, sehingga compiler tidak mengolahnya. a adalah bound name karena a digantikan oleh printchar(b), sementara b adalah free name. Jika b diganti dengan ‘+’, maka outputnya adalah ++++, jika b diganti dengan *, outputnya adalah ****.

Page 18: Materi 5 Nama dan  Environment

Tipe-tipe Nama

Perhatikan potongan program berikut :def a() = printchar(b); printchar(b) enddefa(); a()

Jika kita merubah a dengan ‘***’ dan b dengan ‘+’, apakah akan merubah hasilnya ? TIDAK. Hasil outputnya tetap ++++.

Jadi, jika kita merubah free name dengan sebuah nilai, compiler akan mengembalikan nilai tersebut, tetapi jika kita merubah bound name dengan sebuah nilai, compiler akan mengerjakan apa yang ada dalam nilai tersebut.

Page 19: Materi 5 Nama dan  Environment

Definisi di dalam definisi

Perhatikan potongan program berikut :def pat(c) = def r3(p)=p();p();p() enddef

def x()=printchar(c) enddef NL;r3(x)

enddefpat(‘*’)Program di atas memiliki 3 free name yg kesemuanya adalah konstan yaitu printchar, NL, dan ‘*’, dan memiliki bound name yaitu : pat, c, r3, x, dan p. Jika dijalankan, program akan menghasilkan ***.

Page 20: Materi 5 Nama dan  Environment

Definisi di dalam definisiPerhatikan potongan program berikut :

def pat(c) = def r3(p)=p();p();p() enddef def x()=printchar(c) enddef NL;r3(x)

enddefpat(‘*’)

Bandingkan dengan yg berikut :def pat(c) = def r3(c)=c();c();c() enddef

def x()=printchar(c) enddef NL;r3(x)

enddefpat(‘*’)

Page 21: Materi 5 Nama dan  Environment

Definisi di dalam definisi

Jika dijalankan, kedua program akan menghasilkan output yg sama, yaitu ***. Tapi tentu saja kita akan semakin bingung, karena penamaannya menggunakan huruf yang sama. Jadi, meskipun kita bebas menggunakan karakter apapun untuk penamaan, sebaiknya kita tidak menggunakan karakter yang sama untuk parameter/prosedur yg berbeda.

Page 22: Materi 5 Nama dan  Environment

Ringkasan

Procedure

No return

function nama :type;

procedure nama(param);

function nama(param) : type;

procedure nama;

With return

Page 23: Materi 5 Nama dan  Environment

Ringkasan

procedure nama;

procedure BENDA;begin write(‘*’);end;

begin BENDA;end.

Page 24: Materi 5 Nama dan  Environment

Ringkasan

procedure nama(param);

procedure BENDA(x : char);begin write(x);end;begin BENDA(‘*’); BENDA(‘+’);end.

Page 25: Materi 5 Nama dan  Environment

Ringkasan

function nama :type;

function BENDA : char;begin BENDA:=‘*’;end;

begin write(BENDA); BENDA;end.

Page 26: Materi 5 Nama dan  Environment

Ringkasan

function nama(param) : type;

function BENDA(x : char ) : char;begin BENDA:=x;end;

begin write(BENDA(‘*’)); write(BENDA(‘+’));end.

Page 27: Materi 5 Nama dan  Environment

Latihan

Kerjakan soal berikut ini

Buat program Pascal untuk menampilkan*******Procedure B1 - cetak 1 karakterProcedure Bn - cetak n karakterKarakter yang dicetak tidak harus *, bisa sembarang karakter

Page 28: Materi 5 Nama dan  Environment
Page 29: Materi 5 Nama dan  Environment

-Selesai-Materi 5