Popular Posts

Software Engineering

Materi Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (object-oriented programming disingkat OOP) merupakan pemograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Istilah-istilah dalam OOP:
  • Kelas atau Class

    Merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/ turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
  • Objek

    Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer, objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
  • Abstraksi

    Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi

    Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan

    Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Salah satu pemograman pendukung OOP adalah bahasa pemograman Java.

Java adalah salah satu bahasa pemograman OOP. Bahasa ini awalnya dibuat oleh James Gosling. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
java.lang: Peruntukan kelas elemen-elemen dasar.
java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

Kelebihan bahasa pemograman Java antara lain:
  • Multiplatform

    Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform/ sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin/ bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
  • OOP (Object Oriented Programming - Pemrogram Berorientasi Objek)
  • Perpustakaan Kelas Yang Lengkap

    Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
  • Bergaya C++

    Memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
  • Pengumpulan Sampah otomatis

    Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).
Selain mempunyai kelebihan seperti yang sudah dijelaskan di atas, pemograman Java juga mempunyai kekurangan yaitu:
  • Tulis sekali, jalankan di mana saja

    Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
  • Mudah didekompilasi

    Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Micosoft, NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/ reverse-engineer.
  • Penggunaan memori yang banyak.

    Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

Banyak pihak telah membuat IDE (Integrated Development Environment - Lingkungan Pengembangan Terintegrasi) untuk Java. Yang populer saat ini (Juli 2006) antara lain:
  • Dr. Java, program gratis yang dikembangkan oleh Universitas Rice, Amerika Serikat
  • BlueJ, program gratis yang dikembangkan oleh Universitas Monash, Australia
  • NetBeans (open source- Common Development and Distribution License (CDDL))
  • NetBeans disponsori Sun Microsystems, dan versi terkininya memilki Matisse, sebuah GUI Editor yang menurut pendapat umum merupakan yang terbaik.
  • Eclipse JDT (open source- Eclipse Public License). Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya.
  • IntelliJ IDEA (commercial, free 30-day trial)
  • Oracle JDeveloper (free)
  • Xinox JCreator (ada versi berbayar maupun free)
  • JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan memori lebih sedikit) dari kebanyakan IDE.



Materi Pemrograman Web Dinamis

Website Dinamis

Website dinamis adalah website yang dapat menampilkan hamalan-halaman web dengan informasi yang selalu berubah secara atraktif dan dapat berinterkasi dengan user. PHP sangat bagus digunakan untuk membuat website dinamis. Karena, PHP tidak dapat menyimpan informasi sendiri, maka diperlukan sebuah database untuk menyimpan informasi yang ditampilkan. MySQL adalah salah satu pilihan dalam mengembangkan website dinamis dengan PHP. MySQL sangat mudah diakses dari PHP. Kelebihan PHP dan MySQL adalah dapat berjalan di semua sistem operasi.
Mulai Dari tutorial ini akan dijelaskan bagaimana cara Membuat Website Dinamis Menggunakan PHP dan MySQL. Tutorial ini akan berseri, dan setiap seri tutorial akan berhubungan dengan seri tutorial lainnya. Untuk itu disarankan untuk membaca tutorial dari awal.

Bagi kebanyakan orang sebuah halaman web adalah sebuah halaman web, yang dibuka dengan browser dan menampilkan informasi. Ada halaman web yang menampilkan informasi yang tidak berubah dan ada juga yang menampilkan informasi yang selalu berubah atau informasi terbaru seperti berita. Halaman web yang menampilkan informasi yang tidak berubah disebut dengan halaman statis, yang relatif mudah untuk dibuat. Seseorang membuat document HTML secara manual atau menggunakan tool seperti dreamweaver dan meng-uploadnya ke server sehingga bisa dikunjungi oleh pengguna. Jika diperlukan perubahan maka tinggal menggantinya dengan yang baru.
Halaman yang menampilkan informasi yang selalu berubah disebut dengan halaman dinamis. Halaman web dinamis juga di bentuk dari HTML tapi tidak sesimpel halaman statis. HTML ini dibentuk menggunakan bahasa pemrograman misalnya PHP, dimana informasi yang ditampilkan disimpan dalam sebuah "tempat penyimpanan", yang umumnya dalam sebuah database seperti MySQL. Website yang menampilkan halaman dinamis disebut website dinamis, misalnya website yang menampilkan berita sehari-hari yang tiap harinya menampilkan informasi yang berbeda.

PHP
Larry Ullman dalam Visual QuickPro Guide PHP 6 and MySQL 5 for Dynamic Web Sites (2008) mengatakan, PHP originally stood for “Personal Home Page” as it was created in 1994 by Rasmus Lerdorf to track the visitors to his online résumé. As its usefulness and capabilities grew (and as it started being used in more professional situations), it came to mean“PHP: Hypertext Preprocessor.”.
PHP adalah bahasa pemrograman yang didesain untuk menghasilkan halaman web secara interaktik pada komputer yang menyimpannya / mengeksekusinya, yang disebut dengan web server. PHP dapat di-embedded dengan HTML, yang artinya anda dapat menggunakan HTML di dalam PHP atau menaruh script PHP dalam HTML tag. PHP dijalankan di server untuk membentuk tag HTML, kemudian server mengirimkan halaman yang diminta oleh pengguna.

MySQL
MySQL adalah database manangement system untuk relational database atau RDBMS. Database secara ringkas adalah kumpulan data yang mungkin bisa text, bilangan, binari file, yang disimpan dan diorganisir oleh DBMS. MySQL adalah RDBMS gratis yang merupakan saingan dari RDBMS yang berbayar seperti Oracle dan Microsoft SQL Server.
Walapun PHP sangat bagus dalam membangun website dinamis tetapi PHP tidak dapat menyimpan informasi pada dirinya sendiri. Karena PHP adalah bahasa pemrograman. Sehingga anda memerlukan database untuk menyimpan informasi tersebut. MySQL adalah salah statu pilihan dalam mengembangkan website dinamis dengan PHP. MySQL sangat mudah diakses menggunakan PHP.

Apa yang Perlukan untuk Membangun Website Dinamis?
·   Sebuah aplikasi web server, misalkan Apache, Abyss, atau IIS
·   PHP
·   MySQL
·   Sebuah Browser seperti microsoft internet explorer, mozilla, opera, safari.
· Sebuah text editor (dalam membuat tutorial ini digunakan macromedia dreamweaver). untuk lebih mudahnya anda bisa menginstall XMAPP yang sudah berisi PHP, MySQL, dan Apache dalam satu paket. 

Website Hello World
Setelah semua kebutuhan di atas terpenuhi anda bisa memulai untuk belajar membuat website dengan PHP. Seperti pembelajaran bahasa pemograman lainnya tutorial ini akan dimulai dengan website hello world, yang akan menampilkan text "hello world". Seperti disebutkan di atas PHP dapat ditaruh dalam HTML tag. Untuk menambahkan code PHP dalam sebuah halaman, tempatkan code PHP di dalam PHP tag:
<?PHP
?>
segala sesuatu yang diletakkan di dalam PHP tag akan dieksekusi oleh web server dan text di luar PHP tag akan segera dikirim ke web browser sebagai HTML biasa. Tetapi anda harus ingat,  file yang berisi code PHP harus disimpan dengan ektensi .php agar web server mengeksekusinya sebagai php script. Untuk membuat website hello world ikutilah langkah-langkah di bawah ini:
  1. Buatlah document baru pada text editor anda (tidak masalah editor apa yang anda gunakan).
  2. Mulai dengan mengetik document HTML dasar seperti di bawah ini :
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>hello world</title>
    </head>
    <body>
    <p>Belajar PHP</p>

    </body>
    </html>
  4. Sebelum penutup tag body (</body>) tambahkan kode PHP di bawah ini :
    <?php
    echo "hello world my name is PHP<br>This is generate using PHP ";
    ?>
  5. Jadi hasil akhirnya seperti di bawah ini :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>hello world</title>
</head>
<body>
<p>Belajar PHP</p>

<?php
echo "hello world my name is PHP<br>This is generate using PHP";
?>


</body>
</html>

echo digunakan untuk mengirim text / HTML tag ke web browser, text / tag HTML yang dikirim diletakkan dalam tanda petik dua ". PHP adalah case-insensitive jika yang ditulis adalah nama dari sebuah fungsi, jadi ECHO, eCho, dan echo semuanya akan berfungsi, tapi tentunya echo jauh lebih mudah dalam menulisnya bukan? setiap baris kode php diakhiri dengan tanda titik kome ;. Di atas, echo digunakan untuk mengirim text dan tag HTML "hello world my name is PHP<br>This is generate using PHP ". "hello world my name is PHP" dan "This is generate using PHP" adalah text dan "<br>" adalah tag HTML untuk membuat line break (enter).
  1. Simpan document tersebut dengan nama hello.php dan taruh pada direktori web server anda. Jika anda menggunakan XAMPP, anda akan menaruhnya di direktori c:/xampp/htdocs/
  2. Untuk melihat hasilnya, buka web browser anda dan ketik URL "http://localhost/hallo.php" atau "http://127.0.0.1/hallo.php". Anda harus menggunakan URL untuk melihat hasilnya, karena PHP perlu diekseskusi oleh web server. Anda tidak bisa hanya dengan membukanya di browser seperti mebuka document HTML. 



Materi Pemrograman Dasar

1)       Pengertian Algoritma
Pandangan mengenai komputer sebagai sebuah mesin yang “pintar” adalah pandapat yang salah, karena komputer hanyalah suatu alat yang diberi serangkaian perintah oleh manusia sehingga dapat menyelesaikan permasalahan secara cepat, akurat, bahkan berulang-ulang tanpa kenal lelah dan bosan. Sekumpulan instruksi yang merupakan penyelesaian masalah itu dinamakan program. Agar program dapat dilaksanakan oleh komputer, program tersebut harus ditulis dalam suatu bahasa yang dimengerti oleh komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Urutan langkah-langkah yang sistematis untuk menyelesaikan sebuah masalah dinamakan algoritma. Jadi algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah. Kata logis merupakan kata kunci. Langkah-langkah tersebut harus logis, ini berarti nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah. Sebagai contoh tinjau persoalan mempertukarkan isi dua buah bejana, A dan B. Bejana A berisi larutan yang berwarna merah, sedangkan bejana B berisi air berwarna biru. Kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah. Ada 2 algoritma untuk menyelesaikan permasalahan tersebut, yaitu :
a)    Algoritma yang pertama, ada dua langkah :
(1)       Tuangkan larutan dari bejana A ke dalam bejana B
(2)       Tuangkan larutan dari bejana B ke dalam bejana A
Algoritma tukar isi bejana di atas tidak menghasilkan pertukaran yang benar, karena langkah-langkahnya tidak logis sehingga yang terjadi adalah percampuran keduanya.
b)    Algoritma yang kedua, ada 3 langkah :
(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
Sekarang, dengan algoritma tukar isi bejana yang sudah diperbaiki ini, isi bejana A dan B dapat dipertukarkan dengan benar.
Dari kedua contoh algoritma di atas dapat diambil 2 pesan penting. Pertama, algoritma harus benar. Kedua, algoritma harus berhenti, dan setelah berhenti, algoritma memberi hasil yang benar.
2)       Pengertian Pemrograman
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 algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Program ditulis dalam salah satu bahasa pemrograman, dan kegiatan membuat program disebut pemrograman (programmming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi.  Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan oleh komputer.
3)       Mekanisme Pelaksanaan Algoritma oleh Pemroses
Secara garis besar komputer tersususn atas empat komponen utama: piranti masukan, piranti keluaran, unit pemroses utama dan memori.  Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca dan operasi menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingat-ingat.Yang disimpan di dalam memeori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukan atau keluaran (I/O devices) adalah alat yang memasukkan data atau program kedalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya.  Contoh piranti masukan adalah : keyboard, mouse, scanner dan disk. Contoh alat keluaran adalah : monitor, printer, plottter dan disk.
4)       Bahasa Pemrograman
Saat ini kita dapat berkomunikasi dengan komputer dengan menggunakan bahasa yang kita mengerti. Hal ini dapat kita lakukan karena para ahli telah berhasil membuat kamus yang disebut dengan bahasa pemrograman yang akan menterjemahkan bahasa yang kita buat menjadi bahasa mesin, kamus ini disebut dengan Compiler. Proses penterjemahan bahasa manusia ke bahasa mesin disebut dengan kompilasi. Adapaun bahasa-bahasa pemrograman tersebut antara lain :

Bahasa Pemrograman
Tipe
Dibuat
FORTRAN
Prosedural
1950
BASIC
Prosedural
1960
LISP
Fungsional
1950
Prolog
Deklaratif
1970
Ada
Prosedural
1970
SmalTalk
Berorientasi Objek
1970
Pascal
Prosedural
1970
C
Prosedural
1970
C++
Berorientasi Objek
1980
         
5)       Dasar-dasar Algoritma
a)        Proses, Instruksi dan Aksi
Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan suatu proses. Algoritma disusun oleh sederetan langkah instruksi yang logis. Tiap langkah instruksi tersebut melakukan suatu tindakan atau aksi. Bila suatu aksi dilaksanakan, maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi belum dimulai, t0, dan keadaan pada saat aksi selesai dikerjakan, t1.
To      : Keadaan sebelum aksi dikerjakan
                             Aksi
T1      : Keadaan setelah aksi dikerjakan
Sebagai contoh, tinjau kembali algoritma yang menggambarkan proses mempertukarkan larutan dari dua buah bejana A dan B. Pada setiap pelaksanaan aksi kita amati keadaan awal dan keadaan akhirnya.
To   : bejana A berisi larutan berwarna merah,    bejana B berisi larutan berwarna biru (bejana C masih kosong).
          (1)     Tuangkan larutan dari bejana A ke dalam bejana C
T1     : bejana A kosong, bejana C berisi larutan berwarna        
           Merah

To   : bejana A kosong,  bejana B berisi larutan berwarna biru.
          (2)      Tuangkan larutan dari bejana B ke dalam bejana A
T1     : bejana A berisi larutan berwarna  biru, bejana B kosong

To   : bejana B kosong,  bejana C berisi larutan berwarna merah.
          (3)       Tuangkan larutan dari bejana C ke dalam bejana B
T1     : Bejana B berisi larutan berwarna  merah, bejana A sudah berisi larutan berwarna biru (bejana C  kosong).
Keadaan awal dan keadaan akhir algoritma dapat dijadikan acuan bagi pemrogram dalam merancang suatu algoritma. Keadaan akhir mencerminkan hasil yang diinginkan dari sebuah keadaan awal. Algoritma berisi langkah-langkah pencapaian keadaan akhir dari keadaan awal yang didefinisikan.
Tahap-tahap penyusunan algoritma seringkali dimulai dari langkah yang global lebiha dahulu. Langkah global ini diperhalus sampai ke langkah yang lebih rinci. Pendekatan desain algoritma seperti ini dinamakan perancangan puncak turun (top-down design). Cara pendekatan seperti ini angat bermanfaat dalam membuat algoritma untuk masalah yang cukup rumit atau kompleks.
b)       Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari 3 buah struktur dasar, yaitu :
(1)  Runtunan (sequence)
(2)  Pemilihan (selection)
(3)  Pengulangan (repetition)
c)        Runtunan
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya. Urutan instruksi menentukan keadaan akhir dari suatu algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin juga akan berubah.
d)       Pemilihan
Ada kalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Penulisan pemilihan secara umum :
If kondisi then
          Aksi
Dalam bahasa indonesia, if berarti “jika” dan then  artinya “maka”. Kondisi adalah persyaratan yang dapat bernilai salah atau benar. Aksi hanya dilakukan jika kondisi bernilai benar. Perhatikan kata yang digarisbawahi, if dan then merupakan kata kunci(keywords) untuk struktur pemilihan ini. Dalam kehidupan sehari-hari, kita sering menuliskan pernyataan tindakan bila suatu persyaratan dipenuhi. Misalnya :
                   If Zaki memperoleh juara kelas then
                             Ayah akan membelikannya sepeda
                   If jalan panenan macet then
                             Ambil alternatif jalan dipati ukur
Struktur pemilihan if-then hanya memberikan satu pilihan aksi jika kondisi dipenuhi (bernilai benar), dan tidak memberi pilihan aksi lain jika bernilai salah. Bentuk pemilihan yang lebih umum ialah memilih satu dari dua buah aksi bergantung pada nilai kondisinya :
                   If kondisi then
                             Aksi 1
                   Else
                             Aksi 2
Else artinya “kalau tidak”. Bila kondisi bernilai benar, aksi 1 akan dikerjakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan. Misalnya pada pernyataan berikut :
                   If hari hujan then
                             Pergilah dengan naik beca
                   Else
                             Pergilah dengan naik motor
Jika kondisi “hari hujan” bernilai benar, maka aksi “pergilah dengan naik beca” dilakukan, sebaliknya aksi “pergilah dengan naik motor” akan dilakukan jika “hari hujan” tidak benar.
e)        Pengulangan
Salah satu kelebihan komputer adalah kemampuannya untuk melakukan melakukan pekerjaan yang sama berulang kali tanpa mengenal lelah. Struktur pengulangan disebut kalang (loop), dan bagian algoritma yang diulang (aksi) dinamakan badan kalang (loop body).
6)       Struktur Program Bahasa Pascal dan Bahasa C
a)    Algoritmik
Algoritma nama_algoritma
{kepala algoritma berisi penjelasan seperlunya}
Deklarasi {berisi variabel yang terlibat}
Deskripsi {berisi detail algoritma}

b)    Bahasa Pascal
            Program nama_program;
            [deklarasi label]
          [deklarasi konstan]
[deklarasi tipe]
[deklarasi variable]
[deklarasi subprogram]
Begin
            Pernyataan;
          ……
          Pernyataan
End.              
c)    Bahasa C
            #include <stdio.h>
            [deklarasi subprogram]
          Main()
            {
                        [deklarasi variabel]
                   Pernyataan;
                   ……
                   Return 0;
            }
7)       Variabel
Variabel (perubah) merupakan suatu nama yang menyiratkan lokasi memori komputer yang dapat digunakan untuk menyimpan nilai, dimana isinya dapat diubah-ubah. Variabel dapatdipandang sebagai abstraksi dari lokasi. Hasil evaluasi dari variabel adalah nilai dari variabel itu. Nilai dari suatu variabel dapat diubah dengan assignment statement. Sebuah assignment statement terdiri dari sebuah variabel di sebelah kirinya dan suatu ekspresi disebelah kanannya.

          Algoritmik
Bahasa Pascal
Bahasa C
Deskripsi
  Jumlah ß B1 + B2

Jumlah := B1 + B2

Jumlah = B1 + B2


       Variabel jumlah diubah nilainya menjadi nilai dari ekspresi B1 + B2 setelah dievaluasi. Dalam suatu program Pascal maupun C, setiap variabel yang akan digunakan terlebih dahulu dideklarasikan, dimana setiap variabel harus mempunyai tipe. Deklarasi variabel berguna untuk memberi informasi kepada compiler serta membantu programmer untuk berpikir secara jelas dan berencana.

          Algoritmik
Bahasa Pascal
Bahasa C
Deklarasi    B1,B2,jumlah:integer
Var  B1,B2,jumlah:integer;

Int B1,B2,jumlah;
         
       Aturan penamaan suatu variabel
a)         Pada bahasa pascal penulisan dengan huruf besar dan kecil tidak dibedakan, sedangkan pada bahasa C dibedakan (Case Sensitif).
b)        Boleh terdiri dari angka dengan syarat penulisannya setelah huruf, misal :
Umur31
Sepeda3
c)         Tidak boleh mengandung spasi, terdiri dari underscore (karakter _), misal :
Suhu_ruang (boleh)
Suhu ruang (tidak boleh)
SuhuRuang (boleh)
d)        Tidak boleh ada 2 atau lebih nama yang sama
e)         Tidak boleh menggunakan reserved word (kata kunci),   misal :
Ø  Dalam pascal : program, end, begin, var, dll
Ø  Dalam C         : #include, void, dll
8)       Konstanta
Variabel yang mempunyai nilai yang sifatnya tidak bisa diubah, nilai ditentukan pada saat pendefinisian. Misal :
          <nama konstanta1> = <nilai1>;
          Phi = 3.14;
9)       Jenis/Tipe Data
Pada waktu suatu variabel dideklarasikan, maka tipenya sekaligus ditentukan. Tipe dari suatu variabel menyatakan :
a)         Jenis nilai yang dapat disimpan dalam lokasi memori untuk variabel tersebut, (membatasi himpunan nilai-nilai yang dapat dipunyai variabel tersebut).
b)        Jenis operasi yang dapat dilakukan terhadap variabel bersangkutan.
10)    Ekspresi Matematika
Ekspresi matematika adalah kalimat matematika yang akan memberikan nilai jika dievaluasi.
a)         Ekspresi aritmatika : Suatu ekspresi matematika yang memberikan hasil bertipe angka jika dievaluasi. Operator yang digunakan : +, -, *, /, (, )
Contoh :
Ø   6 * 5 + 7   à 37
Ø   4 * 6 / 3    à 8
b)        Ekspresi Logika : Suatu ekspresi matematika yang memberikan hasil berupa nilai kebenaran (benar/salah, true/false). Operator yang digunakan :
(1)      Perbandingan : =, <, >, <=, >=, <>
(2)      Logika             : and, or
Contoh :
Ø   True and true  à true
Ø   True and false à false
Ø   (4<=5) and (5>=1)
Ø   True and true  à true
11)  Prioritas Operator
Sebuah ekspresi matematika yang terdiri dari beberapa operator, beberapa operator dievaluasi terlebih dahulu dibandingkan operator yang lain. Sebuah operator didahulukan berarti mempunyai prioritas lebih tinggi. Urutan prioritas :
a)         Operator aritmatika
b)        Operator logika dan perbandingan
Contoh : 2 + 5 <= 5 + 7
              à 7 <= 12
              à true
Urutan prioritas operator aritmatika :
a)         *, /
b)        +, -
Jika 2 operator mempunyai prioritas sama, maka yang paling kiri didahulukan.
Contoh :
Ø  7 + 5 * 6 – 10     à 7 + 30 – 10    à 37 -10   à 27
Ø  (4 + 5) / (2 + 1)   à 9 / 3              à 3
(Ekspresi yang terletak dalam tanda kurung harus didahulukan).

          Aritmatika
Arti
Pascal
C
+
Penjumlahan
+
+
-
Pengurangan
-
-
div
Pembagian integer
div
/
modulo
Sisa pembagian
mod
%

Dalam bahasa pascal dan bahasa C, pernyataan yang berkaitan dengan operasi dasar adalah sebagai berikut :

Pernyataan
Algoritmik
Pascal
C
Input
read
read atau readln
scanf
output
write
write atau writeln
printf
Penugasan
ß
:=
=
Akhir pernyataan

;
;
 Fungsi yang sering digunakan :
Pascal
C
Arti
Sqr
Pow
Kuadrat
Sqrt
Sqrt
Akar kuadrat
Ln
Log
Logaritma alami
Exp
Exp
eksponensial

12)    Flowchart
Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah.