• Tidak ada hasil yang ditemukan

PRAKTIK DASAR PEMROGAMAN DAN ALGORITMA

N/A
N/A
Protected

Academic year: 2018

Membagikan "PRAKTIK DASAR PEMROGAMAN DAN ALGORITMA"

Copied!
52
0
0

Teks penuh

(1)

Bahan Ajar Praktikum

PRAKTIK DASAR

PEMROGAMAN DAN

ALGORITMA

(2)

KATA PENGANTAR

emrogaman komputer sudah menjadi kebutuhan penting di era teknologi informasi ini. Meskipun paket progam komersil sudah banyak tersedia untuk membantu menyelesaikan masalah, namun membuat progam sendiri untuk kebutuhan spesifik tetap diperlukan. Progam komersil tidak dapat menyelesaikan masalah yang beraneka ragam dan kompleks.

Memprogam tidak hanya sekesar menulis progam yang “asal jadi” dan memberikan hasil sesuai yang diharapkan. Memprogam itu perlu metodologi agar progam yang ditulis adalah progam yang efektif.

Pada dasarnya, panduan ini dibagi menjadi enam bab, yaitu Notasi Algoritmik, Tipe Data Dasar, Tipe, operator dan ekspresi, Runtunan, Pemilihan, Pengulangan. Buku ini disusun sebagai harapan agar menjadi panduan Mahasiswa dalam mendalami pemrogaman, khususnya algoritma dengan bahasa C, C++ maupun yang sedang mengambil mata kuliah dasar pemrogaman dan algoritma.

Buku ini juga berisi beberapa contoh soal yang variatif, disesuaikan dengan kebutuhan pengajaran.

Pada kesempatan ini, saya juga ingin mengucapkan terima kasih kepada keluarga, istri utamanya yang selalu memberikan dorongan dan semangat. Juga ucapan terima kasih kepada semua pihak yang telah membantu penerbitan buku ini baik secara langsung maupun tidak langsung. Akhir kata, semoga buku ini dapat bermanfaat bagi saya dan bagi para mahasiswa yang menempuh mata kuliah dasar pemrogaman dan algoritma.

Semarang, Agustus 2013

Penyusun

(3)

DAFTAR ISI

1.2. Struktur Teks Algoritma ... 3

1.2.1. Bagian Judul... 5

1.2.2. Bagian Deklarasi ... 5

1.2.3. Bagian Algoritma ... 7

1.3. Translasi Notasi Algoritmik ke Bahasa C ... 7

1.4. Kompilator Bahasa C ... 9

3.1. Tabel Translasi dari Algoritmik ke Pascal dan C ... 20

3.2. Ekspresi ... 23

3.2.1. Ekspresi Aritmetik ... 23

3.2.2. Ekspresi Relasional ... 26

3.2.3. Ekspresi String ... 27

(4)

3.4. Latihan ... 28

BAB 4. RUNTUNAN ... 30

4.1. Pendahuluan... 30

4.2. Contoh-contoh runtunan ... 30

BAB 5. PEMILIHAN ... 34

5.1. Menganalisis kasus ... 34

5.2. Satu kasus ... 35

5.2.1. Contoh-contoh Masalah dengan Satu Kasus ... 36

5.3. Dua kasus ... 36

5.3.1. Contoh-contoh Masalah dengan Dua Kasus ... 37

5.4. Tiga Kasus atau Lebih ... 38

5.4.1. Contoh-contoh Masalah dengan Tiga Kasus atau Lebih ... 39

BAB 6. PENGULANGAN ... 41

6.1. Struktur Pengulangan ... 41

6.2. Pernyataan FOR ... 41

6.2.1. Contoh Pernyataan FOR ... 41

6.3. Pernyataan WHILE ... 42

6.3.1. Contoh Pernyataan FOR ... 42

6.4. Pernyataan REPEAT ... 43

6.5. Tabel Translasi Notasi Algoritmik Struktur Pengulangan ke Notasi Pascal dan C ... 43

(5)

DAFTAR GAMBAR

Gambar 1. Algoritma untuk mencetak “Hello, world” ... 3

Gambar 2. Mencetak tabel konversi Fanrenheit-Celcius ... 4

Gambar 3. Struktur teks algoritma ... 4

Gambar 4. Membuat folder TurboC di drive C:\... 9

Gambar 5. Menjalankan file C:\TurboC\INSTALL.EXE ... 9

Gambar 6. Konfirmasi instalasi ... 10

Gambar 7. Pilih drive untuk melanjutkan instalasi ... 10

Gambar 8. Instalasi selesai ... 10

Gambar 9. Coding C “Hello, World”. ... 11

Gambar 10. Kata kunci C ... 12

Gambar 11. Luas segiempat yang berbentuk empat persegi panjang adalah panjang x lebar ... 30

Gambar 12. Flowchart algoritma menghitung luas persegi panjang ... 31

Gambar 13. Penetapan kuadran untuk titik-titik di bidang kartesian. Kuadran adalah bidang yang merupakan seperempat dari bidang kartesian. ... 35

Gambar 14. Bagan alir yang memperlihatkan pemilihan dengan hanya satu kasus ... 35

Gambar 15. Mencetak “genap” jika data masukan adalah bilangan genap ... 36

Gambar 16. Bagan alir yang memperlihatkan pemilihan dengan dua kasus ... 37

Gambar 17. Menentukan genap atau ganjil ... 38

Gambar 18. Bagan alir yang memperlihatkan pemilihan dengan tiga kasus ... 39

(6)

DAFTAR TABEL

Tabel 1. Ukuran memori untuk tipe data ... 15 Tabel 2. Kode format ... 16 Tabel 3. Karakter escape ... 17 Tabel 4. Tabel translasi notasi algoritmik pengisian nilai, pembacaan, dan penulisan ke dalam notasi bahasa pascal dan C ... 27 Tabel 5. Tabel penentu format dalam bahasa C ... 28

(7)

BAB 1. NOTASI ALGORITMIK

Algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Langkah-langkah penyelesaian masalah tersebut dapat kita tuliskan dalam notasi algoritmik sembarang, asalkan ia mudah dibaca dan dipahami. Tidak ada notasi yang standar untuk menuliskan algoritma sebagaimana pada notasi bahasa pemrogaman. Setiap orang boleh saja mendefinisikan notasi algoritmiknya sendiri. Hal ini bukan persoalan karena notasi algoritma tidak sama dengan kode progam komputer. Progam komputer adalah implementasi algoritma dalam bahasa pemrogaman tertentu. Dalam bab ini akan dibahas mengenai notasi algoritmik.

1.1. Pseudocode

Notasi algoritmik yang baik adalah notasi yang mudah dibaca dan mudah pula di transalasikan ke dalam notasi bahasa pemrogaman. Notasi algoritmik berupa pseudo-code mempunyai korespondensi dengan notasi bahasa pemrogaman sehingga proses penerjemahan dari pseudo-code ke kode progam menjadi lebih mudah.

Tidak ada aturan baku membuat pseudo-code. Tidak seperti bahasa pemrogaman yang direpotkan dengan tanda titik koma (semicolon), indeks, format keluaran, kata-kata khusus, dan sebagainya, sembarang versi pseudocode dapat diterima asalkan notasinya bisa dipahami.

1. Sebuah pernyataan dalam notasi deskriptif:

tulis nilai X dan Y

Maka pseudo-code-nya dalam notasi algoritmik mungkin ditulis sebagai;

write(X,Y)

Notasi write berarti nilai x dicetak ke piranti keluaran. Dengan notasi algoritmik, kita tidak terlalu mempersoalkan format tampilan keluaran, misalnya apakah hasil penulisan antara X dan Y dipisah dengan spasi atau dengan koma, apakah X dan Y

dicetak pada koordinat tertentu di layar, dan sebagainya. Bila X dan Y berisi nilai bertipe bilangan riil (memakai titik desimal) kita juga tidak mempersoalkan berapa angka di belakang koma, dan sebagainya. Hal-hal teknis semacam ini barulah kita pikirkan pada saat translasi notasi algoritmik tersebut ke notasi bahasa pemrogaman. Dengan cara seperti ini, kita telah membuat notasi algoritmik terlepas dari hal-hal teknik seperti yang terdapat dalam bahasa pemrogaman.

(8)

berkoresponden dengan write atau writeln. Asumsi bahwa piranti keluaran adalah layar sebagai berikut:

Algoritmik:

Perhatikan bahwa setiap bahasa mempunyai cara yang berbeda dalam menulis perintah penulisan. Bahasa C misalnya, mengharuskan pemakaian penentu-format

(seperti “%d” pada contoh di atas) untuk nilai yang dicetak. Penentu format “%d”

berarti pada field tersebut nilai yang akan dicetak bertipe bilangan bulat. 2. Sebuah pernyataan dalam notasi deskriptif:

isikan nilai X ke dalam min

maka pseudo-code-nya dalam notasi algoritmik menjadi:

min X

Notasi “” berarti mengisi (assign) peubah (variable) min dengan nilai x. Translasi

notasi “” ke dalam bahasa Pascal adalah “:=”, dalam bahasa C adalah “=”, dalam bahasa Basic adalah “=” dan dalam bahasa Fortran juga “=”. Jadi, translasi min x ke dalam masing-masing bahasa tersebut adalah:

(9)

1.2. Struktur Teks Algoritma

Dua buah algoritma sederhana diberikan untuk mengilustrasikan teks algoritma seperti apa yang dipakai di dalam buku ini.

1. Algoritma pertama adalah untuk mencetak tulisan: Hello, world

Algoritma Hello world hampir selalu ditemukan pada buku-buku bahasa pemrogaman. Pelajaran pemrogaman dan buku-buku bahasa pemrogaman sering memulai contoh progam pertamanya dengan memberikan contoh bagaimana

mencetak “Hello, world” ke layar. Progam “Hello, world” pertama kali dikemukakan

oleh Brian W. Kernigham, yakni seorang penemu Bahasa C.

Algoritma untuk menulis “Hello, world”:

PROGAM helloworld

{ Progam untuk mencetak “Hello world”

Masukan: -

Gambar 1. Algoritma untuk mencetak “Hello, world”

2. Algoritma kedua adalah progam untuk mencetak tabel konversi suhu dalam derajat Fanrenheit (F) dan suhu ekivalennya dalam derajat Celcius (C) dengan menggunakan rumus

C = 5/9 (F – 32)

Data masukan adalah suhu awal (x) dan suhu akhir (y). Tabel keluaran memuat suhu mulai dari x sampai y oF dengan kenaikan sebesar step. Misalnya jika x=o, y=100, dan step =20, tabel yang ingin dihasilkan kira-kira seperti dibawah ini:

0 -17.8

(10)

PROGAM FahrenheitCelcius

{ Progam untuk mencetak tabel Fanrenheit-Celcius dari x sampai y dengan kenaikan sebesar step.

Masukan: suhu awal, suhu akhir, step

Keluaran: tabel konversi suhu dalam C dan F }

Gambar 2. Mencetak tabel konversi Fanrenheit-Celcius

Dengan memperhatikan kedua contoh algoritma sederhana di atas, maka teks algoritma selalu disusun oleh tiga bagian (blok), yaitu:

1. Bagian judul (header),

2. Bagian deklarasi (declaration),

3. Bagian algoritma.

Ketiga bagian tersebut secara umum ditunjukkan dalam notasi algoritmik, seperti contoh dibawah ini :

PROGAM Nama Progam

{ Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah apa

yang akan diselesaikan, termasuk masukan dan keluarannya } DEKLARASI

{ semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah, nama prosedur dan nama fungsi diumumkan di sini }

ALGORITMA:

{ berisi langkah-langkah penyelesaian masalah }

Gambar 3. Struktur teks algoritma

Pada setiap bagian sangat dianjurkan menuliskan komentar untuk memperjelas maksud dari pernyataan. Komentar adalah kalimat yang diapit oleh pasangan tanda

kurung kurawal („{„ dan „}‟). Komentar membuat algoritma lebih mudah untuk

(11)

1.2.1. Bagian Judul

Judul adalah bagian yang terdiri atas nama progam dan penjelasan (spesifikasi) tentang nama progam tersebut. Judul diawali dengan kata kunci PROGAM dan nama progam X.

Kata PROGAM ini bukan menyatakan progam dalam bahasa komputer, tetapi menyatakan bahwa kita sedang menulis algoritma untuk progam pemecahan masalah.

Nama progam sebaiknya singkat namun cukup menggambarkan apa yang dilakukan oleh progam. Di bawah nama progam sebaiknya disertai dengan penjelasan singkat tentang apa masalah di progam dan apa masukan dan keluarannya. Dua contoh progam terdahulu mempunyai judul sebagai berikut:

PROGAM HelloWorld

{ Progam untuk mencetak “Hello, world”

Masukan progam ini tidak ada. Keluarannya adalah tulisan „Hello world‟ tercetak di layar.

}

PROGAM FahrenheitCelcius

{ Progam untuk mencetak tabel Fahrenheit-Celcius dari x sampai y de- Kenaikan sebesar step. Masukan progam ini adalah suhu awal, suhu- akhir, step, dan keluarannya adalah tabel konversi suhu dalam C dan F

}

1.2.2. Bagian Deklarasi

Bagian ini digunakan untuk mengumumkan semua nama yang dipakai didalam algoritma beserta propertinya (misalnya tipe). Nama tersebut dapat berupa nama konstanta, nama peubah, nama tipe, nama prosedur dan nama fungsi. Semua nama yang dipakai di dalam algoritma harus dikenali sebelum mereka digunakan. Bagian deklarasi mungkin kosong jika tidak ada penggunaan nama. Progam Helloworld mengandung bagian deklarasi yang kosong, sedangkan progam FahrenheitCelcius berisi deklarasi nama-nama peubah yang digunakan di dalam progam beserta tipenya sebagai berikut:

DEKLARASI F, C : real

(12)

F, C, X, Y dan step adalah nama-nama peubah yang digunakan di dalam bagian algoritma. Nama-nama peubah ini beserta tipenya harus diumumkan di bagian deklarasi sebelum mereka digunakan.

Contoh-contoh deklarasi yang lain (deklarasi nama konstanta, nama tipe peubah, nama prosedur dan fungsi) adalah seperti dibawah ini.

DEKLARASI

{ nama konstanta }

const Npeg = 100 { jumlah pegawai }

const phi = 3.14 { nilai π }

{ nama tipe }

type Titik : record{ koordinat titik di bidang kartesian } { nama peubah (variable)}

c : char {karakter yang dibaca}

Q : titik {titik dalam koordinat kartesian} ketemu : boolean {keadaan hasil pencarian} FUNCTION Apakah_A(input c : char)  boolean

{ mengembalikan nilai true bila c adalah karakter „A‟, atau false bila sebaliknya }

PROCEDURE Tukar(input/output A : integer, input/ouput B : integer}

{ Mempertukarkan nilai A dan B. Parameter A dan B sudah terdefinisi nilainya.

Setelah pertukaran, A berisi nilai B semula, B berisi nilai A semula.}

Npeg dan phi adalah nama konstanta, Titik adalah nama tipe, c, q, dan ketemu adalah nama peubah, Apakah_A adalah nama fungsi, dan Tukar adalah nama prosedur.

Oleh karena nama adalah satu kesatuan leksikal, maka nama tidak boleh mengandung spasi, tanda baca (seperti titik, koma dan sebagainya), operator (seperti +,-,;, dan sebagainya).

Karakter garis bawah (“_”) dapat digunakan untuk mengganti spasi. Jadi, menuliskan nama

fungsi sebagai

Apakah_A

adalah benar, tetapi

Apakah A

(13)

Selain spasi, kita juga tidak membedakan huruf besar (kapital) dan huruf kecil di dalam notasi algoritmik kita. Namun, pada bahasa pemrogaman yang case sensitive seperti bahasa C, huruf besar dan kecil adalah dua karakter yang dianggap berbeda.

1.2.3. Bagian Algoritma

Inilah bagian inti dari sebuah progam. Bagian ini berisi instruksi-instruksi pemecahan masalah dalam notasi pseudo-code.

Progam HelloWorld mengandung bagian algoritma yang hanya berisi satu baris instruksi saja:

ALGORITMA

write(“Hello, world”)

Progam FanrenheitCelcius mengandung bagian algoritma yang berisi beberapa baris instruksi:

ALGORITMA

read(x, y, step) F x

while F ≤ y do

C=5/9 * (F-32) write(F, C) F F+step endwhile

1.3. Translasi Notasi Algoritmik ke Bahasa C

Teks algoritma merupakan desain penyelesaian masalah. Agar dapat dieksekusi oleh komputer, algoritma harus diterjemahkan terlebih dahulu ke dalam notasi bahasa pemrogaman. Penerjemahan dari notasi notasi algoritmik ke notasi bahasa pemrogaman dinamakan translasi.

ALGORITMIK:

PROGAM Nama Progam

{ Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah apa yang akan diselesaikan, apa masukan dan keluarannya }

(14)

{ semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah, nama prosedur dan nama fungsi yang diumumkan disini }

ALGORITMA

{ berisi langkah-langkah penyelesaian masalah }

C:

/* PROGAM Nama Progam */

/* Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah apa yang akan diselesaikan, apa masukan dan keluarannya */

/* DEKLARASI */

/* semua nama yang penggunaannya global didefinisikan disini */ /* purwarupa prosedur dan fungsi didefinisikan disini */

/* ALGORITMA: */ main()

{

/* di sini juga mungkin ada DEKLARASI lokal */ /* semua instruksi progam dituliskan di sini */ }

Beberapa hal penting yang harus diketahui dari bahasa C adalah:

1. Bahasa C bersifat case sensitive. Ini berarti bahasa C membedakan huruf besar (kapital) dengan huruf kecil. Nama yang ditulis dengan huruf besar dianggap berbeda kalau ia ditulis dengan huruf kecil. Misalnya,

N tidak sama dengan n

nama_orang tidak sama dengan NAMA_ORANG, Nama_orang, Nama_Orang

HitKar tidak sama dengan hitkar

(15)

nama di dalam bagian deklarasi (disebut deklarasi lokal) hanya dikenal oleh progam utama saja, tetapi tidak dikenal oleh fungsi atau prosedur.

3. Dalam bahasa C, komentar ditulis di antara “/*” dan “*/”.

1.4. Kompilator Bahasa C

Progam sumber (source progam) dalam bahasa pemrogaman harus dikompilasi terlebih dahulu oleh progam khusus yang disebut kompilator (compiler). Kompilasi progam bertujuan memeriksa kebenaran sintaks (tata bahasa) progam, kemudian, jika tidak ada kesalahan, progam diterjemahkan ke dalam bahasa mesin sehingga siap dieksekusi.

1.4.1. Instalasi Borland Turbo C++ v4.5

1. Langkah pertama buatlah folder di drive C dan beri nama TurboC

Gambar 4. Membuat folder TurboC di drive C:\

2. Langkah kedua menjalankan file C:\TurboC\INSTALL.EXE

(16)

3. Langkah ketiga konfirmasi instalasi

Gambar 6. Konfirmasi instalasi

4. Langkah keempat, pilih drive untuk melanjutkan instalasi

Gambar 7. Pilih drive untuk melanjutkan instalasi

5. Instalasi selesai

Gambar 8. Instalasi selesai

1.4.2. “Hello World” di Borland Turbo C++ v4.5

(17)

Gambar 9. Coding C “Hello, World”.

Kemudian eksekusi, pilih Debug > Run Ctrl+F9

Penjelasan :

1. Header File

Adalah berkas yang berisi prototype fungsi, definisi konstanta, dan definisi variable. Fungsi adalah kumpulan code C yag diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan.

Contoh:

stdio.h math.h conio.h

2. Preprosesor Directive (#include)

Preposesor directive adalah bagian yang berisi pengikut sertaan file atau berkas-berkas fungsi maupun pendefinisian konstanta.

Contoh:

#include <stdio.h> #include phi 3.14

3. Void

Artinya fugnsi yang mengikutinya tidak memiliki nilai kembalian (return). 4. Main ( )

Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika progam dieksekusi, tanpa fungsi main suatu progam tidak dapat dieksekusi namun dapat dikompilasi.

(18)

Statement adalah instruksi atau perintah kepada suatu progam ketika progam itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma (:).

1.4.3. Kata Kunci (Keyword)

Kata kuci-kata kunci yang terdapat di C, sebagai berikut:

Gambar 10. Kata kunci C

1.4.4. Identifier

Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogam yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut:

1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja).

2. Case sensitive: membedakan huruf besar dan huruf kecilnya.

(19)

5. Tidak boleh mnggunakan kata yang sama dengan kata kunci dan fungsi.

1.4.5. Variable

Variable adalah identifier yang nilainya dapat berubah atau diubah selama progam berjalan (dieksekusi). Pengubahnya adalah user atau proses.

Deklarasi variable (tipe_data nama_variable;)

Variable yang akan digunakan dalam progam haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenis data yang bisa disimpan di dalamnya.

Contoh:

int a, b, c;

Initialisasi variable (tipe_data nama_variable=nilai;)

int a=15, b=7, c=0;

1.4.6. Konstanta

Konstanta adalah identifier yang nilainya tetap selama progam berjalan/ dieksekusi. Cara untuk mengubahnya hanya melalui source codenya saja seperti halnya variable, konstanta juga memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri, sesuai dengan tipe masing-masing.

1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda

petik tungal, contohnya : „A‟ dan „@‟.

2. Konstanta integer ditulis dengan tanda mengendung pemisah ribuan dan tidak mengendung bagian pecahan, contohnya: -1 dan 32767

3. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan nilainya bisa ditulis dalam bentuk eksponential (menggunakan tanda e), contohnya : 27.5f(untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1x105).

4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda (“), contohnya: “Pemrogaman Dasar C”.

Contoh :

(20)
(21)

BAB 2. TIPE DATA DASAR

Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variable. Konstanta menyatakan nilai yang tetap, sedangkan variable menyatakan nilai yang apat diubah-ubah selama eksekusi berlangsung.

2.1. Ukuran Memori untuk Tipe Data

Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variable. Konstanta menyatakan nilai yang tetap, sedangkan variable menyatakan nilai yang apat diubah-ubah selama eksekusi berlangsung.

Tabel 1. Ukuran memori untuk tipe data

Untuk mengetahui ukuran memory bisa dipakai fungsi sizeof (<tipe_data>).

Catatan:

Ukuran dan kawasan dari masing-masing tipe data adalah bergantung pada jenis mesin yang digunakan (misalnya mesin 16 bit bisa jadi memberikan hasil berbeda dengan mesin 32 bit).

(22)

Tabel 2. Kode format

Contoh:

1. Coba hilangkan %i nya, apa hasilnya?

2. Coba ganti a menjadi ukuran tipe data yang lain, misalnya float dan char!

2.2. Karakter Escape

(23)

Tabel 3. Karakter escape

2.3. Statement

Apa itu statement?

Macam-macam statement:

1. Statement Kosong/ Empty Statement/ Null Statement

Statement kosong adalah statement yang hanya terdiri dari pengakhiran titik koma (;) saja, sehingga tidak ada tindakan yang akan dilakukan. Statement kosong digunakan untuk memberikan jarak waktu atau delay.

Contoh:

for(int i=0; i<1000; i++);

2. Statement Ungkapan/ Espressions Statement

Statement Ungkapan adalah statement yang dibentuk dari suatu ungkapan yang diakhiri dengan titik koma (;).

Contoh:

luas=panjang*lebar

scanf(“%i”,&luas);

printf(“nilai luas persegi adalah %i”,luas);

luas--;

3. Statement Kendali/ Control Statement

Statement kendali adalah statement yang dipakai untuk mengendalikan proses dari progam, yaitu penyelesaian kondisi/ percabangan (if, case, switch) dan lompatan /perulangan (for, while, do-while, break, continue)

(24)

if (N<0)

printf(“nilai N negative”);

else

printf(“nilai N positif”);

4. Statement Jamak/ Compound Statement/ Block Statement

Statement jamak adalah statement yang terdiri dari gabungan beberapa statement tunggal yang ditulis diantara tanda kurung kurawal (“(“ dan”)”).

Contoh: {

scanf(“%f”,&Panjang);

scanf(“%f”,&Lebar); Luas=Panjang*Lebar;

2.4. Latihan

1. Soal 1

a. Coba ganti \t dengan \n atau \b!

b. Tambahkan //printf (“memberikan comment”); dibawah print (“1 karakter escape\t2.karakter escape”);

2. Soal 2

a. Jika progam di atas di jalankan, bagaimanakah tampilannya? Mengapa demikian?

b. Coba ganti int menjadi long int dan %i menjadi %li. Bagaimana tampilannya?

(25)

Perhatikan setiap perbedaan yang dihasilkan! 4. Soal 4

Adakah perbedaan hasil format yang dihasilkan??? 5. Soal 5

(26)

BAB 3. TIPE, OPERATOR DAN EKSPRESI

Progam komputer pada dasarnya memanipulasi objek (data) di dalam memori. Peubah (variable) dan konstanta (constant) adalah objek data dasar yang dimanupulasi di dalam progam. Deklarasi daftar peubah digunakan untuk menyatakan tipe peubah. Operator menspesifikasikan operasi apa yang dapat dilakukan terhadap peubah dan konstanta. Ekspresi mengombinasikan peubah-peubah dan konstanta untuk menghasilkan nilai baru.

Tipe sebuah objek menentukan himpunan nilai yang dapat dimilikinya dan opeerasi yang dapat dilakukan pada objek tersebut. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan di ranah (domain) nilai. Operasi-operasi (beserta operator) yang dapat dilakukan terhadap tipe tersebut juga didefinisikan.

Tipe data dapat dikelompokkan menjadi atas dua macam: tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang dapat langsung dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya.

3.1. Tabel Translasi dari Algoritmik ke Pascal dan C

(27)

b. perbandin demikian, kita dapat membentuk tipe baru yang bernama boolean dengan typedef sebagai berikut:

typedef enum {false = 0, true = 1} Boolean;

Tipe Boolean di atas selanjutnya dpat digunakan untuk mendeklarasikan peubah yang bertipe boolean:

Boolean ketemu; /* ketemu adalah peubah bertipe Boolean */

Selanjutnya, false dan true dapat digunakan sebagai konstanta boolean di dalam progam C.

2. Sebuah karakter atau string dalam bahasa Pascal diapit dengan sepesang tanda

petik tunggal („…‟), sedangkan dalam bahasa C karakter diapit dengan sepasang tanda petik tunggal („…‟) dan sebuah string diapit oleh sepasang tanda petik

ganda (“…”).

Contoh dalam bahasa Pascal:

(28)

„Teknik Informatika‟ (string)

Contoh dalam bahasa C:

„a‟ (karakter)

“Teknik Informatika” (string)

Perhatikan bahwa di daam bahasa C, „a‟ adalah sebuah karakter, sedangkan “a”

adalah sebuah string.

3. Dalam bahasa Pascal, string yang tidak disertai dengan panjang maka diasumsikan panjangnya adalah default, yaitu 255. Apabila panjangnya ditentukan, panjang tersebut harus disebutkan.

Contoh: kota : string[20];

4. Bahasa C tidak menyediakan tipe string secara khusus. String di dalam bahasa C direpresentasikan dengan larik (array). Kita juga dapat membuat tipe bentukan baru untuk string dengan menggunakan larik dan fasilitas typedef dan panjang string maksimum 255 (seperti nilai defaut panjang string di bahasa Pascal)

typedef char string[255];

Tipe string ini selanjutnya dapat digunakan untuk mendeklarasikan peubah yang bertipe string:

string p, kota; /* p dan kota adalah peubah bertipe string */

Jika panjang string ditetapkan, maka nama peubah yang bertipe string didefinisikan sebagai array karakter disertai panjang string tersebut:

char nama_peubah[n];

dengan n adalah panjang string. Contoh: char kota[20];

5. Dua buah string di dalam bahasa C tidak dapat dibandignkan secara langsung, karena string pada dasarnya adalah array of character. Namun kita dapat membandingkan kesamaan dua buah string dengan menggunakan fungsi strcmp. Fungsi ini menghasilkan nilai perbandingan dua buah string, s1 dan s2 dengan format:

nilai = strcmp (s1,s2)

yang dalam hal ini, nilai=0 jika s1=s2, nilai<0 jika s1<s2, dan nilai >0 jika s1>s2. 6. Pendeklarasian konstanta dalam bahasa C, selain menggunakan kata kunci const,

dapat juga menggunakan pernyataan baris #define. Pernyataan #define

mendefinisikan konstanta simbolik dengan cara penulisan:

#define nama nilai

(29)

Contoh:

Pernyataan #define harus diletakkan di luar blok main(). Perhatikan bahwa tidak

diperlukan karakter “;” pada akhir pernyataan #define. Nama-nama seperti PHI, N dan SANDI adalah konstanta simbolik, bukan peubah, sehingga tidak muncul di bagian deklarasi. Nama-nama konstanta simbolik menurut konvensi ditulis dengan huruf besar untuk membedakannya dengan nama peubah.

3.2. Ekspresi

Suatu nilai dipakai untuk proses transformasi menjadi keluaran yang diinginkan. Transformasi nilai menjadi keluaran dilakukan melalui suatu perhitungan (komputasi). Cara perhitungan ini dinyatakan dalam suatu ekspresi. Ekspresi terdiri atas operand dan operator. Operand adalah nilai yang dioperasikan dengan operator tertentu. Operand dapat berupa konstanta, nama peubah, nama konstanta, atau hasil darui suatu fungsi. Hasil evaluasi dari sebuah ekspresi adalah nilai di dalam ranah yang sesuai dengan tipe operand yang dipakai. Dikenal tiga macam ekspresi: ekspresi aritmetik, ekspresi relasional, dan ekspresi string.

3.2.1. Ekspresi Aritmetik

Ekspresi numeric adalah ekspresi yang baik operand-nya bertipe numeric dan hasilnya juga bertipe numeric. Misalkan dideklarasikan nama-nama peubah sebagai berikut:

DEKLARASI

a, b, c : real d : integer

I, j, k : integer

Contoh ekspresi numeric misalnya,

a * c

Hasil evaluasi ekspresi tersebut juga bertipe real. Pada ekspresi ini, operand-nya

(30)

peubah, maka peubah tersebut haruslah bertipe sama dengan tipe hasil. Pengisian hasil evaluasi ekspresi a*c ke dalam nama peubah c melalui pernyataan

c  a * b

adalah benar, tetapi pernyataan

d  a * b

tidak benar karena d bertipe integer sedangkan hasil evaluasi ekspresi bertipe real.

Contoh lainnya adalah penyimpanan ekspresi (i+j) div 2 ke dalam peubah k:

k  (I + j) div 2

Contoh ekspresi numeric lainnya:

a/2.5) + c *b i+(j*k) – 10*(d+k) 100.0/(a+c) – 2.5

Yang harus diperhatikan dalam penulisan ekspresi numeric adalah tingkatan (hirharki) operator. Operator yang mempunyai tingkatan lebih tinggi lebih dahulu dikerjakan daripada operator yang tingkatannya lebih rendah. Misalnya ekspresi

a/c + b

akan dikerjakan dengan urutan a/c lebih dahulu, lalu hasilnya ditambah dengan b.

Urutan evaluasi ekspresi dapat berubah karena penggunaan tanda kurung. Misalnya ekspresi.

a/ (c + b)

akan dikerjakan sebagai c + b lebih dahulu, baru kemudian a dibagi dengan hasil dari

c + b.

Tingkatan operator aritmetika adalah (dari tertinggi ke terendah):

(i) div, mod (ii) /

(iii) * (iv) +, -

Operator “/” dan “*” dapat saja mempunyai urutan prioritas yang sama, misalnya

(31)

sama saja dengan

(a*b)/c

sama saja dengan

a*(b/c)

Tetapi, a/b*c diinterprestasikan sebagai (a/b)*c, hasilnya tidak sama dengan a/ (b*c). Penggunaan tanda kurung dapat menghilangkan kesalahan interprestasi.

Operator +, - mempunyai urutan prioritas yang sama. Apabila ada bagian ekspresi yang diapit oleh pasangan tanda kurung, maka ekspresi di dalam tanda kurung mempunyai prioritas tertinggi untuk dievaluasi terlebih dahulu.

Contoh-contoh ekspresi yang sudah kita kemukakan merupakan ekspresi biner, yaitu ekspresi yang operator-nya membutuhkan dua buah operand (sehingga operator-nya disebut juga operator biner). Disamping ekspresi biner, terdapat juga ekspresi uner, yaitu ekspresi dengan satu buah operand, misalnya

-a

-a * (b+c)

(-a adalah ekspresi uner). Operator “-“, selain merupakan operator biner, juga adalah satu-satunya operator uner dari seluruh operator aritmetika.

Ekspresi biner pada seluruh contoh diatas ditulis dalam notasi infix, yaitu notasi yang kita gunakan dalam kehidupan sehari-hari. Notasi infix adalah notasi dengan susunan:

operand1 operator operand2

selain notasi infix, ekspresi biner juga dapat ditulis dalam notasi prefix: operator operand1 operand2

atau dalam notasi postfix(suffix atau polish): operand1 operand2 operator

Contoh ekspresi infix, prefix, dan postfix: infix : 6*8

(32)

prefix : *68

*+a/bc-d*ef

postfix : 68*

abc/+def*-*

Umumnya bahasa pemrogaman mengevaluasi ekspresi dalam notasi infix, namun ada beebrapa bahasa pemrogaman tertentu yang dapat menghitung ekspresi dalam notasi postfix

dan prefix.

Rumus-rumus di bawah ini dalam notasi algoritmik:

𝑇 =5

Ekspresi relasional adalah ekspresi dengan operator <, ≤, >, ≥, =, dan ≠, not, and, or dan xor. Hasil evaluasi ekspresinya adalah nilai bertipe boolean (true atau false), sehingga ekspresi relasional kadang-kadang disebut juga ekspresi boolean. Misalkan dideklarasikan nama-nama peubah sebagai berikut ini:

DEKLARASI

ada, ketemu, besar : boolean x, y : integer

Misalkan ketemu berisi nilai false, ada bernilai true, x bernilai 8 dan y bernilai 12, maka. Contoh-contoh ekspresi boolean adalah:

(33)

3.2.3. Ekspresi String

Ekspresi string adalah ekspresi dengan operator “+” (operator

penyambungan/concatenation). Misalkan dideklarasikan nama-nama peubah sebagai berikut ini:

DEKLARASI

Kar : char S : string

maka contoh-contoh ekspresi string misalnya:

s + kar) + „c‟ { operasi penyambungan karakter/string } „Jl Ganesha „ + „No 10‟

3.3. Tabel Translasi Notasi Algoritmik Pengisian Nilai, Pembacaan, dan

Penulisan ke dalam Notasi Bahasa Pascal dan C

Tabel 4. Tabel translasi notasi algoritmik pengisian nilai, pembacaan, dan penulisan ke dalam notasi bahasa pascal dan C

Keterangan:

read : membaca masukan dari papan kunci, kursor tetap di posisi yang sama

readln : sama, tetapi kursor kemudian pindah ke baris berikutnya

write : menulis keluaran di layar, kursor tetap pada posisi yang sama

writeln : sama, tetapi kursor kemudian pindah ke baris berikutnya.

scanf : membaca dengan menggunakan penentu format

(34)

Tabel 5. Tabel penentu format dalam bahasa C

3.4. Latihan

1. Soal 1

a. Jika progam di atas di jalankan, bagaimanakah tampilannya? Mengapa demikian?

(35)

a. Jika progam di atas di jalankan, bagaimanakah tampilannya? Mengapa demikian?

3. Soal 3

a. Sebuah mobil melaju dengan kecepatan tetap v km/jam. Jika mobil tersebut berjalan selama t jam, tulislah algoritma untuk menghitung jarak yang sudah ditempuh mobil (dalam km). algoritma tersebut membaca masukan berupa v

dan t, menghitung jarak dengan rumus s = vt, lalu mencetak jarak tersebut.

(36)

BAB 4. RUNTUNAN

Runtunan adalah struktur algoritma paling dasar yang berisi rangkaian instruksi yang diproses secara sekuensial, satu per satu, mulai dari instruksi pertama sampai instruksi terakhir.

4.1. Pendahuluan

Algoritma merupakan runtutan (sequence) satu atau lebih instruksi, yang berarti bahwa;

1. Tiap instruksi dikerjakan satu per satu;

2. Tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yang diulang;

3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya;

4. Akhir dari instruksi terakhir merupakan akhir algoritma

Setiap instruksi di dalam runtutan ditulis dalam satu baris, atau beberapa instruksi dalam baris yang sama tetapi antara setiap instruksi dipisahkan dengan tanda titik koma (;). Contoh-contoh masalah di bawah ini memperlihatkan algoritma yang berisi runtutan.

4.2. Contoh-contoh runtunan

1. Contoh 1

a. Tulis algoritma masing-masing dalam notasi algoritmik, flowchart, dan C yang membaca panjang dan lebar dari sebuah empat persegi panjang, lalu menghitung luas segiempat yang berbentuk empat persegi panjang. Luas segiempat adalah panjang dikali lebar. Luas segiempat dicetak ke piranti keluaran. Tuliskan!

panjang

lebar

Gambar 11. Luas segiempat yang berbentuk empat persegi panjang adalah panjang x lebar

b. Algoritma

Algoritma Luas_Persegi_Panjang

{Menghitung luas persegi panjang dengan memasukkan nilai panjang dan lebar}

Deklarasi

(37)

Deskripsi

printf(“Panjang”);

scanf(“%f”,&p);

printf(“Lebar”);

scanf(“%f”,&l);

luas  p*l

printf(“luas = %.2f”,luas); c. Flowchart

START

Input Panjang,

Lebar

Luas  p*l

Output luas

END

Gambar 12. Flowchart algoritma menghitung luas persegi panjang

d. C:

2. Contoh 2

(38)

pelari marathon, lalu mengkonversi waktu tempuh tersebut ke dalam detik. konversi ditampilkan ke piranti keluaran}

(39)
(40)

BAB 5. PEMILIHAN

Progam yang hanya berisi runtutan instruksi biasanya terdapat pada masalah sederhana. Seringkali suatu instruksi hanya bisa dikerjakan jika ia memenuhi suatu persyaratan tertentu. Oleh karena itu, komputer tidak lagi mengerjakan instruksi secara sekuensial seperti pada runtutan, tetapi berdasarkan syarat yang dipenuhi. Di dalam bab ini kita membahas konstruksi algoritma yang penting yaitu struktur pemilihan (selection).

5.1. Menganalisis kasus

Sebuah persoalan harus kita analisis untuk menentukan kasus-kasus yang mungkin terdapat didalamnya. Untuk setiap kasus ada aksi tertentu yang dilakukan. Adanya analis kasus menyebabkan terjadinya pemilihan instruksi (atau percabangan) di dalam algoritma, bergantung pada kasus mana yang dipenuhi.

Sebagai contoh, kita ingin menentukan menentukan di kuadran mana terletak sebuah titik di bidang kartesian. Yang dimaksud dengan kuadran adalah seperempat bidang datar bidang yang terbagi oleh sumbu-sumbu koordinat (sumbu-X dan sumbu-Y). ada empat kuadran di bidang kartesian, yaitu kuadran I, kuadran II, kuadran III, kuadran IV. Suatu titik P(x,y) dapat terletak pada salah satu dari empat kuadran kuadran tersebut, bergantung pada

tanda x dan y (apakah positif atau negative). Nilai α disebut positif jika α > 0, dan sebaliknya

disebut negative jika α < 0. Kita tidak mendefinisikan kuadran titik P jika titik tersebut

terletak pada sumbu-sumbu koordinat (salah satu dari x atau y = 0)

Ada lima kasus yang harus kita analisis untuk menentukan kuadran titik P(x,y), yaitu:

Kasus 1: jika x>0 dan y>0, maka titik P erletak di kuadran I Kasus 1: jika x<0 dan y>0, maka titik P terletak di kuadran II Kasus 3: jika x<0 dan y<0, maka titik P terletak di kuadran III Kasus 4: jika x>0 dan y<0, maka titik P terletak di kuadran IV

(41)

y o

Kuadran I (x > 0, y > 0)

Kuadran IV (x > 0, y < 0)

x Kuadran II

(x < 0, y > 0) Kuadran III (x < 0, y < 0)

Gambar 13. Penetapan kuadran untuk titik-titik di bidang kartesian. Kuadran adalah bidang yang merupakan seperempat dari bidang kartesian.

5.2. Satu kasus

Notasi algoritmik untuk ananlisis dengan satu kasus adalah dengan menggunakan konstruksi IF-THEN (jika-maka) dalam bentuk pernyataan:

if kondisi then aksi endif

Pernyataan di atas bererti bahwa aksi hanya dilaksanakan bila kondisi bernilai benar (true). Bila kondisi bernilai salah (false), tidak ada aksi apapun yang dikerjakan. Kata endif sengaja kita tambahkan untuk mempertegas awal dan akhir struktur IF-THEN.Aksi yang dikerjakan bisa satu, dua atau lebih. Bagan alir pada gambar dibawah membantu memperlihatkan visualisasi pemilihan dengan hanya satu kasus ini.

kondisi aksi end

benar salah

(42)

5.2.1. Contoh-contoh Masalah dengan Satu Kasus

1. Contoh 1. Buatlah algoritma yang membaca sebuah bilangan bulat, lalu mencetak

pesan “genap” jika bilangan tersebut adalah genap.

Penyelesaian: Bilangan genap adalah bilangan yang habis dibagi dengan 2 (sisa pembagian = 0). Oleh karena itu, kita perlu membagi data masukan dengan 2. Jika data masukan habis dibagi 2, maka tulis bahwa bilangan tersebut bilangan genap.

Gambar 15. Mencetak “genap” jika data masukan adalah bilangan genap

5.3. Dua kasus

Konstruksi IF-THEN hanya menyediakan satu alternative aksi jika suatu pernyataan (kondisi) dipenuhi. Kadang-kadang kita perlu memilih melakukan aksi alternative jika suatu kondisi tidak memenuhi. Jadi ada dua kasus, tetapi hanya salah satu dari keduanya yang harus dipilih satu untuk dikerjakan. Notasi algoritmik untuk masalah dengan dua buah kasus adalah dengan menggunakan konstruksi IF-THEN-ELSE (jika-maka-kalau tidak).

if kondisi then aksi1

else

aksi2

endif

Pernyataan di atas berarti bahwa aksi, dikerjakan jika kondisi bernilai benar, sebaliknya jika kondisi bernilai salah, maka aksi2 yang akan dilaksanakan. Perhatikan bahwa

(43)

kondisi

aksi2 end

aksi1

salah benar

Gambar 16. Bagan alir yang memperlihatkan pemilihan dengan dua kasus

5.3.1. Contoh-contoh Masalah dengan Dua Kasus

1. Contoh 1. Tulislah algoritma yang membaca sebuah bilangan bulat, lalu

menuliskan pesan “genap” jika bilangan tersebut adalah genap, atau “ganjil” jika

bilangan tersebut adalah bilangan ganjil.

Penyelesaian: Misalkan bilangan bulat yang dibaca adalah x. Hanya ada dua kemungkinan untuk x, yaitu genap atau ganjil. Bilangan genap adalah bilangan yang habis dibagi dengan 2 (memberikan sisa = 0), sedangkan bilangan ganjil bersisa 1 bila dibagi dengan 2. Contohnya, 10 adalah bilangan genap karena 10 mod 2 = 0, tetapi 9 adalah bilangan ganjil karena 9 mod 2 = 1.

Analisis kasus: Kasus 1: jika xmod 2 = 0, maka tulis pesan “genap”

(44)

Gambar 17. Menentukan genap atau ganjil

5.4. Tiga Kasus atau Lebih

Masalah yang mempunyai tiga buah kasus atau lebih dapat dianalisis dengan konstruksi IF-THEN-ELSE bertingkat-tingkat.

Tiga Kasus:

if kondisi then aksi1

else

if kondisi2 then

aksi2

else

if kondisi3 then

aksi3

endif endif

(45)

kondisi1 aksi1

salah benar

kondisi2

aksi2 aksi3 end

end

salah benar

Gambar 18. Bagan alir yang memperlihatkan pemilihan dengan tiga kasus

5.4.1. Contoh-contoh Masalah dengan Tiga Kasus atau Lebih

(46)
(47)

BAB 6. PENGULANGAN

Salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk melaksanakan suatu perintah berulangkali tanpa menganal lelah dan bosan. Didalam algoritma, pengulangan atau kalang (repetition atau loop) dapat dilakukan sejumlah kali, atau sampai kondisi berhenti pengulangan tercapai. Pada bab ini membahas struktur pengulangan.

6.1. Struktur Pengulangan

Di dalam algoritma terdapat beberapa macam konstruksi pengulangan yang berbeda. Beberapa konstruksi dapat dipakai untuk masalah yang sama, namun ada konstruksi pengulangan yang hanya cocok dipakai untuk masalah tertentu. Pemilihan konstruksi pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan konstruksi pengulangan yang tepat bergantung pada masalah yang akan diprogam. Ada 3 macam konstruksi pengulangan dalam bentuk pernyataan, yaitu:

1. Pernyataan FOR;

2. Pernyataan WHILE;

3. Pernyataan REPEAT;

6.2. Pernyataan FOR

Konstrusi FOR digunakan untuk menghasilkan pengulangan sejumlah kali yang telah dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah beberapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti.

6.2.1. Contoh Pernyataan FOR

1. Contoh 1. Sebagai contoh pertama, misalkan kita ingin mencetak pesan “Hello,

(48)

6.3. Pernyataan WHILE

Bentuk umum pernyataan WHILE adalah:

while kondisi do aksi

endwhile

Keterangan:

Aksi akan dilaksanakan berulangkali selama kondisi bernilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dimasuki, yang berarti pengulangan selesai. Kondisi di akhir pengulangan (setelah endwhile) disebut loop invariant, yaitu variable kondisi yang nilainya sudah tidak berubah lagi.

6.3.1. Contoh Pernyataan FOR

1. Contoh 1. Sebagai contoh pertama, misalkan kita ingin mengetahui rata-rata dari

(49)

6.4. Pernyataan REPEAT

Bentuk umum pernyataan REPEAT adalah:

repeat aksi until kondisi

Notasi ini mendasarkan pengulangan pada kondisi Boolean. Aksi di dalam badan kalang diulang-ulang sampai kondisi bernilai true. Degnan kata lain, jika kondisi masih false, proses pengulangan masih terus dilakukan. Karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan yang mengubah nilai peubah kondisi.

Pernyataan REPEAT memiliki makna yang sama dengan WHILE, dan dalam beberapa masalah kedua pernyataan tersebut komplemen satu sama lain.

6.5. Tabel Translasi Notasi Algoritmik Struktur Pengulangan ke Notasi Pascal

dan C

Struktur Algoritma Pascal C

FOR For menaik:

(50)

b do

Bila aksi lebih dari satu buah, maka

WHILE while kondisi do aksi

Bila aksi lebih dari satu buah, maka

Bila aksi lebih dari satu buah, maka

(51)

6.6. Latihan

1. Buatlah algoritma yang membaca semabarang karakter dan mencetaknya ke layar. Buatlah algoritma untuk dua kasus:

a. Jumlah karakter yang dibaca diketahui, yaitu N buah (baca N terlebih dahulu)

b. Jumlah karakter yang dibaca tidak diketahui, tetapi proses pembacaan berakhir jika karakter yang dimasukkan adalah karakter titik (karakter titik tidak ikut dicetak) 2. Buatlah algoritma untuk menghitung jumlah N buah bilangan ganjil pertama (yaitu,

1+3+5+…). Catatan: N adalah bilangan bulat tidak negative.

3. Buatlah algoritma untuk menghitung jumlah bilangan ganjil dari 1 sampai N (yaitu,

1+3+5+…+N). (perhatikan perbedaan soal latihan ini dengan soal nomor 1).

4. Tuliskan progam Pascal dan C untuk mencetak gambar segitiga bintang sebanyak N baris, setiap baris ke-I berisi I buah bintang. Nilai N dibaca dari papan kunci.

Contoh: masukan: N=5 Keluaran:

* ** *** **** *****

5. Tuliskan algoritma untuk menampilkan semua solusi bilangan bulat tidak negative dari persamaan berikut:

x + y + z = 25

(52)

Gambar

Tabel Translasi dari Algoritmik ke Pascal dan C ..............................................................
Tabel Translasi Notasi Algoritmik Struktur Pengulangan ke Notasi Pascal dan C ............
Gambar 2. Mencetak tabel konversi Fanrenheit-Celcius
Gambar 4. Membuat folder TurboC di drive C:\
+7

Referensi

Dokumen terkait

Bagaimana mengukur kemampuan berpikir kreatif? Untuk mengukur tes tersebut dapat digunakan tes pilihan ganda maupun uraian.namun pada penelitian ini tes kemampuan kreatif

Penelitian ini diarahkan untuk menentukan golongan flavonoida lain yang ada dalam herba pegagan embun dan diharapkan hasil penelitian ini dapat memberi informasi tentang

udara desain dan dengan program metode FAA memperhitungkan kerusakan akibat. lalulintas keberangkatan langsung dari

[r]

Distribusi perbekalan farmasi dengan menggunakan sistem ODDD berarti bahwa pendistribusian obat sesuai dengan dosis per hari yang dibutuhkan oleh pasien. Pembayaran perbekalan

karena itu, objek yang diatur dalam HKI adalah karya yang timbul atau.. lahir dari kemampuan

Peserta juga akan dibekali dengan editing video secara smartphone dengan aplikasi yang cukup memadai sebagai media edit untuk konten Instagram resmi Kepolisian

Strategi keteladanan ini dapat dibedakan menjadi keteladanan internal (internal modelling) dan keteladanan eksternal(external modelling). 9 Keteladanan