1 / 29

Materi 5 Nama dan Environment

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.

ernie
Download Presentation

Materi 5 Nama dan Environment

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. Materi 5Nama dan Environment Dasar-Dasar Pemrograman

  2. 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.

  3. Menyesuaikan Argumen dan Parameter Perhatikan potongan program berikut : def r3(p) = p(); p(); p() enddef r3(‘+’) Program tersebut tidak masuk akal. r3(‘+’) akan menghasilkan ‘+’(); ‘+’(); ‘+’() Seharusnya (‘….’) diisi dengan nama prosedur, bukan sembarang karakter.

  4. Menyesuaikan Argumen dan Parameter Perhatikan potongan program berikut : def r3(p) = p(); p(); p() enddef r3() Program tersebut juga tidak masuk akal. r3() tidak akan memanggil prosedur apapun.

  5. Menyesuaikan Argumen dan Parameter Perhatikan potongan program berikut : def r3(p) = p(); p(); p() enddef r3(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.

  6. 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

  7. Memilih Nama untuk Parameter Perhatikan potongan program berikut : def r3(stop) = stop(); stop(); stop() enddef def r3(start) = start(); start(); start() enddef def r3(no) = no(); no(); no() enddef Hindari penggunaan nama yang sama untuk parameter yang berbeda. Sebaiknya : def r1(stop) = stop(); stop(); stop() enddef def r2(start) = start(); start(); start() enddef def r3(no) = no(); no(); no() enddef

  8. Nama Parameter dan Alias Perhatikan potongan program berikut : def r3(r3) = r3(); r3(); r3() enddef def one() = print* enddef def two() = NL; r3(one) enddef r3(one); r3(two) Akan menghasilkan output yang sama dengan program berikut ini: def r3(r3) = r3(); r3(); r3() enddef def one() = print* enddef def two() = NL; r3(one) enddef one(); one(); one(); r3(two)

  9. Nama Parameter dan Alias Perhatikan potongan program berikut : def r3(r3) = r3(); r3(); r3() enddef def one() = print* enddef def two() = NL; r3(one) enddef r3(one); r3(two) Akan menghasilkan output yang sama dengan program berikut ini: def r3(r3) = r3(); r3(); r3() enddef def one() = print* enddef def two() = NL; r3(one) enddef print*; print*; print*; r3(two)

  10. Nama Parameter dan Environments Perhatikan potongan program berikut : def r3(r3) = r3(); r3(); r3() enddef def one() = print* enddef def two() = NL; r3(one) enddef r3(one); r3(two) Jika dieksekusi, compiler akan menghasilkan environment (lingkungan kerja) yang terstruktur sebagai berikut :

  11. Env 1 r3=λ(r3).(r3();r3();r3()) one= λ().print* two= λ().(NL;r3(one)) Execute r3(one) Execute r3(two) Env 2 r3=two Env 3 Execute r3()=two() NEWLINE Execute NL Execute r3(one) Env 4 Execute r3()=two() r3=one Execute r3()=two() Execute r3()=one() Env 5 Execute r3()=one() Execute print* Execute r3()=one() NEWLINE, *, *, * * NEWLINE, *, *, * * * * * * * * * * * * NEWLINE, *, *, * atau NEWLINE, *, *, * Jadi, hasil akhir program adalah : NEWLINE, *, *, *

  12. Membuat prosedur berparameter * * * * * * * * * Perhatikan potongan program berikut : def r3(p) = p(); p(); p() enddef def one() = print* enddef def line() = NL; r3(one) enddef r3(line) Jika dieksekusi, program tersebut akan menghasilkan output :

  13. Membuat prosedur berparameter + + + + + + + + + Jika saya ingin menghasilkan output : Maka saya harus merubah program sebagai berikut : def r3(p) = p(); p(); p() enddef def one() = printchar(‘+’) enddef def line() = NL; r3(one) enddef r3(line)

  14. 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

  15. Membuat prosedur berparameter + + + + + + + + + A A A A A A A A A # # # # # # # # # Sehingga, 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) enddef square(‘+’) square(‘A’) square(‘#’)

  16. 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 7 Angka 7 di dalam X x 7 disebut binding name, yaitu nama alias yang menggantikan bound name (Y).

  17. Tipe-tipe Nama Perhatikan potongan program berikut : def a() = printchar(b); printchar(b) enddef a(); 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 ****.

  18. Tipe-tipe Nama Perhatikan potongan program berikut : def a() = printchar(b); printchar(b) enddef a(); 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.

  19. 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) enddef pat(‘*’) 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 ***.

  20. 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) enddef pat(‘*’) Bandingkan dengan yg berikut : def pat(c) = def r3(c)=c();c();c() enddef def x()=printchar(c) enddef NL;r3(x) enddef pat(‘*’)

  21. 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.

  22. Ringkasan procedure nama; No return procedure nama(param); Procedure function nama :type; With return function nama(param) : type;

  23. Ringkasan procedure nama; procedure BENDA; begin write(‘*’); end; begin BENDA; end.

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

  25. Ringkasan function nama :type; function BENDA : char; begin BENDA:=‘*’; end; begin write(BENDA); BENDA; end.

  26. Ringkasan function nama(param) : type; function BENDA(x : char ) : char; begin BENDA:=x; end; begin write(BENDA(‘*’)); write(BENDA(‘+’)); end.

  27. Latihan Kerjakan soal berikut ini Buat program Pascal untuk menampilkan * * * **** Procedure B1 - cetak 1 karakter Procedure Bn - cetak n karakter Karakter yang dicetak tidak harus *, bisa sembarang karakter

  28. -Selesai-Materi 5

More Related