Anda di halaman 1dari 85

Modul Praktikum Algoritma dan Pemrograman

MODUL 1

1. PERTEMUAN :1
2. JUDUL : ALGORITMA
3. TUJUAN :
a. Mampu memahami suatu permasalahan
b. Menyusun langkah-langkah penyelesaian masalah
c. Membuat algoritma deskriptif, flowchart dan pseudo code

4. DASAR TEORI

Program Komputer merupakan suatu cara untuk membantu manusia dalam menyelesaikan
pekerjaan. Sebelum Program dibuat, maka perlu disusun suatu algoritma pemrograman
agar program yang dibuat menjadi terstruktur dan terdokumentasi dengan baik.

Algoritma adalah urutan langkah-langkah penyelesaian suatu masalah atau tugas yang
tersusun secara sistematis dan logis.

Masalah Algoritma Pemrograman

Gambar 1 : Langkah-Langkah Penyelesaian Masalah


Beberapa langkah dalam proses pembuatan suatu program atau software :
1. Mendefinisikan masalah dan menganalisanya
Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara lain
tujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas apa
saja yang akan disediakan oleh program. Kemudian menentukan metode atau
algoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut dan
terakhir menentukan bahasa program yang digunakan untuk pembuatan program.

Prodi Manajemen Informatika-Polmed 1


Modul Praktikum Logika dan Algoritma Pemrograman

2. Merealisasikan dengan langkah-langkah berikut :

Gambar 2 : Diagram Alir Penyelesaian Masalah

ATURAN PENULISAN TEKS ALGORITMA

Ada tiga cara penulisan Algoritma yaitu :


a. Uraian deskriftif
b. Menggunakan bagan-bagan/symbol-simbol tertentu seperti Diagram Alir
(Flowchart)
c. Menggunakan kata-kata atau kalimat yang mirip dengan bahasa permograman yaitu
Pseudo Code

4.1 ALGORITMA DALAM BENTUK DESKRIPTIF

Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan
ganjil atau bilangan genap.
Algoritmanya :
a. Masukkan sebuah bilangan sembarang
b. Bagi bilangan tersebut dengan bilangan 2

Prodi Manajemen Informatika-Polmed 2


Modul Praktikum Logika dan Algoritma Pemrograman

c. Hitung sisa hasil bagi pada langkah 2.


d. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi
bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.

4.2 ALGORITMA DALAM BENTUK FLOWCHART

Flow-chart atau bagan alir adalah suatu skema/gambar yang memperlihatkan urutan
instruksi/kegiatan dan hubungan antar proses beserta instruksinya.
Gambaran ini dinyatakan dengan symbol. Dengan demikian setiap symbol
menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis
penghubung. Simbol-simbol Flowchart :

Gambar 3 : Simbol Flowchart

Prodi Manajemen Informatika-Polmed 3


Modul Praktikum Logika dan Algoritma Pemrograman

Contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjil

atau bilangan genap, flowchartnya adalah sebagai berikut :

4.3 ALGORITMA DALAM BENTUK PSEUDO CODE

Pseudocode banyak digunakan untuk mewakili urutan-urutan proses dari program. Pseudo
berarti imitasi dan code dihubungkan dengan instruksi yang ditulis dalam bahasa
komputer.

Contoh suatu Pseudocode :


Start
Nilai a=3 ; b=5 ; c=0
Hitung c= a * b
Tampilkan nilai c
End

5. PERCOBAAN

Prodi Manajemen Informatika-Polmed 4


Modul Praktikum Logika dan Algoritma Pemrograman

Buatlah algoritma dalam bentuk Deskriptif, Flowchart dan Pseudo Code untuk semua
maslah dibawah ini :

1. Menjumlahkan 2 buah bilangan dan mencetak hasilnya


2. Mengalikan 2 buah bilangan dan mencetak hasilnya
3. Menukarkan isi dua buah variabel dan mencetak hasilnya
4. Memberikan opsi menjumlahkan dan mengalikan 2 buah bilangan dan
menampilkan hasilnya
5. Menghitung Luas Lingkaran dan hasilnya
6. Mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar
salah satunya, dan tampilkan hasilnya
7. Menghitung sigma (akumulasi) dari bilangan 1 sampai dengan n, dan menampilkan
hasilnya

6. LATIHAN
Kumpulkan hasil percobaan di atas pada pertemuan ke- 3

Prodi Manajemen Informatika-Polmed 5


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 2

1. PERTEMUAN : 2
2. JUDUL : STRUKTUR DASAR PEMROGRAMAN C
3. TUJUAN :
a. Memahami IDE (Integrated Development Environment) bahasa C
b. Dapat menggunakan sintaks dan fungsi-fungsi dalam bahasa C
c. Mampu menterjemahkan algoritma untuk memecahkan suatu masalah kedalam
bahasa C

4. DASAR TEORI
Bahasa Pemrograman C merupakan bahasa yang biasa dipakai untuk pemrogram sistem,
antara lain:
 Assembler
 Interpreter
 Program paket
 Sistem operasi
 Editor
 Kompiler
 Program bantu (utility)
Selain digunakan untuk pemrograman sistem juga digunakan untuk membuat berbagai
program aplikasi, seperti aplikasi bisnis, matematis, maupun games (permainan), serta
untuk menyusun program kecerdasan buatan (artificial intelligence).
Bahasa C merupakan lingkungan pemrograman terpadu yang disebut IDE (Integrated
Development Environment) yang bisa dipakai untuk :
 Menulis program
 Mengkompilasi program (compiling)
 Melakukan pencarian kesalahan (debugging)
 Mengkaitkan berbagai objek dan pustaka (lingking)
 Menjalankan program (Running)

Prodi Manajemen Informatika-Polmed 6


Modul Praktikum Logika dan Algoritma Pemrograman

4.1 Memulai Turbo C


Untuk memulai Turbo C dapat dilakukan seperti berikut :
 Klik menu Start
 Klik Run
 Jendela Run akan tampil di layar

Gambar 4 : Jendela Run

Ketik folder dan file TC.exe berada, atau klik Browse untuk mencari posisi file TC
Atau Klik 2 kali icon TC pada desktop

4.2 Struktur Program C


Pemrograman C disusun oleh sejumlah blok fungsi. Sebuah program minimal terdiri dari
sebuah fungsi. Setiap fungsi terdiri dari satu atau beberapa pernyataan.
Bentuk Umum Struktur Program C :
Pengarah praprocessor
Nama-fungsi (daftar parameter)
{
Tubuh fungsi
}

4.3 Pengenalan Fungsi


Fungsi merupakan statemen yang membangun sebuah program C. Fungsi dapat memiliki
bagian pernyataan fungsi yang diawali dengan kurung kurawal buka ({) dan diakhiri
dengan kurung kurawal tutup (}) dan ada juga fungsi yang tidak memiliki bagian
pernyataan seperti fungsi main ().

Prodi Manajemen Informatika-Polmed 7


Modul Praktikum Logika dan Algoritma Pemrograman

Contoh fungsi :
 Main()
 Printf()
 Scanf()

4.4 Praprocessor
Praprocessor dipakai untuk membaca file yang dinamakan dengan file-judul (header file),
yaitu file yang berisi deklarasi fungsi dan defenisi konstanta. File ini mempunyai ciri yaitu
namanya diakhiri dengan extension .h. Contoh #include<stdio.h> memberikan pernyataan
pada kompiler agar membaca file bernama stdio.h pada saat pelaksanaan kompilasi.

4.5 Penulisan Program


C merupakan bahasa pemrograman yang memberikan kebebasan dalam penulisan program
dengan catatan penulisannya harus konsisten (disarankan penulisan program menggunakan
huruf kecil) dan mudah dipahami, kalau terjadikesalahan mudah ditelusuri.
Contoh beberapa bentuk penulisan program :
#include<stdio.h>
main()
{
printf(“Selamat Belajar\n”);
printf(“Turbo C\n”);
}
atau :
#include<stdio.h>
main(){ printf(“Selamat Belajar\n”); printf(“Turbo C\n”); }
4.6 Komentar Program
Komentar program diperlukan untuk memberikan keterangan dalam program, agar mudah
dipahami. Komentar program diwali dengan tanda /* dan diakhiri dengan tanda */
Contoh :
Awal komentar

/* Program contoh1
Dibuat oleh : Team */ Akhir komentar

Prodi Manajemen Informatika-Polmed 8


Modul Praktikum Logika dan Algoritma Pemrograman

#include<stdio.h>
main()
{
printf(“Selamat Belajar\n”);
printf(“Turbo C\n”);
}

5. PERCOBAAN
a. Terjemahkan Algoritma yang telah dibuat dalam tugas modul 1 menggunakan bahasa
pemrograman C .
b. Program pertukaran dua buah variabel
#include<stdio.h>
main()
{
int bejanaA,bejanaB,bejanaC;
clrscr();
bejanaA=10; bejanaB=15;
printf("Isi Bejana sebelum ditukarkan\n" );
printf("Isi BejanaA = %d\n",bejanaA );
printf("Isi BejanaB = %d\n",bejanaB );
bejanaC=bejanaA;
bejanaA=0;
bejanaA=bejanaB;
bejanaB=0;
bejanaB=bejanaC;
/*clrscr();*/
printf("Isi Bejana setelah ditukarkan\n" );
printf("Isi BejanaA = %d\n",bejanaA );
printf("Isi BejanaB = %d\n",bejanaB );
getch();
}

Prodi Manajemen Informatika-Polmed 9


Modul Praktikum Logika dan Algoritma Pemrograman

6. LATIHAN
1. Kerjakan soal-soal di bawah ini, dan sertakan jawaban Anda pada Laporan Resmi

a. Berapakah nilai jawaban yang ditampilkan oleh program di bawah ini :

#include <stdio.h>
main()
{
int value1, value2, sum;
value1 = 35;
value2 = 18;
sum = value1 + value2;
printf("The sum of %d and %d is %d\n", value1,value2,sum);
getch();
}

b. Apakah keluaran dari potongan program di bawah ini


#include <stdio.h>
main ()
{
Int jumlah;
/* PERHITUNGAN HASIL
jumlah = 25 + 37 - 19;
/* TAMPILKAN HASIL
printf("Berapa hasil perhitungan 25 + 37 - 19 ?\n);
printf("Jawabannya adalah %d\n" jumlah);
getch();
}
c. Program di bawah ini tidak berhasil di-compile karena masih terdapat beberapa
kesalahan. Temukan paling sedikit 6 buah kesalahannya. Selanjutnya tampilkan
keluaran, setelah program ini berhasil dijalankan.
#include <stdio.h>
main()
{
int jawab, hasil;
jawab = 100;
hasil = jawab - 10;
printf("Jawabannya adalah %d\n", hasil + 6);
getch();
}

d. Buatlah program yang menerima masukan dua buah bilangan. Tampilkan keluaran
berupa jumlah, rata-rata dan kuadrat dari kedua bilangan yang dimasukkan.

Prodi Manajemen Informatika-Polmed 10


Modul Praktikum Logika dan Algoritma Pemrograman

e. Program di bawah ini seharusnya menampilkan keluaran satu baris sbb :

c * c = 25,000000
Namun, belum berhasil karena masih ada beberapa kesalahan. Temukan minimal
3 kesalahan dalam program tersebut.
#include <Studio.h>
main ()
{
float a, b, c;
a = 3;
b = 4.0;
c=a*a+b*b
printf("c * c = %d", c);
getch();
}

Prodi Manajemen Informatika-Polmed 11


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 3

1. PERTEMUAN : 3 dan 4
2. JUDUL : ELEMEN-ELEMEN BAHASA PEMROGRAMAN C
3. TUJUAN :
a. Menjelaskan dan menggunkan tipe data dasar (jenis dan jangkauannya)
b. Menjelaskan dan menggunakan Variabel
c. Menjelaskan dan menggunakan konstanta
d. Menjelaskan dan menggunakan berbagai jenis operator

4. DASAR TEORI

4.1 Tipe Data


Data menggambarkan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau
variabel. Dimana konstanta menyatakan suatu nilai yang tetap dan variabel menyatakan
nilai yang dapat diubah-ubah selama eksekusi program berlangsung.

Jenis tipe data :


1. Bilanga bulat (integer)
2. Bilangan real presisi-tunggal
3. Bilangan real presisi-ganda
4. Karakter
5. Tak bertipe

Daftar tipe data :


Tipe data Total bit Kawasan Keterangan
Char 8 -128 s/d 127 Karakter
Int 16 -32768 s/d 32767 Bilangan Integer
Float 32 3.4E-38 s/d 3.4E+38 Bilangan Real Presisi-tunggal
Double 64 1.7E-308 s/d 1.7E+308 Bilangan Real Presisi-ganda
Void 0 - Tak bertipe

Prodi Manajemen Informatika-Polmed 12


Modul Praktikum Logika dan Algoritma Pemrograman

4.2 Variabel

Variabel digunakan untuk menyimpan suatu nilai dalam program, dan nilai tersebut dapat
diubah-ubah selama eksekusi program berlangsung
a. Deklarasi variabel
Varibel yang digunakan dalam program harus dideklarasikan terlebih dahulu, yaitu
pemesanan memori dan penentuan jenis data yang bisa disimpan dalam variabel
tersebut. Bentuk umum deklarasi variabel :

Tipe nama-variabel

Pada deklarasi variabel, nama-variabel dapat terdiri dari satu variabel atau
beberapa variabel yang dipisahkan dengan tanda koma (,).
Contoh :
int R ;
float nilai, nilai_total, ipk;

b. Memberikan nilai variabel


Bentuk umum memberikan nilai ke suatu variabel :

variabel=nilai

Contoh :
R=10;
nilai=70.5; ipk=3.4;
c. inisialisasi variabel
Merupakan pemberian nilai awal terhadap suatu variabel. Adakalanya dalam
pembuatan program, setelah variabel dideklarasikan langsung diberi nilai awal.
Contoh :
int total; atau int total=0;
total=0;

Prodi Manajemen Informatika-Polmed 13


Modul Praktikum Logika dan Algoritma Pemrograman

4.3 Konstanta
Konstanta menyatakan nilai tetap. Tidak perlu dideklarasikan, dan mempunyai tipe data.
Aturan penulisan:
 Konstanta karakter : diawali dan diakhiri dengan tanda petik tunggal, Contoh : ‘A’
dan ‘@’.
 Konstanta integer : ditulis dengan angka (tanpa tanda petik) tanpa mengandung
pemisah ribuan dan tak mengandung bagian pecahan. Contoh : –1 dan 32767.
 Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa
titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e),
contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5
(maksudnya 2,1 x 105 ).
 Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petik-ganda (“). Contoh: “Program Dasar”.
 Menggunakan keyword #define
#define <nama_konstanta> <nilai>
atau
 Menggunakan keyword const
const <tipe_konstanta> <nama_konstanta> = <nilai>;
Contoh:
#define PI 3.14159
atau : const float PI = 3.14159;

4.4 Operator
Operator merupakan simbol atau karakter yang digunakan untuk melakukan suatu operasi
atau manipulasi seperti operasi matematika, operasi logika dan lain sebagainya.
a. Opeartor Arimatika
Operator Operasi
* Perkalian
/ Pembagian
% Sisa pembagian
+ Penjumlahan
- Pengurangan

Prodi Manajemen Informatika-Polmed 14


Modul Praktikum Logika dan Algoritma Pemrograman

b. Operator penaikan dan penurunan


Operator Operasi
++ Penaikan
-- Penurunan

c. Operator relasi
Operator relasi (hubungan) biasa dipakai untuk membandingkan dua buah nilai.
Hasil perbandingan berupa keadaan benar atau salah.
Operator Operasi
> Besar dari
>= Besar dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
== Sama dengan
!= Tidak sama dengan

d. Operator Logika
Biasa digunakan untuk menghubungkan ungkapan relasi
Operator Operasi
&& Dan (AND)
|| Atau (OR)
! Tidak (NOT)

Prodi Manajemen Informatika-Polmed 15


Modul Praktikum Logika dan Algoritma Pemrograman

5. PERCOBAAN

1. Tipe-tipe data dasar dalam C.


/* File program : data.c */
#include <stdio.h>
main()
{
int var_bulat = 32767;
float var_pecahan1 = 339.2345678;
double var_pecahan2 = 3.4567e+40;
char var_karakter = 'S';
printf("Variabel bulat = %d\n", var_bulat);
printf("Variabel pecahan1 = %f\n", var_pecahan1);
printf("Variabel pecahan2 = %le\n", var_pecahan2);
printf("Variabel karakter = %c\n", var_karakter);
getch();
}
2. Mengenal beberapa operator dalam C.
/* File program : operator.c */
#include <stdio.h>
main()
{
int a, b, c, hasil;
printf("Masukkan nilai a = ");
scanf("%d", &a);
printf("Masukkan nilai b = ");
scanf("%d", &b);
printf("Masukkan nilai c = ");
scanf("%d", &c);
printf("\n");
hasil = a - b;
printf("Hasil pengurangan : a - b = %d\n", hasil);
printf("Hasil perkalian : b * c = %d\n", b * c);
hasil = a / c;
printf("Hasil pembagian : a / c = %d\n", hasil);
printf("Hasil operasi : a + b * c = %d\n", a + b * c);
getch();
}

3. Operator Modulus
/* File program : modulus.c */
#include <stdio.h>
main()
{
int a = 14, b = 2, c = 3, d = 4;
printf("a = %d, b = %d, c = %d, d = %d\n\n",
a, b, c, d);

Prodi Manajemen Informatika-Polmed 16


Modul Praktikum Logika dan Algoritma Pemrograman

printf("Hasil a %% b = %d\n", a % b);


printf("Hasil a %% c = %d\n", a % c);
printf("Hasil a %% d = %d\n", a % d);
printf("Hasil a / d * d + a %% d = %d\n", a / d * d + a % d);
getch();
}

4. Menghitung diskriminan pers kuadrat ax^2 + bx + c = 0


/* File program : diskrim.c */
# include <stdio.h>
main()
{
float a,b,c,d = 0;
a = 3.0f;
b = 4.0f;
c = 7.0f;
d = b*b-4*a*c;
printf("Diskriminan = %f\n",d);
getch();
}

5. Penggunaan pre & post Increment operator


/* File program : pre_post.C */
#include <stdio.h>
main()
{
int count = 0, loop;
loop = ++count; /* count=count+1; loop=count; */
printf("loop = %d, count = %d\n", loop, count);
loop = count++; /* loop=count; count=count+1; */
printf("loop = %d, count = %d\n", loop, count);
getch();
}

6. Perbedaan format %g, %e dan %f


/* File program : form_efg.c */
#include <stdio.h>
main()
{
float x;
printf("Masukkan nilai pecahan yg akan ditampilkan : ");
scanf("%f", &x);
printf("format e => %e\n", x);
printf("format f => %f\n", x);
printf("format g => %g\n", x);
getch();
}

Prodi Manajemen Informatika-Polmed 17


Modul Praktikum Logika dan Algoritma Pemrograman

7. Penggunaan format panjang medan data


/* File program : formatpjg.c */
#include <stdio.h>
main()
{
int nilai1 = 20;
float nilai2 = 500.0f;
printf("Abad %5d\n", nilai1);
printf("%10.2f\n", nilai2);
printf("%10s\n", "Bahasa C"); /* String rata kanan */
printf("%-10s\n", "Bahasa C"); /* String rata kiri */
getch();
}

6. LATIHAN

1. Pilihlah nama-nama variabel yang benar dan yang salah, mengapa ?


int char 6_05 floating _1312
calloc Xx A$ ReInitialize alpha_beta_routine
xxx z
2. Apa yang dihasilkan oleh program di bawah ini :
main()
{
char c, d;
c = 'd';
d = c;
printf("d = %c", d); }

3. Buatlah program untuk mengevaluasi polynomial di bawah ini :


2
3x – 5x + 6 dengan nilai x merupakan masukan dari user.
4. Buatlah program untuk mengkonversi suhu dari Celcius ke Fahrenheit dengan
rumus
F = C * 1.8 + 32
Input : suhu dalam Celcius
Output : suhu dalam Fahrenheit

Prodi Manajemen Informatika-Polmed 18


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 4
1. PERTEMUAN : 5
2. JUDUL : PROGRAM INPUT DAN OUTPUT
3. TUJUAN :
a. Menjelaskan dan menggunakan fungsi untuk input data
b. Menjelaskan dan menggunakan fungsi untuk menampilkan/mencetak informasi
c. Menggunakan penentu format

4. LANDASAN TEORI
Input data dan menampilkan data/informasi (output) merupakan kegiatan yang sering
dilakukan dalam pemrograman. Input data dilakukan melalui keyboard menghasilkan
output melalui piranti monitor atau printer.

4.1 Program Input


Data diinputkan melalui keyboard saat eksekusi program berlangsung. Fungsi yang
digunakan untuk input data yaitu : scnf(), getch() dan getche().
a. scanf()
Fungsi ini digunakan untuk menginputkan berbagai jenis data dengan
menggunakan penentu format data.
Daftar penentu format data :
Kode Keterangan
%c Membaca sebuah karakter
%s Membaca sebuah string
% i atau %d Membaca sebuah integer
%e atau %f Membaca sebuah bilangan real (bisa dalam bentuk eksponensial)
%o Membaca sebuah integer oktal
%x Membaca sebuah integer hexadesimal
%u Membaca sebuah integer tak bertanda
l Awalan untuk membaca data long int (misal %ld)
L Awalan untuk membaca data long double (misal %Lf)
h Awalan untuk membaca data short int (misal %hd)

Prodi Manajemen Informatika-Polmed 19


Modul Praktikum Logika dan Algoritma Pemrograman

b. getch() dan getche()


fungsi getch() digunakan untuk membaca sebuah karakter, dengan sifat karakter
yang diinputkan tidak perlu diakhiri dengan ENTER dan karakter yang diinputkan
tidak akan ditampilkan di layar. Sedangkan fungsi getche() kegunaannya sama
dengan fungsi getch(), perbedaannya karakter yang diinputkan ditampilkan di layar.

4.2 Program Output


Untuk menampilkan output/informasi digunakan fungsi printf(), puts() dan putchar().
a. printf()
Fungsi printf() digunakan untuk menampilkan berbagai jenis data. Fungsi printf()
sama dengan fungsi scanf() menggunakan penentu format.
b. pust()
Fungsi puts() digunakan khusus untuk manapilkan data string ke layar. Dengan
menggunakan fungsi ini, string yang ditampilkan secara otomatis akan diakhiri
dengan \n (pindah baris)
c. putchar()
Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter ke layar,
akan tetapi tidak diakhir dengan pindah baris.

5. PERCOBAAN
a. Menghitung keliling dan luas lingkaran

/* File program : lingkaran.c /


#include <stdio.h>
main()
{
float radius, keliling, luas;
printf("Masukkan jari-jari lingkaran : ");
scanf("%f",&radius);
keliling = 2 * 3.14f * radius;
luas = 0.5f * 3.14f * radius * radius;
printf("\nData lingkaran\n");
printf("Jari-jari = %8.2f\n", radius);
printf("Keliling = %8.2f\n", keliling);
printf("Luas = %8.2f\n", luas);
getch();
}

Prodi Manajemen Informatika-Polmed 20


Modul Praktikum Logika dan Algoritma Pemrograman

b. Menghitung Nilai Akhir Matakuliah


#include<stdio.h>
main()
{
float absen,tugas,mid,uas,na;
clrscr();
printf("Input nilai kehadiran : "); scanf("%f" ,&absen);
printf("Input nilai Tugas : "); scanf("%f" ,&tugas);
printf("Input nilai mid : "); scanf("%f" ,&mid);
printf("Input nilai UAS :" ); scanf("%f" ,&uas);
na=0.1*absen+0.2*tugas+0.3*mid+0.4*uas;
getch();
}

c. Mencari Luas Segitiga

#include<stdio.h>
main()
{
int alas,tinggi;
float luas;
clrscr();
printf("Inputkan Alas Segitga : ");scanf("%d",&alas);
printf("Inputkan Tinggi Segitga : ");scanf("%d",&tinggi);
luas=alas*tinggi*0.5;
printf("Luas Segitiga = %.2f\n",luas );
getche ();
}

6. LATIHAN
a. Buatlah algoritma dan program untuk menghitung total nilai, nilai rata-rata mahasiswa
dengan menginputkan 5 buah nilai.
b. Buat algoritma dan program untuk menginputkan, menghitung dan menampilkan luas
persegi panjang, bujur sangkar, jumlah bayar barang

Prodi Manajemen Informatika-Polmed 21


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 5
1. PERTEMUAN : 6 dan 7
2. JUDUL : STRUKTUR KONTROL (PENGAMBILAN KEPUTUSAN)
3. TUJUAN :
a. Menjelaskan dan menggunakan operator kondisi (operator relasi dan logika)
b. Menggunaan pernyataan if
c. Menggunaan pernyataan if-else
d. Menggunaan pernyataan if dalam if
e. Menggunaan pernyataan switch

4. DASAR TEORI
Pengambilan keputusan diperlukan jika ada dua atau lebih kondisi yang harus dipilih salah
satu. Pernyataan-pernyataan yang dapat digunakan dalam pengambilan keputusan adalah :
 Pernyataan if
 Pernyataan if-else
 Pernyataan switch
Pernyataan-pernyataan diatas memerlukan suatu kondisi yaitudibentuk dengan operator
relasi dan/atau operator logika.
4.1. Operator Relasi
Operator relasi (hubungan) biasa dipakai untuk membandingkan dua buah nilai.
Hasil perbandingan berupa keadaan benar atau salah.
Operator Operasi
> Besar dari
>= Besar dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan
== Sama dengan
!= Tidak sama dengan

Prodi Manajemen Informatika-Polmed 22


Modul Praktikum Logika dan Algoritma Pemrograman

4.2. Operator Logika

Biasa digunakan untuk menghubungkan ungkapan relasi


Operator Operasi
&& Dan (AND)
|| Atau (OR)
! Tidak (NOT)

4.3 Pernyataan if
Sintak:

 Jika kondisi benar maka pernyataan dilakukan.


 Pernyataan bisa satu statement atau beberapa statement
 Jika pernyataan lebih dari satu gunakan tanda ‘{‘ dan ‘}’ untuk mengelompokkan
pernyataan2 itu

Prodi Manajemen Informatika-Polmed 23


Modul Praktikum Logika dan Algoritma Pemrograman

4.4 Pernyataan if-else


 Sintak:

 Jika kondisi benar maka pernyataan1 dilakukan.


 Jika kondisi salah maka pernyataan2 dilakukan.

4.5 Nested -if


 Di dalam pernyataan if (atau if-else) bisa terdapat pernyataan if (atau if-else) yang
lain.
 Bentuk umum:

Prodi Manajemen Informatika-Polmed 24


Modul Praktikum Logika dan Algoritma Pemrograman

4.6 Pernyataan Switch-Case


Digunakan sebagai pengganti pernyataan if bertingkat (else-if)
Bentuk umum :

5. PERCOBAAN

1. Menghitung nilai discount menggunakan if.


/* File program : discount.c */
#include <stdio.h>
main()
{
double total_pembelian, discount = 0;
clrscr();
printf("Total pembelian = Rp ");
scanf("%lf", &total_pembelian);
if(total_pembelian >= 100000)
discount = 0.05 * total_pembelian;
printf("Besarnya discount = Rp %.2lf\n", discount); getch();}

Prodi Manajemen Informatika-Polmed 25


Modul Praktikum Logika dan Algoritma Pemrograman

2. Menghitung nilai absolut suatu bilangan.


/* File program : absolut.c */
#include <stdio.h>
main()
{
int bil, abs;
clrscr();
printf("Masukkan bilangan bulat : ");
scanf("%d", &bil);
if(bil < 0)
abs = -bil;
printf("Nilai absolut dari %d adalah %d\n\n", bil, abs);
getch();
}

3. Pemakaian if-else untuk menyeleksi bilangan pembagi


/* File program : bagi1.c */
#include <stdio.h>
main()
{
float a, b;
clrscr();
printf("Masukkan nilai a : ");
scanf("%f", &a);
printf("Masukkan nilai b : ");
scanf("%f", &b);
printf("\n");
if (b == 0)
printf("%g dibagi dengan nol = TAK BERHINGGA\n", a);
else
printf("%g dibagi dengan %g = %g\n", a, b, a/b);
getch();
}

Prodi Manajemen Informatika-Polmed 26


Modul Praktikum Logika dan Algoritma Pemrograman

4. Pemakaian if-else untuk mengecek hasil modulus.


/* File program : bagi2.c */
#include <stdio.h>
main()
{
int bil1, bil2, sisa;
clrscr();
printf("Masukkan bilangan pertama : ");
scanf("%d", &bil1);
printf("Masukkan bilangan kedua : ");
scanf("%d", &bil2);
sisa = bil1 % bil2;
printf("\n");
if (sisa == 0)
printf("%d habis dibagi dengan %d\n\n", bil1, bil2);
else
printf("%d tidak habis dibagi dengan %d\n\n",
bil1, bil2);
getch();
}

5. Mengkategorikan karakter masukan


/* File program : tebak.c */
#include <stdio.h>
main()
{
char karakter;
clrscr();
printf("Masukkan sebuah karakter : ");
scanf("%c", &karakter);
if ((karakter >= 'a' && karakter <= 'z') || (karakter >=
'A' && karakter <= 'Z'))
printf("%c adalah karakter alphabet\n", karakter);
else if (karakter >= '0' && karakter <= '9')
printf("%c adalah bilangan\n", karakter);
else
printf("%c adalah karakter khusus\n", karakter);
getch();
}

Prodi Manajemen Informatika-Polmed 27


Modul Praktikum Logika dan Algoritma Pemrograman

6. Mengkategorikan bilangan bulat dengan memberinya tanda 1, 0 atau -1.


/* File program : bulat.c */
#include <stdio.h>
main()
{
int bil, tanda;
clrscr();
printf("Masukkan sebuah bilangan : ");
scanf("%d", &bil);
if (bil < 0)
tanda = -1;
else if (bil == 0)
tanda = 0;
else
tanda = 1;
printf("Bilangan %d memiliki tanda %d\n", bil, tanda);
getch();
}

7. Implementasi program kalkulator sederhana menggunakan else-if.


/* File program : kalkulator1.c */
#include <stdio.h>
main()
{ /* valid_operator diinisialisasi dg logika 1 */
int valid_operator = 1;
char operator;
float bil1, bil2, hasil;
clrscr();
printf("Masukkan 2 buah bilangan dan sebuah operator\n");
printf("dengan format : bil1 operator bil2\n\n");
scanf("%f %c %f", &bil1, &operator, &bil2);
if(operator == '*')
hasil = bil1 * bil2;
else if(operator == '/')
hasil = bil1 / bil2;
else if(operator == '+')
hasil = bil1 + bil2;
else if(operator == '-')
hasil = bil1 - bil2;

Prodi Manajemen Informatika-Polmed 28


Modul Praktikum Logika dan Algoritma Pemrograman

else
valid_operator = 0;
if(valid_operator)
printf("%g %c %g is %g\n", bil1, operator, bil2,
hasil);
else
printf("Invalid operator!\n");
getch();
}

8. Implementasi program kalkulator sederhana menggunakan switch - case.


/* File program : kalkulator2.c */
#include <stdio.h>
main()
{
/* valid_operator diinisialisasi dg logika 1 */
int valid_operator = 1;
char operator;
float bil1, bil2, hasil;
clrscr();
printf("Masukkan 2 buah bilangan dan sebuah operator\n");
printf("dengan format : bil1 operator bil2\n\n");
scanf("%f %c %f", &bil1, &operator, &bil2);
switch(operator) {
case '*' : hasil = bil1 * bil2; break;
case '/' : hasil = bil1 / bil2; break;
case '+' : hasil = bil1 + bil2; break;
case '-' : hasil = bil1 - bil2; break;
default : valid_operator = 0;
}
if(valid_operator)
printf("%g %c %g is %g\n", bil1, operator, bil2,hasil);
else
printf("Invalid operator!\n");
getch();
}

Prodi Manajemen Informatika-Polmed 29


Modul Praktikum Logika dan Algoritma Pemrograman

6. LATIHAN

a. Buatlah algoritma dan program untuk menerima input 2 buah bilangan bulat. Tampilkan
hasil dari pembagian bilangan pertama dengan bilangan kedua, dengan ketelitian 3
desimal.
Input : bil1 dan bil2
Output : hasil bagi bil1 dengan bil2
Nilai tambah : program bisa mengecek pembagian dengan nol, yaitu jika bilangan
kedua adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan
kesalahannya (division by zero).
b. Buatlah algoritma dan program untuk menghitung determinan dan mencari akar-akar
2
dari persamaan kuadrat : ax + bx + c = 0 , dengan ketentuan sbb :
2
D = b - 4ac
• Jika D = 0 , maka terdapat 2 akar real yang kembar, yaitu : x1 = x2 = -b / 2a
• Jika D > 0 , maka terdapat 2 akar real yang berlainan, yaitu :
x1 = (-b + sqrt(D)) / 2a
x2 = (-b - sqrt(D)) / 2a
• Jika D < 0 , maka terdapat 2 akar imaginair yang berlainan, yaitu :
x1 = -b / 2a + (sqrt(-D) / 2a) i
x2 = -b / 2a - (sqrt(-D) / 2a) i
Input : a, b, c (float)
Output : Nilai Determinan serta nilai akar-akar persamaan tsb (x1& x2).
Petunjuk : - untuk mencari akar dari x, gunakan : sqrt(x) yang didefinisikan pada
<math.h>.
- gunakan else if

c. Buatlah algoritma dan program untuk menampilkan menu dan melakukan proses sbb :
Menu :
1. Menghitung volume kubus
2. Menghitung luas lingkaran
3. Menghitung volume silinder.
Input : pilihan user (1, 2 atau 3)
Jika pilihan = 1, maka :
Input : panjang sisi kubus
3
Output : Volume kubus (vol = sisi )
Jika pilihan = 2, maka :

Prodi Manajemen Informatika-Polmed 30


Modul Praktikum Logika dan Algoritma Pemrograman

Input : panjang jari-jari lingkaran


2
Output : Luas lingkaran (luas = 3.14 * r )
Jika pilihan = 3, maka :
Input : panjang jari-jari lingkaran & tinggi silinder
2
Output : Volume silinder (vol = 3.14 * r * t)
Jika pilihan selain 1, 2 & 3 (default) : Tampilkan pesan kesalahan.
Petunjuk : gunakan switch-case

d. Kumpulkan hasil Program berikut


#include<stdio.h>
main()
{
char nip[9], nama[15];
int gol,st;
float gapok,tjg,gk,pph,gb;
clrscr();
printf("DAFTAR GAJI PEGAWAI\n");
printf("Inputkan NIP Pegawai : "); scanf("%s" ,&nip);
printf("Inputkan Nama Pegawai : "); scanf("%s" ,&nama);
printf("Inputkan Golongan (1-4) : "); scanf("%d" ,&gol);
printf("Inputkan Status (1=Maried,2=single): "); scanf("%d" ,&st);
if (gol==1)
gapok=900000;
if (gol==2)
gapok=1250000;
if (gol==3)
gapok=1750000;
if (gol==4)
gapok=2500000;
if (st==1)
tjg=0.25*gapok;
if (st==2)
tjg=0.05*gapok;

Prodi Manajemen Informatika-Polmed 31


Modul Praktikum Logika dan Algoritma Pemrograman

gk=gapok+tjg;
pph=0.1*gapok;
gb=gk-pph;
printf("Gaji Pokok : %.2f\n",gapok);
printf("Tunjangan : %.2f\n",tjg);
printf("Gaji Kotor : %.2f\n",gk );
printf("PPh : %.2f\n",pph);
printf("Gaji Bersih : %.2f\n",gb );
getch();
}

Prodi Manajemen Informatika-Polmed 32


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 6

1. PERTEMUAN : 8 DAN 9
2. JUDUL : PENGULANGAN (LOOPING) WHILE DAN DO-WHILE
3. TUJUAN :
a. Menjelaskan dan menggunakan proses pengulangan pernyataan while
b. Menjelaskan dan menggunakan proses pengulangan pernyataan do-while
c. Menjelaskan dan menggunakan pernyataan break
d. Menjelaskan dan menggunakan pernyataan continue

4. DASAR TEORI

4.1. Pernyataan while


Pada pernyataan ini, pengecekan terhadap loop dilakukan di bagian awal, apabila
kondisi tidak benar maka pernyataan di dalam blok loop tidak dikerjakan sama sekali.

- Sintak
while(kondisi)
pernyataan;
 Selama kondisi benar maka pernyataan dikerjakan
 Jika kondisi salah maka keluar dari blok loop
Contoh :
bil = 1;
while (bil <= 15)
{
printf("%d\n", bil);
bil = bil + 3;
}
Akan didapatkan hasil :
1
4
7
10
13

Prodi Manajemen Informatika-Polmed 33


Modul Praktikum Logika dan Algoritma Pemrograman

4.2. Pernyataan do-while


Pada pernyataan ini, pengecekan terhadap loop dilakukan di bagian akhir. Walupun
kondisi tidak benar maka pernyataan didalam blok loop pasti dijalankan (minimal 1
kali).

- Sintak :
do {
pernyataan;
} while(kondisi);

 Mula-mula pernyataan dijalankan, selanjutnya kondisi diuji jika benar dilakukan


perulangan, jika salah maka keluar dari loop
Contoh :
bil = 1;
do {
printf("%d\n", bil);
bil = bil + 3;
} while (bil <= 15);
Akan didapatkan hasil :
1
4
7
10
13

4.3 Pernyataan break


Berfungsi untuk keluar dari loop yaitu untuk looping dengan while, dan do-while.
Juga berfungsi untuk keluar dari struktur switch.
- Sintak:
break;
Contoh :

 Pada loop:
while(kondisi)
{
break;
}

Prodi Manajemen Informatika-Polmed 34


Modul Praktikum Logika dan Algoritma Pemrograman

statement-x;

 Pada switch:
switch (ekspresi)
{.....
case konstanta-2:
pernyataan-21;
break;
.....
}

Pernyataan Continue
 Pada loop:
while(kondisi)
{
continue;
}
statemen-x;

C. PERCOBAAN
1. Menghitung jumlah kata dan karakter dalam suatu kalimat
/* File program : jumkar.c */
#include <stdio.h>
main()
{
char kar;
int jumkar = 0, jumspasi = 0;
clrscr();
puts("Masukkan sebuah kalimat dan akhiri dengan ENTER.");
puts("Saya akan menghitung jumlah karakter ");
puts("pada kalimat tersebut.\n");
while((kar = getchar()) != '\n')
{
jumkar++;
if (kar == ' ') jumspasi++;
}

Prodi Manajemen Informatika-Polmed 35


Modul Praktikum Logika dan Algoritma Pemrograman

printf("\nJumlah karakter = %d", jumkar);


printf("\nJumlah SPASI = %d\n\n", jumspasi);
getch();
}

2. Membalik angka menggunakan pernyataan while().


/* File program : loop9.c */
#include <stdio.h>
main()
{
int bil, digit_kanan;
printf("Masukkan bilangan yang mau dibalik : ");
scanf("%d", &bil);
printf("Hasil pembalikannya = ");
while(bil != 0)
{
digit_kanan = bil % 10;
printf("%d", digit_kanan);
bil = bil / 10;
}
printf("\n");
getch();
}

3. Membaca tombol yang ditekan.


/*File program : pilihan.c */
#include <stdio.h>
main()
{
char pilihan;
int sudah_benar = 0; /* diberi nilai salah lebih dahulu */
printf("Pilihlah Y atau T.\n");
/* program dilanjutkan jika tombol Y,y,T atau t ditekan */
while(!sudah_benar)
{
pilihan = getchar(); /* baca tombol */
sudah_benar = (pilihan == 'Y') || (pilihan == 'y')||

Prodi Manajemen Informatika-Polmed 36


Modul Praktikum Logika dan Algoritma Pemrograman

(pilihan == 'T') || (pilihan == 't');


getch();
}
/* memberi keterangan tentang pilihan */
switch(pilihan)
{
case 'Y':
case 'y':
puts("\nPilihan anda adalah Y");
break;
case 'T':
case 't':
puts("\nPilihan anda adalah T");
}
getch();
}

4. Membuat Tabel Faktorial menggunakan do-while


/*menghitung nilai faktorial menggunakan do-while*/
#include<stdio.h>
main()
{
int k,i=1,fak=1;
printf("Masukkan nilai yang akan difaktorialkan = ");
scanf("%d",&k);
printf("\n\nTabel faktorial \n ");
printf("%3s %7s","k","faktorial\n");
do
{
fak=fak*i;
printf("%3d %7d \n",i,fak);
i++;
}while(i<=k);
getch();
}

5. Menghitung harga total pembelian minuman

Prodi Manajemen Informatika-Polmed 37


Modul Praktikum Logika dan Algoritma Pemrograman

/*menentukan total pembelian minuman */


#include<stdio.h>
main()
{
int jumlah,kode;
float harga,total;
double bayar;
char kar;
printf("kode Jenis Harga\n");
printf("1 Milo Rp 10.000\n");
printf("2 Kopi Rp. 5000\n");
printf("3 Coca Cola Rp 2500\n");
printf("4 Orange Juice Rp 2000\n");
total=0;
do {
printf("Masukkan kode minuman : \n");
scanf("%d",&kode);
printf("Masukkan jumlah pesanan ");
scanf("%d",&jumlah);
if(kode==1)
harga = (float) 10000*jumlah;
else if(kode==2)
harga = (float)5000*jumlah;
else if(kode==3)
harga = (float)2500*jumlah;
else if(kode==4)
harga = (float)2000*jumlah;

total=total+harga;
printf("Mau menambah pesanan ? (Y/T)\n");
scanf("%s",&kar);
} while(kar=='Y');
if(total > 100000)
bayar=total-(0.15*total);
else
bayar=total;
printf("\nHarga yang harus dibayar = %10.2f\n",bayar);
getch();}

6. LATIHAN

1. Buatlah algoritma dan program untuk menampilkan semua bilangan genap yang
terletak antara 20 sampai dengan 200, dengan menggunakan While.
2. Buatlah algoritma dan program untuk menghitung jumlah angka dari suatu
bilangan.
Contohnya : Jumlah angka dari bilangan 3255 = 3 + 2 + 5 + 5 = 15

Prodi Manajemen Informatika-Polmed 38


Modul Praktikum Logika dan Algoritma Pemrograman

Jumlah angka dari bilangan 4589 = 4 + 5 + 8 + 9 = 26 dan sebagainya.


3. Buatlah algoritma dan program untuk menerima daftar nilai mahasiswa sbb :
Input : - Jumlah data (n)
- Nilai ke-1 s/d Nilai ke-n
Output : - Nilai minimal
- Nilai maksimal
- Nilai rata-rata (rata-rata = nilai total / jumlah data)
(Petunjuk : Gunakan do-While dan seleksi kondisi dengan if)

Prodi Manajemen Informatika-Polmed 39


Modul Praktikum Logika dan Algoritma Pemrograman

1. PERTEMUAN : 10
2. JUDUL : UJIAN MID SEMESTER

Prodi Manajemen Informatika-Polmed 40


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 7

1. PERTEMUAN : 11
2. JUDUL : PENGULANGAN (LOOP) FOR DAN NESTED LOOP
3. TUJUAN :
a. Menjelaskan dan menggunakan proses pengulangan pernyataan for
b. Menjelaskan penggunaan pernyataan goto
c. Menjelaskan menggunakan loop di dalam loop (nested loop)
d. Menjelaskan penggunaan exit() untuk menghentikan eksekusi program

4. DASAR TEORI

4.1. Pernyataan for

Digunakan untuk membuat looping dengan jumlah perulangan yang ditentukan di awal.
- Sintak:
for(ungkapan1; ungkapan2; ungkapan3)
pernyataan;
Keterangan :
 Ungkapan1: digunakan untuk memberikan inisialisasi terhadap variabel
pengendali loop.
 Ungkapan2: dipakai sebagai kondisi untuk keluar dari loop.
 Ungkapan3: dipakai sebagai pengatur kenaikan nilai variabel pengendali loop.
Contoh :
for (bil = 1; bil <= 15; bil += 3)
printf("%d\n", bil);

maka akan didapatkan hasil :


1
4
7
10
13

Prodi Manajemen Informatika-Polmed 41


Modul Praktikum Logika dan Algoritma Pemrograman

4.2. Pernyataan for( ; ; )

Kadang-kadang dijumpai adanya pernyataan for yang tidak mengandung bagian ungkapan
yang lengkap (beberapa ungkapan dikosongkan). Hal ini disebabkan ungkapan-ungkapan
tersebut sudah di-inisialisasi di luar for atau dapat dikerjakan di dalam loop itu sendiri.
Contoh :
for (bil=10;bil<=60;bil++)

dapat diganti menjadi :

bil=10;
for( ; ; )
{
bil++;
if(bil==60)
break;
}

4.3. Pernyataan goto

Pernyataan ini berfungsi untuk mengarahkan eksekusi ke pernyataan yang diawali


dengan suatu label. Label sendiri berupa suatu pengenal (identifier) yang diikuti
dengan tanda titik dua (:).
- Sintak :
goto nama_label;
label :
Contoh :

bil++; //naikkan nilai bil sebesar 1


if( bil<= 10) //jika bil kurang atau sama dengan 10
goto cetak: //eksekusi menuju label cetak

4. 4 . Nested-loop

Adalah loop di dalam loop. Kondisi ini hampir sama dengan nested-if.
- Sintak :
for(ungkapan1; ungkapan2; ungkapan3)

Prodi Manajemen Informatika-Polmed 42


Modul Praktikum Logika dan Algoritma Pemrograman

{
for(ungkapan4; ungkapan5; ungkapan6)
{
for(ungkapan-x; ungkapan-y; ungkapan-z)
{
Pernyataan1;
.
.
}
Pernyataan-n;
.
}
Pernyataan-m;
.
}

4.5. Pernyataan exit()

Pernyataan ini digunakan untuk keluar dari program. Biasa disertakan pada program
yang menggunakan looping dengan for, while atau do-while. Fungsi ini didefinisikan
di stdlib.h

Sintak:
exit();
Contoh:
/*tekan ESC untuk menghentikan program*/
#include<stdio.h>
#include<stdlib.h>
main()
{
puts(“Tekan ESC untuk menghentikan program.”);
for( ; ; )
if(getch()==27)
exit(0);
getch();
}

Prodi Manajemen Informatika-Polmed 43


Modul Praktikum Logika dan Algoritma Pemrograman

5. PERCOBAAN

1. Menghitung jumlah delapan triangular tanpa pernyataan for()


/* File program :triangular1.c */
#include <stdio.h>
main()
{
int jumlah = 0;
jumlah = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8;
printf("Jumlah delapan triangular adalah %d\n",jumlah);
}

2. Pemakaian for untuk membentuk deret naik.


/* File program : for1.c */
#include <stdio.h>
main()
{
int bilangan;
for(bilangan = 20; bilangan <= 100; bilangan += 10)
printf("%d\n", bilangan);
}

3. Pemakaian for untuk membentuk deret turun


/* File program : for2.c */
#include <stdio.h>
main()
{
int bilangan;
for (bilangan = 60; bilangan >= 10; bilangan -= 10)
printf("%d\n", bilangan);
}

4. Menghitung jumlah 200 triangular menggunakan for().


/* File program : triangular2.c */
#include <stdio.h>
main()
{
int n, jumlah = 0;

Prodi Manajemen Informatika-Polmed 44


Modul Praktikum Logika dan Algoritma Pemrograman

for (n=1; n<=200; n++)


jumlah = jumlah + n;
printf("Jumlah 200 triangular adalah %d\n", jumlah);
}

5. Membuat tabel dari jumlah triangular yang diinputkan


/* File program : triangular3.c */
#include <stdio.h>
main()
{ int n, bil, jumlah = 0;
printf("Masukkan bilangan triangular : ");
scanf("%d", &bil);
printf("\nTABEL PENJUMLAHAN TRIANGULAR\n\n");
printf("%3s%10s\n\n","n","Jumlah");
for (n=1; n<=bil; n++)
{
jumlah = jumlah + n;
printf("%3d %7d\n", n, jumlah);
}
}

6. Pemakaian break untuk keluar dari looping


/* File program : tamat.c */
#include <stdio.h>
main()
{
char kar;
printf("Ketik sembarang kalimat");
printf(" dan akhiri dengan ENTER\n\n");
for ( ; ; )
{
kar = getchar();
if(kar == '\n')
break;
}
printf("Selesai\n");
}

7. Loop for bersarang untuk membuat tabel perkalian


/* File program : tblkali.c */
#include <stdio.h>

Prodi Manajemen Informatika-Polmed 45


Modul Praktikum Logika dan Algoritma Pemrograman

#define MAKS 8
main()
{
int baris, kolom, hasil_kali;
for (baris = 1; baris <= MAKS; baris++)
{
for (kolom = 1; kolom <= MAKS; kolom++)
{
hasil_kali = baris * kolom;
printf ("%2d", hasil_kali);
}
printf("\n"); /* pindah baris */
}
}

8. Menampilkan bilangan ganjil antara 7 - 25 kecuali 15 menggunakan continue.


/* File program : ganjil.c */
#include <stdio.h>
main()
{
int x;
for (x = 7; x <= 25; x += 2)
{
if (x == 15)
continue;
printf("%4d", x);
}
printf("\n");
}

9. Pemakaian exit() untuk menghentikan eksekusi program.


/* File program : keluar.c */
#include <stdio.h>
#include <stdlib.h>
main()
{
char kar;
printf("Tekanlah X untuk menghentikan program.\n");
for (;;)
{

Prodi Manajemen Informatika-Polmed 46


Modul Praktikum Logika dan Algoritma Pemrograman

printf(“Program ini jalan terus”);


while ((kar = getchar()) == 'X')
exit(0);
}
}

10. Menentukan bilangan terbesar dari 5 buah data

#include<stdio.h>
main()
{
int d,i,l;
l=0;
printf("Masukkan sembarang bilangan bulat \n");
for(i=1;i<=5;i++)
{
printf("\nData ke- %d adalah = ",i);
scanf("%3d",&d);
if(d>l) //apakah bil yg diinputkan lebih //besar dari l?
{
l=d; //jika ya tukarkan nilai d dengan l
} //jika tidak, lanjutkan ke bil //berikutnya
}
printf("Bilangan terbesar adalah : %d\n",l);
}

11. Menjumlahkan bilangan dengan hasil <=25

//proses perulangan dengan goto


#include<stdio.h>
main()
{
int nil,i,jumlah;
printf("Masukkan nilai maksimal yang dijumlah : ");
scanf("%d",&nil);
jumlah=0;
for(i=0;i<=nil;i++)
{
jumlah=jumlah+i;
if(jumlah>=25)
goto selesai;
}
printf("Jumlah = %d\n",jumlah);
selesai:
printf("selesai\n");
}

Prodi Manajemen Informatika-Polmed 47


Modul Praktikum Logika dan Algoritma Pemrograman

12. Menampilkan bilangan prima dari 3 s/d bil tertentu

//menampilkan bilangan prima dari 0 s/d nilai tertentu


#include<stdio.h>
main()
{
int n,i,j;
printf("Masukkan nilai tertinggi yang diinginkan = ");
scanf("%d",&j);
for(n=2;n<=j;n++)
{
for(i=2;i<=n/2;i++)
{
if(n%i == 0)
break;
}
if(n%i != 0)
printf("%3d\n",n);
}
}

D. SOAL
1. Bilangan bulat faktorial n, ditulis dengan n! adalah dihasilkan dari mengalikan dari 1
sampai dengan n. Contohnya 5! = 1 x 2 x 3 x 4 x 5 =120. Buatlah algoritma dan
program untuk menampilkan tabel hasil faktorial dari suatu bilangan yang diinputkan
(tampilan bilangan rata kanan)

1.
2. Buatlah algoritma dan program untuk menghitung jumlah angka dari suatu bilangan.
Contohnya : Jumlah angka dari bilangan 3255 = 3 + 2 + 5 + 5 = 15
Jumlah angka dari bilangan 4589 = 4 + 5 + 8 + 9 = 26

Prodi Manajemen Informatika-Polmed 48


Modul Praktikum Logika dan Algoritma Pemrograman

3. Buatlah algoritma dan program untuk menerima daftar nilai mahasiswa sbb :
Input : - Jumlah data (n)
- Nilai ke-1 s/d Nilai ke-n
Output : - Nilai minimal
- Nilai maksimal
- Nilai rata-rata (rata-rata = nilai total / jumlah data)
(Petunjuk : Gunakan loop for dan seleksi kondisi dengan if)

Prodi Manajemen Informatika-Polmed 49


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 8

1. PERTEMUAN : 12
2. JUDUL : PROGRAM PROSEDURAL DENGAN
PERNYATAAN FUNGSI (FUNCTION)
3. TUJUAN :

a. Menjelaskan prinsip dasar fungsi


b. Membuat program prosedural
c. Menggunakan parameter formal dan parameter aktual
d. Menjelaskan dan menggunakan fungsi rekursi

4. DASAR TEORI

Fungsi merupakan blok program yang dibentuk untuk melaksanakan suatu tugas khusus.
Tujuan penggunaan fungsi :
 Program menjadi terstruktur, sehingga mudah dipahami dan mudah dikembangkan.
 Mengurangi pengulangan kode (duplikasi kode)

4.1 Dasar fungsi


Pada umumnya fungsi memerlukan input (masukan) yang dinamakan sebagai argumen
atau parameter. Masukan ini selanjutnya diolah oleh fungsi. Hasil ajhir fungsi berupa
sebuah nilai yang disebut sebagi nilai keluaran fungsi atau nilai balik fungsi).
Tugas khusus dari fungsi terdapat pada fungsi standard, misalnya getch(), bertugas untuk
membaca kode tombol dan printf() bertugas untuk menampilkan informasi atau data ke
layar.
Bentuk umum fungsi :

Tipe nama_fungsi(daftar parameter)


Deklarasi parameter
{
Tubuh fungsi
}

Prodi Manajemen Informatika-Polmed 50


Modul Praktikum Logika dan Algoritma Pemrograman

4.2 Memberikan nilai akhir fungsi


Pernyataan yang digunakan untuk memberikan nilai akhir fungsi di dalam tubuh fungsi
adalah pernyataan return.

Contoh program :
/* program fungsi yang mengandung argumen untuk mencari nilai minimum */
#include <stdio.h>
main()
{
int a, b, hasil;
a=25; b=84;
hasil=min(a, b);
printf(“nilai terkecil = %d\n”, hasil);
printf(“nilai terkecil = %d\n”, min(11, 9);
getch();
}
/* Fungsi minimum */
min(x, y)
int x, y;
{
if (x < y )
return(x);
else
return(y);
}

4.3 Fungsi dengan nilai keluaran bertipe selain integer


Fungsi yang nilai keluarannya selain tipe integer, perlu dilakukan langkah-langkah seperti
berikut :
 Fungsi harus dideklarasikan diawal program sebelum digunakan, yang diakhiri
dengan titik koma (;)
 Fungsi didefenisikan dengan diawali tipe fungsi

Prodi Manajemen Informatika-Polmed 51


Modul Praktikum Logika dan Algoritma Pemrograman

Contoh :
/* program fungsi bertipe selain integer untuk mencari nilai maximum */
#include <stdio.h>
float maks(float,float); /* deklarasi fungsi*/
main()
{
float a, b, hasil;
a= 35.6; b=65.9;
hasil=maks(a, b);
printf(“nilai maximum = %.2f\n”, hasil);
printf(“nilai terkecil = %.2f\n”,maks(11, 9);
getch();
}

/* Fungsi maximum */

float maks(float x, float y)


{
if (x> y )
return(x);
else
return(y);
}

4.4 Parameter formal dan parameter aktual


Parameter formal adalah variabel yang ada pada daftar parameter dalam defenisi fungsi.
Sedangkan parameter aktual adalah parameter yang dipakai dalam pemanggilan fungsi.

Prodi Manajemen Informatika-Polmed 52


Modul Praktikum Logika dan Algoritma Pemrograman

4.5 Rekursi
Rekursi merupakan fungsi yang memanggil dirinya sendiri.
Contoh program :
/* Program Rekursi untuk mencari bilangan faktorial */
#include <stdio.h>
int faktorial(int);
main()
{
int n, hasil;
puts(“MENCARI BILANGAN FAKTORIAL n!”);
printf(“Masukkan Sebuah bilangan : “);
scanf(“%d”, &n);
hasil=faktorial(n);
printf(“Faktorial dari %d = %d\n”, n, hasil);
getch();
}
int faktorial(int m)
{
if (m==1)
return(1);
else
return(m*faktorial(m-1));
}

Prodi Manajemen Informatika-Polmed 53


Modul Praktikum Logika dan Algoritma Pemrograman

5. PERCOBAAN

1. a. Buatlah sebuah fungsi untuk menghitung jumlah triangular n (misal nama


fungsinya = triangular). Fungsi tersebut memiliki sebuah parameter berupa bilangan
int (n) yang akan dicari triangularnya serta tidak memiliki nilai kembalian (return
value)
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat function main untuk memanggil function triangular() tersebut dengan
nilai n yang merupakan input dari user.
2. a. Buatlah sebuah fungsi untuk menghitung nilai bilangan kuadrat (misal nama
fungsinya = kuadrat). Fungsi tersebut memiliki sebuah parameter bertipe float,
yaitu bilangan yang akan dikuadratkan serta memiliki sebuah return value bertipe
float, yaitu hasil kuadratnya
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat function main untuk memanggil function kuadrat() tersebut dengan
bilangan x yang akan dicari kuadratnya merupakan input dari user.
3. a. Definisikan sebuah fungsi radian() yang berfungsi untuk mengkonversi
besaran sudut dari derajat ke radian dengan rumus sbb :
rad = drjt / 180.0f * PI. Fungsi tersebut memiliki sebuah parameter yaitu derajat yang
akan dikonversi, dan memiliki sebuah return value berupa hasil konversi dalam
radian.
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat function main untuk memanggil function radian(), setelah sebelumnya
meminta masukan nilai derajat yang akan dikonversi.
d. Definisikan PI sebagai sebuah konstanta yang bernilai : 3.14159f

6. LATIHAN
1. Apa hasil eksekusi dari program berikut :
#include <stdio.h>
void ubah(int);
main()
{

Prodi Manajemen Informatika-Polmed 54


Modul Praktikum Logika dan Algoritma Pemrograman

int x;
printf("Masukkan nilai x : ");
scanf("%d", &x);
ubah(x);
printf("x = %d\n", x);
}
void ubah(int y)
{
y = 85;
}

2. a. Definisikan sebuah fungsi float konversi(suhu, asal, tuj), untuk mengkonversikan


suhu dari Celsius ke Fahrenheit, Celsius ke Reamur, Fahrenheit ke Celsius,
Fahrenheit ke Reamur, Reamur ke Celsius, dan Reamur ke Fahrenheit. Dimana
suhu adalah suhu sumber, asal adalah satuan awal suhu yang akan dikonversi dan
tuj adalah satuan hasil konversi
b. Tulislah prototipe fungsi untuk fungsi tersebut.
c. Buat program untuk memanggil fungsi konversi(), dengan meminta masukan nilai
suhu, satuan asal dan satuan tujuannya.

Contoh tampilan:

Masukkan suhu sumber = 100


Masukkan satuan asal = C
Masukkan satuan tujuan = R
Hasil konversi suhu 100 C = 80 R

Prodi Manajemen Informatika-Polmed 55


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 9

1. PERTEMUAN : 13
2. JUDUL : ARRAY DIMENSI 1
3. TUJUAN :
a. Menjelaskan dan menggunakan array berdimensi satu
b. Menjelaskan deklarasi dan akses variabel array dimensi 1

4. DASAR TEORI
Array merupakan kumpulan data dengan setiap elemen data menggunakan nama dan tipe
data yang sama. Setiap elemen dapat diakses dan dibedakan dengan indeks array. Array
terdiri dari :
 Array dimensi 1
 Array dimensi dua
 Array dimensi banyak
 Array tak berukuran

Array Dimensi 1

Array berdimensi satu memiliki ketentuan sebagai berikut:


 Setiap elemen array dapat diakses melalui indeks.
 Indeks array secara default dimulai dari 0.
 Deklarasi Array
Bentuk umum :

Tipe_array nama_var_array[ukuran];

Keterangan :
Tipe : tipe data array
Nama_var_array : nama variabel array
Ukuran : menentukan jumlah maksimal elemen array
a. Deklarasi array
Contoh :

Prodi Manajemen Informatika-Polmed 56


Modul Praktikum Logika dan Algoritma Pemrograman

float nilai[10]
b. Mengakses elemen array
Data array akan disimpan dalam memori pada lokasi yang berurutan. Elemen
pertama mempunyai indeks bernilai 0 dan seterusnya.
Bentuk umum akses elemen array :

Nama_var_array[indeks]

Contoh :
Nilai[1] : elemen ke-1 dari nilai
Nilai[2] : elemen ke-2 dari nilai

Dari contoh diatas array berdimensi satu dapat digambarkan sebagai berikut:
int Nilai [5];

Nilai[0] Nilai[1] Nilai[2] Nilai[3] Nilai[4]


80 98 75 60 90

Contoh program :
/* Program array dimensi 1 untuk menyimpan sejumlah data nilai */
#include <stdio.h>
#define maks 7
main()
{
int j;
float total, rata2;
float nilai[maks]; /* deklarasi array*/
/* input data nilai */
for ( j= 0; j < maks; j++)
{
printf(“Nilai ke- %d : “, j);
scanf(“%f”, &nilai[ j ]);
}

Prodi Manajemen Informatika-Polmed 57


Modul Praktikum Logika dan Algoritma Pemrograman

/* Menghitung total nilai */


total=0;
for ( j= 0; j < maks; j++)
total=total+nilai[j];
/* Hitung rata-rata */
rata2=total/maks;
/* Cetak total dan rata-rata */
printf (“ Nilai total = %.2f\n”,total);
printf (“ Nilai rata-rata = %.2f\n”,rata2);
getch();
}

5. PERCOBAAN

1. Menginput data kedalam variable array

/* Program untuk menginput nilai mahasiswa ke dalam array satu dimensi */


#include “stdio.h”
#include “conio.h”
main()
{
int index, nilai[10];
clrscr();
/* input nilai mahasiswa */
printf(“Input nilai 10 mahasiswa : “);
for(index=0; index < 10; index++)
{ printf(“Mahasiswa %i : “, index+1);
scanf(“%i”, &nilai[index]);
}
/* tampilkan nilai mahasiswa */
printf(“Nilai mahasiswa yang telah diinput”);
for(index=0; index < 10; index++)
{ printf(“%5.0i”, nilai[index]);
}
getch();
}

2. Array bertipe data karakter


/* Program untuk menentukan jurusan & jenjang mahasiswa berdasarkan NIM*/
#include “stdio.h”
#include “conio.h”

Prodi Manajemen Informatika-Polmed 58


Modul Praktikum Logika dan Algoritma Pemrograman

#include “string.h”
void main()
{ char jurusan[25], jenjang[10], nim[10], nama[20];
crlscr();
printf(“Masukkan nama Anda : “); gets(nama);
printf(“Masukkan NIM Anda : “); gets(nim);
/***** cari jurusan *****/
switch(nim[2])
{
case ‘1’ : strcpy(jurusan, “Sistem Informasi”);
break;
case ‘2’ : strcpy(jurusan, “Manajemen Informatika”);
break;
case ‘3’ : strcpy(jurusan, “Teknik Komputer”);
break;
case ‘4’ : strcpy(jurusan, “Komputerisasi Akuntansi”);
break;
default : printf(“Anda salah memasukkan NIM. Coba periksa lagi !”);
break;
}
/***** cari jenjang *****/
if(nim[4] == ‘5’)
{ strcpy(jenjang, “Strata-1”);
}
else
{ if(nim[4] == ‘3’)
{ strcpy(jenjang,”Diploma-3”);
}
else
printf(“Anda salah memasukkan NIM. Coba periksa lagi !”);
}
/***** tampilkan data mahasiswa *****/
printf(“ << Data Mahasiswa Politeknik Negeri Medan >>“);
printf(“Nama : %s”, nama);
printf(“NIM : %s”, nim);
printf(“Jurusan : %s”, jurusan);
printf(“Jenjang : %s”, jenjang);
getch();
}

3. Mengisi dan menampilkan beberapa variabel array


#include<stdio.h>
main()
{
int nilai[10];
int index;
printf("Masukkan nilai yang akan diinputkan \n");

Prodi Manajemen Informatika-Polmed 59


Modul Praktikum Logika dan Algoritma Pemrograman

//mengisi masing-masing array dengan nilai yang diinputkan


for(index=0;index<10;index++)
scanf("%d",&nilai[index]);
printf("Data yang di-outputkan adalah \n");
//menampilkan data di layar
for(index=0;index<10;index++)
printf("nilai[%d] = %d\n",index,nilai[index]);
}
4. Menginisialisasi elemen array bertipe integer
#include <stdio.h>
main()
{
int i;
int nilai[10] = {0, 1, 4, 9, 16};
/* dgn sendirinya nilai lainnya diset nol */
for(i=5; i<10; i++)
nilai[i] = i * i;
for(i=0; i<10; i++)
printf("nilai[%d] = %d\n", i, nilai[i]);
}

5. Menjumlahkan data-data yang terdapat dalam urutan array


#include<stdio.h>
void tambah(int [], int);
main()
{
int a,dataku[5]={1,3,4,7,10};
for(a=0;a<5;a++)
printf("data ke - %d : %d\n",a,dataku[a]);
printf("Kirimkan nilai ini ke fungsi \n");
tambah(dataku,5);
}
void tambah(int datamu[],int juml_data)
{
int i,total=0;
for(i=0;i<juml_data;i++)
total=total+datamu[i];
printf("Hasil penjumlahan total adalah : %d\n",total);
}

6. Menentukan nilai maksimum dari sederetan nilai yang sudah diinisialisasi dan
disimpan dalam array; mengirim array sebagai parameter sebuah fungsi.
#include<stdio.h>
int maks(int [],int);
main()
{
int i;
int data1[]={5,34,56,-12,3,19};

Prodi Manajemen Informatika-Polmed 60


Modul Praktikum Logika dan Algoritma Pemrograman

int data2[]={1,-2,34,207,93,-12};
for(i=0;i<6;i++)
printf("data1[%d]= %d\n",i,data1[i]);
for(i=0;i<6;i++)
printf("data2[%d]= %d\n",i,data2[i]);
printf("nilai maksimum dari data1[] adalah %d\n",
maks(data1,6));
printf("nilai maksimum dari data2[] adalah %d\n",
maks(data2,6));
}
int maks(int nilai[],int jumlah_data)
{
int terbesar,i;
terbesar=nilai[0];
for(i=1;i<jumlah_data;i++)
if(nilai[i] > terbesar)
terbesar=nilai[i];
return terbesar;
}

6. LATIHAN

1. Buat algoritma dan program untuk menghitung nilai rata-rata sbb :


Input : jumlah data (n), data ke-1 s/d data ke-n
Output : nilai maks, nilai min, nilai rata-rata
2. Ubahlah program di atas sehingga mendapatkan tampilan seperti di bawah ini:

No. Nilai Total Rata-rata


1. 85 85 85.00
2. 95 180 90.00
3. 60 240 80.00
4. 80 320 80.00
5. 50 370 74.00
6. 100 470 78.33
Nilai maks = 100
Nilai min = 50
Nilai rata-rata = 78.33
Nilai terbaik adalah nilai ke = 6

Prodi Manajemen Informatika-Polmed 61


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 10

1. PERTEMUAN : 14
2. JUDUL : ARRAY DIMENSI 2 ATAU BANYAK
3. TUJUAN :
a. Menjelaskan dan menggunakan array berdimensi dua
b. Menjelaskan deklarasi/akses variabel array dimensi 2 atau banyak
c. Menjelaskan tentang array berdimensi banyak

4. DASAR TEORI

Array Dimensi 2

Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom.
Bentuknya dapat berupa matriks atau tabel.

Deklarasi array :
Tipe_array nama_array[baris][kolom];

Contoh :
Int X[3][4];

Cara mengakses elemen array :

Untuk mengakses elemen array, misalnya kita ingin mengisi elemen array baris 2 kolom 3
dengan nilai 10 maka perintahnya adalah sebagai berikut :
X[1][2] = 10;

Array Dimensi Banyak

Prodi Manajemen Informatika-Polmed 62


Modul Praktikum Logika dan Algoritma Pemrograman

Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua.
Bentuk pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi
dua.
Bentuk umumnya yaitu :
tipe_array nama_array[ukuran1][ukuran2]…[ukuranN];
Contoh :
float X[2][4][3];

5. PERCOBAAN

1. Program menginput nilai(bilangan) ke dalam array dimensi dua dan


menampilkannya

#include “stdio.h”
#include “conio.h”
void main()
{ int baris, kolom, matriks[3][4];
clrscr();

// Input elemen array secara Row Major Order


printf(“Input elemen Array : \n“);
for(baris=0; baris<3; baris++)
{ for(kolom=0; kolom<4; kolom++)
{ printf(“matriks[%i][%i]”, baris+1, kolom+1);
scanf(“%i”, &matriks[baris][kolom]);
}
printf(“\n”);
}
// Tampilkan elemen Array secara Row Major Order
printf(“Isi array : \n”);
for(baris=0; baris<3; baris++)
{ for(kolom=0; kolom<4; kolom++)
{ printf(“%i”, &matriks[baris][kolom]);
}
printf(“\n”);
}
getch();
}

2. Program penjumlahan matriks dua dimensi dan menampilkannya

Prodi Manajemen Informatika-Polmed 63


Modul Praktikum Logika dan Algoritma Pemrograman

/* Program penjumlahan matriks dua dimensi */


#include "stdio.h"
#include "conio.h"
void main()
{ int A[3][4], B[3][4], X[3][4], Y[3][4], C[3][4], i, j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{ printf("input data matrik A[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{ printf("input data matrik B[%i][%i] : ",i+1,j+1);
fflush(stdin);scanf("%i",&B[i][j]);
}
}
/******** Proses penjumlahan matriks A dan B ********/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{ X[i][j]=A[i][j]+B[i][j];
}
}
/******** Cetak isi matriks A ********/
printf("\n matrik A\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%6i",A[i][j]);
printf("\n");
}
printf("\n");

/******** Cetak isi matriks B *******/


printf("\n matrik B\n");
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%6i",B[i][j]);printf("\n");
}
printf("\n");

/******** Cetak hasil penjumlahan matriks A dan B *******/


printf("\n matrik penjumlahan A+B\n");
for(i=0;i<3;i++)

Prodi Manajemen Informatika-Polmed 64


Modul Praktikum Logika dan Algoritma Pemrograman

{ for(j=0;j<4;j++)
printf("%6i",X[i][j]);printf("\n");
}
printf("\n\n");
getch();
}

3. Program Menghitung Invers Matriks Dengan Metode Gauss-Jordan dan


Menampilkannya
#include "stdio.h"
#include "conio.h"
void main()
{ float p[20], a[20][20], t;
int m, i, j, k, x;
clrscr();
printf("\nMasukkan ukuran matriks : \n");
scanf("%d", &m);
printf("\nMasukkan nilai elemen matriks yang akan diinvers”);
printf(“\nsecara baris per baris\n");
/* Membaca matriks asli */
for(i=1; i<=m; i++)
{ printf("\n");
for(j=1; j<=m; j++)
{ printf("A(%d,%d)= ",i, j);
scanf("%f", &a[i][j]);
}
}
/* Mencetak Matriks asli */
printf("\nMatriks asli : ");
for(i=1; i<=m; i++)
{ printf("\n");
for(j=1; j<=m; j++)
printf(" %.2f", a[i][j]);
}
/* Proses inversi */
for(i=1; i<=m; i++)
{ p[i] = a[i][j];
a[i][j] = 1;
for(j=1; j<=m; j++)
{ a[i][j] = a[i][j]/p[i];
}
for(k=1; k<=m; k++)
{ if(k != i)
{ t = a[k][i];
a[k][i] = 0;
for(x=1; x<=m; x++)
a[k][x] = a[k][x] - a[i][x] * t;
}

Prodi Manajemen Informatika-Polmed 65


Modul Praktikum Logika dan Algoritma Pemrograman

}
}
/* Mencetak matriks hasil inversi*/
printf("\n\nMatriks inversi : \n");
for(i =1; i <=m; i++)
{ for(j=1; j<=m; j++)
printf(" %.1f", a[i][j]);
printf(" \n");
}
getch();
}

6. LATIHAN

1. Buatlah algoritma dan program untuk menginput, menghitung dan menampilkan


hasil perkalian matriks 3 x 3
2. Apa yang tercetak dari program berikut ini :
#include <stdio.h>
#define SIZE 10
int whatIsThis(int [], int);
void main() {
int total, a[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
total = whatIsThis(a, SIZE);
printf("\nNilai variabel total adalah %d", total);
}
int whatIsThis(int b[], int size)
{ if (size == 1)
return b[0];
else
return b[size-1] + whatIsThis(b, size-1);
}

Prodi Manajemen Informatika-Polmed 66


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 11

1. PERTEMUAN : 15
2. JUDUL : OPERASI STRING
3. TUJUAN :

a. Menjelaskan konsep string


b. Menjelaskan dan menggunakan operasi I/O pada string.
c. Menjelaskan dan menggunakan cara akses elemen string
d. Menjelaskan dan menggunakan fungsi-fungsi string

4. DASAR TEORI

String merupakan data yang biasa dipakai untuk menampung dan memanipulasi teks.
Dalam bahasa C, string bukanlah sebagai tipe data tersendiri, melainkan jenis khusus dari
array.

4.1 Konstanta string


Konstanta string ditulis diawali dengan dan diakhiri tanda petik ganda serta diakhiri
dengan karakter NULL, contoh :
INFORMATIKA
Konstanta string diatas disimpan dalam memori secara berurutan dengan komposisi seperti
berikut :

I N F O R M A T I K A \0

Setiap karakter menempati memori sebesar 1 byte, byte terakhir secara otomatis berisi
karakter NULL (\0).

4.2 Variabel string


Merupakan variabel yang digunakan untuk menyimpan string, contoh :
char nama[20];

Prodi Manajemen Informatika-Polmed 67


Modul Praktikum Logika dan Algoritma Pemrograman

Merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal 20


karakter termasuk karakter NULL.

4.3 Input dan tampil data string


Input data string ke dalam suatu variabel biasa dilakukan dengan memakai fungsi gets( )
dan scanf(). Pada fungsi scanf() pemasukkan data string tidak boleh pakai spasi dan
pembacaan data tidak perlu menggunakan operator alamat (&), karna nama array tanpa
kurung siku sudah merupakan alamat.
Sedangkan untuk menampilkan isi variabel string ke layar digunakan fungsi puts( ) dan
printf( ).
Contoh Program :
/* Program input data string */
#include<stdio.h>
main()
{
char nama[20];
printf(“Ketikan Nama Anda :”); gets(nama);
printf(“Halo, %s, Selamat Belajar Operasi String \n”, nama);
getch();
}

4.4 Fungsi string


Berfungsi untuk memanipulasi string.
Jenis fungsi string :
 strcpy()
Bentuk umum : strcpy(tujuan, asal). Untuk menyalin string asal ke variabel tujuan
 strlen()
Untuk menghitung jumlah karakter dalam string (karakter NULL tidak dihitung)
 strcat()
Bentuk umum : strcpy(tujuan, sumber). Untuk menambahkan string sumber ke
akhir string tujuan
 strcmp()

Prodi Manajemen Informatika-Polmed 68


Modul Praktikum Logika dan Algoritma Pemrograman

Bentuk umum : var_int =strcmp(str1, str2). Untuk membandingkan string str1


dengan string str2
 strlwr()
Bentuk umum : strlwr(string_x). Untuk mengubah huruf kapital dalam string_x
menjadi huruf kecil.
 strupr()
Bentuk umum : strupr(string_x). Untuk mengubah setiap huruf kecil dalam string_x
menjadi huruf kapital.

5. PERCOBAAN

1. Input data string dari keyboard


#include <stdio.h>
#define MAKS 15
main()
{
char nama[MAKS];
clrscr();
printf("Masukkan nama Anda : ");
gets(nama);
printf("\nHalo, %s. Selamat belajar string.\n", nama);
getch();
}

2. Menghitung banyaknya karakter dari suatu string yang dimasukkan melalui


keyboard.
/* File program : karakter.c */
#include <stdio.h>
#define MAKS 256
main()
{
int i, jumkar = 0;
char teks[MAKS];
puts("Masukkan suatu kalimat (maks 255 karakter).");
//masukan dari keyboard
gets(teks);
for(i=0; teks[i]; i++)
jumkar++;
printf("\nJumlah karakter = %d\n", jumkar);
}

3. Menyalin sebuah string masukan.


/* File program : salinstr1.c */

Prodi Manajemen Informatika-Polmed 69


Modul Praktikum Logika dan Algoritma Pemrograman

#include<stdio.h>
#define MAKS 30
main()
{
int i;
char asli[] = "Saya menyukai bahasa C";
char salinan[MAKS];
i=0;
while(asli[i] != '\0')
{
salinan[i]=asli[i];
i++;
}
salinan[i]='\0';
printf("Isi salinan adalah : %s\n",salinan);
}

4. Menyalin isi string2 ke string1 menggunakan fungsi strcpy().


/* File program :salinstr2.c */
#include<stdio.h>
#include<string.h>
main()
{
char str1[80];
char str2[]="ABCDE";
strcpy(str1,str2);
printf("Isi string 1 adalah : %s\n",str1);
printf("Isi string 2 adalah : %s\n",str2);
}

5. Menghitung jumlah karakter dari suatu string masukan menggunakan fungsi


strlen().
#include <stdio.h>
#include <string.h>
#define MAKS 256
main()
{
char kal[MAKS];
printf("Masukkan kalimat yang akan dihitung
panjangnya :\n");
gets(kal);
printf("\nPanjang string tsb = %d karakter\n",
strlen(kal));
}

6. Menggabungkan isi string1 dengan string2 menggunakan fungsi strcat().


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

Prodi Manajemen Informatika-Polmed 70


Modul Praktikum Logika dan Algoritma Pemrograman

#define PJG 15
main()
{
char str1[PJG], str2[PJG];
strcpy(str1,"sala"); //str1 diisi "sala"
strcpy(str2,"tiga"); //str2 diisi "tiga"
strcat(str1,str2); //tambahkan isi str2 di akhir str1
printf("str1 --> %s str2 --> %s\n",str1,str2);
}

7. Membandingkan isi string1 dengan string2 menggunakan fungsi strcmp().


#include<stdio.h>
#include<string.h>
main()
{
char str1[]="ABcde";
char str2[]="ABCDE";
int hasil;
hasil=strcmp(str1,str2);
if(hasil==0)
printf("String 1 sama dengan String 2\n");
else if(hasil < 0)
printf("String 1 lebih kecil dari String 2\n");
else
printf("String 1 lebih besar dari String 2\n");
}

6. LATIHAN
1. Buat program untuk membalik string masukan.
Input : string masukan
Output : hasil pembalikan string masukan
Contoh :

Kalimat yang mau dibalik : Saya sedang belajar C

Hasil pembalikan kalimat : C rajaleb gnades ayaS

(Petunjuk : gunakan fungsi strlen() untuk mendapatkan panjang kalimat)

Prodi Manajemen Informatika-Polmed 71


Modul Praktikum Logika dan Algoritma Pemrograman

2. Buat program untuk menghasilkan keluaran sbb :


PROGRAM
PROGRA
PROGR
PROG
PRO
PR
P

Petunjuk :
- gunakan fungsi strlen() untuk menghitung panjang string yang prototypenya ada di
file <string.h>
- gunakan function call (pemanggilan fungsi)
- index array dimulai dari indeks ke-0

Prodi Manajemen Informatika-Polmed 72


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 12

1. PERTEMUAN : 16
2. JUDUL : PRE-DEFINED FUNCTION MATEMATIKA, KONVERSI
TIPE DATA.
3. TUJUAN :
a. Menjelaskan dan menggunakan fungsi operasi Matematika
b. Menjelaskan dan menggunakan berbagai fungsi Matematika
c. Menjelaskan dan melakukan cara mengkonversi Tipe data

4. DASAR TEORI

4.1 Fungsi Matematika

Fungsi Operasi Matematika (tersimpan dalam header “math.h” dan “stdlib.h”) yaitu
diantaranya :
 sqrt()
Digunakan untuk menghitung akar dari sebuah bilangan.
Bentuk umum : sqrt(bilangan);
 pow()
Digunakan untuk menghitung pemangkatan suatu bilangan.
Bentuk umum : pow(bilangan, pangkat);
 sin(), cos(), tan()
Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan tangens dari
suatu sudut.
Bentuk umum :
sin(sudut);
cos(sudut);
tan(sudut);
 div()
Digunakan untuk menghitung hasil pembagian dan sisa pembagian.
Bentuk umum : div_t div(int x, int y)
Strukturnya :
typedef struct
{ int qout; // hasil pembagian
int rem // sisa pembagian
} div_t;

Prodi Manajemen Informatika-Polmed 73


Modul Praktikum Logika dan Algoritma Pemrograman

 max()
Digunakan untuk menentukan nilai maksimal dari dua buah bilangan.
Bentuk umum : max(bilangan1, bilangan2);
 min()
Digunakan untuk menentukan bilangan terkecil dari dua buah bilangan.
Bentuk umum : min(bilangan1, bilangan2);

4.2 Fungsi Konversi Tipe data


 atof()
Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double.
Bentuk umum : atof(char x);
 atoi()
Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer.
Bentuk umum : atoi(char x);

5. PERCOBAAN

1. Program Menghitung x Pangkat y dan menampilkan hasilnya.


#include “stdio.h”
#include “conio.h”
#include “math.h”
void main()
{ int x, y;
float z;
clrscr();
printf(“Menghitung x pangkat y\n”);
printf(“x = “); scanf(“%i”, &x);
printf(“y = “); scanf(“%i”, &y);
printf(“ %i dipangkatkan dengan %i adalah %7.2lf”, x, y, pow(x, y));
getch();
clrscr();
printf(“Menghitung akar suatu bilangan z\n”);
printf(“z = “); scanf(“%f”, &z);
printf(“Akar dari %f adalah %7.2lf”, z, sqrt(z));
getch();
}

2. Program Menghitung nilai sinus, cosinus dan tangent


#include “stdio.h”
#include “conio.h”
#include “math.h”
void main()

Prodi Manajemen Informatika-Polmed 74


Modul Praktikum Logika dan Algoritma Pemrograman

{ float sudut;
clrscr();
printf(“Menghitung nilai sinus, cosinus dan tangens\n”);
printf(“Masukkan sudut : “); scanf(“%f”, &sudut);
printf(“Nilai sinus %.2f derajat adalah %.3f”, sudut, sin(sudut));
printf(“Nilai cosinus %.2f derajat adalah %.3f”, sudut, cos(sudut));
printf(“Nilai tangens %.2f derajat adalah %.3f”, sudut, tan(sudut));
getch();
}

1. Program Menghitung sisa dan hasil pembagian x dan y berikut hasil


tampilannya.

#include “stdio.h”
#include “conio.h”
#include “stdlib.h”
void main()
{ int x, y;
div_t hasil;
clrscr();
printf(“Menghitung sisa dan hasil pembagian x dengan y\n”);
printf(“x = “); scanf(“%i”, &x);
printf(“y = “); scanf(“%i”, &y);
hasil = div(x,y);
printf(“\n\n %3i div %3i = %3i sisa %3i”, x, y, hasil.quot, hasil.rem);
getch();
}

2. Program Menentukan bilangan terbesar dan terkecil berikut hasil tampilannya.

#include “stdio.h”
#include “conio.h”
#include “stdlib.h”
void main()
{ int x, y, z;
clrscr();
printf(“Menentukan bilangan terbesar dan terkecil\n”);
printf(“X = “); scanf(“%i”, &x);
printf(“Y = “); scanf(“%i”, &y);
printf(“Z = “); scanf(“%i”, &z);
printf(“\nBilangan terbesar : %i”, max(max(x, y), z));
printf(“\nBilangan terkecil : %i”, min(min(x, y), z));
getch();
}
3. Program Mengkonversikan Tipe data dan menampilkan hasilnya
#include “stdio.h”
#include “conio.h”
#include “math.h”

Prodi Manajemen Informatika-Polmed 75


Modul Praktikum Logika dan Algoritma Pemrograman

void main()
{ char x[4] = “100”, y[5] =”10.3”;
int a;
float b;
clrscr();
a = atoi(x); b = atof(y);
printf(“Semula A = %s B = %s\n”, x,y);
printf(“Setelah dikonversi A = %i B = %.2f”, a,b);
getch();
}

Prodi Manajemen Informatika-Polmed 76


Modul Praktikum Logika dan Algoritma Pemrograman

MODUL 13
1. PERTEMUAN : 17 DAN 18
2. JUDUL : OPERASI FILE
3. TUJUAN :
a. Menjelaskan struktur file
b. Menjelaskan tahap-tahap operasi pada file
c. Menjelaskan dan menggunakan fungsi untuk penyimpanan dan pembacaan file

4. DASAR TEORI
Secara umum program melibatkan media disk sebagai tempat untuk membaca atau
menyimpan data. Data sendiri disimpan dalam disk dalam suatu kesatuan yang disebut file.
Suatu file merupakan organisasi dari sejumlah record. Masing-masing record dapat terdri
dari satu atau beberapa field dan setiap field terdiri dari satu atau beberapa byte data. Satu
byte data terdiri dari 8 bit data. Struktur data dari fle ditunjukkan pada gambar

FILE

RECORD …….. RECORD

FIELD …….. FIELD

BYTE BYTE
(8 BIT) (8 BIT)

Gambar 5 : Struktur File

4.1 Tahapan operasi fle


Operasi file pada dasarnya meliputi tiga tahapan :
1. Membuka / Mengaktifkan file
2. Melaksanakan proses file
3. Menutup file

Prodi Manajemen Informatika-Polmed 77


Modul Praktikum Logika dan Algoritma Pemrograman

a. Membuka / Mengaktifkan file


Sebelum file dapat diakses (dibaca atau ditulisi), mula-mula file harus diaktifkan lebih
dulu. Untuk keperluan ini fungsi yang digunakan yaitu fopen(). Bentuk deklarasinya :
FILE *fopen(char *namafile, char *mode);
Keterangan :
nama file : menyatakan nama dari file yang akan diaktifkan
mode : jenis operasi yang akan dilakukan terhadap file.

b. Proses/operasi file

Jenis-jenis operasi file adalah :


 r : menyatakan file hanya akan dibaca, jika file belum ada maka tidak akan berhasil.
 w: menyatakan bahwa file baru diciptakan. Jika file tersebut sudah ada dalam disk,
isinya yang lama akan terhapus.
 a : untuk membuka file yang sudah ada untuk ditambah dengan data, jika file belum
ada akan dibuat yang baru.
 r+ : sama dengan “r” , selain file dapat dibaca, file juga dapat ditulisi.
 w+ : sama dengan “w”, selain file dapat ditulis, file juga dapat dibaca.
 a+ : sama dengan “w”, selain file dapat ditulis, file juga dapat dibaca.

c. Menutup file
Apabila suatu file tidak diproses lagi, file perlu ditutup. Hal ini sangat penting terutama
jika melakukan pemrosesan file yang jumlahnya lebih dari satu.
Untuk menutup file, fungsi yang digunakan adalah fclose(). Bentuk deklarasinya :

Int fclose(FILE *pf);

Fungsi fclose() menghasilkan keluaran berupa nol jika operasi penutupan file berhasil
dilakukan.

Prodi Manajemen Informatika-Polmed 78


Modul Praktikum Logika dan Algoritma Pemrograman

4.2 File Biner dan File Teks


File biner adalah file yang pola penyimpanan di dalam disk berbentuk biner, yaitu
seperti bentuk pada memori komputer. Misalnya data bertipe int selalu akan menempati
ruang 2 byte, berapapun nilainya.
Sedangkan file teks merupakan file yang pola penyimpanannya dalam bentuk
karakter. Bilangan bertipe int bisa saja menempati 1 byte, 2 byte dsb tergantung dari nilai
bilangan. Sebagai contoh, bilangan 54 akan disimpan dalam 2 byte (berupa karakter 5 dan
4), tetapi bilangan 123 memerlukan 3 byte. File seperti ini bisa dilihat dalam editor bertipe
text (disimpan sebagai file dengan ekstensi .TXT).
Penambahan yang perlu dilakukan untuk menentukan mode teks atau biner berupa :
• t untuk mode teks

Contoh :
"rt" : mode file adalah teks dan file hendak dibaca
"rt+” : mode file adalah teks dan file bisa dibaca dan ditulisi.
Bisa juga ditulis : "r+t"
"rb" : mode file adalah biner dan file hendak dibaca.

4.3 Operasi Penyimpanan dan Pembacaan File Per Blok

Merupakan proses yang dilakukan untuk menyimpan atau membaca data file dalam bentuk
kesatuan blok (byte), seperti untuk menyimpan data bertipe float atau data bertipe sturct
(Struktur) digunakan fungsi fread() dan fwrite(). Bentuk deklarasinya :

int fread(void *buffer, int n, FILE *ptr_file);

int fwrite(void *buffer, int jum_byte, int n, FILE *ptr_file);

Keterangan :

Buffer : Pointer yang menunjuk kearah memory yang akan ditempati data
dari file disk untuk fungsi fread() atau fwrite()
Jum_byte : Jumlah byte yang akan dibaca atau disimpan
n : Menentukan banyaknya blok data berukuran jum_byte yang akan
ditulis atau dibaca.
Ptr_file : Berupa pointer ke File yang berisi nilai keluaran dari fopen()

Prodi Manajemen Informatika-Polmed 79


Modul Praktikum Logika dan Algoritma Pemrograman

5. PERCOBAAN

1. Menciptakan dan mengisi file dengan data karakter dari keyboard


#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *pf;
char kar;
//membuka file
pf=fopen("COBA.TXT","a");
if(pf==NULL)
{
printf("File tidak bisa dibuka\n");
exit(1);
}
printf("Ketikkan apa saja, akhiri dengan ENTER.\n");
printf("Program akan membaca perkarakter");
printf(" dan menyimpannya dalam file COBA.TXT\n\n");
//memasukkan karakter per karakter
while((kar = getchar()) != '\n')
fputc(kar,pf);
//menutup file
fclose(pf);
getch();
}

2. Membaca isi file dan menambah isinya

#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *pd;
char kar;
//Buka file
pd=fopen("COBA.TXT","r+");

if(pd==NULL)
{
printf("File tidak dapat dibuka \n");
exit(1);
}
//Baca karakter per karakter sampai ketemu End Of FIle
while((kar=fgetc(pd)) != EOF)
fputchar(kar);

Prodi Manajemen Informatika-Polmed 80


Modul Praktikum Logika dan Algoritma Pemrograman

while((kar=getchar()) != '\n')
fputc(kar,pd);
fclose(pd); //tutup file
}

3. Menulis data pada file bertipe biner


#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *pf;
int i,data,nilai;
pf=fopen("data.dat","wb");
if(pf==NULL)
{
printf("File tidak bisa dibuka\n");
exit(1);
}
printf("Masukkan banyaknya data\n");
scanf("%d",&data);
for(i=1;i<=data;i++)
{
printf("data yang disimpan : ");
scanf("%d",&nilai);
_putw(nilai,pf);
}
printf("\nOke. Data sudah disimpan di file\n");
fclose(pf);
}

4. Membaca isi file biner menggunakan getw()


#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *pf; /* ptr ke file */
int nilai, nomor = 0;
/* Buka file biner untuk dibaca */
if((pf=fopen("data.DAT","rb")) == NULL)
{
printf("File gagal dibuka.\n");
exit(1);
}
printf("Isi file data.DAT : \n");
while(1) /* file berhasil dibuka */
{
nilai = _getw(pf); /* Baca sebuah int dr file */
if (feof(pf) != 0) break; /*Jika akhir file, keluar loop*/

Prodi Manajemen Informatika-Polmed 81


Modul Praktikum Logika dan Algoritma Pemrograman

printf("%2d. %d \n", ++nomor, nilai); /* Tampilkan ke layar */


}
fclose(pf); /* Tutup file */
}

5. Membaca isi file teks


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
FILE *pf;
char nama[20];
pf=fopen("coba.txt","r");
if(pf==NULL)
{
printf("File gagal dibuka\n");
exit(1);
}
while (fgets(nama,6,pf))
printf("%s\n",nama);
fclose(pf);
}

6. Mengganti nama file


#include <stdio.h>
#include <stdlib.h>
#define PJG 65
main()
{
int kode;
char namafilelama[PJG], namafilebaru[PJG];
printf("Nama file yang akan diganti : ");
gets(namafilelama);
printf("Nama file yang baru : ");
gets(namafilebaru);
kode = rename(namafilelama, namafilebaru);
if(kode == 0)
printf("Nama file sudah diganti\n");
else
printf("Gagal dalam mengganti nama\n");
}

7. Menghapus file
#include <stdio.h>
#include <stdlib.h>
#define PJG 65
main()

Prodi Manajemen Informatika-Polmed 82


Modul Praktikum Logika dan Algoritma Pemrograman

{
int kode;
char namafile[PJG];
printf("Nama file yang akan dihapus : ");
gets(namafile);
kode = remove(namafile);
if(kode == 0)
printf("File sudah dihapus\n");
else
printf("Gagal dalam menghapus file\n");
}

6. LATIHAN
a. Buat program untuk menyimpan dan membaca data dari file mahasiswa dengan
data input : Nama, Nim, Nilai
b. Buat program untuk menyimpan dan menampilkan data dari file pegawai dengan
data input : Nama, NIP, Gol, Status. Output yang diinginkan seperti berikut :

DAFTAR GAJI PEGAWAI

NO NAMA NIP GOLONGAN GAJI TUNJANGAN TOTAL


POKOK GAJI

TOTAL

Prodi Manajemen Informatika-Polmed 83


Modul Praktikum Logika dan Algoritma Pemrograman

1. PERTEMUAN : 19
2. JUDUL : MINGGU KOMPENSASI

1. PERTEMUAN : 20
2. JUDUL : UJIAN SEMESTER

Prodi Manajemen Informatika-Polmed 84


Modul Praktikum Logika dan Algoritma Pemrograman

DAFTAR REFERENSI

1. Abdul Kadir, 2002, Pemrograman Dasar Turbo C Untuk IBM PC, Andi
Yogyakarta
2. Agfianto E P, 2002, Teknik Antarmuka Komputer : Konsep dan Aplikasi, Graha
Ilmu Yogyakarta
3. Rinaldi M, 2000, Algoritma dan Pemrograman dalam Bahasa Pascal dan C,
Informatika Bandung

Prodi Manajemen Informatika-Polmed 85

Anda mungkin juga menyukai