Modul Algoritma Dan Pemrograman Pet 1-9
Modul Algoritma Dan Pemrograman Pet 1-9
ATKP Medan
MODUL 1
1. PERTEMUAN 2. JUDUL
3. TUJUAN a. Definisi Algoritma
:1 : ALGORITMA :
b. Simbol-simbol Flowchart c. Mampu memahami suatu permasalahan d. Menyusun langkah-langkah penyelesaian masalah e. Membuat algoritma deskriptif, flowchart dan pseudo code
4. DASAR TEORI Kata Algoritma diambil dari nama ilmuwan muslim Abu Jafar Muhammad bin Musa Al-Khwarizmi (780-846 M) yang banyak menghasilkan karya dalam bidang matematika, disamping karya-karyanya dalam bidang lainnya seperti geografi dan musik. Algorithma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Langkah-langkah tersebut harus logis ini berarti nilai kebenarannya harus dapat di tentukan, benar atau salah. Langah-langkah yang tidak benar dapat memberikan hasil yang salah. Algorithma merupakan jantung ilmu komputer atau informatika tetapi algoritma tidak selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari banyak terdapat proses yang digambarkan dalam suatu algorithma. Contohnya resep masakan/membuat kue (resep kue), membuat pakaian (pola pakaian), merakit mobil (panduan merakit).
CIRI-CIRI ALGORITMA YANG BAIK. a) Tepat sasaran : memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan b) Flexible dan portable : Flexible untuk dikembangkan lebih lanjut Portable untuk digunakan pada berbagai sistem dan mesin c) Bersih dari kesalahan sistem ataupun lojik d) Efektif : setiap langkah harus sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal. e) Murah:
ATKP Medan
Efisien dalam penggunaan piranti memori dan penyimpanan lainnya. Cepat waktu pelaksanaannya. f) Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan pengembangan. g) Algoritma merupakan pemberian (description) pelaksanaan suatu proses. h) Tidak ambiguous : tidak bermakna ganda. i) Harus berhenti setelah mengerjakan sejumlah langkah terbatas.
ATURAN PENULISAN TEKS ALGORITMA Ada tiga cara penulisan Algoritma, yaitu : 1. Uraian deskriftif Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. Algoritmanya : a. Masukkan sebuah bilangan sembarang b. Bagi bilangan tersebut dengan bilangan 2 c. Hitung sisa hasil bagi pada langkah 2. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil. 2. Menggunakan kata-kata atau kalimat yang mirip dengan bahasa pemrograman yaitu Psudo Code Contoh suatu Pseudocode : Start Nilai a=3 ; b=5 ; c=0 Hitung c= a * b Tampilkan nilai c End 3. Menggunakan bagan-bagan/symbol-simbol tertentu seperti Diagram Alir (Flowchart)
DIAGRAM ALIR Flow-chart atau bagan alir adalah suatu skema/gambar yang memperlihatkan urutan intruksi/kegiatan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan symbol. Dengan demikian setiap symbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung.
ATKP Medan
Flow-chart dibedakan atas dua jenis, yaitu : 1. Diagram alir sistem (System Flow-chart) Bagan yang memperlihatkan urutan prosedur dan proses dari beberapa file dalam media tertentu. System flowchart menggambarkan : a. Hubungan antar suatu file dengan file lainnya b. Media yang dipakai untuk setiap file 2. Diagram alir program(Program Flow-chart) Bagan yang memperlihatkan urutan dan hubungan proses dalam suatu program. Penulisan dengan menggunakan bagan alir sudah tidak banyak digunakan, dengan alasan : Hanya cocok untuk masalah kecil. Memerlukan kemampuan menggambar yang baik, tetapi sangat bermanfaat jika digunakan untuk menggambarkan logika pemecahan masalah untuk pengajaran Berikut merupakan simbol dari diagram alir program Simbol Arti
Decision / Pengambilan Keputusan (perbandingan antara dua buah nilai atau lebihi)
ATKP Medan
Predefine (sebuah program yang terpisah yang dapat dipanggil dari main program)
KAIDAH-KAIDAH UMUM PEMBUATAN FLOWCHART Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri dari 3 bagian utama, yaitu: Input Proses Pengolahan dan Output
Input
Proses
Output
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah : START, berisi instruksi untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan READ, berisi instruksi kegiatan untuk membaca data dari suatu peralatan input PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca WRITE, berisi instruksi untuk merekan hasil kegiatan ke peralatan output END, mengakhiri kegiatan pengolahan Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran: 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
ATKP Medan
Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END
Stop
Siram bak
ATKP Medan
5. PERCOBAAN Buatlah algoritma dalam bentuk Flowchart masalah dibawah ini : 1. Menjumlahkan 2 buah bilangan dan mencetak hasilnya 2. Mengalikan 2 buah bilangan dan mencetak hasilnya 3. Menukarkan isi dua buah variabel dan mencetak hasilnya 4. Menghitung Luas Lingkaran dan hasilnya 5. Mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya 6. Menghitung sigma (akumulasi) dari bilangan 1 sampai dengan n, dan menampilkan hasilnya
ATKP Medan
MODUL 2
1. PERTEMUAN : 2 2. JUDUL
3. TUJUAN : STRUKTUR DASAR PEMROGRAMAN C++ :
a. Memahami IDE (Integrated Development Environment) bahasa C++ b. Dapat menggunakan sintaks dan fungsi-fungsi dalam bahasa C++ c. Mampu menterjemahkan algoritma untuk memecahkan suatu masalah kedalam bahasa C++
4. DASAR TEORI Pada tahun 1980 seorang ahli yang bernama Bjarne Stroustrup mengembangkan beberapa hal dari bahasa C yang dinamakan C with Classes yang pada mulanya disebut a better C dan berganti nama pada tahun 1983 menjadi C++ oleh Rick Mascitti, dibuat di Laboratorium Bell, AT&T. Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat- sifatnya yang disebut dengan Object Oriented Programming (OOP), yang mempunyai tujuan utamanya adalah membantu dan mengelola program yang besar dan kompleks. Bahasa Pemrograman C++ merupakan bahasa yang biasa dipakai untuk pemrogram sistem, antara lain: Assembler Interpreter Program paket Sistem operasi Editor Kompiler Program bantu (utility)
Selain digunakan untuk pemrograman sistem juga digunakan untuk membuat berbagai program aplikasi, seperti aplikasi bisnis, matematis, maupun games (permainan), serta untuk menyusun program kecerdasan buatan (artificial intelligence).
ATKP Medan
4.1. Pengenalan IDE Borland C++ IDE merupakan singkatan dari Integrated Development Environment, merupakan Lembar kerja terpadu untuk pengembangan program. IDE dari Borland C++, dapat digunakan untuk: 1. Menulis Naskah Program. 2. Mengkompilasi Program ( Compile ) 3. Melakukan Pengujian Program ( Debugging ) 4. Mengaitkan Object dan Library ke Program ( Linking ) 5. Menjalankan Program ( Running ) Untuk mengaktifkan aplikasi Borland C++, lakukanlah langkah-langkah berikut ini: Klik tombol Start pilih Program Borland C++ 5.02 klik Borland C++
ATKP Medan
Status
Gambar 3. IDE Borland C++ 5.02 IDE pada Borland C++, terbagi menjadi 5 (empat) bagian, yaitu: 1. Baris Menu ( Menu Bar ) Menu utama terdiri dari; File, Edit, Search, Run, Compile, Debug, Project, Options, Window dan Help. 2. Baris Peralatan (Tools Bar) Baris yang menampilkan shortcuts (icons) untuk mempermudah pengguna dalam pembuatan program-program C++, seperti icon open, save, compiler, run dan lainlain. 3. Jendela Editor
ATKP Medan
Tempat untuk pengetikan program dan membuat program. Jika pertama kali anda membuat program, nama file jendela editor adalah NONAME00.CPP 4. Jendela Message Tempat untuk menampilkan pesan-pesan pada proses kompilasi dan link program. Jika ada kesalahan sintax program maupun varibel dan objek, maka akan diberikan pesan kesalahannya yang kemudian dapat didouble klik pada pesan tersebut untuk mendapatkan petunjuk di baris yang mana terdapat kesalahannya. 5. Baris Status (Status Bar) Baris yang akan menampilkan keterangan-keterangan pada saat mengaktifkan menu bar dan sub menu serta keterangan-keterangan lain (seperti petunjuk baris dan kolom, waktu yang sedang berjalan).
4.2 Struktur Program C++ Pemrograman C++ disusun oleh sejumlah blok fungsi. Sebuah program minimal terdiri dari sebuah fungsi. Setiap fungsi terdiri dari satu atau beberapa pernyataan. Bentuk Umum Struktur Program C++ : #include <file-header> main() { pernyataan; } Penjelasan: 1. include Adalah salah satu pengarah prepocessor directive yang tersedia pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Preprocessor dipakai untuk membaca file yang dinamakan dengan file-judul (header file), yaitu file yang berisi deklarasi fungsi dan defenisi konstanta. File ini mempunyai ciri yaitu namanya diakhiri dengan extension .h. Bentuk umumnya : # include <nama_file> tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan
10
ATKP Medan
kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h(file header) yaitu file yang berisi sebagai deklarasi contohnya: # include <iostream.h> # include <conio.h> : diperlukan pada program yang melibatkan objek cout : 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. 2. Fungsi main () Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main( ). Berarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi main(). 3. Komentar Komentar tidak komentar, yaitu: Jenis 1 : /* Komentar anda diletakkan di dalam ini Bisa mengapit lebih dari satu baris */ Jenis 2 : // Komentar anda diletakkan disini ( hanya bisa perbaris ) 4. Tanda Semicolon Tanda semicolon ; digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. 5. Mengenal cout(dibaca : C out) Pernyataan cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar) Contoh : pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis
11
ATKP Medan
1. #include <file-header> merupakan preprocessor pada C++ untuk pemanggilan file header yang memuat beberapa perintah-perintah dari C++ (contoh, apabila ingin menggunakan perintah cout maka harus menggunakan file header iostream.h) 2. main() merupakan awal mula dari blok program utama 3. tanda { dan } sebagai punctuator yang awal blok program hingga akhir blok program 4. cout merupakan perintah keluaran pada C++ 5. getch(); apabila ditempatkan sebelum funtuator }, maka berfungsi sebagai penahan dari tampilan hasil
4.3 Membuat File Editor File Editor merupakan file kode program yang dapat dikompilasi, kemudian dijalankan untuk menampilkan hasilnya yang mempunyai ekstensi file .CPP. Cara mengaktifkannya : Klik Menu File Klik New Text Edit
12
ATKP Medan
Gambar 5 Jendela Text Editor 4.4. Menyimpan File Editor Setelah selesai mengetikan naskah program yang baru pada jendela Text Edit, maka selanjutnya disimpan dengan cara : a. Kik Menu File Save b. Menekan HotKey Ctrl + KS. Selanjutnya tampil jendela Save File As, seperti dibawah ini :
13
ATKP Medan
Pada Borland C++ 5.02 terdapat tiga cara menyimpan file editor, diantaranya yaitu : Save Digunakan untuk menyimpan File Program pada jendela yang sedang aktif kedalam disk. Hotkey yang ada bisa gunakan untuk menyimpan dengan menekan tombol Ctrl + KS. Save As Digunakan untuk menyimpan File Program pada jendela yang sedang aktif kedalam disk dengan nama file yang berbeda. Save All Digunakan untuk menyimpan semua File Program pada jendela yang sedang aktif kedalam disk.
4.5. Menterjemahkan Program Proses Compile merupakan suatu proses menterjemahkan program dari bahasa manusia kedalam bahasa yang dimengerti oleh komputer yaitu bahasa mesin, yaitu dengan cara :
Gambar 7. Kotak Dialog Compile 4.6. Menjalankan Program Proses Run merupakan suatu proses menterjemahkan program,melakukan proses linking, membuat file eksekusi ( .exe ) dan sekaligus menjalankan program, yaitu dengan cara: 6. Kik Menu Debug Run
14
ATKP Medan
7. Menekan HotKey Ctrl + F9 Selanjutnya tampil hasil Run, seperti dibawah ini :
Gambar 8. Contoh Hasil Keluaran Program 4.7. Membuka File Editor Penjelasan Membuka atau memanggil file editor yang sudah pernah dibuat, dengan cara : Klik Menu File Open Selanjutnya tampil Jendela Open, seperti dibawah ini :
5. PERCOBAAN a. Terjemahkan Algoritma yang telah dibuat dalam tugas modul 1 menggunakan bahasa pemrograman C++ . 1. Menjumlahkan 2 buah bilangan dan mencetak hasilnya
15
ATKP Medan
#include <conio.h> #include <iostream.h> main() { int a,b,c; a=10; b=21; c=a+b; cout<<"a + b = "<<c<<endl; cout<<a<<" + "<<b<<"= "<<c; getch(); }
2. Mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya
#include <conio.h> #include <iostream.h> main() { int a,b,c; a=10; b=21; if (a==b) { cout<<a<<" Sama Dengan "<<b; }else if(a>b) { cout<<a<<" Besar dari "<<b; }else { cout<<a<<" Kecil dari "<<b; } getch(); }
3. Menghitung sigma (akumulasi) dari bilangan 1 sampai dengan n, dan menampilkan hasilnya
16
ATKP Medan
#include <conio.h> #include <iostream.h> main() { int i, total=0; for (i=1;i<=10;i++) { total=total+I; } cout<<"Total Nilai Keseluruhan :"<<total; getch(); }
17
ATKP Medan
a. Menjelaskan dan menggunkan tipe data dasar (jenis dan jangkauannya) b. Menjelaskan dan menggunakan Variabel c. Menjelaskan dan menggunakan konstanta d. Menjelaskan dan menggunakan berbagai jenis operator
4. DASAR TEORI 4.1. Tipe Data Data menggambarkan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel. Dimana konstanta menyatakan suatu nilai yang tetap dan variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi program berlangsung. Tipe data dapat dikelompokkan menjadi atas dua macam : 1. Tipe Dasar. 2. Tipe Bentukkan. Tipe Dasar Adalah tipe yang dapat langsung dipakai. Tipe Dasar Ukuran Memori Jangkauan Nilai (byte) Char Int Long 1 2 4 -128 hingga +127 -32768 hingga +32767 -2.147.438.648 hingga 2.147.438.647 Float Double 4 8 3,4E-38 hingga 3,4E38 1.7E-308 hingga 1.7E308 3.4E-4932 hingga 1.1E4932 6-7 15-16 19 Jumlah Digit Presisi -
long double 10
NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe) Tipe data dapat diubah ( type cast ), misalkan:
18
ATKP Medan
float x = 3.345; int p = int(x); maka nilai p adalah 3 ( terjadi truncating ). Tipe Bentukan Merupakan tipe yang dibentuk dari tipe dasar. Seperti Tipe Struktur. Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut field. Field field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam operasi. Bentuk umumnya : tyedef struct{ tipe nama_field1; tipe nama_field2; tipe nama_field3; .... }nama_variabel;
4.2. Variabel Variabel digunakan untuk menyimpan suatu nilai dalam program, dan nilai tersebut dapat diubah-ubah selama eksekusi program berlangsung a. Deklarasi variabel Varibel yang digunakan dalam program harus dideklarasikan terlebih dahulu, yaitu pemesanan memori dan penentuan jenis data yang bisa disimpan dalam variabel tersebut. Bentuk umum deklarasi variabel : Tipe nama-variabel; Pada deklarasi variabel, nama-variabel dapat terdiri dari satu variabel atau beberapa variabel yang dipisahkan dengan tanda koma (,). Contoh : int R ; float nilai, nilai_total, ipk; b. Memberikan nilai variabel Bentuk umum memberikan nilai ke suatu variabel : variabel=nilai; Contoh : R=10;
19
ATKP Medan
nilai=70.5; ipk=3.4; c. inisialisasi variabel Merupakan pemberian nilai awal terhadap suatu variabel. Adakalanya dalam pembuatan program, setelah variabel dideklarasikan langsung diberi nilai awal. Contoh : int total; total=0; atau int total=0;
4.3. Konstanta Konstanta menyatakan nilai tetap. Tidak perlu dideklarasikan, dan mempunyai tipe data. Aturan penulisan: Konstanta karakter : diawali dan diakhiri dengan tanda petik tunggal, Contoh : A dan @. Konstanta integer : ditulis dengan angka (tanpa tanda petik) tanpa mengandung pemisah ribuan dan tak mengandung bagian pecahan. Contoh : 1 dan 32767. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 ). Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda (). Contoh: Program Dasar. Menggunakan keyword #define #define <nama_konstanta> <nilai> atau Menggunakan keyword const const <tipe_konstanta> <nama_konstanta> = <nilai>; Contoh: #define PI 3.14159 atau : const float PI = 3.14159;
20
ATKP Medan
4.4. Operator Operator merupakan simbol atau karakter yang digunakan untuk melakukan suatu operasi atau manipulasi seperti operasi matematika, operasi logika dan lain sebagainya. a. Opeartor Arimatika Operator * / % + Perkalian Pembagian Sisa pembagian Penjumlahan Pengurangan Operasi
c. Operator relasi Operator relasi (hubungan) biasa dipakai untuk membandingkan dua buah nilai. Hasil perbandingan berupa keadaan benar atau salah. Operator > >= < <= == != Besar dari Besar dari atau sama dengan Kurang dari Kurang dari atau sama dengan Sama dengan Tidak sama dengan Operasi
d. Operator Logika Biasa digunakan untuk menghubungkan ungkapan relasi Operator && || ! Dan (AND) Atau (OR) Tidak (NOT) Operasi
21
ATKP Medan
5. PERCOBAAN 1. Tipe-tipe data dasar /* File program : data.cpp */ #include <stdio.h> #include <conio.h> main() { int var_bulat = 32767; float var_pecahan1 = 339.2345678f; double var_pecahan2 = 3.4567e+40; char var_karakter = 'S'; printf("Variabel bulat = %d\n", var_bulat); printf("Variabel pecahan1 = %f\n", var_pecahan1); printf("Variabel pecahan2 = %le\n", var_pecahan2); printf("Variabel karakter = %c\n", var_karakter); getch(); } 2. Mengenal beberapa operator /* File program : operator.cpp */ #include <stdio.h> #include <conio.h> main() { int a, b, c, hasil; printf("Masukkan nilai a = "); scanf("%d", &a); printf("Masukkan nilai b = "); scanf("%d", &b); printf("Masukkan nilai c = "); scanf("%d", &c); printf("\n"); hasil = a - b; printf("Hasil pengurangan : a printf("Hasil perkalian : b * c hasil = a / c; printf("Hasil pembagian : a / c printf("Hasil operasi : a + b * getch(); }
22
ATKP Medan
3. Operator Modulus /* File program : modulus.cpp*/ #include <stdio.h> #include <conio.h> main() { int a = 14, b = 2, c = 3, d = 4; printf("a = %d, b = %d, c = %d, d = %d\n\n", a, b, c, d); printf("Hasil a %% b = %d\n", a % b); printf("Hasil a %% c = %d\n", a % c); printf("Hasil a %% d = %d\n", a % d); printf("Hasil a / d * d + a %% d = %d\n", a / d * d + a % d); getch(); } 4. Menghitung diskriminan pers kuadrat ax^2 + bx + c = 0
/* File program : diskrim.cpp */ # include <stdio.h> # include <conio.h> main() { float a,b,c,d = 0; a = 3.0f; b = 4.0f; c = 7.0f; d = b*b-4*a*c; printf("Diskriminan = %f\n",d); getch(); }
5. Penggunaan pre & post Increment operator /* File program : pre_post.Cpp */ #include <stdio.h> #include <conio.h> main() { int count = 0, loop; loop = ++count; /* count=count+1; loop=count; */ printf("loop = %d, count = %d\n", loop, count); loop = count++; /* loop=count; count=count+1; */ printf("loop = %d, count = %d\n", loop, count); getch(); }
23
ATKP Medan
6. Perbedaan format %g, %e dan %f /* File program : form_efg.cpp */ #include <stdio.h> #include <conio.h> main() { float x; printf("Masukkan nilai pecahan yg akan ditampilkan : "); scanf("%f", &x); printf("format e => %e\n", x); printf("format f => %f\n", x); printf("format g => %g\n", x); getch(); } 7. Penggunaan format panjang medan data /* File program : formatpjg.cpp */ #include <stdio.h> #include <conio.h> main() { int nilai1 = 20; float nilai2 = 500.0f; printf("Abad %5d\n", nilai1); printf("%10.2f\n", nilai2); printf("%10s\n", "Bahasa C"); /* String rata kanan */ printf("%-10s\n", "Bahasa C"); /* String rata kiri */ getch(); }
6. LATIHAN
Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan rumus F = C * 1.8 + 32 Input : suhu dalam Celcius Output : suhu dalam Fahrenheit
24
ATKP Medan
a. Menjelaskan dan menggunakan fungsi untuk input data b. Menjelaskan dan menggunakan fungsi untuk menampilkan/mencetak informasi c. Menggunakan penentu format
4. LANDASAN TEORI Input data dan menampilkan data/informasi (output) merupakan kegiatan yang sering dilakukan dalam pemrograman. Input data dilakukan melalui keyboard menghasilkan output melalui piranti monitor atau printer.
4.1 Program Input Data diinputkan melalui keyboard saat eksekusi program berlangsung. Fungsi yang digunakan untuk input data yaitu : scanf(), getch() dan getche(), cin(). a. scanf() Fungsi ini digunakan untuk menginputkan berbagai jenis data dengan menggunakan penentu format data. Daftar penentu format data : Kode %c %s % i atau %d %e atau %f %o %x %u l L h Membaca sebuah karakter Membaca sebuah string Membaca sebuah integer Membaca sebuah bilangan real (bisa dalam bentuk eksponensial) Membaca sebuah integer oktal Membaca sebuah integer hexadesimal Membaca sebuah integer tak bertanda Awalan untuk membaca data long int (misal %ld) Awalan untuk membaca data long double (misal %Lf) Awalan untuk membaca data short int (misal %hd) Keterangan
25
ATKP Medan
fungsi getch() digunakan untuk membaca sebuah karakter, dengan sifat karakter yang diinputkan tidak perlu diakhiri dengan ENTER dan karakter yang diinputkan tidak akan ditampilkan di layar. Sedangkan fungsi getche() kegunaannya sama dengan fungsi getch(), perbedaannya karakter yang diinputkan ditampilkan di layar. c. Cin Fungsi cin merupakan sebuah objek didalam C++ digunakan untuk memasukan suatu data dari keyboard. Untuk menggunakan fungsi cin ini harus menyertakan file header iostream.h
4.2 Program Output Untuk menampilkan output/informasi digunakan fungsi printf(), puts() dan putchar(), cout. a. printf() Fungsi printf() digunakan untuk menampilkan berbagai jenis data. Fungsi printf() sama dengan fungsi scanf() menggunakan penentu format. b. Pust() Fungsi puts() digunakan khusus untuk manapilkan data string ke layar. Dengan menggunakan fungsi ini, dengan \n (pindah baris) c. Putchar() Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter ke layar, akan tetapi tidak diakhir dengan pindah baris.
d. Cout Funsi cout merupakan sebuah objek didalam C++ digunakan untuk menampilkan suatu data kelayar. Untuk menggunakan fungsi ini harus menyertakan file header iostream.h
26
ATKP Medan
27
ATKP Medan
6. LATIHAN Buat algoritma dan program untuk menginputkan, menghitung dan menampilkan luas persegi panjang, Luas Lingkaran,
28
ATKP Medan
a. Menjelaskan dan menggunakan operator kondisi (operator relasi dan logika) b. Menggunaan pernyataan if c. Menggunaan pernyataan if-else d. Menggunaan pernyataan if dalam if e. Menggunaan pernyataan switch
4. DASAR TEORI Pengambilan keputusan diperlukan jika ada dua atau lebih kondisi yang harus dipilih salah satu. Pernyataan-pernyataan yang dapat digunakan dalam pengambilan keputusan adalah : Pernyataan if Pernyataan if-else Pernyataan switch
Pernyataan-pernyataan diatas memerlukan suatu kondisi yaitudibentuk dengan operator relasi dan/atau operator logika. 4.1. Operator Relasi Operator relasi (hubungan) biasa dipakai untuk membandingkan dua buah nilai. Hasil perbandingan berupa keadaan benar atau salah. Operator > >= < <= == != Besar dari Besar dari atau sama dengan Kurang dari Kurang dari atau sama dengan Sama dengan Tidak sama dengan Operasi
29
ATKP Medan
Contoh PEMBANDING 1>2 1<2 A==1 A < B Kar==Y HASIL Salah Benar Benar jika A bernilai 1 Salah jik A tidak bernilai 1 Benar karena kode ASCII untuk karakter A kecil dari kode ASCII karakter B Benar jika variabel kar berisi Y Salah jika variabel kar tidak berisi Y
4.2. Operator Logika Biasa digunakan untuk menghubungkan ungkapan relasi Operator && || ! Dan (AND) Atau (OR) Tidak (NOT) Operasi
Jika kondisi benar maka pernyataan dilakukan. Pernyataan bisa satu statement atau beberapa statement Jika pernyataan lebih dari satu gunakan tanda { dan } untuk mengelompokkan pernyataan2 itu
30
ATKP Medan
Jika kondisi benar maka pernyataan1 dilakukan. Jika kondisi salah maka pernyataan2 dilakukan.
4.5 Nested -if Di dalam pernyataan if (atau if-else) bisa terdapat pernyataan if (atau if-else) yang lain. Bentuk umum:
31
ATKP Medan
4.6 Pernyataan Switch-Case Digunakan sebagai pengganti pernyataan if bertingkat (else-if) Bentuk umum :
32
ATKP Medan
/* File program : absolut.cpp */ #include <stdio.h> #include <conio.h> main() { int bil, abs; clrscr(); printf("Masukkan bilangan bulat : "); scanf("%d", &bil); if(bil < 0) abs = -bil; printf("Nilai absolut dari %d adalah %d\n\n", bil, abs); getch(); }
3. Pemakaian if-else untuk menyeleksi bilangan pembagi /* File program : bagi1.cpp */ #include <stdio.h> #include <conio.h> main() { float a, b; clrscr(); printf("Masukkan nilai a : "); scanf("%f", &a); printf("Masukkan nilai b : "); scanf("%f", &b); printf("\n"); if (b == 0) printf("%g dibagi dengan nol = TAK BERHINGGA\n", a); else printf("%g dibagi dengan %g = %g\n", a, b, a/b); getch(); }
33
ATKP Medan
/* File program : bagi2.cpp */ #include <stdio.h> #include <conio.h> main() { int bil1, bil2, sisa; clrscr(); printf("Masukkan bilangan pertama : "); scanf("%d", &bil1); printf("Masukkan bilangan kedua : "); scanf("%d", &bil2); sisa = bil1 % bil2; printf("\n"); if (sisa == 0) printf("%d habis dibagi dengan %d\n\n", bil1, bil2); else printf("%d tidak habis dibagi dengan %d\n\n", bil1, bil2); getch(); }
34
ATKP Medan
/* File program : bulat.cpp */ #include <stdio.h> #include <conio.h> main() { int bil, tanda; clrscr(); printf("Masukkan sebuah bilangan : "); scanf("%d", &bil); if (bil < 0) tanda = -1; else if (bil == 0) tanda = 0; else tanda = 1; printf("Bilangan %d memiliki tanda %d\n", bil, tanda); getch(); }
35
ATKP Medan
6. LATIHAN a. Buatlah algoritma dan program untuk menerima input 2 buah bilangan bulat. Tampilkan hasil dari pembagian bilangan pertama dengan bilangan kedua, dengan ketelitian 3 desimal. Input : bil1 dan bil2 Output : hasil bagi bil1 dengan bil2 Nilai tambah : program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan kesalahannya (division by zero). b. Buatlah algoritma dan program untuk menampilkan menu dan melakukan proses sbb : Menu : 1. Menghitung volume kubus 2. Menghitung luas lingkaran 3. Menghitung volume silinder. Input : pilihan user (1, 2 atau 3) Jika pilihan = 1, maka : Input : panjang sisi kubus
36
ATKP Medan
Output : Volume kubus (vol = sisi ) Jika pilihan = 2, maka : Input : panjang jari-jari lingkaran
2
Output : Luas lingkaran (luas = 3.14 * r ) Jika pilihan = 3, maka : Input : panjang jari-jari lingkaran & tinggi silinder
2
Output : Volume silinder (vol = 3.14 * r * t) Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan. Petunjuk : gunakan switch-case
d. Kumpulkan hasil Program berikut #include<stdio.h> main() { char nip[9], nama[15]; int gol,st; float gapok,tjg,gk,pph,gb; clrscr(); printf("DAFTAR GAJI PEGAWAI\n"); printf("Inputkan NIP Pegawai :"); scanf("%s" ,&nip); printf("Inputkan Nama Pegawai : "); scanf("%s" ,&nama); printf("Inputkan Golongan (1-4) : "); scanf("%d" ,&gol); printf("Inputkan Status (1=Maried,2=single): "); scanf("%d" ,&st); if (gol==1) gapok=900000; if (gol==2) gapok=1250000; if (gol==3) gapok=1750000; if (gol==4) gapok=2500000; if (st==1) tjg=0.25*gapok; if (st==2) tjg=0.05*gapok; gk=gapok+tjg; pph=0.1*gapok; gb=gk-pph; printf("Gaji Pokok : %.2f\n",gapok); printf("Tunjangan : %.2f\n",tjg); printf("Gaji Kotor : %.2f\n",gk ); printf("PPh : %.2f\n",pph); printf("Gaji Bersih : %.2f\n",gb ); getch(); }
37
ATKP Medan
MODUL 6
1. 2. 3.
Menjelaskan dan menggunakan proses pengulangan pernyataan while Menjelaskan dan menggunakan proses pengulangan pernyataan do-while Menjelaskan dan menggunakan pernyataan break Menjelaskan dan menggunakan pernyataan continue
4. DASAR TEORI 4.1. Pernyataan while Pada pernyataan ini, pengecekan terhadap loop dilakukan di bagian awal, apabila kondisi tidak benar maka pernyataan di dalam blok loop tidak dikerjakan sama sekali. - Sintak while(kondisi) pernyataan; Selama kondisi benar maka pernyataan dikerjakan Jika kondisi salah maka keluar dari blok loop Contoh : bil = 1; while (bil <= 15) { printf("%d\n", bil); bil = bil + 3; } Akan didapatkan hasil : 1 4 7 10 13
38
ATKP Medan
4.2. Pernyataan do-while Pada pernyataan ini, pengecekan terhadap loop dilakukan di bagian akhir. Walupun kondisi tidak benar maka pernyataan didalam blok loop pasti dijalankan (minimal 1 kali). - Sintak : do { pernyataan; } while(kondisi); Mula-mula pernyataan dijalankan, selanjutnya kondisi diuji jika benar dilakukan perulangan, jika salah maka keluar dari loop Contoh : bil = 1; do { printf("%d\n", bil); bil = bil + 3; } while (bil <= 15); Akan didapatkan hasil : 1 4 7 10 13 4.3. Pernyataan for Digunakan untuk membuat looping dengan jumlah perulangan yang ditentukan di awal. - Sintak: for(ungkapan1; ungkapan2; ungkapan3) pernyataan; Keterangan : Ungkapan1: digunakan untuk memberikan inisialisasi terhadap variabel pengendali loop. Ungkapan2: dipakai sebagai kondisi untuk keluar dari loop. Ungkapan3: dipakai sebagai pengatur kenaikan nilai variabel pengendali loop. Contoh : for (bil = 1; bil <= 15; bil += 3) printf("%d\n", bil); maka akan didapatkan hasil : 1 4 7
39
ATKP Medan
10 13 4.4. Pernyataan for( ; ; ) Kadang-kadang dijumpai adanya pernyataan for yang tidak mengandung bagian ungkapan yang lengkap (beberapa ungkapan dikosongkan). Hal ini disebabkan ungkapan-ungkapan tersebut sudah di-inisialisasi di luar for atau dapat dikerjakan di dalam loop itu sendiri. Contoh : for (bil=10;bil<=60;bil++) dapat diganti menjadi : bil=10; for( ; ; ) { bil++; if(bil==60) break; }
4.5 Pernyataan break Berfungsi untuk keluar dari loop yaitu untuk looping dengan while, dan do-while. Juga berfungsi untuk keluar dari struktur switch. - Sintak: break; Contoh : Pada loop: while(kondisi) { break; } statement-x; Pada switch: switch (ekspresi) {..... case konstanta-2: pernyataan-21;
40
ATKP Medan
break; ..... } Pernyataan Continue Pada loop: while(kondisi) { continue; } statemen-x; C. PERCOBAAN 1. Menghitung jumlah kata dan karakter dalam suatu kalimat /* File program : jumkar.c */ #include <stdio.h> main() { char kar; int jumkar = 0, jumspasi = 0; clrscr(); puts("Masukkan sebuah kalimat dan akhiri dengan ENTER."); puts("Saya akan menghitung jumlah karakter "); puts("pada kalimat tersebut.\n"); while((kar = getchar()) != '\n') { jumkar++; if (kar == ' ') jumspasi++; } printf("\nJumlah karakter = %d", jumkar); printf("\nJumlah SPASI = %d\n\n", jumspasi); getch(); } 2. Membalik angka menggunakan pernyataan while(). /* File program : loop9.c */ #include <stdio.h> main()
41
ATKP Medan
{ int bil, digit_kanan; printf("Masukkan bilangan yang mau dibalik : "); scanf("%d", &bil); printf("Hasil pembalikannya = "); while(bil != 0) { digit_kanan = bil % 10; printf("%d", digit_kanan); bil = bil / 10; } printf("\n"); getch(); } 3. Membaca tombol yang ditekan. /*File program : pilihan.c */ #include <stdio.h> main() { char pilihan; int sudah_benar = 0; /* diberi nilai salah lebih dahulu */ printf("Pilihlah Y atau T.\n"); /* program dilanjutkan jika tombol Y,y,T atau t ditekan */ while(!sudah_benar) { pilihan = getchar(); /* baca tombol */ sudah_benar = (pilihan == 'Y') || (pilihan == 'y')|| (pilihan == 'T') || (pilihan == 't'); getch(); } /* memberi keterangan tentang pilihan */ switch(pilihan) { case 'Y': case 'y': puts("\nPilihan anda adalah Y"); break; case 'T':
42
ATKP Medan
case 't': puts("\nPilihan anda adalah T"); } getch(); } 4. Membuat Tabel Faktorial menggunakan do-while /*menghitung nilai faktorial menggunakan do-while*/ #include<stdio.h> main() { int k,i=1,fak=1; printf("Masukkan nilai yang akan difaktorialkan = "); scanf("%d",&k); printf("\n\nTabel faktorial \n "); printf("%3s %7s","k","faktorial\n"); do { fak=fak*i; printf("%3d %7d \n",i,fak); i++; }while(i<=k); getch(); } 5. Menghitung harga total pembelian minuman /*menentukan total pembelian minuman */ #include<stdio.h> main() { int jumlah,kode; float harga,total; double bayar; char kar; printf("kode Jenis Harga\n"); printf("1 Milo Rp 10.000\n"); printf("2 Kopi Rp. 5000\n"); printf("3 Coca Cola Rp 2500\n"); printf("4 Orange Juice Rp 2000\n"); total=0; do { printf("Masukkan kode minuman : \n"); scanf("%d",&kode);
43
ATKP Medan
printf("Masukkan jumlah pesanan "); scanf("%d",&jumlah); if(kode==1) harga = (float) 10000*jumlah; else if(kode==2) harga = (float)5000*jumlah; else if(kode==3) harga = (float)2500*jumlah; else if(kode==4) harga = (float)2000*jumlah; total=total+harga; printf("Mau menambah pesanan ? (Y/T)\n"); scanf("%s",&kar); } while(kar=='Y'); if(total > 100000) bayar=total-(0.15*total); else bayar=total; printf("\nHarga yang harus dibayar = %10.2f\n",bayar); getch();} 6. Pemakaian for untuk membentuk deret naik. /* File program : for1.c */ #include <stdio.h> main() { int bilangan; for(bilangan = 20; bilangan <= 100; bilangan += 10) printf("%d\n", bilangan); } 7. Pemakaian for untuk membentuk deret turun /* File program : for2.c */ #include <stdio.h> main() { int bilangan; for (bilangan = 60; bilangan >= 10; bilangan -= 10) printf("%d\n", bilangan); } 8. Menghitung jumlah 200 triangular menggunakan for(). /* File program : triangular2.c */ #include <stdio.h>
44
ATKP Medan
main() { int n, jumlah = 0; for (n=1; n<=200; n++) jumlah = jumlah + n; printf("Jumlah 200 triangular adalah %d\n", jumlah); } 9. Membuat tabel dari jumlah triangular yang diinputkan /* File program : triangular3.c */ #include <stdio.h> main() { int n, bil, jumlah = 0; printf("Masukkan bilangan triangular : "); scanf("%d", &bil); printf("\nTABEL PENJUMLAHAN TRIANGULAR\n\n"); printf("%3s%10s\n\n","n","Jumlah"); for (n=1; n<=bil; n++) { jumlah = jumlah + n; printf("%3d %7d\n", n, jumlah); } } 10. Pemakaian break untuk keluar dari looping /* File program : tamat.c */ #include <stdio.h> main() { char kar; printf("Ketik sembarang kalimat"); printf(" dan akhiri dengan ENTER\n\n"); for ( ; ; ) { kar = getchar(); if(kar == '\n') break; } printf("Selesai\n"); } 11. Loop for bersarang untuk membuat tabel perkalian /* File program : tblkali.c */
45
ATKP Medan
#include <stdio.h> #define MAKS 8 main() { int baris, kolom, hasil_kali; for (baris = 1; baris <= MAKS; baris++) { for (kolom = 1; kolom <= MAKS; kolom++) { hasil_kali = baris * kolom; printf ("%2d", hasil_kali); } printf("\n"); /* pindah baris */ } } 12. Menampilkan bilangan ganjil antara 7 - 25 kecuali 15 menggunakan continue. /* File program : ganjil.c */ #include <stdio.h> main() { int x; for (x = 7; x <= 25; x += 2) { if (x == 15) continue; printf("%4d", x); } printf("\n"); } 6. LATIHAN 1. Buatlah algoritma dan program untuk menampilkan semua bilangan genap yang terletak antara 20 sampai dengan 200, dengan menggunakan While. 2. Buatlah algoritma dan program untuk menghitung jumlah angka dari suatu bilangan. Contohnya : Jumlah angka dari bilangan 3255 = 3 + 2 + 5 + 5 = 15 Jumlah angka dari bilangan 4589 = 4 + 5 + 8 + 9 = 26 dan sebagainya. 3. Buatlah algoritma dan program untuk menerima daftar nilai mahasiswa sbb : Input : - Jumlah data (n) - Nilai ke-1 s/d Nilai ke-n Output : - Nilai minimal
46
ATKP Medan
- Nilai maksimal - Nilai rata-rata (rata-rata = nilai total / jumlah data) (Petunjuk : Gunakan do-While dan seleksi kondisi dengan if)
47