Jumat, 16 Desember 2011

Komputasi


Selasa, 13 Desember 2011
Komputasi
1. Pengertian Dasar
2. Pemrograman (programming)
3. Metode & Teknik
4. Struktur Data

1. Pengertian Dasar
• Komputerisasi
  masukan data, proses, dan simpan informasi dalam komputer atau keluarkan
– masuk ke dalam lingkungan masyarakat yang dikelilingi sistem-sistem berbasis komputer
(ubiquitous)
  to carry out, control, or conduct by means of a computer.
– Contoh ubiquitous systems: hand phone, personal digital assistance (PDA) / personal entertainment organizer (PEO).

• Komputerisasi, connections:
– broad band & connectivity - sistem berbasis computer dapat disambung ke internet
– miniaturization - sistem berbasis komputer akan makin kecil
– personalization - perusahaan pembuat akan menciptakan berbagai  jenis pilihan, warna, dll. Sesuai selera komsumen
– mobility - sistem bersambung ke layanan mobile
– portability - sistem bisa dibawa kemanapun
– multimedia - palm pilots dirancang untuk dapat akses pada media beragam: graphics, text, voice

2. Pemrograman

Program ~ å instruksi untuk komputer
Pemrograman ~ aktifitas runut pembuatan program:
– Pendefinisian masalah
– [Deskripsi metoda formal]
– Penyusunan algoritma [/flowchart]
– Penulisan instruksi (coding) menggunakan sebuah bahasa formal
– Uji coba & perbaikan kesalahan (debugging)
– Run program
– Dokumentasi

• Algoritma (algorithm) ~ pseudocode
– (rules) untuk menyelesaikan suatu masalah
– Langkah-langkah logis dideskripsi tekstual dengan pola baku untuk menyelesaikan suatu masalah.
• Program
– Hasil koversi algoritma ke kode [bahasa program].
– Spesifikasi rinci sebuah komputasi.
• Bahasa Program
– Sebuah notasi untuk mendeskripsi sebuah program.

• Diagram alir (flowchart)
– program flowchart: hasil konversi sebuah algoritma dengan  menggunakan symbol baku [ANSI/IBM]
– system flowchart
• Struktur baku flowchart
– Runtut (sequential / linear)
– Alternatif/pilihan/seleksi (alternative/selection)
– Berulang (loop/repetition)

• Generasi Bahasa Program
– [www.cs.qub.ac.uk/~J.Campbell/myweb]
– G-0 [ …. 1954]: mesin, asembli
– G-1 [54 - 58]: FORTRAN, ALGOL
– G-2 [59 - 61]: COBOL, APL, LISP
– G-3 [62 - 70]: BASIC, PL/I, Pascal, SIMULA
– G-4 [70 - 80]: Smalltalk, C, Prolog
– G-5 [80 - 2000 ?]: Modula, Ada, C++, Miranda, Dephi, Perl, Agent-Tcl, Java, Web-oriented.
– G-6 [2001 …… ] ??

• Klasifikasi paradigma

• Imperative / algorithmic Paradigm

program dipandang sebagai rentetan instruksi (imperative
 [Latin] = imperare to command); komputer diperintah untuk
mengerjakan sederet step, tiap step ada perubahan dalam isi
dan status tiap elemen memori.
– Secara implisit atau eksplisit program yang dibuat berbasis
pada konsep arsitektur komputer von Neumann.


– Struktur program merupakan kombinasi dari pola-pola:
· Sequence.
· Selection.
· Repetition.
· Procedural Abstraction
· Procedural Abstraction with parameter(s).


• Declarative Paradigm
– Program merupakan kumpulan declarations of functions, and/or facts
• PROLOG. Predicate logic.
• Functional. Functions and application of these functions.
– Declarative ~ mean that we achieve a program simply by declaring the specification of length.
– Functional ~ mean a pure mathematical function, [one which takes an argument and returns a result - no side-effects such as change
of state (memory contents)].

• Object-oriented Paradigm
– Dalam bahasa yang murni OO, objects adalah separate entities yang merepresentasikan state and the means to compute.
– Filosofi
• OOA + OOD = OOAD
• OOL : C++, Java, Modula-2, Newton Script, ADA
• OOP
• OODB --> OODBMS
– C++ dapat dipandang sebagai sebuah bahasa hibrid, imperative / object-oriented language

3. Metode & Teknik
• Metode Terstruktur
– metodologi berdasar pada structure & discipline bagaimana membuat sebuah program: bentuk / pola, proses desain, pengkodean, dan uji coba.
– Objektif
• readability
• efficiency
• reliability
• discipline (systematic & integrity)
• reduce cost
– GOTO-less programming

• Metode Modular
– Organizing a program into small, independent units [modules].
– Goals
• Cacah program menjadi bagian-bagian kecil.
• Cacah masalah menjadi lebih kecil & sederhana.

• Verifikasi kebenaran penggunaan tiap modul program independently sebagai bagian dari sistem lebih besar.
– Properties
• tiap modul: simple, closed, discrete & visible, separately testable
• tiap modul hanya memiliki single entry & exit point.


• Metode Stepwise Refinement
– Proses dikerjakan dengan runtutan langkah pasti
– Tiap langkah jelas kaitan tasks & struktur data
– Rincian tiap langkah.
• Metoda Top-down / Bottom-up
– Designing, coding, and testing sebuah program dengan tahapan progresif.
– Dihasilkan runtut tahapan yang structured & modular
– Makin bawah modul = subfunctions yang mendefinisikan tasks  makin detil.

• Teknik Diagram
– Kategori
• overview system analysis
• program architecture
• program detail
• data structures
– Tipe
• DFD, functional decomposition, structure charts
• HIPO, Warnier-Orr, Michael Jackson
• flowchart, pseudocode, Nassi-Schneidermann
• action diagram, decision tree, decision table
• data structure, ERD, HOS charts, IDEF

• Diagramming tools
– AutoSketch; CorelDraw
– Designer; EasyFlow
– FlowModel; Illustrator
– PHOTO-PAINT; Photoshop
– PowerPoint; netViz
– QA-Flow; Schematic;
– SiteMapper; SmartDraw
– TeamFlow; Visio Technical
– Visual Thought; WBFlow
4. Struktur Data
• Data structure
– Cara penyimpanan data dalam komputer sehingga dapat digunakan secara efisien.
– Pemilihan struktur data sangat penting dalam desain program [pemrograman].
• Abstract data type (ADT)
– Struktur data dan operasi-operasi yang dapat dilakukan pada data tersebut.
– Sebuah class dalam OOD = ADT, classes memiliki sifat-sifat tambahan (inheritance and polymorphism) not normally associated with ADTs.

• Data Model
– Hasil proses desain basisdata yang dapat dipakai untuk mengidentifkasi dan mengorganisasi data yang dibutuhkan logically & physically.
– Data model akan menunjukkan semuainformasi yang harus terkandung dalam basisdata, bagaimana cara penggunaannya, dan bagaimana setiap item database akan terkait satu sama lainnya.
• Data warehouse
– Kumpulan terpadu data perusahaan, dapat diakses oleh business managers, administrators, service providers & researchers yang berhak untuk: dianalisis, menghasilkan ad hoc queries & reports, dan cara pemeliharaan data subsets.

• Jenis [http://en.wikipedia.org/wiki/Data_structure]
– Linear data structures:
• list - array [bitmaps: images, heightfields/Digital Elevation Model]
• linked list - skip list
• Hash table
• Stack [LIFO]
• Queue [FIFO]
• Deque
– Graph data structures
• Scene graph
• Tree: AVL, binary search, B, Parse, Red-black, Splay, Heap, String
trie, Suffix trie