Hell Yeah Pointer 1 program dasar (Teknik Komputer Jaringan): Juni 2017

Jumat, 02 Juni 2017

PENGENALAN BAHASA PEMROGRAMAN KOMPUTER



BAB 1
PENGENALAN BAHASA PEMROGRAMAN KOMPUTER

1.Pengenalan bahasa pemograman

A. Definisi Bahasa Pemrograman
            Bahasa Pemrograman adalah serangkaian tugas yang diwujudkan dalam bentuk source code atau kode program yang berfungsi untuk menyelesaikan suatu masalah yang mengarah menjadi sebuah program atau aplikasi komputer.
            Bahasa pemrograman juga dapat didefinisikan sebagai teknik komunikasi standar untuk mengirimkan atau mengekspresikan perintah dari seorang programmer kepada komputer. Bahasa pemrograman tidak jauh berbeda dengan bahasa manusia, yaitu memiliki aturan-aturan tertentu dan tata tulis.
            Bahasa pemrograman diklasifikasikan kedalam Bahasa Tingkat Rendah, Bahasa Tingkat Menengah, Bahasa Tingkat Tinggi. Dapat kita lihat jika bahasa pemrograman hadir di tengah-tengah manusia mulai dari rendah, menengah, dan tinggi, itu terjadi karena ada pergeseran perubahan bahasa program dari pertama kali ditemukannya bahasa program sampai sekarang yang semakin berkembang mendekati bahasa manusia dan lebih mudah dimengerti oleh manusia.
  •  a.     Bahasa Pemrograman Tingkat Rendah
Bahasa Pemrograman Tingkat Rendah adalah bahasa program generasi pertama, kategori ini masih sangat sulit dimengerti oleh manusia. Karena masih jauh berbeda dengan bahasa manusia, dimana dalam bahasa ini urutan instruksinya masih menggunakan bahasa mesin atau assembly. Assembly merupakan bahasa dengan pemetaan satu persatu terhadap instruksi komputer. Setiap urutan instruksi assembly diterjemahkan dengan menggunakan assembler.
  • b.     Bahasa Pemrograman Tingkat Menengah
Bahasa pada kategori ini mulai memudahkan manusia untuk memahami bahasa program. Karena penggunaan perintahnya sudah mendekati bahasa sehari-hari yang dipakai manusia, tetapi masih sulit untuk dipelajari oleh para pemula karena masih banyak menggunakan singkatan-singkatan dalam penulisannya. Contoh MOV artinya pindah yang berasal dari kata (MOVE). Bahasa pada Fortran masih menggunakan bahasa ini.
  • c.     Bahasa Pemrograman Tingkat Tinggi
Disebut bahasa tingkat tinggi karena pada kategori ini bahasa program yang mulanya sulit dimengerti oleh manusia , pada bahasa tingkat tinggi ini diperbaharui menjadi bahasa yang pengaplikasiaannya lebih mendekati bahasa manusia sehari-hari. Sebuah pernyataan program diterjemahkan kepada bahasa mesin dengan menggunakan compiler.
Contoh bahasa program yang tergolong bahasa tingkat tinggi : C++, Java, VB.Net.
           
          * Bahasa pemrograman pada komputer terdiri dari 2 jenis bahasa program.yaitu Bahasa Prosedural  dan Bahasa Pemrograman Berorientasi Objek atau disebut OOP(Object Oriented Progamming).
  • 1.     Bahasa Prosedural
Bahasa Prosedural adalah menyelesaikan program atau menulis suatu code program dengan urutan-urutan atau instruksi perintah(Step by Step). Tidak dibenarkan melompat dari satu perintah sebelum menyelesaikan perintah sebelumnya. Bahasa prosedural ini dituntut kepada seorang programmer bagaimana untuk memecahkkan suatu masalah menjadi bagian-bagian masalah yang lebih sederhana. Fungsi dan Prosedur menjadi fokus utama dalam penyelesaian menggunakan bahasa prosedural, dimana fungsi dan prosedur digunakan sebagai manipulasi data yang bersifat pasif.
  • 2.     OOP(Object Oriented Programming)
Cara pandang Pemrograman Berorientasi Objek(OOP) adalah serangkaian tugas tidak diselesaikan dalam bentuk prosedur, melainkan serangkaian objek bekerjasama untuk menyelesaikan suatu masalah. Fungsi dan data bukanlah menjadi dua hal yang terpisah melainkan fungsi dan data menjadi satu kesatuan yang disebut sebagai objek aktif.

 
2.struktur bahasa pemrograman
Secara ringkas, struktur suatu bahasa pemrograman Pascal dapat terdiri dari :
1.      Judul Program
2.
      Tubuh Program
Tubuh program dibagi menjadi dua bagian utama :
a.       Bagian deklarasi
·      deklarasi label
·      deklarasi konstanta
·      deklarasi tipe
·      deklarasi variabel/perubah
·      deklarasi prosedur
·      deklarasi fungsi
b.      Bagian Pernyataan/Terproses
Cat : baris-baris komentar untuk memperjelas program diletakkan diantara tanda (*
dan *) atau { dan }
.
1.     Judul program
Judul program ini digunakan untuk memberi nama program dan sifatnya optional. Jika ditulis harus terletak pada awal dari program dan diakhiri dengan titik koma (;). Contoh penulisan judul program :
PROGRAM latihan;
PROGRAM latihan(input,output);
PROGRAM lat_1;
PROGRAM lat_satu(output);
2.      Bagian Pernyataan/Terproses
Bagian ini adalah bagian yang akan terproses dan terdapat dalam suatu blok yang diawali dengan BEGIN dan diakhiri dengan END (penulisan END diikuti dengan tanda titik). Bagian ini berisi pernyataan / statamen yang merupakan instruksi program. Setiap statemen diakhiri dengan tanda titik koma (;). Bentuk umumnya adalah sbb :
BEGIN
...
statemen;
statemen;
...
END.

3.      Bagian deklarasi
Bagian ini menjelaskan / memperkenalkan secara rinci semua data yang akan digunakan pada suatu program. Dalam penulisannya tidak boleh sama dengan kata-kata cadangan (reserved words) dan selalu diakhiri dengan titik koma (;).
Deklarasi label
Deklarasi label digunakan Jika pada penulisan program akan menggunakan statemen GOTO (untuk meloncat ke suatu statement tertentu).
Deklarasi konstanta
Deklarasi ini digunakan untuk mengidentifikasikan data yang nilainya
sudah ditentukan dan pasti, tidak dapat dirubah dalam program.
Deklarasi tipe
Deklarasi ini digunakan untuk menyebutkan tipe setiap data yang akan digunakan pada program Pascal. Tipe data menentukan jangkauan nilai yang mungkin dari data yang digunakan
Deklarasi variabel/perubah
Deklarasi ini berisi data-data yang bisa berubah-ubah nilainya di dalam program. Deklarasi variabel harus di letakkan setelah deklarasi tipe (jika ada).
Deklarasi prosedur dan Fungsi
Program dapat dibagi menjadi beberapa bagian/subprogram, yang terdiri dari satu program utama dan satu / lebih program bagian (bisa berupa prosedur / fungsi). Deklarasi prosedure/ fungsi terletak pada subprogram yang menggunakannya

2.1.5. Unsur-unsur pemrograman pascal adalah sebagai berikut
a.       Mendapatkan data dengan membaca data dari default input ( keyboard, file atau sumber data lainnya )
b.      Menyimpan data ke dalam memori dengan struktur data yang sesuai
c.       Memproses data dengan instruksi yang tepat
d.      Menyajikan atau mengirimkan hasil olahan data ke default output ( monitor, file atau tujuan lainnya )

2.1.6. Dalam mengolah data diperlukan pengelolaan instruksi terstruktur yaitu:
a.       Beberapa instruksi dikelompokkan dalam satu blok atau model yang mengerjakan tugas tertentu
b.      Beberapa perintah
c.       Beberapa perintah dilaksanakan berulang dengan jumlah pengulangan tertentu.
Identifier digunakan untuk nama: Program, Sub-program ( procedure dan function ), nama : variable, constant, type, label. Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam program. Ketentuan penulisan identifier adalah :
a.       Nama identifier harus dimulai dengan karakter huruf alphabet : a sampai z, A sampai Z atau karakter ‘_’ (underscore – garis bawah)
b.      Karakter berikutnya adalah karakter numerik (0 .. 9) atau kombinasi alphanumerik (huruf-numerik)
c.       Panjang nama, pada berbagai versi pascal umumnya antara 32 – 63
d.      Tidak boleh menggunakan karakter istimewa:  + – * / \ = <> [ ] . , ; : ( ) ^ @ { } $ # ~ ! % & ` ” ‘ dan ?

3.standar input dan output dalam bahasa pemrograman
1.standar output dalam bahasa 

Bahasa C menggunakan fungsi-fungsi untuk menampilkan hasil (output). Hasil atau output program tersebut umumnya ditampilkan di layar monitor,dicetak oleh printer,atau di simpan ke dalam file tertentu. Fungsi-fungsi yg di gunakan untuk menampilkan hasil terdapat pada file library stdio .h, sehingga kita perlu mengikut sertakannya dalam kode program di bagian header file.
Fungsi-fungsi yang di gunakan untuk menampilkan hasil layar antara lain puts() dan printf() fungsi puts() di gunakan untuk menampilkan hasil dlm bentuk yang sederhana. Perhatikan contoh penggunaannya pada kode program brikut.
/* pengguna puts*/
#include<stdio.h>
Int main(){
       Puts(“nomortelepon rumahku:”);
       Puts(“1234567890”);
       Retrun 0;
}

             
   Fungsi printf()di gunakan untuk menampilkan hasil dalam format tertentu. Fungsi printf() umumnya di gunakan untuk menampilkan hasil yang lebih rumit. Perhatikan contoh penggunaannya pada kode program berikut.
/*pengguna printf*/
#include<stdio.h>
Int main(){
   Printf(“nomortelepon rumahku:”);
   Printf(“1234567890”);
   Retrun 0;
}


  Apabila program tersebut dieksekusi maka akan muncul tampilan sebagai berikut
Text Box: Nomor telepon rumahku:1234567890 
    Perhatikan bahwa meskipun kedua kalimat dituliskan dalam perintah pada baris yang berbeda,namun pada tampilan hasil dilayar menjadi 1 baris. Inilah salah satu perbedaan hasil yang ditampilkan fungsi puts() dan printf().penggunaan fungsi  printf() lebih lanjut akan kamu pelajari pada bab berikutnya.
  2.standar input dalam bahasa pemrograman
Pada program yang bersifat interaktif,diperlukan input atau masukan dari pengguna program untuk menentukan output atau hasil yang dikehendaki pengguna tersebut.bahasa C  menyediakan pula fasilitas untuk menerima masukan dari pengguna program dengan menggunakan fungsi-fungsi tertentu.fungsi-fungsi untuk menerima masukan dari pengguna ini ada di dalam file library stdio.h.fungsi yang dapat digunakan antara lain scanf(),dengan format penulisan antara lain ditunjukkan pada tabel 3.4 berikut.
Tabel 3.5  format penulisan fungsi scanf()
Format penulisan
Kegunaan
Scanf(“%d”,&variabel)
Memasukkan masukan berupa bilangan bulat (integer)
Scanf(“%f”,&variabel)
Memasukkan masukan berupa bilangan desimal (float)
Scanf(“%c”,&variabel)
Memasukkan masukan berupa bilangan huruf (karakter)
   Perhatikan bahwa,penggunaan fungsi untuk menerima masukan dari pengguna harus disertai dengan deklarasi variabel untuk menampung nilai masukan tersebut.deklarasi variabel ditulis paling atas sebagai pernyataan pertama dalam sebuah fungsi.
   Penggunaan fungsi  scanf() umumnya dikombinasikan dengan printf() untuk menampilkan nilai dari variabel yang digunakan untuk menampung masukan.nilai variabel tersebut dapat ditampilkan dengan menambahkan parameter tertentu sesuai dengan tipe datanya.perhatikan format penulisannya pada tabel 3.6
Tabel 3.6 format penulisan fungsi printf() untuk menampilkan nilai variabel
Format penulisan
Kegunaan
Printf(“%d,&variabel)
Menampilkan nilai variabel berupa bilangan bulat(integer)
Printf(“%f”,&variabel)
Menampilkan nilai variabel berupa bilangan desimal(float)
Printf(“%c”,&variabel)
Menampilkan nilai variabel berupa bilanagn huruf(karakter)
Perhatikan contoh penggunaan fungsi scanf() pada kode program berikut.
/*pengguna scanf*/
#include<stdio.h>
Int main(){
  Int bil1; /* deklarasi variabel untukmasukan */
 Printf(“masukkan sebuah bilangan:”);
   Printf(“%d”,&bil1);
   Printf(“bilangan yang dimasukkan adalah%d”,bil1);
Return 0;
}

  Apabila program diatas dieksekusi maka hasilnya adalah sepoerti beriku
Masukan sebuah bilangan: _
Terdapat tanda kursor berkedip sebagai penanda menunggu masukan dari pengguna.misalkan kita ketik angka 5 lalu menekan tombol enter maka dibawahnya akan muncul kalimat seperti berikut

4.kompilasi program dan perbaikan kesalahan
1 .pengertian kompilasi
Kompilasi : Proses mengabungkan serta menterjermahkan sesuatu
(source program) menjadi bentuk lain
Compile : To translate a program written in a high-level programming language into machine language.
Translator :  Compiler & Interpreter
Translator : Adalah suatu program dimana mengambil input sebuah program yang ditulis pada satu bahasa program (source language) ke  bahasa lain (The object on target language)
Jika source language adalah high level language, seperti cobol, pascal, fortran maka object language adalah low-level language atau mesin language. Translator seperti ini disebut COMPILER
Kenapa perlu Translator ?
-Dengan bahasa mesin adalah bahasa bentuk bahasa terendah komputer, berhubungan langsung dengan bagian bagian komputer seperti bits, register & sangat primitive
-Jawaban atas pertanyaan ini akan membingungkan bagi programmer yang membuat program dengan bahasa mesin.
-Bahasa mesin adalah tidak lebih dari urutan 0 dan 1
-Instruksi dalam bahasa mesin bisa saja dibentuk menjadi micro-code, semacam prosedur dalam bahasa mesin
-Bagaimana dengan orang tidak mengerti bahasa mesin
Ada Beberapa Translator
1. Assembler
Source code adalah bahasa assembly, Object code adalah bahasa mesin
*.asm –>assembler–>object code (*.exe/*.com)
2. Compiler
Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses berbeda
3. Interpreter
Interpreter tidak menghasilkan bentuk object code, tetapi hasil translasinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler
COMPILER vs INTERPRETER
Compiler bisa menangkap berbagai kesalahan dalam 1 program kode sumber secara sekaligus. Kalau Interpreter cuma bisa menangkap beberapa kesalahan pada 1 baris kode sumber pada suatu saat
Biasanya program yang dihasilkan compiler lebih cepat dari waktu pelaksanaan program dengan interpreter.
Kalau compiler menghasilkan kode antara (misal object code) dan harus digabungkan / dilink menjadi bentuk yang dapat dijalankan mesin / komputer (executable). Kalau Interpreter biasanya tidak menghasilkan kode antara.
Kalau hendak menjalankan program hasil kompilasi bisa dilakukan tanpa kode sumber. Kalau interpreter butuh kode sumber
Kalau dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing / pembuatan kode objek dan linking / penggabungan kode objek dengan library. Kalau interpreter tidak ada proses terpisah.
Kalau compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker.
Interpreter cocok untuk membuat / menguji coba modul / sub-routine / program-program kecil. Kalau compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
Pada kompiler bisa dilakukan optimisasi / peningkatan kwalitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah / tidak bisa dioptimasikan
Proses kompilasi dikelompokkan ke dalam dua kelompok besar :
1.analisa : program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (inter-mediate representation)
2.sintesa : membangun program sasaran yang diinginkan dari bentuk
Penganalisa Leksikal
membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam tabel simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)
Penganalisa Sintaks
memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam bahasa sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree)
Penganalisa Semantik
memeriksa token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-batasan tersebut misalnya :
a. panjang maksimum token identifier adalah 8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80 karakter,
c. nilai bilangan bulat adalah -32768 s/d 32767,
d. operasi aritmatika harus melibatkan operan-operan yang bertipe sama
Pembangkit Kode Antara
membangkitkan kode antara (intermediate code) berdasar-kan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-directed translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat (three-address code) yang merupakan representasi program untuk suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2 dengan – (strip, dash)
Pengoptimal kode
melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap kode antara
Pembangkit Kode Mesin
membangkitkan kode dalam bahasa target tertentu (misalnya bahasa mesin)
Pembuatan compiler
Bahasa mesin
-Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini, karena manusia susah mempelajari bahasa mesin,
-Sangat tergantung pada mesin,
-Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler
Assembly
-Hasil dari program mempunyai Ukuran yang relatif kecil
-Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha yang besar untuk membuat
-Fasilitas yang dimiliki terbatas
Bahasa Tingkat Tinggi (high level language)
-Lebih mudah dipelajari
-Fasilitas yang dimiliki lebih baik (banyak)
-Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan menggunakan bahasa C
-Untuk mesin yang berbeda perlu dikembangkan tahapan-tahapan tambahan.
-Misal membuat compiler C pada Dos bedasarkan compiler C pada unix
Bahasa Tingkat Tinggi (Pemrograman )
-Bahasa yang lebih dikenal oleh manusia, maksudnya adalah statement yang digunakan menggunakan bahasa yang dipakai oleh manusia (inggris),
-Bahasa pemrograman didefinisikan dengan menentukan bentuk programnya (sintak) dan arti programnya (semantik)
-Memberikan fasilitas yang lebih banyak, seperti struktur kontrol program yang terstruktur, blok-blok  serta prosedur dan fungsi-fungsi
-Progam mudah untuk di koreksi (debug)
-Tidak tergantung pada salah satu mesin
-Kontrol struktur seperti :  kondisi (if .. Then.. Else ),
perulangan (For, while ), Struktur blok (begin.. End { .. } )
2.perbaikan kesalahan

CARA PENANGANAN KESALAHAN

Kesalahan Program bisa merupakan :
  1. Kesalahan Leksikal : THEN ditulis TEN
  2. Kesalahan Sintaks : A:=X+(B*(C+D)       {jumlah kurungnya kurang}
  3. Kesalahan Semantik :
a. Tipe data yang salah.
                        Contoh :          Var Siswa : Integer
                                                Siswa := 'Yanuar'        {tipe string}
b. Variabel belum didefinisikan.
                        Contoh :          B := B + 1       {B belum didefinisikan}

Langkah-langkah Penanganan Kesalahan adalah sebagai berikut :
  1. Mendeteksi Kesalahan
  2. Melaporkan Kesalahan
  3. Tindak lanjut pemulihan/perbaikan
sebuah kompilator yang menemukan kesalahan akan melakukan pelaporan kesalahan, yang biasanya 
meliputi :
  1. Kode kesalahan
  2. Pesan kesalahan dalam bahasa natural
  3. Nama dan atribut identifier
  4. Tipe-tipe yang terkait bila type checking

Contoh : Error Massage: Error 162 Jumlah := unknown identifier
artinya :
  •  kode kesalahan = 162
  • pesan kesalahan = unknown identifier
  • nama identifier = Jumlah

Adanya pesan kesalahan tersebut akan memudahkan pemrogram dalam mencari dan mengoreksi sumber dari kesalahan.

REAKSI KOMPILATOR PADA KESALAHAN

Terdapat beberapa tingkatan reaksi yang dilakukan oleh kompilator saat menemukan kesalahan, yaitu :
  1. Reaksi-reaksi yang tidak dapat diterima (tidak melaporkan error);
a.   Kompilator crash: berhenti atau hang.
b.  Looping: kompilator masih berjalan tapi tidak pernah berakhir karena looping tak berhingga (indefinite/onbounded loop)
c.  Menghasilkan program objek yang salah: kompilator melanjutkan proses sampai selesai tapi program objek yang dihasilkan salah. Ini berbahaya bila tidak diketahui pemrogram, karena baru akan muncul saat program dieksekusi.
  1. Reaksi yang benar tapi kurang dapat diterima dan kurang bermanfaat. Kompilator menemukan kesalahan pertama, melaporkannya, lalu berhenti (halt). Ini bisa muncul bila pembuat kompilator menganggap jarang terjadi kemunculan error dalam program sehingga kemampuan kompilator untuk mendeteksi dan melaporkan kesalahan hanya satu untuk setiap kali kompilasi. Pemrogram akan membuang waktu untuk melakukan pengulangan kompilasi setiap kali terdapat sebuah error.
  2. Reaksi-reaksi yang dapat diterima:
a.  Reaksi yang sudah dapat dilakukan, yaitu kompilator melaporkan error, dan selanjutnya melakukan :
    Recovery/pemulihan, lalu melanjutkan mencari error lain bila masih ada.
    Repair/perbaikan kesalahan, lalu melanjutkan proses translasi dan menghasilkan program objek yang valid.
Kebanyakan kompilator dewasa ini sudah memiliki kemampuan recovery dan repair.
b.  Reaksi yang belum dapat dilakukan, yaitu kompilator mengkoreksi kesalahan, lalu menghasilkan program objek sesuai dengan yang diinginkan pemrogram. Disini komputernya sudah memiliki kecerdasan untuk mengetahui maksud pemrogram. Tingkatan respon ini belum dapat diimplementasikan pada kompilator yang ada dewasa ini.

ERROR RECOVERY

Pemulihan kesalahan bertujuan mengembalikan kondisi parser kekondisi stabil (supaya bisa melanjutkan proses parsing keposisi selanjutnya). Strategi untuk melakukan error recovery sebagai berikut:
  1. Mekanisme Ad Hoc. Recovery yang dilakukan tergantung dari pembuat kompilator sendiri/spesifik dan tidak terikat pada suatu aturan tertentu. Cara ini bisa disebut juga sebagai special purpose error recovery.
  2. Syntax directed recovery. Melakukan recovery berdasarkan syntax. Contoh :
            Begin
          A:=A+1
          B:=B+1;
          C:=C+1
     end;
kompilator akan mengenali sebagai (dalam notasi BNF):
            begin<statement>?<statement>;<statement>end;
'?' akan dikenali sebagai ';'
  1. Secondary Error Recovery berguna untuk melokalisir error, dengan cara sebagai berikut:
a.   Panic Mode. Maju terus dan mengabaikan teks sampai bertemu delimiter (';'). contoh,
                                                IF A:=1
                                                Kondisi := true;
Pada teks diatas tidak terdapat instuksi THEN, kompilator akan maju terus/skip sampai bertemu titik koma.
b.  Unit Deletion. Menghapus keseluruhan suatu unit sintaktik (misal: <blok>, <exp>, <statement> ). Efeknya mirip dengan panic mode tetapi unit deletion memelihara kebenaran sintaksis dari source program dan mempermudah untuk melakukan error repairing lebih lanjut.
  1. Context Sensitive Recovery. Berkaitan dengan semantik, misal bila terdapat variabel yang belum dideklarasikan (Undefined Variable) maka diasumsikan tipenya berdasarkan kemunculannya.        Contoh :
                                          B:= 'nama'
sementara diawal program variabel B belum dideklarasikan, maka  berdasarkan kemunculannya diasumsikan variabel B bertipe string.

ERROR REPAIRING

Perbaikan kesalahan bertujuan memodifikasi source program dari kesalahan dan membuatnya valid sehingga memungkinkan kompilator untuk melakukan translasi program yang mana akan dialirkan ketahapan selanjutnya pada proses kompilasi. Mekanismenya sebagai berikut :
  1. Mekanisme Ad Hoc. Tergantung dari pembuat kompilator sendiri/spesifik.
  2. Syntax Directed Repar. Menyisipkan simbol terminal yang dianggap hilang atau membuang terminal penyebab kesalahan. Contoh :algoritma berikut kurang instruksi DO
                                    WHILE A < 1
                 I:=I+1;
Kompilator akan menyisipkan DO
contoh lain :
                                    Procedure Increment;
              begin
                 x:=x+1;
              end;
              end;
terdapat kelebihan simbol end, yang menyebabkan kesalahan maka kompilator akan membuangnya.

  1. Context Sensitive Repair. Perbaikan dilakukan pada kesalahan berikut.
a.  Tipe Identifier. Diatasi dengan membangkitkan identifier dummy, contoh:
                                                Var A:string;
                   begin
                      A:=0;
                   end;
kompilator akan memperbaiki kesalahan dengan membangkitkan identifier baru, misal B yang bertipe integer.
b.   Tipe  Konstanta diatasi dengan membangkitkan konstanta baru dengan tipe yang tepat.
  1. Spelling Repair. Memperbaiki kesalahan pengetikan pada identifier, misal:
                                    WHILLE A=1 DO
identifier yang salah tersebut akan diperbaiki menjadi WHILE.




BAB 2
VARIABEL TIPE DATA DAN OPERATOR
A.PENGERTIAN VARIABEL,TIPE DATA,DAN OPERATOR
 1. VARIABEL  digunakan dalam bahasa pemrograman untuk menyimpan nilai sementara dimana untuk digunakan kembali nantinya. Dikatakan untuk menyimpan nilai sementara karena nilai variable akan di simpan dalam memory komputer yang bersifat tidak permanen, karena berbeda dengan penyimpanan drive dimana data-data yang disimpan di dalamnya akan hilang ketika komputer dimatikan.                                                                                                                   PENAMAAN VARIABEL  Variabel yang Anda buat terdiri atas huruf, angka atau garis bawah (underscore) • Harus dimulai dengan huruf atau underscore ( _ ) • Panjang variabel tidak boleh lebih dari 255 karakter • Tidak boleh memakai keyword dalam Visual Basic.                              
2.TIPE DATA memiliki tipe yang berbedabeda dan biasanya data dikelompokkan pada kelompok yang sejenis agar tidak terjadi operasi matematika diantara data yang berbeda jenis tersebut, begitu juga dalam suatu program, setiap nilai harus dikelompokkan pada jenisjenis tertentu yang disebut dengan tipe data. digunakan untuk menyimpan semua jenis tipe data lain. Namun                                                                                                                                        KATEGORI TIPE DATA Tipe Data dapat dikategorikan sebagai berikut : 1. Tipe Data Numerik 2. Tipe Data Teks 3. Tipe Data Boolean 4. Tipe Data Date 5. Tipe Data Object 6. Tipe Data Variant uf), Numeric (Number) ataupun date (tanggal).                                                                                                                                          1.TIPE DATA NUMERIK • Antara lain integer, long, single, double, byte. Integer dan long digunakan untuk menyimpan bilangan bulat. Sedangkan single dan double digunakan untuk menyimpan bilangan desimal/real, yang memiliki angka di belakang koma.                                                                                              2. TIPE DATA TEKS Nama, alamat dan lain-lain adalah contoh data teks yang sering kita gunakan dalam program komputer. Kumpulan huruf (boleh kosong) yang dianggap sebagai satu kesatuan itu disebut String. Tipe Data Jumlah Alokasi Memori Jangkauan Nilai Char 2 bytes 0 sampai 65535 String Tergantung pada implementasi platform 0 sampai kira-kira 2 miliar karakter Unicode                                                                                                                                                         3. TIPE DATA BOOLEAN • Tipe ini digunakan untuk menyimpan suatu informasi yang hanya memiliki dua kemungkinan nilai yaitu true atau false. Tipe Data Jumlah Alokasi Memori Jangkauan Nilai Boolean Tergantung pada implementasi platform True atau False                                                                4. TIPE DATA DATE • Digunakan untuk menyimpan informasi bertipe tanggal dan jam                                                                                                                                            5. TIPE DATA OBJECT Variabel Tipe Object dapat dipakai untuk menggantikan objek- objek control. Misalnya Form dengan nama form1 dan tombol dengan nama commandbutton1 Contoh : Dim Tombol As CommandButton, Halaman As Form Set Tombol=commandbutton1 Set lembar=Form1 Tombol.caption=”Stop” Halaman.                                                                                                                         . TIPE DATA VARIANT • Tipe ini kerugiannya adalah tipe data ini boros memori.                                                                                               
3.OPERATOR  adalah simbol yang berfungsi untuk mengoperasikan satu atau dua operand. Operand adalah sesuatu yang dioperasikan.                                                                                                                     
KATEGORI OPERATOR  OPERATOR ARITMATIKA Operator Operasi Keterangan () Pengelompokan Tanda kurung buka dan kurung tutup digunakan untuk mengelompokkan operasi yang akan dikerjakan dulua ^ Pemangkatan Digunakan untuk operasi pemangkatan + , - Tanda / Nilai Biasanya tanda positif (+) tidak dituliskan lagi * Perkalian / Pembagian Pada operasi pembagian menggunakan hasil sampai dengan desimal. Pembagian Integer Pembagian yang hasilnya bilangan integer atau hanya hasil bulatnya yang digunakan. Mod Modulus Hasilnya adalah sisa pembagian integer. + Penjumlahan - Pengurangan                                                                                                                                                                                        OPERATOR PERBANDINGAN Operator Operasi Contoh = Sama dengan 23 = 33 ' False , 23 = 23 ' True <> Tidak sama dengan 23 <> 33 ' True , 23 <> 23 ' False > Lebih dari 23 > 33 ' False , 23 > 12 ' True < Kurang dari 23 < 33 ' True , 23 < 23 ' False >= Lebih dari sama dengan 23 >= 33 ' False, 23 >= 23 ' True <= Kurang dari sama dengan 23 <= 33 ' True, 23 <= 12 ' False Operator akan membandingkan di antara dua operand. Nilai keluarannya berupa Boolean                                                                                                               OPERATOR LOGIKA Operator Keterangan And Hasilnya True jika kedua operand bernilai True. Selain itu hasilnya False. Or Hasilnya True jika salah satu atau kedua operand bernilai True. Selain itu hasilnya False. Xor Hasilnya True jika hanya salah satu operand bernilai True. Selain itu hasilnya False. AndAlso Hasilnya True jika kedua operand bernilai True. Selain itu hasilnya False. OrElse Hasilnya True jika salah satu atau kedua operand bernilai True. Selain itu hasilnya False. Not Merupakan operator unary. Hasilnya True jika operand False. False jikaoperand True. Operator logika adalah operator yang membandingkan ekspresi Boolean.
B.OPERATOR DAN EKSPRESI 
  1. OPERATOR Operator adalah simbol-simbol khusus yang digunakan untuk mengoperasikan suatu nilai data .                                                                                                                                                                  Operator Aritmatika Digunakan untuk mengoperasikan data-data numerik, seperti penjumlahan, pengurangan, perkalian, pembagian, dll. ^ : Pangkat * : Perkalian / : Pembagian real \ : Pembagian integer + : Penjumlahan - : Pengurangan .
Operator Relasi Digunakan untuk mewakili sebuah nilai logika (nilai boolean), dari suatu persamaan atau nilai. Operator-operator yang terlibat adalah : = : sama dengan > : lebih besar < : lebih kecil <> : tidak sama dengan >= : lebih besar atau sama dengan <= : kurang atau sama dengan.
Operator Boolean Operator yang menyatakan suatu kondisi tertentu. Macam dari operator boolean ini adalah: 1. OR --> Prinsip kerja aliran listrik Paralel 2. AND --> Prinsip kerja aliran listrik Seri .
2.EKSPRESI  adalah transformasi nilai menjadi keluaran yang dilakukan melalui suatu perhitungan (komputasi). Ekspresi terdiri atas operand dan operator, contoh ekspresi: “a + b”.Hasil Evaluasi dari sebuah Ekpresi adalah nilai yang sesuai dengan type operand yang dipakai
MACAM-MACAM EKSPRESI                                                                                                                 Ekspresi aritmatika Ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga bertipe numerik. Pada ekspresi aritmetik terdapat 2 buah operator yaitu : · Operator biner, yaitu ekspresi yang operatornya membutuhkan 2 buah operand. Contoh a + b. Operator Uner, yaitu “-” atau operator yang punya 1 operand contoh “-2” Contoh 2. (Penulisan ekspresi dengan notasi algoritma) T = 5/9 * (c + 32) Z = (2*x + y) / (5 * w) Y = 5((a+b) / (c*d) + m (p + q)).       Ekspresi Perbandingan/ Relasional Ekspresi relasional adalah ekspresi dengan operator <, ≤, >, ≥, =, dan ≠, not, and, or dan xor dengan menghasilkan nilai bertipe boolean (true atau false). Biasanya ekspresi Relasional disebut ekspresi boolean.                                                                                            Ekspresi Logika (Menggunakan Operator Boolean) sebuah perintah yang akan mengeksekusi suatu perintah apabila kondisi tertentu terpenuhi.




BAB 3
STRUKTUR PERCABANGAN
A.PERCABANGAN 1 KONDISI
   Penulisan percabangan 1 kondisi
if then
pernyataan1
     else
pernyataan2
penjelasan :
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak (<kondisi> bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan2. Berbeda dengan percabangan satu kondisi, pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai salah
Flowchart :

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHNm75giqjh59abZOiXRQfyxKKRatfrEpRZlbDjqBHSRgOYKOGG5CHA5h_GY9vCO64uqrkzuiSXslqpHYDoAw3stwiCKxr_AQkn3Kwn34q6EySHDRdv1UqIiM8OECMfFcj_rwyLN-rV9c/s1600/percabangan+2+kondisi.bmp

ALGORITMA PERCABANGAN 1 KONDISI
                        Pemilihan statemen/pernyataan pada kondisi tertentu.Algoritma percabangan dengan 1 kondisi memiliki format dasar seperti berikut :
            IF <kondisi>
            THEN <pernyataan>
Pada format diatas , jika <kondisi> bernilai benar maka <pernyataan> dikerjakan, sedangkan jika bernilai salah, maka <pernyataan> tidak dikerjakan dan proses langsung keluar dari percabangan.
Contoh Kasus : Nilai siswa akan gagal bila bernilai ≤ 60

ALGORITMA BAHASA NATURALMulai
  1. Menentukan nilai siswa
  2. Jika nilai siswa ≤ 60
  3. Siswa dinyatakan Gagal
  4. PSEUDOCODE
Var :
            nilai_siswa : integer
Pseudocode :
Read ( nilai siswa )
IF nilai siswa ≤ 60 THEN
 write ( Siswa dinyatakan gagal )


FLOWCHART

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQ_3t-Qx-pvN0OluMQD0Kb1bzT-REKCMbGLg6lCXEpALBf2kMTQgJTBbcif8iKKkuH2golpMSmLrW6GEhDe2AMxn_Izi8Jtr-aX1K6aKwrgD12CYQM1ntQqTYS4TuJ1z1ne37dsMVvGOz/s1600/per+1.png
                                                                                                           
                                                                                                                      B.PERCABANGAN DENGAN 2 KONDISI

                          Penulisan percabangan 2 kondisi
if then
pernyataan1
     else
pernyataan2
penjelasan :
Jika <kondisi> bernilai benar maka pernyataan1 dikerjakan. Sedangkan jika tidak (<kondisi> bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan2. Berbeda dengan percabangan satu kondisi, pada percabangan dua kondisi ada dua pernyataan untuk dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai salah
Flowchart

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHNm75giqjh59abZOiXRQfyxKKRatfrEpRZlbDjqBHSRgOYKOGG5CHA5h_GY9vCO64uqrkzuiSXslqpHYDoAw3stwiCKxr_AQkn3Kwn34q6EySHDRdv1UqIiM8OECMfFcj_rwyLN-rV9c/s1600/percabangan+2+kondisi.bmp
ALGORITMA PERCABANGAN 2 KONDISI
Algoritma percabangan dengan 2 kondisi memiliki format dasar seperti berikut :
            IF <kondisi>
            THEN <pernyataan 1>
            ELSE <pernyataan 2>
Pada format di atas, Jika <kondisi> bernilai benar maka pernyataan 1 dikerjakan. Sedangkan jika tidak (<kondisi>bernilai salah), maka pernyataan yang dikerjakan adalah pernyataan 2. Berbeda dengan percabangan 1 kondisi, pada percabangan dua kondisi ada dua pernyataan untuk kedua kondisi,yaitu untuk <kondisi> yang bernilai benar dan <kondisi> yang bernilai salah.
Contoh Kasus : Penggolongan nilai



ALGORITMA BAHASA NATURAL
  1. Mulai
  2. Menentukan nilai siswa
  3. Jika nilai siswa ( 0 – 100 ) > 75 Tergolong Baik
  4. Jika nilai siswa ( 0 – 100 ) ≤ 75 Tergolong Cukup
  5. Tampilkan hasil
  6. Selesai
PSEUDOCODE
Var :
            nilai_siswa : integer
Pseudocode
read (nilai siswa )
IF nilai siswa > 75 THEN
write ( tergolong baik )
ELSE
write ( tergolong cukup )

FLOWCHART
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9Hu6f6AOtodj8_xmRns29dwC3P3tuebX1tcSkpFGtZdHWImxifOg17drsuRGRZv0QIIT8niMf-CluVgf_wcQi9ZH4OM1uHc-uhzrwPgMSLtlUWSPNmumOVqv5g33VRxGTcaOgz_GQH_bE/s1600/per+2.png

C.PERCABANGAN LEBIH DARI 2 KONDISI
                     Penulisan percabangan lebih dari 2 kondisi             
If then
                  Pernyataan1
    else if then
                  Pernyataan2
                  ...
    else if then
Pernyataan(n)
    else
                  Pernyataan(n)
Penjelasan :
Mula-mula <kondisi1> dicek nilai kebenarannya. Jika benar, maka dikerjakan pernyataan1. Jika salah, maka dicek nilai kebenaran <kondisi2>. Jika <kondisi2> benar, maka dikerjakan pernyataan2. Jika tidak algoritma akan mengecek ke kondisi berikutnya dengan cara yang sama dengan yang sebelumnya. Terakhir, jika semua kondisi bernilai salah, maka pernyataan yang dikerjakan adalah Pernyataan(n+1).
Flowchart :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-CYpeMzqQahbI8yhic_00awKCDxudFUsduk92hVGsaGvslMpmNLbgsXg6baEyplgt08fK7btjimZQ-Oh7ElQ0IhBiGvNI5cGQ7NxCKnyMASc8TCDXsmreMO_l9V4CPuFWgtnQ5dIF_YQ/s320/percabangan+lebih+dari+2+kondisi.bmp

D.PERCABANGAN BERSARANGImage result for GAMBAR FLOWCHART percabangan 3 kondisi
Contoh: Struktur Percabangan Bersarang untuk masalah fotocopy
Sebuah usaha fotocopy mempunyai aturan sebagai berikut: - Jika yang fotocopy statusnta adalah langganan, maka berapa lembar pun dia fotocopy, harga per lembarnya Rp. 75,- - Jika yang fotocopy bukan langganan, maka jika dia fotocopy kurang dari 100 lembar harga per lembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan 100 lembar maka harga per lembarnya Rp. 85,- Buat
flowchart 
 untuk menghitung total harga yang harus dibayar jika seseorang memfotocopy sejumlah X lembar!

https://html2-f.scribdassets.com/554r5h9shs45x7rf/images/4-310f07feef.jpg

BAB 4
STRUKTUR PERULANGAN
A.PERULANGAN  DENGAN KONDISI DI AWAL

1. Pengulangan dengan Kondisi di awal
Pengulangan dengan kondisi di awal adalah bentuk pengulangan yang melibatkan kondisinya di awal perintah. jenis pengulangan yang menggunakan kondisi di awal adalah  pengulangan While Do dan pengulangan For Do, sebagai berikut:
a. Pengulangan While Do Format Penulisan:
While kondisi do
pernyataan
inrement /decrement
endwhile
Contoh Kasus:Buat algoritma untuk mencetak tulisan "Contoh pengulangan dengan kondisi di awal" sebanyak 100 buahJawab:
algoritma looping_awal
deklarasi
i : integer
algoritma:
i   1
while i <= 100 do
writeln('Contoh pengulangan dengan kondisi di awal')
i   i + 1
endwhile
b. Pengulangan For do
For kondisi do
pernyataan
increment/decrement
endfor
Contoh soal:Buat algoritma untuk mencetak tulisan "Contoh pengulangan dengan For do" sebanyak 100 buah.
Jawab:
algoritma looping_awal
deklarasi
i : integer
algoritma:
i   1
while i <= 100 do
writeln('Contoh pengulangan dengan kondisi di awal')
i   i + 1
endwhile.

B.PERULANGAN DENGAN KONDISI DI AKHIR
2 - Pengulangan dengan kondisi di akhir
Pengulangan dengan kondisi di akhir adalah bentuk pengulangan dimana kondisi untuk pengulangan di letakan di akhir perintah, satu-satunya pengulangan dengan kondisi di akhir adalah sebagai berikut:Pengulangan Repeat UntilFormat:
Repeat
Pernyataan
increment/decrement
until kondisi

Contoh kasus:Buatlah algoritma untuk mencetak tulisan "Pengulangan kondisi akhir" sebanyak 70 barisJawab:
algoritma kondisi_akhir
deklarasi
i : integer
algoritma:
i  1
repeat
writeln ('Pengulangan kondisi akhir')
i   i+1
until i=70


C.PERULANGAN DENGAN KONDISI DIINPUTKAN USER
3.Pengulangan dengan kondisi diinputkan oleh User
Pengulangan dengan kondisi yang diinputkan user adalah pengulangan dengan jumlah dinamis yang akan sangat tergantung sekali dengan input dari user atau pengguna.
Contoh kasus:Buatlah algoritma pengulangan untuk mencetak tulisan "contoh pengulangan denganinput user" dimana jumlahnya sesuai dengan yang diinput oleh penggunaJawab:
program input_user
deklarasi
i : integer
x : integer
algoritma:
read(x)
i   1
while i <= x do
writeln ('ini adalah pengulangan ke', i)
i   i+1
endwhile
perintah read(x) adalah perintah untuk menampung input pengguna dalam bentuk angka bilangan bulat yang akan ditampung oleh variable x.
pengulangan akan diulang sebanyak jumlah x yang diinput oleh pengguna dengan kondisi i <= x

D.PERULANGAN DENGAN PERNYATAAN BREAK DAN CONTINUE
4 Pengulangan dengan Pernyataan BreakPengulangan dengan pernyataan break adalah bentuk pengulangan dimana di dalam proses pengulangan ada perintah break, sehingga pengulangan akan langsung selesai dan keluar dari proses pengulangan meskipun kondisi belum terpenuhi.Contoh :program contoh_break
deklarasi
i : integer
algoritma:
i   1
while i <= 10 do
writeln ('ini pernyataan pertama')
break
endwhile

Pengulangan di atas jika tidak ada perintah break, maka akan mencetak tulisan "ini pernyataan pertama" sebanyak 10 baris, karena ada break maka output hanya akan mencetak tulisan "ini pernyataan pertama" sebanyak satu kali, karena ketika perintah break terbaca oleh program itu artinya meminta program untuk langsung menghentikan pengulangan dan keluar dari pengulangan walaupun kondisi belum terpenuhi.
Bab 5
Pengembangan algoritma aplikasi
1.Pengembangan Aplikasi dan analisis pemecahan masalah
    Pengembangan aplikasi, atau bisa juga disebut sebagai pengembangan software atau desain software, kerap kali disalahartikan sebagai kegiatan dimana seorang programmer melakukan coding, sebuahprosespenulisan kode
tetapi sebenarnya yang dimaksud dengan pengembangan aplikasi merupakan serangkaian proses yang dilakukan dari saat pembuatan konsep aplikasi hingga aplikasi tersebut selesai dan siap digunakan[11 Dalam proses pengembangan aplikasi terdapat berbagai proses yang perlu dilakukan sebagai syarat untuk membuat sebuah aplikasi yang telah terancang dengan baik, dan dikerjakan secara berstruktur. Proses pengembangan aplikasi berdasarkan terdiri dari 5 tahap utama, walaupun di dalam setiap tahap tersebut terdapat berbagai fase lainnya yang dapat dijalankan sesuai kebutuhan pengembangan. Tahap tersebut antara lain : pengumpulan informasi, perencanaan, pengembangan, penggunaan, dan perawatan[9]. Tahap-tahap tersebut perlu dilakukan, guna mendapatkan sebuah software yang layak guna dan bertahan lama. Dalam urutan pelaksanaannya, terdapat berbagai macam model yang biasa digunakan oleh para pengembang aplikasi, seperti waterfall, spiral, dan agile development.
Dalam menjalankan tugas sehari-hari, apa pun bidang tugasnya, ketika menghadapi masalah, terdapat empat pertanyaan pokok yang selalu muncul:
  1. Masalah apa yang sedang dihadapi?
  2. Mengapa masalah itu terjadi?
  3. Tindakan apa yang harus diambil?
  4. Bagaimana memastikan rencana terlaksana?
Proses berpikir mengikuti pola, input – process – output. Masukan (input) adalah informasi. Informasi yang masuk diolah untuk menghasilkan keluaran (output).
Diagram di atas menunjukkan bahwa mutu keputusan seharusnya dapat ditingkatkan bila aspek masukan dan prosesnya diperbaiki.
Proses berpikir yang bermutu adalah proses berpikir yang sistematis dan rasional. Untuk itu diperlukan alat dan metode analisis masalah yang sesuai dengan masalah yang dihadapi. Buku ini akan membahas empat metode analisis masalah yaitu: Analisis Situasi, Analisis Persoalan, Analisis Keputusan, dan Analisis Persoalan Potensial. Jika ingin mengetahui masalah yang sedang dihadapi, metode yang digunakan adalah Analisis Situasi. Jika ingin mencari sebab, Analisis Persoalan yang dipakai, jika ingin mengambil keputusan, gunakan AnalisisKeputusan, dan terakhir jika ingin mengamankan pelaksanaan rencana, pakailah Analisis PersoalPotens
                                                 ANALISIS SITUASI
Dalam bahasa Minaut Indonesia, semua hal atau kejadian yang mendorong sesorang untuk melakukan tindakan didefinisikan sebagai masalah.
Mengidentifikasi Masalah dapat dilakukan dengan:
  • Observasi lapangan
  • Analisis dokumen
    • Membandingkan rencana dengan realisasi
    • Analisis SWOT
  • Mencari informasi melalui orang lain:
    • Rapat
    • Wawancara
Hasil: Daftar masalah
Memilah Masalah
Menguraikan masalah kompleks menjadi masalah tunggal
  • Masalah yang tidak berhubungan
    • Pisahkan secara horizontal
  • Masalah yang mempunyai hubungan sebab-akibat
    • Pisahkan secara vertical (stair stepping)
Hasil: Masalah-masalah tunggal
Memprioritaskan Masalah
Jika ada lebih dari satu masalah yang siap ditangani, perlu menentukan masalah prioritas.
Melokasi Masalah
Mengidentifikasi jenis masalahnya, apakah masalah penyimpangan, memilih tindakan, atau mengamankan rencana.ANALISIS PERSOALAN
Masalah yang di dalamnya terdapat penyimpangan dan belum diketahui sebabnya disebut persoalan.
                             Hubungan Sebab-Akibat
  • Penyimpangan muncul karena ada PERUBAHAN
  • Penyimpangan adalah bentuk dari AKIBAT
  • PERUBAHAN adalah tempatnya SEBAB
Sebab Persoalan
SEBAB adalah PERUBAHAN relevan yang terkait dengan PERBEDAAN (kekhasan) FAKTA terhadap BUKAN FAKTAANALISIS KEPUTUSAN
Terdapat tiga alternatif tindakan terhadap persoalan, yaitu tindakan sementara/darurat, koreksi, dan penyesuaian/adaptasi.ANALISIS PERSOALAN POTENSIAL
Analisis Persoalan Potensial, menganalisis persoalan-persoalan potensial yang mungkin muncul pada saat pelaksanaan keputusan. Persoalan potensial terjadi karena sebab yang lain atau sebab yang belum diantisipasi, sehingga perlu dipersiapkan tindakan pencegahan dan tindakan penanggulangan.
                                                                      APA YANG KHAS DARI PENDEKATAN MINAUT?
  • Kata “masalah” sangat subyektif sifatnya.
  • Dalam Analisis Situasi, orang yang menerapkan konsep Minaut dalam kehidupan sehari-hari akan lebih mudah melihat kemungkinan timbulnya masalah sejak dini dan dalam memilih konsep yang tepat pada saat menghadapi masalah.
  • Proses berpikir Analisis Keputusan sudah mengantisipasi kemungkinan kesalahan berpikir yang biasa terjadi. Dengan demikian, dalam mengambil keputusan, bukan hanya mempertimbangkan aspek positifnya, tetapi juga mempertimbangkan aspek negatifnya.
2.eror handlingError Handling adalah salah satu penanganan kesalahan (error) pada berbagai macam keadaan dalam pemrograman. Dengan adanya error handling ini maka setiap ada kesalahan , maka eksekusi program tidak akan dihentikan secara tiba-tiba, tetapi akan diteruskan ke baris program yang terdapat script penanganan kesalahan. Dengan adanya Error Handling ini maka program akan semakin user friendly bagi penggunanya, dan akan mengatasi kesulitan bagi para programmer apabila ingin mendefinisikan suatu kejadian yang tidak diinginkan dieksekusi.3.debugging"Debug" dialihkan ke sini.Untuk kegunaan lain, lihat Debug (disambiguasi) .yang mencegah pengoperasian perangkat lunak komputer atau sistem yang benar .
Sejumlah buku telah ditulis tentang debugging (lihat di bawah ini: Bacaan lebih lanjut ), karena melibatkan banyak aspek, termasuk debugging interaktif, aliran kontrol , pengujian integrasi , file log , pemantauan ( aplikasi , sistem ), dump memori , profil , Statistical Process Control , Dan taktik desain khusus untuk memperbaiki deteksi sambil menyederhanakan perubahan.Isi
Pengertian
Dalam rekayasa perangkat lunak, metodologi pengembangan perangkat lunak atau metodologi pengembangan sistem adalah suatu kerangka kerja yang digunakan untuk menstrukturkan, merencanakan, dan mengendalikan proses pengembangan suatu sistem informasi. Banyak ragam kerangka kerja yang telah dikembangkan selama ini, yang masing-masing memiliki kekuatan dan kelemahan sendiri-sendiri.
Model dalam Metode Pengembangan Perangkat Lunak                                                                                      1. Model Prototype
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkD8kzwGRHcNHWzPpnGToltqGH7f6KlhlsYst7HVwdH-4LvMHsPLEHte_PJly7TmNbRsyY0dFGEmR70OJglYhTMe7b4i_B4Mm4SwwNxaK_kFUPPDL7QWqIQSb1xhOtRkFtm0Gl3AadiUo/s1600/images.jpg


          Pendekatan prototyping model digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusia-mesin yang harus diambil. 

Kelebihan model prototype:
  1. Menghemat waktu pengembangan
  2. Adanya komunikasi yang baik antara pengembang dan pelanggan 
  3. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan 
  4. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya 
  5. User dapat berpartisipasi aktif dalam pengembangan sistem
Kekurangan model prototype: 
  1. Biaya untuk membuat prototyping cukup tinggi 
  2. Biasanya kurang fleksible dalam mengahadapi perubahan 
  3. Proses analisis dan perancangan terlalu singkat 
Contoh studi kasus:
     Seorang pelanggan mendefinisikan serangkaian sasaran umum bagi perangkat lunak, tetapi tidak melakukan mengidentifikasi kebutuhan output, pemrosesan, atupun input detail. Pada kasus yang lain, pengembang mungkin tidak memiliki kepastian terhadap efisiensi algoritme, kemampuan penyesuaian dari sebuah sistem operasi,atau bentuk-bentuk yang harus dilakukan oleh interaksi manusia dengan mesin. Dalam hal ini, serta pada banyak situasi yang lain, prototyping paradigma mungkin menawarkan pendekatan yang terbaik.
Prototyping paradigma dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari software, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar diman definisi lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”. Perancangan kilat berfokus pada penyajian dari aspek-aspek software tersebut yang akan nampak bagi pelanggan atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototipe. Prototipe tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan software. Iterasi terjadi pada saat prototipe disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya.
2. Model Waterfall  Waterfall model adalah model yang melakukan pendekatan pada perkembangan perangkat lunak secara seistematik dan sekuensial. Yang artinya kegiatan pada model ini dilakukan secara terurut berdasarkan panduan proses mulai dari komunikasi kepada client atau pelanggan sampai dengan aktifitas sampai pengorderan setelah masalah dipahami secara lengkap dan berjalan stabil sampai selesai.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIJokGmd56YLmYxmJNJqwfeuEDnul663RD4rCdXcEhyphenhyphenms9IT3AfeU8sN9iLACPjKypeqVjSdj7EMXAbzHUtqymDBwCACpPki4F9BFaGl3lOSvfy6PGZmPAtnM117uVJYTM6fmSUA3Y0b8/s1600/sommerville.JPG



Kelebihan model waterfall:
  1. Mudah diaplikasikan.
  2. Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan.
  3. Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
 Kekurangan model waterfall:
  1. Waterfall model bersifat kaku sehingga sulit untuk melakukan perubahan pada sistem perangkat lunak. 
  2. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses. 
  3. Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya. 
  4. Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk. 
  5. Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya. 
Contoh studi kasus:
      Sulitnya petugas bagian administrasi dalam mengolah data perpustakaan yang mengakomodasi peminjaman, buku, pengembalian dan membuat laporan yang membutuhkan banyak waktu. Adapun tujuan dari model sistem ini adalah
memodelkan sebuah sistem informasi Perpustakaan yang berbasis komputer dengan menggunakan metode waterfall dan sistem informasi perpustakaan ini, untuk membantu petugas dalam menghadapi kendala yang dihadapi dalam melakukan transaksi, sehingga dengan adanya sistem informasi tersebut diharapkan dapat menyelesaikan permasalahan yang berhubungan dengan Perpustakaan. 
3. Model Spiral
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS6v2PNpPboe1pzPvAdmK3d3BcJUR5qfRcDaTE_atOvTzNtz6daHOG5JwQ6e6qA1ppjxqpVlc9aBk17FoAGeuNFvYP6fV0vSMZ94bOlVPZvztPcdFymgTofGkpZ3mSuoIXS5seLwjU5ao/s1600/spiral.jpg
Contoh Model Spiral
       Spiral model adalah model proses yang pendekatannya bersifat realistis pada software besar karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami dnegan baik oleh clieent dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun software sudah dikirimkan karena proses (siklus)dapat berputar lagi jika ada perubahan pada software sampai tidak ada permintaan perupbahan pada software oleh client.
Kelebihan model spira

  1. Setiap tahap pengerjaan dibuat prototyping sehingga kekurangan dan apa yang diharapkan oleh client dapat diperjelas dan juga dapat menjadi acuan untuk client dalam mencari kekurangan kebutuhan.
  2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
  3. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer. 
  4. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
  5. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
  6. Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
  7. Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius. 
Kekurangan model spiral:
  1. Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat dikontrol oleh kedua pihak. Model spiral mempunyai resiko yang harus dipertimbangkan ulang oleh konsumen dan developer.
  2. Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
  3. Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
  4. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  5. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.
Contoh studi kasus:   Tuan X adalah General Manager A Company, sebuah perusahaan perkapalan yang berbasis di Singapura. Sebagai
perusahaan UKM muda yang terus berkembang, Tuan X menginvestasikan sebagian modal perusahaan untuk promosi di media cetak dan elektronik, serta melatih kemampuan karyawan melalui berbagai kursus. Untuk mendukung kerja karyawan, A Company menggunakan komputer dasar (Basic PC) yang dilengkapi dengan officesoftware                                                                                                                                                             
4. Model Increm  Dalam model Incremental ini proses pengerjaan perangkat lunak akan dilakukan perbagian sehingga bagian selanjutnya akan dikerjakan setelah bagian awal telah selesai dan selanjutnya sampai menghasilkan perangkat lunak yang lengkap dengan semua fungsi yang diperlukan dan pengerjaan perangkat lunak berakhir. Sebelum pengerjaan perangkat lunak akan dilakukan perancangan arsitektur software sebagai kerangka dalam pengerjaan perbagian. 


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRYWP9tWyx7uw9fqmKXHwyTvNacy9EwnFaYu5bQ56YgGTr5pnOUM3kmDzUkjVm8n4j7ab4LzR8UzlaNF9z4w4jlQbTBSmqC4zusZhA7aQxqg3dIjdadD8uI77-0mOtx6luQ_ve3MODeXk/s1600/Increment+Approach.png
Contoh model increment

Kelebihan model increment:
  1. Resiko yang rendah pada pengembangan sistem.
  2. Mengutamakan fungsi-fungsi pada sistem perangkat lunak sehingga kemudahan pemakaian sistem yang paling di utamakan. 
  3. Tahap awal adalan dasar dari pembuatan tahap berikutnya (dikerjakan secara terurut).
  4. Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat
  5. Mampu mengakomodasi perubahan kebutuhan customer. 
  6. Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian.
  7. Memaksimalkan pengembalian modal investasi konsumen
Kekurangan model increment:
  1. Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh.
  2. Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut.
  3. Hanya cocok untuk proyek dengan skala kecil.
  4. kemungkinan tiap bagian tidak dapat diintegrasikan.
Contoh studi kasus:
      Puskesmas sebagai salah satu bentuk pelayanan kesehatan yang dituntut untuk memberikan pelayanan kesehatan dengan baik. Diantaranya adalah rekam medis pasien di Puskesmas Mranggen I masih menggunakan sistem manual, sehingga menyebabkan beberapa kendala diantaranya pengolahan data pasien yang masih lambat yang mengakibatkan tingginya tingkat kesalahan dalam pengolahan data pasien. Sistem rekam medis ini menggunakan metode penelitian deskriptif dengan jenis studi kasus pada Puskesmas Mranggen I, teknik pengumpulan data yang digunakan adalah observasi, wawancara, dan studi literature. Teknik analisis data menggunakan model incremental yang dikembangkan dari model waterfall, sedangkan model analisis menggunakan analisis terstruktur yaitu ERD (Entity Relationship Diagram) dalam menggambarkan model data dan DFD (Data Flow Diagram) untuk mengembangkan model fungsional.Perangkat pembangun adalah Borland Delphi 7 dengan database MySQL. Data yang diproses yaitu pendaftaran, rekam medis, rujukan, laboratorium sedangkan keluaran dari system berupa laporan-laporan.

Posted by Haritz Cahya Nugraha on May 18, 2011https://hartz.wordpress.com/2011/05/18/pengembangan-aplikasi/