Wednesday 12 March 2014

Merancang dan Mendesain Program Dengan Algoritma Pseudocode

Saya kan kemaren udah ngasih 2 tutorial tentang cara membuat input dan output dalam komputer tuh. Sekarang saatnya teori!! Haaa maless bangeet!!!

Haha enggak ko. Ini cuma teori singkat yang udah saya rangkum di catetan tentang pengenalan dasar komputer aja. Tenang, bentuknya cuma point2 aja. Saya juga lagi males bikin kalimat penjelasan panjang lebar. Loh ko tiap postingan bilangnya males terus? Yaa emang begitulah, saya ini pada dasarnya emang pemalas.

Yaa kan ada bagusnya juga sebelum merancang dan mendesain program kamu tau ini dulu. Sekalian saya backup catetan biar ga repot nanti kalo ilang dan kamu juga dapet ilmu baru. Lumayan kan~
Okeh langsung aja deh cekitout!

Teori Dasar Dalam Merancang dan Mendesain Program

Langkah2 dalam mengembangkan program:
  1. Define the problem
    Pada langkah ini dilakukan penentuan permasalahan.Permasalahan tsb kemudian dipecah menjadi input, output, dan proses yang dibutuhkan untuk menghasilkan output. Pada perusaahaan, langkah ini dilakukan oleh seorang sistem analyst. Dalam menentukan permasalahan sebaiknya memakai defining diagram untuk membantu memisahkan dan menetapkan input, output, dan proses.
  2. Outline the solution
    Pada langkah ini, client menguraikan pemecahan masalah dengan membuat outline sebagai berikut:
    • Proses utama yang terlibat.
    • Subtask utama (jika ada).
    • User interface (jika ada).
    • Control structure utama (seperti repetition loops).
    • Variabel utama & record structure
    • Mainline logic
    Pada langkah Outline the solution ini bisa memakai hierarchy chart atau structure chart untuk mempermudah penggambarannya.
  3. Develop the outline into an algorithm
    Pada langkah ini, langkah pemecahan masalah yang sudah dibuat kemudian dikembangkan menjadi sebuah algoritma. Orang yang bertugas di langkah ini adalah seorang General Manager.
  4. Test the algorithm for correctness
    Menguji kebenaran algoritma yang sudah dibuat. Orang yang mengujinya adalah system analyst dan orang di bagian quality control.
  5. Code the algorithm into a spesific programming language
    Mengubah algoritma ke dalam bentuk bahasa pemrograman seperti Java, C, atau C++. Orang yang bertugas di langkah ini adalah programmer.
  6. Run the program on the computer
    Menjalankan program yang telah dibuat untuk mengecek kebenaran dan kesalahan dari code bahasa pemrograman yang sudah dibuat. Pengecekan dilakukan oleh programmer, system analyst, dan juga client. Langkah ini dilakukan berkali2 untuk memastikan program sudah berjalan sesuai dengan keinginan client.
  7. Document and maintain the program
    Seorang project manager mendokumentasikan dan melakukan backup pada program yang sudah dibuat untuk mengatasi kehilangan. Selain itu, langkah ini dilakukan untuk mempermudah pengubahan program selanjutnya.

Metodologi dalam mendesain program
Pendekatan yang dilakukan antara lain:
  • Procedure-driven: melakukan pendekatan melalui fungsi dari sebuah program dan apa yang dilakukan oleh program tersebut (what it does). Setiap fungsi dipecah menjadi aliran data yang lebih kecil dan spesifik.
  • Event-driven: melakukan pendekatan melalui event atau interaksi tertentu dari luar yang menyebabkan perubahan pada program menjadi bentuk yang baru. Contoh: klik kiri, klik kanan, drag, dll sampai event selanjutnya terjadi.
  • Data-driven: melakukan pendekatan melalui kestabilan data dalam program dan pada proses yang dilibatkan. Pendekatan cara ini dilakukan dengan menganalisis data beserta hubungan antar data. Kemudian ketika struktur dasarnya sudah ditemukan, data output diuji untuk menentukan proses yang dibutuhkan serta mengubah input data menjadi output yang dibutuhkan. Pendekatan ini adalah mendesain program dengan berdasarkan berpikir pada konsep datanya secara statis.

Prosedural vs OOP
Prosedural programming:
  • Berfokus pada pemikiran bagaimana memecah program menjadi modul yang kecil2.
  • Memakai pendekatan top-down dan berstruktur.
  • Memakai pendekatan tentang apa yang dilakukan program beserta mengidentifikasi dan mengorganisir proses.
  • Masalah dipecah menjadi task atau fungsi terpisah dan mencakup top-down development dan modular desain.

OOP (Object-Oriented Programming):
  • Mudah untuk mengidentifikasi code ketika sudah lama tidak digunakan (ini adalah keuntungan OOP).
  • Berfokus pada object dan bagaimana object tsb berjalan
  • Masalah dipecah menjadi sekumpulan obejct terpisah yang saling berkaitan.
  • Setiap object memiliki property tersendiri dan bertugas membawa task yang berhubungan dengannya.
  • OOP memikirkan coding berdasarkan objek2nya. Misanya, pada palang pintu: harus dipikirkan fungsinya dan hal apa saja yang bisa dilakukannya.


Algoritma & Pseudocode
Algoritma
Kriteria algoritma yang baik:
  • Jelas, tepat, dan tidak ambigu.
  • Memberikan solusi yang tepat untuk setiap kasus.
  • Bisa berhenti (tidak looping forever).

Pseudocode
  • Pseudocode digunakan untuk menjabarkan algoritma. Karakteristiknya adalah sebagai berikut:
  • Statement harus ditulis dalam bahasa inggris sederhana.
  • Setiap instruksi ditulis di baris berbeda.
  • Keyword dan perataan tulisan (indentation) digunakan untuk menunjukkan control structure tertentu.
  • Setiap kelompok instruksi ditulis dari atas ke bawah dengan satu jalan masuk (entry) dan satu jalan keuar (exit).
  • Kumpulan statement bisa dibentuk menjadi modul.

6 Operasi dasar komputer
6 operasi dasar komputer digunakan sebagai pedoman dalam membuat program dan pseudocode. Operasi dasar tsb antara lain:
  1. Komputer bisa menerima input informasi.
    Ketika komputer diperlukan untuk menerima informasi atau masukan dari sumber tertentu, keyword Read dan Get digunakan dalam pseudocode tersebut. Read biasanya digunakan ketika algoritma adalah untuk menerima masukan dari rekor pada file, sedangkan Get digunakan ketika algoritma adalah untuk menerima input dari keyboard. Contoh pseudocodenya:
    Read student name
    Get system date
    Read system date
    Read number_1, number_2
    Get tax_code
  2. Komputer bisa mengeluarkan output informasi.
    Ketika komputer diperlukan untuk memberikan informasi atau output ke sebuah device, keyword Print, Write, Put, Output atau Display digunakan dalam pseudocode tersebut. Print biasanya digunakan ketika output yang akan dikirim ke printer, sedangkan Write adalah digunakan ketika output ditulis ke dalam sebuah file. Jika output ditulis ke layar, keyword Put, Output atau Display digunakan dalam pseudocode tersebut. Contoh pseudocodenya:
    Print 'Program Completed'
    Write customer record to master file
    Put out name, address, and postcode
    Output total_tax
    Display 'End of data'
    Catatan: biasanya instruksi output Prompt dibutuhkan sebelum instruksi input Get. Keyword Prompt menyebabkan pesan dikirimkan ke layar, kemudian membutuhkan respon dari user yang biasanya berupa pemasukan input. Contoh pseudocodenya:
    Prompt for student_mark
    Get student_mark
  3. Komputer bisa melakukan operasi aritmatik.
    Operasi yang digunakan antara lain:
    + untuk menambah - untuk mengurangi
    * untuk mengalikan / untuk membagi
    ( ) untuk tanda kurung = untuk menunjukkan nilai dari sebuah proses
    Contoh:
    1. add number to total
      total = total+number
    2. divide total_marks by student_count
      sales_tax=cost*price*0.10
      compute C=(F-32)*5/9
    Pada pseudocode berlaku juga urutan operasi matematika.
  4. Komputer bisa memberikan nilai ke variabel atau memory location.
    3 hal penting dalam menulis pseudocode untuk memberikan nilai ke variabel/memory location:
    • Memberikan nilai awal data dalam pseudocode.
    • Memberikan nilai sebagai hasil dari sebuah proses.
    • Menyimpan variabel untuk digunakan nanti.
    Contoh:
    1. Initialise total_price to zero
      Set student _count to 0
    2. total_price = cost_price+sales_tax
      total price ← cost_price+sales_tax
    3. store customer_num in last customer_num
    Catatan: tanda ← adalah tanda assign operation.
  5. Komputer bisa membandingkan 2 variabel dan memilih 1 dari 2 pilihan.
    Menggunakan IF, THEN, dan ELSE. Contoh:
    IF student_attendance_status is part_time THEN
    add 1 to part_time_count
    ELSE
    add 1 to full_time_count
    ENDIF
  6. Komputer bisa mengulang sekumpulan kegiatan.
    Menggunakan DOWHILE dan ENDDO. Contoh:
    DOWHILE student_total < 50
    Read student record
    Print student name, address to report
    add 1 to student_total
    ENDDO

    Catatan kecil: perulangan dengan fungsi for memakai variabel i, j, dan k karena fungsi tsb memakai vektor.

3 komponen yang harus dikuasai dalam mendesain algoritma:
  1. Input: daftar source data yang diperlukan untuk memecahkan masalah.
  2. Output: hal paling pertama yang harus ditanyakan. Dalam bisnis, hal ini penting dan biasanya ditanyakan oleh manager.
  3. Processing: action untuk menghasilkan output.

Cara mengecek solution algorithm saat melakukan desk checking:
  1. Bisa diperiksa saat koding.
  2. Memberikan 2 atau 3 simple input yang valid untuk mengetesnya.
  3. Menetapkan hasil yang diharapkan untuk setiap case yang di tes.
  4. Membuat tabel yang relevan dengan nama variabel dalam algoritma.
  5. Menjalankan tes pertama baris-perbaris di dalam algoritma dan melihat apakah data yang dimasukkan di setiap variable sudah sesuai dengan logic atau belum.
  6. Mengulang langkah ke 5 dengan data tes lain sampai algoritma mencapai akhir dari logic.
  7. Periksa apakah hasil yang diharapkan pada langkah 3sudah sesuai dengan hasil di langkah ke 6 atau belum.

Structure theorem
Structure theorem berfungsi untuk menggerakkan programming dan berlaku universal untuk semua program. Structure theorem memakai 3 control structure:
  • Sequence: program langsung berjalan melalui instruksi berjajar.
  • Selection: pemilihan kasus ogic dengan menggunakan if dan switch case.
  • Repetition: pengulangan dengan memakai do-while atau for.

Program data
Dalam program data terdapat Variable, Constant, dan Literal.
  • Variable: kumpulan dari sel2/blok2 memory yang dirancang untuk menyimpan item data tertentu. Nilai yang tersimpan dalam sel2/blok2 memory bisa berubah atau bervariasi ketika program berjalan.
  • Constant: data item yang nama dan nilainya tetap sama ketika program dijalankan. Contoh: konstanta laplace, phi, nilai avogadro.
  • Literal: sebuah constant yang namanya ditulis sebagai perwakilan dari nilainya. Contoh constant bernilai 50 bisa dinamakan dengan fifty.
Tipe data dalam program dibagi menjadi:
  1. Elementary data items.
    Elementary data items adalah sesuatu yang berisi variable tunggal yang selalu diperlakukan sebagai sebuah unit. Tipe data ini terdiri dari 1 set nilai data dan satu set operasi yang bisa dilakukan terhadap nilai2 tsb. Elementary data items terdiri dari:
    • Integer: angka positif, negatif atau 0.
    • Real: angka desimal positif atau negatif. Contoh: 19.2, 1.92E+01.
    • Character: kumpulan character pada keyboard, termasuk special character. Contoh: A, B, b, $.
    • Boolean: berisi control flag atau switch yang terdiri dari 1 dari 2 nilai kemungkinan (benar atau salah).
  2. Data structures.
    Data structures adalah sebuah struktur data yang berisi data item lainnya. Data structure terdiri dari:
    • Record: koleksi data item atau field yang menampung hubungan antar data. Contoh: student record bisa berisi student's name, address, dll.
    • File: koleksi record yang saling berkaitan. Contoh: student file berisi berbagai student record.
    • Array: struktur data yang terdiri dari sejumlah variabel atau data item yang semuanya memiliki tipe data yang sama dan diakses dengan nama yang sama. Contoh:
      • Array bernama "nilai" bisa berisi koleksi dari nilai mahasiswa.
      • nilai[3] menunjukkan nilai ketiga dari array bernama "nilai".
    • String: koleksi dari character, bisa berfungsi sebagai tulisan atau variabel. Contoh: 03PVT menunjukkan string student's class.
Keuntungan menggunakan file untuk menyimpan informasi:
  • Berbagai program berbeda bisa mengakses data yang sama.
  • Data bisa dimasukkan dan digunakan berulang kali.
  • Data bisa diubah dan di maintain dengan mudah.
  • Keakuratan data lebih mudah untuk dilakukan.

Tipe file yang bisa menampung data:
  • Sequential atau text files: data disimpan dan diambil secara berurutan.
  • Direct atau random-access files: data disimpan dan diambil secara acak menggunakan key atau index.

Validasi data dalam program bertujuan untuk memeriksa data. Validasi data terdiri dari:
  1. Correct type: input data harus sesuai dengan definisi tipe data yang telah dinyatakan di awal program.
  2. Correct range: input data harus berada dalam satu set nilai2 yang diperlukan.
  3. Correct length: input data (seperti string) harus mempunyai panjang yang sesuai.
  4. Correct date: tanggal yang dimasukkan harus bisa diterima.
  5. Completeness: semua field yang dibutuhkan harus ada.


Yak itu aja catetannya. Itu udah sebanyak 2 bab loh! Mantap kan? Ehehe
Silahkan kalo mau dicopy ke blogmu, tapi tolong cantumkan sumber link dari sini. Hargain dikitlah saya udah capek banget nih ngerangkum sama pegel ngetiknya..
Oke deh sampai jumpa di postingan berikutnya!
Special thanks to: textbook Simple Program Design: A Step-by-Step Approach, 5th Edition Chapter 1-2.

1 comment: