Materi 6-BLOK DAN SUBPROGRAM

Blok

Suatu definisi wilayah bagian bahasa pemrograman yang berisi urutan statement yang executeable yang diperlukan sebagai suatu unit. Biasa juga disebut subprogram atau routine.
Parameter
Digunakan untuk mempermudah dan mengefisienkan subprogram maupun programnya sendiri.
Parameter meningkatkan readability dan modifiability. Peningkatan tersebut terjadi karena diizinkannya transfer data yang berbeda setiap kali pemanggilan.


Ada 2 jenis parameter:

  • Formal Parameter, merupakan parameter yang muncul di definisi subprogram.
  • Actual Parameter, merupakan parameter yang muncul di program saat pemanggilan subprogram.

Passing Parameter
Melewatkan actual parameter sebagai formal parameter pada subprogram.
Metode passing parameter:

  • Call-by-Value, yaitu nilai dari actual parameter dilewatkan ke formal parameter.
  • Call-by-Reference, yaitu alamat dari actual parameter dilewatkan ke formal parameter.

Fungsi
Merupakan sebuah blok dan mirip dengan procedure, perbedaannya adalah procedure tidak mengembalikan nilai sedangkan fungsi mengembangkan sebuah nilai.

Overloading
Yaitu satu nama yang dipakai beberapa subprogram yang memiliki nama yang sama. Parameterlah yang membedakan antar subprogram. Overloading dilakukan pada bahasa pemrograman berorientasi objek.

Materi 5 - Tipe Data

skip to main | skip to sidebar

TIPE DATA

Yaitu kumpulan dari obyek data dan himpunan operasi yang dapat dilakukan pada obyek tersebut.
Elemen dasar dari tipe data:

  • Atribut, untuk membedakan objek-objek data dari tipe tersebut.
  • Nilai
  • Operasi, digunakan untuk mendefinisikan manipulasi-manipulasi yang dimungkinkan oleh objek data dari tipe tersebut.

Jenis tipe data:
1.Tipe data primitif: Numerik, Boolean, Character.
2. Tipe data string
3. Array
4. Records

Integer
Hampir selalu merupakan sebuah refleksi yang tepat dari hardware sehingga pemetaan ke hardware mudah.

Floating point
Memodelkan bilangan yang sebenarnya, tetapi hanya sebagai pendekatan dari bilangan tersebut. Ini biasanya tepat seperti hardware, tetapi tidak selalu.

Boolean
Suatu ekspresi untuk menyatakan TRUE atau FALSE, 0 atau 1.
Dapat diemplementasikan sebagai bit, tetapi biasanya dilakukan dengan byte.
Keuntungan dari boolean adalah Readability.

Character
Disimpan sebagai kode numerik.
Operasi yang berlaku adalah: Relational dan Assignment.

String
Nilainya merupakan urutan dari karakter(array of char).
Operasi yang berlaku adalah: Assignment, Perbandingan, Catenation, Substring Reference, dan Pattern Matching.

Array
adalah kumpulan elemen data yang homogen, dimana setiap elemen datanya diidentifikasikan dengan posisinya dalam kumpulan tersebut, relatif terhadap elemen yang pertama.
Inisialisasi array, berupa daftar nilai yang diberikan pada array saat array ditempatkan dalam memory.

Record
Merupakan kumpulan dengan elemen-elemen yang dapat mempunyai tipe yang berbeda, setiap elemennya diidentifikasikan dengan namanya.

Materi4 - Objek Data,Variabel, dan Konstanta

1. Pengantar

Semua data yang akan diolah oleh komputer harus disimpan terlebih dahulu di memory komputer (memori, register, dan lainnya). Memory komputer itu sendiri terdiri dari sel-del dasar yang disebut alamat. Isi sel merupakan suatu nilai hasil olahan komputer. Bahasa pemrograman berhubungan dengan sistem operasi untuk bisa mengolah penggunaan memory.

2. Objek Data

Pengelompokkan satu atau lebih potongan data di dalam virtual komputer pada saat run-time. Lebih sederhananya objek data merupakan suatu tempat dimana nilai-nilai data disimpan dan dipanggil kembali. Sebagai contoh objek data yang dibuat oleh programer adalah Variabel, konstanta, array dan yang di buat oleh sistem adalah Buffer, list ruang kosong, stack.

3.Variable

Objek data yang didefinisikan dan diberi nama secara eksplisit oleh programmer. Variable berfungsi sebagai label atau nama wadah penyimpanan nilai. Sehingga ketika programer ingin mengolah nilai tersebut, ia hanya cukup menyebutkan nama variable tersebut. Dilihat dari hardware variable adalah :

  • Variabel merupakan suatu abstraksi dari sel-sel memori
  • Nama variabel merupakan abstraksi dari alamat memori
  • Statement assigment merupakan abstraksi dari modifikasi suatu sel

Variable mempunyai 4 bagian :

  • Nama dan Scope
  • Tipe
  • L-value
  • R-value

Nama dan Scope
Nama variable merupakan string dari karakter.
Scope variable merupakan range dari instruksi program dimana range dari instruksi.
Instruksi program dapat memanipulasi suatu variable didalam scpoe nya.
Variable akan terlihat didalam scope, dan tidak akan terlihat jika diluar scope.

·


Type
Kumpulan nilai-nilai yang diasosiasikan ke variable bersama-sama dengan operasinya yang dapat digunakan untuk menciptakan, mengakses dan memodifikasi suatu nilai.



L-Value
Merupakan daerah penyimpanan yang di binding ke variabel selama eksekusi.
Lokasi memori yang diasosiasikan dengan variabel.
Digunakan untuk menangani r-value dari variabel.

R-Value
Suatu nilai yang terkondekan yang disimpan di suatu lokasi yang diasosiasikan dengan variabel (l-value).
L-value dan r-value merupakan konsep utama yang berhubungan dengan eksekusi suaatu program.

4. Referensi dan Variabel Tanpa Nama

Beberapa bahasa mempunyai fasilitas untuk mengizinkan variabelnya dapat

diakses melalui r-value dari variabel yanglain

Disebut referensi atau pointer Kemungkinan tanpa nama

Satu-satunya cara mengakses adalah melalui variabel bernama lainnya

5. Assignment

Salah satu jenis operasi yang berfungsi untuk memberi suatu nilai ke dalam varible.

  • Pascal , i := 3;
  • C family, i = 3;
  • Cobol, MOVE 3 TO i;

6. Konstanta

Objek data dengan nama yang sudah terikat dengan suatu nilai secara permanen (tetap) Contoh

#define MAX 50

Nilai MAX tidak dapat diubah melalui assignment

MAX = 5

Tetapi dapat dilibatkan dalam operasi

int N;

N = 12;

N = N + MAX;

7. Operator

Fungsi yang beroperasi di konstanta, variabel, dan nilai yang akan menghasilkan sesuatu yang baru (hasil). Fungsi yang beroperasi di konstanta,

variabel, dan nilai yang akan

menghasilkan sesuatu yang baru (hasil)

Operator dibedakan tingkatan precedence

Contoh

A = 3 + 2 * 4

A = 11

Materi 3 - SYNTAX

Readability (mudah dibaca)

Writeability (mudah untuk ditulis)

Verifiability (verifikasi program (konsep kebenaran)).

Kemudahan Translasi atau Mudah bagi manusia, bagi bahasa yang sulit di translasi.

Pengurangan Ambiguitas atau memilki dua arti atau bahkan lebih.

Misalnya: A(i) (array atau pemanggilan fungsi).

Ciri Syntax

  • Kumpulan aturan yang mendefinisikan suatu bentuk bahasa
  • Syntax mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar
  • Kata dikonstruksikan dengan karakter-karakter alfabet
  • Contoh keyword (reserve word) dalam bahasa C while, do, if, else, dll
  • Syntax mengatur cara mengkombinasikan kata-kata tersebut ke dalamsuatu statement dengan bentuk yang benar sehingga dapat disusunsuatu program yang dapat berjalan dengan benar
  • Syntax tidak mengerti arti atau isi dari suatu kalimat, semantic yang bisamengartikannya
  • Syntax menyediakan bentuk-bentuk notasi untuk kominikasi antara programmer dan pemroses bahasa pemrograman, sehingga mempermudah pembuatan suatu program

2 Kumpulan Aturan Syntax

Lexical

menspesifikasikan kumpulan karakter yang terdapat dalam alphabet dari bahasa dan cara supaya karakter-karakter tersebut dikombinasikan ke dalam kata-kata yang valid dan diterima

Syntactic

elemen-elemen yang mengatur bentuk suatu statement-statement dalam bahasa pemrograman.

Semantic

  • Mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut
  • int nilai [10]
  • Semantic akan menentukan deklarasi diatas dan menyebabkan ruang sebanyak 10 elemen integer yang diberikan kepada variabel nilai
  • if (a>b) max = a else max = b;
  • Ekspresi a>b harus dievaluasi terlebih dahulu , tergantung dari nilai ini satu dari dua statement di belakangnya akan dieksekusi

Elemen-elemen Syntactic

• Himpunan Karakter

• ASCII - Karakter angka dan huruf

• Identifier

• Umumnya string dari huruf dan angka

• Simbol untuk operator

• Simbol matematika

• Keyword dan Reserved Word

• Kata-kata milik bahasa, biasanya tidak boleh

digunakan sebagai identifier

Grammar

•Suatu kumpulan aturan (production) yang

menentukan urut-urutan karakter

•Suatu formal grammar adalah grammar biasa

yang ditentukan dengan menggunakan notasi

yang ketat

•Ada dua kelas grammar yang berguna untuk

teknologi compiler

•EBNF Grammar

•Regular Grammar

materi 2-evaluasi bahasa pemrograman

Plankalkul –1945:

  • Tidak pernah diimplementasikan.
  • Struktur data : Array, records.

Pseudocode –1949:

  • Digunakan karena terlalu sulit jika harus menggunakan machine code.
  • Shortcode – 1949 – BINAC- oleh Mauchly, Ekspresi dikodekan dari kiri ke kanan.
  • Speedcoding – 1954 – IBM 701 – oleh Backus.
  • Pseudo operation untuk fungsi aritmatik danmatematika.
  • Percabangan kondisional dan tanpa kondisi.
  • Autoincrement register untuk pengaksesan array.

Laning dan Zierler System –1953:

  • Diimplementasikan pada computer Whilwind – MIT.
  • Merupakan system compiler pertama.
  • Fasilitas translasi ekspresi dan pemanggilan fungsi.
  • Tidak pernah diporting ke mesin lain.

FORTRAN I – 1957:

  • FORTRAN 0 -1954 – tidak diimplementasi
  • FORmula TRANslation dibuat oleh John Backus
  • Didesain untuk IBM 704, yang memiliki Index Register dan hardware floating-point.
  • Komputer (saat itu) belum reliable.
  • Aplikasi terbatas pada scientific.
  • Tidak ada metodologi pemrograman dan alat bantunya.
  • Efisiensi mesin harus benar-benar diperhatikan.
  • Merupakan bahasa tingkat-tinggi pertama yang diterima secara luas.

FORTRAN II – 1958:

  • Independent compilation.
  • Perbaikan bug dari FORTRAN I

FORTRAN IV – 1962:

  • Deklarasi tipe eksplisit.
  • Logical selection statement (Logical IF).
  • Subprogram dapat menjadi parameter.
  • Menjadi ANSI standard pada tahun 1968.

FORTRAN 77 – 1978:

  • Dilengkapi dengan character-string handling.
  • Logical loop control statement.
  • IF-THEN-ELSE statement.

FORTRAN 90 – 1990:

  • Menggunakan modul-modul dengan akses private maupun public.
  • Terdapat array dinamik.
  • Record dan Pointer.
  • Rekursif.
  • Statement CASE, EXIT, dan CYCLE.
  • Pengecekan tipe parameter.

LISP – 1959:

  • Kepanjangannya adalah LISt Processing.
  • Dibuat oleh John McCarthy, MIT, 1959.
  • Riset Artificial Intellegence membutuhkan bahasa yang memproses data menggunakan list (bukan array).
  • Mendukung komputasi simbolik (bukan numeric).
  • LISP hanya terdapat 2 tipe data : Atom dan List.
  • Sintaksnya didasarkan pada Kalkulus Lambda (Lambda calculus).
  • Merupakan pionir dari functional programming.
  • Tidak membutuhkan variable atau assignment.
  • Control dilakukan lewat rekursi dan ekspresi kondisional.
  • Masih merupakan bahasa yang dominan dalam AI.
  • COMMON LISP dan Scheme merupakan dialek dari LISP.
  • Terdapat bahasa-bahasa lain yang berhubungan : ML, Miranda, Haskell.

ALGOL 58 – 1958:

  • Kepanjangannya adalah ALGOrithmic Language.
  • Perkembangan bahasa saat itu (saat ALGOL dibuat) :
  • FORTRAN terbatas untuk mesin IBM 70x.
  • Bahasa-bahasa yang lain juga dikembangkan tetapi hanya untuk mesin tertentu.
  • Tidak terdapat bahasa yang portable, semuanya bergantung pada mesin
  • Tidak terdapat bahasa yang universal.
  • ACM (Association for Computing Machinery) dan GAMM bertemu bertemu selama 4 hari untuk merencanakan desain bahasa.

Tujuan dari bahasa ALGOL :

Mendekati notasi matematika.

Baik untuk mendeskripsikan algoritma.

• Harus dapat ditranslasikan ke kode mesin.

COBOL – 1960:

  • COBOL kepanjangan dari COmmon Business Oriented Language

  • Tujuan desain :
  1. Harus seperti bahasa Inggris yang sederhana.
  2. Mudah untuk digunakan.
  3. Harus dapat dipergunakan secara luas.
  4. Harus terbebas dari masalah implementasi compiler.

BASIC – 1964:

  • BASIC kepanjangan dari Beginners All-purpose Symbolic Instruction Code.
  • Dibuat oleh John Kemeny dan Thomas Kurtz.
  • Mudah untuk dipelajari.
  • Struktur program jelek.
  • Dialek dari BASIC yang sekarang populer : QuickBASIC dan Visual BASIC.

PL/I – 1965:

  • PL merupakan kepanjangan dari Programming Language I.
  • Dibuat oleh IBM dan SHARE.
  • Menggabungkan fitur dari ALGOL 60, COBOL, dan FORTRAN.
  • Dikembangkan untuk aplikasi Bisnis dan Science.
  • Pertama kali adanya exception handling.

Early Dynamic Language:

  • Karakteristik : Memiliki tipe dinamik, dan dynamic storage allocation.
  • APL (A Programming Language) – 1962.
  • Didesain sebagai HDL (Hardware Description Language) oleh Ken Iverson dari IBM.
  • Sangat ekspresif (terdapat banyak operator).
  • Program sangat sulit untuk dibaca.
  • SNOBOL – 1964.
  • Didesain sebagai string manipulation language di Bell Labs oleh Farber, Griswold, dan Polensky.
  • Sangat baik untuk string pattern-matching.

SIMULA 67 – 1967:

  • SIMULA merupakan kepanjangan dari SIMULAtion.
  • Didesain untuk simulasi system oleh Nygaard dan Dahl (Norwegia).
  • Didasarkan pada ALGOL 60 dan SIMULA I
  • Kontribusi : Coroutine (semacam subprogram) yang diimplementasi dalam struktur yang disebut class. Class adalah struktur yang memuat data dan fungsi.

Pascal –1971:

  • Didesain oleh Niklaus Wirth, yang keluar dari tim ALGOL 68.
  • Dikembangkan dari ALGOL 68.
  • Didesain untuk pengajaran pemrograman terstruktur.
  • Kecil dan mudah, tidak terdapat hal yang benar-benar baru.
  • Tetap menjadi bahasa pemrograman yang digunakan secara luas untuk mengajarkan pemrograman di universitas-universitas.

C – 1972:

  • Didesain untuk pemrograman system oleh Dennis Ritchie dari Bell Labs.
  • Dikembangkan dari bahasa B dan ALGOL 68.
  • Memiliki operator yang banyak, tetapi dari segi pengecekan tipe data (type checking) kurang baik.
  • Didistribusikan bersama system operasi UNIX.

PROLOG – 1972:

  • PROgramming in LOGic.
  • Dikembangkan oleh Comeraurer dan Roussel University of Aix-Marseille).
  • Didasarkan pada formal logic.
  • Sifatnya non-procedural.
  • Dapat disebut sebagai Intelligent Database System yang menggunakan proses pengambilan keputusan untuk memutuskan kebenaran dari query yang diberikan.

Ada – 1983:

  • Dikembangkan untuk DoD.
  • Pengembangan melibatkan ratusan orang, biaya besar, dan waktu pengembangan sekitar 8 tahun.
  • Memuat semua yang akhirnya dikenal sebagai bagian dalam software engineering dan language design.
  • Kompiler yang pertama sangat rumit, dan compiler yang pertama dapat digunakan dirilis 5 tahun setelah desain bahasanya selesai.
  • Ada 95 – Mendukung OOP melalui penurunan tipe, terdapat mekanisme kontrol yang lebih baik dalam penggunaan data secara bersama-sama, library lebih flexible.

Smalltalk –1972-1980:

  • Dikembangkan di Xerox Palo Alto Research Center (Xerox PARC), oleh Alan Kay, kemudian dilanjutkan oleh Adele Goldberg.
  • Merupakan bahasa yang pertama kali mengimplementasikan konsep object-oriented (data abstraction, inheritance, dan dynamic type binding).
  • Merupakan pionir dari GUI (Graphical User Interface).

C++ - 1985

  • Dikembangkan oleh Bjarne Stroustrup di Bell Labs.
  • Dikembangkan dari C dan SIMULA 67.
  • Terdapat fasilitas OOP yang berasal dari SIMULA 67 dan ditambahkan ke C.
  • Mempunyai exception handling.
  • Merupakan bahasa yang besar dan kompleks karena mendukung procedural programming dan object-oriented programming.
  • Popularitasnya cepat berkembang bersama dengan OOP.
  • ANSI standard pada tahun 1997.
  • Eiffel – merupakan bahasa yang juga mendukung OOP, lebih kecil dan lebih mudah dari C++, didesain oleh Bertrand Meyer tahun 1992.

Java – 1995

  • Dikembangkan oleh James Gosling, Sun Microsystems
  • Didasarkan pada C++
  • Secara signifikan menyederhanakan C++.
  • Hanya mendukung OOP.
  • Mempunyai reference, tetapi tidak pointer.
  • Terdapat juga dukungan untuk applets (world wide web) dan concurrency (Java Threads).

Scripting Language untuk Web:

JavaScript

  • Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
  • Memepunyai syntax yang mirip dengan Java.
  • PHP (PHP Hypertext Preprocessor)
  • Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya.
  • Mempunyai syntax yang mirip dengan C++ (support OOP).

VBScript

  • Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
  • Didasarkan atas Visual Basic.
  • Dikembangkan oleh Microsoft.

Jscript

  • Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
  • Memiliki syntac yang mirip dangan C++.
  • Dikembangkan oleh Microsoft.

ASP (Active Server Page)

Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya.

Dikembangkan oleh Microsoft.

http://www.blogger.com/img/icon18_edit_allbkg.gif