Tugas "Final Project" Pemrograman Terstruktur - TA 2010/2011

Bagi mahasiswa/i yang mengambil mata kuliah Pemrograman Terstruktur pada semester ganjil Tahun Akademik 2010/2011, diwajibkan mengumpulkan tugas dalam bentuk makalah hasil pembuatan program ( Tampilan dan Listing Program ) yang meliputi :

1. Menghitung jarak antar tanggal
2. Penjumlahan dan perkalian Matriks
3. Encrypt & Decrypt pada username dan password yang terrekam pada tabel
4. Final Project


Untuk Final Project nya terdiri dari 4 macam kasus :

1. Jual beli pakaian / bahan pakaian / accessories / make-up (khusus peserta wanita)
2. Dokter (pemeriksaan pasien, diagnosa & obatnya)
3. Bengkel Kendaraan ( Onderdil & Jasa Service )
4. Toko ( Mini market, kelontongan, elektronika, counter hp, sayuran, ternak, dll )

Seluruh tugas tersebut harus sudah dikumpulkan sebelum pelaksanaan UAS matakuliah Pemrograman Terstruktur

Final Project dikerjakan secara berkelompok (maksimal 5 orang), dari seluruh kelompok harus tercakup seluruh kasus yang ada (masing-masing kelompok boleh memilih kasus, untuk kasus yang sama tentu saja harus berbeda masalah dan cakupan masalahnya).

Daftar kelompok dan permasalahannya didaftarkan melalui komentar dari posting materi ini TAPI POSTING DI BLOG PAK DANI, BUAT ISI KLOMPOK ANDA MASING-MASING, dengan menampilkan informasi :
1. Nama Kelompok
2. Anggota Kelompok
3. Permasalahan berikut cakupan dan batasan masalahnya.

Java scrip PBO

public class Hello{
/**
*My First java program
*/
public static void main (String[] args) {

//Menampilkan kata"Hello World"dilayar
System.out.println("Hello World!");
}
}

_________________________________________________________________


public class OutputVariable{
public static void main(String[] args){
int value = 10;
char x;
x = 'A';
System.out.println( value );
System.out.println("The Value of x=" + x);
}
}

PROGRAM MATRIK_DUA_DIMENSI;

PROGRAM MATRIK_DUA_DIMENSI;
uses wincrt;
const
jbaris=2;
jkolom=2;
type
matrik = array [1..jbaris,1..jkolom] of integer;
var
A,B,C: matrik;
j,k : integer;
procedure baca_matrik ( var A:matrik; jbaris,jkolom: integer);
begin
{mengisi matrik A}
writeln(‘Matrik A’);
for j:= 1 to jbaris do begin
for k:= 1 to jkolom do begin
write(‘A[',j,',',k,']=’); readln(A[j,k]);
end;
writeln;
end;
writeln;
(*mengisi matrik B *)
writeln(‘Matrik B’);
for j:= 1 to jbaris do begin
for k:= 1 to jkolom do begin
write(‘B[',J,',',K,']=’);readln(b[j,k]);
end;
writeln;
end;
end;
procedure cetak_matrik ( A,B,C:matrik; jbaris,jkolom:integer);
begin
writeln (‘Hasil penjumlahan matrik A dan B ‘);
for j:= 1 to jbaris do begin
for k:= 1 to jkolom do begin
c[j,k]:= a[j,k]+b[j,k];
writeln(‘C[',j,',',k,']=’,c[j,k]);
end;
writeln;
end;
end;
begin
writeln (‘ penjumlahan matrik ‘);
baca_matrik (a,jbaris,jkolom);
cetak_matrik ( a,b,b,jbaris,jkolom);
end.

Dasar Linux

1 PENGENALAN UNIX
UNIX mula-mula dikembangkan untuk penggunaan internal di AT&T oleh Ken
Thompson dan Dennis Ritchie. AT&T memperbolehkan perusahaan lain untuk
memodifikasi dan memproduksi source code menjadi sistem operasi seperti UNIX
(UNIX-like). Karena AT&T memberi nama UNIX, perusahaan lain membuat nama lain
seperti AIX dari IBM, HP/UX dari Hewlett-Packard, SunOS dari Sun, IRIS dari SGI.
Terdapat beberapa bentuk UNIX yang mengoperasikan hal yang sama. Semua
prompt shell mempunyai utilitas dan perintah standard yang sama, meskipun parameter
perintah yang berbeda untuk sistem yang berbeda.
Sistem UNIX mempunyai berapa utilitas yang sangat berguna untuk membuat
dan memanipulasi file. Model pengamanan UNIX berdasarkan pengamanan file.
Dengan menganggap segala sesuatunya sebagai sebuah file terjadi konsistensi.
Pengamanan perangkat keras dapat diakses dengan cara yang sama dengan dokumen.
Teks adalah antar muka universal dan beberapa utilitas UNIX digunakan untuk
memanipulasi teks. Konfigurasi dikirim dalam bentuk teks yang memungkinkan
administrator untuk memindahkan konfigurasi dari satu mesin ke mesin lain dengan
lebih mudah. Terdapat beberapa aplikasi kontrol yang memudahkan administrator
untuk mengawasi perubahan yang terjadi setiap hari dan kemampuan sistem untuk roll
back (kembali ke) konfigurasi sistem pada tanggal dan waktu tertentu.
UNIX menyediakan beberapa utilitas kecil yang membentuk satu task dengan
baik. Bila fungsi baru dibutuhkan, dapat dibuat suatu program terpisah untuk
mengembangkan utilitas dengan fitur yang baru.
Perintah interaktif jarang terdapat di UNIX. Sebagian besar perintah mempunyai
opsi dan argumen yang dapat diketikkan pada baris perintah. Perintah menghasilkan
output atau membangkitkan pesan error dan keluar. Perintah interaktif disediakan suatu
program seperti editor teks.
Fitur desain utama dari UNIX adalah bahwa output dari satu program dapat
menjadi input untuk program yang lain. Hal ini memberikan fleksibilitas kepada user
untuk mengkombinasikan beberapa program kecil untuk membentuk task yang lebih
besar dan lebih kompleks.
2 PENGENALAN LINUX
Linux diperkenalkan pertama kali pada Agustus 1991 oleh Linus Torvalds.
Linux merupakan versi berbeda dari UNIX yang menyerupai UNIX. Linux merupakan
sistem operasi multi-user dan multi-tasking. Artinya lebih dari satu orang dapat masuk
ke komputer Linux yang sama dan pada waktu yang sama. User yang sama dapat
masuk ke account dari dua atau lebih terminal pada waktu yang sama. Linux juga
multi-tasking, artinya user dapat mengeksekusi lebih dari satu proses (program) pada
waktu yang sama.
Linux Red Hat mendukung perangkat keras PC yang kompatibel untuk x86.
Sebelumnya, perangkat keras yang dapat didukung terbatas, tetapi sekarang, Linux
menjadi salah satu tujuan dari vendor perangkat keras.
Untuk mengakses sistem membutuhkan authentication. Metode yang biasa
digunakan untuk authentication user adalah proses login dengan memasukkan nama
user dan password. Untuk memasuki system console dapat menggunakan login berbasis
teks atau grafis. Setiap pemakai Linux harus mempunyai nama login (user account)
yang sebelumnya harus didaftarkan pada administrator system. Nama login umumnya
dibatasi maksimum 8 karakter dan umumnya dalam huruf kecil. Prompt dari shell bash
pada LINUX menggunakan tanda “$”. Sebagai contoh :
localhost login: bob
Password:
Last login: Thu Dec 7 10:30:52 on :0
[bob@localhost bob]$
Sistem booting akan memasuki X Window System, tergantung display manager
yang digunakan. Default tampilan untuk Linux Red Hat adalah gdm (GNOME Display
Manager).
Pada Linux terdapat virtual console yang memungkinkan user masuk ke
beberapa login apabila tidak menggunakan X Window System. Virtual console berupa
full screen dan sistem non GUI. Terdapat 6 virtual console yang tersedia melalui Ctrl-
Alt-F[1-6]. Virtual console juga tersedia melalui Ctrl-Alt-F7 pada X Window system
bila X dijalankan.
Sistem X.Org adalah dasar untuk graphical user interface (GUI) dari Red Hat
Linux. Sistem ini mempunyai arsitektur jaringan client/server yang lengkap dan
transparan. Pada aplikasi client/server, X11 menggunakan UNIX-domain atau jaringan
TCP/IP untuk operasinya, dimana satu server menyediakan untuk beberapa client
berupa perangkat keras (host dan display) dan perangkat lunak (aplikasi) melalui
protocol untuk melewatkan data. Terdapat 2 layer yaitu layer perangkat keras
independen dan layer perangkat lunak independen. Layer perangkat keras mengatur
koordinasi mouse dan keyboard (input) dan video card dan display (output). Layer
perangkat lunak menyediakan API sebagai dasar karakeristik visual yang seragam dan
menelusuri platform yang berbeda.
GNOME (GNU Network Object Model Environment) merupakan lingkungan
dekstop yang user friendly yang memungkinkan user untuk melakukan konfigurasi dan
penggunaan komputer dengan lebih mudah. Pada GNOME terdapat panel sepanjang
layar bawah untuk menampilkan aplikasi dan menampilkan informasi. Pada GNOME
juga terdapat seperangkat aplikasi dan dekstop tool. GNOME merupakan standarisasi
bagi aplikasi untuk berkomunikasi dan saling konsisten. Dekstop user friendly lainnya
adalah KDE yang disediakan oleh Linux Red Hat. Untuk melakukan konfigurasi baik
GNOME maupun KDE pada workstation Linux Red Hat sangat mudah dan dapat
berpindah antar dua dekstop tersebut tergantung pilihan user.
Untuk memulai X.org tidak perlu dilakukan jika sistem booting pada mode
grafis. Bila sistem booting pada virtual console (mode teks) maka X.org dapat dimulai
dengan menjalankan peintah startx.
3 PERINTAH SEDERHANA DAN HELP
Perintah Linux standar mempunyai format sebagai berikut :
NamaPerintah [pilihan] [argumen]
Pilihan adalah option yang dimulai dengan tanda – (minus) atau – untuk full word.
Argumen berupa nama file atau data lain yang dibutuhkan oleh perintah, dapat kosong,
satu atau beberapa argumen (parameter). Untuk menjalankan lebih dari satu perintah
gunakan tanda semicolon (;). Untuk interupsi instruksi dengan mengetikkan Ctrl-c.
Contoh :
$ ls tanpa argumen
$ ls –a option adalah –a = all, tanpa argumen
$ ls /bin tanpa option, argumen adalah /bin
$ ls /bin /etc /usr ada 3 argumen
$ ls –l /usr 1 option dan 1 argumen l = long list
$ ls –la /bin /etc 2 option –l dan –a dan 2 argumen
$ mkdir temp; cp *.txt temp/
Beberapa perintah sederhana :
• date : menampilkan tanggal dan waktu
• cal : menampilkan kalender
Beberapa perintah untuk meminta bantuan (help) :
• whatis
Perintah ini menampilkan diskripsi pendek dari perintah. Menggunakan database
yang diubah setiap hari. Biasanya belum tersedia sesaat setelah menginstall.
• Opsi –help
Perintah ini menampilkan summary penggunaan perintah dan daftar argumen.
Digunakan oleh sebagian besar perintah tetapi tidak semuanya
• man
Perintah ini menyediakan dokumentasi untuk perintah. Hampir semua perintah
mempunyai halaman man. Halaman dikelompokkan ke dalam chapter. Biasanya
berfungsi sebagai Linux Manual. Linux Manual dibagi ke dalam beberapa bagian
yang masing-masing mencakup topik tertentu dan setiap halaman diasosiasikan
tepat satu pada bagian tersebut. Bagian-bagian tersebut adalah :
1. Perintah user
2. System call
3. Library call
4. File khusus
5. Format file
6. Games
7. Miscellaneous
8. Perintah administratif
Sebagai contoh passwd(1) sama dengan menjalankan man 1 passwd yang
merujuk ke perintah passwd sedangkan passwd(5) menjalankan man 5 passwd
yang merujuk ke format file /etc/passwd.
Pada saat menampilkan halaman man dapat dilakukan navigasi melalui panah,
PgUp, PgDn. Pilihan /text digunakan untuk mencari teks. Tombol n atau N
akan berpindah maju atau mundur dan tombol q untuk keluar.
Apabila nama perintah tidak diketahui dapat menggunakan perintah man –k
keyword yang akan menampilkan semua halaman yang tepat. Perintah ini
menggunakan basis data whatis.
• info
Perintah ini sama dengan man, tetapi lebih detail. Untuk menjalankan info tidak
diikuti dengan argumen akan memperlihatkan isi semua halaman. Halaman info
terstruktur seperti web site. Setiap alamat dibagi ke dalam beberapa ”node”. Untuk
menuju ”node” dengan menekan tanda asterik (*).
Pada saat menjalankan perintah info dapat dinavigasi dengan panah, PgUp, PgDn.
Untuk berpindah ke link berikutnya menggunakan Tab dan diikuti Enter untuk
memilih link. Tombol n, p atau u akan menuju ke node berikutnya, sebelumnya
atau ke node atasnya. Kunci s diikuti teks dan Enter akan mencari teks tersebut
(format : s text). Untuk keluar dari info gunakan tombol q.
Aplikasi biasanya menyertakan dokumentasi yang tidak sama dengan format
man atau info. Biasanya berisi copy dari lisensi perangkat lunak, konfigurasi file,
tutorial serta buku dokumentasi dari aplikasi. Dokumentasi aplikasi ini dapat dicari di
direkori /usr/share/doc. Sub direktory ini berisi dokumentasi sebagian besar paket
yang terinstall.
Dokumentasi dari Red Hat tersedia pada CD atau website Red Hat
http://www.redhat.com/docs/ yang berisi tuntunan instalasi, pengenalan
administrasi sistem, tuntunan administrasi sistem, referensi, keamanan, step by step dan
lain sebagainya.
TUGAS PENDAHULUAN:
Jawablah pertanyaan-pertanyaan di bawah ini :
1. Apa yang dimaksud perintah dasar di bawah ini :
date, cal
2. Apa perbedaan perintah untuk manual user di bawah ini :
whatis, opsi –help, man, info
3. Apa isi direktory /usr/share/doc ?
PERCOBAAN:
1. Login sebagai user.
2. Masuk ke TTY1 dengan menekan Ctrl-Alt-F1 dan lakukan percobaan-percobaan di
bawah ini. Perhatikan hasilnya.
3. Selesaikan soal-soal latihan.
Percobaan 1 : Melihat Tanggal, Waktu dan Kalender Sistem
Percobaan 2 : Perintah Manual
1. Melihat tanggal saat ini
$ date
$ date +”Hari ini %A, %B %d, %Y.%nJam %r,%Z.”
2. Melihat kalender
$ cal 9 2006
$ cal -y
1. Perintah whatis
$ whatis cal
$ whatis date
2. Opsi --help
$ date --help
$ cal –help
3. Perintah man
$ man date
$ man man
$ man –f cal
$ man –k date
$ man –K date
$ man 1 passwd
$ man 5 passwd
4. Perintah info
$ info date
$ info cal
5. Melihat isi direktori dokumentasi dari aplikasi
$ ls /usr/share/doc

VISUAL BASIC 6.0

BAB I
MENGENAL DAN MENCOBA MS-VISUAL BASIC 6.0

1.1. Mengenal Microsoft Visual Basic 6.0
Microsoft Visual Basic 6.0 adalah bahasa pemrograman yang bekerja dalam lingkup MS-Windows. Microsoft Visual Basic 6.0 dapat memanfaatkan kemapuan MS-Windows secara optimal. Kemampuannya dapat dipakai untuk merancang program aplikasi yang berpenampilan seperti program aplikasi yang berbasis MS-Windows

1.2. Cara Memulai Program Microsoft Visual Basic 6.0
Untuk memulai Microsoft Visual Basic 6.0 lakukanlah seperti langkah-langkah berikut :
1. Klisk Start
2. Tunjuk Program, dilanjutan dengan Microsoft Visual Basic 6.0
3. Klik Microsoft Visual Basic 6.0
4. Akan muncul gambar seperti dibawah ini, pilih Standard Exe, Klik Open.

Gambar 1.1. Tampilan New Project

Gambar 1.2. Tampilan Dasar Microsoft Visual Basic 6.0








1.3. Beberapa Komponen Microsoft Visual Basic 6.0
1. Project
Project adalah sekumpulan modul. Jadi Project adalah program aplikasi itu sendiri. Project disimpan dalam file yang berektensi .VBP. file ini menyimmpan seluruh komponen program, termasuk project, pilihan environment. Pilihan EXE dan segala sesuatu yang berhubungan dengan project
2. Form
Form adalah suatu abjek yang dipakai sebagai tempat kerja program aplikasi. Form berbentuk jendela dan dapat dibayangkan sebagai kertas atau meja yang dapat dilukis atau diletakan kedalannya objek-objek lain.

Gambar 1.3. Form
3. Toolbox

Gambar 1.4. Toolbox
4. Properties
Propertis digunakan untuk mementukan seting suatu objek. Suatu objek biasanya mempunyai beberapa properti, yang dapat diatur langsung dari jendela Properties atau lewat kode program. Setting properti akan mementukan cara kerja dari objek yang bersangkuta saat program aplikasi dijalankan. Misalnya menentukan warna objek, bingkai objek, pengambilan data dan lain – lain.
Untuk mengaktifkan Properties dengan cara mengklik Menu View|Properties Windows atau dengan menekan tombok F4

Gambar 1.5. Properties
5. Kode Program
Kode Program adalah serngkaian tulisan perintah yang akan dilakukan jika suatu objek dijalankan. Kode program ini akan mengontrol dan menentukan jalannya suatu objek.
Contoh kode program.
Private Sub Command1_click()
Label1.Caption = “Selamat Belajar MS-Visual Basic”
Label2.Caption = “Di STMIK Tasikmalaya”
End Sub
6. Event
Event adalah peristiwa atau kejadianyang diterima oleh suatu objek, misalnya di klik, drag, dan lain – lain. Event yang diterima objek akan memicu MS-Visual Basic 6.0 menjalankan kode program yang ada didalamnya.
Contoh Event
Private Sub Command1_click()
Baris diatas menunjukan penggunaan event Click pada objek Command1, yang berarti jika mengklik pada objek Command1, maka baris – baris kode program dibawahnya akan dijalankan.
7. Metoda
Metoda adalah suatu set perintah seperti halnya fungsi dan prosedur, tetapi sudah tersedia di dalam suatu objek. Seperti halnya dengan properti (yang juga terdapat pada suatu objek), suatu metoda dapat dipanggil dengan menyebut nama objek tertentu, sedangkan properti biasanya memberi definisi nilai atau setting pada objek. Antara objek lain dengan objek lain dapat mempunyai metoda yang sama atau tidak sama, baik dalam segi umlah metoda atau semacam metoda. Metoda akan dapat dilihat saat program dijalankan.
8. Module
Module dapat disejajarkan dengan form, tetapi mengandung objek dan bentuk standar Module dapat berisi beberapa kode program atau prosedure yang dapat digunakan dalam program aplikasi. Sebenarnya suatu form juga sebuah module (disebut sebagai FORM Module), tetapi mempunyai objek berupa form. Selain itu juga Class Module, yaitu suatu modul yang berupa objek class, yaitu suatu objek yang mempunyai metoda dan properti yang sudah terdefinisi.
Untuk membuat modul sendiri, langkahnya masuk ke Menu Project | Add Module. Selanjutnya tinggal mengisikan kode program dalam module tersebut.

1.4. Membuat Program Aplikasi Pertama
Contoh 1.1
Tambahkan 2 Buah Label, 3 Buah Command dari jendela Toolbox
Buatlah form dengan Layout sebagai berikut


Pengaturan Objek
Nama Objek Properties Isi
Form1 Caption Program Aplikasi Yang Pertama
Label1 Caption SELAMAT BELAJAR MS – VISUAL BASIC
Label2 Caption DI STMIK TASIKMALAYA
Command1 Caption TUKAR
Command2 Caption BALIK
Command3 Caption KELUAR

Listing Program
Private Sub Command1_Click()
Label1.Caption = “ DI STMIK TASIKMALAYA “
Label2.Caption = “ SELAMAT BELAJAR MS – VISUAL BASIC “
End Sub
Private Sub Command2_Click()
Label1.Caption = “ SELAMAT BELAJAR MS – VISUAL BASIC “
Label2.Caption = “ DI STMIK TASIKMALAYA “
End Sub
Private Sub Command2_Click()
End
End Sub

Penjelasan Program
Jika Di Klik Tombol Tukar maka pada label1 Caption akan berubah menjadi DI STMIK TASIKMALAYA. Pada label2 Caption akan berubah menjadi SELAMAT BELAJAR MS – VISUAL BASIC.
Jika Di Klik Tombol Tukar maka pada label1 Caption akan berubah menjadi SELAMAT BELAJAR MS – VISUAL BASIC. Pada label2 Caption akan berubah menjadi DI STMIK TASIKMALAYA.
Jalankan Program dengan Mengklik Menu Run | Klik Start atau menggunakan F5
Simpan pekerjaan dengan cara
1. Klik Menu File pilih Save Project As
2. Ketikan Nama File Projectnya Lat1prj
3. Ketikan Nama File Formnya Lat1prj
Contoh 1.2

Langkah – langkahnya
1. Klik Menu File
2. Klik New Project
3. Klik Standard Exe
4. Klik Open
Pengaturan Objek
Nama Objek Properties Isi
Form1 Caption MENGHITUNG LUAS PERSEGI PANJANG
Label1 Caption PANJANG
Label2 Caption LEBAR
Label3 Caption LUAS
Text3 Enabled False
Command1 Caption MULAI
Command2 Caption SELESAI
Listing Program
Private Sub Text1_Change()
Text3.Text = Val(Text1.Text) * Val(Text2.Text)
End Sub
Private Sub Text2_Change()
Text3.Text = Val(Text1.Text) * Val(Text2.Text)
End Sub
Private Sub Command1_Click()
Text1.Text = “ “
Text2.Text = “ “
Text3.Text = “ “
Text1.Setfocus
End Sub
Private Sub Command1_Click()
End
End Sub
Ket :
Val digunakan untuk mengkonversi data yang berupa String ke Numerik dan di Konversi lagi ke String





Latihan 1.1.
Buatlah Form Untuk menghitung Jumlah Bayar, dengan Layout sebagai berikut :

Ketentuan Proses :
Jumlah Bayar = Jumlah Pembelian * Harga Satuan
































BAB II
TIPE DATA, VARIABEL DAN OPERATOR
2.1. Tipe Data
MS – Visual Basic 6.0 menyediakan beberapa tipe data seperti pada tabel di bawah ini.
Tipe Nilai Memory
Integer Bilangan Bulat 2 byte
Long Bilangan Bulat 4 byte
Single Bilangan Desimal 4 byte
Double Bilangan Desimal 8 byte
Currency 15 Digit di depan koma dan 4 digit dibelakang koma 8 byte
String Teks 1 byte per karakter
Byte Bilangan Bulat 1 byte
Bolean Logika 2 byte
Date Tanggal dan Waktu 8 byte
Object Gambar dan Objek yang lain 4 byte
Variant Tipe data sendiri 16 byte + 1 byte per karakter
Tabel 2.1 Nilai dan Kebutuhan Memori Tipe – tipe data
Tipe Range
Integer -32768 s/d 32767
Long -2147483.648 s/d 2147483.647
Single Negatif : -3.402823E38 s/d -1.401298E-45
Positif : 1.401298E-45 s/d 3.402823E38
Double Negatif : -1.79769313486232E308 s/d -4.94065645841247E-324
Positif : 4.94065645841247E-324 s/d 1.79769313486232E308
Currency -922337203685477.5808 s/d 922337203685477.5807
String 0 s/d 2 milyar karakter (95/97 & NT) dan 0 s/d sekitar 65535 karakter (versi 3.1)
Byte 0 s/d 255
Bolean True (benar) atau False(salah)
Date A Januari 100 s/d 31 Desember 9999
Object Referensi Objek
Variant Null, error, dan seluruh tipe data lain, misalnya boolean, numerik, string, objek, array
Tabel 2.2 Jangkauan Nilai Tipe – tipe data
2.2.1. Penggunaan Tipe Data Variant
Jika di dalam suatu program tidak mendeklarasikab suatu variabel, tetapi langsung memakainya, maka variabel yang dipakai akan nertipe variant. Tipe data variant dapat dipakai untuk menampung data null, error, dan seluruh file data lain, misalnya boolean, numerik, string, objek, aray. Oleh karena itu penggunaannya haruslah sangat selektif, karena selain tidak memberikan kepastian tentang jenis dara yang dikandungnya, juga memerlukan byte memory lebih banyak.
2.1.2. Tipe Data Buatan Sendiri
Dalam MS-Visual Basic 6.0 kita dapat membuat sendiri tipe data baru dengan mengambil salah satu atau beberapa tipe standar yang disediakan. Misalnya pada penanganan database, sering diperlukan variabel yang dapat menampung 1 record dara. Record data tersebut terdiri dari dari beberapa tipe data yang berbeda, misalnya record mahasiswa dapat terdiri tipe data string untuk menampung data NPM, nama, alamat, kota, tanggal lahir. Record data Mahasiswa semacam ini disebut tipe data terstruktur.


Penulisan umum tipe data buatan sendiri adalah sebagai berikut:
Private Type NamaTipeData

End Type

Atau;
Public Type NamaTipeData

End Type

Sebagai contoh untuk record data pegawai seperti dibahas diatas, dapat dibuat tipe datanya sebagai berikut :
Public Type DataMahasiswa
NPM As String *10
Nama As String *25
Alamat As String *25
Kota As String *10
TahunMasuk As Long
TanggalLahir As Date
End Type

2.2. Variabel
Variabel adalah suatu tempat dalam memory komputer yang diberi nama (sebagai pengenal) dan dialokasikan untuk menampung data, sesuai data yang ditampung, variabel harus mempunyai tipe data yang sesuai dengan isinya. Kita dapat menggunakan dua cara untuk memberi tahu MS-Visual Basic 6.0 tentang tipe variabel dan nama variabel yang akan dipakai.
Cara pertama adalah menggunakan perintah DIM untuk mendeklarasikan nama variabel beserta tipe datanya pada awal prosedur, seperti contoh dibawah ini.

Dim nama As String
Dim Alamat As String * 36
Dim Gaji As Long

Pernyataan DIM diatas disebut Deklarasi Eksplisit dan menyebabkan MS-Visual Basic 6.0 mengalokasikan memory sesuai dengan nama dan tipe yang diinginkan sehingga variabel dan tipe variabel yang digunakan terkontrol.
Cara kedua Deklarasi Implisit seperti contoh dibawah ini

Nama$ = “Asep”
Alamat$ = “Jl. Mitra Batik 21 Tasikmalaya”
Gaji& = 400000

Deklarasi implisit ini membuat MS-Visual Basic 6.0 mengalokasikan nama variabel berikut tipenya dan langsung mengisi nilai variabelnya. Cara yang dianjurkan adalah cara pertama (Deklarasi Eksplisit dengan menuliskan DIM) karena lebih terencana dan terkontrol.
2.2.1. Nama Variabel
Dalam menggunakan nama variabel, sebaiknya digunakan nama variabel yang sesuai dengan dara yang dikandungnya data yang mudah diingat(singkat dan jelas). Misalnya NamaMhs, Alamat, TglLahir dan lain – lain. Penulisan huruf besar dan kecilnya diatur biar lebih mudah dibaca. Kita tidak perlu mengkhawatirkan konsistensi penulisan besar can kecilnya, karena MS-Visual Basic 6.0 akan otomatis menjaga konsistensi penulisannya. Menuliskan DIM NamaMhs, maka pada saat kita menulis dalam bada program nama variabel namamhs, akan diubah secara otomatis oleh MS-Visual Basic 6.0 menjadi NamaMhs.
Beberapa peraturan yang berlaku pada penggunaan nama variabel adalah sebagai berikut :
1. Harus dimulai dari karakter Alfabet (Huruf)
2. Harus Unique (Tidak boleh ada yang sama) pada ruang lingkup (Scope) variabel yang sama.
3. Maksimum 255 karakter, tetapi hanya 40 karakter pertama yang dianggap sebagai nama variabelnya (Karakter ke-41 dan seterusnya diabaikan)
4. Beberapa karakter tidak diperbolehkan dipakai, misalnya karakter yang dipakai operator ( +, -, *, /, <, > dan lain – lain), titik dua, titik koma dan lain – lain.
2.2.2. Ruang Lingkup Variabel
Ruang lingkup variabel (variabel scope) adalah ruang lingkup atau daerah dimana variabel yang dibuat dikenal (dapat dipakai). Ruang lingkup variabel biasanya juga berhubungan dengan umur (waktu hidup) variabel. Ada variabel yang dapat dikenal di seluruh bagian program (proyek) dan hidup selama program berjalan, ada variabel yang hanya dikenal di prosedure atau fungsi tempat variabel tersebut dibuat dan hidupnya hanya prosedure atau fungsi tersebut berjalan.
Ruang lingkup paling dalam adalah ruang lingkup prosedure. Jika mendeklarasikan secara eksplisit suatu variabel didalam suatu prosedure dengan perintah DIM, Private atau Static, maka variabel yang dideklarasikan mempunyai ruang lingkup prosedure, artinya variabel tersebut hanya dikenal dan dapat dipakai pada prosedure yang bersangkutan. Jadi persifat Local pada procedure itu. Jika pada prosedure lain atau pada level diatanya (Form atau Modul) mempunyai variabel dengan nama yang sama, maka tidak saling mengganggu.

2.3. Operator
Untuk melakulan berbagai manipulasi dan pengolahan data, MS-Visual Basic 6.0 menyediakan bermacam – macam operator.
2.3.1. Operator Penugasan
Operator penugasan disimbolkan dengan tanda sama dengan dan berfungsi untuk memasukan suatu data ke dalam suatu variabel. Penulisannya adalah :
=
Contoh
Bilangan = 0
Harga = 500
2.3.2. Operator Aritmatika
Digunakan untuk melakukan operasi aritmatika. Operator aritmatika mempunyai hirarki paling tinggi dibandingkan dengan operator yang lain, yaitu operator pembanding dan operator logika. Operator aritmatika dengan hirarki paling tinggi ke paling rendah adalah sebagai berikut






Operator Operasi
^ Pangkat
- Tanda Negatif
*, / Perkalian dan Pembagian
\ Pembagi Integer
Mod Modulud (sisa pembagian)
+, - Tambah dan pengurangan
+, & Penggabungan String
Tabel 2.3 Operator Aritmatika
2.3.3. Operator Pembanding
Operator pembanding digunakan utuk membandingkan suatu data (ekpresi) dengan data (ekpresi) lain dan menghasilkan nilai logika (boolean) benar atau salah. Dengan syarat antara dua data yang dibandingkan harus mempunyai tipe data yang sama. Berikut adalah tabel operator pembanding
Operator Operasi
= Sama dengan
<> Tidak sama dengan
< Lebih Kecil > Lebih Besar
<= Lebih Kecil atau sama dengan >= Lebih Besar atau sama dengan
Like Mempunyai ciri sesuai
Is Sama referensi objek
Tabel 2.4 Operator Pembanding
2.3.4. Operator Logika
Digunakan untuk mengekpresikan satu atau lebih data (ekpresi) logika (boolean) sehingga menghalikan data logika bari (boolean). Tabel operator logika dengan hirarki dari atas ke bawah adalah sebagai berikut
Operator Operasi
Not Tidak
And Dan
Or Atau
Xor Exclusive or
Eqv Ekuivalensi
Lmp Implikasi
Tabel 2.5. Operator Logika
Operator logika Not menghasilkan nilai kebalikan dari suatu data logika dan mempunyai hirarki paling tinggi pada operator logika. Tetapi ingat operator logika hirarkinya lebih rendah dari operator penugasan, operator aritmatika, dan operator pembanding











BAB III
KONTROL PROGRAM

3.1. Pencabangan Bersyarat If ........ Then ...... Else
Digunakan untuk menjalankan suatu blok perintah, tergantung dari nilai yang diuji
Penulisannya adalah sebagai berikut

IF Then
{satu atau lebih pernyataan program}
Elseif Then
{satu atau lebih pernyataan program}
Else
{satu atau lebih pernyataan program}
End if

adalah suatu ekpresi logika. Perintah IF yang pertama akan menguji disebelah kanannya Jika benar, maka blok perintah yang terletak dibawahnya akan dikerjakan sampai memenuhi perintah Elseif atau Else lalu langsung melompat ke pernyataan End IF. Perhatikan bahwa perintah ElseIf dan atau False boleh tidak digunakan. Jika pertama salah dan ada perintah ElseIf, maka disebelah perintah dibawahnya akan dilaksanakan. Jika salah, maka program akan mengerjakan blok perintah yang terletak di bawah perintah Else atau ke End If

Contoh Program 3.1.
Buatlah Form dengan Layout sebagai berikut

Listing Program
Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text5.Enabled = False 'Menonaktifkan Objek Text5
Text6.Enabled = False 'Menonaktifkan Objek Text6
Text7.Enabled = False 'Menonaktifkan Objek Text7
Text1.SetFocus
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Text4_Change()
Dim total, bayar, diskon As Single
total = Val(Text3.Text) * Val(Text4.Text)
If total >= 100000 Then
diskon = 0.3 * total
ElseIf total >= 75000 Then
diskon = 0.2 * total
ElseIf total >= 50000 Then
diskon = 0.1 * total
ElseIf total < 50000 Then diskon = 0 End If bayar = total - diskon Text5.Text = Format(total, "###,###,###") Text6.Text = Format(diskon, "###,###,###") Text7.Text = Format(bayar, "###,###,###") End Sub Contoh Program 3.2. Buatlah Form dengan Layout sebagai berikut Untuk memasukan jenis Perumahan, Perkantoran dan Bisnis aturlah pada objek Combo1 : Nama Objek Properties Isi Combo1 List Perumahan Perkantoran Bisnis Listing Program Private Sub Combo1_Click() If Combo1.Text = "Perumahan" Then Text3.Text = 1000 ElseIf Combo1.Text = "Perkantoran" Then Text3.Text = 1500 ElseIf Combo1.Text = "Bisnis" Then Text3.Text = 2000 End If End Sub Private Sub Command1_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Combo1.Text = "" Text1.SetFocus Text3.Enabled = False 'Menonaktifkan Objek Text3 Text5.Enabled = False 'Menonaktifkan Objek Text5 Text6.Enabled = False 'Menonaktifkan Objek Text6 Text7.Enabled = False 'Menonaktifkan Objek Text7 End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Text4_Change() Dim total, ppn, bayar As Single total = Val(Text4.Text) * Val(Text3.Text) ppn = total * 0.1 bayar = total + ppn Text5.Text = Format(total, "###,###,###") Text6.Text = Format(ppn, "###,###,###") Text7.Text = Format(bayar, "###,###,###") End Sub Contoh Program 3.3. Buatlah Form dengan Layout sebagai berikut Listing Program Private Sub Command2_Click() Unload Me End Sub Private Sub Command1_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" Option1.Value = False Option2.Value = False Text5.Enabled = False 'Menonaktifkan Objek Text5 Text6.Enabled = False 'Menonaktifkan Objek Text6 Text7.Enabled = False 'Menonaktifkan Objek Text7 Text8.Enabled = False 'Menonaktifkan Objek Text8 Text1.SetFocus End Sub Private Sub Option1_Click() Text4.Enabled = True Text6.Text = Val(Text3.Text) * 0.3 Text7.Text = Val(Text5.Text) * Val(Text6.Text) Text6.Text = Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text) End Sub Private Sub Option2_Click() Text4.Text = 0 Text4.Enabled = False Text5.Text = 0 Text6.Text = 0 Text7.Text = 0 Text8.Text = Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text) End Sub Private Sub Text4_Change() If Val(Text4.Text) >= 3 Then
Text5.Text = 2 * Val(Text3.Text) * 0.2
Else
Text5.Text = Val(Text4.Text) * Val(Text3.Text) * 0.2
End If
Text6.Text = Val(Text3.Text) * 0.3 'Tunjangan istri
Text7.Text = Val(Text5.Text) + Val(Text6.Text) 'Total Tunjangan
Text8.Text = Val(Text3.Text) + Val(Text5.Text) + Val(Text6.Text) 'Jumlah Pendapatan
End Sub

3.2. Percabangan Bersyarat Select Case
Digunakan untuk menjalankan satu blok perintah, tergantung dari nilai yang diuji. Jadi fungsinya sama dengan struktur IF .... Then .... Else, tetapi biasanya dipakai untuk percabangan dengan lebih dari dua pilihan (percabangan dengan banyak pilihan)
Penulisannya adalah sebagai berikut
Select Case
[Case
[Satu atau lebih Pernyataan Program]
[Case
[Satu atau lebih Pernyataan Program]
..........
..........
[Case
[Satu atau lebih Pernyataan Program]
Case Else
[Case
[Satu atau lebih Pernyataan Program]
End Select
adalah suatu ekpresi data numeric atau string. Jika adalah sama atau anggota dari , maka blok perintah yang ada dibawahnya akan dilaksanakan sampai bertemu perintah Case berikutnya atau bertemu End Select. Perlu diingat, pengujian dilakukan dari urutan Case yang paling atas dan hanya satu blok yang dilaksanakan. Jadi bila salah satu Case dipenuhi, program langsung mencabang ke End Select.

Contoh Program 3.4
Buatlah Form dengan Layout sebagai berikut

Listing Program
Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text5.Enabled = False 'Menonaktifkan Objek Text5
Text6.Enabled = False 'Menonaktifkan Objek Text6
Text7.Enabled = False 'Menonaktifkan Objek Text7
Text1.SetFocus
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Text4_Change()
Dim total, bayar, diskon As Single
total = Val(Text3.Text) * Val(Text4.Text)
Select Case total
Case Is >= 100000
diskon = 0.3 * total
Case Is >= 75000 Then
diskon = 0.2 * total
Case Is >= 50000 Then
diskon = 0.1 * total
Case Is < 50000 Then diskon = 0 End If bayar = total - diskon Text5.Text = Format(total, "###,###,###") Text6.Text = Format(diskon, "###,###,###") Text7.Text = Format(bayar, "###,###,###") End Sub 3.3. Pengulangan 1. Pengulangan For Next Statement pengulanan For ... Next dipakai untuk melakukan pengulangan suatu blok program beberapa kali yang ditentukan ole nilai awal dan nilai akhir 2. Pengulangan Do .... Loop dan While Wend Statement pengulangan Do .... Loop digunakan untuk mengulang suatu blok pernyataan (syarat) bernilai True atau sampai (until) suatu konsisi menjadi True Contoh Program 3.5 Buatlah Form dengan Layout sebagai berikut Option Explicit Dim angka As Integer Private Sub Command1_Click() Form2.Print "Mencetak angka 1 sampai dengan 10 dengan For Next" For angka = 1 To 10 Form2.Print angka Next angka End Sub Private Sub Command2_Click() angka = 1 Form2.Print "Mencetak angka 1 sampai dengan 10 dengan Do While Loop" Do While angka <= 10 Form2.Print angka angka = angka + 1 Loop End Sub Private Sub Command3_Click() angka = 1 Form2.Print "Mencetak angka 1 sampai dengan 10 dengan Do While Loop" While angka <= 10 Form2.Print angka angka = angka + 1 Wend End Sub Contoh Program 3.6 Buatlah Form dengan Layout sebagai berikut Listing Program Option Explicit Dim Angka, Kel As Integer Private Sub Command1_Click() Form2.Print "Mencari Kelipatan 2 dengan For Next" Kel = 0 For Angka = 1 To 10 Kel = Kel + 2 Form2.Print Kel Next Angka End Sub Private Sub Command2_Click() Angka = 1 Kel = 0 Form2.Print "Mencari Kelipatan 2 dengan Do While Loop" Do While Angka <= 10 Kel = Kel + 2 Form2.Print Kel Angka = Angka + 1 Loop End Sub Private Sub Command3_Click() Angka = 1 Kel = 0 Form2.Print "Mencari Kelipatan 2 dengan Do While Loop" While Angka <= 10 Kel = Kel + 2 Form2.Print Kel Angka = Angka + 1 Wend End Sub BAB IV FUNGSI Fungsi adalahsebuah rutin program yang mampu menerima berbagai niati atau data dan memberikan suatu hasil tertentu. Nilai atau data dan memberikan suatu hasil tertentu. Nilai atau data dalam fungsi disebut dengan istilah argumen, dan argumen ini tidak dapat berupa berbagai macam jenis seperti angka, string, tanggal dan sebagainya. Fungsi dapat menerima satu atau lebih argumen tetapi hanya akan mengembalikan hasil suatu nilai tunggal. Fungsi bermanfaat untuk membantu di dalam pemrograman dan menghemat waktu dan tenaga. Fungsi biasanya digunakan untuk melakukan hal – hal seperti dibawah ini: 1. Perhitungan matematik misalnya : akar, menentukan nilai absolut,menghitung nilai sinus, dan sebagainya 2. Menanipulasi text atau string misalnya : menghitung panjang string, mengubah string kapital, mengambi sebagian string, dan sebagainya 3. Memanipulasi tanggal, jam, data, melakukan operasi input dan output, dan sebagainya 4.1. Fungsi Input() Fungsi InputBox() adalah fungsi yang menghasilkan kotak yang meminta input tertentu dari user. inputBox menampilkan kotak dialog yang berisi kotak teks yang bisa diisi oleh user tertentu oleh user yang berupa string Gambar 4.1 Contoh InputBox Membuat InputBox Sintaks/penulisan dari fungsi InputBox() adalah sebagai berikut Nama Variabel = InputBox(“esan, [strjudul, imtxpos, intYpos]) Keterangan : 1. Nama Variabel : variabel untuk menyimpan hasil yang dikembalikan oleh fungsi InputBox() 2. Pesan : teks atau kalimat yang s\ingin ditampilkan pada kotak input (ditulis dalam tanda kutip) 3. Strjudul : judul yang akan ditampilkan pada baris teratas kotak input (diapit oleh tanda kutip). Jika string tidak ditulis, judul pada kotan input akan bertuliskan nama proyek aplikasi anda. 4. Strjudul :teks yang ditampilkan sebagai jawaban default (jawaban yang sudah disediakan) pada kotak input (ditulis dalam tanda kutip) 5. Intxpos : Lokasi pada sumbu X dimana kotak input akan muncul dilayar 6. Intypos : Lokasi pada sumbu Y dimana kotak input akan muncul dilayar 4.2. Fungsi MsgBox() Fungsi MsgBox adalah Fungsi yang menghasilkan pesan – pesan untuk user. Pesan ini biasanya dapat berupa pesan peringatan, pesan error, pesan untuk memastikan suatu tindakan, dan sebagainya. Message Box (Kotak Pesan) ini biasanya digunakan untuk menampilkan pesan tertentu, lalu menunggu konfirmasi penekanan tombol dari user (biasanya tombol Ok dan Cancel), lalu aplikasi dilanjutkan kembali. Gambar 4.3. hasil dari pembuatan MsgBox Contoh 4.1. Buatlah Form dengan desain sebagai berikut Listing Program Private Sub Command1_Click() Dim angka As Single angka = InputBox("Masukan Nilai Anda", "Nilai") If angka > 0 And angka < 100 Then Label1.Caption = "Anda Memasukan Nilai Puuhan" ElseIf angka >= 100 And angka < 1000 Then Label1.Caption = "Anda Memasukan Nilai Ratusan" ElseIf angka >= 1000 And angka < 10000 Then Label1.Caption = "Anda Memasukan Nilai Ribuan" ElseIf angka >= 10000 And angka < 100000 Then Label1.Caption = "Anda Memasukan Nilai Puluhan Ribu" End If End Sub Private Sub Command2_Click() keluar = MsgBox("Yakin Anda Akan Keluar ?", vbCritical + vbOKCancel + 256, "Keluar") If keluar = vbOK Then Unload Me End If End Sub Private Sub Form_Load() user = InputBox("Masukan Nama Anda", "Silahkan") Form1.Caption = "Hallo Semalat Datang" + " " + user End Sub 4.3. Fungsi Matematika Fungsi matematika berfungsi melakukan perhitungan matematika tertentu pada nilai bertipe numeric (angka) Fungsi Keterangan Contoh Abs() Menghasilkan nilai mutlak Abs(-90) = 90 Abs(90) = 90 Atn() Nilai Arc Tangen (dalam Radian) Atn(3,14) = 1.2625 Cos() Nilai Kosinis (dalam Radian) Cos(3.14) = - 1 Exp() Nilai basis logaritma Exp(100) = 2,688 Int() Nilai Integer saja (bulat) Int(123.45) = 123 Len() Jumlah Karakter numeric Len(1234) = 4 Long() Nilai algoritma natural Long(100) = 4,605 Round(Nilai,x) Membulatkan nilai sebesar angka dibelakan koma Round(1.23, 1) = 1.2 Round(1.26, 1) = 1.3 Sin() Nilai sinus (dalam radian) Sin(3.14) = 0 Sqr() Akar Kuadrat Sqr(4) = 2 Tan() Nilai tangen (dalam radian) Tan(3.14) = 0 Tabel 4.4 Fungsi Matematika Fungsi Keterangan Contoh Asc(Str) Mengubah String menjadi ASCII Asc(“A”) = 65 Chr(int) Mengubah nilai ASCII menjadi karakter Chr(65) = “A” Lcase(str) Mengubah semua string menjadi huruf kecil Lcase(“Stmik”) = stmik Left(str, int) Mengambil huruf dari kiri string str sebanyak int Left(“STMIK TASIKMALAYA”,2)=”ST” Len(Str) Menghitung panjang string Len(“STMIK TASIKMALAYA”) = 17 LTrim(Str) Memotong spasi di sebelah kiri string str LTrim(“ STMIK TASIKMALAYA) = “STMIK TASIKMALAYA” Mid(Str, intstart, intlen) Mengambil huruf dari tengah string yang diawali dari posisi intstart sebanyak intlen Mid(“STMIK TASIKMALAYA”,5 ,3) = “K T” Right(Str, int) Mengambil huruf dari kanan string str semanyak int Right(“STMIK TASIKMALAYA”,3) = “AYA” Str() Mengubah nilai numeric menjadi string Str(100) = “100” StrReverse() Merubah urutan huruf string StrReverse(“STMIK”) = “KIMTS” Ucase() Mengubah semua string menjadi huruf besar Ucase(“Stmik”) = “STMIK” Tabel 4.5. Fungsi String Contoh Program 4.2, Buatlah Program dengan Layout sebagai berikut Listing Program Private Sub Command1_Click() Label2.Caption = "LCASE" + "[" + Text1.Text + "]" Label3.Caption = "UCASE" + "[" + Text1.Text + "]" Label4.Caption = "LTRIM" + "[" + Text1.Text + "]" Label5.Caption = "RTRIM" + "[" + Text1.Text + "]" Label6.Caption = "LEFT" + "[" + Text1.Text + ",3]" Label7.Caption = "RIGHT" + "[" + Text1.Text + ",3]" Label8.Caption = "MID" + "[" + Text1.Text + "3,4]" Label9.Caption = "LEN" + "[" + Text1.Text + "]" Text2.Text = LCase(Text1.Text) Text3.Text = UCase(Text1.Text) Text4.Text = LTrim(Text1.Text) Text5.Text = RTrim(Text1.Text) Text6.Text = Left(Text1.Text, 3) Text7.Text = Right(Text1.Text, 3) Text8.Text = Mid(Text1.Text, 3, 4) Text9.Text = Len(Text1.Text) End Sub Private Sub Command2_Click() keluar = MsgBox("Yakin Anda Akan Keluar ?", vbCritical + vbOKCancel + 256, "Keluar") If keluar = vbOK Then Unload Me End If End Sub 4.5. Fungsi Tanggal dan Jam Fungsi tanggal dan jam berfungsi untuk memanipulasi nilai – nilai tanggal dan jam. Biasanya fungsi ini untuk pembuatan objek waktu, tanggal dan jam. Fungsi Keterangan Contoh Date Menampilkan tanggal saat ini 17/01/2009 Dateserial(Year, Month, Day) Mengubah nilai numeric menjadi bentuk tanggal DateSerial(2009, 01, 17)= 17/01/009 DateDiff(Interval, dtel, dtel2) Menghitung interval antara dua tanggal DateDiff(“d”, 10, 13)=3 DatePart(Interval, dtelDate) Mengambil bagian tertentu dari tanggal DatePart(“d”, 17/01/09)= 17 Now Menampilkan tanggal dan jam saat itu 17/10/02 22:37:06 Time Waktu saat ini 22:37:06 Timer Jumlah detik setelah tengah malam 81426,98 TimerSerial(Hour, min, sec) Mengubah nilai menjadi bentuk jam TimerSerial(10, 20, 30)= 10:20:30 4.6. Fungsi Tanggal dan jam Fungsi DateDiff() dan DatePart() membutuhkan Interval yang dapat diambil dari salah satu nilai dibawah ini (dan ditulis dalam kutip). Interval Keterangan H Jam D Tanggal M Bulan N Menit S Detik Y Dari dalam tahun W Hari dalam minggu WW Minggu YYYY tahun 4.7. Tabel interval Datediff Contoh Program 4.3. Contoh Form dengan Layout sebagai berikut Ketentuan : Pada Pilihan Jenis Pelanggan Berisi : Umum, Perumahan, Industri Jenis Pelanggan Biaya Abodemen Tarif M3 Air 00 - 25 26 - 75 76 - …. Umum 3000 100 200 300 Perumahan 5000 250 475 600 Industri 15000 350 650 900 Listing Program Option Explicit Dim banyakpakai, biaya1, biaya2, biaya3 As Single 'deklarasi variabel umum Dim abodemen, jmlbayar, denda, biayapakai, totalbayar As Single Private Sub Proses() 'prosedur Proses biaya1 = 0 biaya2 = 0 biaya3 = 0 jmlbayar = 0 denda = 0 totalbayar = 0 banyakpakai = Val(Text4.Text) Select Case Combo1.Text Case "Umum" abodemen = 3000 Case "Perumahan" abodemen = 5000 Case "Perkantoran" abodemen = 15000 End Select If Combo1.Text = "Umum" Then Select Case banyakpakai Case 0 To 25 biaya1 = biayapakai * 100 biaya2 = 0 biaya3 = 0 Case 26 To 75 biaya1 = 25 * 100 biaya2 = (75 - 25) * 200 biaya3 = 0 Case Is >= 76
biaya1 = 25 * 100
biaya2 = (75 - 25) * 200
biaya3 = (banyakpakai - 75) * 300
End Select
ElseIf Combo1.Text = "Perumahan" Then
Select Case banyakpakai
Case 0 To 25
biaya1 = biayapakai * 250
biaya2 = 0
biaya3 = 0
Case 26 To 75
biaya1 = 25 * 250
biaya2 = (75 - 25) * 475
biaya3 = 0
Case Is >= 76
biaya1 = 25 * 250
biaya2 = (75 - 25) * 475
biaya3 = (banyakpakai - 75) * 600
End Select
ElseIf Combo1.Text = "Industri" Then
Select Case banyakpakai
Case 0 To 25
biaya1 = biayapakai * 350
biaya2 = 0
biaya3 = 0
Case 26 To 75
biaya1 = 25 * 350
biaya2 = (75 - 25) * 650
biaya3 = 0
Case Is >= 76
biaya1 = 25 * 350
biaya2 = (75 - 25) * 650
biaya3 = (banyakpakai - 75) * 900
End Select
End If
jmlbayar = biaya1 + biaya2 + biaya3 + abodemen
If DatePart("d", DTPicker1.Value) > 10 Then
denda = jmlbayar * 0.15
ElseIf DatePart("d", DTPicker1.Value) <= 10 Then
denda = 0
totalbayar = jmlbayar
End If
Text5.Text = Format(abodemen, "###,###")
Text6.Text = Format(biaya1, "#,###,###")
Text7.Text = Format(biaya2, "#,###,###")
Text8.Text = Format(biaya3, "#,###,###")
Text9.Text = Format(jmlbayar, "#,###,###")
Text10.Text = Format(denda, "###,###")
Text11.Text = Format(totalbayar, "#,###,###")
End Sub

Private Sub Combo1_Click()
Proses
End Sub

Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Combo1.Text = ""
Text1.SetFocus

Text5.Enabled = False
Text6.Enabled = False
Text7.Enabled = False
Text8.Enabled = False
Text9.Enabled = False
Text10.Enabled = False
Text11.Enabled = False
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub DTPicker1_Change()
Proses
End Sub

Private Sub Form_Load()
DTPicker1.Value = Date 'mengisi object dtpicker dengan tanggal aktif
End Sub

Private Sub Text4_Change()
Proses
End Sub

Bahan dasar program

DASAR PEMROGRAMAN
Oleh :
Devi Febrianty
Rahmi Nur Shofa
TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS SILIWANGI
Jl. Siliwangi No. 24 Tasikmalaya Kotak Pos 164 Tlp. (0265) 323537
E-Mail : informatika@ft.unsil.ac.id ; URL : http://www.unsil.ac.id
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 1
1. KONSEP DASAR PEMROGRAMAN
1.1 Pengertian Program dan Pemrograman
Komputer merupakan alat bantu penyelesaian masalah di berbagai bidang:
Pendidikan, Perbankan, Industri, Penerbangan, Kedokteran, Permainan, dll
Tetapi, permasalahan tidak dapat disodorkan begitu saja ke depan komputer, karena
sebenarnya mesin komputer hanyalah benda mati yang tidak bisa apa-apa. Manusia harus
merumuskan langkah-langkah pemecahan masalah dalam runtunan instruksi yang dapat
dilaksanakan oleh komputer yang disebut program.
Program merupakan runtunan atau himpunan instruksi(perintah) tertulis yang ditanamkan
ke dalam komputer untuk menyelesaikan masalah.
Pemrograman merupakan pengerjaan penulisan instruksi oleh programmer untuk
menyelesaikan suatu masalah.
Tahapan Penyelesaian Masalah oleh Komputer
1.2 Bahasa Pemrograman
Program harus dibuat dalam bahasa yang dimengerti oleh komputer yang disebut
bahasa pemrograman supaya instruksi yang ditulis oleh programmer dapat dilaksanakan
oleh komputer .
1. Bahasa Mesin (Mnemonic Code)
Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat
diinterpretasikan langsung oleh mesin komputer. Bahasa ini merupakan bahasa level
terendah dan berupa kode numerik 0 dan 1.
Keuntungan : Eksekusi cepat
Kerugian : Sangat sulit dipelajari manusia
2. Bahasa Assembly
Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa mesin
memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk penjumlahan,
MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain.
Kelebihan : Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil
Kekurangan : Tetap sulit dipelajari, program sangat panjang
3. Bahasa Tingkat Tinggi (High Level Language)
Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih tinggi daripada bahasa
assembly. Bahasa ini lebih dekat dengan bahasa manusia dan lebih dipahami manusia.
Contoh: Pascal, Basic, Cobol, C, C++, Java, dll.
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 2
Keuntungan :
- Mudah dipelajari
- Mendekati permasalahan yang akan dipecahkan
- Kode program pendek
Kerugian : Eksekusi lambat karena ada proses pengubahan perintah dalam bahasa
ini ke dalam bahasa mesin oleh Translator(Penterjemah)
Bahasa generasi ini disebut juga bahasa generasi ke-3 (3rd Generation Programming
Language).
4. Bahasa yang berorientasi pada masalah spesifik
Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu
masalah tertentu. Misalnya SQL untuk database. Bahasa ini juga masuk ke bahasa tingkat
tinggi. Bahasa ini disebut juga bahasa generasi ke-4 (4th Generation Programmming
Language).
Translator(Penterjemah)
Translator berfungsi untuk menterjemahkan program yang ditulis dalam bahasa
pemrograman tingkat tinggi ke dalam bahasa mesin. Translator dapat dibedakan menjadi :
– Interpreter : menterjemahkan dan mengeksekusi baris per baris instruksi. Contoh
bahasa Basic.
– Compiler : mengeksekusi program setelah seluruh instruksi diterjemahkan.
Contoh bahasa Pascal, C, Ada ,C++, dll.
1.3 Belajar memprogram dan Belajar bahasa pemrograman
· Belajar memprogram adalah belajar tentang strategi, metodologi, dan sistematika
pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang
mudah dibaca dan dipahami.
Sifat : Pemahaman persoalan, analisis, sintesis
Titik Berat : Designing Program
· Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk
membuat program yang ditulis dalam bahasa itu saja.
Sifat : Keterampilan
Titik Berat : Coding Program
Produk yang dihasilkan oleh seorang pemrogram adalah program dengan rancangan
yang baik (metodologis, sistematis), yang dapat dieksekusi oleh mesin, berfungsi dengan
benar, sanggup melayani segala kemungkinan masukan, dan didukung dengan adanya
dokumentasi.
Pengajaran pemrograman titik beratnya adalah membentuk seorang perancang
”designer” program, sedangkan pengajaran bahasa pemrograman titik beratnya adalah
membentuk seorang ”coder”(juru kode). Pada prakteknya, suatu rancangan harus dapat
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 3
dikode untuk dieksekusi dengan mesin. Oleh karena itu, belajar pemrograman dan belajar
bahasa pemrograman saling komplementer, tidak mungkin dipisahkan satu sama lain
Tetapi, karena banyak bahasa pemrograman yang dapat digunakan dan
pemilihannya akan sangat tergantung kepada masalah yang dipecahkan, maka belajar
memprogram menjadi lebih penting daripada belajar bahasa pemrograman. Keduanya
diperlukan tetapi dalam tingkat yang berbeda.
1.4 Langkah-langkah pemrograman Komputer :
1. Mendefinisikan masalah : menentukan masalahnya seperti apa, apa saja yang harus
dipecahkan dengan komputer, apa masukannya, dan bagaimana keluarannya
2. Menentukan solusi : mencari jalan bagaimana masalah tersebut diselesaikan. Jika
masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modulmodul
kecil agar lebih mudah diselesaikan.
3. Memilih algoritma : pilihlah algoritma yang benar-benar sesuai dan efisien untuk
permasalahan tersebut
4. Menulis Program : menuliskan program dalam salah satu bahasa pemrograman
Pilihlah bahasa yang sesuai dengan permasalahan, mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas
tinggi dengan perangkat keras dan platform lainnya.
5. Menguji program : Menentukan apakah program berhasil dikompilasi dengan baik ?
apakah program dapat menghasilkan keluaran yang diinginkan?
Langkah keempat dan kelima bisa dilakukan berulang-ulang sampai program diyakini
benar-benar sesuai dengan yang diharapkan
6. Menulis dokumentasi : Menulis dokumentasi sangat penting agar pada suatu saat jika
kita akan melakukan perubahan atau membaca source code yang sudah kita tulis dapat
kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan
menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa,
variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada
suatu prosedur dan fungsi.
7. Merawat program : Program yang sudah jadi perlu dirawat untuk mencegah
munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna
membutuhkan fasilitas baru yang dulu tidak ada.
Contoh Permasalahan : Menghitung dan menampilkan Luas Persegi Panjang
Tahapan penyelesaian :
1. Mendefinisikan Masalah
· Masukan / Input : panjang, lebar
· Keluaran / Output : Luas
2. Menentukan Solusi + Memilih Algoritma
Contoh urutan solusi :
· Baca input panjang
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 4
· Baca input lebar
· Hitung Luas = panjang x lebar
· Tampilkan Luas
3. Menulis Program
Contoh penulisan program dalam Bahasa Pascal dan Hasilnya
Program Contoh Tampilan di layar
Program Luas_Persegi_Panjang;
Var
panjang, lebar, Luas : integer;
Begin
Write(’Panjang : ’);
Readln(panjang);
Write(’Lebar : ’);
Readln(lebar);
Luas := panjang * lebar;
Write(’Luas persegi Panjang = ’,
Luas);
Readln;
End.
Panjang : 20
Lebar : 6
Luas persegi Panjang = 120
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 5
2. KONSEP DASAR ALGORITMA
2.1 Pengertian Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis dan tidak tergantung pada bahasa pemrograman tertentu.
Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam
Algoritma harus logis (masuk akal dan mengikuti suatu urutan tertentu, tidak boleh
melompat-lompat) serta harus dapat ditentukan bernilai salah atau benar.
Perbedaan Algoritma dan Program
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
Jadi program adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Tahapan Pelaksanaan algoritma oleh komputer
Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan
berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma
yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat
dan tidak efisien.
2.2 Algoritma untuk memecahkan permasalahan sehari-hari
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 6
Contoh 1 : Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun
tidak pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya jadi dan rasanya enak.
Contoh 2 : Algoritma TUKAR ISI BEJANA
Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B
berisi larutan berwarna biru. Pertukarkan isi kedua bejana itu sedemikian sehingga bejana
A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi Algoritma 1:
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana B
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A.
· Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar.
Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua
larutan tersebut.
· Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai
tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk
menghasilkan pertukaran yang benar adalah sebagai berikut :
Deskripsi Algoritma 2:
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana C.
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A.
Aksi 3 : Tuangkan larutan dari bejana C ke dalam bejana B.
Contoh 3 : Ibu Tati mengupas kentang untuk makan malam
Sub masalah : 1. Apakah kentangnya harus dibeli dulu atau sudah di dapur?
2. Apakah pisau sudah siap?
3. Berapa jumlah kentang yang dikupas?
Maka kita harus membatasi dengan jelas keadaan awal dan keadaan akhirnya.
Keadaan awal dan keadaan akhir algoritma dapat dijadikan acuan bagi pemrogram dalam
merancang sebuah algoritma
Initial State(T0) : Kentang sudah ada di kantong plastik, yang ditaruh di lemari di
dapur dimana Ibu Tati akan mengupasnya, pisau ada di rak.
Final State(T1) : 100 Kentang dalam keadaan terkupas siap untuk dimasak dan
kantong kentangnya harus dikembalikan ke lemari lagi jika masih ada
kentangnya
Deskripsi Algoritma 1
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Ibu Tati mengupas kentang
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 7
Aksi 4 : Ibu Tati mengembalikan kantong kentang ke dalam lemari
· Deskripsi Algoritma di atas masih belum memenuhi Final State dimana kentang yang
sudah dikupas ada 100 buah dan kantong kentang harus dikembalikan ke lemari jika
masih ada kentangnya. Pada algoritma tersebut kentang yang dikupas hanya 1 dan
Aksi 4 akan tetap dilaksanakan walaupun kantong kentang sudah kosong
· Supaya kentang yang sudah terkupas ada 100 maka perlu dilakukan proses
PENGULANGAN pengupasan kentang sebanyak 100 kali. Dan supaya Ibu Tati
hanya mengembalikan kantong kentang ke lemari hanya jika masih ada isinya, maka
perlu ada PEMILIHAN berdasarkan kondisi isi kantong kentang. Maka algoritma
untuk mencapai Final State yang benar adalah sebagai berikut :
Deskripsi Algoritma 2
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari dan
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Selama kentang terkupas < 100 maka · Kupas 1 kentang Aksi 4 : Lihat isi kantong · Kantong Kosong à buang · Kantong Tidak kosong à Kembalikan kantong ke lemari Ciri penting algoritma: · Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. · Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). · Algoritma memiliki nol atau lebih masukan (input). · Algoritma memiliki nol atau lebih keluaran (output). · Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang efisien). 2.3 Struktur Dasar Algoritma Langkah-langkah penyelesaian masalah bisa berupa : a. Runtunan (sequence)) Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan berurutan sesuai aturan penulisannya. Urutan instruksi menentukan keadaan akhir algoritma, jika urutannya diubah maka hasil akhirnya mungkin akan berubah. Urutan instruksi menunjukkan cara berfikir penyusun algoritma dalam menyelesaikan masalah Runtunan Instruksi : Instruksi 1 Instruksi 2 Instruksi 3 Contoh : Algoritma Tukar isi Bejana Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 8 Runtunan instruksi : 1. Tuangkan larutan dari bejana A ke dalam bejana C 2. Tuangkan larutan dari bejana B ke dalam bejana A 3. Tuangkan larutan dari bejana C ke dalam bejana B Hasil akhir : Bejana A berisi larutan dari bejana B, bejana B berisi larutan dari bejana A Jika runtunan instruksi diubah maka hasilnya berubah b. Pemilihan (selection) Adakalanya sebuah instruksi dikerjakan jika sebuah kondisi tertentu terpenuhi Struktur umum : If kondisi then Aksi atau If kondisi then Aksi 1 Else Aksi 2 Contoh : If Amir memperoleh juara kelas then Ayah akan membelikannya hadiah If Jalan Dago macet then Ambil alternative Jalan Dipati Ukur If Kantong Kentang kosong then Buang Else Kembalikan kantong kentang ke lemari Endif c. Pengulangan (repetition) Komputer tidak pernah bosen dan lelah jika diminta untuk mengerjakan instruksi secara berulang-ulang. Contoh : · Menulis kalimat ”Saya harus lebih giat belajar” sebanyak 1000 kali Ulangi : - Tulis kalimat ” Saya harus lebih giat belajar” Sampai jumlah_kalimat = 1000 · Mengupas 100 buah kentang Selama kentang terkupas < 100 maka - Kupas 1 kentang 3. ATURAN PENULISAN NOTASI ALGORITMA Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 9 Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya melainkan bersifat umum tetapi notasi-notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi algoritma dapat berupa : – Uraian kalimat deskriptif (narasi) Instruksi pada algoritma dapat dituliskan dalam bahasa sehari-hari (B.Indonesia, B.Inggris, dsb). Tidak aturan yang baku untuk menuliskan algoritma dalam bentuk notasi ini, tetapi penulisan algoritma menggunakan notasi ini dapat menimbulkan ambiguitas. – Bagan alir (flow chart). Instruksi-instruksi pada Algoritma digambarkan secara grafis(menghasilkan sebuah bagan) menggunakan simbol-simbol tertentu dengan aturan sebagai berikut : Simbol Keterangan Tanda Start(Mulai) atau Tanda End (Selesai) Proses Operasi Input atau Output Percabangan / Pengambilan Keputusan Aliran Data Pembuatan flowchart akan sulit dilakukan untuk program yang sangat kompleks – Pseudo-code Penulisan teks algoritma dengan Pseudo-code menggunakan notasi-notasi tertentu yang mendekati bahasa pemrograman sehingga lebih mudah ditranslasikan ke dalam bahasa pemrograman. Aturan Penulisan Teks Algoritma : Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 10 Judul Algoritma { Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut. } Kamus (Deklarasi Algoritma) { Bagian untuk mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama konstanta, variabel, tipe, prosedur dan fungsi. } Deskripsi Algoritma { Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya } Contoh 1 : Algoritma Luas_Lingkaran Menghitung dan menampilkan Luas Lingkaran dengan masukan jari-jari lingkaran Contoh Penulisan Algoritma : – Uraian kalimat deskriptif (narasi) DESKRIPSI : o Baca jari-jari lingkaran (R) o Phi ß 3.14 o Luas ß Phi x R x R o Tulis Luas – Flowchart Mulai Selesai Phi 3.14 Luas Phi * R * R Baca R Tulis Luas – Pseudo-code Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 11 Algoritma Luas_Lingkaran {Menerima masukan jari-jari lingkaran(R), menghitung Luasnya dengan rumus 3.14 * R * R, kemudian menuliskan hasilnya} Kamus const Phi : real = 3.14 R, Luas : real Deskripsi read(R) Luas ß Phi * R * R write(Luas) Contoh 2 : Algoritma Kelulusan_Mhs Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus. – Uraian kalimat deskriptif (narasi) DESKRIPSI : o baca nama dan nilai mahasiswa. o jika nilai >= 60 maka keterangan = lulus
o tetapi jika nilai < 60 maka keterangan = tidak lulus. o tulis nama dan keterangan – Flow chart – Pseudo-code Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 12 Algoritma Kelulusan_Mhs {Menerima masukan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus} Kamus Nama : string Nilai : integer Keterangan : string Deskripsi read (nama, nilai) if nilai >= 60 then
keterangan ß ‘lulus’
else
keterangan ß ‘tidak lulus’
endif
write(nama, keterangan)
Contoh 3 : Algoritma Cetak_Frase
Diberikan sebuah angka, kemudian tuliskan frase ‘Dasar Pemrograman’ sebanyak angka
tersebut
– Uraian kalimat deskriptif (narasi)
DESKRIPSI :
o baca angka
o selama jumlah_frase_tercetak < angka - tulis ’Dasar Pemrograman’ o tulis nama dan keterangan – Flow chart Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 13 – Pseudo-code Algoritma Cetak_Frase {Menerima masukan sebuah angka, kemudian tuliskan frase ‘Dasar Pemrograman’ sebanyak angka tersebut } Kamus angka : integer i : integer Deskripsi read (angka) i ß 0 while i < angka do write(‘Dasar Pemrograman’) i ß i + 1 endwhile 4. TIPE DATA, NAMA, NILAI Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 14 4.1 TIPE Pada umumnya, program komputer bekerja dengan memanipulasi objek(data) di dalam memori. Objek(data) yang akan diprogram bermacam-macam jenis atau tipenya misalnya nilai numerik(angka), karakter(huruf), kumpulan karakter, dll. Suatu tipe menyatakan jenis data yang akan dimanipulasi dalam program, gunanya untuk mendefinisikan objek yang akan diprogram. Suatu tipe diacu dari namanya. Nilainilai yang dicakup oleh tipe tersebut dinyatakan dalam domain nilai. Tipe data dikelompokkan menjadi tipe dasar dan tipe bentukan 4.1.1 Tipe dasar Tipe yang dapat langsung dipakai(angka-angka atau karakter) karena sudah didefinisikan sebelumnya oleh pemroses bahasa 1. Bilangan Bulat Bilangan yang tidak mengandung pecahan desimal. · Nama Tipe : Integer · Domain Nilai : Secara teoritis tak terbatas dari -∞ s.d +∞. Pada algoritma dapat dibatasi tergantung kebutuhan untuk objek, misalnya untuk jam [0..23]. Dalam implementasinya pada bahasa pemrograman, tipe integer punya rentang nilai terbatas untuk menghemat memory. · Contoh nilai : 300, 0, -1000, 113010038, -24 · Contoh objek : Nim, Jam, Menit, Detik 2. Bilangan Riil Bilangan yang mengandung pecahan desimal · Nama Tipe : Real · Domain Nilai : Secara teoritis tak terbatas dari -∞ s.d +∞. Ditulis dengan titik desimal · Contoh nilai : 2.8 , -0.39, 4.24 , 57.567, -102.00 · Contoh objek : Nilai ujian 3. Bilangan Logika · Nama Tipe : Boolean · Domain Nilai : Benar(True--1) atau Salah(False--0) · Konstanta : True dan False 4. Karakter Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 15 Karakter tunggal yang diapit oleh tanda petik satu. · Nama Tipe : char · Domain Nilai : - Huruf alfabet (’a’..’z’ dan ’A’..’Z’) - Tanda baca (’!’, ’?’ , ’,’ , ’.’) - Angka ’0’ , ’1’ ,..., ’9’ - Karakter khas seperti ’#’ , ’&’ , ’%’ , ’@’ , ’*’ , dll · Contoh nilai : ’l’ , ’p’ , ’+’ , ’6’, ’A’ · Contoh objek : Jenis Kelamin, Indeks nilai 4.1.2 Tipe bentukan Tipe yang dibentuk(dan diberi nama) dari tipe dasar atau dari tipe lain yang sudah dikenal, bahkan dapatt didefinisikan sendiri oleh pemrogram. Macam tipe bentukan : 1. String(kumpulan karakter) Deretan karakter dengan panjang tertentu. · Nama Tipe : String · Domain Nilai : Satu atau lebih karakter yang diapit oleh tanda petik tunggal · Contoh nilai : ’Apa kabar’,’Teknik Informatika’,’A234’, ’Ramayana’, ’123’ · Contoh objek : Nama, Alamat 2. Tipe bentukan dari tipe data dasar atau tipe bentukan lain : Kata Kunci type Deklarasi kamus data : type nama_tipe_bentukan : tipe_data Contoh : membuat sebuah tipe data baru bernama BilBulat yang memiliki domain nilai yang sama dengan tipe integer type BilBulat : integer; 3. Record Record tersusun dari satu atau lebih field. Tiap field menyimpan data dengan tipe tertentu field 1 field 2 field 3 … field n Deklarasi kamus data : type Nama_Record : record < nama_field1 :tipe_field1, nama_field2 :tipe_field2, .... nama_fieldn : tipe_fieldn>
Contoh :
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 16
a. Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai
absis dan y adalah nilai ordinat. Kita dapat menyatakan titik sebagai record
dengan (x,y) sebagai field
x y
type Titik : record < x : real, y : real > atau
type Titik : record< x , y : real >
b. Definisi tipe terstruktur yang mewakili tanggal dalam kalender Masehi. dd
sebagai tanggal, mm sebagai bulan, yy sebagai tahun
dd mm yy
type Tanggal : record

0} >
c. NilMhs adalah tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa
untuk mata kuliah yang diambil(MK)
Nim NamaMhs KodeMK Nilai
type NilMhs : record < Nim : integer, NamaMhs : string, KodeMK : string, Nilai : char >
d. Tipe terstruktur untuk jadwal kereta api yang terdiri dari nomor kereta(NoKA),
kota asal(KotaAsal), kota tujuan(KotaTujuan), jam berangkat(JamBerangkat),
jam tiba(JamTiba)
NoKA KotaAsal KotaTujuan JamBerangkat JamTiba
type JadwalKA : record
4.2 NAMA
Nama digunakan mengidentifikasi objek dan mengacu objek tersebut.. Dalam
sebuah teks algoritmik, objek yang diberi nama bisa berupa :
- Modul program, Algoritma
- variabel
- konstanta
- type
- fungsi
- prosedur
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 17
Karena adanya bermacam-macam nama tersebut, maka dalam suatu teks algoritma
dikenal nama program, nama variabel, nama konstanta, nama fungsi, nama prosedur,
nama type.
Setiap bahasa pemrograman memiliki aturan masing-masing untuk mendefinisikan
nama(panjang maks nama, perbedaan huruf besar dan kecil) tetapi dalam algoritma
batasan pendefinisian nama tidak seketat pada bahasa pemrograman. Syarat-syarat
penggunaan sebuah nama pada algoritma:
- Pemilihan nama harus interpretatif(disesuaikan dengan objek yang diidentifikasi)
dan tidak menimbulkan kerancuan
- Nama harus unik dalam sebuah algoritma/program
- Nama tidak boleh dipisahkan oleh spasi
- Tidak case sensitive (huruf besar dan kecil tidak dibedakan)
- Tidak boleh mengandung symbol khusus
- Nama harus dideklarasikan pada bagian tertentu supaya dapat dipakai.
1. Nama Algoritma
Digunakan untuk mengidentifikasi sebuah program atau algoritma, dideklarasikan
pada bagian Judul algoritma
Contoh : Algoritma Luas_Lingkaran, Algoritma Kelulusan_Mhs
2. Nama Peubah(variabel)
Tempat penyimpan data/informasi/nilai yang isinya dapat diubah selama eksekusi
program berlangsung. Setiap variabel mempunyai tiga atribut, yaitu nama, tipe, dan nilai.
Nama variabel dan tipe datanya dideklarasikan pada bagian Kamus. Sedangkan nilai yang
disimpan dalam variabel didefinisikan pada bagian deskripsi algoritma.
Bentuk umum deklarasi variabel adalah :
nama_variabel : tipe data
Contoh :
Kamus
nama : string {variabel nama bertipe string}
nim: integer {variabel nim bertipe integer/bilangan bulat}
jns_kelamin : char {variabel jns_kelamin bertipe karakter}
rata, nilai_uts, nilai_uas, nilai_tugas : real; {variabel dengan nama rata, nilai_uts,
nilai_uas, nilai_tugas bertipe sama yaitu real}
3. Nama Tetapan(konstanta)
Tempat penyimpan data/informasi/nilai yang isinya tidak dapat diubah selama
pelaksanaan program. Nama, tipe, dan nilai Konstanta dideklarasikan pada bagian Kamus.
Untuk mendefinisikan konstanta harus memakai kata kunci const dan konstanta harus
langsung diisi dengan sebuah nilai tertentu.
Bentuk umum deklarasi konstanta adalah :
const nama_konstanta : tipe = nilai
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 18
Contoh :
Kamus
const phi : real = 3.14
const Nmaks : integer = 200
const password : string = ’abcd’
4. Nama Tipe bentukan
Nama tipe bentukan disini berarti nama tipe bentukan yang dibuat/didefinisikan oleh
perancang program. Nama tipe bentukan dideklarasikan pada bagian Kamus
Nama tipe bentukan tidak dapat langsung digunakan di dalam bagian deskripsi
algoritma, tetapi sebelumnya harus mendeklaraikan variabel yang bertipe bentukan
tersebut
Contoh :
Kamus
type Karakter : char
type Titik : record < x : real; y : real >
type Jam : record
Indeks : karakter
T : Titik
J : Jam
Dari contoh di atas telah didefinisikan tipe data baru bernama karakter dan dua buah
tipe record yang bernama Titik dan Jam. Nama karakter, Titik, dan Jam tidak bisa
langsung digunakan pada bagian Deskripsi algoritma tetapi harus mendeklarasikan
variabel baru. Pada contoh di atas dideklarasikan variabel Indeks yang bertipe karakter,
variabel T bertipe Titik dan variabel J yang bertipe Jam. Indeks, T, dan J inilah yang bisa
digunakan pada bagian deklarasi program.
5. Nama Fungsi
Bagian Judul Fungsi(nama fungsi, parameter) dideklarasikan pada bagian Kamus
Contoh :
Kamus
Function Penjumlahan(a , b : integer) à integer
{mengembalikan hasil penjumlahan antara dua bilangan}
6. Prosedur
Bagian Judul Prosedur(nama prosedur , parameter) dideklarasikan pada bagian Kamus
Contoh :
Kamus
Procedure TUKAR(input/output A , B : integer)
{mempertukarkan nilai A dan B}
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 19
Contoh-Contoh Pendefinisian/Delarasi Nama Di Dalam Bagian Kamus :
Kamus
{nama konstanta}
const phi = 3.14
const Nmaks = 200
const password = ’abcd’
{nama tipe}
type karakter : char
type Titik : record < x : real; y : real >
type Jam : record
type NilMhs : record
{nama variabel}
luasL : real
nama : string
indeks : karakter
ketemu : boolean
J : Jam
T : Titik
Nilai : NilMhs
{nama fungsi}
Function Penjumlahan(a , b : integer) à integer
{mengembalikan hasil penjumlahan antara dua bilangan}
function CARI à Boolean
{mencari nilai x,bila ketemu maka true,bila tidak maka
false}
{nama prosedur}
procedure HITUNG_TITIK_TENGAH(input P1 :Titik, input P1
:Titik, output Pt :Titik)
{menghitung nilai titik tengah dari sebuah garis dengan
ujung-ujung Px dan Py}
4.3 NILAI
Nilai/Harga adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa
konstanta yang dipakai langsung, isi yang disimpan oleh variabel atau konstanta, hasil
perhitungan suatu ekspresi, atau hasil yang dikirim suatu fungsi.
Algoritma pada dasarnya adalah proses memanipulasi nilai. Nilai dapat dimanipulasi
dengan cara : mengisi nilai ke dalam variabel, menuliskan nilai ke piranti keluaran, diacu
dari suatu nama untuk perhitungan/ekspresi
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 20
1. Pengisian Nilai
Suatu nama konstanta secara otomatis akan mempunyai harga tetap yang
terdefinisi(sudah ditentukan) pada saat nama konstanta dideklarasikan dalam kamus
sehingga nama konstanta dapat langsung digunakan dalam program. Tetapi tidak
demikian halnya dengan nama variabel. Suatu nama variabel dapat digunakan dalam
ekspresi program jika harganya telah terdefinisi. Ada dua cara untuk mengisi nama
variabel dengan harga/nilai :
· Assignment : ß
Assignment adalah instruksi untuk menyimpan harga pada suatu nama variabel.
Dengan pemberian harga ini, harga lama yang disimpan tidak lagi berlaku, yang
berlaku adalah harga paling akhir yang diberikan.
Nilai/Harga yang dimasukkan ke dalam nama variabel bisa berupa nilai tetap, nilai
dari variabel lain, atau ekspresi :
Deskripsi Algoritma
nama_var1 ß nama_var2 {harga dari nama variabel2 disalin ke nama variabel1}
nama_var ß konstanta {harga dari nama konstanta disalin ke nama variabel}
nama_var ß ekspresi {hasil perhitungan ekspresi diisikan ke nama variabel}
nama_var ß nama_fungsi {nilai yang dikembalikan fungsi diisikan ke nama variabel}
dengan syarat :
- Bagian kiri dan bagian kanan tanda assignment (ß) bertipe sama
- nama_var1 dan nama_var (bagian kiri tanda ß) harus merupakan nama variabel,
tidak boleh nama konstanta, type, fungsi, atau prosedur
- nama yang tertulis di bagian kanan tanda assigment (ß)boleh berupa nama
variabel, nama fungsi, nama konstanta
- semua nama yang dipakai dalam assignment tidak bleh berupa nama type atau
prosedur
Contoh :
Kamus
k, suhu1, suhu2, Total : integer
ketemu : boolean J : Jam
Jarak : real NamaKota : string
Deskripsi Algoritma
k ß 10
ketemu ß false
Jarak ß 34.8
NamaKota ß ’Tasikmalaya’
Suhu1 ß 40
Suhu2 ß 30
Total ß Suhu1 + Suhu2
Suhu1 ß Suhu2
Total ß k*20+14
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 21
· Pembacaan Nilai dari Piranti Masukan
Selain dengan assignment, suatu nilai dapat diisikan ke suatu nama variabel
melalui pembacaan nilai tersebut dari piranti masukan(keyboard, mouse, scanner, dsb).
Disebut ”dibaca” karena arah dari pengisian harga yaitu seakan-akan komputer
”membaca” nilai yang diberikan pengguna.
Bentuk Umum :
Deskripsi Algoritma
read(nama_variabel) {membaca sebuah nilai}
read(list nama_variabel) {membaca lebih dari satu nilai}
Contoh :
Kamus
Nim : integer
Nama : string
Indeks : char
Nilai : real
Deskripsi Algoritma
read(Nim)
read(Nama)
read(Nilai, Indeks)
2. Penulisan nilai ke piranti keluaran
Suatu nilai/harga yang disimpan dalam memori komputer harus dapat
dikomunikasikan ke dunia luar untuk diinterpretasikan oleh pemakai program. Dalam hal
ini, nilai harus dapat dituliskan ke suatu piranti keluaran, misalnya layar, printer.
Bentuk Umum :
Deskripsi Algoritma
write(nama_variabel) {menuliskan isi nama_variabel ke piranti keluaran}
write(konstanta) {menuliskan konstanta / isi nama_konstanta ke piranti keluaran}
write(ekspresi) {menuliskan harga hasil perhitungan ekspresi ke piranti keluaran }
write(list-nama) {menuliskan semua harga sesuai urutan penulisannya }
dengan syarat :
- list-nama adalah satu atau lebih nama : boleh nama variabel, nama konstanta, atau
hasil pemanggilan fungsi
- nama-nama dalam list-nama tidak boleh berupa nama type atau nama prosedur
- nama yang dituliskan sudah terdefinisi harganya. Jika nama_variabel sudah
didefinisikan dengan assignment atau instruksi read
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 22
Contoh :
Kamus
const pass : string = ’abce’
A, B : integer
Nilai : real
Deskripsi Algoritma
Nilai ß 92.7
read(A , B)
write(pass, Nilai)
write(’Teknik Informatika’)
write(100)
write(A + B)
write((A + B)/2*10)
4.4 OPERATOR DAN EKSPRESI
Operator adalah lambang-lambang yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi. Misalnya untuk perkalian, penjumlahan,
perbandingan, dll. Sedangkan ekspresi adalah suatu ”rumus perhitungan” yang terdiri dari
operan dan operator. Operan harus mempunyai harga, karena itu dapat berupa konstanta,
nama variabel(yang dipakai dalam perhitungan adalah harga yang dikandung nama
variabel), hasil pengiriman suatu fungsi, atau merupakan suatu ekspresi
Contoh Ekspresi :
a ß b + c – 2
Pada ekspresi ini, a, b, dan c merupakan nama variabel yang berperan sebagai
operand sedangkan simbol ß, + dan – merupakan operator. Dalam hal ini variabel a diisi
dengan hasil penjumlahan b dan c dikurangi 2.
Jenis –jenis operator :
1. Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan dua operand. Operand yang
dibandingkan bisa bertipe bilangan bulat, karakter, real, boolean, atau string. Ekspresi
yang menggunakan operator perbandingan akan menghasilkan nilai boolean(true atau
false).
Operator Operasi Contoh Ekpresi Hasil
= Sama dengan a := 6 = 9 a = false
≠ Tidak sama dengan a := 7 ≠ 5 a = true
< Lebih kecil dari a := 4 < 6 a = true > Lebih besar dari a := 10 > 1 a = true
≤ Lebih kecil atau sama dengan a := 8 ≤ 4 a = false
≥ Lebih besar atau sama dengan a := 3 ≥ 1 a = true
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 23
2. Operator aritmatika
Operator aritmatika hanya dapat dikenakan pada operand bertipe bilangan bulat atau
bilangan real. Ekspresi yang menggunakan operator ini pun hanya akan menghasilkan
nilai bilangan bulat atau real
Operator Operasi Hasil Contoh Ekpresi Hasil
+ Jumlah Integer/Real x ß 8 + 13
x ß 4.3 + 2
x = 21
x = 6.3
- Kurang Integer/Real x ß 15 – 2
x ß 2.1 – 1.1
x = 13
x = 1.0
* Kali Integer/Real x ß 5 * 6
x ß 2.0 * 1.1
x = 30
x = 2.2
/ Bagi Real x ß 6 / 4 x = 1.5
div Pembagian bilangan bulat integer z ß 7 div 2 z = 3
mod Sisa pembagian bilangan bulat integer z ß 7 mod 2 z = 1
^ Pangkat integer/real z ß 2 ^ 3 z = 8
3. Operator logika
Operator ini dikenakan pada operand bertipe boolean dan ekspresinya akan
menghasilkan nilai boolean(true atau false)
Operator Arti Hasil
not negasi boolean
and dan boolean
or atau boolean
xor exclusive OR boolean
Hasil operator not, and, or, dan xor untuk berbagai kombinasi kondisi
A B not A not B A and B A or B A xor B
true true false false true true false
true false false true false true true
false true true false false true true
false false true true false false false
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 24
Contoh penggunaan operator pada ekspresi :
Kamus
Gaji_Total, Gaji_Pokok, Potongan : real
HBagi,HSisa : integer
k, l, m, n: boolean;
Deskripsi
k := true;
l := false;
read(Gaji_Pokok,Potongan)
Gaji_Total ß Gaji_Pokok – Potongan
HBagi ß (5 * 7) div 3
HSisa ß (5 * 7) mod 3
m := (k or l) and l;
n := ((6 >= 8) and (9 <> 1)) or (3 < 7); write(HBagi, HSisa, Gaji_Total, m , n); Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 25 5. AKSI SEKUENSIAL Aksi sekuensial(runtunan) adalah sederetan instruksi atau aksi yang akan dilaksanakan (dieksekusi) oleh komputer berdasarkan urutan penulisannya. Jadi, jika dituliskan sebuah aksi sekuensial yang terdiri dari deretan instruksi/aksi ke 1, 2, 3, 4,..n maka setiap instruksi/aksi akan dilaksanakan secara sekuensial mulai dari yang ke-1, kemudian ke-2, ke-3, ...s/d ke-n. Program paling sederhana tentunya hanya mengandung salah satu instruksi saja. Urutan instruksi dalam algoritma sangat penting, ada aksi sekuensial yang jika diubah urutan instruksi/aksinya akan mempengaruhi hasil eksekusi program. Contoh aksi sekuensial yang berpengaruh jika diubah urutannya : Algorima Runtunan_1 Kamus p , q : integer Deskripsi p ß 15 p ß 2* p q ß p write(q) {nilai q yang dicetak = 30} Algorima Runtunan_2 Kamus p, q : integer Deskripsi p ß 15 q ß p p ß 2* p write(q) {nilai q yang dicetak = 15} Beberapa contoh aksi sekuensial : Contoh 1 : HELLO Permasalahan : Tuliskan algoritma untuk menulis ’HELLO’ ke piranti keluaran Input : - Output : ’HELLO’ Proses : menulis ’HELLO’ Algoritma Cetak_HELLO {Menulis ”HELLO” ke piranti keluaran} Kamus Deskripsi write(‘HELLO’) Mata Kuliah Dasar Pemrograman Teknik Informatika Universitas Siliwangi Tasikmalaya 26 Contoh 2 : HELLO X Permasalahan : Tuliskan algoritma untuk membaca sebuah nama, dan menulis ’HELLO’ yang diikuti dengan nama yang diketikkan ke piranti keluaran Input : nama Output : ’HELLO
Proses : menulis ’HELLO’ diikuti nama yang dibaca
Algoritma Cetak_HELLOX
{Menulis ”HELLO” berikut nama yang dibaca dari piranti masukan
ke piranti keluaran}
Kamus
nama : string
Deskripsi
read(nama)
write(‘HELLO ’,nama)
Contoh 3 : SEGITIGA
Permasalahan : Tuliskan algoritma untuk menghitung Luas Segitiga dengan membaca
harga alas (cm) dan tinggi (cm) kemudian menuliskan hasilnya ke piranti keluaran
Input : alas(alas segitiga, cm), real dan tinggi(tinggi segitiga, cm) , real
Output : Luas(Luas segitiga), real
Proses : menghitung dan menuliskan Luas Segitiga =
2
a la s x t in g g i
Algoritma Hitung_Luas_Segitiga
{Membaca alas dan tinggi, menghitung Luas=alasxtinggi/2 dan
menuliskan hasilnya }
Kamus
alas : real (panjang alas segitiga, satuan cm)
tinggi : real
Luas : real
Deskripsi
read(alas)
read(tinggi)
Luas ß alas * tinggi / 2
write(Luas)
Contoh 4 : GAJI
Permasalahan : Dibaca nama karyawan dan gaji pokok bulanannya. Buat algoritma untuk
menghitung dan menampilkan gaji bersih karyawan tersebut dengan ketentuan :
- Gaji bersih = gaji pokok + tunjangan – pajak
- Tunjangan untuk setiap pegawai sama dan tetap setiap bulannya yaitu 1.000.000
- Pajak 10% dari (gaji pokok+tunjangan)
Input : Nama dan Gaji Pokok
Output : Gaji Bersih
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 27
Proses : menghitung dan menampilkan Gaji Bersih = gaji pokok + tunjangan – pajak,
Tunjangan = 1000000 , Pajak =
10
100
x (Gaji Pokok + Tunjangan)
Algoritma_Gaji_Karyawan
{Menghitung Gaji bersih karyawan dengan membaca nama karyawan
dan gaji pokoknya. Gaji bersih = gaji pokok+tunjangan–pajak}
Kamus
const Tunjangan : real = 1000000
nama_kar : string
gaji_pokok, pajak, gaji_bersih : real
Deskripsi
read(nama_kar, gaji_pokok)
pajak ß 0.1 * (gaji_pokok + tunjangan)
gaji_bersih ß gaji_pokok + tunjangan – pajak
write(nama_kar, gaji_bersih)
Contoh 5 : TUKAR
Permasalahan : Buatlah algoritma yang membaca dua buah bilangan integer yang
ditampung dalam variabel, menukarkan harga variabel tersebut dan menuliskan hasil
pertukarannya
Input : dua bilangan integer A dan B
Output : dua bilangan integer A dan B yang telah ditukar harganya
Proses : menukarkan harga variabel antara A dan B menggunakan sebuah variabel
penampung sementara
Algoritma_TUKAR
{mempertukarkan nilai antara A dan B}
Kamus
A, B, temp : integer
Deskripsi
read(A, B)
temp ß A
A ß B
B ß temp
write(A, B)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 28
6. PEMILIHAN
Analisis kasus adalah salah satu elemen primitif pembangun algoritma. Analisis kasus
diperlukan dalam sebuah program ketika terdapat suatu instruksi yang hanya dikerjakan jika
memenuhi persyaratan atau kondisi tertentu. Contoh : pada algoritma Ibu Tati mengupas kentang
Penulisan Algoritma Yang Mengandung Analisa Kasus/Pemilihan
1. Flowchart
Permasalahan : Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama
dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka
dinyatakan tidak lulus.
– Uraian kalimat deskriptif (narasi)
DESKRIPSI :
o baca nama dan nilai mahasiswa.
o jika nilai >= 60 maka keterangan = lulus
o tetapi jika nilai < 60 maka keterangan = tidak lulus. o tulis nama dan keterangan – Flow chart 2. Pseudocode Penulisan algoritma yang mengandung analisis kasus menggunakan pseudocode terdiri dari dua struktur umum : IF-THEN dan DEPEND-ON Mendefinisikan analisis kasus adalah mendefinisikan : - kondisi boolean, berupa suatu ekspresi yang menghasilkan nilai true atau false - aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan dipenuhi. Ungkapan Kondisi dapat dihasilkan dengan operator perbandingan dan operator logika. contoh kondisi : x > 100, kar = ‘*’ , (a ≠ 0) or (b = 0) , ketemu = true, not ketemu
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 29
IF-THEN
a. Satu Kasus
if then
aksi
endif
Contoh – contoh :
a. if x > 100 then
x ß x + 1
endif
b. if (a ≠ 0) or (b = 0) then
b ß a * b
write(b)
endif
c. if (ketemu) then
if a ≤ 10 then
read(b)
endif
endif
Contoh Kasus 1 :
Algoritma HURUF_VOKAL
{mencetak pesan ”huruf vokal” bila sebuah karakter yang dibaca
merupakan huruf vokal. Asumsi huruf kecil}
Kamus
huruf : char
Deskripsi
read(huruf)
if (huruf=‘a’) or (huruf=‘i’) or (huruf=‘u’) or (huruf=‘e’) or
(huruf=‘o’) then
write(‘Huruf Vokal’)
endif
Contoh Kasus 2 :
b. Dua Kasus
if then
aksi1
else
aksi2
endif
Algoritma Bilangan_Genap
{mencetak pesan ”bilangan genap” kemudian kalikan bilangan tersebut
dengan angka 2 jika bilangan bulat yang dimasukkan dari piranti
masukan merupakan bilangan genap}
Kamus
bil : integer
Deskripsi
read(bil)
if bil mod 2 = 0 then
write(‘bilangan genap’)
write(bil*2)
endif
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 30
Contoh – contoh :
a. if a > 0 then
write(‘bilangan positif’)
else
write(‘bilangan negatif’)
endif
b. if (k > 4) and (k div 2 = 4) then
read(n)
z ß n * k
else
read(m)
z ß n / k
endif
Contoh Kasus 1 :
Algoritma Kelulusan_Mhs
{Menerima masukan nama dan nilai mahasiswa, jika nilai tersebut
lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan
lulus jika tidak maka dinyatakan tidak lulus}
Kamus
Nama : string
Nilai : integer
Keterangan : string
Deskripsi
read (nama, nilai)
if nilai >= 60 then
keterangan ß ‘lulus’
else
keterangan ß ‘tidak lulus’
endif
write(nama, keterangan)
Contoh Kasus 2 :
Algoritma Bilangan_Genap_dan_Ganjil
{Mencetak “bilangan genap” jika bilangan bulat yang dibaca
merupakan bilangan genap dan ”bilangan ganjil” jika bukan bilangan
genap}
Kamus
Bil : integer
Deskripsi
read(bil)
if (bil mod 2 = 0) then
write(’Bilangan Genap’)
else
write(’Bilangan Ganjil’)
endif
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 31
c. Banyak Kasus
if then
aksi1
else
if then
aksi2
else
if then
aksi3
endif
endif
endif
Contoh Kasus 1 :
Membaca dua buah nilai integer, jika nilai pertama lebih besar atau sama dengan nilai kedua
kerjakan nilai pertama/nilai kedua, jika nilai kedua lebih besar dari nilai pertama kerjakan nilai
kedua/nilai pertama, tetapi jika nilai kedua = 0 maka tampilkan pesan error
Algoritma WUJUD_AIR
{Menentukan hasil pembagian}
Kamus
n1, n2 : integer
hasil : real
Deskripsi
read(n1,n2)
if n2=0 then
write(‘Error’)
else
if n1≥n2 then
hasil ß n1/n2
else
hasil ß n2/n1
endif
write(hasil)
endif
DEPEND-ON
Untuk menyederhanakan pola IF-THEN-ELSE jika terdapat banyak kasus. Strukturnya :
depend on (nama)
: aksi1
: aksi2
: aksi3
.....
: aksiN
[otherwise aksiX]
Tiap langkah diperiksa kebenarannya. Jika kondisi ke-k benar maka aksi ke-k dilaksanakan. Kondisi
berikutnya tidak dipertimbangkan lagi. Jika tidak ada satupun aksi yang benar maka aksi sesudah
otherwise yang dikerjakan.
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 32
Contoh Kasus 1:
Dibaca nomor dari 1-7 untuk menunjukkan hari. Tuliskan nama hari sesuai nomor harinya
Algoritma NAMA_HARI
{Mencetak nama bulan }
Kamus
Nomor_hari : integer
Deskripsi
read(nomor_hari)
depend on (nomor_ hari)
nomor_hari=1 : write(‘Januari’)
nomor_hari =2 : write(‘Februari’)
nomor_hari =3 : write(‘Maret’)
nomor_hari =4 : write(‘April’)
nomor_hari =5 : write(‘Mei’)
nomor_hari =6 : write(‘Juni’)
nomor_hari =7 : write(‘Juli’)
otherwise write(‘Bukan nomor hari yang benar’)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 33
7. PENGULANGAN
Komputer memiliki kemampuan untuk mengerjakan suatu instrukasi (aksi) secara berulangulang
dengan performansi yang sama. Kemampuan tersebut menjadi salah satu keunggulan
komputer dibandingkan manusia karena manusia biasanya tidak menyukai tugas-tugas monoton
yang dikerjakan secara berulang-ulang (karena lelah atau bosan).
Notasi pengulangan adalah salah satu notasi dasar dalam penulisan algoritma selain
pemilihan. Terdapat beberapa macam struktur pengulangan pada algoritma dan beberapa
diantaranya yang paling banyajk digunakan antara lain struktur FOR, WHILE-DO, dan REPEATUNTIL..
Masing-masing struktur digunakan pada jenis permasalahan yang berbeda meskipun untuk
beberapa kasus sebuah struktur pengulangan dapat diganti dengan struktur pengulangan yang lain.
1. Struktur FOR
Struktur ini digunakan bila sudah diketahui berapa kali akan mengulang satu atau beberapa aksi
dalam badan pengulangan.
Bentuk Umum :
for variabel ß nilai_awal to nilai_akhir do
aksi1
aksi2
...
aksin
endfor
Catatan :
· variabel adalah nama variabel kontrol bertipe karakter atau integer yang berfungsi sebagai
pencacah pengulangan
· aksi1, aksi2, ..., aksin merupakan satu atau lebih instruksi yang dikerjakan secara berulangulang
· nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi
· nilai_awal harus lebih kecil atau sama dengan nilai_akhir
· tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
· Pengulangan akan dilakukan sebanyak nilai_akhir - nilai_awal + 1
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10
Algoritma Show_Numeric
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
for i ß 1 to 10 do
write(i)
endfor
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 34
For juga dapat digunakan pada pengulangan yang mencacah dari bilangan lebih besar ke bilangan
yang lebih kecil
Bentuk Umum :
for variabel ß nilai_awal downto nilai_akhir do
aksi1
aksi2
...
aksin
endfor
Catatan :
· variabel adalah nama variabel kontrol bertipe karakter atau integer yang berfungsi sebagai
pencacah pengulangan
· aksi1, aksi2, ..., aksin merupakan satu atau lebih instruksi yang dikerjakan secara berulangulang
· nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi
· nilai_awal harus lebih besar atau sama dengan nilai_akhir
· tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir
· Pengulangan akan dilakukan sebanyak nilai_awal - nilai_akhir + 1
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari N sampai 1 dimana N
diinpuitkan dari user
Algoritma Show_Numeric2
{ menampilkan bilangan integer dari N sampai 1}
Kamus
i, N : integer
Deskripsi
read(N)
for i ß N downto 1 do
write(i)
endfor
2. Struktur WHILE-DO (Pengulangan berdasarkan kondisi ulang)
Struktur pengulangan ini biasanya digunakan pada kasus yang belum pasti berapa kali
aksi/instruksinya akan diulang. Struktur While mirip struktur IF yang melakukan pemeriksaan
ekspresi boolean sebelum satu atau lebih aksi dikerjakan.
Bentuk Umum :
while (kondisi) do
aksi1
aksi2
...
aksin
endwhile
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 35
Catatan :
· Kondisi adalah kondisi pengulangan berupa ekspresi boolean yang dapat menghasilkan
nilai True atau False
· Aksi pada badan pengulangan dilaksanakan selema (kondisi) menghasilkan nilai True
· Pengulangan berhenti jika (kondisi) menghasilkan nilai False
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10
Algoritma Show_Numeric3
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i ß 1
while i ≤ 10 do
write(i)
i ß i + 1
endwhile
Badan pengulangan (aksi) pada struktur While-Do mungkin tidak akan pernah dilakukan
karena sebelum aksi pertama dieksekusi, dilakukan test terhadap kondisi pengulangan. Pengulangan
ini berpotensi untuk menimbulkan aksi “kosong” (tidak pernah melakukan apa-apa) jika pada test
pertama kondisi menghasilkan nilai False
Contoh :
Kamus
f : boolean
Deskripsi
f ß true
while (not f) do
f ß not f
enwhile
3. Struktur REPEAT-UNTIL (Pengulangan berdasarkan kondisi berhenti)
Struktur ini hampir sama dengan struktur Whike dan biasanya digunakan bila jumlah
pengulangan belum dapat ditentukan saat program ditulis
Bentuk Umum :
Repeat
aksi1
aksi2
...
aksin
Until (kondisi berhenti)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 36
Catatan :
· Kondisi berhenti berupa ekspresi boolean yang dapat menghasilkan nilai True atau False
· Aksi pada badan pengulangan akan dikerjakan sampai kondisi berhenti bernilai True
· Badan pengulangan (aksi) pada struktur ini minimal dikerjakan satu kali karena pada waktu
eksekusi pengulangan yang pertama tidak dilakukan test terhadap kondisi berhenti. Test
terhadap kondisi berhenti dilakukan setelah aksi dikerjakan
Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10
Algoritma Show_Numeric4
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i ß 1
repeat
write(i)
i ß i + 1
until i > 10
Perbedaan struktur Repeat-Until dan While-Do terletak pada pengecekan kondisi. Jika
pada struktur While, kondisi dicek pada awal badan pengulangan, sedangkan pada struktur
Repeat kondisi dicek pada akhir badan pengulangan.
Perbedaan yang lain, bila struktur While mengulang pernyataan selama kondisi masih
terpenuhui (kondisi = True), struktur Repeat mengulang pernyataan selama kondisi belum
terpenuhi (kondisi = False)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 37
STUDI KASUS
1. Membuat algoritma untuk menampilkan semua bilangan faktor dari n dimana n
diinputkan oleh user
Algoritma Faktor
Kamus
n, i : integer
Deskripsi
read(n)
for i ß 1 to n do
if (n mod i = 0) then
write(i)
endif
endfor
2. Buat algoritma untuk membaca dan menghitung nilai mahasiswa kemudian
menghitung nilai rata-rata dari nilai mahasiswa tersebut. Proses pembacaan dan
perhitungan dilakukan sampai user tidak ingin menginputkan lagi
Algoritma Rerata_Nilai_Mahasiswa
Kamus
n : integer
jawab : char
nilai, jumlah, rata : real
Deskripsi
jumlah ß 0
n ß 0
repeat
read(nilai)
jumlah ß jumlah + nilai
n ß n + 1
write(‘Apakah anda ingin input data lagi (y/t) ? ’)
read(jawab)
until (jawab = ‘T’) or (jawab = ‘t’)
rata ß jumlah / n
write(rata)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 38
8. RECORD
Untuk merepresentasikan sebuah objek, sering tipe data dasar seperti integer, real,
boolean, char, tidak dapat memenuhinya. Oleh karena itu, dibentuklah tipe bentukan yang
merupakan gabungan dari beberapa tipe data dasar atau dari tipe bentukan lainnya. Salah
satu tipe bentukan tersebut adalah record.
Record adalah salah satu tipe data terstruktur(structured ata type) bentukan yang setiap
recordnya terdiri dari beberapa elemen yang disebut field. Setiap field menggambarkan
informasi tertentu dan tipe data pada masing-masing field dapat berbeda-beda namun sudah
dikenal baik itu tipe dasar atau tipe bentukan lainnya.
Ilustrasi sebuah record
Sebagai contoh, di dalam matematika untuk menggambarkan sebuah titik pada
diagram kartesian digunakan dua bilangan integer atau real yaitu untuk menunjukkan
koordinat titik yang ditunjuk pada sumbu x dan sumbu y. Untuk merepresentasikan
tanggal juga digunakan tipe bentukan yang terdiri dari hari, bulan, dan tahum yang
masing-masing bertipe integer. Data pegawai juga terdiri dari beberapa elemen seperti
nama, tanggal lahir, dan alamat. Untuk menjawab semua kebutuhan pada beberapa contoh
tersebut, dibuatlah tipe bentukan yang disebut record.
DEKLARASI RECORD
Seperti halnya tipe data lain, tipe data record juga harus dideklarasikan terlebih
dahulu di bagian kamus jika kita ingin menggunakan sebuah variabel yang bertipe record
pada bagian deskripsi algoritmanya. Deklarasi record pada algoritma adalah sebagai
berikut :
type nama_record : record < nama_field1 : tipe_field1, nama_field2 : tipe_field2 ..... nama_fieldn : tipe_fieldn >
Contoh 1 : Type Titik {menyatakan absis dan ordinat pada diagram kartesian}
Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai absis dan y
adalah nilai ordinat. Kita dapat menyatakan titik sebagai record dengan (x,y) sebagai field
x y
type Titik : record < x : real, {absis} y : real {ordinat} >
Jika dideklarasikan sebuah variabel T sebagai berikut :
T : Titik {artinya : mendeklarasikan variabel T bertipe Titik}
field 1 field 2 field 3 … field n
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 39
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada T yang telah
terdefinisi adalah :
T.x dan T.y
Contoh :
Kamus
type Titik : record < x : real, y : real >
T : Titik
Deskripsi
T.x ß 4.5
T.y ß -2.0
read(T.x , T.y)
write(T.x , T.y)
Contoh 2 : Type Tanggal{menyatakan tanggal, bulan, dan tahun dalam kalender Masehi}
Tipe tanggal merepresentasikan tanggal pada kalender Masehi dalam notasi dd–mm–yy
dimana dd sebagai tanggal bernilai [1..31], mm sebagai bulan bernilai [1..12], dan yy
sebagai tahun bernilai [>0]
dd mm yy
type Tanggal : record
0]
>
Jika dideklarasikan sebuah variabel TGL sebagai berikut :
TGL : Tanggal {artinya : mendeklarasikan variabel TGL bertipe Tanggal}
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada TGL yang telah
terdefinisi adalah :
TGL.dd , TGL.mm, dan dan TGL.yy
Contoh :
Kamus
type Tanggal : record < dd : integer[1..31], mm : integer[1..12], yy : integer[>0]
>
TGL : Tanggal
Deskripsi
TGL.dd ß 20
TGL.mm ß 2
TGL.yy ß 1987
read(TGL.dd, TGL.mm, TGL.yy)
write(TGL.dd, TGL.mm, TGL.yy)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 40
Contoh 3 : Type Waktu{menyatakan jam, menit, dan detik }
Tipe waktu merepresentasikan WAKTU dalam notasi hh:mm:ss dimana hh sebagai jam
bernilai [0..23], mm sebagai menit bernilai [0..59], dan ss sebagai detik bernilai [0..59]
hh mm ss
type Waktu : record < hh : integer[0..23], mm : integer[0..59], ss : integer[0..59] >
Jika dideklarasikan sebuah variabel W sebagai berikut :
W : Waktu {artinya : mendeklarasikan variabel W bertipe Waktu}
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada W yang telah
terdefinisi adalah :
W.hh , W.mm, dan dan W.ss
Contoh :
Kamus
type Waktu : record < hh : integer[0..23], mm : integer[0..59], ss : integer[0..59] >
W : Waktu
Deskripsi
W.hh ß 10
W.mm ß 30
W.ss ß 50
read(W.hh, W.mm, W.ss)
write(W.hh, W.mm, W.ss)
Contoh 4 : Record untuk pengolahan data nilai mahasiswa
Tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa untuk mata kuliah yang
diambil(MK) terdiri dari Nim, Nama, Kode MK dan Nilai
Nim NamaMhs KodeMK Nilai
type NilaiMhs : record < Nim : integer, NamaMhs : string, KodeMK : string, Nilai : char >
Jika dideklarasikan sebuah variabel M sebagai berikut :
M : NilaiMhs {artinya : mendeklarasikan variabel M bertipe NilaiMhs}
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada W yang telah
terdefinisi adalah :
M.Nim, M.NamaMhs, M.KodeMK, dan M.Nilai
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 41
Contoh :
Kamus
type NilaiMhs : record < Nim : integer, NamaMhs : string, KodeMK : string, Nilai : char >
M : NilaiMhs
Deskripsi
M.Nim ß 077006187
M.NamaMhs ß ’Arjuna’
M.KodeMK ß ’MKK1107’
M.Nilai ß ’B’
read(M.Nim, M.NamaMhs, M.KodeMK, M.Nilai)
write(M.Nim, M.NamaMhs, M.KodeMK, M.Nilai)
LATIHAN
1. Tentukan baris instruksi yang salah pada algoritma di bawah ini!
Algoritma Contoh_Type
Kamus
type MyPoint : record
P : integer
R : MyPoint
Deskripsi
{1} read(MyPoint)
{2} read(R)
{3} read(P)
{4} write(H.x , H.y)
{5} R ß R + 5
{6} R.x ß R.x + 5
{7} write(MyPoint)
{8} write(R.x, R.y)
2. Deklarasikan tipe Data_Karyawan yang terdiri dari ID, Nama Karyawan, Golongan,
dan Gaji Pokok. Berikutnya buat algoritma untuk menerima masukan 1 buah data
Karyawan dan menampilkannya!
3. Buat algoritma yang membaca dua waktu (jam, menit, dan detik) dan menghitung
selisih kedua waktu tersebut dalam detik kemudian menampilkannya!
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 42
9. ARRAY
Array merupakan salah satu tipe data terstruktur(structured data type) yang berguna
sebagai sebuah tempat penyimpanan elemen data / nilai yang bertipe sama.
Penggunaannya sama seperti variabel(untuk menyimpan nilai) tetapi variabel hanya dapat
menyimpan sebuah nilai sedangkan pada array data yang diolah bisa beberapa nilai bertipe
sama.
Struktur data array dipakai untuk merepresentasikan sekumpulan informasi yang
bertipe sama dan disimpan dengan urutan yang sesuai dengan definisi indeks secara
kontigu dalam memeori komputer. Oleh karena itu indeks harus suatu tipe data yang
mempunyai keterurutan seperti tipe integer atau karakter.
Bentuk array sama seperti tabel sehingga array seringkali juga disebut tabel. Misalnya
tabel untuk menyimpan data nilai 100 buah
TabNilai
index nilai
1 60
2 70
3 100
4 80
5 65
..... .....
100 89
Sebuah array harus diberi nama, supaya mudah diakses atau diacu. Setiap
elemen/bagian array harus diberi alamat supaya dapat dibedakan dengan elemen lainnya
dan mudah dalam pencarian. Indeks digunakan sebagai alamat elemen pada array.
Deklarasi Array
Supaya sebuah array dapat diisi, arraynya harus dibuat dulu atau dipesan tempatnya
(berapa banyak data yang akan dimasukkan ke dalam array) dengan cara dideklarasikan di
bagian kamus. Jumlah elemen array tidak dapat diubah selama pelaksanaan program
Bentuk umum deklarasi array :
nama_array : array [range_index] of tipe_elemen
contoh :
TabNilai : array [1..100] of real
Frekuensi : array [‘a’..’z’] of integer
NamaKota : array [1..20] of string
Tipe_elemen menunjukkan tipe data dari elemen tabel, semua isi elemen tabel
bertipe sama. Range index bisa berupa integer atau character dan harus menaik.
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 43
Setelah sebuah array dideklarasikan, akan disediakan tempat di memori sebanyak
jumlah elemen yang dipesan. Memori adalah tempat untuk menyimpan data yang bersifat
sementara sedangkan harddisk untuk menyimpan data yang bersifat permanen. Memori
juga memiliki alamat yang dapat diakses jika dibutuhkan.
Operasi Terhadap Array
Operasi atau manipulasi terhadap array hanya dapat dilakukan terhadap satu
elemennya yang ditunjukkan oleh indeks.
Untuk mengisi atau mengambil data/nilai dari array :
Nama_Array[alamat_index] ç nilai
write(Nama_Array[alamat_index])
nama_variabel ç Nama_Array[alamat_index]
Contoh 1 : Membuat dan mengisi array huruf
ArrHuruf
1 ‘A’
2 ‘N’
3 ‘G’
4 ‘S’
5 ‘A’
Kamus
const N = 5
ArrHuruf : array [1..N] of char
Deskripsi
ArrHuruf[1] ç ‘A’
ArrHuruf[2] ç ‘N’
ArrHuruf[3] ç ‘G’
ArrHuruf[4] ç ‘S’
ArrHuruf[5] ç ‘A’
write(ArrHuruf[3])
PEMROSESAN ARRAY
Pemrosesan terhadap Array berarti memproses elemen mulai dari elemen pertama
(elemen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai elemen
terakhir dicapai). Pemrosesan terhadap elemen array menggunakan bentuk pengulangan
sebagai berikut :
for i ç index_awal to index_akhir do
Proses(Nama_Array[i])
Endfor
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 44
1. Pengisian elemen array dengan nilai yang dibaca dari piranti masukan
Algoritma Tabel1
Kamus
MyTab : array[1..50] of integer
n,I : integer
Agoritma
read(n)
for i ç 1 to n do
read(MyTab[i])
endfor
2. Penulisan elemen array
Algoritma Tabel
Kamus
MyTab : array[1..50] of integer
n,i : integer
Agoritma
read(n)
for i ç 1 to n do
read(MyTab[i])
endfor
for i ç 1 to n do
write (MyTab[i])
endfor
Contoh 2 : Algoritma yang membaca sebuah array integer yang menyatakan nilai ujian,
TabNilai, mulai indeks 1 sampai n dan menghitung nilai rata-rata ujian dan
menampilkannya pada layar dimana n diinputkan oleh user
Algoritma Nilai_Mahasiswa
Kamus
const NMax = 100
TabNilai : array [1..NMax] of real
n,i : integer
rata : real
Deskripsi
read (n)
for i ß 1 to n do
read(TabNilai[i])
endfor
jumlah ß 0
for i ß 1 to n do
jumlah ß jumlah + TabNilai[i]
endfor
rata ß jumlah / n
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 45
10. PROSEDUR
Seringkali dalam membuat program besar, pemrogram perlu memecah program menjadi
beberapa subprogram yang lebih kecil. Tiap subprogram(modul) dapat dirancang oleh
pemrogram selain orang yang mengembangkan program utama. Modul yang sudah dirancang
dapat dipasang ke dalam program lain yang membutuhkan à Teknik pemrograman
modular(prosedur, routine, fungsi)
Keuntungan modularisasi :
1. Untuk aktivitas yang harus dilakukan lebih dari sekali, cukup ditulis sekali sehingga dapat
mengurangi panjang program. Contoh :
Algoritma ABCD
DEKLARASI
A, B, C, D, temp : integer
DESKRIPSI
…..
{Pertukarkan nilai A dan B}
temp ß A
A ß B
B ß temp
.....
if C > D then
{pertukarkan nilai C dan D}
temp ß C
C ß D
D ß temp
endif
…..
Procedure TUKAR(input/output P, Q : integer)
{mempertukarkan nilai P dan Q}
DEKLARASI
Temp : integer
DESKRIPSI
Temp ß P
P ß Q
Q ß Temp
Algoritma ABCD
DEKLARASI
A, B, C, D, temp : integer
Procedure TUKAR(input/output P, Q : integer)
DESKRIPSI
…..
{Pertukarkan nilai A dan B}
TUKAR(A,B) {panggil prosedur TUKAR}
.....
if C > D then
{pertukarkan nilai C dan D}
TUKAR(C,D) {panggil prosedur TUKAR}
endif
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 46
Ketika sebuah program dipanggil, pelaksanaan program berpindah ke dalam modul. Lalu
seluruh instruksi dalam modul dilaksanakan secara beruntun sampai akhir modul. Setelah
instruksi dalam modul dilaksanakan, pelaksanaan program kembali ke program utama.
Program Utama
MODUL1
MODUL2
Ilustrasi :
a. Prosedur URUS PASPOR (di kantor imigrasi)
- Isi formulir permintaan paspor dengan lampiran foto copy KTP, Kartu keluarga, pas
foto
- Serahkan formulir yang sudah diisi beserta biaya pembuatan paspor
- Wawancara dengan petugas imigrasi
- Terima paspor
b. Prosedur URUS VISA (di kantor kedutaan besar)
- Isi formulir permintaan visa dengan lampiran foto copy KTP, paspor, pas foto, tiket
pesawat
- Serahkan formulir yang sudah diisi beserta biaya pembuatan visa
- Terima visa
c. Prosedur BERANGKAT DARI BANDARA
- Datang ke bandara satu jam sebelum keberangkatan
- Jika sudah disuruh naik ke pesawat, tunjukkan tiket, paspor, dan visa ke petugas
- Naik ke pesawat
- Selamat jalan...
Algoritma PERGI_KE_LUAR_NEGERI
DESKRIPSI :
a. Urus Paspor
b. URUS VISA
c. BERANGKAT DARI BANDARA
2. Kemudahan menulis dan mencari kesalahan(debug) program
Kemudahan menulis berguna jika sebuah program dilaksanakan oleh satu tim
pemrogram. Masalah dipecah menjadi beberapa submasalah. Setiap submasalah ditulis ke
dalam modul individual yang dikerjakan oleh orang yang berbeda. Setelah selesai, semua
modul diintegrasikan kembali menjadi program lengkap.
M11
M12
M13
M11
M12
M13
A1
A2
A3
Call MODUL1
A4
A5
Call MODUL2
A6
A7
Call MODUL1
A8
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 47
Program modular mudah dipahami dan mudah dicari kesalahannya karena setiap modul
melakukan aktivitas spesifik
STRUKTUR PROSEDUR
1. Bagian Header à nama prosedur dan komentar yang menjelaskan spesifikasi prosedur
2. Bagian Kamus
3. Badan Prosedur (Deskripsi)
Nama prosedur sebaiknya diawali kata kerja, misalnya Hitung_Luas, Tukar, CariMaks
Contoh :
PEMANGGILAN PROSEDUR
Prosedur tidak bisa dieksekusi langsung. Instruksi pada prosedur bisa dilaksanakan jika
prosedur diakses. Prosedur diakses dengan memanggil namanya dari program pemanggil
(program utama atau modul program lain)
NAMA_PROSEDUR
Ketika nama prosedur dipanggil, kendali program berpindah ke prosedur tersebut.
Setelah semua instruksi prosedur selesai dilaksanakan, kendali program berpindah kembali ke
program pemanggil. Dalam program pemanggil, harus mendeklarasikan prototype prosedur
(header) dalam bagian deklarasi supaya dikenali oleh program pemanggil dan mengetahui cara
mengaksesnya.. Contoh :
Procedure Nama_Prosedur
{Spesifikasi prosedur, penjelasan yang berisi uraian singkat mengenai apa yang dilakukan
prosedur}
Kamus
{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal didefinisikan disini}
Deskripsi
{Badan prosedur, berisi kumpulan instruksi}
Procedure CETAK_HALLO
{mencetak string ”Hallo, Dunia”}
DEKLARASI
DESKRIPSI
write(‘Hallo, Dunia’)
Algoritma HALLO
{program utama untuk mencetak string ”Hallo, Dunia”}
DEKLARASI
Procedure CETAK_HALLO
DESKRIPSI
CETAK_HALLO {panggil prosedur CETAK_HALLO}
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 48
Algoritma HITUNG_LUAS
{program utama untuk menampilkan menu perhitungan luas segitiga, luas persegi panjang, dan
lingkaran, memilih menu, dan melakukan proses perhitungan sesuai pilihan menu}
DEKLARASI
nomor_menu : integer
Procedure HIT_LUAS_SEGITIGA
{menghitung luas segitiga dengan rumus L = ½ (alas x tinggi)}
DEKLARASI
a, t , L: real
DESKRIPSI
read(a , t)
L ß a * t / 2
write(L)
Procedure HIT_LUAS_PERSEGI_PANJANG
{menghitung luas empat persegi panjang dengan rumus L = panjang x lebar}
DEKLARASI
p, l , Luas: real
DESKRIPSI
read(p , l)
Luas ß p * l
write(‘Luas = ’, Luas)
Procedure HIT_LUAS_LINGKARAN
{menghitung luas segitiga dengan rumus L = ½ (a x t)}
DEKLARASI
const phi = 3.14
r , L: real
DESKRIPSI
read(r)
L ß phi * r * r
write(L)
DESKRIPSI
Repeat
{cetak menu ke layar}
write(‘ # Menu Pilihan Menghitung Luas # ’)
write(’ 1. Menghitung Luas Segitiga ’)
write(’ 2. Menghitung Luas Persegi Panjang ’)
write(’ 3. Menghitung Luas Lingkaran ’)
write(’ 4. Keluar Program ’)
write(’ Masukkan Pilihan Menu (1 / 2 / 3 / 4) : ’)
read(nomor_menul)
depend on ( nomor_menu)
1 : HIT_LUAS_SEGITIGA
2 : HIT_LUAS_PERSEGI_PANJANG
3 : HIT_LUAS_LINGKARAN
4 : write(’Keluar Program...Sampai Jumpa’)
until nomor_menu = 4
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 49
VARIABE GLOBAL DAN VARIABEL LOKAL
Variabel Lokal à Ditulis pada bagian Kamus prosedur dan hanya dapat digunakan oleh
prosedur
Variabel Global à Ditulis pada bagian Kamus program utama, dapat digunakan di dalam
program utama maupun prosedur.
Contoh :
Usahakan menggunakan nama global sesedikit mungkin karena dengan nama lokal, program
terlihat lebih elegan dan mempermudah mencari kesalahan program yang disebabkan oleh nama
tersebut
Procedure Hitung_Rata_Rata
{program utama untuk menghitung rata-rata N buah bilangan bulat yang dibaca dari keyboard}
DEKLARASI
x : integer {data bilangan bulat yang dibaca dari keyboard}
k : integer {pencacah banyak bilangan}
jumlah : real {jumlah seluruh bilangan}
DESKRIPSI
k ß 1
jumlah ß 0
while k ≤ N do
read(x)
jumlah ß jumlah + x
k ß k + 1
endwhile
rata ß jumlah / N
Algoritma Rata_Rata_Bilangan_Bulat
{program utama untuk menghitung rata-rata N buah bilangan bulat yang dibaca dari keyboard }
DEKLARASI
N : integer {banyaknya bilangan bulat }
rata : real {nilai rata-rata bilangan bulat}
Procedure Hitung_Rata_Rata
DESKRIPSI
read(N)
write(‘Menghitung rata-rata bilangan bulat’)
Hitung_Rata_Rata
write(’Nilai rata-rata : ’,rata)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 50
Parameter
Kebanyakan program memerlukan pertukaran informasi antara prosedur / fungsi dengan titik
dimana ia dipanggil à penggunaan parameter
Parameter adalah :
Nama- nama peubah yang dideklarasikan pada bagian header prosedur.
Parameter actual ( argument ) adalah :
Parameter yang disertakan pada waktu pemanggilan prosedur.
Parameter formal adalah :
Parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.
Tiap item data ditransfer antara parameter aktual(yang disertakan pada waktu pemanggilan)
dengan parameter formal(yang dideklarasikan di prosedur). Ketika pemanggilan, parameter
aktual menggantikan parameter formal. Tiap parameter berpasangan dengan parameter formal
yang bersesuaian. Pendeklarasian parameter di dalam prosedur bukanlah keharusan. Dengan
kata lain boleh ada atau tidak ada.
Memanggil prosedur dengan parameter :
NAMA_PROSEDUR(daftar parameter actual)
Prosedur yang baik adalah
Prosedur yang independent dari program pemanggilannya. Prosedur yang tidak
menggunakan peubah-peubah global didalam badan prosedurnya.
Jika program utama perlu mengkomunikasikan nilai peubah global ke dalam prosedur,
maka ada satu cara untuk melakukannya yaitu dengan menggunakan parameter.
Aturan penting korespondensi satu-satu antara parameter formal dengan parameter aktual :
1. Jumlah parameter aktual harus sama dengan jumlah parameter formal
2. Tipe parameter aktual harus sama dengan tipe parameter formal
3. Tiap parameter aktual harus diekspresikan dengan cara yang benar dengan parameter formal
bersesuaian, tergantung jenis parameter formal
Procedure Nama_Prosedur(daftar parameter formal)
{Spesifikasi prosedur, penjelasan yang berisi uraian singkat mengenai apa yang dilakukan
prosedur}
Kamus
{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal didefinisikan disini}
Algoritma
{Badan prosedur, berisi kumpulan instruksi}
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 51
Jenis parameter formal :
1. Parameter Masukan(input parameter) = parameter nilai(value parameter) dalam bahasa
pemrograman à nilainya berlaku sebagai masukan untuk prosedur
Nilai parameter aktual diisikan(assign) ke parameter formal bersesuaian. Nilai tersebut
digunakan dalam badan prosedur tetapi tidak dapa dikirimkan ke titik pemanggilan .
Perubahan nilai parameter dalam badan prosedur tidak mengubah nilai parameter aktual.
Nama parameter aktual boleh berbeda dengan nama parameter formal.
Contoh :
Yang tidak boleh :
SATU(c,d) SATU(a) SATU(a,c,b)
Algoritma PQR
{Contoh program utama yang memanggil prosedur SATU}
Deklarasi
a , b : integer
c , d : real
Procedure SATU (input x : integer , input y : real)
{Contoh prosedur dengan parameter formal jenis parameter masukan}
Deklarasi
Deskripsi
x ß x + 1
y ß y + 1
write(x)
write(y)
Deskripsi
SATU(4,10.5)
read(a,b,c,d)
SATU(a,c)
SATU(b,d)
SATU(a+5,c/d)
SATU(a,b)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 52
Parameter formal ß Nilai parameter aktual
2. Parameter Keluaran(output parameter) à menampung keluaran yang dihasilkan oleh
prosedur
Bila prosedur menghasilkan satu atau lebih nilai yang akan digunakan oleh program
pemanggil, maka nilai keluaran ditampung di dalam parameter keluaran. Bila prosedur
dengan parameter keluaran dipanggil, nama parameter aktual dalam program pemanggil
akan menggantikan nama parameter formal yang bersesuaian dalam prosedur. Nama
parameter aktual akan digunakan selama pelaksanaan prosedur.
Parameter formal ß Parameter aktual
Karena nama parameter merupakan suatu lokasi di memori, maka jika parameter aktual
diisi suatu nilai di dalam prosedur, nilai tersebut akan tetap berada dalam parameter aktual
walaupun prosedur selesai dilaksanakan.
Algoritma HITUNG_LUAS_SEGITIGA
{program utama untuk menghitung luas segitiga}
DEKLARASI
alas , tinggi : real
Procedure HIT_LUAS_SEGITIGA(input a , t : real)
{menghitung luas segitiga dengan rumus L = ½ (alas x tinggi)}
DEKLARASI
L: real
DESKRIPSI
L ß a * t / 2
write(‘Luas Segitiga = ’,L)
DESKRIPSI
write(‘Menghitung Luas Sebuah Segitiga’)
read(alas,tinggi)
HIT_LUAS_SEGITIGA(alas,tinggi)
write(’Selesai’)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 53
Contoh :
Yang tidak boleh : output berupa nilai atau ekspresi
DUA(4,8.5) DUA(a,a+5)
Algoritma PQR
{Contoh program utama yang memanggil prosedur DUA}
Deklarasi
a , b : integer
Procedure DUA(input x : integer , output y : real)
{Contoh prosedur dengan parameter formal jenis parameter masukan dan jenis parameter
keluaran}
Deklarasi
Deskripsi
x ß x + 1
y ß x * 10
Deskripsi
DUA (4,b)
write(b)
read(a)
DUA (a,b)
write(b)
DUA (a+5,b)
write(b)
Algoritma HITUNG_LUAS_SEGITIGA
{program utama untuk menghitung luas segitiga}
DEKLARASI
alas , tinggi, Luas : real
Procedure HIT_LUAS_SEGITIGA(input a , t : real, output L : real)
{menghitung luas segitiga dengan rumus L = ½ (alas x tinggi)}
DEKLARASI
DESKRIPSI
L ß a * t / 2
DESKRIPSI
write(‘Menghitung Luas Sebuah Segitiga’)
read(alas,tinggi)
HIT_LUAS_SEGITIGA(alas,tinggi, Luas)
write(’Luas segitiga = ’, Luas)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 54
3. Parameter masukan/keluaran(input/output parameter)à sebagai masukan dan keluaran bagi
prosedur
Parameter masukan digunakan pada situasi dimana informasi dikirim dari titik pemanggilanà
prosedur
Parameter keluaran digunakan pada situasi dimana informasi dikirim dari titik pemanggilan
à prosedur
Pada kebanyakan aplikasi, informasi harus dikirim dalam dua arah à Parameter masukan /
keluaran
Dengan parameter masukan/keluaran, nama dan nilai parameter aktual dari program
pemanggil akan digunakan di seluruh bagian prosedur. Bila parameter aktual diubah nilainya
di dalam prosedur, maka sesudah pemanggilan prosedur, niai parameter aktual di titik
Procedure TIGA (input x,y : integer)
{Menambahkan nilai x dengan dan mengurangi nilai y dengan 2 }
Deklarasi
Deskripsi
x ß x + 2
y ß y – 2
write(‘Nilai x dan y di akhir Prosedur TIGA : ’)
write(‘x = ’,x)
write(‘y = ’,y)
Algoritma TITIKTENGAH
{Program untuk menghitung titik tengah dari dua buah titik T1 dan T2}
DEKLARASI
type Titik : record < x : real, y : real >
P1, P2, Pt : Titik
Procedure HITUNG_TITIKTENGAH(input T1, T2 : Titik , output Tt : Titik)
{menghitung titik tengah dari dua buah titik T1 dan T2}
DEKLARASI
DESKRIPSI
Tt.x ß (T1.x + T2.x) / 2
Tt.y ß (T1.y + T2.y) / 2
DESKRIPSI
read(P1.x, P1.y)
read(P2.x, P2.y)
HITUNG_TITIKTENGAH(P1, P2, Pt)
write(Pt.x, Pt.y)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 55
pemanggilan juga berubah. Contoh :
Bila algoritma di atas ditranslasikan ke dalam salah satu bahasa pemrograman, lalu dijalankan,
hasilnya :
Nilai a dan b sebelum pemanggilan :
a = 15
b = 10
Nilai x dan y di akhir Prosedur TIGA :
a = 17
b = 8
Nilai a dan b sesudah pemanggilan :
a = 15
b = 10
Algoritma FGH
{Contoh program utama yang memanggil prosedur TIGA}
Deklarasi
a , b : integer
Procedure TIGA (input x,y : integer)
Deskripsi
a ß 15
b ß 10
write(‘Nilai a dan b sebelum pemanggilan : ’)
write(‘a = ’,a)
write(‘b = ’,b)
TIGA(a,b)
write(‘Nilai a dan b sesudah pemanggilan : ’)
write(‘a = ’,a)
write(‘b = ’,b)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 56
Bila algoritma di atas ditranslasikan ke dalam salah satu bahasa pemrograman, lalu dijalankan,
hasilnya :
Nilai a dan b sebelum pemanggilan :
a = 15
b = 10
Nilai x dan y di akhir Prosedur TIGA :
a = 17
b = 8
Nilai a dan b sesudah pemanggilan :
a = 17
b = 8
Algoritma FGH
{Contoh program utama yang memanggil prosedur TIGA}
Deklarasi
a , b : integer
Procedure TIGA (input/output x,y : integer)
{Menambahkan nilai x dengan dan mengurangi nilai y dengan 2 }
Deklarasi
Deskripsi
x ß x + 2
y ß y – 2
write(‘Nilai x dan y di akhir Prosedur TIGA : ’)
write(‘x = ’,x)
write(‘y = ’,y)
Deskripsi
a ß 15
b ß 10
write(‘Nilai a dan b sebelum pemanggilan : ’)
write(‘a = ’,a)
write(‘b = ’,b)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 57
Program dengan Prosedur atau tanpa Prosedur ?
Program yang modular menunjukkan teknik pemrograman yang baik dan terstruktur
Prosedur dengan parameter atau tanpa parameter?
Parameter digunakan sebagai media komunikasi antara prosedur dengan program pemanggil
dan dapat mengurangi kebutuhan penggunaan variabel global
Parameter Masukan atau Parameter Keluaran?
Bila prosedur menghasilkan keluaran yang dibutuhkan program pemanggil, gunakan parameter
keluaran untuk menampung keluaran tersebut.
Bila prosedur tidak menghasilkan keluaran atau keluarannya hanya digunakan di dalam
prosedur, gunakan parameter masukan. Jika prosedur menerima masukan sekaligus keluaran
pada parameter yang sama, gunakan parameter masukan/keluaran
Procedure TUKAR(input/output A, B : integer)
{Mempertukarkan nilai antara A dan B }
Deklarasi
temp : integer
Deskripsi
temp ß A
A ß B
B ß temp
Algoritma TUKAR_A_B
{Program untuk mempertukarkan nilai antara A dan B }
Deklarasi
A , B : integer
Procedure TUKAR(input/output A, B : integer)
Deskripsi
read(A , B)
write(A , B)
TUKAR(A , B)
write(A , B)
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 58
11. F U N G S I
Bentuk Umum :
Function nama_fungsi(daftar parameter) à tipe_hasil
Kamus
Algoritma
.....
.....
à hasil {mengembalikan nilai}
Procedure vs function :
Function mengembalikan nilai, hampir sama seperti prosedur dengan parameter output
tetapi outputnya tidak ditampung oleh sebuah parameter / variabel melainkan
dikembalikan / dikirimkan ke program utama
Tipe_Hasil : integer, real, boolean, string, atau tipe_bentukan seperti record
Parameter : parameter input
Contoh fungsi :
Buat algoritma untuk menghitung hasil fungsi kuadrat F = 2x2 + 4x – 6 dengan masukan
nilai x
Funsction Fungsi_Kuadrat(input x : integer) à integer
Kamus
Algoritma
à ((2 * x * x) + (4 * x) - 6)
Algoritma Kuadrat
Kamus
i : integer
F : integer
Algoritma
i ß 5
F ß Fungsi_Kuadrat(i)
write(F)
write(Fungsi_Kuadrat(i))
if (Fungsi_Kuadrat(i) > 0) then
write(’Hasil Fungsi Kuadrat Positif’)
else
write(’Hasil Fungsi Kuadrat Negatif’)
endif
write(6 + Fungsi_Kuadrat(i) * 4)
LATIHAN
1. Buat algoritma untuk menukarkan nilai 3 buah character {proses pertukaran
menggunakan prosedur / fungsi}
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 59
2. Buat algoritma yang menentukan nilai indeks mahasiswa dengan input NIM dan
nilai akhir mahasiswa tersebut. {menggunakan fungsi / prosedur untuk penentuan
indeksnya}
Ketentuan : nA ≥ 80 : ’A’
70 ≤ nA < 80 : ’B’ 55 ≤ nA < 70 : ’C’ 40 ≤ nA < 55 : ’D’ nA < 40 : ’E’ 3. Procedure One (input a , b : integer , output c : integer) Kamus Algoritma if (a < b) then c ß a else while (a ≥ b) and (a > 5) do
b ß b * 2
a ß a – b
endwhile
c ß (a * b) + Two(a , b) * Two(a + 10 , b + a)
endif
Function Two (input p , q : integer) à integer
Kamus
Algoritma
if (q = 0) then
à 0
else
if (p > q) then
à p div q
else
à q div p
endif
endif
Algoritma Mistery
Kamus
x , y , z : integer
Algoritma
read(x)
read(y)
One(x , y, z)
write(z)
z ß Two(x * 2 , y - 2) * 10
write(z)
Tentukan output dari algoritma tersebut jika input
x y output
5 20
15 8
20 2
Mata Kuliah Dasar Pemrograman
Teknik Informatika Universitas Siliwangi Tasikmalaya 60
DAFTAR PUSTAKA
[1] Inggriani Liem. Diktat Kuliah Algoritma dan Pemrograman (Bagian
Pemrograman Prosedural). 1999. Bandung : Diktat Kuliah Informatika ITB
[2] Kadir, Abdul. Pemrograman Pascal. 1997. Yogyakarta : ANDI
[3] Munir, Rinaldi. Algoritma dan Pemrograman 1. 2001. Bandung : Informatika
[4] Pardosi, Mico. Turbo Pascal 7.0. 1999. Surabaya : INDAH Surabaya
[5] Pranata, Antony. Algoritma dan Pemrograman. 2005. Yogyakarta : Graha Ilmu
[6] Wahid, Fathul. Dasar-dasar Algoritma dan Pemrograman. 2004. Yogyakarta :
Andi Offset