37
1 PERTEMUAN 2 Algoritma & Pemrograman Presented by : Sity Aisyah, M.Kom Email : [email protected] Blog : yeshasalsabila.blogspot.com

PERTEMUAN 2 Algoritma & Pemrograman

  • Upload
    cleo

  • View
    143

  • Download
    6

Embed Size (px)

DESCRIPTION

PERTEMUAN 2 Algoritma & Pemrograman. Presented by : Sity Aisyah, M.Kom Email : [email protected] Blog : yeshasalsabila.blogspot.com. 1. STRUKTUR DASAR ALGORITMA. - PowerPoint PPT Presentation

Citation preview

Page 1: PERTEMUAN  2 Algoritma  &  Pemrograman

1

PERTEMUAN 2Algoritma &

Pemrograman

Presented by :Sity Aisyah, M.Kom

Email : [email protected] : yeshasalsabila.blogspot.com

Page 2: PERTEMUAN  2 Algoritma  &  Pemrograman

STRUKTUR DASAR ALGORITMA

Struktur Sekuensial

Pada struktur sekuensial, langkah-langkah yang dilakukan dalam algoritma diproses secara berurutan sebagaimana diperlihatkan pada gambar di bawah.

2

Pada dasarnya terdapat tiga buah struktur dasar yang digunakan dalam menyusun suatu algoritma. Ketiga struktur dasar tersebut adalah :1. Sekuensial (runtunan)2. Seleksi3. Pengulangan

Langkah 1

Langkah 2

Langkah 3

Langkah 1Langkah 2Langkah 3

Page 3: PERTEMUAN  2 Algoritma  &  Pemrograman

Contoh :Buatlah algoritma untuk menukarkan isi dua buah variabel.

3

50 60

a b

60 50

Keadaan awal

Keadaan setelah penukaran

Solusi :Untuk menukarkan isi dua buah variabel diperlukan sebuah variabel yg digunakan untuk membantu penukaran data.Algoritma yang diperlukan :1. Masukkan (a, b)2. c ← a3. a ← b4. b ← c5. Tampilkan (a,b)

Page 4: PERTEMUAN  2 Algoritma  &  Pemrograman

Struktur Seleksi

Struktur seleksi menyatakan pemilihan langkah yang didasarkan oleh suatu kondisi (pengambilan keputusan).

4

Langkah 2Langkah 1

JIKA kondisi benar MAKA Langkah 1SEBALIKNYA Langkah 2AKHIR-JIKA

Kondisisalahbenar

Page 5: PERTEMUAN  2 Algoritma  &  Pemrograman

Contoh :Suatu swalayan memberikan diskon sebesar 10% bagi siapa saja yang berbelanja sebesar 100.000 atau lebih. Buatlah algoritma untuk menghitung nilai uang yang harus dibayar oleh pembeli.

5

Solusi :Pemecahan masalah ini dalam bentuk diagram alir & pseudokode dapat dilihat pada gambar berikut.

Masukkan pembelian

pembelian >= 100000

diskon ← 0diskon ← pembelian / 10

Pembayaran ← pembelian - diskon

Tampilkan pembayaran

PSEUDOKODE :1. Masukkan (pembelian)2. JIKA pembelian >= 100000 MAKA diskon ← 0,1 x pembelian SEBALIKNYA diskon ← 0 AKHIR-JIKA3. pembayaran ← pembelian – diskon4. Tampilkan (pembayaran)

benar salah

Page 6: PERTEMUAN  2 Algoritma  &  Pemrograman

Struktur Pengulangan

Pengulangan menyatakan suatu tindakan atau langkah yang dijalankan beberapa kali.

6

Prosedur

ULANG SELAMA kondisi benar ProsedurAKHIR-ULANG Kondisi

salah

benar

(titik masuk)

(titik keluar)

Page 7: PERTEMUAN  2 Algoritma  &  Pemrograman

Contoh :Buatlah algoritma untuk menampilkan 5 buah tulisan “Algoritma” dengan menggunakan pengulangan.

7

Solusi :Pemecahan masalah ini dalam bentuk diagram alir & pseudokode dapat dilihat pada gambar berikut.

pencacah < 6

pencacah ← pencacah + 1

Tampilkan “Algoritma”

PSEUDOKODE :1. Pencacah ← 12. ULANG SELAMA pencacah < 6 tampilkan(“Algoritma”) pencacah ← pencacah + 1 AKHIR-ULANG

benar

salah

pencacah ← 1

Selesai

Page 8: PERTEMUAN  2 Algoritma  &  Pemrograman

PENGENALAN BAHASA CBahasa C merupakan perkembangan dari bahasa BCPL yang

dikembangkan oleh Martin Richards pada tahun 1967. selanjutnya bahasa ini memberikan ide kepada Ken Thomson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc (sekarang adalah AT&T Bell Laboratories).

Bahasa C pertama kali dipergunakan di Computer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX. Hingga saat ini bahasa C masih populer dan penggunaanya tersebar di berbagai platform; dari Windows sampai Linux dan dari PC hingga mainframe. C++ adalah bahasa yang relatif baru dibandingkan dengan C. bahasa C++ diciptakan oleh Bjarne Stroustroup sekitar tahun 1982. Bahasa C++ merupakan pengembangan dari bahasa C dan mendukung pemrograman berorientasi objek. Dengan menggunakan C++, Anda tetap dapat menulis program C.

8

Page 9: PERTEMUAN  2 Algoritma  &  Pemrograman

9

Contoh Program C :

#include <stdio.h>

int main(){ printf(“Selamat Belajar C\n”); return 0;}

Menyertakan berkas header stdio.h

Tipe kode keluar program

Awal tubuh fungsi main()

Akhir tubuh fungsi main()

Pernyataan untuk menampilkan

string

Pernyataan untuk memberi kode keluar

program

Output : Selamat Belajar C

Page 10: PERTEMUAN  2 Algoritma  &  Pemrograman

10

Berkas header (berekstensi .h) adalah berkas yang berisi prototipe fungsi, definisi konstanta, dan definisi variabel. prototipe fungsi berupa judul suatu fungsi yang dilengkapi dengan argumen dan tipe argumen serta tipe nilai balik untuk fungsi yang memberikan nilai balik.

Praprosesor #include adalah suatu perintah yang digunakan untuk mengatur kompiler agar membaca berkas header yang disertakan di belakang kata include saat pelaksanaan kompilasi.

Main() adalah fungsi yang akan dijalankan pertama kali ketika program dieksekusi. Kata int di depan main() menyatakan bahwa program memberikan nilai balik yang bertipe int. tipe Int adalah tipe yang menyatakan bilangan bulat.

Nilai balik program ditentukan oleh pernyataan return. Return 0 menyatakan bahwa nilai balik program adalah nol. Nilai balik nol biasa digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang dibebankannya.

Pernyataan dalam C adalah suatu perintah yang dapat berdiri sendiri dalam melaksanakan aksi dan dijalankan ketika program dieksekusi. Setiap pernyataan ditulis dengan diakhiri tanda titik-koma (;).

Penjelasan :

Page 11: PERTEMUAN  2 Algoritma  &  Pemrograman

KELEBIHAN & KEKURANGAN BAHASA C

11

KELEBIHAN KEKURANGAN

1. Bahasa C tersedia hampir disemua jenis komputer.

2. Kode bahasa C sifatnya adalah portable & fleksibel u/ semua jenis komputer.

3. Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci.

4. Proses executable program bahasa C lebih cepat.

5. Dukungan pustaka yang banyak.6. C adalah bahasa yang terstruktur.7. Bahasa C termasuk bahasa tingkat

menengah.

1. Banyak operator serta fleksibelitas penulisan program kadang-kadang membingungka n pemakai.

2. Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

Page 12: PERTEMUAN  2 Algoritma  &  Pemrograman

TIPE DATA, VARIABEL, NILAI & EKSPRESITipe Data

Ada dua kategori dari tipe data, yaitu : tipe dasar dan tipe bentukan. TIPE DASAR

12

1. Bilangan Bulat (integer)a. Bilangan atau angka yang tidak memiliki titik desimal atau

pecahan, seperti 10, +255, -1024.b. Tipe dituliskan sbg integer atau int.c. Jangkauan nilai : bergantung pada implementasi hardware

komputer, misalnya dari -32768 s/d +32767, untuk algoritma tidak dibatasi.

d. Operasi aritmetik : tambah +, kurang -, kali *, bagi /, sisa hasil bagi %.

e. Operasi pembandingan : <, <=, >, >=, =, tidak sama (><, <> atau !=).

Page 13: PERTEMUAN  2 Algoritma  &  Pemrograman

13

2. Bilangan Biasa (real)a. Bilangan atau angka yang bisa memiliki titik desimal atau pecahan,

seperti 235.55, +255.21, -1023.55.b. Tipe dituliskan sbg real atau float.c. Jangkauan nilai : bergantung pada implementasi hardware

komputer, misalnya dari -2.9E-39 s/d +1.7E+38, untuk algoritma tidak dibatasi.

d. Operasi aritmetik dan pembandingan juga berlaku nagi bilangan biasa.

3. Bilangan Tetap (const)a. Adalah tipe bilangan, baik bernilai bulat maupun tidak, yang nilanya

tidak berubah selama algoritma dilaksanakan.b. Tipe dituliskan sbg const.c. Jangkauan nilai meliputi semua bilangan yang mungkin.

Page 14: PERTEMUAN  2 Algoritma  &  Pemrograman

14

Beberapa aturan penting dalam menuliskan berbagai literal/konstanta :

Tipe Keterangan

int Tanda pemisah ribuan tidak boleh digunakan.

long int Tanda pemisah ribuan tidak boleh digunakan, tanda L atau l (huruf l kecil) perlu disertakan dibagian akhir literal untuk menyatakan tipe long int secara eksplisit.Contoh : 427689L

float Harus ditulis dengan akhiran F atau f. tanda pecahan berupa titik, notasi sains seperti 2.2e+04 diperkenankan (artinya 2,2 x 104), huruf e dapat ditulis E.

double Seperti pada float tetapi tidak perlu akhiran F atau f,

char Ditulis dg awalan dan akhiran petik tunggal (‘)

Page 15: PERTEMUAN  2 Algoritma  &  Pemrograman

15

4. Karakter (character)a. Karakter adalah data tunggal yang mewakili semua huruf, simbol

baca, dan juga simbol angka yang tidak dapat dioperasikan secara matematis, misalnya ‘A’, ‘B’,…dst.

b. Tipe dituliskan sbg char.c. Jangkauan nilai meliputi semua karakter dalam kode ASCII, atau

yang tertera pada setiap tombol keyboard.d. Operasi pembandingan dapat dilakukan dan dievaluasi menurut

urutan kode ASCII sehingga huruf ‘A’ (Hex 41) sebenarnya lebih kecil dari huruf ‘a’ (Hex 61).

5. Logik (Logical)a. Adalah tipe data yang digunakan untuk memberi nilai pada hasil

pembandingan, atau kombinasi pembandingan.b. Tipe dituliskan sbg boolean.c. Jangkauan nilai ada dua yaitu true atau false.d. Contoh : 45 > 50, hasilnya false, Amir < Hasan hasilnya true.e. Ada beberapa operasi untuk data jenis logik, antara lain and, or,

dan not.

Page 16: PERTEMUAN  2 Algoritma  &  Pemrograman

16

A B A and B A or B Not A

False False False False True

False True False True True

True False False True False

True True True True False

Page 17: PERTEMUAN  2 Algoritma  &  Pemrograman

17

C dan C++ menyediakan berbagai tipe data dasar, yaitu :

Tipe Keterangan

char Menyatakan sebuah karakter (berupa huruf A dan a, digit 0 atau 8, atau simbol seperti * dan &)

double Menyatakan bilangan real dg ketelitian tinggi

float Menyatakan bilangan real dg ketelitian rendah

int Menyatakan bilangan bulat antara -32768 s.d 32767

Long int Menyatakan bilangan bulat berkisar antara -2147483648 s.d 21474836487

Page 18: PERTEMUAN  2 Algoritma  &  Pemrograman

TIPE BENTUKAN

18

1. Arraya. Adalah tipe data bentukan yang merupakan wadah untuk

menampung nilai-nilai data yang sejenis. Kumpulan bilangan bulat adalah array integer, kumpulan bilangan tidak bulat adalah array real.

b. Cara mendefinisikan ada 2 macam, yaitu :1) Nilai_ujian : array[1..10] of integer; atau2) Int nilai_ujiain[10];

c. Kedua definisi di atas menunjukkan bahwa nilai_ujian adalah kumpulan dari 10 niali bertipe bilangan bulat.

2. Stringa. Adalah tipe data bentukan yang merupakan deretan karakter

yang membentuk satu kata atau satu kalimat, yang biasanya diapit oleh dua tanda kutip.

b. Contoh : nama, alamat, dllc. Cara mendefinisikannya :

1) String Nama, Alamat; atau2) Nama, Alamat : String;

Page 19: PERTEMUAN  2 Algoritma  &  Pemrograman

19

3. Record (Rekaman)a. Adalah tipe data bentukan yang merupakan wadah untuk

menampung elemen data yang tipenya tidak perlu sama dengan tujuan untuk mewakili satu jenis objek.

b. Sebagai contoh, mahasiswa sebagai satu jenis objek memiliki beberapa elemen data, seperti nim, nama, umur, dll.

c. Cara mendefinisikan record mahasiswa tsb adalah sbb:Type DataMhs : record< nim : integer,

nama : string, umur : integer;

>

Page 20: PERTEMUAN  2 Algoritma  &  Pemrograman

Variabel

Adalah nama yang mewakili suatu elemen data, seperti jk untuk jenis kelamin. Ada aturan tertentu yang waib diikuti dalam pemberian nama variabel :

20

1. Harus dimulai dg abjad, tidak boleh dg angka atau simbol.

2. Tidak boleh ada spasi diantaranya.

3. Jangan menggunakan simbol-simbol yg bisa

membingungkan, seperti titik dua, titik koma, koma, dsb.

4. Sebaiknya memiliki arti yg sesuai dg elemen data.

5. Sebaiknya tidak terlalu panjang.

Page 21: PERTEMUAN  2 Algoritma  &  Pemrograman

Latihan !Berikan tanda ( √ ) jika varibel di bawah ini Benar, dan berikan tanda ( X ) jika Salah.

21

Variabel JawabN ?Bilangan ?Semester 1 ?PERUSAHAAN ?3Bulan ?Nilai_akhir ?modal*bunga ?

Page 22: PERTEMUAN  2 Algoritma  &  Pemrograman

Latihan !Berikan tanda ( √ ) jika varibel di bawah ini Benar, dan berikan tanda ( X ) jika Salah.

22

Variabel JawabN √Bilangan XSemester 1 XPERUSAHAAN √3Bulan XNilai_akhir √modal*bunga X

Page 23: PERTEMUAN  2 Algoritma  &  Pemrograman

Pemberian Nilai

Ada dua cara yang dapat digunakan untuk memberi nilai pada suatu variabel, yaitu melalui proses assignment dan pembacaan. Pemberian nilai dg assignment mempunyai bentuk umum sbb :

1. Variable ← nilai;2. Variable1 ← variable2;3. Variable ← ekspresi;Contoh :4. Nama ← “Umar bin Khattab”5. X ← Jarak;

23

Pemberian nilai dg cara pembacaan dapat dilakukan melalui instruksi pembacaan, atau sering disebut sebagai instruksi input, dg bentuk umum sbb :1. read (variable);2. read (variable1, variable2, …);Contoh :3. read(Nama);

Page 24: PERTEMUAN  2 Algoritma  &  Pemrograman

Berikut contoh cara mengkonversi pernyataan dalam pseudokode ke dalam bentuk penyataan C.

24

Pseudokode Pernyataan Cn ← 8 n = 8 ;n ← n + 1 n = n + 1 ;luas ← panjang x lebar luas = panjang * lebar ;

Page 25: PERTEMUAN  2 Algoritma  &  Pemrograman

Menampilkan Nilai

Agar hasil pelaksanaan algoritma dapat

dikomunikasikan/ditayangkan maka nilai variabel yg telah diproses

dalam algoritma dapat ditampilkan. Instruksi untuk menampilkan

sesuatu sering disebut sbg instruksi output, dg bentuk sbb :

1. write(variabel, …); menampilkan nilai variabel, atau

2. writeln(variabel, …); menampilkan nilai kemudian pindah

ke baris berikutnya.

Contoh :

3. Write(“nama anda : ”, Nama);

25

Page 26: PERTEMUAN  2 Algoritma  &  Pemrograman

Ekspresi

Adalah transformasi data dan peubah/variabel dalam bentuk persamaan yg direlasikan oleh operator dan operand. Operand adalah data, tetapan, peubah/variabel, atau hasil dari suatu fungsi. Operator adalah simbol-simbol yg memiliki fungsi untuk menghubungkan operand sehingga terjadi transformasi.

Jenis-jenis operator adalah sbb :1. Operator Aritmetika : operator untuk melakukan fungsi

aritmetika seperti : + (menjumlah), - (mengurangkan), * (mengalikan), / (membagi),Pelaksanaan operator aritmetika memiliki urutan tertentu, sbb :a. Urutan pertama : ekspresi dalam tanda kurung (….)b. Urutan kedua : perkalian (*) atau pembagian (/)c. Urutan ketiga : penjumlahan (+) atau pengurangan (-)

26

Page 27: PERTEMUAN  2 Algoritma  &  Pemrograman

Contoh :3 + 5 * 2 hasilnya ?....

27

13

Latihan :1. (3+5) * 2 ?2. 6/3 * 2 + 4 ?3. 6/ (3*2) + 4 ?

Jawaban :1. 162. 83. 5

2. Operator Relational : operator untuk menyatakan relasi / perbandingan antara 2 operand, seperti >, < , >=, <=, ==, tdk sama dengan ( != , < >, > < ).

3. Operator Logik : operator untuk merelasikan operand secara logis, seperti && (and), || (or) dan ! (not).

4. Operator String : operator untuk memanipulasi string, seperti :a. + (concatenation, menggabung)b. len (menghitung panjang string), danc. Substr (substring, mencuplik)

Page 28: PERTEMUAN  2 Algoritma  &  Pemrograman

Berdasarkan pada jenis operator yg digunakan maka ada 4 macam ekspresi, yaitu ekspresi aritmetika, ekspresi relasional, ekspresi logik, dan ekspresi string.

28

1. Ekspresi Aritmetika : ekspresi yg memuat operator aritmetika.Contoh :a. T ← 5 * ( C + 32 ) / 9 ;

2. Ekspresi Relasional : ekspresi yg memuat operator relasional.Contoh :a. (A + B) < (C + D)

3. Ekspresi Logik : ekspresi yg memuat operator Logik.Contoh :a. M ← (x > y) && (5 + z)

4. Ekspresi String : ekspresi yg memuat operator string.Contoh :a. Alamat ← “Jl. P. Kemerdekaan” + “Km 9 Tangerang”

Page 29: PERTEMUAN  2 Algoritma  &  Pemrograman

Contoh Algoritma :

29

Susun algoritma yg menghitung PPN 12.50% dengan meminta harga barang yang dibeli dari pengguna program. Langkah utama dalam masalah ini adalah : masukkan/baca harga barang, hitung pajaknya, hitung total yg harus dibayar, kemudian menampilkan hasilnya.Jawab :

Algoritma PPN{menghitung PPN 12.50% dari harga barang}

Definisi Variabelreal harga, pajak, total;

Rincian Langkahwrite(“Masukkan harga barang :”);Read(harga);pajak ← 0.125 * harga;total = harga + pajak;write(“Harga=“,harga, “pajaknya=“,pajak);write(“Total =“,total);

Page 30: PERTEMUAN  2 Algoritma  &  Pemrograman

ARRAY OF CHARACTER DAN ESCAPE CHARACTER

String Dalam Bahasa C

Dalam bahasa pemrograman C, string adalah array bertipe

karakter (char). Untuk menampilkan string yang dikandung oleh

sebuah array, karakter format yang yang dipergunakan adalah

"%s".

Ketika kita menginstruksikan komputer untuk menampilkan

string, komputer akan memeriksa satu per satu elemen array

dan menampilkannya ke layar monitor. Komputer akan berhenti

memeriksa elemen array yang selanjutnya jika menemukan null

character ('\0').

30

Page 31: PERTEMUAN  2 Algoritma  &  Pemrograman

31

• String pada C dan C++ selalu diakhiri dengan karakter NULL (\0). Sebagai contoh, jika terdapat string “Yogya”, secara internal string itu disajikan seperti berikut :

Y o g y a \0

String diakhiri dengan karakter NULL

• Variabel yg digunakan untuk menyimpan string perlu dideklarasikan sbb :

char nama[15];• Pada deklarasi diatas, nama dideklarasikan sebagai variabel string yang

dapat menampung hingga 15 karakter (termasuk untuk karakter NULL).

• Penugasan literal string ke variabel string harus dilakukan melalui fungsi bernama strcpy().

Page 32: PERTEMUAN  2 Algoritma  &  Pemrograman

32

Contoh 1 :

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

char nama[20];nama[0]='B';nama[1]='u';nama[2]='d';nama[3]='i';nama[4]='m';nama[5]='a';nama[6]='n';nama[7]='\0';

printf("%s\n",nama);/* output : Budiman */

nama[4]='\0'; printf("%s\n",nama);

/* output : Budi ---- karena elemen 4 berisi null */}

Page 33: PERTEMUAN  2 Algoritma  &  Pemrograman

33

Output :

Page 34: PERTEMUAN  2 Algoritma  &  Pemrograman

34

Contoh 2 :

Output :

Page 35: PERTEMUAN  2 Algoritma  &  Pemrograman

35

Penjelasan :

Pada program di atas,

char info[25];

Digunakan untuk mendeklarasikan variabel string bernama info

yg dapat menyimpan hingga 24 karakter (plus sebuah karakter

NULL).

Melalui pernyataan :

strcpy(info, “Nama “ David Beckam”);

Variabel string info diisi dengan string “Nama : David Beckam”,

Selanjutnya, pernyataan

strcpy(info, “Info : Pemain Sepakbola”);

Diganti dengan “info : Pemain Sepakbola”

Page 36: PERTEMUAN  2 Algoritma  &  Pemrograman

Karakter Escape

Adalah sebuah karakter yg ditulis dengan awalan tanda \.

36

Karakter Keterangan

\0 Karakter NULL (tulisannya berupa \ dan angka nol)

\a Karakter bel

\b Karakter backspace

\f Formfeed (ganti halaman )

\n Linefeed (disebut juga newline atau pindah baris)

\r Carriage return (ke kolom pertama, baris yang sama)

\t Tab horisontal

\v Tab vertikal

\\ Karakter \

\’ Karakter petik tunggal

\” Karakter petik ganda

\? Karakter tanda tanya

Page 37: PERTEMUAN  2 Algoritma  &  Pemrograman

37

Thank You