Please Bantu Saya, Like This !!!

×

Powered By Blogger Widget and Get This Widget

Showing posts with label Kuliah Informatika Pemrograman. Show all posts
Showing posts with label Kuliah Informatika Pemrograman. Show all posts

Monday, 9 November 2015

Membuat perpangkatan menggunakan fungsi pemanggil

Membuat perpangkatan menggunakan fungsi pemanggil
#include <iostream.h>
#include <conio.h>
#include <math.h>
int x,y;
void masukan()
{
cout<<"masukan nilai = ";
cin>>x;
cout<<"masukan pangkat = ";
cin>>y;
}
void pangkat()
{
int a;
masukan();
a=pow(x,y);
cout<<a;
}

void main()
{
pangkat();
getch();
}

Membuat program ATM menggunakan fungsi by value



1.      Membuat program ATM menggunakan fungsi.
·  Syntax
#include <iostream>
#include <stdlib>
#include <conio>
long saldo=10000000;
void listrik()
{
       cout<<"tagihan listrik anda sebesar Rp. 50.000,00"<<endl;
       saldo=saldo-50000;
       cout<<"selamat anda berhasil melakukan pembayaran listrik"<<endl;
}
void pdam()
{
   cout<<"tagihan air anda sebesar Rp. 650.000,00"<<endl;
       saldo=saldo-650000;
       cout<<"selamat anda berhasil melakukan pembayaran air"<<endl;
}
void sisa()
{
       cout<<"sisa saldo anda saat ini adalah =  "<<saldo<<endl;
}

void tarik()
{
       int tarik;
       cout<<"masukan uang yang anda ingin ambil = ";
   cin>>tarik;
   saldo=saldo-tarik;
   cout<<"SELAMAT ANDA BERHASIL MENARIK UANG \1\1\1"<<endl;
}
void pilih()
{
       int pilih;
       cout<<"pilih menu : "<<endl;
   cout<<"1. penarikan uang"<<endl;
   cout<<"2.pembayaran listrik "<<endl;
   cout<<"3. pembayaran PDAM  "<<endl;
   cout<<"4. sisa saldo"<<endl;
   cout<<"masukkan pilihan : ";
   cin>>pilih;
   switch(pilih)
   {
       case 1:
       tarik();
       break;
       case 2:
       listrik();
       break;
       case 3:
       pdam();
       break;
       case 4:
       sisa();
       break;
       default:
       cout<<"maaf kode yang anda masukkan salah"<<endl;
   }
}
void main ()
{
       int pin;
   char y;
       cout<<"masukkan pin : "<<endl;
   cin>>pin;
   while (pin!=123)
   {
       cout<<"maaf pin yang anda masukkan tidak valid"<<endl;
      do
      {

      cout<<"masukkan pin : "<<endl;
            cin>>pin;
         if (pin !=123)
         {
            cout<<"maaf pin yang anda masukkan tidak valid"<<endl;
         }

      }
      while(pin!=123);
   }

   if (pin==123)
   {
       do
      {
      clrscr();
         pilih();
         cout<<"apakah anda ingin ke menu utama ? (y/n): ";
         cin>>y;
      }
      while (y=='y'||y=='Y');
   }

   system("pause");
}


·  Hasil run.






Gambar          3.7 Hasil run kedua

 
Text Box: Gambar  3.6 Hasil run pertama

Gambar  3.6 Hasil run pertama
        Gambar           3.6 Hasil run pertama






Gambar          3.8 Hasil run ketiga

 

Gambar          3.9 Hasil run keempat

 
 

Saturday, 7 November 2015

BAB 2
TINJAUAN PUSTAKA
2.1 String Matching
String matching adalah proses pencarian semua kemunculan query yang selanjutnya
disebut pattern ke dalam string yang lebih panjang (teks). Pattern dilambangkan
dengan x=x[0..m-1] dan panjangnya adalah m. Teks dilambangkan dengan
y=y[0..n-1] dan panjangnya adalah n. String matching dibagi menjadi dua, yaitu exact
matching dan heuristic matching (Sarno. Dkk, 2012).
Contoh sebagai berikut.
String = COM211
n=6
x=x[0..5]
String = Logika
n=6
x=x[0..5]
2.1.1 Exact Matching
Exact matching digunakan untuk menemukan pattern yang berasal dari satu teks.
Contoh pencarian exact matching adalah pencarian kata ”pelajar” dalam kalimat
”saya seorang pelajar” atau saya seorang siswa. Sistem akan memberikan hasil
bahwa kalimat pertama mengandung kata ”pelajar” sedangkan kalimat kedua tidak.
6
Algoritma exact matching diklasifikasikan menjadi tiga bagian menurut arah pencarian
sebagai berikut.
1. Arah pembacaan dari kiri ke kanan.
2. Arah pembacaan dari kanan ke kiri.
3. Arah pembacaan yang ditentukan pemrogram.
2.1.2 Heuristic Matching
Heuristic matching adalah teknik yang digunakan untuk menghubungkan dua data
terpisah ketika exact matching tidak mampu mengatasi karena ada pembatasan
pada data yang tersedia. Heuristic matching dapat dilakukan dengan perhitungan
distance antara pattern dengan teks. Euzenat(2007) menuliskan contoh dengan
perhitungan distance berdasarkan String Based Tecnique yaitu string equality yang
menggunakan algoritma n-gram similarity. N-gram similarity sering digunakan
untuk membandingkan beberapa string. Algoritma ini menghitung sejumlah
n-gram bersama seperti serangkaian n karakter di antara string.
Gambar 2.1: N-Gram Similarity.
7
2.2 Algoritma Brute Force
Algoritma brute force adalah algoritma untuk mencocokkan pattern dengan semua
teks antara 0 dan n-m untuk menemukan keberadaan pattern dalam teks. Secara
rinci, langkah-langkah yang dilakukan algoritma ini saat mencocokkan string.
1. Algoritma brute force mulai mencocokkan pattern dari awal teks.
2. Dari kiri ke kanan, algoritma ini mencocokkan karakter per karakter pattern
dengan karakter pada teks yang bersesuaian, sampai salah satu kondisi berikut
terpenuhi.
(a) Karakter di pattern dan di teks yang dibandingkan tidak cocok.
(b) Semua karakter di pattern cocok. Kemudian algoritma memberitahukan
penemuan posisi ini.
3. Algoritma kemudian terus menggeser pattern sebesar satu ke kanan, dan mengulangi
langkah ke-2 sampai pattern berada di ujung teks.
Gambar 2.2: Algoritma Brute Force.
8
2.3 Pengertian Sistem Informasi
Sistem informasi merupakan kumpulan dari perangkat keras dan perangkat lunak
komputer serta perangkat manusia yang mengolah data menggunakan perangkat
keras dan lunak tersebut. Data memiliki peranan dalam sistem informasi. Data
yang dimasukkan adalah sebuah sistem informasi dapat berupa formulir-formulir,
prosedur dan bentuk data lainnya. Komponen-komponen sistem informasi terdiri
dari sebagai berikut.
1. Input
Input adalah semua data yang dimasukkan ke dalam sebuah sistem informasi.
2. Proses
Proses merupakan kumpulan prosedur untuk memanipulasi input yang kemudian
disimpan dalam bagian basis data dan seterusnya diolah menjadi suatu
output yang digunakan oleh penerima.
3. Output
Output merupakan semua keluaran atau hasil dari model yang sudah diolah
menjadi suatu informasi yang berguna dan dapat dipakai penerima. Komponen
ini berhubungan langsung dengan pemakai sistem informasi dan merupakan
tujuan akhir dari pembuatan sistem informasi.
4. Basis data
Basis data merupakan kumpulan data yang saling berhubungan satu sama
lain yang disimpan dalam perangkat keras komputer dan diolah menggunakan
perangkat lunak. Basis data merupakan kumpulan file yang memiliki
keterkaitan antara satu file dengan file yang lain sehingga membentuk satu
bangunan data.
5. Teknologi
Teknologi merupakan bagian yang berfungsi untuk memasukkan input, men9
golah input dan menghasilkan keluaran. Teknologi ini meliputi hardware,
software, brainware.
6. Kendali
Kendali merupakan semua tindakan yang diambil untuk menjaga sistem
informasi tersebut agar berjalan dengan lancar dan tidak mengalami gangguan
(Kristanto, 2003).
2.4 PHP (Hypertext Preprocessor)
2.4.1 Pengertian PHP (Hypertext Preprocessor)
PHP (Hypertext Preprocessor) merupakan bahasa pemrograman yang berbentuk
scripting, sistem kerja dari program ini adalah sebagai interpreter bukan sebagai
compiler (Nugroho, 2004). Menurut Kadir bahwa ”Interpreter adalah perintah
menerjemahkan statement program. Sedangkan bahasa compiler adalah semua perintah
di dalam program diterjemahkan terlebih dahulu, baru kemudian semuanya
dijalankan” (Kadir, 2005).
Bahasa pemrograman merupakan sebuah paket bahasa yang digunakan untuk membuat
sebuah bahasa turunan. Bahasa turunan dapat berupa bahasa pemrograman,
atau dapat juga berupa hasil akhir yang disebut dengan istilah aplikasi pemrograman.
Menurut cara prosesnya, bahasa pemrograman dapat dikategorikan
menjadi dua, yaitu sebagai berikut.
1. Bahasa Compiler
Bahasa compiler adalah bahasa yang mengubah script program ke dalam
source code, selanjutnya dari bentuk source code diubah menjadi bentuk object
code, bentuk dari kode objek menghasilkan file yang lebih kecil dari file
mentah sebelumnya. Selanjutnya bentuk kode objek berubah menjadi sebuah
10
program yang siap dijalankan tanpa adanya program bantu pembuatnya, sehingga
hasil dari pemrograman yang berbentuk kompiler membuat sebuah
program yang berstatus sebagai program eksekusi. Contoh dari program compiler
adalah Pascal, Visual C, Lazarus.
2. Bahasa Interpreter
Bahasa interpreter, script mentah tidak harus diubah ke dalam bentuk source
code. Sehingga pada saat menjalankan bentuk program, kode dasar secara
langsung dijalankan tanpa harus melalui proses pengubahan ke dalam bentuk
source code.
Contoh penggunaan perintah PHP sebagai berikut.
<?php
$teks=$_POST[’isiteks’];
$teks="\n".$teks." ";
$rows= explode("\n", $teks);
array_shift($rows);
Dalam pemrograman PHP kelompok informasi yang ditampilkan dalam halaman
browser memerlukan perintah untuk menampilkan informasi tersebut. sebagai
contoh pada pemrograman Pascal menggunakan perintah while dan writeln untuk
menampilkan informasi. Fungsi cout dalam bahasa C dan C++, sedangkan pada
PHP menggunakan perintah echo dan print.
Kelebihan yang dimiliki oleh pemrograman PHP adalah dapat disisipkan ke dalam
tag-tag HTML. Namun, dengan kelebihan yang dimiliki, PHP juga mampu berdiri
sendiri tanpa berada di sela-sela program lain. Contoh program PHP yang berada
pada tag HTML sebagai berikut.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
11
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2.4.2 Tipe Data
Tipe data adalah suatu bentuk data yang dideklarasikan pada saat membuat tabel
atau program. Tipe data memberi pengaruh pada setiap data yang dimasukkan ke
dalam sebuah tabel. Data yang dimasukkan harus sesuai dengan tipe data yang
dideklarasikan (Nugroho, 2004).
Lima tipe data yang terdapat pada pemrograman PHP.
1. Integer
Integer adalah tipe data yang berisikan data semua bilangan yang besarnya
range sama dengan data pada bahasa C, yaitu antara -2,147,483,64 sampai
+2,147,483,64 pada platform 32-bit.
Contoh sebagai berikut.
$angka=234;
2. Floating Point
Floating Point adalah tipe data yang berguna untuk menyimpan bilangan desimal
atau pecahan. Sebagai contoh (0.1),(1.3),(1.7),(1.8),(9.7),(2.4).
Contoh Penulisannya adalah sebagai berikut.
<?php
$a = 1.234;
$b = 1.2e3;
$c = 2E-6;
$d = 1.2E8;
?>
3. Character
Character merupakan bentuk yang sama dengan tipe data varchar yaitu
12
mampu menangani data sampai dengan 225 karakter. Tetapi dari ke dua tipe
data tersebut memiliki perbedaan yang sangat signifikan yaitu dalam hal media
penyimpanan data. Sebagai contoh adalah apabila membuat kolom varchar(
25) maka data yang dimasukkan paling banyak adalah 25 digit tetapi
dapat juga memasukkan data kurang dari 25 digit. Apabila dalam penyimpanan
data dalam bentuk char(4) maka harus dimasukkan data paling banyak
4 karakter, jadi apabila memasukkan sebanyak 2 karakter maka, data tersebut
tetap dibaca 4 karakter, sehingga keadaan tersebut memboroskan ketersediaan
memori komputer. (Nugroho, 2004)
Contoh penulisan tipe data string adalah sebagai berikut.
$teks=$_POST[’isiteks’];
$teks="\n".$teks." ";
$rows= explode("\n", $teks);
4. Array
Larik atau array adalah penampung sejumlah data bertipe sama dan menggunakan
satu identifier. Array adalah penampung data yang disebut dengan
variabel. Perbedaan antara array dan variabel adalah terletak pada kapasitas
penampungannya. Variabel bertipe int hanya dapat menampung sebuah
bilangan bulat dan variabel bertipe char hanya bisa menampung sebuah
karakter ASCII. Array bertipe int mampu menampung sejumlah bilangan
bulat, sedangkan array bertipe char mampu menampung sejumlah karakter
ASCII (Ngoen, 2009).
Tipe data array atau larik merupakan tipe compound primitif, dan terdapat
juga pada bahasa-bahasa pemrograman lain. Tipe data array digunakan untuk
menyimpan banyak data dalam satu variabel. Array dibagi menjadi dua yaitu
numeric array dan assosiative array.
13
1. Numeric Array
Pemanggilan data pada numeric array berdasarkan dengan angka, angka
dimulai dari 0 sampai dengan jumlah data yang dimasukkan. Contoh
Numeric Array sebagai berikut.
#$no[$baris]=$gets[0];
$kopel[$baris]=$gets[0];
$matkul[$baris]=$gets[1];
$sks[$baris]=$gets[2];
$nilai[$baris]=$gets[3];
$pengambilan[$baris]=$gets[4];
$semester[$baris]=$gets[5];
2. Assosiative Array
Pemanggilan data array tersebut menggunakan string yang ditentukan
oleh User, dengan kata lain pemanggilan menggunakan angka diganti
menjadi string yang diinginkan. Contoh penggunaan assosiative array
adalah sebagai berikut.
$kopel[$baris]=str_replace(" ","",$kopel[$baris]);
$nilai[$baris]=str_replace(" ","",$nilai[$baris]);
5. Object
Tipe data object adalah tipe data yang dapat berupa bilangan, variabel ataupun
fungsi. Dengan dibuat data object ini dapat membantu programmer untuk
membuat sebuah program. Data ini dapat disertakan ke dalam program, sehingga
meringkas beberapa fungsi dan dapat memperkecil ukuran file. Semakin
kecil ukuran file semakin singkat waktu yang dibutuhkan untuk mengakses
file tersebut.
14
Contoh penulisan data object adalah sebagai berikut.
<?php
function brute_force(&$kopel_m,&$kopel_db,&$stat){
if(strlen($kopel_m)!=strlen($kopel_db)){
return $stat;
}else{
for($i=0;$i<strlen($kopel_db);$i++){
if(substr($kopel_m,$i,1)==substr($kopel_db,$i,1)){$stat=true;
}else{
$stat=false;
break;
return $stat;
}
}
return $stat;
}
}
Semua variabel dalam bahasa PHP diawali dengan tanda dolar tanpa mempedulikan
jenis nilai yang ditampungnya, baik karakter, integer, string, maupun bilangan
floating point dan array. Semuanya ditulis dalam bentuk yang mirip dan secara
otomatis PHP selalu mengingat tipe data yang disimpan. Secara umum variabel
dalam PHP ada tiga macam, yaitu script, variabel yang dikirim dari HTML, dan
variabel bawaan lingkungan PHP.
15
2.5 Xampp
XAMMP merupakan suatu paketsoftware yang terdiri dari Apache, MySQL, dan
PHP. Apache adalah sebuah aplikasi yang memungkinkan suatu komputer menjadi
web server. MySQL adalah DBMS (Database Management System), yaitu
suatu sistem yang berfungsi untuk mengolah data dalam database. Sedangkan PHP
adalah bahasa pemrograman server side coding yang sering digunakan untuk menciptakan
halaman web. Penggunaan paket software ini memudahkan penulis dalam
pembangunan sistem terutama dalam pengolahan database (Kadir, 2005).
2.6 MySQL
MySQL merupakan database yang kuat dan stabil, digunakan sebagai media penyimpanan
data. MySQL juga merupakan sebuah database server yang mampu
mengelola database. Database sever yang memiliki kemampuan mengolah data
dengan baik, diantaranya adalah Oracle dan PostgreSQL (Nugroho, 2004).
Dalam penggunaan MySQL dipadukan dengan bahasa pemrograman PHP, hal ini
dikarenakan penggunaan keduanya memiliki kehandalan dalam menangani permintaan
data. Kemampuan yang dimiliki oleh MySQL adalah mampu mendukung
Relational Database Management System (RDMS) sehingga bisa menangani data
sebuah perusahaan yang berukuran besar.
MySQL adalah salah satu jenis database server yang sangat terkenal. MySQL menggunakan
bahasa SQL untuk mengakses basis datanya. Untuk melakukan administrasi
secara lebih mudah terhadap MySQL, dapat menggunakan software tertentu,
diantaranya adalah PHPMyAdmin dan MySQL Yog.
16
2.6.1 Kelebihan MySQL
Sebagai database yang memiliki konsep database yang modern, MySQL memiliki
beberapa kelebihan menurut Nugroho (2004).
1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi
seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan
sebagainya.
2. Open Source. MySQL didistribusikan secara open source, di bawah lisensi
GPL sehingga dapat digunakan secara cuma-cuma.
3. Multiuser. MySQL dapat digunakan oleh beberapa user dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
4. Performance Tuning. MySQL memiliki kecepatan yang menakjubkan dalam
menangani query sederhana, dengan kata lain dapat memproses lebih banyak
SQL per satuan waktu.
5. Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks, seperti
signed / unsigned integer, float, double, char, text, date, atau timestamp.
6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh
yang mendukung perintah Select dan Where dalam perintah (query).
7. Keamanan. MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask,
nama host, dan izin akses user dengan sistem perizinan yang mendetail
serta sandi terenkripsi.
8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam
skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu
tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai
32 indeks pada tiap tabelnya.
17
9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan
protokol TCP/IP, Unix socket (UNIX), atau Named Pipes (NT).
10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan
menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa
Indonesia belum termasuk di dalamnya.
11. Antar Muka. MySQL memiliki interface (antar muka) terhadap berbagai
aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application
Programming Interface).
12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai tools yang dapat
digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada
disertakan petunjuk online.
13. Struktur Tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL
ataupun Oracle.
2.7 Perintah SQL Yang Digunakan
Perintah-perintah SQL yang digunakan dalam pengembangan sistem sebagai
berikut.
1. Menampilkan database.
show database;
2. Membuat database.
create database databasename;
3. Menghapus database.
drop database databasename;
18
4. Melihat isi database.
show tables;
5. Memilih database.
use databasename;
6. Membuat tabel baru.
create table tablename;
7. Melihat struktur tabel.
describe tablename;
8. Memasukkan data kedalam tabel.
insert into tablename;
2.8 Rational Unified Process
Rational Unified Process (RUP) merupakan proses rekayasa perangkat lunak yang
menggunakan pendekatan disiplin untuk menetapkan tugas dan tanggung jawab
dalam pengembangan sistem (Manalil, 2010). RUP diciptakan, dikembangkan dan
dikelola oleh Rational Software sekarang IBM. Tujuan dari RUP adalah menghasilkan
perangkat lunak berkualitas tinggi yang yang memenuhi kebutuhan pengguna
dan dapat diprediksi penjadwalan dan biaya pengembangannya (Kruchten,
2003).
19
Gambar 2.3: Arsitektur Rational Unified Process (Manalil, 2010)
Aktifitas dalam pengembangan perangkat lunak menggunakan RUP terfokus pada
pengembangan model dengan menggunakan Unified Model Language (UML),
karena menggunakan konsep berorientasi objek atau object oriented. Gambar 2.3
dapat dilihat bahwa RUP memili dua dimensi yaitu:
1. Dimensi pertama, menggambarkan aspek dinamis dalam sebuah pengembangan
perangkat lunak, yang dijabarkan dalam beberapa fase yang memiliki
major milestone atau tonggak utama sebagai tanda berakhirnya fase tersebut.
Setiap fase dapat terdiri dari satu atau lebih pengulangan atau iterasi. Dimensi
horizontal ini terdiri atas Inception, Elaboration, Construction dan Transition.
2. Dimensi kedua, merupakan dimensi vertikal yang mewakili aspek-aspek
statis dari sebuah pengembangan perangkat lunak terdiri dari empat elemen
penting, yakni siapa yang melakukan, apa, bagaimana dan kapan. Dimensi ini
terdiri atas Business Modeling, Requirement, Analysis and Design, Implementation,
Test, Deployment, Configuration dan Change Management, Project
Management, Environment.
20
2.9 Pengujian Perangkat Lunak
Pengujian perangkat lunak merupakan serangkaian kegiatan yang bertujuan untuk
menemukan kesalahan dalam sebuah sistem, serta bertujuan untuk memastikan
apakah sistem telah bekerja sesuai dengan spesifikasi. Pengujian perangkat lunak
memiliki dua tujuan utama, yaitu menemukan bug atau kesalahan dan memastikan
sistem telah bekerja sesuai yang diinginkan (Ehmer, 2011).
Masalah yang dihadapi dalam pengujian perangkat lunak yaitu waktu yang dibutuhkan
dalam mengumpulkan data, ketidakpuasan user terhadap software yang
dibutuhkan, kualitas software yang buruk, dan sulit dalam pengelolaan software.
Pengujian sistem dan perangkat lunak memiliki aturan yang berfungsi sebagai
sasaran pengujian, diantaranya sebagai berikut.
1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan
kesalahan.
2. Pada testcase harus memiliki probabilitas tinggi, untuk menemukan kesalahan
yang belum ditemukan sebelumnya.
2.9.1 Pengujian Blackbox
Blackbox testing merupakan pengujian yang memperhatikan atau memfokuskan
kepada faktor fungsionalitas dan spesifikasi perangkat lunak. Blacbox testing tidak
membutuhkan pengetahuan mengenai, alur internal, struktur atau implementasi dari
software under test (SUT). Tidak seperti whitebox testing yang dilakukan pada awal
proses pengujian, blackbox testing dilakukan dibeberapa tahapan berikutnya.
Ujicoba blackbox memeriksa beberapa aspek sistem, tetapi memeriksa sedikit mengenai
struktur logikal internal software. Teknik pengujian (blackbox) berfokus
pada domain informasi dari perangkat lunak, dengan melakukan test case dengan
21
mempartisi domain input dari suatu program dengan cara yang memberikan cakupan
pengujian yang mendalam.
Empat keuntungan yang diperoleh dari jenis pengujian blacbox sebagai berikut.
1. Penguji tidak harus menguasai pemrograman.
2. Kesalahan dari perangkat lunak ataupun bug sering kali ditemukan oleh
kelompok penguji yang berasal dari pengguna.
3. Hasil dari blackbox testing dapat memperjelas kejanggalan yang mungkin
timbul dari eksekusi dari pengguna.
4. Proses testing lebih cepat dibandingkan dari pengujian whitebox.

PENGETAHUAN DASAR PEMROGRAMAN



MODUL 1
PENGETAHUAN DASAR PEMROGRAMAN
A.  TUJUAN
a.    Mahasiswa mengetahui dasar – dasar penulisan program komputer
b.    Mahasiswa memahami struktur bahsa C/C++
c.    Mahasiswa dapat mengetahui dan bisa menggunakan tipe data tertentu dalam pembuatan program
d.   Mahasiswa bisa memasukan dan mengambil data dari program

B.  DASAR TEORI
1.    STRUKTUR BAHASA PEMROGRAMAN C/C++
<preprosesor directive>
{
   <statement>;
      <statement>;
}

#include <iostream.h>
#include <conio.h>

void main(){
cout<<"selamat pagi"<<endl;
getch();
}

1.1.  Header File
Adalah berkas yang berisi prototype fungsi. definisi konstanta. dan definisi variable.Fungsi adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan.
Contoh : stdio.h , iostream.h, conio.h, math.h dll.
1.2.  Preprosesor Directive(#include)
Adalah salah satu pengarah prepocessor directive yang tersedia pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya :
# include<nama_file>

Tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan kepada run yang menyisipkan file lain dalam hal ini file yang berakhiran .h(file header).
# include <iostream.h>
diperlukan pada program yang melibatkan objek cout.
# include <conio.h>
diperlukan bila melibatkan clrscr(),yaitu perintah untuk membersihkan layar.
# include <iomanip.h>
diperlukan bila melibatkan setw() yang bermanfaat untuk mengatur lebar dari suatu tampilan data.
# include <math.h>
diperlukan pada program yang menggunkan operasi sqrt () yang bermanfaat untuk operasi matematika kuadrat.

1.3.  Fungsi main ()
Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main(). Berarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi main().

1.4.   Statement
Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma (;).
1.5.  Tanda Semicolon
Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon.

1.6.  Komentar
Komentar tidak pernah dirun oleh runr. Dalam C++ terdapat 2 jenis komentar, yaitu:
Jenis 1 : /* Komentar anda diletakkan di dalam ini
Bisa mengapit lebih dari satu baris */
Jenis 2 :// Komentar anda diletakkan disini (hanya bisa perbaris)

2.    Tipe Data C/C++
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. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan dalam domain nilai, Tipe data dikelompokkan menjadi tipe dasar dan tipe bentukan.
2.1.  Tipe Dasar
Tipe yang dapat langsung dipakai(angka-angka atau karakter) karena sudah didefinisikan sebelumnya oleh pemeroses bahasa.
2.1.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.1.2. Bilangan Riil
Bilangan yang mengandung pecahan desimal
Nama Tipe : Real
Domain Nilai :Secara teoritis tak terbatas dari -∞ s.d +∞.
·      Contoh nilai : 2.8 , -0.39, 4.24 , 57.567, -102.00
·      Contoh objek : Nilai ujian
2.1.3. Bilangan Logika
Nama Tipe : Boolean
Domain Nilai : Benar(True--1) atau Salah(False--0)
Konstanta : True dan False
2.1.4. Karakter
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’

Tipe Dasar
Ukuran Memori (byte)
Jangkauan Nilai
Jumlah Digit Presisi
Char
1
-128 hingga +127
-
Int
2
-32768 hingga +32767
-
Long
4
-2.147.438.648 hingga 2.147.438.647
-
Float
4
3,4E-38 hingga 3,4E38
6-7
Double
8
1.7E-308 hingga 1.7E308
15-16
Long double
10
3.4E-4932 hingga 1.1E4932
19

2.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 :
2.2.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’,dll.
·      Contoh objek : Nama, Alamat
2.2.2. Tipe Struktur
Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam operasi.

3.    VARIABLE
Variable adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks sebagai berikut :
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
1.    Tidak boleh sama dengan nama keyword reserved, function yang dimiliki bahasa
2.    Maksimum 32 karakter. Bila lebih, maka karakter selebihnya tidak akan diperhatikan oleh computer.
3. Case sensitive membedakan huruf besar dan huruf kecil.
4. Karakter pertama harus huruf atau(_), dan selebihnya boleh huruf.
5. Tidak boleh mengandung spasi atau blank.

4.    OPERATOR
Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi.
4.1.  Operator Penugasan
Operator Penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama dengan (“=”).
Contoh :
nilai = 80;
A = x * y;
Penjelasan :
variable“nilai” diisi dengan 80 dan
variable“A” diisi dengan hasil perkalian antara x dan y.

4.2.  Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk pengolahan aritmatika seperti penjumlahan dua bilangan bulat atau penjumlahan dua bilangan pecahan, pengurangan dua bilangan bulat atau pengurangan dua bilangan pecahan, perkalian dua bilangan bulat atau perkalian dua bilangan pecahan, pembagian dua bilangan bulat atau pembagian dua bilangan pecahan, mencari sisa pembagian bilangan bulat (modulo), penambahan nilai variable dengan satu (increment), dan pengurangan nilai variable dengan satu (decrement).

Operator
Deskripsi
Contoh
+
Penjumlahan (add)
m + n
-
Pengurangan (Substract)
m – n
*
Perkalian (Multiply)
m * n
/
Pembagian (Divide)
m  / n
%
Sisa Pembagian Integer (Modulus)
m % n
_
Negasi (Negate)
-m

NB : Operator seperti operator negasi (-) disebut unary operator, karena membutuhkan hanya satu buah operand Operator % (modulus) digunakan untuk mencari sisa pembagian antara dua bilangan. Misalnya : 9 % 2 = 1, 9 % 3 = 0
#include <iostream.h>
#include <conio.h>
void main(){
int m = 90, n = 50;
cout<<m<<" + "<<n<<" = "<<m+n<<endl;
cout<<m<<" - "<<n<<" = "<<m-n<<endl;
cout<<m<<" * "<<n<<" = "<<m*n<<endl;
cout<<m<<" / "<<n<<" = "<<m/n<<endl;
cout<<m<<" % "<<n<<" = "<<m%n<<endl;
cout<<"-"<<m<<" = "<<-m<<endl;
getch();
}

Karena tipe datanya adalah int, maka 90/50=1, supaya dapat merepresentasikan nilai yang sebenarnya, gunakan tipe data float. Cara lain penulisan dengan menggunakan operator aritmatika :
m = m + n           m += n
m = m - n            m -= n
m = m * n           m *= n
m = m / n                        m /= n
m = m % n          m %= n
4.3.  Operator Hubungan (perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++
Operator
Arti
Contoh
= =
Sama dengan (bukan assignment)
x= =y
Apakah x sama dengan y
!=
Tidak sama dengan
x != y
Apakah x tidak sama dengan y
Lebih besar
x>y
Apakah x lebih besar dari y
Lebih kecil
x<y
Apakah x lebih kecil dari y
>=
Lebih besar atau sama dengan
x>=y
Apakah x lebih dari sama dengan y
<=
Lebih kecil atau sama dengan
x<=y
Apakah x kurang dari sama dengan y


#include <iostream.h>
#include <conio.h>
   void main (){
             int m = 6, n = 10;
             if (m == n){
             cout<<m<<"sama dengan"<<n<<endl;
              }
             else if(m != n){
            cout<<m<<"tidak sama dengan"<<n<<endl;
}
            else if(m > n){
                        cout<<m<<"lebih besar dari"<<n<<endl;
              }
                        else if(m < n)  {
                        cout<<m<<"lebih kecil dari"<<n<<endl;
                        }
                     getch ();
                     }
    


4.4.  Operator Naik dan Turun ( increment dan decrement )
Operator increment ↔++
Operator decrement↔--
Catatan:
untuk operator ++ dan -- adalah salah satu contoh operator yang hanya memerlukan satu operand (unary operator). Operator ++ dan -- akan menyatakan operasi yang berbeda jika operator diletakkan sebelum atau sesudah operand.
#include <iostream.h>
#include <conio.h>
          void main() {
                        int m = 55, n = 77;
                        cout<<"m = "<<m<<", n = "<<n<<endl;
                        ++m;--n;
                        cout<<"m = "<<m<<", n = "<<n<<endl;
                        m++;n--;
                        cout<<"m = "<<m<<", n = "<<n<<endl;
getch();
}

4.5.  Operator Logika
Operator logika adalah operator yang digunakan untuk membandingkan dua buah nilai logika. Nilai logika adalah nilai benar atau salah. Jika sebelumnya pada operator relasi yang dibandingkan adalah nilai dari data apakah benar (1) ataukah salah (0), maka pada operator logika bisa dikatakan yang dibandingkan adalah logika hasil dari operator relasi.
Operator
Fungsi
Contoh
Hasil
Penjelasan
!
NOT
!(5>4)
0(salah)
Fungsi NOT digunakan untuk membalik hasil logika.
&&
AND
(3>=3)&&(2 !=(4/2))
0(salah)
Fungsi AND akan memberikan nilai benar (1) jika kedua nilai logika yang dibandingkan bernilai benar (1).
||
OR
(3>=3)||(2 != (4/2))
1(benar)
Fungsi OR akan memberikan nilai benar (1) jika salah satu nilai logika yang dibandingkan bernilai benar (1).



A
B
!B
A&&B
Catatan:
1→ True / benar
0→ False/salah
 
A||B
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0

#include <stdio.h>
#include <conio.h>
main() {
printf("%d", ! (5 > 4));
printf("\n%d", (3 >= 3) && (2 != (4/2)));
printf("\n%d",(3 >= 3) || (2 != (4/2)));
getch();
}

4.6.  Operator Bitwise
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memory.
Operator
Fungsi
Contoh
Penjelasan
&
AND
A&B
AND bitwise dari A dan B
|
OR
A |B
OR bitwise dari A dan B
^
XOR
A ^ B
XOR bitwise dari A dan B
~
Complement 1
~ A
Mengubah bit 0 menjadi 1,dan sebaliknya
>> 
Shift right
A >> 2
Bit-bit dari A digeser ke kanan sebanyak 2 posisi bit
<< 
Shift left
B << 1
Bit-bit dari B digeser ke kiri sebanyak 1 posisi bit


#include <iostream.h>
#include <conio.h>
void main(){
int m = 78, n = 23;
cout<<m<<" <<2"<<" = "<<(m<<2)<<endl;
cout<<m<<" >>2"<<" = "<<(m>>2)<<endl;
cout<<m<<" & "<<n<<" = "<<(m&n)<<endl;
cout<<m<<" | "<<n<<" = "<<(m|n)<<endl;
cout<<m<<" ^ "<<n<<" = "<<(m^n)<<endl;
cout<<" ~ "<<m<<" = "<<~m<<endl;
getch();
}


C.  PERMASALAHAN
1). Buatlah program untuk mengkonversikan nilai dari kilometer ke meter dan nilai inci ke centimeter secara statis!
2). Buatlah program untuk mengkonversikan nilai dari kilometer ke meter kemudian dikonversikan lagi ke cm secara dinamis!
Berikut ini adalah data permasalahan yang telah di buat menjadi sebuah program :
a)      Konversi nilai dari kilometer ke meter dan nilai inci ke centimeter     secara statis.
#include <iostream.h>
#include <conio.h>

void main()
{
float a=2.5;
float b=3;
float m=1000*a;
cout<<"Jadi konversi nilai jarak dalam satuan 2,5 km menjadi m adalah ="<<m<<endl;
float cm=2.54*b;
cout<<"Jadi konversi nilai 3 inci menjadi cm adalah = "<<cm<<endl;

getch();
}


Dengan hasil run sebagai berikut :


b)      Konversi nilai dari kilometer ke meter kemudian dikonversikan lagi ke centimeter secara dinamis.
#include <iostream.h>
#include <conio.h>

void main()
{
float a;
cout<<"Masukkan nilai yang ingin di konversikan = ";
cin>>a;

float m =1000*a;
float cm =100*m;
cout<<"Jadi nilai konversi km ke m adalah "<<m<<"sedangkan konversi nilai m ke cm adalah "<<cm<<endl;

getch ();
}


Dengan hasil run sebagai berikut :



D.  ANALISA PROGRAM
1. Analisis program perbaris.
a). Konversi nilai dari kilometer ke meter dan nilai inci ke centimeter secara statis pada permasalahan pertama.
#include<iostream.h>
v  #include<iostream.h> diperlukan pada program yang   melibatkan objek cout.

#include<conio.h>
v  #include<conio.h> merupakan file  header  program yang mendeklarasikan fungsi “getch()”.

void main ()
{
v  Fungsi utama adalah bagian yang pertama kali dieksekusi. Fungsi utama ini tersusun atas kata main lalu diikuti dengan tanda ().
v   Kurung kurawal buka “{” adalah pembuka sebuah program yang diakhirnya akan di tutup menggunakan kurung kurawak tutup “}”.

float a=2.5;
v   Mendeklarasikan variabel bertipe data float, dimana nilai a = 2,5.

float b=3;
v    Mendeklarasikan variabel bertipe data float, dimana nilai b = 3.
           
float m=1000*a;
v  Tanda (*) adalah operator yang digunakan untuk pengolahan aritmatika dalam hal ini adalah perkalian nilai 1000 dengan nilai variabel a yang kemudian disimpan kedalam variabel m yang bertipe float.

cout<<"Jadi konversi nilai jarak dalam satuan 2,5 km menjadi m adalah = "<<m<<endl;
v  cout merupakan sebuah objek di dalam C++ yang digunakan untuk mencetak data ke layar. cout<<"Jadi konversi nilai jarak dalam satuan 2,5 km menjadi m adalah = "<<m<<endl; merupakan proses menampilkan ke layar berupa kalimat " Jadi konversi nilai jarak dalam satuan 2,5 km menjadi m adalah =" dan “<<” adalah operator, yang disertai dengan penyisipan nilai m. “endl” merupakan karakter yang dipergunakan untuk mengakhiri baris.

float cm=2.54*b;
v   Mendeklarasikan proses perkalian nilai 2.54 dengan nilai variabel b yang kemudian disimpan kedalam variabel cm yang bertipe float

cout<<"Jadi konversi nilai 3 cm menjadi inci adalah = "<<cm<<endl;
v  Proses menampilkan kalimat “Jadi konversi nilai 3 cm menjadi inci adalah” pada layar run, yang disertai dengan penyisipan nilai variabel cm.

getch();
}
v   Digunakan untuk menahan layar run agar tidak menutup saat dieksekusi.

Cara kerja :
Pada saat program di run, cout secara otomatis akan menampilkan kalimat “       Jadi konversi nilai jarak dalam satuan 2,5 menjadi m adalah = 2500” pada layar. Nilai 2500 diperoleh dari syntax float m=1000*a; dimana nilai 1000 dikalikan dengan nilai variabel a kemudian disimpan ke dalam variabel m yang bertipe data float. Setelah itu, <<m<< akan menyisipkan nilai hasil perkaliannya kedalam kalimat yang  ditampilkan dan endl akan mengakhiri baris. Kemudian proses akan dilanjutkan pada statement kedua dengan proses yang sama seperti yang terjadi pada statement pertama. cout pada statement kedua akan menampilkan kalimat “Jadi konversi nilai 3 inci menjadi cm adalah = 7.62“. Nilai 7.62 diperoleh dari syntax float cm=2.54*b; dimana nilai 2.54 dikalikan dengan nilai variabel b  kemudian disimpan ke dalam variabel cm yang bertipe data float. Setelah itu, <<cm<< akan menyisipkan nilai hasil perkaliannya kedalam kalimat yang  ditampilkan dan endl akan mengakhiri baris.
b).  Konversi nilai dari kilometer ke meter kemudian di konversikan lagi ke centimeter secara dinamis pada permasalahan kedua.
#include<iostream.h>
v  #include<iostream.h> diperlukan pada program yang melibatkan objek cout.

#include<conio.h>
v  #include<conio.h> merupakan file  header  program yang mendeklarasikan fungsi “getch()”.

void main ()
{
v  Fungsi utama adalah bagian yang pertama kali dieksekusi. Fungsi utama ini tersusun atas kata main lalu diikuti dengan tanda ().
v  Kurung kurawal buka “{” adalah pembuka sebuah program yang diakhirnya akan di tutup menggunakan kurung kurawak tutup “}”.

float a;
v  Mendeklarasikan variabel a yang bertipe data float.

cout<<"Masukkan nilai yang ingin di konversikan = ";
v  Merupakan proses menampilkan ke layar berupa kalimat " Masukkan nilai yang ingin di konversikan =".

cin>>a;
v  Merupakan proses memasukkan nilai variabel a dengan menggunakan keyboard.

float m =1000*a;
v  float digunakan pada pendeklarasian data bertipe bilangan desimal. Tanda (*) adalah operator yang digunakan untuk pengolahan aritmatika dalam hal ini adalah perkalian nilai 1000 dengan nilai variabel a yang kemudian disimpan kedalam variabel m yang bertipe float.

float cm =100*m;
v  Tanda (*) adalah operator yang digunakan untuk pengolahan aritmatika dalam hal ini adalah perkalian nilai 100 dengan nilai variabel m yang kemudian disimpan kedalam variabel cm yang bertipe float.

cout<<"Jadi nilai konversi km ke m adalah =  "<<m<<"sedangkan konversi nilai m ke cm adalah "<<cm<<endl;
v  Merupakan proses menampilkan kalimat “Jadi nilai konversi km ke m adalah = “ yang disertai dengan penyisipan nilai variabel m ke layar, dan merupakan proses menampilkan kalimat “sedangkan konversi nilai m ke cm adalah =” yang disertai dengan penyisipan nilai variabel cm.

getch();
}
v  Digunakan untuk menahan layar run agar tidak lansung hilang saat dieksekusi.

Cara kerja :
Pada saat program di run, cout pada statement pertama secara otomatis akan menampilkan kalimat “Masukkan nilai yang ingin dikonversikan” di layar. cin akan memasukkan  angka yang kita input dengan menggunakana keyboard pada layar run, sebagai contoh masukkan angka 3. Setelah itu, cout pada statement kedua akan menampilkan kalimat “Jadi nilai konversi km ke m adalah 3000 sedangkan konversi nilai m ke cm adalah 300000” di layar. Nilai 3000 diperoleh dari syntax float m=1000*a; dimana nilai 1000 dikalikan dengan nilai variabel a dan disimpan ke dalam variabel m yang bertipe data float. Kemudian hasil dari perkalian tersebut akan dimasukkan ke syntax float cm=100*m;, proses ini akan menghasilkan nilai 300000 di layar. Sedangkan <<m<< dan <<cm<< akan memasukkan hasil perkalian 3000 dan 300000 kedalam kalimat yang ditampilkan.














E.  KESIMPULAN
1.      Seorang programmer harus tepat dalam menentukan penggunaan tipe data untuk variable karena sifat dari masing - masing tipe data berbeda-beda, baik dalam pemanggilannya maupun dalam bit datanya.
Type
Keterangan
Void
Diartikan sebagai type data dan tanpa pengembalian
Int
Bilangan bulat (Integer)
Float
Bilangan pecahan (Floating point)
















DAFTAR PUSTAKA

Kadir,Abdul.2005.Algoritma dan Pemrograman dengan Menggunakan C++.Yogyakarta: ANDI.

Frieyadie.2006.Panduan Pemrograman C++.Yogyakarta: ANDI.