Click here to load reader

Modul Algoritma Dan Pemrograman I Dengan Bahasa C++

  • View
    5.078

  • Download
    10

Embed Size (px)

DESCRIPTION

modul mata kuliah algoritma dan pemrograman dengan bahasa C++ yang lengkap

Text of Modul Algoritma Dan Pemrograman I Dengan Bahasa C++

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    MODUL PRAKTIKUMALGORITMA DAN PEMROGRAMAN I

    Bahasa : C++Software : Turbo C++ 4.5

    LABORATORIUM KOMPUTERPROGRAM TEKNIK INFORMATIKA

    UNIVERSITAS TEKNOLOGI YOGYAKARTA2009

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    1.PENDAHULUANIstilah-Istilah UmumSebelum mempelajari lebih lanjut, perlu diketahui beberapa istilah umum yang seringdigunakan dalam hubungannya dengan Algoritma dan pemrograman.

    Program, merupakan kata, ekspresi, pernyataan atau kombinasinya yang disusun dandirangkai menjadi satu kesatuan prosedur yang berisi urutan langkah untukmenyelesaikan masalah yang diimplementasikan dengan menggunakan bahasapemrograman, sehingga dapat dieksekusi oleh komputer. PemrogramanBahasa Pemrograman, merupakan prosedur/tata cara penulisan program. Padabahasa pemrograman, terdapat 2 hal penting, yaitu sintax dan sematik. Sintaxmerupakan aturan aturan gramatikal yang mengatur tata cara penulisan kata, ekpresidan pernyataan. Sematik merupakan anturan untuk menyatakan suatu arti.Pemrograman merupakan suatu proses mengimplementasikan urutan langkah untukmenyelesaikan suatu masalah dengan menggunakan bahasa pemrrograman.

    Beberapa Standar dalam penulisan program yang baik:a. Kebenaran logika dan penulisanb. Waktu minimum untuk penulisan programc. Kecepatan maksimum untuk mengeksekusi programd. Ekpresi penggunaan memori yang sesuaie. Kemudahan merawat dan mengembangkan programf. User friendlyg. Portabilias Program, bisa berjalan di berbagai sistem operasih. Pemrograman Modular/Pemecahan program dalam beberapa modul

    Selain standar penulisan program, terdapat pula Standar perawatan danpengembangan program, sebagai berikut:a. Dokumentasi yang baikb. Penlisan Intruksi

    - Penulisan progrm yang baik/teraturContoh 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 dankomentar

    - Pemberian tabulasi yang berbeda dalam penulisan programc. Penggunaan prosedur-prosedur standar yang sudah dikenal oleh umum.

    Algoritma merupakan suatu metode khusus yang tepat dan terdiri dari sereangkaianlangkah yang terstruktur dan ditulis secara sistematis, yang akan dikerjakan untukmenyelesaikan suatu masalah. Proses dari maslaah hingga menjadi suatu algoritmadisebut dengan tahap pemecahan masalah, sedangkan tahap dari algoritma hinggamenjadi sautu program yang siap diimplementasi disebut dengan tahap implementasi.

    Algoritma pemrograman yang baik memiliki beberapa ciri, yaitu:a. tepat, benar, sederhana, standar dan efektifb. logis, terstruktur, dan sistematisc. semua operasi terdefinisid. semua proses harus berakhir setelah sejumlah langkah dilakukane. 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 diisidengan Air Kopi. Bagimana cara menukar, sehingga hasil akhirnya Gelas A menjadiberisi 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 B2. Masukkan air Kopi dari Gelas B ke Gelas A

    masalah algoritma solusiTahap pemecahanmasalah

    Tahapimplementasi

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    Tetapi perlu diperhatikan, bahwa Algoritma di atas merupakan sebuah algoritma yangtidak logis. Bagaimana mungkin Air Teh dari gelas A dimasukkan ke gelas Bsementara gelas B masih ada isinya?Agar dapat melakukan pertukaran dengan benar, tentunya diperlukan satu buah gelaskosong, sebagai perantara. Anggap saja Gelas C., sehingga Algoritmanya adalah:1. Sediakan Gelas C2. Masukkan air Teh dari Gelas A ke Gelas C3. Masukkan air Kopi dari Gelas B ke Gelas A4. 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 danberkualitas. 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. Cpertama kali dimunculkan oleh Brian W. Kerninghan dan Dennis M. Rithche padatahun (sekitar) 1972. sekitar 1 dekade setelahnya muncullah C++ oleh BjarneStroustrup dari Laboratorium Bell, AT&T, tahun 1983. Nama C++ diberikan olehRick Mascitti . Salah satu Keistimewaan dari C++ adalah dukungannya pada programberorientasi obyek (Object Oriented Programming/OOP)Interpreter adalah suatu jenis penterjemah yang menterjemahkan perbaris instruksi untuksetiap saat. Keuntungannya adalah penyusunan program relatif lebih cepat dan bisa langsungdiuji sekalipun masih ada beberapa kesalahan. Kelemahannya adalah kecepatannya menjadilambat sebab sebelum suatu instruksi dijalankan selalu diterjemahkan terlebih dahulu.Disamping itu saat memori dieksekusi, interpreter juga harus ada dalam memori selain itusource program tidak dapat dirahasiakan karena dapat dilihat oleh orang lain.

    Kompiler menterjemahkan seluruh instruksi dalam program sekaligus. Prosespengkompilasian cukup dilakukan sekali saja dan hasil terjemahan bisa dijalankan secaralangsung tanpa tergantung lagi oleh program sumber maupun kompilernya. Keuntungannyaadalah proses eksekusi berjalan cepat, program sumber dapat dirahasiakan sebab yangdieksekusi adalah program dalam bahasa mesin. Kelemahannya adalah proses pembuatan danpengujian relatif lebih lama sebab ada waktu untuk kompilasi dan adapula waktu untukproses linking

    Jenis-jenis File yang Dimiliki Turbo CBeberapa jenis file yang penting :

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    File HEADERMerupakan file-file teks yang berisi fungsi-fungsi khusus yang digabungkan denganprogram dengan perintah include. File-file header biasanya berektensi .h.Contoh : stdio.h dan conio.h

    File LIBRARYMerupakan file-file yang di dalamnya terdapat fungsi-fungsi dasar dari Turbo C yangdigabungkan dengan program utama dengan perintah link. File-file library ini bertipe.lib

    File RUN TIMEMerupakan file yang akan digabungkan dengan program pada saat proses LINK. File RunTime disesuaikan dengan model memory-nya

    MATH LibraryFile ini digunakan untuk hal-hal yang berhubungan dengan operasi bilangan. File yangkegunaannya hampir sama dengan file ini adalah emu.lib

    File Editor, File Object dan File EksekusiFile editor merupakan program yang disusun dalam Turbo C. File ini adalah file teks danmempunyai ekstensi .cFile Object merupakan file hasil proses COMPILE dari File Editor. nama File Objectsama dengan nama file editor dengan ekstensi .objFile Eksekusi, merupakan file hasil proses LINK. File ini bernama sama dengan file-filesebelumnya dan dapat dijalankan dari prompt DOS. Ekstensi file eksekusi adalah .exe

    Kebanyakan versi C yang beredar adalah kompiler. Proses Kompilasi Linking dari programC dapat digambarkan sebagai berikut :

    Editor Editor

    File Include(File Judul)

    File ProgramSumber

    Kompiler

    File Pustaka File Obyek File Obyek Lain

    Linker

    File Executable

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    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 jugamenyediakanlingkungan program terpadu yang disebut IDE (Integrated DevelopmentEnvironment) 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 directivevoid main(){//isi program}

    Keterangan:

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    1. Preprocessor directive yang tersedia paa bahasa C++ akan dijalankan terlebihdahulu sebelum program utama c dijalankan. bentuk umum penulisanpreprocessor directive:

    2. #include

    beberapa file preprocessor yang sering digunakan di antaranya adalah:

    iostream.h : diperlukan pada program yang melibatkan obyek coutconio.h : diperlukan bila melibatkan perintah clrscr()/pembersihan layarmath.h : diperlukan pada program yang menggunakan operasi sqrt()/akar

    dll.graphic.h : diperlukan pada saat akan menggunakan mode grafik. dll

    3. fungsi main() merupakan fungsi yang akan dijalankan setelah file-filepreprocessor 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 manakesalahan 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 kelayar.- Tanda \ pada string yang dilewatkan sebagai argumen printf() mempunyaimakna khusus. Tanda ini bisa digunakan untuk menyatakan karakter khususseperti :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 melihathasil, yang merupakan singkatan dari get character. komputer akanmelanjutkan 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 formatdibahas 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 dijalankan 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 &OPERATORVariabel & Constanta

    Variabel adalah tempat penampung data. Variabel berada di memory komputer. Isi variabeldapat berubah-ubah. Biasanya setiap variabel mempunyai tipe. Kita dapat memilih sendirinama 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 bolehmenggunakan karakter khusus ( : ; , # @ $ & dan titik )

    3. Nama variabel tidak boleh berisi spasi4. Tidak boleh memakai reserved words (kata-kata yang sudah mempunyai arti di dalam

    turbo C), secara sendiri. Variabel boleh memakai reserved word jika digabungkan dengankata lain.Contoh variabel yang salah : main, printf, scanf, dan sebagainyaContoh variabel yang benar : program_main, printf_1

    5. Turbo C membedakan huruf besar dan kecil. Variabel gaji, Gaji dan GAJI adalah tigavariabel yang berbeda.

    6. Panjang variabel boleh berapa saja, tetapi hanya 32 karakter pertama yang dikenal.

    Tipe Data DasarData berdasarkan jenisnya dapat dibagi menjadi 5 kelompok yang dinamakan sebagai tipedata dasar, yaitu : Bilangan bulat (integer) Bilangan real presisi-tunggal Bilangan real presisi-ganda Karakter Tak-bertipe

    TIPE TOTAL BIT KAWASAN KETERANGANchar 8 -128 .. 127 Karakterint 16 -32768 .. 32767 Bilangan Integer

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    TIPE TOTAL BIT KAWASAN KETERANGANfloat 32 3.4E-38 .. 3.4E+38 Bilangan Real presisi-tunggaldouble 64 1.7E-308 .. 1.7E+308 Bilangan Real presisi-gandavoid 0 Tidak bernilai Tak-bertipe

    Variabel digunakan dalam program untuk menyimpan suatu nilai dan nilai yang ada padanyadapat diubah-ubah selama eksekusi program berlangsung. Variabel yang digunakan dalamprogram haruslah dideklarasikan terlebih untuk dengan tujuan memesan memori danmenentukan 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 ModifierAda beberapa pemodifikasi tipe (type modifier) yang dapat dikenakan di awal tipe data dasar(kecuali void). Pemodifikasi tipe tersebut adalah :Signed : LongUnsigned : Short

    Tabel kemungkinan pemakaian pemodifikasi tipe pada tipe dasar :NAMA TIPE TOTAL BIT KAWASANunsigned char 8 0 .. 255signed char 8 -128 .. 127unsigned int 16 0 .. 63535signed int 16 -32768 .. 32767short int 16 -32768 .. 32767unsigned short int 16 0 .. 65535signed short int 16 -32768 .. 32767long int 32 -2147483648 .. 2147483647signed long int 32 -2147483648 .. 2147483647unsigned long int 32 0 .. 4294967295long 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 FormatPenentu format untuk data tipe lain dapat dilihat pada tabel berikut :Tipe Data Penentu

    FormatInteger %dFloating Point -Bentuk Desimal %fBentuk Berpangkat %eDouble Precision %lfCharacter %cString %sUnsigned Integer %uLong Integer %ldLong Unsigned Integer %luUnsigned Hexadec. Int. %xUnsigned Octal Int. %o

    Menggunakan Type CastType 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 dideklarasikanbertipe int, bila dikehendaki agar ungkapan x/2 menghasilkan nilai pecahan (real) makaungkapan 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 KonstantaBerbeda dengan variabel, yang mana isi bisa berubah/diubah sesuai keinginan, konstantamerupakan tempat penyimpanan suatu nilai dalam memory yang mana nilai tersebut tidakakan diubah-ubah/bersifat konstant/tetap. Pendefinisiannya dilakukan dengan menggunakanpengarah praprocessor #define atau dengan const.

    Contoh:const pi=3.142#define pi=3.142

    OperatorOperator merupakan simbol atau karakter yang biasa dilibatkan dalam program untukmelakukan 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 AritmatikaBINARY*

    /%+-

    PerkalianPembagianSisa pembagianPenjumlahanPengurangan atau negasi

    UNARY+-

    Tanda minusTanda plus

    2. Operator Penurunan dan Penaikan

    ++--

    Operator penaikanOperator penurunan

    Contoh :x = x + 1 ; dapat ditulis ++x; atau x++ ;y = y 1 ; dapat ditulis - -y; atau y - - ;

    3. Operator Hubungan>=

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    == assignmen/pengisian)

    4. Operator bitwise

    &|!

    AndOrnot

    Prioritas Operator MatematikaSeperti halnya operasi matematika, dalam c, mempunyai prioritas operasi mana yangakan dikerjakan terlebih dahulu. Adapun urutan prioritas dapat dilihat di dalam tabeldi bawah ini:PrioritasTertinggi

    PrioritasTerendah

    ++ --- (unary minus)* / %+ -

    Contoh:x=4+2-5; //hasil: x=1x=4-2+5; //hasil: x=7x=4-4/2; //hasil: x=2

    Keyword dan IdentifierDalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaksindividual yang disebut dengan token., yang di dalamnya memuat variabel, konstanta,keyword, operator dan tanda baca. keyword merupakan kata kunci yang sudahdigunakan dalam suatu program. keyword ini tidak boleh digunakan untukmemberikan 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

    {,} merupakan token tanda bacaluas merupakan token variabel

    float 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 (denganmemilih 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 untukmencari luas dari persegi panjang jika tampilan yang di inginkan seperti berikut:

    Latihan 2c. simpan hasil yang sudah dibuat sebelumnya. perbaiki program yang yangsudah dibuat, sehinggap program dapat digunakan untuk mencari garis miring dankeliling 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 antaranyaadalah :

    - 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 jenisdata 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 penentuformat seperti %d, %f. Penentu format dipakai untuk memberi tahu kompiler mengenaijenis data yang akan ditampilkan

    Argumen adalah data yang akan ditampilkan ke layar. Argumen ini dapatr berupavariabel, konstanta atau ungkapan

    PUTS()Fungsi ini digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini, stringyang ditampilkan secara otomatis akan diakhiri dengan \n (pindah baris). Dibandingkandengan printf(), perintah ini mempunyai kode mesin yang lebih pendek.

    PUTCHAR()Digunakan khusus untuk menampilkan sebuah karakter ke layar. Penampilan karakter tidakdiakhiri 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. Bentukscanf() sesungguhnya menyerupai fungsi printf() yang melibatkan penentu format. Bentukpenulisan : 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 (-), titikkoma (,) atau spasi ( )

    GETCH() dan GETCHE()Dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perludiakhiri dengan enter. Fungsi getch() merupakan singkatan dari get character artinya bacakarakter tetapi isian data yang dimasukkan tidak akan ditampilkan di layar. Fungsi getche()sebenarnya adalah singkatan dari get character and echo, artinya baca karakter lalutampilkan di layarContoh :

    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 MatematikaInclude : #includeBeberapa fungsi matematika yang sering digunakan adalah :Fungsi Keterangan Contoh Hasilsqrt Menghitung akar positif dari sebuah

    bilangan bulatsqrt(x);

    pow Menghitung xy z = pow(10,2);tansincosacosasinatan

    Menghitung nilai tangent dari sebuah sudutMenghitung nilai sinus dari sebuah sudutMenghitung nilai cos dari sebuah sudutMenghitung nilai arctan dari sebuah sudutMenghitung nilai arcsin dari sebuah sudutMenghitung nilai arctan dari sebuah sudut

    ceill membulatkan ke atasfloor membuatkan ke bawahexp mencari nilai exponensial exfmod mencari sisa pembagian fmod(9,2) 1

    Fungsi StringString merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untukkeperluan menampung dan memanipulasi data teksCatatan:- 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 Keterangan Contoh Hasilstrlen Menghitung panjang string strlen(Turbo C); 3strlwr mengubah string menjadi huruf

    kecilstrwr(Turbo C); turbo c

    strupr mengubah string menjadi hurufbesar

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    strcpy mongkopi string dari variabel satuke variabel lain

    strcpy(a,b);

    strcat Menggabungkan beberapa string srcat(a,b); abatof mengkonversi data dari

    alphanumeric menjadi numericatof(100 orang);atof(1e3);

    100.01000

    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.bJika 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 denganjarak 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.cBuatlah 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 blogkberupa kurung kurawal ({ })

    Contoh :Jika pembelian lebih besar dari 500000, maka disktonnya 5% dari pembelian danmasih ditambah voucher senilai 50000

    if (beli >= 500000){

    diskon=0.05*beli;bonus=voucher belanja senilai 50000;

    }

    Pernyataan If-Else dan KondisiBentuk umum :

    if (syarat1)pernyataan 1

    elsepernyataan 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 //tanpa tanda titik komaelseketerangan=uji ulang

    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 kurungkurawal ({ })

    Pernyataan If - Else If- ElseBentuk umum :

    if (syarat1)pernyataan 1

    else if (syarat2)pernyataan 2

    else if (syarat3)pernyataan 3

    elsepernyataan 4;

    Contoh:Jika nilai>=85, kategori AJika nilai>=75, kategori Bjika nilai>=60, kategori Cjika nilai=85)kategori[0]=A

    else if (nilai>=75)kategori[0]=B

    else if (nilai>=60)kategori[0]=C

    elsekategori[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 menyatakanbebrapa syatat dapat juga dilakukan dengan perintah switch.Di dalam pernyataan switch, sebuah variabel secara berturut-turut diuji oleh daftar konstantabilangan bulat atau konstanta karakter. Jika sesuai dengan sebuah konstanta, pernyataan yangmengikuti konstanta akan dikerjakan. jika tidak terdapat konstanta yang sesuai, pernyataandefault akan dikerjakan

    Bentuk Umum :

    switch (variabel){

    case konstanta1:{pernyataan;break;}

    case konstanta2:{pernyataan;break;}

    default{pernyataan;}

    }

    contoh:jika kategori=A, maka keterangan =Istimewajika kategori=B, maka keterangan =Baikjika 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 (>,=,= 85 tidak bisa dilakukan dengan menggunakanpernyataan 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], keterangan[30];char kategori;int nilai;

    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 dapatbintang...!");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 jikadiinginkan

    Input :Masukkan sebuah bilangan bulat : 6

    Output :Nilai 6 habis dibagi 2Sehingga termasuk sebagai bilangan GENAP

    Latihan 4.c:Buatlah program dengan tampilan seperti berikut:Output 1 :

    =============================

    LATIHAN 4.CMENCARI LUAS

    =============================

    1. Luas Persegi Panjang2. Luas Segi tiga3. Luas Lingkaran=============================

    Pilihan Anda : 1=============================

    Output 2: jika yang dipilih 1 :Terima kasih, menu yang anda pilih nomor 1Masukkan Panjang : 20Masukkan Lebar : 10Luasnya 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

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    contoh :int x,y;for (x=0,y=0; x+y

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    Contoh:int t,x;x=100;for (t=0 ; t

  • 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 memasukkanpilihan. 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

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    Simpan dan jalankan

    Latihan 5bUbahlah 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

  • 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 yangbaru adalah nilai jumlah sebelumnya ditambah dengan i, sehingga:

    jumlah1=jumlah1+iSaat i=1, maka jumlah1=0+1= 1, dimana jumlah1 sebelumya=0 dan i=1;Saat i=2, maka jumlah1=1+2= 3, dimana jumlah1 sebelumya=1 dan i=2;Saat i=3, maka jumlah1=3+3= 6, dimana jumlah1 sebelumya=3 dan i=3;Saat i=4, maka jumlah1=6+4= 10, dimana jumlah1 sebelumya=6 dan i=4;dst

    Latihan 5d.Buatlah program untuk menghitung suatu faktorialcontoh:

    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

    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:

    0 1 2 3 4 5 4 3 2 1 0 1 2 3 4 5 4 3 2 1 0

  • 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 92 83 74 65 5

    Latihan 5i.Jika sudah berhasil, simpan dengan nama lain.

    Buatlah sebuah program jika diinginkan menampilkan angka:

    112123123412345

    Latihan 5j.Jika sudah berhasil, simpan dengan nama lain.

    Buatlah sebuah program jika diinginkan menampilkan angka:

    1121123211234321123454321

    Latihan 5k.Jika sudah berhasil, simpan dengan nama lain.

    Buatlah sebuah program yang dapat digunakan untuk menampilkan bilangan primadari 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 bilangantersebut (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. Padabahasa C, array mempunyai lokasi yang bersebelahan. Alamat terkecil menunjuk ke elemenpertama dan alamat terbesar menunjuk ke alamat terakhir. Sebuah elemen pada array diaksesmelalui indeksnya.

    Array 1 dimensiBentuk umum:

    tipe_array nama_array[ukuran]; //array 1 dimensi

    cara pemberian nilai/assignmennama_array[index_array]=constant;nama_array[index_array]=var;

    Keterangan:

    tipe_array : menyatakan tipe dasar arrayukuran : menyatakan banyaknya elemen pada arrayindex_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 yangdigunakan adalah :

    byte total = ukuran dari tipe dasar * banyaknya elemen

    dalam contoh diatas, jumlah memori yang digunakan sebesar 2*5 byte =10 byte di mana 2byte merupakan jumlah memori yang digunakan untuk menyimpan 1 buah variabel bertipeinteger. meskipun jumlah elemen yang dideklarasikan 5, tetapi dalam prakteknya, pemrogrambisa 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]; //array 2 dimensitipe_array nama_array[ukuran1][ukuran2][ukuran3]; //array 3 dimensidst.

    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 sebesarbyte total = ukuran dari tipe dasar * banyaknya elemen1 * banyaknya elemen2

    sehinggamatrix1[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

  • 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 olehtanda koma. Konstanta pertama akan mengisi elemen pertama, konstanta kedua untuk elemenkedua dan seterusnya.

    contoh:

    int nilai[5] = {90,85,75,99,100};

    hal ini menunjukkan bahwanilai[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

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    Operator PointerAda 2 operator pointer :1. Operator &

    Bersifat unary (hanya memerlukan satu operan). Operator ini menghasilkan alamat danoperannya. Contoh : x = &a, jika kita mengacu pada gambar di atas, maka isi variabel xadalah 1004.

    2. Operator *Operator * dan operator & bersifat saling komplemen. Operator * juga bersifat unary danmenghasilkan 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 setiapsaat 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 nilai8808+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 akanlebih 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#includevoid 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;i

  • 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 darisuatu fungsi ke fungsi yang lain. Penerapan pointer yang paling umum yaitu untukmenciptakan 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 denganalamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatuvariabel, operator & (operator alamat, yang bersifat unary) bisa digunakan dengancara menempatkan operator di depan nama variabel.

    Jika suatu variabel sudah ditunjuk pointer, variabel tersebut dapat diakses melaluivariabel itu sendiri (dikatakan sebagai pengaksesan langsung) ataupun melaluipointer (dikatakan sebagai pengaksesan tidak langsung). Pengaksesan tak langsungdilakukan dengan menggunakan operator indirection berupa simbol * (bersifatunary).

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    Praktikum 6:Latihan6.aKetiklah 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

  • 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

  • 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.cBuatlah program untuk menghitung perkalian matrix di bawah ini:

    Latihan 6.dBuatlah program untuk mengurutkan data dengan metode selection sort.

    8 2

    7 4

    1

    2

    12

    15X =

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    7.FUNGSIFungsi 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 untukmembersihkan layar. fungsi clrscr ini terdapat dalam file header conio.h. sehingga untukmemanggil perintah clrscr() sebelumnya harus mengikutkan file conio.h dengan perintah#include . karena fungsi untuk membersihkan layar sudah dibuatkan oleh C dalamfile conio.h, maka pemrogram tidak perlu susah-susah membuat sebuah fungsi sendiri. fungsilain adalah printf(), puts(), gets() dan lain-lain.

    adapun fungsi-fungsi yang tidak dibuatkan oleh C, maka pemrogram bisa membuat sendirifungsi-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, cukupdiberikan perintar return; dan tipe_fungsi diisi dengan void.

    - perintah return berfungsi untuk mengembalikan nilai, keluar dari fungsi dan kembali keprogram yang memanggil.

    - deklarasi parameter merupakan parameter-parameter yang dilewatkan. jika tidakmemerlukan 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

  • 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 5Hasil 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 punharus pertipe integer, yaitu: int tambah2(...)

    - untuk memanggil fungsi tambah1, cukup dengan perintah tambah1(2,3) di mana angka 2bertipe integer dan angka 3 juga bertipe integer. angka 2 dan tidak bisa diganti-gantisesuai dengan keinginan.

    - untuk memanggil fungsi tambah2 menggunakan h=tambah2(33,20); yang mana variabelh 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 fungsitambah1 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 yanglain. Variabel ini disebut dengan variabel local. Adapun variabel jenis lain adalah variabelpublic, dimana semua fungsi mengenali variabel tersebut. Variabel public ini biasanyadiinisialisasi pada sebelum penulisan fungsi-fungsi. Ruang lingkup variabel ini disebutdengan 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, makaprogram 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 fungsilagi. Sehingga inisial int hasil pada fungsi tambah1 dan tambah2 dihilangkan dandipindahkan 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 padafungsi test2 bersifat local. Karena variabel angka1 yang ada di fungsi test2 bersifatlocal, maka pengubahan nilai variabel angka1 yang ada fungsi tersebut tidak mengubahnilai yang ada pada variabel nilai1 yang bersifat public. Pada fungsi main, angka1diberi nilai 25, sehingga saat ditampilkan, bernilai 25. setelah menjalankan fungsi test1,nilai angka1 berubah menjadi 100. hal ini dikarenakan pada fungsi test1 terdapatperintah mengubah angka1 (angka1=100), yang mana pada fungsi test1 tidak terdapatinisialisasi variabel angka1 yang menunjukkan bahwa angka1 yang diubah adalahangka1 yang bersifat public. Setelah menjalankan fungsi test2, angka1 tidak berubah.Padahal pada fungsi test2 terdapat pengubahan angka1 (angka1=200). Hal inidikarenakan variabel angka1 yang diubah oleh test2 adalah variabel angka1 local.

    Fungsi RecursiFungsi recursi merupakan sebuah fungsi yang di dalamnya terdapat perintah untukmemanggil 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);}elsereturn 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: 25225425

    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 kurangdari 100. jika nilai lebih dari 100, maka akan langsung dikembalikan dengan perintahreturn x.

    Contoh 2:

    //fungsi faktorial dengan menggunakan recursi#include #include

    int faktorial(int x){int hasil;if ((x==0) || (x==1)){

    return 1;}elsereturn 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: 55! 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

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    Praktikum 7Latihan 7.aKetiklah 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 jalankanLatihan 7.bCV TRUST merupakan sebuah lembaga yang bergerak dalam bidang IT. Untuk menghitunggaji karyawan menggunakan sistem perjam dan per golongan dengan ketentuan sebagaiberikut:

    Golongan Gaji Perjam Normal1 500002 400003 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 lemburFungsi yang digunakan:

    - fungsi hitunggaji dengan parameter:gol,jamnormal,jamlembur bertipe floatoutput: total gaji yang diterima

    contoh kerangka program:

    #.include ..

    float hitunggaji(int gol, int jamlembur, int jamlembur){

    .}

    void main(){

    .}

    contoh hasil yang diinginkan:

    Latihan 7.cDari 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

  • Algoritma dan Pemrograman I dengan bahasa C++Universitas Teknologi Yogyakarta

    8.STRUKTURStruktur adalah koleksi dari variabel yang dinyatakan dengan sebuah nama dengan sifatsetiap variabel dapat memiliki tipe yang berlainan. Struktur biasa dipakai untukmengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan. Struktur inisering digunakan untum mencatat berkas data, seperti database mahasiswa, databasepenjualan 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;

    ataustruct 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 bertingkatDalam 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 StrukturPenggabungan 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 penampungkeyboardjumlah ++;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 8Latihan 8.aBuatlah sebuah program dengan menggunakan tipe struk untuk memasukkan databuku perpustakaan, jika diketahui field-field bukunya: judul,penerbit,pengarang,tahunterbit.

    Algoritma dan Pemrograman II dengan bahasa C++Universitas Teknologi Yogyakarta

    Umar, S.Komum412(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