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:
- Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
- 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.
- 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.
- 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
- 1 Pengertian Bahasa Pemrograman
- 2 Fungsi
- 3 Tingkatan
- 4 Generasi
- 5 Proses Pembuatan Program
- 6 Bahasa pemrograman yang umum digunakan
- 7 Daftar
- 8 Lihat pula
- 9 Referensi
- 10 Pranala luar
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.
C
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’);
Dan
hasilnya/outputnya:
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
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
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.
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
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);
Read more: http://t4f1d.blogspot.com/2012/09/operasi-input-dan-output-dalam-bahasa-c.html#ixzz4iXwaT2jZ
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
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:
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.
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 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
|
!
|
|
VII
|
< > <=
>=
|
Operator relasional
|
VIII
|
&& ||
|
Operator logika DAN dan ATAU
|
BAB 3 STRUKTUR PERCABANGAN
1. Algoritma Percabangan 1 dan 2 Kondisi
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
- Mulai
- Menentukan nilai siswa
- Jika nilai siswa ≤ 60
- Siswa dinyatakan Gagal
- Selesai
PSEUDOCODE
Var :
nilai_siswa
: integer
Pseudocode :
Read ( nilai siswa )
IF nilai siswa ≤ 60 THEN
write ( Siswa
dinyatakan gagal )
FLOWCHART
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
- Mulai
- Menentukan nilai siswa
- Jika nilai siswa ( 0 – 100 ) > 75 Tergolong Baik
- Jika nilai siswa ( 0 – 100 ) ≤ 75 Tergolong Cukup
- Tampilkan hasil
- Selesai
PSEUDOCODE
Var :
nilai_siswa
: integer
Pseudocode
read (nilai siswa )
IF nilai siswa > 75 THEN
write ( tergolong baik )
ELSE
write ( tergolong cukup )
FLOWCHART
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
:
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 :
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
:
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
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
Algoritma Membuat Accout Facebook
Initial stage: email valid tersedia
- Mulai
- Buka website facebook.com melalui web browser yang tersedia
- Muncul welcome to facebook dan langsung isikan data yang diminta oleh facebook seperti nama, jenis kelamin, tanggal lahir, email valid dan password.
- Klik tab dialog dalam persetujuan facebook lalu klik sign up atau mendaftar.
- Facebook secara otomatis akan mengirim email konfirmasi.
- Buka email valid anda dan klik link verify account pada kotak masuk dari facebook.
- 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++
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++

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

Dan berikut adalah hasil dari program diatas:
Akan lebih jelas secara lanjut
dijelaskan dengan flowchart dibawah ini,
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.
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:
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.
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:
i ← 1
for i<=1000 do
writeln('contoh algoritma pengulanan atau looping')
i ← 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
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
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].
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:- Masalah apa yang sedang dihadapi?
- Mengapa masalah itu terjadi?
- Tindakan apa yang harus diambil?
- 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.
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:
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
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.
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
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
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.
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.
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
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
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:
- Menghemat waktu pengembangan
- Adanya komunikasi yang baik antara pengembang dan pelanggan
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
- Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya
- User dapat berpartisipasi aktif dalam pengembangan sistem
Kekurangan model prototype:
- Biaya untuk membuat prototyping cukup tinggi
- Biasanya kurang fleksible dalam mengahadapi perubahan
- 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.
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.
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.
Kelebihan model waterfall:
- Mudah diaplikasikan.
- Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan.
- Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
Kekurangan
model waterfall:
- Waterfall model bersifat kaku sehingga sulit untuk melakukan perubahan pada sistem perangkat lunak.
- Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
- Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya.
- Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk.
- 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.
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
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:
Kelebihan model spiral:
- 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.
- Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
- Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
- Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
- Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
- Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
- Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.
Kekurangan
model spiral:
- 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.
- Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
- Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
- Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
- 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.
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.
Kelebihan model increment:
- Resiko yang rendah pada pengembangan sistem.
- Mengutamakan fungsi-fungsi pada sistem perangkat lunak sehingga kemudahan pemakaian sistem yang paling di utamakan.
- Tahap awal adalan dasar dari pembuatan tahap berikutnya (dikerjakan secara terurut).
- Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat
- Mampu mengakomodasi perubahan kebutuhan customer.
- Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian.
- Memaksimalkan pengembalian modal investasi konsumen.
Kekurangan
model increment:
- Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh.
- Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut.
- Hanya cocok untuk proyek dengan skala kecil.
- 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.
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.
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
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.- 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.
- 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.
- 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.
- 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.

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.















