MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN I
Bahasa : C++ Software : Turbo C++ 4.5
LABORATORIUM KOMPUTER PROGRAM TEKNIK INFORMATIKA UNIVERSITAS TEKNOLOGI YOGYAKARTA 2009
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
1. PENDAHULUAN Istilah-Istilah Umum Sebelum mempelajari lebih lanjut, perlu diketahui beberapa istilah umum yang sering digunakan dalam hubungannya dengan Algoritma dan pemrograman. Program, merupakan kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berisi urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman, sehingga dapat dieksekusi oleh komputer. Pemrograman Bahasa Pemrograman, merupakan prosedur/tata cara penulisan program. Pada bahasa pemrograman, terdapat 2 hal penting, yaitu sintax dan sematik. Sintax merupakan aturan aturan gramatikal yang mengatur tata cara penulisan kata, ekpresi dan pernyataan. Sematik merupakan anturan untuk menyatakan suatu arti. Pemrograman merupakan suatu proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan bahasa pemrrograman. Beberapa Standar dalam penulisan program yang baik: a. Kebenaran logika dan penulisan b. Waktu minimum untuk penulisan program c. Kecepatan maksimum untuk mengeksekusi program d. Ekpresi penggunaan memori yang sesuai e. Kemudahan merawat dan mengembangkan program f. User friendly g. Portabilias Program, bisa berjalan di berbagai sistem operasi h. Pemrograman Modular/Pemecahan program dalam beberapa modul Selain standar penulisan program, terdapat pula Standar perawatan dan pengembangan program, sebagai berikut: a. Dokumentasi yang baik b. Penlisan Intruksi - Penulisan progrm yang baik/teratur Contoh penulisan yang kurang baik: { printf(”Terima kasih\n”);”Tekan enter”);} - Pemisahan antar modul dengan spasi
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
-
Penggunaan hurus besar dan huruf kecil dalam penulisan variabel dan komentar - Pemberian tabulasi yang berbeda dalam penulisan program c. Penggunaan prosedur-prosedur standar yang sudah dikenal oleh umum. Algoritma merupakan suatu metode khusus yang tepat dan terdiri dari sereangkaian langkah yang terstruktur dan ditulis secara sistematis, yang akan dikerjakan untuk menyelesaikan suatu masalah. Proses dari maslaah hingga menjadi suatu algoritma disebut dengan tahap pemecahan masalah, sedangkan tahap dari algoritma hingga menjadi sautu program yang siap diimplementasi disebut dengan tahap implementasi. masalah
Tahap pemecahan masalah
algoritma
Tahap implementasi
solusi
Algoritma pemrograman yang baik memiliki beberapa ciri, yaitu: a. tepat, benar, sederhana, standar dan efektif b. logis, terstruktur, dan sistematis c. semua operasi terdefinisi d. semua proses harus berakhir setelah sejumlah langkah dilakukan e. ditulis dengan bahasa yang standar dengan format pemrograman agar mudah untuk diimplejmentasikan dan tidak menimbulkan arti ganda. Contoh Algoritma: Perhatikan gambar di bawah ini:
Terdapat 2 gelas, A dan B. Gelas A diisi dengan Air Teh. Sedangkan gelas B diisi dengan Air Kopi. Bagimana cara menukar, sehingga hasil akhirnya Gelas A menjadi berisi Air Kopi dan gelas B berisi Air Teh? Mungkin sebagian kita membuat langkah-langkah (Algoritma) sebagai berikut: 1. Masukkan air Teh dari Gelas A ke Gelas B 2. Masukkan air Kopi dari Gelas B ke Gelas A Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Tetapi perlu diperhatikan, bahwa Algoritma di atas merupakan sebuah algoritma yang tidak logis. Bagaimana mungkin Air Teh dari gelas A dimasukkan ke gelas B sementara gelas B masih ada isinya? Agar dapat melakukan pertukaran dengan benar, tentunya diperlukan satu buah gelas kosong, sebagai perantara. Anggap saja Gelas C., sehingga Algoritmanya adalah: 1. Sediakan Gelas C 2. Masukkan air Teh dari Gelas A ke Gelas C 3. Masukkan air Kopi dari Gelas B ke Gelas A 4. Masukkan air Teh dari Gelas C ke Gelas B
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Contoh lain, penggunaan algoritma dapat dijumpai pada : -
langkah-langkah pembuatan kue
-
langkah-langkah merakit komputer
-
langkah-langkah mengisi pulsa telepon
-
dll
Pemrogram atau Programmer adalah orang yang bekerja menyusun sautu program. Untuk menghasilkan program yang baik dibutuhkan pemrogram yang baik dan berkualitas. Adapun beberapa cirinya adalah: -
mampu menyusun algoritma dengan baik
-
menguasai bahasa dan teknik penulisan program dengan baik
-
dapat bekerja sama dalam sautu tim kerja
-
dapat bekerja secara efisien dan tepat wktu.
Bahasa C dan C++ Berbicara dengan c++, tidak terlepas dari C yang merupakan bahasa pendahulunya. C pertama kali dimunculkan oleh Brian W. Kerninghan dan Dennis M. Rithche pada tahun (sekitar) 1972. sekitar 1 dekade setelahnya muncullah C++ oleh Bjarne Stroustrup dari Laboratorium Bell, AT&T, tahun 1983. Nama C++ diberikan oleh Rick Mascitti . Salah satu Keistimewaan dari C++ adalah dukungannya pada program berorientasi obyek (Object Oriented Programming/OOP) Interpreter adalah suatu jenis penterjemah yang menterjemahkan perbaris instruksi untuk setiap saat. Keuntungannya adalah penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan. Kelemahannya adalah kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu diterjemahkan terlebih dahulu. Disamping itu saat memori dieksekusi, interpreter juga harus ada dalam memori selain itu source program tidak dapat dirahasiakan karena dapat dilihat oleh orang lain. Kompiler menterjemahkan seluruh instruksi dalam program sekaligus. Proses pengkompilasian cukup dilakukan sekali saja dan hasil terjemahan bisa dijalankan secara langsung tanpa tergantung lagi oleh program sumber maupun kompilernya. Keuntungannya adalah proses eksekusi berjalan cepat, program sumber dapat dirahasiakan sebab yang dieksekusi adalah program dalam bahasa mesin. Kelemahannya adalah proses pembuatan dan pengujian relatif lebih lama sebab ada waktu untuk kompilasi dan adapula waktu untuk proses linking Jenis-jenis File yang Dimiliki Turbo C Beberapa jenis file yang penting :
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
File HEADER Merupakan file-file teks yang berisi fungsi-fungsi khusus yang digabungkan dengan program dengan perintah ”include”. File-file header biasanya berektensi .h. Contoh : stdio.h dan conio.h
File LIBRARY Merupakan file-file yang di dalamnya terdapat fungsi-fungsi dasar dari Turbo C yang digabungkan dengan program utama dengan perintah ”link”. File-file library ini bertipe .lib
File RUN TIME Merupakan file yang akan digabungkan dengan program pada saat proses LINK. File Run Time disesuaikan dengan model memory-nya
MATH Library File ini digunakan untuk hal-hal yang berhubungan dengan operasi bilangan. File yang kegunaannya hampir sama dengan file ini adalah emu.lib
File Editor, File Object dan File Eksekusi File editor merupakan program yang disusun dalam Turbo C. File ini adalah file teks dan mempunyai ekstensi .c File Object merupakan file hasil proses COMPILE dari File Editor. nama File Object sama dengan nama file editor dengan ekstensi .obj File Eksekusi, merupakan file hasil proses LINK. File ini bernama sama dengan file-file sebelumnya dan dapat dijalankan dari prompt DOS. Ekstensi file eksekusi adalah .exe
Kebanyakan versi C yang beredar adalah kompiler. Proses Kompilasi –Linking dari program C dapat digambarkan sebagai berikut :
Editor
Editor
File Include (File Judul)
File Program Sumber
Kompiler
File Pustaka
File Obyek
Linker
File Executable Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
File Obyek Lain
Software Pembantu
Untuk memudahkan pembuatan program, pada panduan ini menggunakan software Turbo C 4.5
Turbo C merupakan salah satu kompiler C yang sangat terkenal. Kompiler ini juga menyediakanlingkungan program terpadu yang disebut IDE (Integrated Development Environment) yang bisa dipakai untuk : Menulis program Mengkompilasi program Melakukan pencarian kesalahan (debugging) Mengkaitkan berbagai objek dan pustaka (linking) Menjalankan program
PENGENALAN C++ Pada umumnya, program C++ mempunyai susunan umum sbb: #preprocessor directive void main() { //isi program } Keterangan:
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
1. Preprocessor directive yang tersedia paa bahasa C++ akan dijalankan terlebih dahulu sebelum program utama c dijalankan. bentuk umum penulisan preprocessor directive: 2. #include beberapa file preprocessor yang sering digunakan di antaranya adalah: iostream.h conio.h math.h graphic.h
: diperlukan pada program yang melibatkan obyek cout : diperlukan bila melibatkan perintah clrscr()/pembersihan layar : diperlukan pada program yang menggunakan operasi sqrt()/akar dll. : diperlukan pada saat akan menggunakan mode grafik. dll
3. fungsi main() merupakan fungsi yang akan dijalankan setelah file-file preprocessor dieksekusi. 4. untuk mengawali dan mengakhiri suatu blok, digunakan tanda kurung kurawal ”{” dan ”}” 5. setiap pernyataan dalam program diakhiri oleh tanda semicolon (”;”) 6. untuk memberikan komentar-komentar, diawali dengan tanda // atau jika komentar lebih dari 1 baris, diawali dengan /* dan di akhiri dengan */
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Praktikum 1: Latihan 1a: Ketiklah program berikut: #include #include void main() { printf("ALGORITMA DAN PEMROGRAMAN"); printf("MENGGUNAKAN BAHASA C/C++\n"); getch(); } Simpanlah di folder Anda masing-masing dengan nama yang sesuai dengan cara memilih menu File>>save.
Untuk mengecek program apakah berjalan atau tidak, pilih menu Debug>>run
Jika ada kesalahan, maka program akan langsung menunjuk pada baris mana kesalahan tersebut. perbaiki dan jalankan
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Perhatikan perintah-perintah di atas. - Perintah printf digunakan untuk memerintahkan menampilkan suatu data ke layar. - Tanda \ pada string yang dilewatkan sebagai argumen printf() mempunyai makna khusus. Tanda ini bisa digunakan untuk menyatakan karakter khusus seperti : Karakter Keterangan \\ menyatakan karakter backslash \t menyatakan karakter tab \n menyatakan pindah baris \0 menyatakn karakter ascii null \a karakter bell \b karaker backspace \f karakter ganti halaman (form feed) \r karakter carriege return (ke awal baris) \v karaker tab vertical \l menyatakan karakter petik tunggal \” menyatakan karakter petik ganda \? menyatakan karakter tanda tanya \ooo karakter yang nilai iktalnya adlah ooo (3digit) \xhh karakter yang nilai heksadesimalnya adalah hh (2 digit hexadesimal)
-
perintah getch() memberikan kesempatan kepada pengguna untuk melihat hasil, yang merupakan singkatan dari get character. komputer akan melanjutkan jika pengguna sudah menekan suatu karakter (angka/huruf/karakter lain). Bentuk umum perintah printf adalah: printf(“string kontrol”, daftar argumen)
Contoh: Perintah printf("ALGORITMA DAN PEMROGRAMAN"); Dapat diganti menjadi printf("%s DAN %s", ”ALGORITMA”,”PEMROGRAMAN”);
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
%s merupakan penentu format untuk data bertipe string. Tentang penentu format dibahas dalam bab tersendiri.
Ubahlah baris: printf("ALGORITMA DAN PEMROGRAMAN"); menjadi printf("ALGORITMA DAN PEMROGRAMAN\n"); kemudian coba jalankan (Debug>>Run)
Simpan ulang File anda dengan memeilih menu file>>save.
Latihan 1b. Buatlah file baru. Buatpula kode programnya jika diinginkan hasil tampilan saat di jalankan sbb: ============================================ = LATIHAN 1.B = = ALGORITMA DAN PEMROGRAMAN II = = OLEH: UM412 (ISI NAMA ANDA) = = FAKULTAS TEKNOLOGI INFORMASI = = TULIS NAMA UNIVERSITAS ANDA = ============================================ Nb: Dilarang copy-paste dari latihan sebelumnya
Simpan dan jalankan.
Latihan 1c. Buatlah file baru. Buatpula kode programnya dengan tampilan bebas.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
2. VARIABEL, CONSTANTA, TIPE DATA & OPERATOR Variabel & Constanta Variabel adalah tempat penampung data. Variabel berada di memory komputer. Isi variabel dapat berubah-ubah. Biasanya setiap variabel mempunyai tipe. Kita dapat memilih sendiri nama variabel yang disesuaikan dengan tujuan.
Ketentuan penamaan variabel : 1. Nama variabel terdiri dari huruf, angka dan garis bawah. Nama variabel boleh didahului oleh huruf dan garis bawah, tetapi tidak boleh didahului oleh angka. Contoh : nilai1, nilai_1, _nilai_turbo_c, a123 2. Tidak boleh menggunakan operator hitung ( + - / * % ) dan juga tidak boleh menggunakan karakter khusus ( : ; , # @ $ & dan titik ) 3. Nama variabel tidak boleh berisi spasi 4. Tidak boleh memakai reserved words (kata-kata yang sudah mempunyai arti di dalam turbo C), secara sendiri. Variabel boleh memakai reserved word jika digabungkan dengan kata lain. Contoh variabel yang salah : main, printf, scanf, dan sebagainya Contoh variabel yang benar : program_main, printf_1 5. Turbo C membedakan huruf besar dan kecil. Variabel gaji, Gaji dan GAJI adalah tiga variabel yang berbeda. 6. Panjang variabel boleh berapa saja, tetapi hanya 32 karakter pertama yang dikenal.
Tipe Data Dasar Data berdasarkan jenisnya dapat dibagi menjadi 5 kelompok yang dinamakan sebagai tipe data dasar, yaitu : Bilangan bulat (integer) Bilangan real presisi-tunggal Bilangan real presisi-ganda Karakter Tak-bertipe TIPE char int
TOTAL BIT 8 16
KAWASAN -128 .. 127 -32768 .. 32767
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
KETERANGAN Karakter Bilangan Integer
TIPE float double void
TOTAL BIT 32 64 0
KAWASAN 3.4E-38 .. 3.4E+38 1.7E-308 .. 1.7E+308 Tidak bernilai
KETERANGAN Bilangan Real presisi-tunggal Bilangan Real presisi-ganda Tak-bertipe
Variabel digunakan dalam program untuk menyimpan suatu nilai dan nilai yang ada padanya dapat diubah-ubah selama eksekusi program berlangsung. Variabel yang digunakan dalam program haruslah dideklarasikan terlebih untuk dengan tujuan memesan memori dan menentukan jenis data yang bisa disimpan di dalamnya.
Contoh : Pendefinisian variable int jumlahsiswa; float potongan_harga, hargaKotor, harga; char jawaban Pemberian nilai variabel: jumlahsiswa = 10; potongan_harga= 0.20; hargaKotor= jumlah * harga; jawaban=’y’;
Pemodifikasi Tipe/Type Modifier Ada beberapa pemodifikasi tipe (type modifier) yang dapat dikenakan di awal tipe data dasar (kecuali void). Pemodifikasi tipe tersebut adalah : Signed : Long Unsigned : Short Tabel kemungkinan pemakaian pemodifikasi tipe pada tipe dasar : NAMA TIPE TOTAL BIT KAWASAN unsigned char 8 0 .. 255 signed char 8 -128 .. 127 unsigned int 16 0 .. 63535 signed int 16 -32768 .. 32767 short int 16 -32768 .. 32767 unsigned short int 16 0 .. 65535 signed short int 16 -32768 .. 32767 long int 32 -2147483648 .. 2147483647 signed long int 32 -2147483648 .. 2147483647 unsigned long int 32 0 .. 4294967295 long double 80 3.4E-4932 .. 1.1E+4932
Tipe short int bisa cukup ditulis menjadi short
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Tipe long int boleh ditulis menjadi long Tipe signed int bisa ditulis menjadi signed saja Tipe unsigned int boleh ditulis dengan unsigned
Penentu Format Penentu format untuk data tipe lain dapat dilihat pada tabel berikut : Tipe Data Penentu Format Integer %d Floating Point Bentuk Desimal %f Bentuk Berpangkat %e Double Precision %lf Character %c String %s Unsigned Integer %u Long Integer %ld Long Unsigned Integer %lu Unsigned Hexadec. Int. %x Unsigned Octal Int. %o
Menggunakan Type Cast Type Cast merupakan upaya untuk mengkonversikan suatu tipe menjadi tipe yang lain. Bentuk umum tipe cast adalah : (tipe) ungkapan dengan tipe dapat berupa pengenal tipe seperti char atau int. Misalnya jika x dideklarasikan bertipe int, bila dikehendaki agar ungkapan x/2 menghasilkan nilai pecahan (real) maka ungkapan x/2 dapat ditulis menjadi (float) x/2. Contoh : #include Void main() { int a=52; float b; b=a/3; printf("Nilai a/3 adalah %f\n", b); b=(float) a / 2; printf("Nilai b = (float) a /3 adalah %f\n", b); getch(); }
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Mendefinisikan Konstanta Berbeda dengan variabel, yang mana isi bisa berubah/diubah sesuai keinginan, konstanta merupakan tempat penyimpanan suatu nilai dalam memory yang mana nilai tersebut tidak akan diubah-ubah/bersifat konstant/tetap. Pendefinisiannya dilakukan dengan menggunakan pengarah praprocessor #define atau dengan const. Contoh: const pi=3.142 #define pi=3.142
Operator Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi seperti penjumlahan, memberikan nilai, membandingkan kesamaan dan sebagainya. Operator yang dikenakan terhadap dua buah nilai (operand) disebut unary, misalnya a + b. Sedangkan operator yang hanya memiliki sebuah operand disebut unary, misalnya –c. 1. Operator Aritmatika BINARY * Perkalian / Pembagian % Sisa pembagian + Penjumlahan Pengurangan atau negasi UNARY + Tanda minus Tanda plus 2. Operator Penurunan dan Penaikan ++ --
Operator penaikan Operator penurunan
Contoh : x = x + 1 ; dapat ditulis ++x; atau x++ ; y = y – 1 ; dapat ditulis - -y; atau y - - ; 3. Operator Hubungan > Lebih besar < Lebih kecil >= Lebih besar atau samadengan <= tidak sama dengan != sama dengan (bukan untuk
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
==
assignmen/pengisian)
4. Operator bitwise & | !
And Or not
Prioritas Operator Matematika Seperti halnya operasi matematika, dalam c, mempunyai prioritas operasi mana yang akan dikerjakan terlebih dahulu. Adapun urutan prioritas dapat dilihat di dalam tabel di bawah ini: Prioritas Tertinggi Prioritas Terendah
++ -- (unary minus) * / % +-
Contoh: x=4+2-5; x=4-2+5; x=4-4/2;
//hasil: x=1 //hasil: x=7 //hasil: x=2
Keyword dan Identifier Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks individual yang disebut dengan token., yang di dalamnya memuat variabel, konstanta, keyword, operator dan tanda baca. keyword merupakan kata kunci yang sudah digunakan dalam suatu program. keyword ini tidak boleh digunakan untuk memberikan nama suatu variabel. beberapa keyword yang dikenal dalam C adalah: void, int, float, define, if, dan lain-lain. contoh: #include void main() { float luas; luas=28*10; printf(”luasnya adalah %7.0f”,luas); } pada program di atas
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
{,} luas float *,=
merupakan token tanda baca merupakan token variabel merupakan token keyword merupakan token operator
Praktikum 2: Latihan 2a: Ketiklah program berikut: #include #include void main() { int panjang,lebar; float luas; printf("\n"); printf("====================================\n"); printf("PROGRAM PENCARI LUAS PERSEGI PANJANG\n"); printf("====================================\n"); printf("Masukkan panjang :");scanf("%d",&panjang); printf("Masukkan lebar :");scanf("%d",&lebar); luas=panjang*lebar; printf("====================================\n"); printf("Luasnya adalah : %7.2f\n",luas); printf("====================================\n"); getch(); } -
Simpan hasil pekerjaan Anda di folder masing-masing, dan jalankan (dengan memilih menu Debug>>run atau Ctrl+F9)
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Latihan 2b. jika sudah berhasil, buatlah sebuah file baru yang dapat digunakan untuk mencari luas dari persegi panjang jika tampilan yang di inginkan seperti berikut:
Latihan 2c. simpan hasil yang sudah dibuat sebelumnya. perbaiki program yang yang sudah dibuat, sehinggap program dapat digunakan untuk mencari garis miring dan keliling segitiga siku dengan tampilan seperti berikut:
Catatan: - Untuk menghitung garis miring dihitung dengan rumus gm=sqrt(alas*alas+tinggi*tinggi) - untuk dapat menggunakan fungsi sqrt, diperlukan header math.h (tambahan perintah #include ) -
Simpan ulang dengan nama file lain. (File>>Save As)
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
3. FUNGSI-FUNGSI UMUM Terdapat beberapa perintah/fungsi yang sering digunakan dalam bahasa c++, di antaranya adalah : - fungsi untuk menampilkan : printf,puts, putchar, dll - fungsi untuk memasukkan: scanf, getch, getche, dll - fungsi numeric: sqrt, pow, tan, div, ceil, floor, exp, max, min dll. - fungsi string: strcpy,strcat,strupr,strlwr dll PRINTF() Merupakan fungsi yang paling umum digunakan dalam menampilkan data. Berbagai jenis data dapat ditampilkan ke layar dengan fungsi ini. Bentuk penulisan : printf(“string kontrol”, argumen1, argumen2, …);
String kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta penentu format seperti %d, %f. Penentu format dipakai untuk memberi tahu kompiler mengenai jenis data yang akan ditampilkan Argumen adalah data yang akan ditampilkan ke layar. Argumen ini dapatr berupa variabel, konstanta atau ungkapan PUTS() Fungsi ini digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini, string yang ditampilkan secara otomatis akan diakhiri dengan \n (pindah baris). Dibandingkan dengan printf(), perintah ini mempunyai kode mesin yang lebih pendek. PUTCHAR() Digunakan khusus untuk menampilkan sebuah karakter ke layar. Penampilan karakter tidak diakhiri dengan perpindahan baris, misalnya : putchar(‘A’); sama dengan printf(“%c”, A); Contoh : #include #include void main() { char A; int nilai1=20; float nilai2=2000.0; clrscr(); printf("Angka %d dapat ditampilkan dalam format %3d \n", nilai1, nilai1); printf("Angka %f dapat ditampilkan dalam format %8.3f”,nilai2,nilai2);
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
printf(” dan %-8.0f\n", nilai2); putchar('T'); puts("ekan sembarang tombol untuk melanjutkan"); getch(); } Hasil :
SCANF() Merupakan fungsi yang dapat digunakan untuk memasukkan berbagai jenis data. Bentuk scanf() sesungguhnya menyerupai fungsi printf() yang melibatkan penentu format. Bentuk penulisan : scanf(“string kontrol”, daftar argumen); contoh: scanf("%f",&gaji); scanf("%d-%d-%d",&bil1,&bil2,&bil3); Hal-hal yang perlu diperhatikan dalam pemakaian scanf yaitu : 1. scanf memberi pergantian baris secara otomatis, artinya Anda tidak perlu memberi \n untuk berpindah ke baris berikutnya. 2. scanf memakai penentu format, tetapi tidak memerlukan penentu lebar field. Contoh yang salah : scanf(“10.2f”,&gaji); 3. Variabel yang dipakai di dalam scanf harus didahului dengan operator alamat (&). 4. jika diinginkan memasukkan lebih dari 1 data, maka dapat dilakukan dengan memasukkan data-data dalam 1 baris dengan pemisah koma(”,”), garis hubung (”-”), titik koma (”,”) atau spasi (” ”) GETCH() dan GETCHE() Dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan enter. Fungsi getch() merupakan singkatan dari get character artinya baca karakter tetapi isian data yang dimasukkan tidak akan ditampilkan di layar. Fungsi getche() sebenarnya adalah singkatan dari get character and echo, artinya baca karakter lalu tampilkan di layar Contoh : getch(); karakter=getch(); getche(); Catatan : Program yang menggunakan printf(), putchar(), scanf() dan puts() mengandung baris yang berisi #include Program yang melibatkan getche() atau getch() mengandung baris yang berisi #include
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Fungsi Matematika Include : #include Beberapa fungsi matematika yang sering digunakan adalah : Fungsi Keterangan Contoh sqrt Menghitung akar positif dari sebuah sqrt(x); bilangan bulat pow Menghitung xy z = pow(10,2); tan Menghitung nilai tangent dari sebuah sudut sin Menghitung nilai sinus dari sebuah sudut cos Menghitung nilai cos dari sebuah sudut acos Menghitung nilai arctan dari sebuah sudut asin Menghitung nilai arcsin dari sebuah sudut atan Menghitung nilai arctan dari sebuah sudut ceill membulatkan ke atas floor membuatkan ke bawah exp mencari nilai exponensial ex fmod mencari sisa pembagian fmod(9,2)
Hasil
1
Fungsi String String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untuk keperluan menampung dan memanipulasi data teks Catatan: - Variabel string adalah variabel yang dipakai untuk menyimpan string, misalnya : char nama[20]; - Merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal mengandung 20 karakter (termasuk karakter NULL). - Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan memakai gets(). - Bentuk penulisan : gets(nama variabel); Jika memakai scanf() instruksinya menjadi scanf(“%s”, nama variabel); Didepan nama variabel tidak perlu menggunakan operator & Data string yang dimasukkan tidak dapat mengandung spasi Prototipe gets() ada pada file stdio.h Untuk menampilkan isi variabel string, pernyataan yang dapat digunakan berupa : puts(variabel string); printf(“%s”, variabel string); printf(variabel string); Fungsi strlen strlwr strupr
Keterangan Contoh Menghitung panjang string strlen(”Turbo C”); mengubah string menjadi huruf strwr(”Turbo C”); kecil mengubah string menjadi huruf besar
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Hasil 3 turbo c
strcpy strcat atof
mongkopi string dari variabel satu ke variabel lain Menggabungkan beberapa string mengkonversi data dari alphanumeric menjadi numeric
strcpy(a,b); srcat(”a”,”b”); atof(”100 orang”); atof(”1e3”);
ab 100.0 1000
Praktikum 3: Latihan 3.a: Ketiklah program berikut: #include #include void main() { char A; int nilai1=20; float nilai2=2000.0; clrscr(); printf("Angka %d dapat ditampilkan dalam format %3d \n", nilai1, nilai1); printf("Angka %f dapat ditampilkan dalam format %8.3f",nilai2,nilai2); printf(" dan %-8.0f\n", nilai2); putchar('T'); puts("ekan sembarang tombol untuk melanjutkan"); getch(); }
Simpan dan jalankan!
Latihan 3.b Jika sudah berhasil, buatlah sebuahfile baru, dan ketikkan kode berikut: #include #include #include #include
void main()
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
{ char A; int angka1,angka2; float angka3; char nama[20]; clrscr(); printf("Masukkan Nama Anda :"); scanf("%s",&nama); printf("Masukkan 2 angka secara berturut-turut dengan jarak spasi :"); scanf("%d %d",&angka1, &angka2); printf("TERIMA KASIH %s \n",strupr(nama)); angka3=sin(angka1); printf("Nilai sinus dari %d adalah %4.2f\n",angka1,angka3 ); printf("Nilai cos dari %d adalah %4.2f\n",angka2,cos(angka2)); getch(); } Simpan dan jalankan
Latihan 3.c Buatlah sebuah program jika diiginkan tampilan tampak seperti berikut:
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
4. STRUKTUR PERCABANGAN
Pernyataan if Pernyataan if-else Pernyataan switch
Pernyataan IF bentuk umum : if (kondisi) Pernyataan Contoh : Jika pembelian lebih besar dari 500000, maka diskonnya 5% dari pembelian if (beli >= 500000) diskon=0.05*beli; Jika if diikuti oleh pernyataan majemuk, maka diperlukan tanda awal blok dan akhir blogk berupa kurung kurawal (”{ }”) Contoh : Jika pembelian lebih besar dari 500000, maka disktonnya 5% dari pembelian dan masih ditambah voucher senilai 50000 if (beli >= 500000) { diskon=0.05*beli; bonus=”voucher belanja senilai 50000”; }
Pernyataan If-Else dan Kondisi Bentuk umum : if (syarat1) pernyataan 1 else pernyataan 2; Contoh : Jika nilai >=60 maka lulus, dan jika tidak, maka uji ulang
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
if (nilai>=60) keterangan=”lulus” else keterangan=”uji ulang”
//tanpa tanda titik koma
atau bisa juga ditulis dengan perintah Kondisi: keterangan = (nilai>=60)? ”lulus”: ”uji ulang”; perintah kondisi hanya berlaku jika pernyataan bersifat tunggal seperti halnya if, jika terdapat pernyataan majemuk, maka diperlukan tanda blok kurung kurawal (”{ }”) Pernyataan If - Else If- Else Bentuk umum : if (syarat1) pernyataan 1 else if (syarat2) pernyataan 2 else if (syarat3) pernyataan 3 else pernyataan 4; Contoh: Jika nilai>=85, kategori A Jika nilai>=75, kategori B jika nilai>=60, kategori C jika nilai<60, kategori D if (nilai>=85) kategori[0]=’A’ else if (nilai>=75) kategori[0]=’B’ else if (nilai>=60) kategori[0]=’C’ else kategori[0]=’D’; atau bisa juga ditulis dengan pernyataan kondisi: kategori[0]= (nilai>=85) ? ’A’ : (nilai>=75) ? ’B’ : (nilai>=60) ? ’C’: ’D’; Pernyataan Switch
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Tangga if-else dapat dipakai untuk menguji beberapa syarat. Cara lain untuk menyatakan bebrapa syatat dapat juga dilakukan dengan perintah switch. Di dalam pernyataan switch, sebuah variabel secara berturut-turut diuji oleh daftar konstanta bilangan bulat atau konstanta karakter. Jika sesuai dengan sebuah konstanta, pernyataan yang mengikuti konstanta akan dikerjakan. jika tidak terdapat konstanta yang sesuai, pernyataan default akan dikerjakan Bentuk Umum : switch (variabel) { case konstanta1: { pernyataan; break; } case konstanta2: { pernyataan; break; } default { pernyataan; } } contoh: jika kategori=”A”, maka keterangan =”Istimewa” jika kategori=”B”, maka keterangan =”Baik” jika kategori=”C”, maka keterangan =”Cukup” switch (kategori[0]) { case ’A’: { printf(”Istimewa”); break; } case ’B’: { printf(”Istimewa”); break; } case ’C’: {
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
printf(”Istimewa”); break; } default { printf(“Maaf, kategori tidak dikenal”); break; } }
Catatan: 1. Switch hanya dapat memeriksa persamaan dengan sebuah konstanta, sedangkan IF dapat memeriksa syarat-syarat lain (>,<, >=,<=,!= dan sebagainya). contoh: pernyataan ”jika nilai >= 85” tidak bisa dilakukan dengan menggunakan pernyataan switch. 2. Tidak ada dua konstanta yang sama didalam sebuah switch
Praktikum 4: Latihan 4.a: Ketikkan perintah berikut: #include #include
int main() { char nama[20], char kategori; int nilai;
keterangan[30];
printf("Masukkan Nama: ");gets(nama); printf("Nilai : ");scanf("%d",&nilai); if (nilai>=85) { printf("\nSelamat..., %s",&nama); printf("\nAnda Layak dapat Bintang"); kategori =’A’; } else if (nilai>=75) {
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
printf("\nSelamat..., %s",&nama); printf("\nSelangkah lagi... Anda layak dapat bintang...!"); kategori[0] =’B’; } else { printf("\nMaaf..., %s",&nama); printf("\nSebaiknya Anda belajar lagi...!"); kategori[0] =’C’; } printf("\nKategori : %s",&kategori[0] ); getch(); return 0; }
Latihan 4.b: Buat program untuk menentukan suatu bilangan GENAP atau GANJIL jika diinginkan Input : Masukkan sebuah bilangan bulat : 6 Output : Nilai 6 habis dibagi 2 Sehingga termasuk sebagai bilangan GENAP
Latihan 4.c: Buatlah program dengan tampilan seperti berikut: Output 1 : ============================= LATIHAN 4.C MENCARI LUAS ============================= 1. Luas Persegi Panjang 2. Luas Segi tiga 3. Luas Lingkaran ============================= Pilihan Anda : 1 ============================= Output 2: jika yang dipilih 1 : Terima kasih, menu yang anda pilih nomor 1 Masukkan Panjang : 20 Masukkan Lebar : 10 Luasnya Adalah : 200
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
5. STRUKTUR PERULANGAN
for while do – while
Perulangan FOR Bentuk umum Loop For : for (inisialisasi; syarat; penambahan) pernyataan; Keterangan : Inisialisasi adalah pernyataan untuk menyatakan keadaan awal dari variabel kontrol. Syarat adalah ekspresi relasional yang menyatakan berhentinya pengulangan. Penambahan menyatakan perubahan variabel kontrol setiap terjadi pengulangan. Setiap bagian harus dipisahkan oleh tanda titik koma. Contoh : int i; for (i=1; i <=5 ; i++) printf("%d \n",i);
Pada program tersebut : Inisialisasi :i=1 Syarat : i <= 5 Penambahan : i++ , artinya ditambah 1 Hasil : 1 2 3 4 5 Pengembangan Perulangan For Dalam praktiknya, perulangkan for dapat dikembangkan.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
contoh : int x,y; for (x=0,y=0; x+y<=20; x++,y++) printf("%5d %5d %5d\n",x,y,x*y); Hasil:
Variasi lain adalah dengan menghilangkan salah satu bagian dari perintah perulangan contoh : #include #include void main() { char ulang; clrscr(); for (ulang=' '; ulang!='t'; ) { printf("Belajar perulangan Variasi For: \n"); printf("Mengulang lagi? (t untuk menghentikan) : \n"); ulang=getche(); } } Jika program di atas dijalankan, maka komputer akan meminta pengguna untuk memasukkan karakter, dan akan dihentikan jika pengguna memasukkan huruf t Pengurangan elemen loop dapat juga digunakan pada perlulangan tanpa batas (Loop tak terhingga) contoh : char ch; for (ch=' '; ; ) ch=getche(); Perulangan lain, juga terkadang digunakan untuk mementukan waktu tunggu.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Contoh: int t,x; x=100; for (t=0 ; t
Loop while menyatakan bahwa pengulangan akan dilakukan terus selama syarat terpenuhi. Perulangan DO WHILE Bentuk umum : do { pernyataan; pernyataan; } while (syarat) Berbeda dengan perlulangan while, Perulangan menggunakan do while syarat akan dicek setelah pernyataan dijalankan 1x. jika memenuhi syarat, maka akan mengulang lagi. contoh :
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
int pilih; do { printf("=============\n"); printf("1. Kelas Reguler \n"); printf("2. Kelas Intensif\n"); printf("=============\n"); printf("Pilihan Anda:"); scanf("%d",&pilih); } while ( (pilih!=1) && (pilih!=2)); Jika program di atas dijalankan, komputer akan meminta pengguna untuk memasukkan pilihan. jika yang dipilih tidak sama dengan 1 dan 2, maka komputer akan mengulang.
Praktikum 5: Latihan 5.a. Ketiklah program berikut: #include #include #include void main() { int i, pangkat2, jumlah; float akar; char garis[40] = "==============================="; clrscr(); printf("Tabel Kuadrat dan Akar Kuadrat \n"); printf("%s\n",garis); printf("Bilangan Kuadrat Akar Kuadrat\n"); printf("%s\n",garis); for (i=1; i<=10; i++) { pangkat2 = i * i; akar = sqrt(i); printf(" %2d %3d %6.4f \n",i,pangkat2,akar); } printf("%s\n",garis); getch(); }
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Simpan dan jalankan
Latihan 5b Ubahlah program yang sudah dibuat, sehingga menjadi seperti berikut: #include #include #include main() { int i, pangkat2, jumlah; float akar; char garis[50] = "========================================"; float jumlah1,jumlah2,jumlah3; jumlah1=0;jumlah2=0;jumlah3=0; clrscr(); printf("Tabel Kuadrat dan Akar Kuadrat \n"); printf("%s\n",garis); printf("Bilangan Kuadrat Akar Kuadrat\n"); printf("%s\n",garis); for (i=1; i<=10; i++) { pangkat2 = i * i; akar = sqrt(i); jumlah1+=i; jumlah2+=pangkat2; jumlah3+=akar; printf(" %8d %8d %8.2f \n",i,pangkat2,akar); } printf("%s\n",garis); printf("Jumlah%4.0f %8.0f %8.2f \n",jumlah1,jumlah2,jumlah3); printf("%s\n",garis);
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
getch(); }
Jika berhasil, maka hasil terlihat seperti berikut:
Keterangan: - Jumlah 55, merupakan jumlah dari variabel i setelah diulang-ulang sampai 10X jumlah1+=1, bisa juga ditulis jumlah1=jumlah1+i; yang artinya nilai jumlah yang baru adalah nilai jumlah sebelumnya ditambah dengan i, sehingga:
Saat Saat Saat Saat dst
i=1, i=2, i=3, i=4,
maka maka maka maka
jumlah1=jumlah1+i jumlah1=0+1= 1, dimana jumlah1=1+2= 3, dimana jumlah1=3+3= 6, dimana jumlah1=6+4= 10, dimana
jumlah1 jumlah1 jumlah1 jumlah1
Latihan 5d. Buatlah program untuk menghitung suatu faktorial contoh: 5!=5*4*3*2*1 =120 Jika diinginkan tampilan hasinya:
Latihan 5e. Jika sudah berhasil, simpan dengan nama lain.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
sebelumya=0 sebelumya=1 sebelumya=3 sebelumya=6
dan dan dan dan
i=1; i=2; i=3; i=4;
Ubahlah program Anda, sehingga jika di jalankan tampak seperti berikut:
Latihan 5f. Jika sudah berhasil, simpan dengan nama lain. Buatlah sebuah program jika diinginkan tampil seperti berikut
Latihan 5g. Jika sudah berhasil, simpan dengan nama lain. Buatlah sebuah program jika diinginkan menampilkan angka: 012345432101234543210
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Latihan 5h. Jika sudah berhasil, simpan dengan nama lain. Buatlah sebuah program jika diinginkan menampilkan angka: 1 2 3 4 5
9 8 7 6 5
Latihan 5i. Jika sudah berhasil, simpan dengan nama lain. Buatlah sebuah program jika diinginkan menampilkan angka: 1 12 123 1234 12345
Latihan 5j. Jika sudah berhasil, simpan dengan nama lain. Buatlah sebuah program jika diinginkan menampilkan angka: 1 121 12321 1234321 123454321
Latihan 5k. Jika sudah berhasil, simpan dengan nama lain. Buatlah sebuah program yang dapat digunakan untuk menampilkan bilangan prima dari 2 sampai n, dimana n diinputkan oleh user.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Algoritma Mencari bilangan prima: 0 bukan bilangan prima 1 bukan bilangan prima 2 bilangan prima jika bukan 0,1,2, Semua bilangan yang habis dibagi 2 bukan bilangan prima jika tidak (tidak masuk dalam kategori di atas): o anggap n adalah suatu bilangan dan m adalah nilai integer dari akar n. jika dari 3 sampai m terdapat terdapat n habis dibagi dengan bilangan tersebut (bilangan antara 3 sampai akar n), maka bukan bilangan prima jika tidak masuk dalam kategori di atas, berarti bilangan prima
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
6. ARRAY Array merupakan deretan variabel yang berjenis sama dan mempunyai nama sama. Pada bahasa C, array mempunyai lokasi yang bersebelahan. Alamat terkecil menunjuk ke elemen pertama dan alamat terbesar menunjuk ke alamat terakhir. Sebuah elemen pada array diakses melalui indeksnya. Array 1 dimensi Bentuk umum: tipe_array nama_array[ukuran];
//array 1 dimensi
cara pemberian nilai/assignmen nama_array[index_array]=constant; nama_array[index_array]=var; Keterangan: tipe_array ukuran index_array
: menyatakan tipe dasar array : menyatakan banyaknya elemen pada array : nomor index dari array yang akan di isi
Contoh : int nilai[5]; nilai[0]=90; nilai[1]=80;
hal ini menyatakan array nilai mempunyai 5 elemen, yaitu : nilai[0] , nilai[1] , nilai[2] , nilai[3] dan nilai [4] Semakin besar ukuran array, semakin besar pula memori yang digunakan. Total memori yang digunakan adalah : byte total = ukuran dari tipe dasar * banyaknya elemen dalam contoh diatas, jumlah memori yang digunakan sebesar 2*5 byte =10 byte di mana 2 byte merupakan jumlah memori yang digunakan untuk menyimpan 1 buah variabel bertipe integer. meskipun jumlah elemen yang dideklarasikan 5, tetapi dalam prakteknya, pemrogram bisa menambah elemen secara otomatis jika nomor index yang bersangkutan di sebutkan, contoh: nilai[8]=75, padahal pada saat pendefinisian maksimal 5. Array Multi Dimensi
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Bentuk umum: tipe_array nama_array[ukuran1][ukuran2]; tipe_array nama_array[ukuran1][ukuran2][ukuran3]; dst.
//array 2 dimensi //array 3 dimensi
Contoh: int matrix1[2][2]; char nama[10][20];
matrix1 mempunyai elemen array : matrix1[1][1], matrix1[1][2], matrix1[2][1], dan matrix1[2][2] sedangkan contoh cara pengisian data: matrix1[1][1]=90; nama[1]=”Um” jika diinginkan menampilkan, maka dapat digunakan printf atau untuk string gunatan gets printf(”nilai matrix1[1,1] adalah %d”, matrix1[1][1]); printf(”nama anak ke 1 adalah ”), gets(nama[1]);
Adapun jumlah memori yang digunakan sebesar byte total = ukuran dari tipe dasar * banyaknya elemen1 * banyaknya elemen2 sehingga matrix1[2][2] memerlukan memori sebesar 2*2*2 byte =8 byte. contoh penggunaan Array: int i,j; int m[2][2]; clrscr(); for(i=1; i<=2; i++) { for(j=1; j<=2; j++) { m[i][j] = i*j; printf("%3d", m[i][j]); } printf("\n"); } Inisialisasi Array Seperti halnya variabel biasa, variabel array juga dapat diberikan nilai awal/inisial.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Bentuk umum : tipe nama_array [ukuran1, ukuran2, …, ukuran n] = {daftar nilai};
Daftar nilai berisi konstanta yang sesuai dengan tipe array. Setiap konstanta dipisahkan oleh tanda koma. Konstanta pertama akan mengisi elemen pertama, konstanta kedua untuk elemen kedua dan seterusnya. contoh: int nilai[5] = {90,85,75,99,100}; hal ini menunjukkan bahwa nilai[0]=90, nilai[1]=80 dan seterusnya.
Contoh penulisan dalam program: main() { int nilai[5] = {90,85,75,99,100}; for (int x=0;x<=2;x++) cout<
Pointer Pointer adalah sebuah variabel yang berisi alamat memori komputer di mana suatu variabel diletakkan. Perhatikan contoh penggunaan memori di bawah ini:
nilai variable alamat memori
...
...
varA 255 1456
varB 700 1457
...
...
...
variabel varA di simpan di memori komputer pada alamant 1456 dan , variabel varB diletakkan di 1457 varA berisi angka 255 dan varB berisi angka 700
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Operator Pointer Ada 2 operator pointer : 1. Operator & Bersifat unary (hanya memerlukan satu operan). Operator ini menghasilkan alamat dan operannya. Contoh : x = &a, jika kita mengacu pada gambar di atas, maka isi variabel x adalah 1004. 2. Operator * Operator * dan operator & bersifat saling komplemen. Operator * juga bersifat unary dan menghasilkan nilai yang berada pada sebuah alamat.. Contoh: int varA, *alamat1, varB; varA=5; alamat1=&varA; varB=*alamat1; printf("\n Isi variabel varA adalah %4d", varA); printf("\n Isi variabel alamat1 adalah %4u", alamat1); printf("\n Isi variabel varB adalah %4d", varB); printf("\n Isi variabel alamat1 sekarang adalah %4u", alamat1++);
Jika dijalankan, maka hasilnya adalah:
Keterangan: variabel alamat1 berisi alamat memory dari variabel varA. pada contoh di atas, 8808 merupakan tempat di mana data variabel a di simpan di memory komputer pada saat program dijalankan. angka tidak mutlak, bisa berubah setiap saat jika program ini di jalankan di lain waktu. variabel alamat1 harus bertipe sama dengan varA, yaitu integer. *x menghasilkan isi dari alamat yang dituju X, sehingah asil dari varB=5, karena alamat yang dituju alamat1 adalah variabel A. Alamat dapat dicetak dengan format %u sebab alamat adalah bilangan bulat tanpa tanda (unsigned integer) nilai increment alamat1 adalah sama dengan jumlah memory yang digunakan oleh variabel int (variabel yang dituju), yaitu 2, sehingga ++alamat1 menghasilkan nilai 8808+2=8810; Contoh 2: int nilai[5],*alamat1;
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
int hasil; nilai[0]=95; nilai[1]=90; nilai[2]=80; nilai[3]=75; alamat1=&nilai[1]; hasil=*(alamat1+2); //sama dengan hasil=nilai[1+2] printf("\n Isi variabel nilai[1] adalah %4d", nilai[1]); printf("\n Isi variabel alamat1 adalah %4u", alamat1); printf("\n Isi variabel nilai[3] adalah %4d", nilai[3]); printf("\n Isi variabel Hasil adalah %4u", hasil); Hasilnya:
Keterangan: hasil=*(alamat1+2); sama halnya dengan hasil= nilai[3], yaitu nilai[1+2] Array dapat ditunjuk dengan index-nya dan dengan alamat. Penunjukan dengan alamat akan lebih cepat daripada penunjukan dengan index-nya. Contoh 1: /* menggunakan index array */ #include #include #include void main() { char kata[80]; int i; printf("Masukkan kalimat(huruf besar):\n");gets(kata); printf("huruf kecilnya adalah : "); for(i=0; kata[i]; i++) printf("%c",tolower(kata[i])); getch(); } /* menggunakan pointer */
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
#include #include #include void main() { char kata[80], *p; clrscr(); printf("Masukkan kalimat(huruf besar):\n"); gets(kata); printf("huruf kecilnya adalah:\n"); p=kata; while (*p) printf("%c",tolower(*p++)); getch(); } Hasil:
Contoh 2: #include #include void main() { char kata[80]; char *p; int i; clrscr(); printf("Masukkan 2 kalimat: "); gets(kata); for (i=0; kata[i] && kata[i] != '.'; i++); p=&kata[i+1]; printf("Kalimat ke-2 adalah : \n"); printf(p); getch(); } Hasil:
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Contoh3: Penggunaan Array dalam Pengurutan Data: #include #include void InputData(int z[],int x); void BubbleSort(int z[],int x); void SelectionSort(int z[],int x); void Tampil(int z[],int x); main() { int N,data[100]; int ch; printf("Masukkan banyak data : "); scanf("%d",&N); InputData(data,N); printf("Menu Utama"); printf("Jenis-jenis metode pengurutan \n"); printf("1. Bubble Sort\n"); printf("2. Selection Sort\n"); printf("\nMasukkan jenis pengurutan (1-2) : "); scanf("%d",&ch); switch(ch) { case 1 : BubbleSort(data,N);break; case 2 : SelectionSort(data,N);break; } printf("\n\nData yang telah terurut : \n"); Tampil(data,N); getch(); } void InputData(int z[],int x) { int i; for(i=0;i
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
for(i=0;iz[j]) min=j; tmp=z[i]; z[i]=z[min]; z[min]=tmp; } } void Tampil(int z[],int x) { for(int i=0;i
Array Pointer Seperti halnya variabel lain, Array pointer bisa juga digunakan. bentuk umum: tipe *nama_variable_pointer[ukuran] contoh char *y[10] array pointer ini sering digunakan dalam berbagai operasi string. Contoh dalam aplikasi: #include #include
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
#include void main() { char *jurusan[] = { "Jogja-Semarang", "Jogja-Solo", "Jogja-Surabaya", "Jogja-Malang" }; int pilih; clrscr(); printf("Masukkan Pilihan Anda(1-4):"); scanf("%d",&pilih); printf("\nAngkutan yang Anda pilih adalah : \n"); printf("%s",jurusan[pilih-1]); getch(); } Hasil:
Contoh 2: #include ; #include ; void main() { char *nama1 = "SEBENING EMBUN PAGI"; char *nama2 = "SEJERNIH MATA AIR"; char *nama3; clrscr(); puts("Awal :"); printf("Nama-1 : %s", nama1); printf("\nNama-2 : %s", nama2); nama3=nama1; nama1=nama2; nama2=nama3; puts("\n\nSetelah ditukar :"); printf("Nama-1 : %s", nama1);
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
printf("\nNama-2 : %s", nama2); } Hasil:
Pointer banyak dilibatkan dalam program C, misalnya untuk melewatkan string dari suatu fungsi ke fungsi yang lain. Penerapan pointer yang paling umum yaitu untuk menciptakan variabel dinamis yang memungkinkan untuk memakai memori bebas (memori yang belum dipakai) selama eksekusi program. Agar suatu pointer menunjujk ke variabel lain, mula-mula pointer harus diisi dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatu variabel, operator & (operator alamat, yang bersifat unary) bisa digunakan dengan cara menempatkan operator di depan nama variabel. Jika suatu variabel sudah ditunjuk pointer, variabel tersebut dapat diakses melalui variabel itu sendiri (dikatakan sebagai pengaksesan langsung) ataupun melalui pointer (dikatakan sebagai pengaksesan tidak langsung). Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection berupa simbol * (bersifat unary).
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Praktikum 6: Latihan6.a Ketiklah program di bawah ini: /* memasukkan data nilai*/ #include #include #include void main() { char nama[10] [25]; float nilai[10], jumlah, rata; int jumlahAnak,i; char garis[40]="\n=================================="; clrscr(); printf("Banyaknya Anak : "); scanf("%d",&jumlahAnak); jumlah=0; for (i=1; i<=jumlahAnak; i++) { printf("Nama Mahasiswa : "); scanf("%s",&nama[i]); printf("Nilai : "); scanf("%f",&nilai[i]); jumlah += nilai[i]; } clrscr(); printf(garis); printf("\nDaftar Nilai Ujian Bahasa C"); printf("\nNama Mahasiswa Nilai"); printf(garis); for (i=1; i<=jumlahAnak; i++) printf("\n %-25s %5.1f", nama[i], nilai[i]); printf(garis); rata= jumlah / jumlahAnak; printf("\nRata-rata adalah %5.2f ", rata); getch(); } Simpan dan jalankan Latihan 6.b Buatlah program berikut: /* menghitung penjumlahan matrix */
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
#include #include #include void main() { int matrix1[5][5], matrix2[5][5], matrix3[5][5]; int baris,kolom,i,j; int jumlah; char garis[40]="==================================\n"; clrscr(); printf("%s",garis); printf("Jumlah baris matrix: "); scanf("%d",&baris); printf("Jumlah kolom matrix: "); scanf("%d",&kolom); printf("%s",garis); printf("Matrix 1:\n"); for (i=1; i<=baris; i++) for (j=1; j<=kolom; j++) { printf("matrix1[%d,%d]:",i,j); scanf("%d",&matrix1[i][j]); } printf("%s",garis); printf("Matrix 2:\n"); for (i=1; i<=baris; i++) for (j=1; j<=kolom; j++) { printf("matrix2[%d,%d]:",i,j); scanf("%d",&matrix2[i][j]); } //menghitung jumlah matrix1 +matrix2 for (i=1; i<=baris; i++) for (j=1; j<=kolom; j++) matrix3[i][j]=matrix1[i][j]+ matrix2[i][j];
//menampilkan hasil printf("%s",garis); printf("Hasil :\n"); for (i=1; i<=baris; i++) { printf("|"); for (j=1; j<=kolom; j++)
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
printf("%8d
",matrix3[i][j]);
printf(" |\n"); } printf("%s",garis); getch(); }
Simpan dan jalankan. jika berhasil, maka akan tampak seperti berikut:
Latihan 6.c Buatlah program untuk menghitung perkalian matrix di bawah ini:
8 2
1 X
7 4
12 =
2
15
Latihan 6.d Buatlah program untuk mengurutkan data dengan metode selection sort.
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
7. FUNGSI Fungsi merupakan sub program. fungsi yang pasti ada di dalam program adalah fungsi main() seperti program-program yang sudah dibuat sebelumnya. Contoh fungsi yang sering digunakan: clrsrc(); merupakan fungsi yang digunakan untuk membersihkan layar. fungsi clrscr ini terdapat dalam file header conio.h. sehingga untuk memanggil perintah clrscr() sebelumnya harus mengikutkan file conio.h dengan perintah #include . karena fungsi untuk membersihkan layar sudah dibuatkan oleh C dalam file conio.h, maka pemrogram tidak perlu susah-susah membuat sebuah fungsi sendiri. fungsi lain adalah printf(), puts(), gets() dan lain-lain. adapun fungsi-fungsi yang tidak dibuatkan oleh C, maka pemrogram bisa membuat sendiri fungsi-fungsi sesuai dengan keinginan pemrogram beberapat tujuan dibuatnya fungsi: - agar perintah lebih terstruktur - mengurangi banyaknya perintah akibat perintah yang sama di ulang-ulang - efektifitas memori dll Bentuk umum : tipe_fungsi nama_fungsi (deklarasi parameter) { pernyataan; pernyataan; return var } cara pemanggilan fungsi var=namafungsi(parameter); Keterangan: - tipe_fungsi merupakan tipe dari hasil kembalian yang diinginkan. adapun nilai yang akan dikembalikan digunakan perintah return var. jika tidak menginginkan kembalian, cukup diberikan perintar return; dan tipe_fungsi diisi dengan ”void”. - perintah return berfungsi untuk mengembalikan nilai, keluar dari fungsi dan kembali ke program yang memanggil. - deklarasi parameter merupakan parameter-parameter yang dilewatkan. jika tidak memerlukan parameter, maka cukup dikosongkan tipe_fungsi nama_fungsi ()
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Contoh 1: //Menggunakan fungsi #include #include #include void tampilkanGaris() { printf("========================================\n"); } void main() { tampilkanGaris(); printf("Belajar Fungsi\n"); tampilkanGaris(); getch(); } hasil:
Keterangan: - Pada contoh1 di atas, fungsi tampilkanGaris berisi perintah untuk menampilkan tanda = berulang kali. - karena fungsi tampilkanGaris tidak mengembalikan nilai, maka dibeikan tipe void dan perintah return tidak harus dituliskan - fungsi tampilkanGaris dipanggil 2 kali, sehingga tampak hasil garis sebanyak 2 kali pula. Contoh 2: //Penggunaan fungsi dan parameter #include #include void tampilkanGaris(int panjang) { int i; for (i=1;i<=panjang;i++) printf("="); printf("\n"); } void main()
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
{ tampilkanGaris(20); printf("Belajar Fungsi\n"); tampilkanGaris(30); getch(); } Hasil:
Contoh 3a: //penggunaan fungsi, parameter dan return #include #include void tambah1(int angka1,int angka2) { int hasil; hasil=angka1+angka2; printf("%d ditambah %d sama dengan %d\n", angka1, angka2, hasil); } int tambah2(int angka1,int angka2) { int hasil; hasil=angka1+angka2; return hasil; } void main() { int h; tambah1(2,3); h=tambah2(33,20); printf("Hasil 33 ditambah 20 sama dengan %d\n",h); getch(); } hasil: 2 ditambah 3 sama dengan 5 Hasil 33 ditambah 20 sama dengan 53
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Keterangan: - Pada contoh 3 di atas, fungsi tambah1 tidak mengembalikan nilai, meskipun bisa menampilkan hasil, sehingga menggunakan tipe void - fungsi tambah2 mengembalikan nilai bertipe integer yang dimasukkan dalam variabel ”hasil”. karena nilai yang dikembalikan bertipe integer, maka fungsi yang dipanggil pun harus pertipe integer, yaitu: int tambah2(...) - untuk memanggil fungsi tambah1, cukup dengan perintah tambah1(2,3) di mana angka 2 bertipe integer dan angka 3 juga bertipe integer. angka 2 dan tidak bisa diganti-ganti sesuai dengan keinginan. - untuk memanggil fungsi tambah2 menggunakan h=tambah2(33,20); yang mana variabel h harus bertipe integer, sesuai dengan tipe dari fungsi tambah2. Contoh 3b: //penggabungan fungsi dan pointer #include #include #include void bulan(int bl) { static char *namaBulan[]= { "-", "Januari", "Feburari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember" }; printf("%s", namaBulan[bl]); } void main() { printf("Bulan ke-1 adalah bulan ");bulan(1); }; Hasil: Bulan ke-1 adalah bulan Januari
Scope Variabel Jika diperhatikan, dari contoh 3 di atas, terdapat 2 kali inisial variabel hasil, pada fungsi tambah1 dan pada fungsi tambah2. Pada fungsi tambah1 terdapat inisial variabel int hasil; Pada fungsi tambah2 juga terdapat inisial variabel int hasil;
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Hal ini menunjukkan bahwa inisial variabel pada suatu fungsi tidak dikenali di fungsi yang lain. Variabel ini disebut dengan variabel local. Adapun variabel jenis lain adalah variabel public, dimana semua fungsi mengenali variabel tersebut. Variabel public ini biasanya diinisialisasi pada sebelum penulisan fungsi-fungsi. Ruang lingkup variabel ini disebut dengan scope variabel . Perhatikan contoh di bawah ini: Contoh 4a: //penggunaan fungsi, parameter dan return #include #include void tambah1(int angka1,int angka2) { int hasil; hasil=angka1+angka2; printf("%d ditambah %d sama dengan %d\n", angka1, angka2, hasil); } int tambah2(int angka1,int angka2) { int hasil; hasil=angka1+angka2; return hasil; } void main() { int h; tambah1(2,3); h=tambah2(33,20); printf("Hasil 33 ditambah 20 sama dengan %d\n",h); getch(); } Variabel “hasil” masih bersifat local. Agar menjadi variabel yang bersifat public, maka program dapat diubah menjadi: //penggunaan fungsi, parameter dan return #include #include int hasil; void tambah1(int angka1,int angka2)
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
{ hasil=angka1+angka2; printf("%d ditambah %d sama dengan %d\n", angka1, angka2, hasil); } int tambah2(int angka1,int angka2) { hasil=angka1+angka2; return hasil; } void main() { int h; tambah1(2,3); h=tambah2(33,20); printf("Hasil 33 ditambah 20 sama dengan %d\n",h); getch(); } Variabel yang sudah diinisialisasi secara public, tidak perlu diinsialisasikan di dalam fungsi lagi. Sehingga inisial “int hasil” pada fungsi tambah1 dan tambah2 dihilangkan dan dipindahkan ke luar fungsi. Contoh 5: //penggunaan fungsi,variabel local dan variable public #include #include #include int angka1; void test1() { angka1=100; } void test2() { int angka1; angka1=200; } void main() { clrscr(); angka1=25;
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
printf("\nNilai variabel angka1 adalah %d",angka1); test1(); printf("\nNilai variabel angka1 "); printf("\nsetelah menjalankan fungsi test1 adalah %d",angka1); test2(); printf("\nNilai variabel angka1 "); printf("\nsetelah menjalankan fungsi test2 adalah %d",angka1); getch(); } Hasil:
Keterangan: terdapat 2 kali inisialisais variabel angka1 (int angka1), inisial variabel angka1 yang diletakkan di luar fungsi bersifat public, tetapi inisial variabel yang diletakkan pada fungsi test2 bersifat local. Karena variabel angka1 yang ada di fungsi test2 bersifat local, maka pengubahan nilai variabel angka1 yang ada fungsi tersebut tidak mengubah nilai yang ada pada variabel nilai1 yang bersifat public. Pada fungsi main, angka1 diberi nilai 25, sehingga saat ditampilkan, bernilai 25. setelah menjalankan fungsi test1, nilai angka1 berubah menjadi 100. hal ini dikarenakan pada fungsi test1 terdapat perintah mengubah angka1 (angka1=100), yang mana pada fungsi test1 tidak terdapat inisialisasi variabel angka1 yang menunjukkan bahwa angka1 yang diubah adalah angka1 yang bersifat public. Setelah menjalankan fungsi test2, angka1 tidak berubah. Padahal pada fungsi test2 terdapat pengubahan angka1 (angka1=200). Hal ini dikarenakan variabel angka1 yang diubah oleh test2 adalah variabel angka1 local.
Fungsi Recursi Fungsi recursi merupakan sebuah fungsi yang di dalamnya terdapat perintah untuk memanggil fungsi itu sendiri. Contoh 1: //fungsi recursi #include #include int validasi(int x) { if (x>=100) { scanf("%d",&x);
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
validasi(x); } else return x; } void main() { clrscr(); int y=125; printf("\nMasukkan angka kurang dari 100 :"); validasi(y); printf("\nTerima kasih"); getch(); } Hasil: Masukkan angka kurang dari 100: 252 254 25 Terima kasih Keterangan: Pada fungsi validasi di atas, terdapat perintah untuk memanggil diri sendiri, yaitu perintah validasi(x). perintah ini akan dijalankan jika nilai x yang sebelumnya kurang dari 100. jika nilai lebih dari 100, maka akan langsung dikembalikan dengan perintah return x. Contoh 2: //fungsi faktorial dengan menggunakan recursi #include #include int faktorial(int x) { int hasil; if ((x==0) || (x==1)) { return 1; } else return x*faktorial(x-1); } void main()
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
{ clrscr(); int y,z; printf("\nMasukkan angka : ");scanf("%d",&y); z=faktorial(y); printf("\n%d! adalah %d",y,z); getch(); } Hasil: Masukkan angka: 5 5! adalah 120 Contoh 3: //fungsi ini akan diulang sampai ditekan tombol ‘y’ #include #include char tunggusampaiditekantombol(char tb) { char t=getch(); if (tb==t) return '0'; else return tunggusampaiditekantombol(tb); } main() { cout<<"tekan huruf y ya.."; tunggusampaiditekantombol('y'); cout<<"\nterima kasih"; } Hasil: tekan huruf y ya.. terima kasih
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Praktikum 7 Latihan 7.a Ketiklah program berikut: #include #include float akar(float r) { float s; if (r>=0) { s=sqrt(r); return s; } else { printf("\nMaaf, Anda memasukkan data yang salah"); return 0; } } void main() { float a,b; clrscr(); printf("Masukkan bilangan >= 0 : "); scanf("%f",&a); b=akar(a); printf("\nAkar dari %8.2f adalah %8.2f",a,b); getch(); }
Simpan dan jalankan
Latihan 7.b CV TRUST merupakan sebuah lembaga yang bergerak dalam bidang IT. Untuk menghitung gaji karyawan menggunakan sistem perjam dan per golongan dengan ketentuan sebagai berikut: Golongan 1 2 3
Gaji Perjam Normal 50000 40000 30000
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Jika Lembur, maka gaji perjamnya adalah gaji perjam normal ditambah 5000. Buatlah programnya jika diinginkan: Input: nama, jumlah jam kerja normal,golongan, jumlah jam kerja lembur Fungsi yang digunakan: - fungsi hitunggaji dengan parameter:gol,jamnormal,jamlembur bertipe float output: total gaji yang diterima contoh kerangka program: #.include ….. float hitunggaji(int gol, int jamlembur, int jamlembur) { …. } void main() { …. } contoh hasil yang diinginkan:
Latihan 7.c Dari soal 7b, - tambahkan input untuk jumlah karyawan - gunakan perulangan untuk memasukkan data-data karyawan - buatlah fungsi tersendiri untuk memasukkan data karyawan, contoh pemanggilan: inputKaryawan(x) dimana x adalan nomor karyawan - buat pula fungsi tersendiri untuk menampilkan hasilnya contoh: tampilkanHasil; Contoh kerangka program: float hitunggaji(int gol, int jamlembur, int jamlembur) {
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
…. } void inputKaryawan(int x) { … … } void tampilkanHasil() { … } void main() { …. For (x=1;x<=jlhkaryawan;x++) inputKaryawan(x); tampilkanHasil(); }
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
8. STRUKTUR Struktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan. Struktur ini sering digunakan untum mencatat berkas data, seperti database mahasiswa, database penjualan dll. bentuk umum: struct nama_tipe_struktur { tipe field-1; tipe field-2; tipe field-n; } var_struk1, var_struk2,..., var_strukn; atau struct nama_tipe_struktur { tipe field-1; tipe field-2; tipe field-n; } nama_tipe_struk var_struk1, var_struk2,..., var_strukn; contoh : struct dataMahasiswa { char nama[30]; char kelas[10]; int nilai; }; dataMahasiswa mahasiswa1; atau struct dataMahasiswa { char nama[30]; int nilai; } mahasiswa1; untuk mengisi atau mengambil suatu nilai field yang ada di dalam struk digunakan var_struk1.nama_field
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
contoh: mahasiswa1.nilai=90; gets(mahasiswa1.nama); Struk bertingkat Dalam prakteknya, suatu struk bisa di definisikan ke dalam struk lain. contoh:
struct tanggal { int tanggal; int bulan; int tahun; }; struct dataMahasiswa { char nama[30]; int nilai; struct tanggal tgl_lahir; } mahasiwa1; jika diinginkan mengisi data bulan, maka dapat dilakukan dengan cara: mahasiswa1.tgl_lahir.bulan=9 sedangkan untuk mengambil data nama atau data nilai, puts(mahasiswa1.nama); n=mahasiswa1.nilai; Contoh: #include #include #include void main() { struct tanggal { int tanggal; int bulan; int tahun; }; struct dataMahasiswa {
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
char nama[30]; struct tanggal tgl_lahir; }; struct dataMahasiswa dataku; char tombol; int i, jumlah = 0; puts("DATA MAHASISWA : \n"); clrscr(); printf("Nama : "); gets(dataku.nama); printf("Tanggal Lahir (tgl-bulan-tahun) : "); scanf("%d-%d-%d", &dataku.tgl_lahir.tanggal, &dataku.tgl_lahir.bulan, &dataku.tgl_lahir.tahun); printf("\nData MAHASISWA\n"); printf("NAMA TANGGAL LAHIR"); printf("\n%-21s %d-%d-%d", dataku.nama, dataku.tgl_lahir.tanggal, dataku.tgl_lahir.bulan, dataku.tgl_lahir.tahun); getch(); } Hasil:
Array Struktur Penggabungan struktur dengan array sering kali dilakukan. Contoh : #include #include #include #include #define maks 20 void main() {
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
struct tanggal { int tanggal; int bulan; int tahun; }; struct dataMahasiswa { char nama[30]; struct tanggal tgl_lahir; }; struct dataMahasiswa dataku[maks]; char tombol; int i, jumlah = 0; puts("DATA MAHASISWA : \n"); clrscr(); do { printf("Nama : "); gets(dataku[jumlah].nama); printf("Tanggal Lahir (tgl-bulan-tahun) : "); scanf("%d-%d-%d", &dataku[jumlah].tgl_lahir.tanggal, &dataku[jumlah].tgl_lahir.bulan, &dataku[jumlah].tgl_lahir.tahun); fflush(stdin); //hapus sisa data dalam penampung keyboard jumlah ++; printf("\nMasih ada data lagi [y/t] ? "); tombol = toupper(getch()); while ( !(tombol == 'T' || tombol == 'Y')) tombol = toupper(getch()); printf("%c\n\n", tombol); } while (tombol== 'Y'); printf("\nData MAHASISWA\n"); printf("NAMA TANGGAL LAHIR"); for(i=0; i
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
dataku[i].tgl_lahir.bulan, dataku[i].tgl_lahir.tahun); getch(); } Hasil :
Praktikum 8 Latihan 8.a Buatlah sebuah program dengan menggunakan tipe struk untuk memasukkan data buku perpustakaan, jika diketahui field-field bukunya: judul,penerbit,pengarang,tahun terbit. Algoritma dan Pemrograman II dengan bahasa C++ Universitas Teknologi Yogyakarta Umar, S.Kom um412(c)III-2009
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta
Referensi Sutejo Budi S, Algoritma & Teknik Pemrograman, Andi Offset, 2004 Munir Rinaldi, Algoritma dan Pemrograman Dalam Bahasa Pascal dan C Edisi 3, Penerbit Informatika, 2005 http://stimkijakarta.ac.id
Algoritma dan Pemrograman I dengan bahasa C++ Universitas Teknologi Yogyakarta