Jumat, 02 Juni 2017

materi pemograman dasar


Bahasa pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer atau bahasa pemrograman komputer, adalah instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya kode_mesin|MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb. Komputer dapat mengerti bahasa manusia itu diperlukan program compiler atau interpreter.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.
Daftar isi
Pengertian Bahasa Pemrograman
Bahasa Pemrograman (programming language) adalah sebuah instruksi standar untuk memerintah komputer agar menjalankan fungsi tertentu. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Fungsi
Fungsi bahasa pemrograman yaitu memerintah komputer untuk mengolah data sesuai dengan alur berpikir yang kita inginkan. Keluaran dari bahasa pemrograman tersebut berupa program/aplikasi. Contohnya adalah program yang digunakan oleh kasir di mal-mal atau swalayan, penggunaan lampu lalu lintas di jalan raya, dll.
Bahasa Pemrograman yang kita kenal ada banyak sekali di belahan dunia, tentang ilmu komputer dan teknologi dewasa ini. Perkembangannya mengikuti tingginya inovasi yang dilakukan dalam dunia teknologi. Contoh bahasa pemrograman yang kita kenal antara lain adalah untuk membuat aplikasi game, antivirus, web, dan teknologi lainnya.
Bahasa pemrograman komputer yang kita kenal antara lain adalah Java, Visual Basic, C++, C, Cobol, PHP, .Net, dan ratusan bahasa lainnya. Namun tentu saja kebutuhan bahasa ini harus disesuaikan dengan fungsi dan perangkat yang menggunakannya.
Secara umum bahasa pemrograman terbagi menjadi 4 kelompok, yaitu :
  • Object Oriented Language (Visual dBase, Visual FoxPro, Delphi, Visual C)
  • High Level Language (seperti Pascal dan Basic)
  • Middle Level Language (seperti bahasa C), dan
  • Low Level Language (seperti bahasa Assembly)
Tingkatan
Bahasa Tingkat Tinggi
Bahasa pemrograman masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia. Contohnya bahasa Basic, Visual Basic, Pascal, Java, PHP.
Bahasa Tingkat Menengah
Disebut tingkat menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun rendah. Contohnya bahasa C.
Bahasa Tingkat Rendah
Bahasa pemrograman masuk tingkat ini karena bahasanya masih jauh dari bahasa manusia. Contohnya bahasa Assembly.
Generasi
Sedangkan menurut generasinya, bahasa pemrograman digolongkan menjadi 4 generasi:
  • Generasi ke-1: machine language
  • Generasi ke-2: assembly language: Assembler
  • Generasi ke-3: high level programming language, contoh: C dan Pascal
  • Generasi ke-4: 4 GL (fourth-generation language), contoh: SQL
  • Generasi ke-5: Programming Language Based Object Oriented & Web Development
Proses Pembuatan Program
Proses pembuatan program yaitu kita menulis kode sumber pada teks editor misalnya notepad kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh CPU. Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine language) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.
Kompilasi
Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas ini disebut Compiler. Program hasil kompilasi akan berbentuk executable. Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly dan masih banyak lagi.
Interpretasi (Interpretation)
Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan dieksekusi perbaris. Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan program standalone, artinya untuk menjalankan program kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut. Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.
Kompilasi Sekaligus Interpretasi
Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi. Misalnya bahasa java. Dalam pembuatan program java kode sumber diubah menjadi bytecode. Meskipun nampak seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable. Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari bytecode tersebut.
Meskipun setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat dengan tujuan dan fungsi yang berbeda-beda. Misalnya untuk membuat driver hardware kita tidak bisa menggunakan bahasa Visual Basic. Untuk membuat program berbasis sistem seperti driver kita bisa gunakan bahasa C atau Assembly. Contohnya sistem operasi linux yang open source. Jika anda melihat kode sumbernya anda akan menemukan bahwa linux dibuat menggunakan bahasa C. Sedangkan untuk pemrograman desktop kita bisa menggunakan Visual Basic. Bahasa tersebut dirancang oleh Microsoft untuk pemrograman desktop dengan tampilan GUI yang memukau.
Bahasa pemrograman yang umum digunakan
HTML / CSS 
banyak yang tidak menggaggap ini bagian dari bahasa pemprograman, tetapi jika di lihat dari mana program web berasal maka bisa di pastikan html/CSS adalah dasar dari itu semua,jadi jika anda ingin belajar membuat web statis terebih dahulu anda pasti akan belajar HTML/CSS dasar.
JavaScript 
JavaScript adalah cara yang sangat populer untuk menambahkan fitur interaktif untuk halaman web dan aplikasi . Ini adalah salah satu bahasa yang paling mudah untuk dipelajari dan dapat digunakan untuk apa pun seperti memvalidasi data formulir untuk mengembangkan permainan , menjadikannya pilihan yang sangat populer untuk pemula .
PHP 
bahasa program yang digunakan terutama untuk mengembangkan halaman web dinamis . Ini berarti bahwa daripada menciptakan sebuah file terpisah penuh kode untuk setiap halaman situs , Anda dapat menulis seperangkat aturan untuk mengakses dan menampilkan informasi dari database yang kemudian dapat membuat halaman dan memanggil mereka ketika mereka dibutuhkan .
C + + 
. Dikembangkan untuk menambahkan fitur berorientasi objek dengan bahasa C , dengan penambahan kelas dan fitur lainnya . C + + yang sekarang banyak digunakan dengan berbagai besar aplikasi . Belajar C + + juga memiliki keuntungan yaitu lebih mudah untuk mempelajari bahasa C lainnya yaitu C # dan C. Semua bahasa C umumnya dipandang sebagai bahasa pemprograman tingkat menengah .
C # 
Diucapkan C Sharp , bahasa ini diciptakan oleh Microsoft dalam kerangka NET . . Jika Anda ingin menulis aplikasi jendela , atau terutama jika Anda ingin menulis kode untuk perangkat lunak desktop , ini sangat penting. Ini adalah tujuan OOP umum yang berbagi banyak kesamaan dengan bahasa C tua.
ini adalah versi C yang digunakan oleh sistem operasi Apple serta sejumlah kecil aplikasi lain . Jika Anda ingin mengkhususkan diri dalam menulis kode untuk produk Apple maka ini adalah program yang harus anda kuasai.
Python 
Sangat populer dalam komunitas ilmiah dan akademik , tetapi juga telah digunakan untuk membuat situs web populer seperti Pinterest . Hal ini relatif mudah untuk belajar dibandingkan dengan sesuatu seperti C atau turunannya , namun masih sangat fleksibel dalam hal apa yang dapat Anda lakukan dengan itu .
Java 
Digunakan oleh Google sebagai bagian integral dari sistem operasi Android , dan oleh pengembang independen untuk membuat aplikasi android ( serta kegunaan lain ) . Java diciptakan dengan " tulis sekali , jalankan di mana saja " ( WORA ) pendekatan untuk memudahkan kode yang ditulis pada satu mesin untuk berjalan di lain mesin.
Ruby 
Ini adalah OOP murni populer dari Jepang. Bahasa pemrograman open source dinamis, mudah dimengerti dan produktif. Sintaks Ruby elegan, natural, mudah dibaca dan ditulis.
Visual Basic 
Berasal dari ' BASIC ' , yang sangat populer di hari-hari awal komputasi personal , Visual Basic ( VB ) memungkinkan program sederhana yang akan dibuat dengan cepat dan mudah, sementara juga memungkinkan untuk coding yang lebih kompleks.

Struktur lengkap bahasa Pascal adalah sebagai berikut :
Program id_program;
Uses unit;
Label id_label;
Const id_konstanta : ekspresi;
Type id_tipe : tipe_bebas;
Var id_variabel : tipe_variabel;
Procedure id_procedure;
Begin
Statement_procedure;
End;
Function id_function;
Begin
Statement_function;
End;
Begin
...
...
Statement_program_utama;
End.

Secara sederhana, struktur program Pascal terdiri dari  program, uses, begin , statement dan end. Contoh sederhana yaitu menampilkan kalimat AKU BISA BAHASA PEMROGRAMAN PASCAL.
Script code:
program latihan1;
begin
write(‘AKU BISA BAHASA PEMROGRAMAN PASCAL’);
end.https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidXk9j_oGlKvbiu1mQT1Gl6Ghj7nkDsD5lBHQdLtm8fDhG74iNjH-d1ByLWyT-G9JHEGFB0kRb0u5jT7_lXp2QpOcyqQoA-4fFPCWz5McwwvjUrxLScRnB7U3MJ6mR4tuqWXTe9IWepd4r/s640/2.png


Dan hasilnya/outputnya:

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk09y_p6Y727mf5xBsCtnjpR_IRkiF5KFyScXQL2lIQsb_wEomL7VuxjmO5TPdkGrlTkBhRTHhfJVWFaAk0yH21x9sfZZIDl_don2vkseUlqFMlGK0OqUdkcYdsmeI7jv3PaqBZGzoMun-/s1600/1.png


Penjelasan Script code:
program latihan1;
            merupakan  judul program pascal yang kita buat dengan nama latihan1. Fungsi dari judul program adalah sebagai penanda, boleh saja kita tidak menggunakannya karena tidak akan berpengaruh pada pada program.

begin
             merupakan bagian dari Reserved Word  atau dapat dikatakan sebagai kata kunci untuk mengawali sebuah statement. Mungkin temen-temen bertanya, apakah yang disebut Reserved Word   dan apa saja isinya/kata-kata kuncinya???
            Reserved  Word adalah kata-kata baku yang digunakan dalam program dan sudah
terintergrated dalam pascal dan juga mempunyai bentuk serta kegunaan tertentu yang
telah didefinisikan  oleh  Pascal.

Reserved  Word tidak boleh didefinisikan kembali oleh pemakai, sehingga tidak dapat
digunakan sebagai pengenal  (Identifier). Dalam bahasa pemrograman Pascal,
beberapa  Reserved  Word dalam Pascal anatra lain:
AND               DOWNTO             IN    OF    STRING
ASM               ELSE               INHERITED   OR    THEN
ARRAY          END                  INLINE   PACKED  TO
BEGIN           EXPORTS       INTERFACE  PROCEDURE TYPE
CASE              FILE                 LABEL  PROGRAM     UNIT
CONST           FOR                 LIBRARY      RECORD  UNTIL
CONSTRUCTOR     FUNCTION           MOD    REPEAT  USES
DESTRUCTOR      GOTO                      NIL    SET     VAR
DIV               IF                         NOT     SHL    WHILE
DO                IMPLEMENTATION   OBJECT  SHR    WITH
.
Selain dari Reserved Word di atas,  Turbo Pascal masih memiliki tambahan Reserved 
Word berikut:

           ABSOLUTE      ASSEMBLER ()     FAR         FORWARD    INDEX

write(‘AKU BISA BAHASA PEMROGRAMAN PASCAL’);
            merupakan statement yang akan menampilkan kalimat  AKU BISA BAHASA PEMROGRAMAN PASCAL. Statemen akan saya bahas pada bab tersendiri.

end.
            merupakan bagian dari Reserved Word  atau dapat dikatakan sebagai kata kunci untuk menakhiri  sebuah statement.


            Itulah penjelasan dari program sederhana yang kita buat. Dan mungkin temen-temen ingin bertanya, “katanya struktur sederhana dari program Pascal itu dari  program, uses, begin , statement dan end. La terus uses nya dimana kok pada program di atas tidak ada???
            jawabannya yaitu karena pada statement yang kita gunakan pada program diatas (write(‘AKU BISA BAHASA PEMROGRAMAN PASCAL’);)  memakai library standar milik Turbo Pascal.


Fungsi Output

1. printf
Fungsi printf() berguna untuk menampilkan semua jenis data baik number, string, atau karakter. Perhatikan contoh printf berikut ini :

#include
int main()
 {printf("Welcome to C lenguage \n");}

Fungsi di atas akan menampilkan (meng-output) huruf yang berada di dalam tanda petik. \n berfungsi untuk ganti baris dalam sebuah tampilan output.
Tampilan program tersebut :
Welcome to C lenguage
2. puts
Ada cara lain untuk menampilkan suatu keluaran(output) ke layar yaitu dengan menggunakan fungsi puts. Fungsi puts() digunakan untuk menampilkan data yang bertipe string dan secara otomatis akan pidah baris (new line). 
Perhatikan penggunaan puts berikut ini:
#include
int main()
 {puts("Welcome to my life");
puts("t4f1d.blogspot.com ");}
Kini tidak perlu lagi mengguanakan “\n” untuk ganti baris baru. Tampilan program :
Welcome to my life
t4f1d.blogspot.com
3.putchar
Fungsi ini digunakan untuk menampilkan sebuah karakter saja dan tidak mengandung escape sequence “\n”. perhatikan contoh berikut :

#include
int main()
{Char a;
 printf("masukkan nama = ");scanf("%c",&a);
 printf("inisial  \n");
putchar(a);}
Fungsi putchar ini hanya bisa menampilkan satu buah karakter saja sehingga apapun nilai yang kita masukkan hanya karakter pertama yang akan ditampilkan.

Berikut tampilan programnya (misal input nama "Randy"):
masukkan nama = Randy
inisial
R

Tambahan : Mengatur tampilan output data

Rumus sintaks :

printf(”%m,nf”, var)

m : Menyatakan banyaknya digit angka

n : Menyatakan banyaknya digit angka dibelakang koma

var : variabel bertipe float yang akan ditampilkan

Contoh

printf(”%4.3f”, nilai); ”artinya akan ditampilkan angka sebanyak 4 digit dan 3 digit angka dibelakang koma”.

Fungsi Input

1. scanf
Jika fungsi scanf ini digunakan untuk membaca data dengan tipe array, karakter yang selanjutnya kita sebut dengan istilah string, maka fungsi ini hanya akan membaca data sampai ditemukan blank(space). Dengan demikian nilai setelah blank dianggap bukan lagi nilai dari variabel yang akan mengisi variabel tersebut. Fungsi scanf lebih cocok digunakan untuk data-data numerik.

Fungsi scanf biasanya digunakan bersama-sama dengan fungsi printf. Perhatikan contoh berikut :

#include
int main()
{
char a[25];
int b;
printf("a = ");scanf("%s",a);
printf("b = ");scanf("%d",&b);
printf("Data yang anda masukkan adalah \n");
printf("a = %s \n",a);
printf("b = %d \n",b);
}

Setiap kali memasukkan data harus diikuti dengan menekan ENTER. Berikut adalah tampilan setelah dijalankan.
a = ada
b = 11
Data yang anda masukkan adalah
a = ada
b = 11



fungsi scanf() berguna untuk meninput data baik berupa bilangan, karakter, ataupun kalimat secara terformat. Berikut format-format yang digunakan untuk scanf() :

%c : Membaca sebuah karakter (character)

%s : Membaca sebuah string (string)

%i, %d : Membaca sebuah bilangan bulat (integer, desimal)

%f, %e : Membaca sebuah bilangan pecahan (real, float)

%o : Membaca sebuah bilangan octal

%x : Membaca sebuah bilangan heksadesimal

%u : Membaca sebuah bilangan tak bertanda


2. gets
Jika kita menggunakan fungsi scanf untuk membaca data yang bertipe string, maka data tersebut hanya akan dibaca sampai ditemukan spasi. Misalnya nama “Matt Belammy” hanya kata “Matt” yang akan dibaca oleh program, sedangkan kata “Belammy” tidak terbaca karena sebelum kata tersebut program telah menemukan spasi/blank(space) yang mengakibatkan data ke varibel yang menyimpan nama dianggap selesai.

Untuk keperluan pemasukan data string yang panjang dipisahkan dengan spasi, bahasa C menyediakan fungsi gets. Perhatikan contoh berikut ini :

#include
main()
{
char nama[25];
char alamat[50];
printf("Nama Lengkap: ");gets(nama);
printf("Alamat : ");gets(alamat);
printf("\n");
printf("Data yang anda masukkan adalah\n");
printf("Nama : %s \n",nama);
printf("Alamat : %s \n",alamat);
}

Tampilan program :

Nama : Matt Belammy
Alamat : London, Inggris

Data yang anda masukkan adalah
Nama : Matt Belammy
Alamat : London, Inggris


3. getchar
Jika ingin memasukkan sebuah nilai karakter ke variabel yang bertipe karakter maka kita dapat menggunakan perintah getchar. Perhatikan contoh program berikut ini :

#include
int main(){

char karakter;
printf (" masukan Kata Karakter Anda : ") ;
karakter=getchar();
printf("Karakter yang di Masukan : %c\n",karakter);
1        Jenis – jenis Kesalahan
n  Kesalahan Leksikal
Misalnya kesalahan mengeja keyword,
contoh: then ditulis ten
n  Kesalahan Sintaks
Misalnya pada operasi aritmatika kekurangan jumlah paranthesis (kurung).
contoh : A:=X+(B*(C+D)         
n  Kesalahan Semantik
o   Tipe data yang salah, misal tipe data integer digunakan untuk variabel string.
          Contoh :        Var     Siswa : Integer
                                      Siswa := 'Aka'           {tipe string}
o  Variabel belum didefinisikan tetapi digunakan dalam operasi.
          Contoh :        B := B + 1      {B belum didefinisikan}

2        Penanganan Kesalahan
n  Prosedur penanganan kesalahan terdiri dari :
·           Mendeteksi kesalahan
·      Melaporkan kesalahan
·      Tindak lanjut perbaikan / pemulihan
n  Pelaporan kesalahan yang dilakukan oleh sebuah kompilator yang menemukan kesalahan meliputi :
·      Kode kesalahan
·      Pesan kesalahan dalam bahasa natural
·      Nama dan atribut identifier
·      Tipe – tipe yang terkait bila type checking
Contoh : Error Message : Error 162  jumlah: unknown identifier
Ø  Kode kesalahan = 162
Ø  Pesan kesalahan = unknown identifier
Ø  Nama identifier = jumlah
Adanya pesan kesalahan tersebut akan memudahkan pemrogram dalam mencari dan mengoreksi sumber dari kesalahan.
n  Pada saat kompilator menemukan kesalahan terdapat beberapa tingkatan reaksi diantaranya adalah :
a.     Reaksi yang tidak dapat diterima (tidak melaporkan error)
·         Kompilator crash : berhenti atau hang
·         Looping : kompilator masih berjalan tapi tidak pernah berakhir karena looping tak berhingga (indefinite/onbounded loop)
·         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.
b.  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.                 
c.  Reaksi yang dapat diterima
·           Reaksi yang sudah dapat dilakukan, yaitu kompilator melaporkan kesalahan / error, dan selanjutnya melakukan:
Ø Recovery / pemulihan, lalu melanjutkan menemukan kesalahan / error yang 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.
·         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.

3        Pemulihan Kesalahan
Tujuannya mengembalikan kondisi parser ke kondisi stabil (supaya bisa melanjutkan proses parsing ke posisi selanjutnya). Strategi yang dilakukan error recovery sebagai berikut :
v  Mekanisme Ad Hoc
Recovery yang dilakukan tergantung dari pembuat kompilator sendiri/Spesifik, dan tidak terikat pada suatu aturan tertentu. Cara ini biasa disebut juga special purpose error recovery.
v  Syntax Directed Recovery
Melakukan recovery berdasarkan syntax
Contoh : ada program
                               begin
                                         A:=A+1
                                                  B:=B+1;
                                                 C:=C+1
                               end;
kompilator akan mengenali sebagai (dalam notasi BNF)
          begin < statement>?<statement>;<statement>end;
? akan diperlakukan sebagai “;”
v  Secondary Error Recovery
Berguna untuk melokalisir kesalahan / error, caranya :
·           Panic mode
Maju terus dan mengabaikan teks sampai bertemu delimeter (misal ‘;’)
contoh :
                      IF A := 1
                          Kondisi := true;
Teks diatas terjadi kesalahan karena tidak ada instruksi THEN, kompilator akan maju terus sampai bertemu ‘;’
·      Unit deletion
Menghapus keseluruhan suatu unit sintaktik (misal: <block>,<exp>,<statement> dan sebagainya), efeknya sama dengan panic mode tetapi unit deletion memelihara kebenaran sintaksis dari source program dan mempermudah untuk melakukan error repairing lebih lanjut.
v  Context Sensitive Recovery
          Berkaitan dengan semantik,misal bila terdapat variabel yang belum dideklarasikan(undifined variabel) maka diasumsikan tipenya berdasarkan kemunculannya.
Contoh :
                   B:= 'nama'
sementara diawal program variabel B belum dideklarasikan, maka  berdasarkan kemunculannya diasumsikan variabel B bertipe string.

4        Error Repair
Bertujuan untuk memodifikasi source program dari kesalahan dan membuatnya valid sehingga memungkinkan kompilator untuk melakukan translasi program yang mana akan dialirkan ketahapan selanjutnya pada proses kompilasi. Mekanisme error repair meliputi :
Ø  Mekanisme Ad Hoc
Tergantung dari pembuat kompilator sendiri / spesifik.
Ø  Syntax Directed Repair
Menyisipkan simbol terminal yang dianggap hilang atau membuang terminal penyebab kesalahan
Contoh :
                                             While a<1
                                             I:=I+1;
Kompilator akan menyisipkan DO karena kurang simbol DO
contoh lain :
                                      Procedure Increment;
                                      begin
                                                x:=x+1;
                                      end;
                                      end;
terdapat kelebihan simbol end, yang menyebabkan kesalahan maka kompilator akan membuangnya.
Ø  Context Sensitive Repair
Perbaikan dilakukan pada kesalahan :
·           Tipe identifier. Diatasi dengan membangkitkan identifier dummy, misalkan :
                         Var A : string;
                         begin
                               A:=0;
                                  end;
·         Tipe konstanta. Diatasi dengan membangkitkan konstanta baru dengan tipe yang tepat.
Ø  Spelling repair
Memperbaiki kesalahan pengetikan pada identifier, misal :
                         WHILLE A = 1 DO
 Identifier yang salah tersebut akan diperbaiki menjadi WHILE

BAB 2
Dita Ditung
RPL
Rabu, 27 Maret 2013

img by http://www.iconfinder.com/
Sebelum memasuki Bahasa pemogram kita harus mengenal, mengetahui dan harus diingat tiga hal. Variabel, Konstanta dan Tipe data tiga hal ini selalu berhubungan dengan bahasa pemograman.
Variabel
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel akan mempunyai nama (identifier) dan nilai.
Contoh Nama variabel dan nilai.
username = “joni”
Nama = “Al-Khawarizmi”
Harga = 2500
HargaTotal = 34000 username, Nama, harga dan HargaTotal adalah nama dari variabel, sedangkan “joni”, “Al-Khawarizmi”, 2500 dan 34000 adalah nilai dari masing-masing variabel. Nilai-nilai ini akan tersimpan di dalam nama variabel masing-masing sepanjang tidak kita rubah.
Pada sebagian besar bahasa pemrograman, variabel harus dideklarasikan lebih dulu untuk mempermudah compiler bekerja. Apabila variabel tidak dideklarasikan maka setiap kali compiler bertemu dengan variabel baru pada kode program akan terjadi waktu tunda karena compiler harus membuat variabel baru. Hal ini memperlambat proses kerja compiler. Bahkan pada beberapa bahasa pemrograman, compiler akan menolak untuk melanjutkan proses kompilasi.
Pemberian nama variabel harus mengikuti aturan yang ditetapkan oleh bahasa pemrograman yang kita gunakan. Namun secara umum ada aturan yang berlaku untuk hampir semua bahasa pemrograman. Aturan-aturan tersebut yaitu:
  • Nama variabel harus diawali dengan huruf.
  • Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan karakter underscore (_).
  • Nama variabel tidak boleh mengandung karakter-karakter khusus, seperti : .,+, -, *, /, <, >, &, (, ) dan lain-lain.
  • Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa pemrograman
Penanaman Yang Benar
Penanaman Yang Salah
namasiswa
nama siswa (salah karena menggunakan spasi)
XY12
12X (salah karena dimulai dengan angka)
harga_total
harga.total (salah karena menggunakan karakter .)
JenisMotor
Jenis Motor (salah karena menggunakan spasi)
alamatrumah
for (salah karena menggunakan kata kunci bahasa pemrograman)

KONSTANTA
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai datanya sepanjang program berjalan tidak berubahubah, maka sebuah varibel lebih baik diperlakukan sebagai konstanta. Pada sebuah kode program, biasanya nilai data dari konstanta diberikan langsung di bagian deklarasi konstanta. Sedangkan untuk variabel biasanya hanya ditentukan nama variabel dan tipe datanya tanpa isian nilai data. Aturan penamaan variabel juga berlaku untuk penamaan konstanta. Demikian juga aturan penetapan tipe data. konstanta dibagi menjadi 4:
  • Konstanta integer, berupa integer biasa, integer panjang (long int) dan integer tak bertanda (unsigned integer). Nilainya dapat berupa desimal, oktal atau hexadesimal.
  • Konstanta floating point, dapat mengandung nilai pecahan, yang biasa ditulis dalam bentuk pecahan biasa maupun bentuk eksponensial dan selalu dinyatakan dalam double, kecuali jika diakhiri dengan F atau f (menyatakan konstanta float).
  • Konstanta string, merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik ganda (“…“). Juga dapat mengandung karakter yang menggunakan tanda \ yang disebut karakter escape (escape sequence).
  • Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik tunggal (‘…’). Beberapa konstanta karakter dapat diawali dengan tanda \ (penempatannya setelah tanda petik tunggal).
Sebagai contoh, jika kita membuat program perhitungan matematik yang menggunakan nilai pi (3.14159) yang mungkin akan muncul dibanyak tempat pada kode program, kita dapat membuat pi sebagai konstanta. Penggunaan konstanta pi akan lebih memudahkan penulisan kode program dibanding harus mengetikkan nilai 3.14159 berulang-ulang.
Tipe Data
Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer. Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita tentukan dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan sangat menentukan pemakaian sumberdaya komputer (terutama memori komputer). Salah satu tugas penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang efisien dan berkinerja tinggi.
Tipe Data dikelompokkan menjadi dua Yaitu primitive dan composite
Tipe Data Primitive :
·         Numeric
·         Character
·         Boolean
Tipe Data Composite :
·         Array
·         Record
·         Image
·         Date Time
·         Lainya (Subrange, Enumerasi, dll)
Tipe data primitive adalah tipe data dasar yang tersedia secara langsung pada suatu bahasa pemrograman. Sedangkan tipe data composite adalah tipe data bentukan yang terdiri dari dua atau lebih tipe data primitive.
Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk bilangan atau angka. Semua bahasa pemrograman menyediakan tipe data numeric, hanya berbeda dalam jenis numeric yang diakomodasi.

Jenis yang termasuk dalam tipe data numeric antara lain integer (bilangan bulat), dan float (bilangan pecahan). Selain jenis, dalam bahasa pemrograman juga diterapkan presisi angka yang digunakan, misalnya tipe data Single adalah tipe data untuk bilangan pecahan dengan presisi yang terbatas, sedangkan tipe data Double adalah tipe data untuk bilangan pecahan dengan presisi yang lebih akurat.
Tipe data Character. Bersama dengan tipe data numeric, character merupakan tipe data yang paling banyak digunakan. Tipe data character kadang disebut sebagai char atau string. Tipe data string hanya dapat digunakan menyimpan teks atau apapun sepanjang berada dalam tanda petik dua (“…”) atau petik tunggal (‘…’).
Tipe data Boolean digunakan untuk menyimpan nilai True/False (Benar/Salah). Pada sebagian besar bahasa pemrograman nilai selain 0 menunjukkan True dan 0 melambangkan False. Tipe data ini banyak digunakan untuk pengambilan keputusan pada struktur percabangan dengan IF … THEN atau IF … THEN … ELSE.
Array atau sering disebut sebagai larik adalah tipe data yang sudah terstruktur dengan baik, meskipun masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen) dalam sebuah variabel. Setiap lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari data tersebut..
Record atau Struct adalah termasuk tipe data komposit. Record dikenal dalam bahasa Pascal/Delphi sedangkan Struct dikenal dalam bahasa C++.
Berbeda dengan array, tipe data record mampu menampung banyak data dengan tipe data berbeda-beda (heterogen). . Sebagai ilustrasi array mampu menampung banyak data namun dengan satu tipe data yang sama, misalnya integer saja. Sedangkan dalam record, kita bisa menggunakan untuk menampung banyak data dengan tipe data yang berbeda, satu bagian integer, satu bagian lagi character, dan bagian lainnya Boolean.
Biasanya record digunakan untuk menampung data suatu obyek. Misalnya, siswa memiliki nama, alamat, usia, tempat lahir, dan tanggal lahir. Nama akan akan menggunakan tipe data string, alamat bertipe data string, usia bertipe data single (numeric), tempat lahir bertipe data string dan tanggal lahir bertipe data date.
Image atau gambar atau citra merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual tipe data ini telah didukung dengan sangat baik.
Date and Time Nilai data untuk tanggal (Date) dan waktu (Time) secara internal disimpan dalam format yang spesifik. Variabel atau konstanta yang dideklarasikan dengan tipe data Date dapat digunakan untuk menyimpan baik tanggal maupun jam. Tipe data ini masuk dalam kelompok tipe data composite karena merupakan bentukan dari beberapa tipe data.
Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai dengan yang ditetapkan programmer. Biasanya tipe data ini mempunyai nilai batas minimum dan nilai batas maksimum. Tipe data ini didukung dengan sangat baik dalam Delphi.
Tipe data Enumerasi merupakan tipe data yang mempunyai elemen-elemen yang harus disebut satu persatu dan bernilai konstanta integer sesuai dengan urutannya. Nilai konstanta integer elemen ini diwakili oleh suatu nama variable yang ditulis di dalam kurung. Tipe data ini juga dijumpai pada Delphi dan bahasa pemrograman deklaratif seperti SQL.
Tipe data object digunakan untuk menyimpan nilai yang berhubungan dengan obyek-obyek yang disediakan oleh Visual Basic, Delphi dan dan bahasa pemrograman lain yang berbasis GUI. Sebagai contoh, apabila kita mempunyai form yang memiliki control Command button yang kita beri nama Command1.
Tipe data Variant hanya ada di Visual Basic. Tipe ini adalah tipe data yang paling fleksibel di antara tipe data yang lain, karena dapat mengakomodasi semua tipe data yang lain seperti telah dijelaskan.


EKSPRESI
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 EKPRESI
   Ø  Ekspresi aritmatika 
              Ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga bertipe numerik.
·         Ekspresi aritmatika memakai operator aritmatika.
      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.



 Operator boolean digunakan untuk menghubungkan dua buah ekspresi logika. Pada kesempatan ini operator boolean yang akan dibahas adalah AND dan OR.
Operator AND digunakan untuk menghubungkan dua buah ekspresi logika dan hasilnya TRUE jika kedua ekspresi tersebut bernilai TRUE.
Logika I
Operator
Boolean
Lgika II
Hasil Akhir
FALSE

FALSE
FALSE
FALSE
AND
TRUE
FALSE
TRUE

FALSE
FALSE
TRUE

TRUE
TRUE
Operator OR dipergunakan untuk menghubungkan dua buah ekspresi logika dan hasilnya bernilai TRUE jika minimal salah satu ekspresi logika bernilai TRUE.
Logika I
Operator
Boolean
Lgika II
Hasil Akhir
FALSE

FALSE
FALSE
FALSE
OR
TRUE
TRUE
TRUE

FALSE
TRUE
TRUE

TRUE
TRUE




Contoh01
1. Program PenerimaanPegawai;
2. Uses Crt;
3. Var Umur : Integer;
4. Ket : String;
5. Begin
6. ClrScr;
7. Write(‘Umur calon pegawai : ‘); Readln(Umur);
8. If (Umur >= 20) AND (Umur <= 30) THEN Ket:=’DITERIMA’
9. ELSE Ket:=’DITOLAK’;
10. Writeln(‘Status pegawai : ‘,Ket);
11. End.
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. Dalam proses aritmatika tersebut, pengerjaan operasi tergantung dari tingkat valensi operator-operator yang terlibat. Perpangkatan memiliki valensi tertinggi, kemudian dilanjutkan dengan perkalian, pembagian, pembagian bulat dan sisa pembagian, sedangkan penjumlahan dan pengurangan mempunyai valensi yang terendah.
^ : 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
Ø  precendence:
·         menentukan urutan operasi dari operator-operator dalam ekspresi majemuk.
·         operator dgn tingkat hirarki lebih tinggi akan diproses terlebih dahulu.
Ø  Asosiatif:
·         urutan operasi jika operatornya setara.
Ø  Operator logika:
·          True:jika tipe integer bernilai tidak nol(#0)
·         False jika tipe integer bernilai nol(0)
Ø  LAMBANG-LAMBANG:

Perioritas
Operator
Keterangan
I
()
Tanda kurung
II
++    --
Increment, Decrement
III
*  /  %
Kali, bagi dan sisa
IV
+  -
Tambah dan kurang
V
=  +=   -=   *=   /=   %=
Operator pemberi nilai aritmatika
VI
!
Operator logika NOT
VII
<   >   <=   >=
Operator relasional
VIII
&&   ||
Operator logika DAN dan ATAU

BAB 3 STRUKTUR PERCABANGAN

1. Algoritma Percabangan 1 dan 2 Kondisi

19.23    8 comments
ALGORITMA PERCABANGAN

Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan. Algoritma percabangan pada pemrograman umumnya menggunakan kata kunci IF (jika), THEN (maka), dan ELSE (selainnya). Berikut kelompok saya akan mejelaskan tentang algoritma percabangan 1 kondisi dan 2 kondisi beserta contoh kasusnya.


ALGORITMA PERCABANGAN 1 KONDISI
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 NATURAL
  1. Mulai
  2. Menentukan nilai siswa
  3. Jika nilai siswa ≤ 60
  4. Siswa dinyatakan Gagal
  5. Selesai

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/AVvXsEikueds5l63p05RYlidNrRR6VoTuNam7IygeSq1RAS0xa-oqltLI5lsZ-Dn_SQ4tgiAMnBY4fOnTM7G5OwNtraiJ_bn1O2YA_N9eV7N1zh3amL5YZY_umaohbdI-AFDy-ZYjSn6Yj0AX9Wd/s1600/per+1.png
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/AVvXsEha37WYpmnR02tpIQKnayaHfuuPEQZdtVP4xzPsItFvYX2uSDeL-pYEGo3ZAFAIPh3zQsRTs3LNBP-9Nw7TvladHj0sv-uKeFEoZJP3omhwFJzJ9Kc1DqHwcdXQPydN6fGGIihn2fkO5VXK/s1600/per+2.png

2. Algoritma Percabangan 1 ,2 dan 3 kondisi
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai
percabangan/pemilihan atau keputusan. Berikut beberapa kondisi percabangan :
1.      Penulisan percabangan 1 kondisi
if then
pernyataan
penjelasan :
Jika <kondisi> bernilai benar maka pernyataan dikerjakan, sedangkan jika tidak, maka pernyataan tidak dikerjakan dan proses langsung keluar dari percabangan

Flowchart :

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdsw68E-F3cLSVzUsu0N5uezLJeBKvhHbXAZ2Lb3xD8Tk4EWSDSaznaNkdaHuzmQvV4kfam6VIcNPiUFpB9TZKcUtWrZ176jiViaqhxwQcNOmAnWk4IDSzweljGIAsfL-NXT6FI2DKAE4/s200/bercabangan+1+kondisi.bmp
2.      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/AVvXsEhAnxdkV5h5JQfEipHtNSd84T6wV117-gChNE2RWNdWB9FTujCKEJ6yBkoOYvxvT8QShFxQ9PHFeblntS6AsUbkYmUjsBWatDjHwrldleBOt3fX7PKUbPR33qvtVBhMQlX8aCAiw9bEBfM/s1600/percabangan+2+kondisi.bmp
3.      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/AVvXsEhZJLupvAqV-lk1YEJ9vNrM4RsYq2p8sv3EeOvzVFW5NGdWLnjNPmxSeez-sB4-eB3ZollV7S5W-yPB-WhM4iTf9y4PtKr2DGV2rE2SrUNaoGwPiV0Z8sr3lBC5EIWqDLDHm77L319fYq0/s320/percabangan+lebih+dari+2+kondisi.bmp

4.ALGORITMA PERCABANGAN BERSARANG (NESTED-IF) DALAM BAHASA C++

ALGORITMA MENENTUKAN NILAI DENGAN FUNGSI
PERCABANGAN BERSARANG DALAM BAHASA C, C++
NESTED IF
Author: Stella Duce Jingga
5:55 PM 11 Februari 2014


Program adalah kumpulan instuction set atau perintah-perintah yang akan dijalankan oleh pemroses berupa software.

A. Pengertian Algoritma

                Algoritma adalah logis yang terstruktur secara tepat dan terperinci dan berurutan untuk menyelesaikan suatu masalah. Algoritma digunakan untuk merancang sebuah program dari komputer, dengan bahasa mesin sebagai jembatan antara programmer dengan komputer itu sendiri.

B. Alur bahasa pemrograman
                Bahasa mesin yang dimengerti oleh prosesor adalah 0 dan 1 (Binary) yang dikombinasikan menjadi angka angka berbeda yang dijembatani programmer dengan bahasa pemrograman seperti bahasa C, bahasa C++, pascal, dll sehingga dapat saling terkoneksi dan keluar di monitor dalam tampilan GUI (Graphic User Interface) dengan cara COUT (pengoutputan) lantas programmer mengetik program (koding) dalam bahasa inggris dan akan diterjemahkan di compiler ke bahasa mesin.

C. Struktur Algoritma
  • Initial Stage
    Initial stage adalah ketersediaan awal (kondisi awal) yang logis sebagai dasar suatu algoritma.
  • Final Stage
    Final stage adalah hasil dari apa yang dikerjakan atau output.
CONTOH ALGORITMA BERURUTAN SEDERHANA
Algoritma Membuat Accout Facebook
Initial stage: email valid tersedia
  1. Mulai
  2. Buka website facebook.com melalui web browser yang tersedia
  3. Muncul welcome to facebook dan langsung isikan data yang diminta oleh facebook seperti nama, jenis kelamin, tanggal lahir, email valid dan password.
  4. Klik tab dialog dalam persetujuan facebook lalu klik sign up atau mendaftar.
  5. Facebook secara otomatis akan mengirim email konfirmasi.
  6. Buka email valid anda dan klik link verify account pada kotak masuk dari facebook.
  7. Facebook sudah selesai diresmikan dan dibuat
Final Stage: Facebook siap digunakan.

CONTOH ALGORITMA PERCABANGAN BERSARANG NESTED IF BAHASA C
Program menentukan nilai berdasarkan inputan a, b, c, m, n, r, t, x, y sebagai integer.
Berikut tampilan algoritma dalam TurboC++https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhljJUIORvfAr2fLl4ee7kZhkU8eBNITpMHXFnxJSC8a-BVK_XYo3GJaSTyJ4VAy8vicQ5Q-tj0qjTV1e1HqrPP3Ry1jZ5wAV-XszKDEy7YqZIuCP2m0xw7xOdfizAtD9-NvkSxOcJXWNk/s1600/2.jpg

  • Include menentukan gerbang untuk fungsi-fungsi di dalam sebuah algoritma dalam TurboC++ stdio.h berarti standart input output.header yaitu standart input output dalam sebuah program dan header berarti kepala seperti di ibaratkan dalam html sebagai header.
  • Kamus berisikan variabel kondisi dan juga tipe data.
  • Algoritma
    1. clrscr(); adalah clear screen sebagai koding untuk menghapus layar setelah program selesai dijalankan dan berhasil, atau kembali ke tampilan program awal sebelum diberi inputan.
    2. printf(); berisikan kode "\n atau kode inputan lalu perintah yang akan ditampilkan seperti tersebut diatas input nilai a=" secara umum printf adalah fungsi untuk menampilkan fungsi dalam program ke layar untuk di aplikasikan oleh user.
    3. scanf(); berisikan tipe data dalam bahasa C tersebut diatas adalah %d sebagai fungsi integer dan kode variabelnya &b sesuai dengan inputan programmer. Secara umum fungsi scanf adalah memasukkan kode-kode ke dalam program.
    4. getch(); get character berfungsi sebagai penentu untuk memasukkan karakter.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL0VK5bopEDuCd_Stv1Qs6Tg2z0u2nNty7rHRNS0VK5bbL6j2yEJytgJRnaBBX6wolHGb31a5ePrO51GPb3zjgUcwY16PV7LOCOsZERrVKcNPSIYlin9BFRQfsuBcuvAuPCrJV5Gaaox8/s1600/3.jpg

Dalam percabangan bersarang atau dikenal sebagai nested-if, fungsi if setelah if yang sebelumnya diletakkan tepat dibawah kondisi seperti ada diatas sebagai syarat untuk percabangan selanjutnya.
Program akan berjalan dengan alur sesuai inputan dan aturan yang dibuat di dalam programhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV10cWHwXNeDAtB7moGu57s2Yz5to7nSyPrOQxHSH_M4-YJQd3KmuPMXYcBLnW9mfwnzUIIaz0hK2gN16SrFTzGS5RcqHGIDSjLhuuliI8Yl2lUqym4NiLJqyWUnWY5EfC4JVTmGQfsrQ/s1600/4.jpg

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPm0LmCmtXxa9BR649lOAICb6-CDrwoCS_pO7RIAxDtkCgGWMjts-oeqQZffO5s1UGQ4sAmw5s-LXSpKFMKAJG0t9BibDXxPt2ijMaAsGZ3zAzq1tK6dPuFGLpofN11_m405Jld96r6Zg/s1600/5.jpg


Dan berikut adalah hasil dari program diatas:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsgsMRffGYYJ6rKqys9tit82BT6u9KTnecEILnWPhlY0X43lH46XV1YkSh1LTmWopNu75wv8KvS0Uo4CtoICHsLqKk0-3u2aM3t0lGkaQNseOWXNTqOZ_rOrEf6vVs4tKCdE0oC0lsx6s/s1600/6.jpg
Akan lebih jelas secara lanjut dijelaskan dengan flowchart dibawah ini,
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqsG6YZ6HDlOj2POmcJQxFs04mhFHgPpZbLobEILCKswLErbnjloqOggpwOCYJshEZb_xwftI8l-5TssK_ratFNWCgXUPFkni0CyI4W1trqUff19o99kLOo173WAlGbqQHsp9eJ2jGkHs/s1600/1.jpg

FLOWCHART BRANCHING NESTED IF
  • BEGIN dalam Terminator sebagai pembuka program.
  • Lalu masuk fungsi inputan a dan b
  • Tertera pada syarat adalah a>b jika memenuhi syarat secara otomatis akan mengalir ke alur kiri dimana terjadi fungsi selanjutnya seperti itu terus berurutan hingga terminator end.
Untuk pembelajaran yang lebih lanjut dapat dipelajari disini >> http://dewinurdiyah.blogspot.com klik link maka akan menuju ke blog tersebut, download juga dasar algoritma pemrograman untuk mengetahui dasar dasar pemrograman disini >> http://dewinurdiyah.blogspot.com/2012/08/dasar-algoritma-pemrograman.html
Semoga bermanfaat.

Contoh Algoritma Pengulangan Kondisi di akhir, Kondisi di awal, pernyataan Continue dan break - Di artikel sebelumnya saya sudah menjelaskan tentang algoritma untuk pengulangan atau disebut looping, algoritma ini sangat bermanfaat sekali untuk mempersingkat penulisan kode program, sehingga kode program lebih sedikit dan bisa menghemat tenaga, kita ketahui semakin sedikit kode program dan semakin cepat prosesnya maka algoritma yang digunakan berarti sangat berkualitas.

Ada banyak sekali jenis pengulangan, dan perintah pengulangan tidak lepas dari keterlibatkan suatu kondisi, proses pengulangan akan terus berjalan selama kondisi yang diinginkan belum terpenuhi, beberapa jenis pengulangan diantaranya adalah:
  • Pengulangan dengan Kondisi di awal
  • Pengulangan dengan kondisi di akhir
  • Pengulangan menggunakan pernyataan continue
  • Pengulangan menggunakan pernyataan break

Agar anda lebih memahaminya maka di artikel kali ini saya akan jelaskan mengenai jenis-jenis pengulangan di atas, namun sebelum saya bahas panjang lebar saya akan ingatkan kembali tentang manfaat atau kegunaan dari pengulangan, mungkin saja anda belum tahu atau lupa pernah mempelajarinya.
algoritma pengulangan atau looping


Untuk memahami pengulangan saya akan ilustrasikan dengan kasus sebagai berikut:

Misal anda diminta untuk membuat algoritma untuk mencetak tulisan "belajar pengulangan atau looping" sebanyak 5 baris, maka anda pun pasti bisa membuatnya secara mudah, algoritma yang anda buat bisa saja kurang lebih akan seperti ini:

program cetak
deklarasi

algoritma:

writeln('belajar pengulangan atau looping')
writeln('belajar pengulangan atau looping')
writeln('belajar pengulangan atau looping')
writeln('belajar pengulangan atau looping')
writeln('belajar pengulangan atau looping')

Anda mungkin akan membuatnya seprti kode di atas dengan menggunakan perintah cetak yaitu writeln ('belajar pengulangan atau looping') yang di ulang-ulang sebanyak 5 baris.

Jika hanya 5 tentu bukanlah sebuah masalah, si pemula sekalipun akan sangat mudah sekali untuk membuatnya, namun apa jadinya jika yang diminta menampilkan tulisan sebanyak 1.000 baris, kita tidak mungkin menulis algoritma seperti cara di atas dengan menggunakan perintah writeln('.....'), yang jumlahnya kita buat 1.000 baris, tentu kurang efektif dan akan menguras energi dan tenaga si programmer.

Maka untuk mengatasi hal-hal semacam itu pengulangan harus dilibatkan untuk memecahkan masalah di atas, ya mungkin penulisannya hanya beberapa baris saja namun hasilnya akan sama, jika menggunakan pengulangan maka untuk kasus di atas algoritmanya kurang lebih akan seperti di bawah ini:

algoritma cetak_banyak
deklarasi
i:integer
algoritma:
1
for i<=1000 do
writeln('contoh algoritma pengulanan atau looping')
i+1
endfor

Kode algoritma di atas akan mencetak tulisan 'contoh algoritma pengulanan atau looping' sebanyak 1.000 baris, tanpa harus menuliskannya perbaris satu persatu, bagaimana cukup praktis bukan?, itulah fungsi dari pengulangan,

Jenis algoritma Pengulangan beserta Contohnya

Berikut saya uraikan jenis-jenis algoritma pengulanan disertai contohnya:

#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 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. Pengulangan For do
Format Penulisan:

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

#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 Until
Format:

Repeat
Pernyataan
increment/decrement
until kondisi

Contoh kasus:
Buatlah algoritma untuk mencetak tulisan "Pengulangan kondisi akhir" sebanyak 70 baris
Jawab:

algoritma kondisi_akhir
deklarasi
i : integer
algoritma:
i   1
repeat
writeln ('Pengulangan kondisi akhir')
i   i+1
until i=70

#3 Pengulangan dengan pernyataan continue

Pernyataan perintah continue yang kita libatkan di dalam perintah pengulangan akan berdampak pengulangan akan dilanjutkan tanpa mengeksekusi perintah-perintah lainnya yang letaknya setelah perintah continue.

Contoh:

program contoh_continue
deklarasi
i : integer
algoritma:
i   1
while i <= 2 do
writeln ('ini pernyataan pertama')
continue
writeln('ini pernyataan kedua')
endwhile

Perintah di atas jika tidak melibatkan perintah contine, maka akan menghasilkan output:
ini pernyataan pertamainipernyataan keduaini pernyataan pertamainipernyataan kedua

Karena ada perintah continue setelah perintah writeln('ini pernyataan pertama'), maka perintah setelahnya yaitu writeln('ini pernyataan kedua') tidak akan pernah dieksekusi, jadi ketika perintah continue dibaca oleh program, maka program akan langsung melanjutkan pengulangan berikutnya tanpa mengeksekusi perintah yang letaknya setelah continue.

Jadi perintah di atas karena ada contine outputnya adalah
ini pernyataan pertamaini pernyataan pertama

#4 Pengulangan dengan Pernyataan Break

Pengulangan 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.

#5 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 dengan input user" dimana jumlahnya sesuai dengan yang diinput oleh pengguna

Jawab:

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

Demikian tentang algoritma pengulangan terutama mengenai contoh dan penjelasan tentang algoritma Perulangan Kondisi di akhir, Kondisi di awal, pernyataan Continue dan break, dengan memahaminya maka anda sudah bisa menggunakannya pada implementasi bahasa pemrograman apapu. semoga bermanfaat.

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, sebuah proses penulisan 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 Analisis Keputusan, dan terakhir jika ingin mengamankan pelaksanaan rencana, pakailah Analisis Persoalan Potensial.
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 FAKTA
ANALISIS 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.

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


2.eror handling
Error 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


Ada beberapa model dalam metode pengembangan perangkat lunak, yaitu:


1. Model Prototype
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjERZIcgfjXH7qwJMHOTJHFANO6aLAU8kAp26yFB8OtQF5eYPLqmTN38Y1dEGIhWK2AAPRioHsfcyU8GVf5QHWRpFkKd4fpG1K05gKiT3T0H0wgJ-sOEie733lUeqPkW50PqDAB4HawRr0/s1600/images.jpg
Contoh Model Prototype

          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/AVvXsEhVrQdde0YJpwZHyH_CMlElPxhABhgPTeJ7Y4Y-NnTqB1ljmoFrXhE_I_nCPWZgDSozAT6Gb5Q7bnmlu7rQ_mnn4Wi4lXZ_9VMi1B0BqLhxiQEdHAYsnZIVkarpiXhdZOee2E2OF5jY9Fo/s1600/sommerville.JPG
Contoh model waterfall


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/AVvXsEjOyU8kSd0tAO6DSFGv5IA8tKrJ0bsJ5Kb0TuWxFEPMnhu0Ocf4cmlcxGZ_lPUTUOxNRoM2WMI3oz6ioj9UgUWrq7zEo91IIug1N-p3ORkHJw4P1aGdNLwQYID3i6ZTumpAzUfolWeMiSE/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 spiral:
  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 office
software. Seperti kebanyakan UKM lainnya, A Company juga memiliki akses internet yang hanya dapat digunakan
secara terbatas di beberapa PC. A Company memiliki satu buah email resmi yang masih menggunakan domain dari
ISP (Internet Service Provider). Untuk komunikasi dilingkungan karyawan, mereka menggunakan fasilitas
email gratis yang banyak tersedia di internet. Email gratis ini kadang juga digunakan untuk berkomunikasi dengan
supplier dan pelanggan. Sebagai perusahaan UKM yang terus berkembang cepat,
Tuan X mulai berfikir untuk mengembangkan A Company lebih professional. Harapan Tuan X, calon pelanggan
potensial, pelanggan, supplier dan karyawan lebih mengenal A Company. Disisi lain, ia juga berharap agar cara yang
digunakan lebih efisien, hemat biaya, tetapi menampilkan sosok perusahaan yang meyakinkan atau bonafit. Tuan X
meyakini, bahwa berkomunikasi menggunakan alamat email atau domain sendiri; promosi melalui website sendiri; data
yang terintegrasi dan dapat diakses disemua komputer perusahaan akan dapat membawa perusahaan menjadi lebih
profesional. A Company tidak memiliki departemen khusus untuk menangani TI. Untuk mewujudkan keinginannya, Tuan X
meminta bantuan perusahaan khusus TI. Implementasi TI dikerjakan oleh perusahaan TI (sebagai pemenang tender)
dalam jangka waktu kontrak 1 tahun, Dalam proses implementasi, Tuan X menyerahkan tugas dan tanggungjawab
kepada bawahannya. Semua karyawan dilibatkan dalam pertemuan dan diskusi dengan perusahaan
pembangun TI. Dari waktu kontrak 1 tahun yang disepakati, TI yang bisa diimplementasikan adalah pembangunan
jaringan komputer, akses internet, email, dan pembangunan data.


4. Model Increment

      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/AVvXsEijcqt5ctz_sup_9aNuZfCTYGK7SnVdgoykPyKomK4EmgMO1Ar2TBf75SlRFhonOLHuYcqh0Rrmoo8o20xTXyr6hfKu8iykgVx7MCWDOBMFujDv1Fsbg0-4XENWbG3KLIQGeuKDYVOqUnA/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.
Rizky Agung Hadi F. 07.55


ERROR HANDLING
1. Abstraksi
            Error 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.
2. Pendahuluan
            Pada saat membuat sebuah aplikasi web, penanganan error (error handling) merupakan hal yang sangat penting. Penanganan error yang standar di PHP sangat sederhana. Error dikirim ke browser berisi pesan error, nama file, baris kode ke berapa tempat terjadinya error. Tanpa penanganan error yang baik, tentunya pada saat terjadi error, error akan tampil di browser dan dilihat oleh semua pengguna. Hal ini bisa menimbulkan ancaman terhadap keamanan website. PHP telah menyediakan function function untuk penanganan error seperti dijelaskan di Error Handling and Logging.
3. Pembahasan
3.1       Penanganan Error Sederhana mengunakan function die()
Function die ( [string $message] ) berfungsi untuk menghentikan eksekusi baris kode berikutnya dan memberi output parameter optional $message. Contoh:
tanpa error handling
$connection = mysql_connect("localhost", "user", "password");
mysql_select_db("test");
$result = mysql_query("select * from nama_table");
while($row = mysql_fetch_array($result)){
echo $row['nama_field'];
}

Tanpa error handling seperti kode php diatas, pada saat tidak bisa melakukan koneksi ke database mysql, maka akan muncul pesan error seperti ini:
mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 3
Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 4
Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/ellyxc/public_html/tutorial/error/die.php on line 4
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 5
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/ellyxc/public_html/tutorial/error/die.php on line 5
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/ellyxc/public_html/tutorial/error/die.php on line 6
Tentu saja pengguna akan bingung melihat error di atas, dengan function die(), pesan error bisa diminimalisir seperti:

//dengan error handling
$connection = mysql_connect("localhost", "user", "password")
or die('Tidak bisa melalukan koneksi ke database');
mysql_select_db("test");
$result = mysql_query("select * from nama_table");
while($row = mysql_fetch_array($result)){
echo $row['nama_field'];
}

Pada saat tidak bisa melakukan koneksi ke database, kode di atas akan memberi output seperti ini
Tidak bisa melalukan koneksi ke database
3.2       Setting Error Reporting Level
PHP memberi kemampuan untuk menentukan error error apa saja yang ditampilkan menggunakan function error_reporting( [int $level ] ). Parameter $level bisa diisi dengan nilai nilai berikut:
Nilai
Konstanta
Deskripsi
1
E_ERROR
Fatal run-time errors. Error yang tidak bisa dihandel, seperti masalah alokasi memori. Eksekusi skrip berhenti.
2
E_WARNING
Run-time warnings (non-fatal errors). Eksekusi Skrip tidak berhenti.
4
E_PARSE
Compile-time parse errors. Error yang terjadi karena kesalahan penulisan kode php.
8
E_NOTICE
Run-time notices. Error yang mengindikasikan bahwa skrip bisa menimbulkan error yang lain.
256
E_USER_ERROR
Pesan error yang digenerate oleh user. Seperti E_ERROR, tapi digenerate menggunakan function trigger_error().
512
E_USER_WARNING
Pesan error yang digenerate oleh user. Seperti E_WARNING, tapi digenerate menggunakan function trigger_error().
1024
E_USER_NOTICE
Pesan error yang digenerate oleh user. Seperti E_NOTICE, tapi digenerate menggunakan function trigger_error().
2048
E_STRICT
Error yang memberikan sugesti perubahan pada kode Anda untuk memastikan interoperabilitas terbaik dan kompatibilitas kode php Anda.
30719
E_ALL
Menampilkan semua error kecuali E_STRICT.
                                               
                       
                       
Contoh penggunaan error_reporting() :

//menampilkan semua error
error_reporting(E_ALL);
//menampilkan semua error termasuk E_STRICT
error_reporting(E_ALL|E_STRICT);
//tidak menampilkan error
error_reporting(0);
3.3       Tidak Menampilkan Error
Dari pada menampilkan error yang tidak dimengerti oleh pengguna, terkadang lebih baik tidak menampilkan error sama sekali, tetapi hanya mencatat error yang terjadi ke dalam sebuah file. Untuk itu bisa gunakan kode di bawah.

error_reporting(E_ALL);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'On');
ini_set('error_log', 'logs/error.log');
$connection = mysql_connect("localhost", "user", "password");
mysql_select_db("test");
$result = mysql_query("select * from nama_table");
while($row = mysql_fetch_array($result)){
echo $row['nama_field'];
}

Untuk tidak menampilkan error digunakan function ini_set ('display_errors', 'Off'); (baris ke-3). Di baris ke-5 untuk menyimpan error yang terjadi ke dalam file "logs/error.log". Pada saat terjadi error, file "logs/error.log" akan berisi data seperti ini :
[21-Nov-2010 11:57:56] PHP Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 6
[21-Nov-2010 11:57:56] PHP Stack trace:
[21-Nov-2010 11:57:56] PHP 1. {main}() /home/ellyxc/public_html/tutorial/error/die.php:0
[21-Nov-2010 11:57:56] PHP 2. mysql_connect() /home/ellyxc/public_html/tutorial/error/die.php:6
Mengambil pilihan untuk tidak menampilkan error bisa membingungkan pengguna. Cara yang lebih baik adalah dengan membawa user ke halaman tertentu, untuk memberi tahu pengguna bahwa sedang terjadi error.

3.4       Membuat Custom Error Handler
Selain menyediakan penanganan error standar, PHP juga memberikan kemampuan untuk membuat sebuah function yang bertugas untuk menangani error yang terjadi yang disebut dengan Custom Error Handler. Sebuah Custom Error Handler memiliki format seperti ini
// error_funciton($error_level,$error_message, $error_file,$error_line,$error_context)
Contoh:
function customError($errorLevel,$errorMsg){
@session_start();
$_SESSION['error_msg'] = $errorMsg;
header("Location: error.php");
exit;
}
set_error_handler("customError");
error_reporting(E_ALL);
$connection = mysql_connect("localhost", "user", "password");
mysql_select_db("test");
$result = mysql_query("select * from nama_table");
while($row = mysql_fetch_array($result)){
echo $row['nama_field'];
}
Baris 2-7 merupakan contoh Custom Error Handler, pesan error disimpan ke dalam sebuah session, dan pengguna dibawa ke halaman "error.php" pada saat terjadi error. Di baris 8 digunakan function set_error_handler($handler); untuk menentukan Custom Error Handler yang digunakan pada saat terjadi error.

3.5       Men-generate atau Men-trigger Error
PHP memberikan kemampuan untuk mengenerate custom error message menggunakan function trigger_error(). Function ini bisa digunakan misalnya pada saat pengguna memasukkan karakter karakter ilegal, seperti memasukkan tag html. Contoh:
$input = "hurup tebal";
if(preg_match('/<(.+)>/', $input)){
trigger_error("anda tidak boleh memasukkan html tag");
}
Menggunakan trigger_error bersama Custom Error Handler
function customError($errorLevel,$errorMsg){
@session_start();
$_SESSION['error_msg'] = $errorMsg;
header("Location: error.php");
exit;
}
set_error_handler("customError", E_USER_WARNING);
$input = "hurup tebal";
if(preg_match('/<(.+)>/', $input)){
trigger_error("anda tidak boleh memasukkan html tag", E_USER_WARNING);
}
3.6       Mengirim Email Saat Terjadi Error
Bagi para programmer atau webmaster, mendapatkan email saat terjadi error sangat membantu untuk mengambil tindakan yang cepat dan bila diperlukan untuk memperbaiki kode yang ada. Untuk itu bisa menggunakan kode seperti:
function customError($errorLevel,$errorMsg){
echo "Error: [$errorLevel] $errstr
";
echo "Admin terlah diberi tahu";
error_log("Error: [$errorLevel] $errorMsg",1,
"admin@example.com","From: error@example.com");
}
set_error_handler("customError", E_USER_WARNING);
$input = "hurup tebal";
if(preg_match('/<(.+)>/', $input)){
trigger_error("anda tidak boleh memasukkan html tag", E_USER_WARNING);
}
4.       Penutup
4.1       Kesimpulan
            Error Handling sangat lah dibutuhkan oleh setiap program agar setiap terjadi kesalahan memiliki suatu penanganan khusus sehingga program tersebut menjadi user friendly, karena eksekusi program tidak akan dihentikan apabila terjadi suatu kesalahan melainkan eksekusi program akan diteruskan ke blok program error handling tersebut.
4.2       Saran
            Bagi setiap programmer sebaiknya mempertimbangkan suatu blok error handling sebelum mulai membuat program. Karena hal ini sangat vital bagi proses eksekusi program tersebut. Jika programmer melupakan error handling maka dapat dipastikan bahwa program yang diciptakan tidak akan berjalan dengan sempurna, atau dengan kata lain program tersebut kurang dapat dijalankan dengan sempurna
            Demikian lah pembahasan saya mengenai Error Handling dalam rangka menyelesaikan tugas Interaksi Manusia & Komputer (IMK) jurusan Sistem Komputer Universitas Gunadarma. Diharapkan pembahasan yang sedikit ini dapat dijadikan suatu pembelajaran dan bermanfaat bagi yang membacanya.
Sumber :
http://searchsoftwarequality.techtarget.com/definition/error-handling
http://www.php.net/manual/en/errorfunc.constants.php
http://www.w3schools.com/php/php_error.asp
Yodi Adhari 00.01


DEBUGGING
Debugging adalah sebuah metode yang dilakukan oleh para pemrogram dan pengembang perangkat lunak untuk mencari dan mengurangi bug, atau kerusakan di dalam sebuah program komputer atau perangkat keras sehingga perangkat tersebut bekerja sesuai dengan harapan. Debugging cenderung lebih rumit ketika beberapa subsistem lainnya terikat dengan ketat dengannya, mengingat sebuah perubahan di satu sisi, mungkin dapat menyebabkan munculnya bug lain di dalam subsistem lainnya.
 

  1.  
    1. Model Sekuensial Linier atau Waterfall Development Model
Model Sekuensial Linier atau sering disebut Model Pengembangan Air Terjun, merupakan paradigma model pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode, pengujian, dan pemeliharaan.
Berikut Merupakan Tahapan – tahapan Pengembangan  Model Sekuensial Linear / Waterfall Development Model :
o    Rekayasa dan pemodelan sistem/informasi
Langkah pertama dimulai dengan membangun keseluruhan elemen sistem dan memilah bagian-bagian mana yang akan dijadikan bahan pengembangan perangkat lunak, dengan memperhatikan hubungannya dengan Hardware, User, dan Database.
o    Analisis kebutuhan perangkat lunak
Pada proses ini, dilakukan penganalisaan dan pengumpulan kebutuhan sistem yang meliputi Domain informasi, fungsi yang dibutuhkan unjuk kerja/performansi dan antarmuka.  Hasil penganalisaan dan pengumpulan tersebut didokumentasikan dan diperlihatkan kembali kepada pelanggan.
o    Desain
Pada proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuatnya proses pengkodean (coding). Proses ini berfokus pada  struktur data, arsitektur perangkat lunak, representasi interface, dan detail algoritma prosedural.
o    Pengkodean
Pengkodean merupakan proses menterjemahkan perancangan desain ke bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman.
o    Pengujian
Setelah Proses Pengkodean selesai, dilanjutkan dengan proses pengujian pada program perangkat lunak, baik Pengujian logika internal, maupun Pengujian eksternal fungsional untuk memeriksa segala kemungkinan terjadinya kesalahan dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan hasil yang diinginkan.
o    Pemeliharaan
Proses Pemeliharaan erupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan yang dilakukan pada proses pemeliharaan antara lain :
o    Corrective Maintenance : yaitu mengoreksi apabila terdapat kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan.
o    Adaptive Maintenance : yaitu dilakukannya penyesuaian/perubahan sesuai dengan lingkungan yang baru, misalnya hardware, periperal, sistem operasi baru, atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan driver, dll.
o    Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
o    Contoh Penerapan dari Pengembangan Model Sekuensial Linear / Waterfall Development Model
Contoh dari penerapan model pengembangan ini adalah pembuatan program pendaftaran online ke suatu Instansi Pendidikan. Program ini akan sangat membantu dalam proses pendaftaran, karena dapat meng-efektifkan waktu serta pendaftar tidak perlu repot-repot langsung mendatangi Instansi Pendidikan. Teknisnya adalah sebagai berikut :
o    Sistem program untuk pendaftaran dibuat menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
o    Setelah program selesai dibuat dan kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau menyesuaikan program dengan kebutuhan serta kondisi user.
o    Kelebihan Model Sekuensial Linear / Waterfall Development Model :
§  Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
§  Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
§  Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
§  Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
o    Kekurangan Model Sekuensial Linear / Waterfall Development Model :
§  Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
§  Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
§  Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
§  Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
§  Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
§  Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

    1. Model Prototype
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model.
Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Perubahan dan presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik Prototyping Meliputi :
    • Perancangan Model
    • Perancangan Dialog
    • Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
o    Pemilihan fungsi
o    Penyusunan Sistem Informasi
o    Evaluasi
o    Penggunaan Selanjutnya
Metode ini menyajikan gambaran yang lengkap dari suatu sistem perangkat lunak, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkn.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :
o    Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
o    Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
o    Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.
o    Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
o    Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll.
o    Evaluasi Sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.
o    Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.
Berikut merupakan Jenis – jenis dari Prototyping :
o    Feasibility prototyping
digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.
o    Requirement prototyping
digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
o    Desain Prototyping
digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.
o    Implementation prototyping
merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.
o    Contoh Penerapan Metode Prototype.
Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.
o    Kelebihan Model Prototype :
o    Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
o    Penentuan kebutuhan lebih mudah diwujudkan.
o    Mempersingkat waktu pengembangan produk perangkat lunak.
o    Adanya komunikasi yang baik antara pengembang dan pelanggan.
o    Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
o    Lebih menghemat waktu dalam pengembangan sistem.
o    Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
o    Kekurangan Model Prototype :
o    Proses analisis dan perancangan terlalu singkat.
o    Biasanya kurang fleksibel dalam mengahadapi perubahan.
o    Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
o    Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

    1. Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
    • Bussiness Modeling
Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:
o    Informasi apa yang menegndalikan proses bisnis?
o    Informasi apa yang dimunculkan?
o    Di mana informasi digunakan ?
o    Siapa yang memprosenya ?
o    Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.
o    Proses Modeling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
o    Aplication Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
o    Testing dan Turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.
o    Kelebihan Model RAD :
o    Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
o    Cocok untuk proyek yang memerlukan waktu yang singkat.
o    Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
o    Kekurangan Model RAD :
o    Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
o    Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
o    RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
o    Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
o    Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

    1. Model Evolutionary Development / Evolutionary Software Process Models
Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
5.      Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
Pada proses Pengembangan dengan Model Incremental, perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara bergantian.
    • Contoh Penerapan Model Incremental
Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core product).  Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
    • Kelebihan Model Incremental :
    • Personil bekerja optimal.
    • mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
    • Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
    • Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
    • Memaksimalkan pengembalian modal investasi konsumen.
    • Kekurangan Model Incremental :
    • Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
    • Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

2. Model Spiral / Model Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.
spiral
Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
    • Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
    • Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
    • Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
    • Tahap Rekayasa (engineering):pembuatan prototipe.
    • Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
    • Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
    • Kelebihan model iniadalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
    • Kekurangan model iniadalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.

Model Spiral/Boehm sangat cocok diterapkan untuk pengembangan sistem dan perangkat lunak skala besar di mana pengembang dan pemakai dapat lebih mudah memahami kondisi pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan. Selain itu, diharapkan juga waktu dan dana yang tersedia cukup memadai.



     
    13.Pascal adalah bahasa pemrograman yang tepat. Setelah menguasai struktur dan aturan penulisan Pascal, anda bisa lanjut mempelajari bahasa pemrograman lain seperti C, C++, C# atau Java.

 Program Prosedure_InputOutput;
Uses crt;
var
nama:String[25];
begin
clrscr;
write('Masukan nama anda:');
readln(nama);
writeln('nama anda adalah',nama);
writeln(10,11,12);
writeln(10,'dan',11);
writeln('jumlah=',100+50);
writeln('jumlah=',100+50);
writeln(3.1416:0:2);
readln;
end.

Tidak ada komentar:

Posting Komentar