• Tidak ada hasil yang ditemukan

P PERTEMUAN : 3 endahuluan Algoritma+Bahasa C

N/A
N/A
Protected

Academic year: 2018

Membagikan "P PERTEMUAN : 3 endahuluan Algoritma+Bahasa C"

Copied!
16
0
0

Teks penuh

(1)

BAB IIPENDAHULUAN ALGORITMA+BAHASA C

II.1 Algoritma

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis”. Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

Suatu rancangan ilmiah biasanya memiliki kaidah-kaidah tertentu serta notasi-notasi yang bersifat baku, demikian juga algoritma. Notasi algoritma sering juga disebut pseudocode. Pseudocode pada dasarnya mengandung kata-kata kunci serta frasa bahasa inggris yang dimaksudkan untuk mengendalikan aliran kendali pada komputer.

Contoh Algoritma dalam kehidupan nyata:

Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:

1. Menulis surat

2. Surat dimasukkan ke dalam amplop tertutup Struktur Dasar Algoritma

Algoritma Nama_Algoritma

{Penjelasan tentang algoritma, yang berisi uraian singkat mengenai apa yang dilakukan oleh algoritma}

Deklarasi

{Semua nama yang dipakai, meliputi nama tipe, nama tetapan, nama peubah, nama prosedur dan nama fungsi didefinisikan disini}

Deskripsi

{Semua langkah/aksi algoritma dituliskan disini}

(2)

3. Amplop ditempeli perangko secukupnya.

4. Pergi ke Kantor Pos terdekat untuk mengirimkannya.

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.

Pelaksana algoritma adalah Komputer.

Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program.

Kriteria Algoritma Menurut Donald E. Knuth

1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar. 2. Output: algoritma harus memiliki minimal satu buah output keluaran.

3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. 4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).

5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1

Langkah-langkah dalam pemrograman komputer 1. Mendefinisikan masalah

Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard):

“Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan, proses serta outputnya.

2. Menemukan solusi

Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan.

Contohnya masalah invers matriks, maka kita dapat membagi menjadi beberapa modul:

(3)

� mencari invers matriks

� menampilkan hasil kepada pengguna

Dengan penggunaan modul tersebut program utama akan menjadi lebih singkat dan mudah dilihat.

3. Memilih algoritma

Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut 4. Menulis program

Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya. 5. Menguji program

Setelah program jadi, silahkan uji program tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan.

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.

II.2 Paradigma Pemograman

Bahasa Pemograman

 Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman.

(4)

pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama.

Terdapat beberapa jenis pemograman diantaranya adalah 1. Pemrograman Prosedural

 Berdasarkan urutan-urutan, sekuensial

 Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur

merupakan kumpulan instruksi yang dikerjakan secara berurutan.

 Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.

2. Pemrograman Fungsional

 Berdasarkan teori fungsi matematika

 Fungsi merupakan dasar utama program.

3. Pemrograman Terstruktur

 Secara berurutan dan terstrukrtur.

 Program dapat dibagai-bagi menjadi prosedur dan fungsi.

 Contoh: PASCAL dan C

4. Pemrograman Modular

 Pemrograman ini membentuk banyak modul.

 Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri

 Sebuah program dapat merupakan kumpulan modul-modul.

 Contoh: MODULA-2 atau ADA

5. Pemrograman Berorientasi Obyek

 Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi

 Contoh: C++, Object Pascal, dan Java.

6. Pemrograman Berorientasi Fungsi

 Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.

 Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.

(5)

 Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.

 Contoh: PROLOG

II.3 Struktur Sistem Komputer dan Siklus Hidup Perangkat Lunak

Struktur sistem komputer terdiri dari 3 bagian utama yaitu hardware, software dan Brainware. Hardware adalah semua bagian fisik komputer, dan dibedakan dengan data yang berada di dalamnya atau yang beroperasi di dalamnya, dan dibedakan dengan perangkat lunak (software) yang menyediakan instruksi untuk perangkat keras dalam menyelesaikan tugasnya.

Software adalah perangkat lunak yang umumnya digunakan untuk mengontrol perangkat keras, melakukan perhitungan, berinteraksi dengan perangkat lunak lainnya, dan lain-lai.

Brainware adalah setiap orang yang terlibat dalam kegiatan pemanfaatan komputer/ sistem pengolahan data. Brainware merupakan sumber inspirasi utama bagi terbentuknya suatu sistem komputer.

Menurut tingkat pemanfaatan terhadap komputer, Brainware digolongkan dalam empat tingkatan dimulai dari tingkatan yang tertinggi:

1. System Analyst: Penanggung jawab dan perencana sistem dari sebuah proyek pembangunan sebuah sistem informasi khususnya yang memanfaatkan komputer

2. Programmer : Pembuat dan petugas yang mempersiapkan program yang dibutuhkan pada sistem komputerisasi yang dirancang

3. Administrator : Seseorang yang bertugas mengelola suatu sistem operasi dan program-program yang berjalan pada sebuah sistem/jaringan komputer

4. Operator : Pengguna biasa, hanya memanfaatkan sistem komputer yang sudah ada

(6)

Gambar 1Struktur Sistem Komputer

Siklus hidup perangkat lunak dapat dilhat pada gambar 2 sebagai berikut

Gambar 2 Siklus Hidup Perangkat Lunak

Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman

menempati posisi dibagian software dan di bagian implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program).

II.4 Bahasa C

(7)

Proses Kompilasi dan Linking Program C

Proses dari bentuk source program, yaitu program yang ditulis dalam bahasa C hingga menjadi program yang executable ditunjukkan pada gambar 1

Gambar 3 Proses Kompilasi-Linking dari Program C /* Program nama program */

/* Semua pendefinisian tetapan dan tipe bentukan ditulis sebagai makro */

/* Prosedur dan fungsi didefinisikan disini */

/* Deklarasi */

/* Semua nama yang penggunaannya global didefinisikan disini */

/* Deskripsi */ main()

{

(8)

Keterangan

Pertama kali program ditulis dengan menggunakan editor dan disimpan didalam file program sumber dengan ekstension .c. Jika membuat program untuk file header disimpan dengan ekstension.h. Kemudian kode file program sumber dikompilasi oleh compiler menjadi object code dan disimpan pada sebuah file object (dengan ekstension .obj). Object code sudah berbentuk kode mesin, tapi kode ini belum bisa dimengerti oleh komputer. Agar dapat dimengerti oleh komputer maka object code bersama dengan object code yang lain serta file library (file yang berisi rutin untuk tugas tertentu) perlu dikaitkan (linking) dengan menggunakan linker. Sehingga terbentuk suatu file yang executable (program yang dapat dijalankan secara langsung dalam lingkungan sistem operasi). Program hasil linker ini disimpan dalam sebuah file executable dengan ciri mempunyai ekstension .EXE

.

Memecah Baris Statemen

Suatu statemen di program C yang panjang dapat ditulis dalam beberapa baris penulisan. Akhir dari suatu baris yang menggunakan tanda ’\’ menunjukkan bahwa baris berikutnya adalah baris sambungannya.

Contoh: Printf(”ini adalah bentuk string yang panjang yang ditulis \ dalam dua baris penulisan \n”);

Contoh Algoritma 1:

Algoritma tulis

{Menuliskan nilai A di layar monitor}

Deklarasi Nama : string A, B : integer

Deskripsi A ← 25 B ← 100 A ← B

(9)

Program Algoritma 1:

II.4.1 Header File

Header file untuk library disertakan dengan menambahkan ke kode sumber: termasuk header.h di bagian atas file program. Sebagai contoh: # include "myheader.h"

Contoh

#include <stdio.h> main ()

{

printf ("C standard I/O fle is included\n"); printf ("Hello world!");

}

Sebuah program yang ingin menggunakan fungsi matematika seperti cos akan perlu untuk menyertakan file header library matematika (math.h)

#include <stdio.h>

include digunakan pada program agar program tersebut menggunakan library yang dimaksud. Pada contoh di atas, #include <stdio.h> berarti program tersebut menggunakan library stdio.h. Secara otomatis, preprocessor C akan mencari file teks yang bernama stdio.h. Library stdio.h

/* Menuliskan nilai A di layar monitor */ #include <stdio.h>

printf ("masukan nama "); scanf("%s", Nama); printf("%s",Nama);

(10)

adalah library pada C yang digunakan untuk operasi input output (stdio = Standard Input and Output). Tanpa menggunakan library ini, kita tidak bisa menggunakan perintah-perintah input/output pada program kita.

Tabel 1. Header File

Header File Purpose

assert.h Defines the assert debugging macro.

ctype.h Contains information used by the character classification and character conversion macros (such as isalpha and toascii). Example: isalnum(), isupper(), isspace().

errno.h Defines constant mnemonics for the error codes.

float.h Contains parameters for floating-point routines.

limits.h Contains environmental parameters, information about compile-time limitations, and ranges of integral quantities.

locale.h Declares functions that provide country- and language-specific information. Example: localeconv(), setlocale().

math.h Declares prototypes for the math functions and math error handlers. Example: abs(), cos(), log(), pow(), sin(), tan().

setjmp.h Declares the functions longjmp and setjmp and defines a type jmp_buf that these functions use. Example: longjmp(), setjmp().

signal.h Defines constants and declarations for use by the signal and raise functions. Example: raise(), signal().

stdarg.h Defines macros used for reading the argument list in functions declared to accept a variable number of arguments (such as vprintf, vscanf, and so on).

stddef.h Defines several common data types and macros.

stdio.h Defines types and macros needed for the standard I/O package defined in Kernighan and Ritchie and extended under UNIX System V. Defines the standard I/O predefined streams stdin, stdout, stdprn, and stderr and declares stream-level I/O routines. Example: printf(), scanf(), fgets(), getchar(), fread().

stdlib.h Declares several commonly used routines such as conversion routines and search/sort routines. Example: system(), time(), rand(), atof(), atol(), putenv().

string.h Declares several string-manipulation and memory-manipulation routines. Example: strcmp(), setmem(), _fstrcpy(), strlen().

time.h Defines a structure filled in by the time-conversion routines asctime, localtime, and gmtime, and a type used by the routines ctime, difftime, gmtime, localtime, and stime. It also provides prototypes for these routines.

(11)

Komentar program didefinisikan sebagai bagian dari sintaks program yang tidak ikut dibaca pada saat proses kompilasi.

a. Menggunakan Tanda //, tanda ini digunakan untuk menuliskan komentar yang banyaknya hanya satu baris

b. Menggunakan Tanda /*…*/, tanda ini digunakan untuk menuliskan komentar yang banyaknya satu baris atau lebih.

b. Identifier

Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenalinya. Identifier sendiri dapat berupa nama variable, konstanta, dan fungsi. Identifier yang berperan sebagai variabel dan konstanta berfungsi untuk menampung sebuah nilai yang digunakan dalam program. Contoh program dari algoritma 1 di atas, maka a,b, dan nama merupakan identifier. Dalam menentukan atau membuat identifier dalam program, kita harus memperhatikan hal-hal berikut:

a. Bahasa C bersifat case sensitive, artinya bahasa C membedakan variabel yang ditulis dengan huruf kapital dan huruf kecil.

b. Identifier tidak boleh berupa angka atau diawali dengan karakter yang berupa angka. Contoh: int 2x (salah), int 1000 (salah), int x2 (benar).

c. Identifier tidak boleh mengandung spasi. Contoh: int bilangan bulat; (salah), int bilangan_bulat; (benar), int _bilanganbulat (benar).

d. Identifier tidak boleh menggunakan karakter-karakter simbol (#, $, %, dll).

e. Identifier tidak boleh menggunakan kata kunci (keyword) yang terdapat pada C. Contoh: int break; (salah).

f. Nama identifier sebaiknya disesuaikan dengan kebutuhannya, artinya jangan sampai orang lain bingung hanya karena salah dalam penamaan identifier. g. Sebisa mungkin hindarilah penggunaan nama identifier yang sama

dengan identifier yang digunakan oleh C.

(12)

Konstanta adalah jenis identifier yang bersifat konstan atau tetap. Suatu konstanta harus didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string, contoh: 20; 3.14; 2.50005; ‘X’; ‘Bahasa C’.

Contoh : #define PHI 3.14 #define nim "1043304"

#define nama "Tasya Tembem" 2. Variabel

Variabel adalah sebuah identifier yang mempunyai nilai dinamis. Artinya bahwa nilai variabel tersebut dapat diubah sesuai kebutuhan dalam program. Contoh penamaan variabel:

Benar : NIM, a, nama_mhs, A1043304, nilai

Salah : %nilai_mhs, 80nama, rata-rata, ada spasi, penting!

II.4.3 Tipe Data

Dalam bahasa C terdapat lima tipe data dasar, yaitu: char, int, float, double, dan void. Tabel 1.1 Tipe Data Dasar Berdasarkan bahasa C

1. Char 1 byte - 128 s/d 127 %c Karakter/string 2. Int 2 byte - 32768 s/d 32767

Tipe data ini digunakan untuk data-data angka yang tidak mengandung angka di belakang koma (Int).

Bentuk umum deklarasi variabel :

(13)

2) Tipe Bilangan Riil

Tipe ini adalah tipe yang merepresentasikan data-data bilangan yang mengandung angka di belakang koma. Tipe data yang termasuk ke dalam kategori ini adalah: float, double.

3) Tipe Logika

Tipe ini adalah tipe yang merepresentasikan data-data yang mengandung dua buah nilai, yaitu nilai logika (boolean) – true dan false.

4) Tipe Karakter/String

Tipe character merupakan kumpulan bermacam-macam character (set of character) yang terdiri dari alfabet.

 Alfabet bilangan desimal (decimal digits):0,1,2…9

 Alfabet huruf latin (Capital letter):A,B,…Z

 Alfabet huruf latin kecil (common letter)a..z

Tipe ini hanya terdiri dari 1 karakter. Dalam program konstanta bertipe char ditulis diantara tanda petik misalnya ‘A’ ‘,’ ‘4’

Contoh Algoritma 2

Program Algoritma 2 Algoritma variable

{Program perbedaan output variable}

Deklarasi

C = 'C' /* variabel C diisi dengan karakter "C" */ X = 2.35E+10 /* variabel X diisi dengan 2.35E+20 */ Write("Nilai A adalah : ", A) /* Menampilkan isi variabel A */ Write("Nilai B adalah : ", B) /* Menampilkan isi variabel B */ Write("Nilai C adalah : ", C) /* Menampilkan isi variabel C */ //Program perbedaan output variable

(14)

II.4.4 Variabel Global dan Lokal

Variabel Global

Program dalam bahasa C selalu terdapat fungsi utama dengan nama main(). Jika kita mendeklarasikan sebuah variabel di luar fungsi, maka dengan sendirinya komputer akan menganggap variabel tersebut sebagai variabel global.

Variabel Lokal

Variabel lokal adalah variabel yang hanya dikenali oleh suatu fungsi saja, artinya tidak dikenal oleh lingkungan luar di dalam program yang kita buat.

Contoh variabel global dan lokal:

II.4.5 SOAL LATIHAN

#include <stdio.h>

int A; //variabel global

int main() {

(15)

A. Tuliskan kembali program dibawah ini, compile, dan tuliskan semua pernyataan error/ kesalahaan yang ada dan tuliskan bagaimana solusinya

1. # include <stdio.h> void main( ) {

Printf (“hello world”) }

2. #include “stdio.h” #include “conio.h” void main()

{ float nilaisudut; clrscr();

printf(“Menghitung nilai sinus, cosinus dan tangens\n”); printf(“Masukkan sudut : “); scanf(“%f”, &sudut);

printf(“Nilai sinus %.2f derajat adalah %.3f”, sudut, sin(sudut)); printf(“Nilai cosinus %.2f derajat adalah %.3f”, sudut, cos(sudut)); printf(“Nilai tangens %.2f derajat adalah %.3f”, sudut, tan(sudut)); getch();

}

B.

Buatlah Algoritma untuk soal dibawah ini

1. Menghitung Luas Persegi panjang dengan ketentuan sebagai berikut Input : Panjang, Lebar

Proses: Luas = Panjang X Lebar Output: Luas

2. Menghitung Keliling Persegi Panjang dengan ketentuan sebagai berikut Input : Panjang, Lebar

Proses: Keliling = 2*(Panjang + Lebar) Output: Keliling

(16)

Proses:Nilai Akhir = 0.2 * Tugas + 0.3 * UTS + 0.5 * UAS Output:Nilai Akhir

4. Menghitung Luas Lingkaran dengan ketentuan sebagai berikut Input : Jari-Jari, Phi(Buat sebagai konstanta)

Proses:Luas Lingkaran=Phi X r2

Output:Luas Lingkaran

5.Buatlah algoritma untuk menghitung konversi suhu.dari Celcius menjadi Reamur dan Farenheit.

Input: suhu dalam Celcius

Proses: R = 4/5 * C dan F = 9/5 * C + 32 Output: suhu dalam Reamur dan Farenheit

Gambar

Gambar 2 Siklus Hidup Perangkat Lunak
Gambar 3 Proses Kompilasi-Linking dari Program C
Tabel 1. Header File

Referensi

Dokumen terkait

[r]

2011 , ‘Pengaruh Konseling Apoteker Terhadap hasil Terapi Pasien Hipertensi di Poliklinik Penyakit dalam RSUD Kraton Kabupaten Pekalongan’, Tesis, MSc, Fakultas Farmasi,

Dari table diatas dapat dilihat bahwa nigeria mengekspor produk perhiasan dalam jumlah yang tidak terbilang kecil, jenis produk perhiasan Nigeria yang

Methane oxidation bacteria termasuk di dalam methanotrophs atau methanophiles yaitu prokariot yang menggunakan methane sebagai satu-satunya sumber karbon dan energi,

Berdasarkan hasil evaluasi penawaran dan evaluasi teknis yang kami lakukan dari tanggal 25 Agustus s/d 1 September 2015 pada proses Seleksi Sederhana untuk

social education , practical training , nasehat hukum, bimbingan hukum, dan pemberi informasi hukum. 2) Peran Perhimpunan Bantuan Hukum dan HAM Indonesia (PBHI) dalam

upaya-upaya hukum yang dapat dilakukan konsumen listrik apabila dirugikan oleh PT.PLN Cabang Makassar dalam pemanfaatan jasa tenaga listrik.. Konsumen dapat menyampaikan

Pengenalan dan pemakaian basic tools pada adobe photoshop.