makalah tentang algoritma lengkap

19,512 views

Published on

Published in: Education
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
19,512
On SlideShare
0
From Embeds
0
Number of Embeds
280
Actions
Shares
0
Downloads
684
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

makalah tentang algoritma lengkap

  1. 1. 1 BAB I PENGENALAN ALGORITMA 1.1 Apakah Itu Algoritma? Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma. 1.2 Definisi Algoritma “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah- langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik. Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya. Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
  2. 2. 2 1.3 Beda Algoritma dan Program Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa : Program = Algoritma + Bahasa (Struktur Data) Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya. Pembuatan algoritma mempunyai banyak keuntungan di antaranya :  Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.  Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.  Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama. Beberapa hal yang perlu diperhatikan dalam membuat algoritma :  Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.  Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.  Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.  Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.  Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  3. 3. 3  Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu : a. Pendeklarasian variabel Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya. b. Pemilihan tipe data Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data. c. Pemakaian instruksi-instruksi Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda. d. Aturan sintaksis Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan. e. Tampilan hasil Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal- hal teknis ini diperhatikan ketika mengkonversikannya menjadi program. f. Cara pengoperasian compiler atau interpreter. Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter. 1.4 Penyajian Algoritma Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal. 1.5 Flowchart Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan
  4. 4. 4 demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek. Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :  Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:  Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program. - Kaidah-Kaidah Umum Pembuatan Flowchart Program Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu : 1. Input, 2. Proses pengolahan dan 3. Output Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah: 1. START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan. 2. READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input. 3. PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca. 4. WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
  5. 5. 5 5. END, mengakhiri kegiatan pengolahan. Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran : 1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat. 2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas. 3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END. Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman : Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana. Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang. Solusi : Perumusan untuk mencari luas persegi panjang adalah : L = p . l di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.
  6. 6. 6 Keterangan : 1. Simbol pertama menunjukkan dimulainya sebuah program. 2. Simbol kedua menunjukkan bahwa input data dari p dan l. 3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l. 4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga. 5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End. 1.6 Struktur Dasar Algoritma Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu: 1. Struktur Runtunan 2. Digunakan untuk program yang pernyataannya sequential atau urutan. 3. Struktur Pemilihan 4. Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. 5. Struktur Perulangan 6. Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang. Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun. 1.7 Tahapan dalam Pemrograman Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :  Definisikan Masalah  Buat Algoritma dan Struktur Cara Penyelesaian  Menulis Program  Mencari Kesalahan  Uji dan Verifikasi Program  Dokumentasi Program  Pemeliharaan Program
  7. 7. 7 BAB II PENGENALAN BAHASA C Setiap program C++ mempunyai bentuk umum seperti di bawah, yaitu: Penjelasan : 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> tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan 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> : 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. 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 # prepocessor directive void main() { // Batang Tubuh Program Utama }
  8. 8. 8 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 pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis 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 : #include <iostream.h> Void main () { Cout << “HAI, selamat meggunakan C++ “; } Tanda “ << “ merupakan sebuah operator yang disebut operator “penyisipan/peletakan” 2.1 Variabel Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu
  9. 9. 9 tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks sebagai berikut : Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut : 1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda. 2. Tidak boleh mengandung spasi. 3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, =dsb. 4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai. Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb. Contoh penamaan variable yang salah : %nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb 2.2 Deklarasi Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier dapat berupa variable, konstanta dan fungsi. 2.2.1 Deklarasi Variabel Bentuk umumnya : Contoh : int x; // Deklarasi x bertipe integer char y, huruf, nim[10]; // Deklarasi variable bertipe char float nilai; // Deklarasi variable bertipe float double beta; // Deklarasi variable bertipe double int array[5][4]; // Deklarasi array bertipe integer variable = ekspresi ; Nama_tipe nama_variabel;
  10. 10. 10 Contoh : #include <iostream.h> Void main () { Int ; n=66; // sama juga jika ditulis int n=66; cout<<n<<endl; //n sebagai variabel cout<<’n’<<endl; // end sebagai karakter } Outputnya : 66 n 2.2.2 Deklarasi Konstanta a. Menggunakan keyword const Contoh : const float PI = 3.14152965; Berbeda dengan variable, konstanta bernama tidak dapat diubah jika telah diinisialisasi b. Menggunakan #define Contoh : #define PI 3.14152965 Keuntungan menggunakan #define apabila dibandingkan dengan const adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol #define (oleh sebab itu mengapa # dikatakan prepocessor directive) dan mengganti semua Phi dengan nilai 3.14152965. Contoh : #include <iostream.h> Void main () { Const float phi = 3.14; Float jari_jari, luas, keliling; Jari_jari=7.0; Luas = 0.5 * phi * jari_jari * jari_jari; Keliling = 2 * phi * jari_jari;
  11. 11. 11 Cout << “ Luas Lingkaran = “ << luas << endl; Cout << “keliling lingkaran = “ << keliling; } 2.3 Tipe Data Tipe data dapat dikelompokkan menjadi atas dua macam : 1. Tipe Dasar. 2. Tipe Bentukkan. 2.3.1 Tipe Dasar Adalah tipe yang dapat langsung dipakai. Tipe Dasar Ukuran Memori (byte) Jangkauan Nilai Jumlah Digit Presisi Char 1 -128 hingga +127 - Int 2 -32768 hingga +32767 - Long 4 -2.147.438.648 hingga 2.147.438.647 - Float 4 3,4E-38 hingga 3,4E38 6-7 Double 8 1,7E-308 hingga 1.7E308 15-16 Long Double 10 3.4E-4932 hingga 1.1E4932 19 NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe) Tipe data dapat diubah ( type cast ), misalkan: float x = 3.345; int p = int(x); maka nilai p adalah 3 ( terjadi truncating ). 2.3.2 Tipe Bentukan Merupakan tipe yang dibentuk dari tipe dasar. Seperti Tipe Struktur. 2.3.2.2 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
  12. 12. 12 kemudahan dalam operasi. Bentuk umumnya : 2.4 Operator Bahasa C Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi. 2.4.1 Operator penugasan Operator Penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama dengan (“=”). Contoh : nilai = 80; A = x * y; Penjelasan : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian antara x dan y. 2.4.2 Operator Aritmatika Operator Deskripsi + Penjumlahan (Add) - Pengurangan (Substract) * Perkalian (Multiply) / Pembagian (Divide) % Sisa Pembagian Integer (Modulus) 2.4.3 Operator Hubungan (Perbandingan) Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++. tyedef struct{ tipe nama_field1; tipe nama_field2; tipe nama_field3; . . . . }nama_variabel;
  13. 13. 13 Operator Arti Contoh == Sama dengan (bukan assignment) X==y Apakah x sama dengan y != Tidak sama dengan X!=y Apakah x sama dengan y > Lebih besar X > y Apakah x lebih besar dari y < Lebih kecil X < y Apakah x lebih kecil dari y >= Lebih besar atau sama dengan X >= y Apakah x kurang dari sama dengan y <= Lebih kecil atau sama dengan 2.4.4 Operator Naik Dan Turun ( Increment Dan Decrement ) Operator increment ++ Operator decrement -- Contoh : #include <iostream.h> Void main () { Int m = 44, n =66; Cout<<”m = “<<m<<”, n = “<<n<<endl; ++m; --n; Cout<<”m = “<<m<<”, n = “<<n<<endl; M++; n--; Cout<<”m = “<<m<<”, n = “<<n<<endl; } Outputnya : M = 44, n = 66 M = 45, n = 65 M = 46, n = 64 2.4.5 Operator Bitwise Operator Deskripsi Contoh << Geser n bit ke kiri M << n >> Geser n bit ke kanan M >> n & Bitwise AND M & n I Bitwise OR M I n ^ Bitwise XOR M ^ n ~ Bitwise NOT ~m NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau
  14. 14. 14 Char. 2.4.6 Operator Logika Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi. Operator Deskripsi Contoh && Logic AND M && n II Logic OR M II n ! Logic NOT !m 2.4.7 Operator Unary - : unary minus ++ : peningkatan dengan penambahan nilai 1 -- : penurunan dengan pengurangan nilai 1 Sizeof : Ukuran dari operand dalam byte ! : unary NOT & : menghasilkan alamat memory operand * : menghasilkan nilai dari pointer 2.5 Operator Input dan Output  Menampilkan Data / Informasi Ke Layar Untuk menampilkan data / informasi, fungsi yang digunakan adalah sama dengan dengan turbo c, yaitu printf( ), puts( ), dan putchar( ). 1. Printf( ) Bentuk umum pernyataan printf adalah: Printf(“string kontrol”, argumen1,argumen2,…); String kontrol dapat berupa keterangan yang akan ditampilkan beserta penentu format (seperti %d, %f, dll). Argumen adalah data yang akan ditampilkan ke layar yang dapat berupa variabel, konstanta, bahkan ungkapan. Misal: Printf(“%d”,20); // argumen berupa konstanta Printf(“%d”,a); // argumen berupa variabel Printf(“%d”,a+20); // argumen berupa ungkapan Contoh : #include<stdio.h> main()
  15. 15. 15 { unsigned int segmen_grafik=0xB800; float x=251000.0; printf("Nilai segmen grafik (oktal) : %on",segmen_grafik); printf("Nilai segmen grafik (desimal) : %un",segmen_grafik); printf("Nilai segmen grafik (heksadesial) : %xn",segmen_grafik); printf("nFormat e -> %en",x); printf("Format f -> %fn",x); printf("Format g -> %gn",x); } 2.Puts( ) dan Putchar( ) Fungsi puts( ) digunakan untuk menampilkan data string ke layar. Sifat fungsi ini secara otomatis akan diakhiri dengan n (pindah baris). Berbeda dengan fungsi Putchar( ) yang khusus untuk menampilkan sebuah karakter dan tidak diakhiri dengan perpindahan baris. Contoh penggunaan: Puts(“Belajar Turbo C++); Putchar(‘A’);  Memasukkan Data Dari Keyboard Untuk input data digunakan fungsi scanf( ), getch( ) dan getche( ). 1. Scanf( ) Bentuk umum scanf( ) adalah: Scanf(“string kontrol”, daftar argumen); Untuk penentu format, bentuknya sama seperti pada printf( ). Sedangkan untuk daftar argumen, haruslah berupa alamat yang ditambahkan tanda & (operator alamat). 2. Getch( ) dan Getche( ) Fungsi getch( ) digunakan untuk membaca sebuah karakter, dengan sifat karakter yang dimasukkan tak perlu diakhiri dengan ENTER. Disamping itu, karakter yang dimasukkan tak akan ditampilkan pada layar. Sedangkan fungsi getche( ), karakter yang dimasukkan akan ditampilkan pada
  16. 16. 16 layar. Berikut ini contoh penggunaan fungsi getch( ) dan getche( ): #include<stdio.h> #include<conio.h> main() { char huruf1,huruf2; printf("Masukkan sebuah karakter: "); huruf1=getche(); // karakter yang dimasukkan akan terlihat di layar printf("nKarakter yang Anda masukkan adalah: %c",huruf1); printf("nMasukkan sebuah karakter lagi: "); huruf2=getch(); // karakter yang dimasukkan tidak terlihat di layar printf("nKarakter yang Anda masukkan adalah: %c",huruf2); getch(); }
  17. 17. 17 BAB III STRUKTUR KONTROL 3.1 Struktur Kondisi “If…” Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah: If(kondisi) Pernyataan; Buat program baru dan ketik code berikut: #include<stdio.h> main() { double tot_pemb,korting; printf("Total Pembelian : Rp "); scanf("%lf",&tot_pemb); korting=0; // Tentukan nilai awal variabel korting if(tot_pemb>=50000) korting=0.5*tot_pemb; printf("Besarnya Korting : Rp %.2lfn",korting); } Namun jika menggunakan if…else akan memuat dua perintah yaitu perintah dimana jika penyataan terpenuhi dan tidak terpenuhi. Penulisan : if(kondisi) else //apabila statement A tidak terpenuhi Contoh : Bila jumlah mahasiswa yang membolos lebih dari 10 maka tampilkan hasil “tidak boleh mengikuti ujian”,jika tidak maka “boleh mengikuti ujian”. if(bolos>10) printf(“tidak boleh ujian”); else printf(“boleh ujian); jika ingin menggunakan alternatif kondisi lebih dari satu dapat digunakan else if.
  18. 18. 18 Contoh: if(ukuran>=80) printf(“XL”); else if(ukuran<=20) printf(“M”); else printf(“S”); 3.2 Perulangan (Looping) perulangan digunakan untuk melakukan suatu proses secara berulang-ulang, jika suatu kondisi dipenuhi atau sebaliknya. Proses looping yang menggunakan penghitungan dapat dibuat menggunakan pernyataan FOR. Bentuk umum : for (ungkapan1; keadaan; ungkapan 3) { pernyataan; } Bentuk diatas berarti: a) Ungkapan 1 adalah inisialisasi terhadap variabel pengendali looping b) Keadaan adalah kondisi untuk keluar dari looping c) Ungkapan 3 adalah pengatur kenaikan atau penurunan nilai variabel pengendali looping Contoh : #include #include void main () { for (int n=10; n>0; n--) { cout<<”, “; } cout<<”STOP!”; getch (); } Hasilnya adalah: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, STOP! 3. Perintah do....while Perintah ini menyatakan pengulangan proses selama kondisi tertentu. Bentuk umum : Do { Pernyataan; Pernyataan; }
  19. 19. 19 While (keadaan) Setiap loop dikerjakan maka kondisi akan dicek. Jika masih benar, proses loop dilakukan lagi dan jika salah maka proses loop berhenti dan berlanjut pada perintah selanjutnya. contoh: #include #include void main () { int a; a =1; do { cout<<”ayu”; a++ } while (a<=5); getch(); } 4. Perintah WHILE Perintah WHILE prinsipnya sama dengan perintah DO...WHILE hanya pengujian kondisinya terletak pada awal loop. Bentuk umum: While (keadaan) Pernyataan; Atau While (keadaan) { Pernyataan; Pernyataan; }  Pernyataan dapat berupa pernyataan tunggal atau beberapa pernyataan yang dibatasi dengan tanda {}.  Pernyataan itu akan dijalankan jika kondisinya masih benar.  Keadaan disini boleh merupakan sembarang pernyataan yang mengandung nilai suatu variabel, pernyataan binari, pernyataan aritmatik, atau nilai return hasil dari memanggil suatu fungsi. Contoh: #include #include void main () { int n; cout<<”masukkan angka untuk mulai : “; cin>>n; while (n>0) { cout<< n << “, “; --n; } cout <<”STOP!”; getch (); }
  20. 20. 20 Hasilnya adalah: Masukkan angka untuk mulai : 4 4, 3, 2, 1, STOP! 5. Perintah CONTINUE Perintah ini digunakan untuk mengarahkan jalannya program ke iterasi (proses) berikutnya pada loop yang sama Bentuk umum: While (kondisi) { . . . . . . . . . . . . CONTINUE; . . . . . . . . } . . . . Contoh program perintah CONTINUE: #include #include void main () { for (int n=10; n>0; n--) { if (n==5) continue; cout<<<”, “; } cout<<”STOP!”; getch (); } Hasilnya adalah: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, STOP! 6.Struktur Selektif (switch) Logika menggunakkan switvh sama dengan logika menggunakkan if . Bentuk Umum : switch (pilihan) { case nilai 1: blok pernyataan1 break; case nilai 2 : blok pernyataan nilai 2 break; - -
  21. 21. 21 default : blok pernyataan default } Contoh : switch (a) { case 1: cout<<”a adalah 1”; break; case 2: cout<<”a adalah 2”; break; default: cout<<”error”; } 3.3 Array Pengertian Array adalah tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian penyusun aray disebut elemen array yang masing-masing elemen dapat di akses tersendiri melalui index array yang dapat berupa integer atau string. 3.3.1 Deklarasi Array Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variabel array D di atas adalah: Int d[7]; C++ secara otomatis akan menyediakan lokasi memori sesuai dengan yang dideklarasikan,nomor indeks selalu dimulai dari 0. Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya: Int d[7] = {-45, 0, 6, 72, 1543, 43, 4}; setiap lokasi memori dari variabel array c langsung diisi dengan nilai-nilai yang dituliskan di dalam tanda kurung kurawal. Banyaknya lokasi memori dapat secara otomatis disediakan sesuai dengan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variabel array dengan 10 lokasi memori: Int x[ ] = {10, 15, 12, 5, 13, 9, 6, 17, 25, 31}; Contoh program array /*Program:array1. Cpp*/ #include #define SIZE 12 main() { int a [SIZE] = {1, 3, 5, 4, 7, 2, 99, 16, 45, 67, 89, 45}; int indeks, total = 0; for (indeks=0 ; indeks<=SIZE-1 ; indeks++) total += a [indeks]; printf (“nTotal setiap elemen array adalah %d”, total); return 0; } Bila program diatas dijalankan, akan muncul hasil: Total setiap elemen array adalah 383
  22. 22. 22 3.3.2 Array Dimensi Satu Struktur array mempunyai satu dimensi, sehingga variabelnya disebut dengan variabel array berdimensi satu Bentuknya : Tipe nama_var [ukuran]; Dengan: Tipe : menyatakan jenis elemen array (int, char,unsigned, dll) Ukuran : menyatakan jumlah maksimal elemen array. Contoh: Float nilai_angka[5]; Pada turbo C++, array disimpan dalam memori secara berurutan. Elemen pertama berindeks nol digambarkan sebagai berikut : Nilai_angka[0] Nilai_angka[1] Nilai_angka[2] Nilai_angka[3] Nilai_angka[4] Masing-masing bertipe float dan berjumlah 5 elemen. Selain itu, deklarasi array juga dapat berupa: Static int angka [9] = {1, 2, 3, 4, 5, 6, 7, 8, 9} Sesuai dengan deklarasi array diatas, maka isi variabel array telah ditentukan yaitu: angka[0] bernilai 1 angka[1] bernilai 2 angka[2] bernilai 3 angka[3] bernilai 4 angka[4] bernilai5 angka[5] bernilai 6 angka[6] bernilai 7 angka[7] bernilai 8 angka[8] bernilai9 } 3.3.3 Array Dimensi Dua Array berdimensi lebih dari satu, yang sering disebut dengan array berdimensi dua. Sebagai contoh, sebuah matrik C berukuran 2 x 3 dapat dideklarasikan dalam C seperti berikut: int c[2][3] = {{2,4,1},{5,3,7}}; akan menempati lokasi memori dengan susunan sebagai berikut : 0 1 2 0 2 4 1 1 5 3 7
  23. 23. 23 Dan definisi variabel untuk setiap elemen tersebut adalah : Sebagai implementasi dari keterangan diatas, perhatikan program berikut ini: Contoh program array dimensi dua /*Program: array3 .cpp*/ #include void printArray (int [] [3]), main() { int matrik1 [2] [3] = { {1, 2, 3}, {4, 5, 6} } matrik2 [2] [3] = { 1, 2, 3, 4, 5}, matrik3 [2] [3] = { {1, 2}, {4} }; printarray (matrik1); printarray (matrik2); printarray (matrik3); return 0; } void printArray (int a[] [3]) { int i, j; for (i=0; i<=1; i++) { for (j=0; j<=2; j++) printf(“%d”, a[i][j] );; printf (“n”); } } Bila program diatas dijalankan, akan muncul hasil: 123 456 123 450 120 400 3.3.4 Array Dimensi Banyak Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array dimensi banyak ini tidak terlalu sering digunakan, tetapi sewaktu-waktu kalau dimensi yang dibutuhkan banyak, maka array ini sangat memegang peranan yang penting. 0 1 2 0 b[0][0] b[0][1] b[0][2] 1 b[1][0] b[1][1] b[1][2]
  24. 24. 24 DAFTAR PUSTAKA http://ruly.blogdetik.com/2009/10/04/pengertian-dasar-logika-dan-algoritma/ http://yusriel.wordpress.com/2008/09/24/pertemuan-1-pengertian-dasar-logika-dan- algoritma/ http://lecturer.ukdw.ac.id/anton/download/strukdat1.pdf http://usupress.usu.ac.id/file http://bab-01SDCpp-Tipedata.com/download http://modul_terstruktur_d3/ http://www.cs.caltech.edu/~cs138/ http://www.lehigh.edu/~tkr2/teaching/ie170/ http://hercule.csci.unt.edu/~ian/classes/fall03/csci4450/info.html

×