• Tidak ada hasil yang ditemukan

PEMROGRAMAN IMPERATIF

N/A
N/A
Protected

Academic year: 2021

Membagikan "PEMROGRAMAN IMPERATIF"

Copied!
18
0
0

Teks penuh

(1)

PEMROGRAMAN IMPERATIF

Pemrograman Imperatif adalah paradigma pemrograman yang mempunyai karakteristik berupa status dan insruksi/perintah untuk mengubah status program. Status diwakili oleh variabel sedangkan instruksi diwakili oleh statemen.

Ciri-ciri pemrograman imperatif yaitu :

- Adanya instruksi/command/perintah/kalimat-kalimat perintah contoh : GOTO 10

- Adanya status yang berubah

contoh : dengan adanya perintah GOTO 10 maka status program akan loncat

mengerjakan statemen yang ada di line number 10 Variabel Dan Penugasan

Variabel adalah identifier/pengenal yang berisi data yang dapat berubah-ubah nilainya di dalam program.

Penugasan(Assigment) adalah suatu aksi yang menyebabkan peletakan atau pemberian suatu nilai di suatu lokasi atau variabel. Contoh :

A = 3 (statemen penugasan pada Bahasa BASIC) A := 3 (statemen penugasan pada Bahasa PASCAL) Statemen/Perintah Tidak Terstruktur

Statemen/perintah tidak terstruktur merupakan statemen yang berisi perintah untuk mengerjakan statemen tertentu yang diidentifikasi dengan suatu label, baik menggunakan statemen GOTO bersyarat maupun tanpa syarat.

Contoh : program yang mengandung perintah tidak terstruktur (bahasa BASIC) 10 LET A = 5 20 LET B = A + 1 30 GOTO 50 40 LET B = A * 2 50 PRINT B 60 END Pemrograman Terstruktur

Pemrograman Terstruktur merupakan suatu teknik yang memecah masalah besar menjadi lebih kecil dan lebih mudah dipahami sehingga masalah yang besar dapat diselesaikan dengan baik. Contoh : PASCAL, COBOL, BAHASA C

(2)

Struktur Kontrol

Struktur kontrol / struktur kendali merupakan struktur yang mengendalikan statemen / instruksi apa saja yang harus dikerjakan. Ada tiga struktur kontrol pada pemrograman imperatif yaitu :

- Komposisi Sekuensial

Digunakan bilamana lebih dari sebuah statemen yang harus dikerjakan secara berurutan yang dipisahkan dengan menggunakan simbol/tanda khusus tertentu, misalnya titik koma (;) dalam PASCAL.

Contoh : Readl(N); Write(N); - Seleksi

Statemen penyeleksian kondisi menunjukkan bahwa suatu statemen akan dikerjakan bila suatu kondisi adalah bernilai benar.

Contoh statemen penyeleksian kondisi : IF – THEN, CASE OF (Bahasa Pascal)

- Iterasi

Statemen Iterasi (perulangan) digunakan untuk memproses statemen-statemen tertentu berulang kali.

Contoh statemen iterasi : WHILE-DO, REPEAT-UNTIL, FOR-DO (Bahasa Pascal)

Subprogram, Prosedur Dan Fungsi

Subprogram merupakan blok statemen yang dapat dipanggil dari lokasi yang berbeda di dalam program. Prosedur dan Fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian).

Yang membedakan antara Fungsi dan Prosedur yaitu : - Fungsi harus dideklarasikan dengan tipenya.

- Suatu Fungsi jika dijalankan/dipanggil akan mengembalikan suatu nilai, sedangkan prosedur yang mengembalikan nilai adalah parameter-parameternya.

Penanganan Eksepsi (Exception Handling)

Selama program berjalan, dapat terjadi sesuatu hal yang menyebabkan error.

Misalnya, array diberi nilai index yang melebihi nilai index yang sudah dideklarasikan, atau suatu operasi aritmatika yang membagi suatu bilangan dengan nol. Hal ini dapat mengakibatkan program berhenti tidak seperti yang diinginkan dan biasanya menampilkan pesan kesalahan yang tidak jelas.

(3)

Eksepsi adalah suatu konstruksi suatu bahasa khusus untuk menangani keadaan yang tidak terduga (biasanya adalah error); status keadaan error.

Bahasa pemrograman harus dapat menyediakan fasilitas untuk mendefinisikan eksepsi,

mengenali kemunculan eksepsi dan menentukan kode-kode apa yang harus dieksekusi ketika eksepsi muncul. Penentuan atas kode-kode apa yang harus dieksekusi disebut Penanganan Eksepsi (Exception Handling).

Contoh Penggunaan Eksepsi dalam Bahasa C++ : #include <iostream> using namespace std; int main () { try {

count <<”Masukkan Angka :”; int num; cin >> num;

if (num>10) throw std : : exception ();

count << “Angka Kurang dari atau sama dengan 10 “ << endl;

} catch (std : : exception& S) {

count << “Angka lebih dari 10 “ << endl; }

return 0; }

(4)

PROGRAMMING FUNGSIONAL

Bahasa pemrograman fungsional:

- Disebut aplikatif karena fungsi yang di alpikasikan ke dalam argumentasi menjadi deklaratif dan non prosedural

- Didasarkan pada konsep matematika dari sebuah fungsi dan bahasa pemrograman fungsional, meliputi :

- suatu set fungsi primitif - suatu set format fungsional - aplikasi operasi

- suatu set objek data dan fungsi asosiasi

- suatu mekanisme untuk memberikan rujukan sebuah nama terhadap suatu fungsi

- merupakan hasil dari fungsi meringkas dan men-generalisir type data dari peta

Tiga (3) komponen primer bahasa functional :

 Kumpulan objek data, menggunakan mekanisme struktur data tingkat tinggi.

Contoh : Array atau List

 Kumpulan fungsi built-in, untuk memanipulasi objek data dasar yang menyediakan

sejumlah fungsi untuk membuat dan mengakses list.

 Kumpulan functional forms, untuk membuat fungsi baru, yang mengizinkan

programmer mendefinisikan operasi baru dari kombinasi fungsi yg ada.

Contoh bahasa pemrograman fungsional : LISP dan ML (Meta Language)

LISP

- bahasa untuk komputasi simbolik, nilai direpresentasikan dengan ekspresi simbolik.

- banyak digunakan di wilayah kecerdasan buatan (robotika, sistem cerdas)

- biasa dieksekusi dibawah kendali interpreter - Ekspresi terdiri dari atom atau list.

Atom → string dan karakter (huruf, angka) Contoh : A 68000

(5)

List → urutan dari atom atau list, dipisahkan dengan spasi, ditutup dengan

tanda kurung Contoh : (PLUS A B)

((DAGING AYAM) (SAWI KANGKUNG BAYAM) AIR))

ML (Meta Language)

- merupakan bahasa aplikatif dengan program-program yang ditulis menggunakan gaya

C atau PASCAL dan dengan konsep yang lebih advance tentang tipe data

- mendukung polymorphisme dan abstraksi data - berjalan dengan interpreter

LAMBDA CALCULUS adalah :

• bahasa sederhana dengan ilmu semantik sederhana, ekspresif yang menyatakan semua fungsi dapat diperhitungkan

• Merupakan suatu bentuk formal dengan fungsi sebagai aturan Contoh :

- Dengan ekspresi polynomial X² + 3X - 5 - Dengan fungsi lebih dari 1 variabel (+ x y) ditulis ((+ x) y)

dimana fungsi (+ x) adalah fungsi yang menambahkan sesuatu ke x Lambda Calculus murni mempunyai 3 buah Elemen yaitu :

Lambang primitif, Aplikasi fungsi dan Fungsi ciptaan

Lambda calculus murni tidak mempunyai fungsi tetap atau konstanta Kalkulasi dalam lambda calculus adalah : menulis ulang (mengurangi) suatu lambda-expression menjadi suatu format formal.

ILMU SEMANTIK OPERASIONAL

Inti denotasional Ilmu Semantik adalah :

Terjemahan dari program konvensional ke dalam persamaan fungsional.

Tujuan denotasional Semantik dari suatu bahasa adalah :

(6)

Ilmu Semantik dapat dinyatakan dalam lambda calculus sebagai fungsi matematical, Eval, dari ekspresi ke nilai.

Contoh : Eval[+ 3 4]=7 menggambarkan bahwa nilai ekspresi (+ 3 4) untuk menjadi 7

FUNGSI REKURSIF

Perluasan Syntax Lambda-calculus yang mencakup ekspresi yang telah dinamai (named expressions)

L ::= ...| x : L | ...

X = nama dari Ekspresi Lambda L

FAC : \n.(if (= n 0) 1 (* n (FAC (- n 1)))) dengan syntactic sugaring :

FAC : \n.if (n = 0) then 1 else (n * FAC (n - 1)) FAC : (\fac.(\n.(if (= n 0) (* n (fac (- n 1))))) FAC) H : \fac.(\n.(if (= n 0) 1 (* n (fac (- n 1)))))

FAC : (H FAC)

ATURAN LINGKUP LEKSIKAL

let n : E in B

adalah penyingkatan untuk (\n.B) E

let x : 3 in (* x x)

\y. let x : 3 in (* y x) Ekuivalen \y. (* y 3)

letrec n : E in B

adalah penyingkatan untuk let n : Y (\n.E) in B let n : E in B = (\n.B) E

letrec n : E in B = let n : Y (\n.E) in B

SEMANTIK TRANSLASI DAN KOMBINATOR

Kombinator :

S = \f .( \g .( \x. f x ( g x ) ) ) K = \x .\y. x

I = \x.x

Y = \f. \x.( f(x x)) \x.(f (x x))

aturan reduksi untuk kalkulus SKI adalah : S f g x --> f x (g x) K c x --> c

I x --> x

Y e --> e (Y e) (A B) --> A B

(7)

(A B C)--> A B C

• Aturan Reduksi dijalankan dari kanan ke kiri

• Jika tidak ada reduksi S,K,I,Y maka tanda kurung akan dibuang, dan proses reduksi diteruskan

Semantik Translasi untuk Lambda Calculus :

Compile [ s ] --> s

Compile [ (E1 E2)] --> (Compile [ E1] Compile [ E2 ]) Compile [ \x.E] --> Abstract [ (x, Compile [ E] ) ]

Abstract [ (x, s) ] --> if (s=x) then I else (K s)

Abstract [ (x, (E1 E2))] --> ((S Abstract [ (x, E1)] ) Abstract [ (x, E2) ] )

Dimana s adalah simbol

Scheme

• Turunan dari LISP, didasarkan pada Lambda Calculus. Dikonsentrasikan ke fitur lambda-calculus

• Scheme mempunyai dua object :

– Atoms : Untaian Karakter yang bukan blank

– List : Rangkain Atom atau List dipisahkan oleh blank & berada dalam tanda

• Sebuah fungsi dapat terbuat atas fungsi yang lain dan dapat diaplikasikan pada list atau argumen

DARI SISI SEJARAH

ALTERNATIF TEORI DASAR MATEMATIKA • Alonso Church, lambda-calculus,1930an • Haskell B. Curry,logika kombinatorial

1958, LISP (LISt Processing), pemrosesan list berdasarkan fungsi rekursif.

– Recursion

– First class function – Garbage collection

1960an, penggunaan lambda-calculus di dalam ilmu komputer 

Semantik

Denotasional

Teori Semantik Formal untuk bahasa pemrograman (Peter Landin, Christopher

(8)

1969, Model Matematika pertama untuk lambda-calculus bertipe bebas (Dana Scott)

Haskell

• bahasa modern yang dinamai sama dengan Haskell B. Curry • Didesain oleh 15 orang anggota komite internasional

• Pembentukan bahasa fungsional yang memasukkan : – ide-ide baik yang sebelumnya ada dalam riset bahasa

fungsional

– Yang sesuai untuk pengajaran, riset dan aplikasi

– Fasilitas Overloading, yang dipadukan dengan sistem bertipe polimorfis, I/O fungsional, abstraksi data dan penyembunyian informasi

Functional Programming urutan mesin virtual.

– Bahasa pemrograman fungsional  lambda calculus – Lambda calculus  logika kombinatorial

– Logika kombinatorial  kode mesin reduksi graf Kesemuanya adalah mesin virtual

(9)

OBJECT ORIENTED PROGRAMMING

( O O P )

Tahun 1960, ditemukan suatu pembuatan program yang terstuktur (structured programming). Metode ini dikembangkan dari bahasa C dan Pascal.

Dengan program yang terstruktur inilah untuk pertama kalinya kita mampu menulis program yang begitu sulit dengan lebih mudah.

Object Oriented Programming adalah suatu metode dalam pembuatan program, dengan tujuan untuk menyelesaikan kompleksnya berbagai masalah program yang terus meningkat.

Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya.

Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi.

Pada saat ini, Pemrograman Komputer menjadi lebih interaktif, yaitu ketika muncul suatu kejadian, sehingga program harus dapat dengan cepat menanggapi kejadian tersebut. Contohnya adalah pemakai mengklik suatu tombol menu di layar monitor atau memilih menu dengan keyboard.

Pemrograman berorientasi objek pada dasarnya merupakan perlakuan untuk data dan procedure yang memanipulasinya; sebagai objek tunggal.

Ruby, Smalltalk, Python, SIMULA, C++, JAVA dan Bahasa Pemrograman Visual mendukung pemrograman ini.

Objek dan Kelas

Ide dasar pada OOP adalah mengkombinasikan data dan fungsi untuk mengakses data menjadi sebuah kesatuan unit yang dikenal dengan nama objek. Kelas adalah kumpulan dari beberapa objek yang sama.

(10)

Konsep dasar OOP :

1. Pengkapsulan (Encapsulation)

Enkapsulation seringkali dianggap sebagai “penyembunyian informasi”, dapat diartikan juga pengemasan data dan fungsi dalam wadah bernama objek. Konsep public dan private akan senantiasa dipakai dalam pengkapsulan. Enkapsulation memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya.

2. Pewarisan (Inheritance)

Inheritance merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. 3. Polimorfisme

Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku yang berbeda. Istilah ini sendiri berasal dari Bahasa Yunani, yang berarti “mempunyai banyak bentuk”. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut.

(11)

PEMROGRAMAN LOGIKA

Prolog adalah bahasa pemrograman logika di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis programmation en logique (pemrograman logika), diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.

Prolog bukanlah bahasa pemrograman “general purpose” tetapi dikhususkan untuk menyelesaikan masalah menggunakan kalkulus predikat.

Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensional sebagai teknik pencariannya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebut heuristik (heutistic) dengan menggunakan pohon logika.

Program yang dibuat dengan Prolog ditulis sebagai urutan klausa. Suatu klausa merupakan predikat tunggal yang disebut fakta/urutan dari bentuk: kesimpulan :- kondisi

dimana := berarti „jika”, kesimpulan adalah predikat tunggal dan

kondisi merupakan gabungan dari predikat, yaitu urutan predikat yang dipisahkan dengan tanda koma yang berarti logika AND. Dengan

demikian aturan diatas dapat dibaca sebagai “kesimpulan akan benar jika kondisi benar”.

Contoh :

panjang ([],0] --- fakta

panjang ([X|Y], N) :- panjang (Y,M), N=M+1 --- aturan akan berarti :

a. panjang dari string null adalah nol

b. untuk semua X,Y, N, M, jika M merupakan panjang dari list Y, dan N adalah M+1, maka panjang dari string non-null dgn head X dan tail Y adalah N.

(12)

PEMROGRAMAN KONKUREN

Sebuah sistem komputer harus menangani beberapa program (task) yang harus dieksekusi bersama dalam sebuah lingkungan (baik mono atau multi prosesor). Pada pemrograman konkuren, kita tidak lagi berpikir sekuensial, melainkan harus menangani komunikasi dan sinkronisasi antar program.

Alasan Pemilihan Pemrograman Konkuren bagi Pemrogram • Lebih memahami tentang arsitektur komputer

• Design compiler

• Beberapa permasalahan sebagian besar dipecahkan dengan menggunakan co-operating proses

• Mengurangi waktu pengerjaan/ pelaksanaan proses Perbedaan Operasi Secara Sekuensial dan Konkuren

Sifat – Sifat Konkurensi yaitu : • Sinkronisasi

Dua buah proses dikatakan berkomunikasijika aksi dari sebuah proses sepenuhnya mendahului proses berikutnya. Sinktonisasi berhubungan dengan komunikasi.

• Nondeterministic

Sebuah program dikatakan non-deterministic bila memiliki lebih dari satu evaluasi strategi yang memungkinkan dan berbeda, yang meberikan hasil-hasil yang berbeda.

• Mutual exlusion

Sebuah proses kadang membutuhkan akses yang exclusif terhadap sumber daya. Misalnya ketika sebuah proses memperbaiki struktur data, tidak ada proses lain yang mengakses data yang sama.

Yang termasuk Bahasa Pemrograman Konkuren antara lain adalah: Java, C#, Erlang, Occam, Limbo, SR, Ada

Operasi Sekuensial

-- O – O – O – O 

X = 5

Y = 3 * X + 4 Operasi Konkuren - O – O - -- | | -- > - O – O – X = A * B + C Y = 3 * A + 7

(13)

Soal-soal Latihan

1. Program adalah kumpulan instruksi/perintah yg diperuntukkan bagi komputer, untuk menyelesaikan masalah yang diberikan; disebut juga

a. source code b. algoritma c. flowchart d. simbol code 2. Pernyataan semua ini benar, kecuali :

a. Sintaks merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa

b. Sintaks mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar

c. Sintaks tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan semantik yang bisa mengartikannya

d. Semantik tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan sintaks yang bisa mengartikannya

3. Model komputasi yg terdiri dari satu set nilai-nilai yg mencakup suatu status & operasi tugas-tugas untuk memodifikasi status:

a. fungsional b. imperatif c. logika d. semua benar 4. Tipe data untuk merepresentasikan TRUE dan FALSE adalah …..

a. numerik b. string c. boolean d. integer 5. Empat unsur pembentuk tata bahasa adalah :

a. Terminal, non terminal, simbol start, token

b. Non terminal, simbol start, produksi, variabel sintaks c. Terminal, non terminal, produksi, simbol start d. Produksi, pohon sintaks, elemen sintaks, terminal

6. Pendekatan semantik yang didefinisikan suatu tindakan program yang dibangun dengan properti logika yang menyimpan status komputer sebelum dan sesudah eksekusi

a. Operational semantic c. Axiomatic Semantic b. Denotational Semantik d. Algebraic Semantic

7. Bahasa BASIC merupakan bahasa pemrograman tingkat :

a. mesin b. menengah c. rendah d. tinggi

8. Suatu kelas dari objek data dengan kumpulan operasi untuk membentuk dan memanipulasinya disebut ….

a. data b. tipe data c. program d. bahasa

9. Fitur dasar harus dapat dimengerti secara terpisah dan bebas dari interaksi yang tidak terduga merupakan prinsip desain bahasa pemrograman yang …. :

a. Orthogonality b. abstraksi c. simple d. unity 10. Yang termasuk ke dalam model komputasi adalah …..

a. model fungsional b. model imperatif c. model logika d. semua benar 11. Pernyataan semua ini salah, kecuali :

a. Bahasa Pascal tidak memperhatikan huruf besar dan huruf kecil, ini merupakan contoh mendefinisikan bahasa berdasarkan aturan sintactic

b. Semantik berisi aturan gramatikal / komposisi suatu program yang mengatur tata cara penulisan huruf, angka dan karakter lain

c. Sintaks tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan semantik yang bisa mengartikannya

d. Semantik tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan sintaks yang bisa mengartikannya

12. Unsur pembentuk tata bahasa yang menentukan perilaku dimana terminal dan non-terminal dapat digabungkan untuk membentuk rangkaian adalah:

(14)

a. Terminal b. Token c. Simbol Start d. Produksi

13. Pendekatan semantik yang mendefinisikan suatu mesin buatan (abstrak) dengan instruksi-instruksi primitif, tidak perlu realistik, tetapi cukup sederhana supaya tidak muncul kesalahpahaman adalah …

a. Operational semantic c. Denotational Semantik b. b. Axiomatic Semantic d. Algebraic Semantic 14. Variabel sintaktik disebut juga ….

a. Terminal b. Non Terminal c. Simbol Start d. Produksi 15. Alat komunikasi antara pemrogram dengan komputer adalah:

a. program b. flowchart c. Pemrograman d. bahasa pemrograman

16. Aturan yang menspesifikasikan kumpulan karakter yang terdapat dalam alphabet dari bahasa dan cara supaya karakter-karakter tersebut dikombinasikan ke dalam kata-kata yang valid dan diterima adalah aturan:

a. sintaks b. semantik c. leksikal d. sintaktik 17. Tipe data campuran dari berbagai tipe data dasar disebut tipe data …..

a. terstruktur b. enumerasi c. abstrak d. numerik

18. Subprosedur merupakan contoh dari kriteria bahasa pemrograman yaitu: a. Abstraction b. Regularity c. Orthogonality d. Konsistensi

19. Aturan yang berfungsi menyediakan bentuk-bentuk notasi untuk komunikasi antara programmer dan pemroses bahasa pemrograman:

a. Sintaks b. Lexical c. Semantik d. tata bahasa

20. Suatu kumpulan aturan (disebut production) yang menentukan urutan-urutan karakter (lexical

token) disebut

a. Bahasa b. Semantik c. Sintaks d.Tata Bahasa (grammar)

21. Perluasan suatu aplikasi yang meliputi suatu daerah objek yang lebih besar dengan jenis yang berbeda atau jenis yang sama disebut :

a. Generalisasi b. Abstraksi c. Enkapsulasi d. Binding

22. Deskripsi dari suatu masalah pada level generalisasi tertentu, sehingga memungkinkan kita untuk berkonsentrasi pada aspek kunci dari masalah tersebut tanpa memperhatikan hal-hal detail disebut :

a. Generalisasi b. Abstraksi c. Enkapsulasi d. Binding

23. Mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar disebut :

a. Generalisasi b. Abstraksi c. Enkapsulasi d. Binding 24. Tiga struktur kontrol pada pemrograman imperatif yaitu, kecuali:

a. Komposisi Sekuensial b. Seleksi c. Iterasi d. Prosedur 25. Pernyataan dibawah ini benar, kecuali:

a. Pemrograman Imperatif adalah paradigma pemrograman yang mempunyai karakteristik berupa status dan insruksi/perintah untuk mengubah status program

b. Eksepsi adalah suatu konstruksi suatu bahasa khusus untuk menangani keadaan yang tidak terduga (biasanya adalah error); status keadaan error

c. Pemrograman Imperatif merupakan suatu teknik yang memecah masalah besar menjadi lebih kecil dan lebih mudah dipahami sehingga masalah yang besar dapat diselesaikan dengan baik

d. Penugasan(Assigment) adalah suatu aksi yang menyebabkan peletakan atau pemberian suatu nilai di suatu lokasi atau variabel

(15)

26. Sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber

(source language) dan menterjemahkannya ke dalam suatu bahasa sasaran (target language). disebut :

a. kompilator b. source program c. Iterasi d. subprogram 27. Tahap dasar dari proses kompilasi adalah :

a. analisa syntactic b. analisa lexical c. analisa semantic d. optimisasi

28. Deretan token yang tidak mengikuti aturan sintaks tertentu akan dilaporkan sebagai : a. syntax error b. intermediate token c. parse tree d. identifier token

29. Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai :

a. syntax error b. intermediate token c. parse tree d. identifier token

30. Bahasa untuk komputasi simbolik, nilai yang direpresentasikan dengan ekspresi simbolik disebut :

a. Atom b. LISP c. List d. ML

31. Urutan dari atom atau list, yang dipisahkan dengan spasi, dan ditutup dengan tanda kurung adalah :

a. Atom b. LISP c. List d. ML 32. Yang tidak termasuk elemen lambda calculus adalah :

a. lambda primitif c. fungsi ciptaan b. ilmu semantik d. aplikasi fungsi 33. Yang termasuk dalam kumpulan objek data adalah :

a. LISP dan ML b. Array atau List c. Atom atau List d. ML dan Array 34. Tujuan denotasional semantik dari suatu bahasa adalah :

a. menulis ulang suatu lambda-ekspression menjadi suatu format formal b. menugaskan suatu nilai kepada setiap ekspresi dalam bahasa c. memanipulasi objek data dasar yang menyediakan sejumlah fungsi untuk membuat dan mengakses list

d. membuat fungsi baru yang mengizinkan programmer mendefinisikan operasi baru dari kombinasi fungsi yang ada

35. Scheme memiliki 2 buah objek, yaitu :

a. Atom & List b. List & Semantic c. Atom & Semantic d. Function & list 36. Prinsip yang terdapat dalam Lambda-Calculus :

a. Nilai suatu expresi tergantung hanya pada nilai dari sub-ekspresinya b. Kurang memadai untuk mengekspresikan fungsi komputasi

c. Nilai suatu ekspresi tidak tergantung atas nilai sub-ekspresi d. Semantik yang kompleks

37. Yang bukan merupakan bahasa pemrograman fungsional modern? a. Haskell b. LISP c. Scheme d. tidak ada yang benar

38. Bahasa pemrograman yang tidak berlandaskan pada mesin komputer, tetapi lebih kepada teori fungsi matematika sehingga beroperasi dengan nilai-nilai dan memproduksi nilai adalah: a. Bhs Pemrog.Fungsional c. Bhs Pemrog. berorientasi objek

b. Bhs Pemrog. Logika d. Bhs Pemrog. Imperatif

39. Bahasa pemrograman yang bukan merupakan bahasa pemrograman “general–purpose” tetapi dikhususkan untuk menyelesaikan masalah menggunakan kalkulus predikat adalah : a. Bhs Pemrog.Fungsional c. Bhs Pemrog. berorientasi objek

b. Bhs Pemrog. Logika d. Bhs Pemrog. Imperatif

40. Konsep dasar bahasa pemrograman berorientasi objek adalah :

(16)

41. Pernyataan semua ini benar, kecuali :

a. Pemrograman berorientasi objek pada dasarnya merupakan perlakuan untuk data dan procedure yang memanipulasinya; sebagai objek tunggal

b. C++, JAVA dan Bahasa Pemrograman Visual mendukung pemrograman berorientasi objek

c. Object Oriented Programming adalah suatu metode dalam pembuatan program, dengan tujuan untuk menyelesaikan kompleksnya berbagai masalah program yang terus meningkat

e. Semantik tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan sintaks yang bisa mengartikannya

Berikut ini disediakan 5 production rule untuk Soal NO. 42 s/d 43 : 1. <PRINT statement> -> PRINT | PRINT <expression>

2. <expression> -> <variable> | <variable>, | <variable>; 3. <variable> -> <letter> | <letter><digit>

4. <letter> -> A|B|C|D|E|F ...|Z 5. <digit> -> 0|1|2|3 ... |9

42. Manakah yang tidak valid untuk production rule diatas :

a. PRINT 3 b. PRINT c. PRINT A2; d. PRINT Z8

43. Manakah valid untuk production rule diatas :

a. PRINT 3, b. PRINT AA c. PRINT 2A d. PRINT P8, 44. Program adalah kumpulan instruksi/perintah yg diperuntukkan bagi komputer, untuk

menyelesaikan masalah yang diberikan; disebut juga

a. simbol code b. source code c. algoritma c. flowchart

45. Pendekatan semantik yang mendefinisikan suatu mesin buatan (abstrak) dengan instruksi-instruksi primitif, tidak perlu realistik, tetapi cukup sederhana supaya tidak muncul kesalahpahaman adalah:

a. Operational semantic b. Axiomatic Semantic c. Denotational Semantik d. Algebraic Semantic

46. Pernyataan semua ini benar, kecuali :

a. Sintaks merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa

e. Sintaks tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan semantik yang bisa mengartikannya

f. Semantik tidak mengerti apapun tentang isi atau arti dari suatu kalimat, aturan sintaks yang bisa mengartikannya

g. Sintaks mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan

suatu kata dasar

47. Model komputasi yg terdiri dari satu set nilai-nilai yg mencakup suatu status & operasi tugas-tugas untuk memodifikasi status:

a. model fungsional b. model imperatif c. model logika d. semua benar 48. Unsur pembentuk tata bahasa yang menentukan perilaku dimana terminal dan non-terminal

dapat digabungkan untuk membentuk rangkaian adalah:

a. Variabel Sintaktik b. Token c. Produksi d. Simbol Start 49. Tipe data untuk merepresentasikan TRUE dan FALSE adalah …..

(17)

50. Suatu kelas dari objek data dengan kumpulan operasi untuk membentuk dan memanipulasinya disebut ….

a. tipe data b. data c. program d. Bahasa 51. Variabel sintaktik disebut juga ….

a. Terminal b. Non Terminal c. Simbol Start d. Produksi

52. Fitur dasar harus dapat dimengerti secara terpisah dan bebas dari interaksi yang tidak terduga merupakan prinsip desain bahasa pemrograman yang …. :

a. Orthogonality b. abstraksi c. simple d. unity 53. Empat unsur pembentuk tata bahasa adalah :

a. Terminal, non terminal, simbol start, token

e. Non terminal, simbol start, produksi, variabel sintaks f. Produksi, pohon sintaks, elemen sintaks, terminal g. Terminal, non terminal, produksi, simbol start

54. Pendekatan semantik yang didefinisikan suatu tindakan program yang dibangun dengan properti logika yang menyimpan status komputer sebelum dan sesudah eksekusi

a. Operational semantic b. Axiomatic Semantic c. Denotational Semantik d. Algebraic Semantic

12. Sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber

(source language) dan menterjemahkannya ke dalam suatu bahasa sasaran (target language). disebut :

a. kompilator b. source program c. Iterasi d. subprogram

56. Tahap dasar dari proses kompilasi adalah :

a. analisa syntactic b. analisa lexical c. analisa semantic d. optimisasi 57. Deretan token yang tidak mengikuti aturan sintaks tertentu akan dilaporkan sebagai :

a. identifier token b. intermediate token c. parse tree d. syntax error

58. Suatu kumpulan aturan (disebut production) yang menentukan urutan-urutan karakter (lexical token) disebut

a. Bahasa b. Semantik c. Sintaks d. Tata Bahasa (grammar)

Untuk Soal NO. 16 s/d 17, Perhatikan Grammar dengan Produksi sebagai berikut :

1. <PRINT statement> → PRINT | PRINT <exp> 2. <exp> → <var> | <var>, | <var>;

3. <var> → <letter> | <letter><digit> 4. <letter> → A|B|C|D|E|F ...|Z 5. <digit> → 0|1|2|3 ... |9

59. Manakah yang statement yang tidak valid untuk Grammar diatas :

a. PRINT 3 b. PRINT c. PRINT A2; d. PRINT Z8 60. Manakah statement yang valid untuk Grammar diatas :

a. PRINT 3, b. PRINT AA c. PRINT 2A d. PRINT P8,

Untuk Soal NO. 18 s/d 20, Perhatikan Grammar dengan Produksi sebagai berikut :

S  aB | bA A  a | aS | bAA B  b | bS | aBB

(18)

61. Manakah yang merupakan terminal untuk Grammar diatas :

a. S,A,B b. aB, bA, a, aS, bAA, b, bS, aBB c. A, B d. a, b

62. Manakah yang merupakan Non Terminal untuk Grammar diatas :

a. S,A,B b. aB, bA, a, aS, bAA, b, bS, aBB c. A, B d. a, b

63. Derivasi kiri untuk string abbba pada Grammar diatas :

a. b. c. d. semua salah

64. Postfix untuk P = (A ^ ( B + C ) / D ) + ( E – F ) adalah

a. BC+A^D/EF-+ b. BC+A^D/EF-+ c. ABC+^D/EF-+ c. ABC+^D/E+F-

65. Tiples untuk P = (A ^ ( B + C ) / D ) + ( E – F ) adalah

a. b. c. d.

66. Quadruples untuk P = (A ^ ( B + C ) / D ) + ( E – F ) adalah

a. b. c. d.

67. Postfix untuk P = 8 + ( A ^ 2 – ( B + C)) adalah

a. 8A2^BC+-+ b. BC+A2^8+ c. 8A2BC+^-+ d. ABC+^D/E+F- 68. Quadruples untuk P = 8 + ( A ^ 2 – ( B + C)) adalah

a. b. c. d. S  aB  aBB  aBbS  aBbbA  aBbba  abbba S  aB  aBB  abB  abbS  abbbA  abbba S  aB  abS  abbA  abbbAA  abbbaA  abbbaa 1. ^, A, B 2. +, (1),C 3. / , (3),D 4. - , E, F 5. +,(3),(4) 6. =, P,(5) 1. +,B,C 2. ^,A,(1) 3. /,(2),D 4. -,E,F 5. +,(3),(4) 6. =, P, (5) 1. +,B,C 2. ^,A,(1) 3. /,D,(2) 4. -,E,F 5. +,(3),(4) 6. =, P, (5) 1. +,B,C 2. ^,(1),A 3. /,D,(2) 4. -,E,F 5. +,(3),(4) 6. =, P, (5) 1. ^, A, B,T1 2. +, T1,C,T2 3. / , T2,D,T3 4. - , E, F,T4 5. +,T3,T4,P 1. +,B,C,T1 2. ^,A,T1,T2 3. /,T2,D,T3 4. -,E,F, T4 5. +,T3,T4,P 1. +,B,C,T1 2. ^,A,T1,T2 3. /,D,T2,T3 4. -,E,F, T4 5. +,T3,T4,P 1. +,B,C,T1 2. ^,T1,A,T2 3. /,D,T2,T3 4. -,E,F,T4 5. +,T3,T4,P 1. ^, A, 2,T1 2. +, B,C,T2 3. - ,T1,T2,T3 4. + , 8, T3,P 1. ^, A, 2,T1 2. +, B,C,T2 3. - ,T1,T2,T3 4. + , 8, T3,P 1. +, B, C,T1 2. ^, A,2,T2 3. - ,T2,T1,T3 4. + , 8, T3,P 1. +, B, C,T1 2. ^, 2,A,T2 3. - ,T1,T2,T3 4. + , 8, T3,P

Referensi

Dokumen terkait

Maksud dari tuturan atau kalimat pada data (15) di atas yaitu memerintahkan siswa untuk menuliskan pokok-pokok isi sambutan yang ada dalam buku ajar atau buku paket

No.. Kesebelas kriteria butir tes diatas adalah sebagai berikut. a) Pokok soal harus jelas. b) Pilihan jawaban homogen dalam arti isi. c) Panjang kalimat pilihan jawaban relative

kalimat-kalimat yang terdapat Masdar, Arti Harfu Jar, Struktur Mubtada’ Khabar ( Mubtada’ dari dhamir Jama’ dan khabar dari fi’il Mudhari’ ) dan athaf dalam isi teks lisan

Maksud dari tuturan atau kalimat pada data (15) di atas yaitu memerintahkan siswa untuk menuliskan pokok-pokok isi sambutan yang ada dalam buku ajar atau buku paket

qawâ'id (linguistik terotits) yang mengkaji tentang isi atau makna dari kalimat. Terlepas dari kesamaan balâghah dan semantik, ada satu hal yang tidak dibahas

No Indikator Keterampilan yang dicapai Kriteria Skor MB Siswa mampu membaca kalimat dalam buku bacaan dengan bantuan guru dan mengerti isi bacaan 2 BB Siswa tidak mampu