ALGORITMA & PEMOGRAMAN 1

121
OLEH : Septiana Imadhi Rastri , S.Kom

Transcript of ALGORITMA & PEMOGRAMAN 1

Page 1: ALGORITMA & PEMOGRAMAN 1

OLEH :Septiana Imadhi Rastri ,

S.Kom

Page 2: ALGORITMA & PEMOGRAMAN 1

Persentasi Nilai Tugas 10 %Quis 10 %UTS 40 %UAS 40 %

Page 3: ALGORITMA & PEMOGRAMAN 1

PENGANTAR ALGORITMAPEMROGRAMAN

ALGORITMA

DefinisiUrutan langkah-langkah untuk memecahkan

masalahKamus Besar Bahasa Indonesia:

Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah

Page 4: ALGORITMA & PEMOGRAMAN 1

Contoh Algoritma dalam kehidupan nyata:Jika seorang mahasiswa akan memasak mie

rebus,pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya jadi.

Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:Menulis suratSurat dimasukkan ke dalam amplop tertutupAmplop ditempeli perangko secukupnya.Pergi ke Kantor Pos terdekat untuk mengirimkannya

Page 5: ALGORITMA & PEMOGRAMAN 1

KRITERIA ALGORITMA

Input: algoritma dapat memiliki nol atau lebih inputan dari luar.

Output: algoritma harus memiliki minimal satu buah output keluaran.

Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.

Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).

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

Page 6: ALGORITMA & PEMOGRAMAN 1

PENULISAN ALGORITMA

Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris,dan bahasa manusia lainnya)Tapi sering membingungkan (ambiguous)

Menggunakan flow chart (diagram alir)Bagus secara visual akan tetapi repot kalau

algoritmanya panjang

Menggunakan pseudo-codeSudah lebih dekat ke bahasa pemrograman, namun sulitdimengerti oleh orang yang tidak mengerti

pemrograman

Page 7: ALGORITMA & PEMOGRAMAN 1

ALGORITMA: Bahasa Natural1. Ambil bilangan pertama dan set maks sama

dengan bilangan pertama2. Ambil bilangan kedua dan bandingkan dengan

maks3. Apa bila bilangan kedua lebih besar dari maks,

set maks sama dengan bilangan kedua4. Ambil bilangan ketiga dan bandingan dengan

maks5. Apabila bilangan ketiga lebih besar dari maks,

set maks sama dengan bilangan ketiga6. Variabel maks berisi bilangan terbesar.

Tayangkan hasilnya

Page 8: ALGORITMA & PEMOGRAMAN 1

ALGORITMA: pseudo-codemaks ← bilangan pertamaif (maks < bilangan kedua)maks ← bilangan kedua

if (maks < bilangan ketiga)maks ← bilangan ketiga

Page 9: ALGORITMA & PEMOGRAMAN 1

ALGORITMA: Flow Chart

Page 10: ALGORITMA & PEMOGRAMAN 1

SIMBOL FLOWCHARTFlow Direction Symbols (Simbol penghubung

alur)Processing Symbols (Simbol proses).Input-output Symbols (Simbol input-output)

Page 11: ALGORITMA & PEMOGRAMAN 1
Page 12: ALGORITMA & PEMOGRAMAN 1
Page 13: ALGORITMA & PEMOGRAMAN 1

PEMBUATAN FLOWCHART

Tidak ada kaidah yang baku.Flowchart = gambaran hasil analisa suatu

masalahFlowchart dapat bervariasi antara satu

pemrogram dengan pemrogram lainnya.Secara garis besar ada 3 bagian utama:

InputProsesOutput

Page 14: ALGORITMA & PEMOGRAMAN 1

Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.

Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.

Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

Page 15: ALGORITMA & PEMOGRAMAN 1

CONTOH FLOWCHART

Page 16: ALGORITMA & PEMOGRAMAN 1

Pengenalan Bahasa CDefenisi ProgramAdalah kumpulan-kumpulan intruksi-

intruksi tersendiri yang biasanya disebut source code yang dibuat oleh programer

Program adalah kumpulan instruksi atau perintah yang disusun sedimikianrupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.

Page 17: ALGORITMA & PEMOGRAMAN 1

Instruksi (Statement) adalah Syntax (cara penulisan) sesuai dengan bahasa pemograman yang digunakan.

Mempunyai komponen-komponen : input, output, proses,percabangan, dan perulangan.

Page 18: ALGORITMA & PEMOGRAMAN 1

Sejarah CDi ciptakan pada tahun 1983 oleh Bjarne

stroustrup, lab. Bell AT & TMerupakan perkembangan dari bahasa CPada mulanya C++ disebut “ a better C

Page 19: ALGORITMA & PEMOGRAMAN 1

Kelebihan & Kekurangan Bahasa C

Kelebihan Bahasa CBahasa C tersedia hampir di semua jenis

computer.Kode bahasa C sifatnya adalah portable dan

fleksibel untuk semua jenis computer.Bahasa C hanya menyediakan sedikit kata-kata

kunci, hanya terdapat 32 kata kunci.Proses executable program bahasa C lebih

cepat

Page 20: ALGORITMA & PEMOGRAMAN 1

Dukungan pustaka yang banyak.C adalah bahasa yang terstrukturBahasa C termasuk bahasa tingkat menengah

Kekurangan Bahasa CBanyaknya Operator serta fleksibilitas

penulisan program kadang-kadang membingungkan pemakai.

Bagi pemula pada umumnya akan kesulitan menggunakan pointer

Page 21: ALGORITMA & PEMOGRAMAN 1

Aturan umum penulisan bahasa C++Bahasa C++ membedakan penulisan huruf besar

dan kecil.Untuk memberi komentar pada suatu statement

(keadaan), dapat menggunakan /* di awal dan */ di akhir atau // dalam satu baris.

Awal dan akhir subroutine atau fungsi harus diapit kurung kurawal.

Setiap statement harus diakhiri tanda titik koma.Setiap variabel yang digunakan wajib

dideklarasikan terlebih dahulu.

Page 22: ALGORITMA & PEMOGRAMAN 1

Include adalah salah satu pengarah prepocessor directive yang tersedia pada C++.Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya :

# include <nama_file>

# include <iostream.h> : diperlukan pada program yang melibatkan objek cout

# include <conio.h> : diperlukan bila melibatkan clrscr(),yaitu perintah untuk membersihkan

layar. # include <iomanip.h> : diperlukan bila melibatkan setw() yang

bermanfaat untuk mengatur lebar dari suatu tampilan data.

# include <math.h> : diperlukan pada program yang menggunkan operasi sqrt () yang bermanfaat untuk operasi matematika kuadrat.

Page 23: ALGORITMA & PEMOGRAMAN 1

Fungsi main () adalah fungsi yang menjadi inti dari program dan merupakan awal dan akhir eksekusi. Fungsi ini harus ada dalam setiap program. Tanda kurawal buka { merupakan tanda awal fungsi main dan tanda kurawal tutup } merupakan tanda berakhirnya fungsi main.

Perintah-perintah dasar C++cout <<

Merupakan perintah yang biasa dipakai untuk menampilkan suatu keluaran pada layar.Contoh: cout << “Lab. Pemrograman Komputer”;

cout << “Jurusan Teknik Informatika\n”;

Page 24: ALGORITMA & PEMOGRAMAN 1

cin >>Merupakan perintah yang berguna untuk memasukan data, yang selanjutnya didefinisikan sebagai data variabel.

contoh: int age;

cin >> age;

• Konstanta adalah nilai numeris/karakter yang tetap atau tidak berubah. Dalam C++ ada 4 kelas konstanta, yaitu:

1. Konstanta integer, berupa integer biasa, integer panjang (long int) dan integer tak bertanda (unsigned integer). Nilainya dapat berupa desimal, oktal atau hexadesimal.

2. Konstanta floating point, dapat mengandung nilai pecahan, yang biasa ditulis dalam bentuk pecahan biasa maupun bentuk eksponensial dan selalu dinyatakan dalam double, kecuali jika diakhiri dengan F atau f (menyatakan konstanta float).

Page 25: ALGORITMA & PEMOGRAMAN 1

3. Konstanta string, merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik ganda (“...“). Juga dapat mengandung karakter yang menggunakan tanda \ yang disebut karakter escape (escape sequence).

4. Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik tunggal (‘...’). Beberapa konstanta karakter dapat diawali dengan tanda \ (penempatannya setelah tanda petik tunggal).

Page 26: ALGORITMA & PEMOGRAMAN 1

- Tipe Data Dasar Tipe bilangan bulat (Integer) Tipe Bilangan rill (floating point) Tipe Karakter atau string Tipe logika (boolean)

- Tipe Data Bentukan - Enumerasi

Page 27: ALGORITMA & PEMOGRAMAN 1

TIPE DATATipe data Adalah suatu nilai yang dapat dinyatakan dalam

bentuk konstanta atau variabel dan operator. Pada dasarnya tipe data terdiri dari :

1.Tipe bilangan bulat (integer) adalah suatu tipe data yang di gunakan untuk menyimpan nilai-nilai yang berbentuk bulat (bilangan yang tidak mengandung koma), misalnya 10,23,200 dsb.

Page 28: ALGORITMA & PEMOGRAMAN 1

2. Tipe bilangan rill (floating point) adalah Tipe data yang digunakan untuk menyimpan nilai-nilai bilangan riil (bilangan yang mengandung koma), misalnya 2.13, 5.64, 1.98 dan lainnya.

3. Karakter adalah tipe data untuk menyimpan sebuah karakter atau gabungan karakter yang mempresentasikan sebuah karakter misalnya karakter-karakter sbb :

Page 29: ALGORITMA & PEMOGRAMAN 1

Penulisan nilai sebuah karakter dinyatakan didalam dua buah tanda petik satu (‘) sbb:

4. String merupakan tipe data yang berupa kumpulan karakter (satuatu lebih) yang berada didalam dua buah tanda petik dua (“).

Page 30: ALGORITMA & PEMOGRAMAN 1

Tipe Data BentukanTipe data bentukan adalah suatu tipe data

yang didefenisikan sendiri untuk memenuhi kebutuhan program yang kita buat.

Yang termaksud kedalam tipe data bentukan adalah tipe array(larik) dan struktur.

Page 31: ALGORITMA & PEMOGRAMAN 1

EnumerasiEnumerasi adalah suatu tipe data yang

nilainya telah didefenisikan secara pasti pada saat pembuatan tipe.

Tipe ini umumnya digunakan untuk menyatakan sesuatu yang nilainya sudah pasti, seperti nama hari, nama bulan, jenis kelamin dsb.

Page 32: ALGORITMA & PEMOGRAMAN 1

-Variabel Batasan penamaan variabel Lingkup variabel

Variabel global Variabel lokal

-Jenis-Jenis variabel Variabel OtomatisVariabel Statis Variabel Register

Page 33: ALGORITMA & PEMOGRAMAN 1

VariabelVariabel adalah Suatu pengenal didalam program yang

berguna untuk menyimpan nilai dari tipe data tertentu.

Batasan Penamaan Variabel Nama variabel tidak boleh berupa angka ataupun karakter

yang berupa angka. Contoh :int 234; /*SALAH, karena nama variabel berupa angka */

int 3Dimensi; /*SALAH, karena nama variabel diawali oleh angka */int S1; /*BENAR, karena nama variabel diawali oleh huruf */

Page 34: ALGORITMA & PEMOGRAMAN 1

Nama variabel tidak boleh mengandung spasi.Contoh:float Bilangan Riil; /* SALAH,karena mengandung spasi */float BilanganRiil; /* BENAR */float _BilanganRiil; /* BENAR */float Bilangan_Riil; /* BENAR */

Nama variabel tidak boleh menggunakan karakter-karakter yang merupakan simbol (@,?,#,!,dll) meskipun karakter tersebut terletak ditengah atau dibelakang nama variabel.Contoh :int # lima; /*SALAH */int enam@; /*SALAH */int tu?juh; /*SALAH */

Page 35: ALGORITMA & PEMOGRAMAN 1

Nama variabel tidak boleh menggunakan kata kunci maupun makro yang telah didefenisikan.Contoh :int void; /*SALAH */int return; /*SALAH */

Lingkup Variabel

Variabel Globaladalah variabel yang dideklerasikan diluar fungsi,baik fungsi utama maupun fungsi pendukung lainnya.

Variabel Lokaladalah variabel yang dideklerasikan didalam sebuah fungsi sehingga hanya dapat dikenali dan diakses oleh fungsi itu saja.

Page 36: ALGORITMA & PEMOGRAMAN 1

Jenis-jenis VariabelVariabel otomatis

Adalah variabel yang hanya dikenal didalam suatu blok saja (dalam tanda {…} )),baik itu dalam blok pemilihan, pengulangan ataupun fungsi.

Variabel Statisadalah suatu variabel yang menyimpan nilai permanen dalam memori (menyimpan nilai akhir yang diberikan).

Variabel Eksternaladalah variabel yang menuliskan sintax program kedalam file yang terpisah dengan tujuan untuk modularisasi program.

Variabel RegisterAdalah suatu variabel yang menyimpan nilai di dalam register CPU (Central Proccessing Unit).

Page 37: ALGORITMA & PEMOGRAMAN 1

Operator

1. Operator Assignment2. Operator Unary

Increment Pre-increment Post increment

Descrement3. Operator Binary

Operator Aritmatika Operator Logika OperatorRelasional Operator Bitwise

4. Operator Ternary

Page 38: ALGORITMA & PEMOGRAMAN 1

OperatorOperator adalah simbol atau tanda yang jika diletakkan

pada dua buah operan dapat menghasilkan sebuah hasil.

1.Operator Assignment adalah suatu operator penugasan yang digunakan untuk memasukkan nilai ke dalam suatu variabel. Operator ini dilambangkan dengan tanda (=)

2.Operator Unary adalah operator yang digunakan untuk melakukan operasi-operasi matematik yang hanya melibatkan satu buah operand.Yang termasuk dalam operator unary adalah :

Page 39: ALGORITMA & PEMOGRAMAN 1

Increment adalah suatu proses yang menaikkan (menambahkan nilai dengan nilai 1).Pre-increment adalah menaikkan nilai yang terdapat

pada sebuah variabel sebelum nilai dari variabel tersebut diproses didalam program.

Post increment adalah menaikkan nilai yang terdapat pada sebuah variabel setelah nilai dari variabel tersebut di proses didalam program.

Descrement adalah kebalikan dari increment yang merupakan proses penurunan nilai dengan nilai 1.

Page 40: ALGORITMA & PEMOGRAMAN 1

3. Operator Binary adalah operator yang digunakan untuk melakukan operasi yang melibatkan dua buah operand.Operator binary di golongkan menjadi 4 jenis yaitu : aritmatika,logika, relasional dan bitwise. Operator Aritmatika adalah operator yang

berfungsi untuk melakukan operasi-operasi aritmatika seperti penjumlahan, pengurangan,perkalian, dan pembagian.

Page 41: ALGORITMA & PEMOGRAMAN 1

Operator Logika adalah operator digunakan di dalam operasi yang hanya dapat menghasilkan nilai benar (true) dan salah (false).Yang termasuk operator logika adalah :

Operasi AND akan memberikan nilai benar apabila semua operandnya bernilai benar, selain itu operasi ini akan menghasilkan nilai salah.

Operasi OR akan menghasilakan nilai salah apabila semua nilai operannya salah.

Operator NOT (!) Adalah operasi yang menghasilkan nilai ingkaran (negasi) dari nilai operand yang diberikan.

Page 42: ALGORITMA & PEMOGRAMAN 1

Operator Relasional adalah operator yang di gunakan untuk menentukan relasi atau hubungan dari dua buah nilai atau operand. Yang termasuk dalam operator relasional :

Operator Bitwise adalah operator yang digunakan untuk menyelesaikan operasi-operasi bilangan dalam bentuk biner yang di lakukan bit demi bit.

Page 43: ALGORITMA & PEMOGRAMAN 1

Yang termasuk operator bitwise:

Operator ^ (eksklusif OR) merupakan Operasi XOR akan memberikan nilai benar apabila hanya dapat satu buah operand yang bernilai benar.

Operator >> (Shift Reght) Di gunakan untuk melakukan penggeseran bit ke kanan sebabyak nilai yang di defenisikan.

Operator << (Shift left) Merupakan kebalikan dari operator shift right yang artinya dapat melakukan pergeseran bit ke arah kiri sebanyak nilai yang didefinisikan.

Page 44: ALGORITMA & PEMOGRAMAN 1

4. Operasi TernaryOperator yang melibatkan tiga buah operand.Operator ini dilambangkan dengan tanda ?: berguna untuk melakukan pemilihan terhadap nilai tertentu dimana pemilihan tersebut didasarkan atasekspresi tertentu.

Page 45: ALGORITMA & PEMOGRAMAN 1

INPUT DAN OUTPUT Input Data

a. Scanf ( )b. Gets ( )c. cind. getchar ( )

Output Dataa. Printf ( )b. Puts ( )c. Putchar ( )d. Cprintf ( )e. Cout

Page 46: ALGORITMA & PEMOGRAMAN 1

Input Dataa. Scanf ( )

Digunakan untuk memasukkan berbagai jenis data.

Terdapat dalam file header: stdio.h Sintaks

Scanf ( “<format>”, &Variabel); Keterangan :

Simbol & merupakan pointer yang digunakan untuk menunjuk kealamat variabel memori yang di tuju.

Page 47: ALGORITMA & PEMOGRAMAN 1

Penentu format scanf

Page 48: ALGORITMA & PEMOGRAMAN 1

b. gets( )

Digunakan untuk memasukkan data string

Sintaks

gets (nama-variabel-array);

Page 49: ALGORITMA & PEMOGRAMAN 1

c. Cin– Merupakan sebuah object didalam C++ yang

digunakan untuk memasukkan data.– Terdapat di dalam file.header : iostream.h Sintaks :

Cin >> <var>; Catatan:– Untuk mendapatkan sebuah inputan data

yang mengandung spasi, dapat menggunakan :Cin.getline (<var>, sizeof (<var>))

Page 50: ALGORITMA & PEMOGRAMAN 1

d. getchar– Digunakan untuk membaca sebuah karakter

dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan menekan tombol enter dan karakter yang dimasukkan tidak akan ditampilkan dilayar.

– Terdapat di dalam file header: conio.h

Page 51: ALGORITMA & PEMOGRAMAN 1

OUTPUTa. Printf ( )

– Fungsi output yang paling umum digunakan.– Terdapat di dalam file header : stdio.h Sintaks :

Printf (“format”, arg1,arg2…); Keterangan : Format berupa keterangan yang akan

ditampilkan kelayar beserta penentu formatnya.

Penentu format di gunakan untuk menentukan jenis data apa yang akan ditampilkan dilayar.

Argumen dapat berupa variabel, konstanta,atau ekspresi.

Page 52: ALGORITMA & PEMOGRAMAN 1

Penentu format pada printf

Page 53: ALGORITMA & PEMOGRAMAN 1

b. Puts Digunakan untuk mencetak string kelayar. Pencetak akan diakhiri dengan karakter

newline (ke baris baru). Terdapat dalam file header: stdio.h

Sintaks:Puts (<string yang

ditampilkan>);

Page 54: ALGORITMA & PEMOGRAMAN 1

c. Putschar Menampilkan sebuah karakter kelayar Pencetakan karakter tidak diakhiri dengan

karakter newline. Terdapat dalam file header : stdio.h

SintaksPutschar (<kar>);

Page 55: ALGORITMA & PEMOGRAMAN 1

d. Cprintf ( ) Memiliki fungsi yang mirip dengan printf. Dapat menampilkan tulisan dengan warna. Terdapat dalam file header: stdio.h

Sintaks :

Cprintf ( “<format>”,arg1, arg2,….);

Page 56: ALGORITMA & PEMOGRAMAN 1

e. Cout ( )– Merupakan object dalam C++ yang

digunakan untuk menampilkan data kelayar.– Terdapat dalam file header : iostream.h– Dapat digabungkan dengan pengguna

escape sequence character. Contoh:

Cout << “Hello Word” <<endl;Cout <<“Pilihan anda salah\a\n”;

Page 57: ALGORITMA & PEMOGRAMAN 1

Penggunaan Escape Sequence Character

Page 58: ALGORITMA & PEMOGRAMAN 1

Penggunaan Escape Sequence Character

Page 59: ALGORITMA & PEMOGRAMAN 1

Penyeleksian Kondisi

Statement ifSatu kasus (if tunggal sederhana)Dua kasus (if-else)Lebih dari dua kasus (if-else-if… else)

Statement Switch

Page 60: ALGORITMA & PEMOGRAMAN 1

Penyeleksian Kondisi

Statement if

Ada 3 bagian dalam mengklasifikasi pemilihan dengan menggunakan statemen if yaitu : pemilihan yang didasarkan atas satu kasus, dua kasus atau lebih dari dua kasus.

Page 61: ALGORITMA & PEMOGRAMAN 1

Satu kasusPemilihan jenis ini adalah pemilihan yang

paling sederhana karena hanya mengandung satu kondisi yang akan diperiksa.

salah

benar

masuk

kondisi

Statemen didalam blok

kontrol

keluar

Page 62: ALGORITMA & PEMOGRAMAN 1

Bentuk umum dari statemen if untuk satu kasus yakni :

IfIf (kondisi) (kondisi) Statement_yang _akan_dieksekusi;Statement_yang _akan_dieksekusi;

IfIf (kondisi) { (kondisi) { Statement_yang _akan_dieksekusi 1Statement_yang _akan_dieksekusi 1 Statement_yang_akan_dieksekusi 2;Statement_yang_akan_dieksekusi 2; … …..}

Page 63: ALGORITMA & PEMOGRAMAN 1

Dua KasusBentuk pemilihan ini merupakan perluasan

dari bentuk pertama, statemen yang akan dilakukan apabila kondisi yang diperiksa bernilai salah (tidak terpenuhi).

Cara yang digunakan yaitu dengan menambah kata kunci else didalam blok pengecekan.

Statemen ini biasa dikenal dengan statemen if-else.

Page 64: ALGORITMA & PEMOGRAMAN 1

masuk

kondisi

Statemen jikaKondisi

terpenuhi

keluar

Statemen jikaKondisi tidak

terpenuhi

salahsalah

benarbenar

Page 65: ALGORITMA & PEMOGRAMAN 1

Bentuk umum untuk melakukan pemilihan dua kasus yakni :

IfIf (kondisi) (kondisi) Statement_jika _kondisi_benar;Statement_jika _kondisi_benar;

elseelse Statement_jika_kondisi_salah;

IfIf (kondisi) { (kondisi) { Statement_jika _kondisi_benar1;Statement_jika _kondisi_benar1; Statement_jika _kondisi_benar2;Statement_jika _kondisi_benar2; … …..} else {} else { Statement_jika_kondisi_salah1; Statement_jika_kondisi_salah2; ….}

Page 66: ALGORITMA & PEMOGRAMAN 1

Lebih dari dua kasusPada pemilihan jenis ini diizinkan untuk

menempatkan beberapa (lebih dari satu) kondisi sesuai dengan kebutuhan program.

Bentuk umum dari pemilihan ini yaitu :IfIf (kondisi1) { (kondisi1) { Statement_yang _akan_dieksekusi;Statement_yang _akan_dieksekusi; … …} } else if else if (kondisi2) {(kondisi2) { Statement_yang_akan_dieksekusi; …} else { Statement_alternatif; /* apabila semua kondisi diatas tidak terpenuhi */

}

Page 67: ALGORITMA & PEMOGRAMAN 1

Statement SwitchStatement switch digunakan untuk

melakukan pemilihan terhadap ekspresi atau kondisi yang memiliki nilai-nilai konstan.

Ekspresi yang didefenisikan harus menghasilkan bilangan bulat atau karakter.

Kata kunci yang digunakan untuk mendefinisikan nilai-nilai konstanta yakni case

Dalam melakukan pemilihan harus menambahkan statement break pada setiap nilai yang didefenisikan.

Page 68: ALGORITMA & PEMOGRAMAN 1

Bentuk umum statement switch

Switch (ekspresi) { case nilai_konstan1: { statement_yang_akan_dieksekusi; … break; } case nilai_kostan2: { statement_yang_akan_dieksekusi; … break; } … default: { statement_alternatif; /* apabila nilai diatas tidak terpenuhi */ }}

Page 69: ALGORITMA & PEMOGRAMAN 1

TugasBuatlah algoritma dan flow chat untuk kasus di bawah ini :

Sebuah aturan untuk menonton sebuah film tertentu sbb :Jika usia penonton lebih dari 17 tahun maka diperbolehkan dan apabila kurang dari 17 tahun maka tidak di perbolehkan nonton

Page 70: ALGORITMA & PEMOGRAMAN 1

PERULANGAN

Struktur forStruktur whileStruktur do-while

Page 71: ALGORITMA & PEMOGRAMAN 1

Struktur forStruktur for digunakan untuk menuliskan

jenis pengulangan yang banyaknyasudah pasti atau telah diketahui sebelumnya.

Bentuk umum dari pendefinisian struktur for (untuk sebuah statement) :

Sedangkan untuk dua statement atau lebih

for (ekspresi1; ekspresi2 ; ekspresi3) statement_yang_akan_diulang;

for (ekspresi1; ekspresi2 ; ekspresi3) { statement_yang_akan_diulang1; statement_yang_akan_diulangi2; …}

Page 72: ALGORITMA & PEMOGRAMAN 1

Keterangan:

Ekspresi1 digunakan sebagaiproses inisialisasi variabel yang akan dijadikan sebagai pencacah (counter) dari proses pengulanga, dengan kata lain ekspresi ini akan di jadikan sebagai kondisi awal.

Ekspresi2 digunakan sebagai kondisi akhir,yaitu kondisidimana proses pengulangan harus dihentikan.perlu diketahui bahwa pengulangan masih akan dilakukan selagi kondisi akhir bernilai benar.

Page 73: ALGORITMA & PEMOGRAMAN 1

Ekspresi3 digunakan untuk menaikkan (increment) atau menurunkan (decrement) nilai variabel yang digunakan sebagai pencacah.

Page 74: ALGORITMA & PEMOGRAMAN 1

Struktur whilePada struktur pengulangan jenis ini

kondisi akan diperiksa dibagian awal. Hal ini menyebabkan kemungkinan bahwa apabila ternyata kondisi yang didefenisikan tidak terpenuhi (bernilai salah), maka prose pengulangan tidak akan pernah dilakukan.

Bentuk umum dari struktur while: while ( ekspresi ) { Statemen_yang_akan_diulang1 ; Statemen_yang_akan_diulang2 ; … }

Page 75: ALGORITMA & PEMOGRAMAN 1

Struktur do-whilePada struktur do-while kondisi diletakkan di

akhir blok pengulangan. Hal ini menyebabkan bahwa statemen yang terdapat didalam blok pengulangan pasti akan dievakuasi minimal satu kali, walaupun kondisinya bernilai salah sekalipun.

Struktur do-while ini banyak digunakan untuk kasus-kasus pengulangan yang tidak mempedulikan benar atau salahnya kondisi pada saat memulai proses pengulangan.

Page 76: ALGORITMA & PEMOGRAMAN 1

Bentuk umum dari struktur pengulangan do-while:

do { Statemaen_yang_akan_diulang;

…} while ( ekspresi ) ; / * ingat tanda semicolon ( ; ) * /

Page 77: ALGORITMA & PEMOGRAMAN 1

TugasBuatlah algoritma dan diagam alir (flow chat)

untuk menghitung luas lingkaran ?

Page 78: ALGORITMA & PEMOGRAMAN 1

Statement Peloncatan Menggunakan kata kunci break Menggunakan kata kunci continue Menggunakan kata kunci goto

Page 79: ALGORITMA & PEMOGRAMAN 1

Statement PeloncatanStatement ini pada umumnya digunakan

dalam sebuah proses pengulangan, yang menentukan apakah pengulangan akan diteruskan, dihentikan atau dipindahkan kestatement lain didalam program.

3 buah kata kunci yang digunakan untuk melakukan proses peloncatan yaitu :Break,continue,goto

Page 80: ALGORITMA & PEMOGRAMAN 1

Menggunakan kata kunci break

Statement break digunakan untuk menghentikan sebuah pengulangan dan program akan langsung meloncat ke statement yang berada dibawah blok pengulangan.

Page 81: ALGORITMA & PEMOGRAMAN 1

Menggunakan kata kunci continueStatement continue digunakan untuk

melanjutkan proses pengulangan.

Page 82: ALGORITMA & PEMOGRAMAN 1

Menggunakan kata kunci gotoKata kunci goto yang digunakan agar

program dapat meloncat ke baris tertentu yang kita pilih.

Adapun untuk menentukan baris tsb harus membuat suatu label yakni : Dengan menempatkan tanda colon atau titik

dua (:) di belakangnya, misalnya LBL:,LABEL:,mylabel:

Statemen goto ini dapat ditempatkan dimana saja sesuai dengan kebutuhan program.

Page 83: ALGORITMA & PEMOGRAMAN 1

UJIAN TENGAH SEMESTERMATA KULIAH : ALGORITMA DAN PEMOGRAMAN

WAKTU : 75 MENIT DOSEN : SEPTIANA IMADHIRASTRI, S.KOM

1. Apa yang dimaksud dengan :a. Karakterb. Tipe datac. Variable

2. Buatlah algoritma dan flowchat untuk menghitung nilai uang dalam bentuk dollar, pesos dan Yen, adapun inputannya adalah rupiah dengan rumus :

Dollar = Rupiah / 10000Yen = Rupiah / 5000Pesos = Rupiah / 3000’

3. Buatlah algoritma dan flowchat untuk menghitung nilai dari persamaan berikut :

Hitunglah nilai x dengan a, b, c sebagai nilai inputan

Page 84: ALGORITMA & PEMOGRAMAN 1

ARRAY (Larik)Array adalah suatu variabel yang

merepresentasikan daftar (list) atau kumpulan data yang memiliki tipe data sama.

Elemen array adalah setiap data yang terdapat dalam array tersebut menempati alamat memori yang berbeda.

Untuk mengakses nilai dari suatu element array ,maka akan menggunakan indeks dari array tersebut.

Indeks array dimulai dari angka 0, bukan 1.

Page 85: ALGORITMA & PEMOGRAMAN 1

Ilustrasi sebuah array

Untuk mendeklerasikan suatu array satu dimensi adalah dengan menggunakan tanda [] (bracket). Adapun bentuk umu dari pendeklarasian tsbt adalah :

Contoh : nama A sebanyak 100 element data yang bertipe int :

Nilai ke-1Nilai ke-1 Nilai ke- 2Nilai ke- 2 …… Nilai ke-NNilai ke-N

Alamat ke-1Alamat ke-1 Alamat ke-2Alamat ke-2 …… Alamat ke-NAlamat ke-N

00 11 …… N-1N-1

Nilai elemen array

Alamat elemen array

Indeks element array

Tipe_data nama_array [banyak_elemen] ;

Int A [100];

Page 86: ALGORITMA & PEMOGRAMAN 1

Cara untuk memasukkan nilai ke dalam setiap elemen array adalah :A [0] = 1A [1] = 2A [2] = 3A [3] = 4A [4] = 5A [5] = 6. . .A [99] = 100

Page 87: ALGORITMA & PEMOGRAMAN 1

INISIALISASI ARRAYSaat array dideklarasikan,apabila tidak

melakukan inisialisasi nilai secara eksplisit terhadap elemen-elemen didalamnya,maka kompilator C akan secarah otomatismengeset nilai dari setiap elemen tsbt ke nol.

Cara untuk melakukan inisialisasi nilai terhadap elemen array, contoh:Int A [5] ={ 10, 20, 30, 40, 50 }Int B [5] = { 10 };Int C [5] = { 10, 0, 30};

Page 88: ALGORITMA & PEMOGRAMAN 1

Array A melukukan inisialisasi terhadap kelima element array, yaitu dengan nilai 10, 20, 30, 40,dan 50 sehingga array A dapat digambarkan sbb:

Array B melekukan inisialisasi tehadap elemen pertama saja, yaitu dengan nilai 10. artinya elemen lainnya masih kosong sehingga dapat digambarkan sbb:

1010 2020 3030 4040 5050

A [0]A [0] A [1]A [1] A [2]A [2] A [3]A [3] A [4]A [4]

1010 00 00 00 00

B [0]B [0] B [1]B [1] B [2]B [2] B [3]B [3] B [4]B [4]

Page 89: ALGORITMA & PEMOGRAMAN 1

Array C melakukan inisialisasi terhadap elemen ke-1 dan ke-3, yaitu dengan nilai 10 dan 30. sehingga dapat digambarkan sbb:

1010 00 3030 00 00

C [0]C [0] C [1]C [1] C [2]C [2] C [3]C [3] C [4]C [4]

Page 90: ALGORITMA & PEMOGRAMAN 1

ARRAY KONSTAN

Sama pada variabel biasa, elemen array juga dapat dibuat menjadi konstan, artinya nilai tidak dapat di ubahselama program berjalan.

Bentuk umum dari array konstan yaitu :

Nilai-nilai yang terdapat pada array konstan hanya digunakan untuk kepentingan akses program.misalnya nilai tsb akan digunakan untuk melakukan proses perkalian,seperti yang terdapat dlm sintak berikut :

Const tipe_data nama_array [N] = { nilai1, nilai2, …, nilaiN} :

For ( int j=0 ; j<3; j++) printf ( “ %d x %d = %d\n” , A[j], j, (A[j] * j ) ) ;}

Page 91: ALGORITMA & PEMOGRAMAN 1

ARRAY SEBAGAI PARAMETERDigunakan untuk mengetahui nilai rata-rata dari

elemen-elemen array yang bertipe float.Contoh sintak program sbb:

# include <stdio.h>

# define MAX 100

/* fungsi untuk memasukkan nilai kedalam elemen array */Void inputArray ( float A[] , int N) { for ( int j=0; j<N; j++) ( printf (“A[%d] = “ , j); scanf (“%d”, &A[j]); }}

/* fungsi untuk menghitung nilai rata-rata */Float HitungRata-rata (float A[] , int N) { float jumlah = 0; for (int j =0; j<N; j++) { jumlah += A[j] ; } return (jumlah /N)}

Page 92: ALGORITMA & PEMOGRAMAN 1

Masukkan banyaknya elemen yang diinginkan : 5A [0] = 12.50A [0] = 14.13A [0] = 10.74A [0] = 15.88A [0] = 16.35

Nilai rata-rata = 13.92

Page 93: ALGORITMA & PEMOGRAMAN 1

ARRAY SEBAGAI TIPE DATA BENTUKKAN# include <stdio.h>

typedef int LARIK [100]

/*mendefenisikan fungsi untuk menghitung jumlah (sum) dari elemen array */Int JumlahArray (int A[], int N) { int Jumlah = 0; for (int j = 0 ; j<N; j++) { jumlah += A[j]; } return jumlah :}

Int main ( ) {

/* mendeklerasikan variabel x dengan tipe LARIK dengan inisialisasi 5 elemen */LARIK X = { 10,20, 30, 40, 50 );/* Menampilkan nilai yang terdapat pada elemen ke-1 sampai ke-5 array x */for (int j = 0; j<5; j++) { printf (“A [%d] = %d\n” , j, x [j] ) ;}/*menampilkan jumlah elemen array x dengan memenggil fungsi JumlahArray */ printf (“\n\jumlah = %d”, JumlahArray (x, 5) );

return 0;

}

Page 94: ALGORITMA & PEMOGRAMAN 1

A [0] = 10A [1] = 20A [2] = 30A [3] = 40A [4] = 50

Jumlah = 150

Page 95: ALGORITMA & PEMOGRAMAN 1

ARRAY MULTIDIMENSIARRAY DUA DIMENSI

array dua dimensi adalah array yang memiliki dua buah subskrip, yaitu baris dan kolom.Bentuk umum dari array dua dimensi ini adalah

tipe_data nama_array [banyak_baris] [banyak_kolom];

Page 96: ALGORITMA & PEMOGRAMAN 1

Contoh matrik 3x2# include <stdio.h>

Int main (void) { /*membuat tipe data bentukkan untuk merepresentasikan matrik ordo 3x2 */ typedef int Matrik32 [3] [2];

/*mendeklerasikan variabel A, B dan C yang bertipe Matrik 32 */ matrik 32 A, B, C;

/*mendeklerasikan variabel j dan k untuk indeks pengulangan */ int j, k;

/*mengisikan nilai kedalam elemen-elemen matrik A*/ printif (“mengisikan elemen matrik A:\n”); for (j = 0; j<3; j++) { for (k=0; k<2; k++) { printf (“A[%d] [%d] = “, j, k); scanf (“%d”, &B[j] [k]); }}

/*mengisi nilai kedalam elemen-elemen matrik B*/Printf (“\n mengisikan elemen matrik B:\n”);For (j=0; j<3; j++) { for (k=0; k<2; k++) { printf (“B[%d] [%d] = “, j, k); scanf (“%d”, &B[j] [k]); }}

Page 97: ALGORITMA & PEMOGRAMAN 1

/*melakukan penjumlahan matrik A dan B dan menyimpannya kedalam matrik C */For (j=0; j<3; j++) { for (k=0; k<2; k++) { C[j] [k] =A[j] [k] +B[j] [k] ; }}

/*menampilkan hasil penjumlahan matrik diatas */Printf (“\nHasil penjumlahan matrik A dan B:\n”);For (j=0; j<3; j++) { for (k=0; k<2; k++) { printf (“C[%d] [%d] = %d\n”, j, k, c[j] [k]); }}Return 0;}

Page 98: ALGORITMA & PEMOGRAMAN 1

Hasil program

Mengisikan elemen matrik A:A [0] [0] = 10A [0] [1] = 20A [1] [0] = 30A [1] [1] = 40A [2] [0] = 50A [3] [1] = 60

Mengisikan elemen matrik B:B [0] [0] = 10B [0] [1] = 20B [1] [0] = 30B [1] [1] = 40B [2] [0] = 50B [3] [1] = 60

Hasil penjumlahan matrik A dan B:B [0] [0] = 20B [0] [1] = 40B [1] [0] = 60B [1] [1] = 80B [2] [0] = 100B [3] [1] = 120

Page 99: ALGORITMA & PEMOGRAMAN 1

Array Tiga dimensiadalah array yang memiliki tiga subskrip.

Bentuk umum dari array tiga dimensi ini adalah :

tipe_data nama_array [banyaknya_elemen_pada_sumbu_x] [banyaknya_elemen_pada_sumbu_Y] [banyaknya_elemen_pada_sumbu_z];

Page 100: ALGORITMA & PEMOGRAMAN 1

STRING (Array dari karakter)

String merupakan suatu pointer ke tipe char sehingga tipe string ini direpresentasikan dengan tipe char* atau dengan menggunakan array dari tipe char.

String akan diapit oleh tanda petik ganda (“”)

Suatu string selalu diakhiri dengan karakter null (‘\0’ , bukan berarti nol)

Page 101: ALGORITMA & PEMOGRAMAN 1

Menampilkan string ke layar

Untuk menampilkan suatu string ke suatu alat keluaran (misalnya monitor) dapat menggunkan fungsi printf ( )yang diikuti dengan format %s atau dengan menggunakan fungsi puts ( ) maupun cputs( ).

Page 102: ALGORITMA & PEMOGRAMAN 1

Membaca string dari keyboard

#include <stdio.h>

Int main (void) { /*mendeklerasikan variabel S yang bertipe string */ char *S;

/*melakukan input string dengan fungsi scanf ( ) */ printf (“masukkan nama lengkap anda : “); scanf ( ) */

/*menampilkan string yang telah disimpan ke dalam variabel S */ printf (“ Hai %s, apa kabarmu?”, s);

return 0;}

Masukkan nama lengkap anda : Camelia panataraniHai Camelia, apa khabarmu?

Page 103: ALGORITMA & PEMOGRAMAN 1

#include <stdio.h>

Int main (void) { /* mendeklerasikan variabel S yang bertipe string */ char *S;

/*melakukan input string dengan fungsi gets ( ) */ printf (“masukkan nama lengkap anda : “); gets ( ) */

/* menampilkan string yang telah disimpan kedalam variabel S */ printf (“Hai %s, apa kabarmu?”, S);

return 0;}

Masukkan nama lengkap anda : Camelia panataraniHai Camelia panatarani, apa khabarmu?

Page 104: ALGORITMA & PEMOGRAMAN 1

Fungsi operasi string

1.Fungsi strcat ( ) prototipe dari fungsi ini adalah :

fungsi strcat ( ) akan menambahkan salinan dari string str2 kebagian akhir string1.disini karakter null yang terdapat pada string str1 akan dipindahkan kebagian akhir dari string baru hasil pengggabungan.

Char *strcat (char *str1, char* str2);

Page 105: ALGORITMA & PEMOGRAMAN 1

Contoh

# include <stdio.h># include <string.h>

Int main (void) { char s1 [50] =“pemograman”; char s2 [21] = “menggunakan Bahasa C”; strcat (s1, s2) ; printf (“%s, s1); return 0;}

Pemograman menggunakan bahasa C

Page 106: ALGORITMA & PEMOGRAMAN 1

2. Fungsi strcpy ( )prototipe dari fungsi ini adalah:

fungsi ini akan melakukan penyalinan (copy) dari string2 ke string1 (termasuk juga karakter null)

Char *strcpy (char *str1, char *str2);

Page 107: ALGORITMA & PEMOGRAMAN 1

3. Fungsi strcmp ( )prototipe dari fungsi ini adalah

fungsi ini akan mengembalikan nilai bilangan bulat (integer) sebagai hasil perbandingan dua buah string yaitu str1 dan str2.

Int strcmp (char *str1, char *str2);

Page 108: ALGORITMA & PEMOGRAMAN 1

4. Fungsi strlwr ( )prototipe dari fungsi ini adalah

fungsi ini akan menyebabkan string str berubah menjadi huruf kecil.

Char *strlwr (char *str)

Page 109: ALGORITMA & PEMOGRAMAN 1

5. Fungsi strupr ( )prototipe dari fungsi ini adalah

fungsi ini merupakan kebalikan dari fungsi strlwr ( ), dimana fungsinya adalah untuk mengubah suatu string ke dalam bentuk huruf besar (kapital).

Char *strupr (char *str);

Page 110: ALGORITMA & PEMOGRAMAN 1

6. Fungsi strlen ( )Berfungsi untuk memperolehjumlah karakter dari suatu string.prototipe dari fungsi ini adalahStrlen (string)

Page 111: ALGORITMA & PEMOGRAMAN 1

Fungsi operasi karakter

1. islower ( )Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil.Bentuk umumnya : islower (char);

2. isupper ( )Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital.Bentuk umumnya: isupper (char);

Page 112: ALGORITMA & PEMOGRAMAN 1

2. Isdigit ( )Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit.Bentuk umumnya : isdigit (char);

3. tolower ( )Fungsi akan mengubah huruf kapital menjadi huruf kecilBentuk umumnya: tolower (char);

Page 113: ALGORITMA & PEMOGRAMAN 1

4. toupper ( )Fungsi akan mengubah huruf kecil menjadi huruf besar.Bentuk umumnya : toupper (char);

Page 114: ALGORITMA & PEMOGRAMAN 1

Fungsi operasi matematika

1. sqrt ( )Digunakan untuk menghitung akar dari sebuah bilangan.Bentuk umum : sqrt (bilangan)

2. pow ( )Digunakan untuk menghitung pemangkatan suatu bilangan.Bentuk umum : pow (bilangan, pangkat);

Page 115: ALGORITMA & PEMOGRAMAN 1

3. Sin ( ), cos ( ), tan ( )Masing-masing digunakan untuk menghitung nilai sinus, cosinus, tangen dari suatu sudut.Bentuk umum:sin (sudut)cos (sudut)tan (sudut)

Page 116: ALGORITMA & PEMOGRAMAN 1

4. atof ( )Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe doubel.Bentuk umum: atof (char x)

5. atoi ( )Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer.Bentuk umum: atoi (char x)

Page 117: ALGORITMA & PEMOGRAMAN 1

5. Div ( )Digunakan untuk menghitung hasil pembagian dari sisa pembagian.Bentuk umum :Strukturnya :

Page 118: ALGORITMA & PEMOGRAMAN 1

6. max ( )Digunakan untuk menentukan nilai maksimal dari dua buah bilangan.Bentuk umum : max (bilangan1, bilangan2)

7. min ( )Digunakan untuk menentukan bilangan terkecil dari dua buah bilangan.Bentuk umum : min (bilangan1, bilangan2)

Page 119: ALGORITMA & PEMOGRAMAN 1

POINTERPointer (variabel penunjuk) adalah suatu variabel

yang berisi alamat memori dari suatu variabel lain.

Operator pointer ada 2 macam yakni:Operator &

bersifat unary (hanya memerlukan satu operand saja)

Menghasilkan alamat dari operandnyaOperator *

Bersifat unary (hanya memerlukan satu operand saja)

Menghasilkan niulai yang berada pada sebuah alamat

Page 120: ALGORITMA & PEMOGRAMAN 1

Bentuk umum:

Contoh:

Dalam bentuk pointer, ditulis :Andi = &Budi; // baris 1Budi = *(&Budi); // baris 2

Subtitusi pernyataan di baris 2 : Andi = *Andi;

Tipe_data *nama_pointer;

Page 121: ALGORITMA & PEMOGRAMAN 1

OPERASI POINTEROperasi penugasan

suatu variabel pointer seperti halnya variabel yang lain , juga bisa mengalami operasi penugasan nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain.

Operasi aritmatikasuatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (indek selanjutnya) dalam memori.Begitu juga operasi pengurangan.

Oprasi logikasuatu pointer juga dapat dikenai operasi logika