• Tidak ada hasil yang ditemukan

Modul Algoritma & Pemrograman Bahasa C - Tipe Data, Operator, Kondisi Dan Perulangan

N/A
N/A
Protected

Academic year: 2021

Membagikan "Modul Algoritma & Pemrograman Bahasa C - Tipe Data, Operator, Kondisi Dan Perulangan"

Copied!
28
0
0

Teks penuh

(1)

I-1 I-1 1.1

1.1 TujuanTujuan

Tujuan modul I ini, adalah: Tujuan modul I ini, adalah: •

• Praktikan bisa membuat program sederhana berdasarkan algoritma.Praktikan bisa membuat program sederhana berdasarkan algoritma. •

• Praktikan dapat membiasakan diri untuk membuat Praktikan dapat membiasakan diri untuk membuat program secara terstruktur.program secara terstruktur. •

• Praktikan memahami penggunaan tipe data dan operator dalam algoritma danPraktikan memahami penggunaan tipe data dan operator dalam algoritma dan bahasa C.

bahasa C. •

• Praktikan dapat memahami algoritma kondisi dan pengulangan sertaPraktikan dapat memahami algoritma kondisi dan pengulangan serta mengimplementasikannya dalam bahasa pemrograman C.

mengimplementasikannya dalam bahasa pemrograman C.

1.2

1.2 TeoriTeori 1.2.1

1.2.1 Tipe DataTipe Data

Dalam bahasa C terdapat lima tipe data dasar, yaitu: char, int, float, Dalam bahasa C terdapat lima tipe data dasar, yaitu: char, int, float, double, dan void.

double, dan void.

Tabel 1.1 Tipe Data Dasar Berdasarkan bahasa C Tabel 1.1 Tipe Data Dasar Berdasarkan bahasa C

No

No TipeTipe Data

Data UkuranUkuran

Range Range (Jangkauan)

(Jangkauan) Format Format KeteranganKeterangan 1.

1. Char Char 1 1 byte byte - - 128 128 s/d s/d 127 127 %c %c Karakter/stringKarakter/string 2. Int

2. Int 2 2 byte byte - - 32768 32768 s/d s/d 3276732767 %i

%i

%d

%d Integer/bilangan Integer/bilangan bulatbulat 3.

3. Float Float 4 4 byte byte - - 3.4E-38 3.4E-38 s/ds/d 3.4E+38 3.4E+38

%f

%f Float/bilangan Float/bilangan pecahanpecahan 4. Double

4. Double 8 8 byte byte - - 1.7E-308 1.7E-308 s/ds/d 1.7+308 1.7+308

%lf

%lf Pecahan Pecahan presisi presisi gandaganda 5.

(2)

1)

1) Tipe Bilangan BulatTipe Bilangan Bulat

Tipe data ini digunakan untuk data-data angka yang tidak mengandung angka Tipe data ini digunakan untuk data-data angka yang tidak mengandung angka di belakang koma (Int).

di belakang koma (Int). 2)

2) Tipe Bilangan RiilTipe Bilangan Riil

Tipe ini adalah tipe yang merepresentasikan data-data bilangan yang Tipe ini adalah tipe yang merepresentasikan data-data bilangan yang mengandung angka di belakang koma. Tipe data yang termasuk ke dalam mengandung angka di belakang koma. Tipe data yang termasuk ke dalam kategori ini adalah: float,

kategori ini adalah: float, double.double. Contoh Algoritma 1:

Contoh Algoritma 1: Algoritma variable Algoritma variable {

{Program perbedaan output variableProgram perbedaan output variable}} Deklarasi Deklarasi A : integer A : integer B : real B : real C : char C : char X : double X : double Deskripsi Deskripsi A

A = = 10 10 /* /* variabel variabel A A diisi diisi dengan dengan 10 10 */ */  B

B = = 5.45 5.45 /* /* variabel variabel B B diisi diisi dengan dengan 5.45 5.45 */ */  C

C = = 'C' 'C' /* /* variabel variabel C C diisi diisi dengan dengan karakter karakter "C" "C" */ */  X

X = = 2.35E+10 2.35E+10 /* /* variabel variabel X X diisi diisi dengan dengan 2.35E+20 2.35E+20 */ */  Write("Nilai

Write("Nilai A A adalah adalah : : ", ", A) A) /* /* Menampilkan Menampilkan isi isi variabel variabel A A */ */  Write("Nilai

Write("Nilai B B adalah adalah : : ", ", B) B) /* /* Menampilkan Menampilkan isi isi variabel variabel B B */ */  Write("Nilai

Write("Nilai C C adalah adalah : : ", ", C) C) /* /* Menampilkan Menampilkan isi isi variabel variabel C C */ */  Write("Nilai

Write("Nilai X X adalah adalah : : ", ", X) X) /* /* Menampilkan Menampilkan isi isi variabel variabel X X */ */  Program Algoritma 1:

Program Algoritma 1:

 //Program perbedaan output variable  //Program perbedaan output variable

#include <stdio.h> #include <stdio.h> main() main() { int A; { int A; float B; float B; char C; char C; double X; double X; A

A = = 10; 10; /* /* variabel variabel A A diisi diisi dengan dengan 10 10 */ */  B

(3)

C

C = = 'C'; 'C'; /* /* variabel variabel C C diisi diisi dengan dengan karakter karakter "C" "C" */ */  X

X = = 2.35E+10; 2.35E+10; /* /* variabel variabel X X diisi diisi dengan dengan 2.35E+20 2.35E+20 */ */  printf("Nilai

printf("Nilai A A adalah adalah : : %i\n", %i\n", A); A); /* /* Menampilkan Menampilkan isi isi variabel variabel A A */ */  printf("Nilai

printf("Nilai B B adalah adalah : : %f\n", %f\n", B); B); /* /* Menampilkan Menampilkan isi isi variabel variabel B B */ */  printf("Nilai

printf("Nilai C C adalah adalah : : %c\n", %c\n", C); C); /* /* Menampilkan Menampilkan isi isi variabel variabel C C */ */  printf("Nilai

printf("Nilai X X adalah adalah : : %lf\n", %lf\n", X); X); /* /* Menampilkan Menampilkan isi isi variabel variabel X X */ */  }

} 3)

3) Tipe LogikaTipe Logika

Tipe ini adalah tipe yang merepresentasikan data-data yang mengandung dua Tipe ini adalah tipe yang merepresentasikan data-data yang mengandung dua buah nilai, yaitu nilai logika (boolean) – true dan false.

buah nilai, yaitu nilai logika (boolean) – true dan false. 4)

4) Tipe Karakter/StringTipe Karakter/String

Tipe character merupakan kumpulan bermacam-macam character (set of  Tipe character merupakan kumpulan bermacam-macam character (set of  character)

character) yang yang terdiri dterdiri dari alfabet.ari alfabet. •

• Alfabet bilangan desimal (decimal digits):0,1,2…9Alfabet bilangan desimal (decimal digits):0,1,2…9 •

• Alfabet huruf latin (Capital letter):A,B,…ZAlfabet huruf latin (Capital letter):A,B,…Z •

• Alfabet huruf latin kecil (common letter)a..zAlfabet huruf latin kecil (common letter)a..z

Tipe ini hanya terdiri dari 1 karakter. Dalam program konstanta bertipe char Tipe ini hanya terdiri dari 1 karakter. Dalam program konstanta bertipe char ditulis

ditulis diantara diantara tanda tanda petik petik misalnya misalnya ‘A’ ‘A’ ‘,’ ‘,’ ‘4’‘4’

1.2.2

1.2.2 Tipe Data BentukanTipe Data Bentukan

Tipe data bentukan adalah tipe data yang dibuat sendiri sesuai kebutuhan Tipe data bentukan adalah tipe data yang dibuat sendiri sesuai kebutuhan dalam program yang akan kita buat (disebut juga

dalam program yang akan kita buat (disebut juga user defined typesuser defined types). Adapun). Adapun yang termasuk ke dalam tipe

yang termasuk ke dalam tipe bentukan adalah:bentukan adalah: 1)

1) StrukturStruktur

Struktur adalah tipe data bentukan yang menyimpan lebih dari satu variabel Struktur adalah tipe data bentukan yang menyimpan lebih dari satu variabel bertipe sama maupun berbeda. Untuk mumbuat tipe data struktur dalam C, bertipe sama maupun berbeda. Untuk mumbuat tipe data struktur dalam C, menggunakan kata kunci

menggunakan kata kunci struct struct . Bentuk umum pendeklarasian tipe:. Bentuk umum pendeklarasian tipe: Struct nama struktur {

Struct nama struktur { Tipe_data variabel1; Tipe_data variabel1; Tipe_data variabel2; Tipe_data variabel2; ... ... } }

(4)

2)

2) EnumerasiEnumerasi

Tipe Enumerasi adalah tipe data yang nilainya terbatas pada nilao-nilai yang Tipe Enumerasi adalah tipe data yang nilainya terbatas pada nilao-nilai yang telah didefinisikan saja. Tipe ini digunakan untuk membentuk tipe data yang telah didefinisikan saja. Tipe ini digunakan untuk membentuk tipe data yang nilainya bersifat pasti. Misalnya nama hari,

nilainya bersifat pasti. Misalnya nama hari, jenis kelamin dan seterusnya.jenis kelamin dan seterusnya. Bentuk Umum :

Bentuk Umum : enum nama_tipe (nilai1, nilai2, nilai3, ...)enum nama_tipe (nilai1, nilai2, nilai3, ...) Contoh:

Contoh: enum enum jenis_kelami(pria, jenis_kelami(pria, wanita)wanita)

enum hari (minggu, senin, selasa, rabu, kamis, j

enum hari (minggu, senin, selasa, rabu, kamis, j umat, sabtu)umat, sabtu)  //Membuat tipe enum dengan namahari

 //Membuat tipe enum dengan namahari #include <stdio.h>

#include <stdio.h> main() {

main() {

enum Namahari{Minggu, Senin, Selasa, Rabu, Kamis, Jumat,Sabtu}; enum Namahari{Minggu, Senin, Selasa, Rabu, Kamis, Jumat,Sabtu}; printf("%d, ", Minggu); printf("%d, ", Minggu); printf("%d, ", Senin); printf("%d, ", Senin); printf("%d, ", Selasa); printf("%d, ", Selasa); printf("%d, ", Rabu); printf("%d, ", Rabu); printf("%d, ", Kamis); printf("%d, ", Kamis); printf("%d, ", Jumat); printf("%d, ", Jumat); printf("%d, ", Sabtu); printf("%d, ", Sabtu); } } Contoh Algoritma 2: Contoh Algoritma 2:

Algoritma Menampilkan nama siswa Algoritma Menampilkan nama siswa

{

{ Membuat tipe struktur dengan nama siswa Membuat tipe struktur dengan nama siswa}}

Deklarasi Deklarasi

Type Siswa <NIS[8], Nama[25], Alamat[20], Kota[15] : string> : Type Siswa <NIS[8], Nama[25], Alamat[20], Kota[15] : string> : A : Siswa A : Siswa Deskripsi Deskripsi Read(A.NIS) Read(A.NIS) Read(A.Nama) Read(A.Nama) Read(A.Alamat) Read(A.Alamat) Read(A.Kota) Read(A.Kota)

Write(A.NIS, ’ – ’, A.Nama, ’ –’, A.Alamat, ’ –

(5)

Program Algoritma 2: Program Algoritma 2:

 //Membuat tipe struktur dengan nama  //Membuat tipe struktur dengan nama siswasiswa

#include <stdio.h> #include <stdio.h> main() { main() { typedef struct { typedef struct { char NIS[8],Nama[25],Alamat[20],Kota[15];} char NIS[8],Nama[25],Alamat[20],Kota[15];} Siswa ; Siswa ; Siswa A; Siswa A; printf("NIS : ");scanf("%s",A.NIS); printf("NIS : ");scanf("%s",A.NIS); printf("Nama : ");scanf("%s",A.Nama); printf("Nama : ");scanf("%s",A.Nama); printf("Alamat : ");scanf("%s",A.Alamat); printf("Alamat : ");scanf("%s",A.Alamat); printf("Kota : "

printf("Kota : ");scanf("%s",A.Kota););scanf("%s",A.Kota); printf("%s - %s - %s -

printf("%s - %s - %s - %s",A.NIS,A.Nama,A.Alamat,A.Kota);%s",A.NIS,A.Nama,A.Alamat,A.Kota); }

}

1.2.3

1.2.3 OperatorOperator

Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator dapat terbagi atas: Operator penugasan, Operator aritmatika, Operator Operator dapat terbagi atas: Operator penugasan, Operator aritmatika, Operator hubungan (perbandingan), Operator logika, Operator bitwise dan operator unary. hubungan (perbandingan), Operator logika, Operator bitwise dan operator unary. •

• Operator PenugasanOperator Penugasan Operator Penugasan

Operator Penugasan (Assignment operato(Assignment operator) dalam bahasa C berupa tandar) dalam bahasa C berupa tanda sama dengan (“=”).

sama dengan (“=”). Contoh operator penugasan:Contoh operator penugasan: nilai = 50;nilai = 50; z = x * y;. Artinya:z = x * y;. Artinya: variabel “nilai” diisi oleh 50 dan variabel “z”

variabel “nilai” diisi oleh 50 dan variabel “z” diisi oleh hasil perkalian x dan ydiisi oleh hasil perkalian x dan y

• Operator AritmatikaOperator Aritmatika

Dalam bahasa C disediakan lima operator aritmatika, yaitu: Dalam bahasa C disediakan lima operator aritmatika, yaitu: •

• * * : : untuk untuk perkalianperkalian •

•   /   / : : untuk untuk pembagianpembagian •

• % % : un: untuk tuk sisa sisa pembagian pembagian (modulus)(modulus) •

• + + : : untuk untuk pertambahanpertambahan •

(6)

Catatan:

Catatan: operator % digunakan untuk mencari sisa pembagian antara duaoperator % digunakan untuk mencari sisa pembagian antara dua bilangan, misalnya : 9 % 2 = 1.

bilangan, misalnya : 9 % 2 = 1.

 //program penggunaan operator aritmetika:  //program penggunaan operator aritmetika:

#include "stdio.h" #include "stdio.h" #include "conio.h" #include "conio.h" main() main() { { printf("Nilai 9 + 4 = %i\n", 9 + 4); printf("Nilai 9 + 4 = %i\n", 9 + 4); printf("Nilai 9 - 4 = %i\n", 9 - 4); printf("Nilai 9 - 4 = %i\n", 9 - 4); printf("Nilai 9 * 4 = %i\n", 9 * 4); printf("Nilai 9 * 4 = %i\n", 9 * 4); printf("Nilai 9 / 4 = %i\n", 9 / 4); printf("Nilai 9 / 4 = %i\n", 9 / 4); printf("

printf("Nilai Nilai 9 9 % % 4 4 = = %i", %i", 9 9 % % 4); 4); /* /* mencetak mencetak hasil hasil 9 9 % % 4 4 */ */  }

}

• Operator Hubungan (Perbandingan)Operator Hubungan (Perbandingan)

Operator Hubungan digunakan untuk membandingkan hubungan antara dua Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variabel). Operator-operator hubungan buah operand (sebuah nilai atau variabel). Operator-operator hubungan dalam bahasa C adalah sebagai berikut:

dalam bahasa C adalah sebagai berikut:

Tabel 1.4 Operator-operator Perbandinngan Tabel 1.4 Operator-operator Perbandinngan

Operator

Operator Arti Arti ContohContoh <

< Kurang Kurang dari dari x x < < y y Apakah Apakah x x kurang kurang dari dari yy <=

<= Kurang Kurang dari dari samasama dengan

dengan

x

x <= <= y y Apakah Apakah x x kurang kurang dari dari samasama dengan y

dengan y >

> Lebih Lebih dari dari x x > > y y Apakah Apakah x x lebih lebih dari dari yy >=

>= Lebih Lebih dari dari samasama dengan

dengan

x

x >= >= y y Apakah Apakah x x lebih lebih dari dari sama sama dengandengan y

y =

= = = Sama dengan Sama dengan x x = = = = y y Apakah Apakah x x sama sama dengan dengan yy !=

!= Tidak Tidak sama sama dengan dengan x x != != y y Apakah Apakah x x tidak tidak sama sama dengan dengan yy

 //program penggunaan operator hubungan (perbandingan):  //program penggunaan operator hubungan (perbandingan):

#include “stdio.h” #include “stdio.h” #include “conio.h” #include “conio.h” void main() void main() {printf(“Nilai

{printf(“Nilai 10 10 + + 3 3 = = %i”, %i”, 10 10 + + 3); 3); /* /* mencetak mencetak hasil hasil 10 10 + + 3 3 */ */  printf(“Nilai

printf(“Nilai 10 10 - - 3 3 = = %i”, %i”, 10 10 - - 3); 3); /* /* mencetak mencetak hasil hasil 10 10 - - 3 3 */ */  printf(“Nilai

printf(“Nilai 10 10 * * 3 3 = = %i”, %i”, 10 10 * * 3); 3); /* /* mencetak mencetak hasil hasil 10 10 * * 3 3 */ */  printf(“Nilai

printf(“Nilai 10 10 / / 3 3 = = %i”, %i”, 10 10 / / 3); 3); /* /* mencetak mencetak hasil hasil 10 10 / / 3 3 */ */  printf(“Nilai

printf(“Nilai 10 10 % % 3 3 = = %i”, %i”, 10 10 % % 3); 3); /* /* mencetak mencetak hasil hasil 10 10 % % 3 3 */ */  }

(7)

• Operator LogikaOperator Logika

Jika operator hubungan membandingkan hubungan antara dua buah Jika operator hubungan membandingkan hubungan antara dua buah operand, maka operator logika digunakan untuk membandingkan logika operand, maka operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan. Operator logika ada tiga macam, hasil dari operator-operator hubungan. Operator logika ada tiga macam, yaitu :

yaitu : a)

a) && : Logika AND (dan)&& : Logika AND (dan) b)

b) || || : : Logika Logika OR OR (atau)(atau) c)

c) ! ! : : Logika Logika NOT NOT (ingkaran)(ingkaran)

• Operator BitwiseOperator Bitwise

Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori.

ada di memori.

Operator bitwise dalam bahasa C : Operator bitwise dalam bahasa C :

 << << : : Pergeseran Pergeseran bit bit ke ke kirikiri

 >> >> : : Pergeseran Pergeseran bit bit ke ke kanankanan

 & & : : Bitwise Bitwise ANDAND

 ^ ^ : : Bitwise Bitwise XOR XOR (exclusive (exclusive OR)OR)

 | | : : Bitwise Bitwise OROR

 ~ ~ : : Bitwise Bitwise NOTNOT

• Operator UnaryOperator Unary

Operator Unary merupakan operator yang hanya membutuhkan satu operand Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam bahasa C terdapat beberapa operator unary yang sering saja. Dalam bahasa C terdapat beberapa operator unary yang sering digunakan, yaitu :

digunakan, yaitu :

Tabel 1.5 Beberapa Operator Unary Tabel 1.5 Beberapa Operator Unary

Operator

Operator Arti/Maksud Arti/Maksud Letak Letak Contoh Contoh EquivalenEquivalen -

- Unary Unary minus minus Sebelum Sebelum operator operator A+-B*C A+-B*C A A + + (-B)*C(-B)*C ++

++ Peningkatan Peningkatan dengandengan penambahan nilai 1 penambahan nilai 1 Sebelum dan Sebelum dan sesudah sesudah A++ A++ A A = = A A + + 11 --

-- Penurunan Penurunan dengandengan penguranga

pengurangan nilai n nilai 11

Sebelum dan Sebelum dan sesudah sesudah A-- A-- A A = = A A - - 11 Sizeof

Sizeof Ukuran Ukuran dari dari operandoperand dalam byte

dalam byte

Sebelum

(8)

--Pada operator peningkatan ‘++’ dan penurunan ‘--' jika diletakkan sebelum Pada operator peningkatan ‘++’ dan penurunan ‘--' jika diletakkan sebelum atau sesudah operand akan terdapat perbedaan. Perhatikan contoh berikut: atau sesudah operand akan terdapat perbedaan. Perhatikan contoh berikut:

 /* Perbedaan operator peningkatan ++ yang diletakkan di depan dan

 /* Perbedaan operator peningkatan ++ yang diletakkan di depan dan dibelakangdibelakang operand */  operand */  #include <stdio.h> #include <stdio.h> #include <conio.h> #include <conio.h> void main() void main() { int X, Nilai; { int X, Nilai; X = 5; Y = 10; X = 5; Y = 10; Nilai

Nilai = = ++X; ++X; /* /* berarti berarti X X = = X X + + 1; 1; Nilai Nilai = = X; X; */ */  printf("Nilai = %d, X = %d\n", Nilai, X);

printf("Nilai = %d, X = %d\n", Nilai, X); nilai

nilai = = x++; x++; /* /* berarti berarti Nilai Nilai = = X; X; Nilai Nilai = = X X + + 1; 1; */ */  printf("Nilai = %d, X = %d\n", Nilai, X);

printf("Nilai = %d, X = %d\n", Nilai, X); nilai

nilai = = --Y; --Y; /* /* berarti berarti Y Y = = Y Y - - 1; 1; Nilai Nilai = = Y; Y; */ */  printf("Nilai = %d, Y = %d\n", Nilai, Y);

printf("Nilai = %d, Y = %d\n", Nilai, Y); nilai

nilai = = Y--; Y--; /* /* berarti berarti Nilai Nilai = = Y; Y; Y Y = = Y Y - - 1; 1; */ */  printf("Nilai = %d, Y = %d\n", Nilai, Y);

printf("Nilai = %d, Y = %d\n", Nilai, Y); }

}

1.2.4

1.2.4 Input dan OutputInput dan Output a.

a. Memasukkan DataMemasukkan Data

Dalam bahasa C proses pemasukkan data bisa menggunakan beberapa Dalam bahasa C proses pemasukkan data bisa menggunakan beberapa fungsi yang sudah tersedia di dalam program bahasa C (fungsi pustaka). fungsi yang sudah tersedia di dalam program bahasa C (fungsi pustaka). Beberapa fungsi pustaka yang bisa digunakan adalah:

Beberapa fungsi pustaka yang bisa digunakan adalah: 1.

1. scanf()scanf()

Fungsi ini digunakan untuk menginput data berupa data numerik, Fungsi ini digunakan untuk menginput data berupa data numerik, karakter dan string secara terformat. Hal-hal yang perlu diperhatikan karakter dan string secara terformat. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() :

dalam pemakaian fungsi scanf() : a.

a. Fungsi scanf() memakai penentu formatFungsi scanf() memakai penentu format b.

b. Fungsi scanf() memberi pergantian baris secara otomatisFungsi scanf() memberi pergantian baris secara otomatis c.

c. Fungsi scanf() tidak memerlukan penentu lebar fieldFungsi scanf() tidak memerlukan penentu lebar field d.

(9)

Kode penentu format : Kode penentu format :

%c : Membaca sebuah karakter %c : Membaca sebuah karakter %s : Membaca sebuah string %s : Membaca sebuah string %i, %d

%i, %d : Membaca : Membaca sebuahsebuah

bilangan bulat (integer) bilangan bulat (integer) %f, %

%f, %e e : Membaca : Membaca sebuahsebuah

bilangan pecahan (real) bilangan pecahan (real)

%o : membaca sebuah bilangan %o : membaca sebuah bilangan

octal octal

%x : Membaca sebuah bilangan %x : Membaca sebuah bilangan

heksadesimal heksadesimal %u

%u Membaca sMembaca sebuah ebuah bilanganbilangan tak bertanda

tak bertanda

2.

2. gets()gets()

Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat digunakan untuk memasukkan data numerik.

tidak dapat digunakan untuk memasukkan data numerik. 3.

3. getchar()getchar()

Fungsi getchar() digunakan untuk membaca data yang bertipe

Fungsi getchar() digunakan untuk membaca data yang bertipe karakterkarakter 4.

4. getch() dan getche()getch() dan getche()

Fungsi getch() dan getche() digunakan untuk membaca data

Fungsi getch() dan getche() digunakan untuk membaca data karakter.karakter.

Contoh Program : Contoh Program : #include “stdio.h” #include “stdio.h” #include “conio.h” #include “conio.h” void main() void main() { char

{ char Huruf1, Huruf2;Huruf1, Huruf2; printf(“Masuk

printf(“Masukkan sebuah karakter : kan sebuah karakter : “);“); Huruf1

Huruf1 = = getche(); getche(); // // karakter karakter yang yang dimasukkan dimasukkan akan akan terlihat terlihat di di layarlayar printf(“\nKa

printf(“\nKarakter yang Anda rakter yang Anda masukkan adalah %c\n”, Huruf1);masukkan adalah %c\n”, Huruf1); printf(“\nMasuk

printf(“\nMasukkan sebuah karakter lagi : kan sebuah karakter lagi : “);“); Huruf2

Huruf2 = = getch(); getch(); // // karakter karakter yang yang dimasukkan dimasukkan tidak tidak terlihat terlihat di di layarlayar printf(“\nKa

printf(“\nKarakter yang Anda rakter yang Anda masukkan adalah : masukkan adalah : %c, Huruf2);%c, Huruf2); getch();

getch(); }

}

b.

b. Menampilkan DataMenampilkan Data •

• Menampilkan Data ke Layar MonitorMenampilkan Data ke Layar Monitor Menggunakan

Menggunakan fungsi printf()fungsi printf() digunakan untuk menampilkan semuadigunakan untuk menampilkan semua   jenis data (numerik dan karakter).

  jenis data (numerik dan karakter). Fungsi puts()Fungsi puts() digunakan untuk digunakan untuk  menampilkan data string dan secara otomatis akan diakhiri dengan menampilkan data string dan secara otomatis akan diakhiri dengan perpindahan baris. Fungsi

perpindahan baris. Fungsi putchar()putchar() digunakan untuk menampilkandigunakan untuk menampilkan sebuah karakter.

(10)

Bentuk umum : printf(“%m.nf”, argument); Bentuk umum : printf(“%m.nf”, argument); Keterangan:

Keterangan: m

m : : menyatakan menyatakan panjang panjang rangerange n

n : : menyatakan menyatakan jumlah jumlah digit digit di di belakang belakang koma.koma. argument

argument : : nilai nilai atau atau variabel variabel yang yang akan akan ditampilkan.ditampilkan.

Contoh:

Contoh: printf(“%5.2f”, nilai); artinya variabelprintf(“%5.2f”, nilai); artinya variabel nilainilai akan ditampilkanakan ditampilkan sebanyak 5 digit dengan 2 digit

sebanyak 5 digit dengan 2 digit di belakang koma.di belakang koma.  /* Program untuk menampilkan data

 /* Program untuk menampilkan data berupa bilangan pecahan */ berupa bilangan pecahan */  #include “stdio.h” #include “stdio.h” #include “conio.h” #include “conio.h” void main() void main() { float Nilai1,Nilai2; { float Nilai1,Nilai2; clrscr(); clrscr();

puts(“Masukkan nilai pertama : ); scanf(“%f”, &Nilai1); puts(“Masukkan nilai pertama : ); scanf(“%f”, &Nilai1); puts(“Masukkan nilai kedua : ); scanf(“%f”, &Nilai2); puts(“Masukkan nilai kedua : ); scanf(“%f”, &Nilai2); printf(“Nilai pertama anda adalah %5.2f”, Nilai1); printf(“Nilai pertama anda adalah %5.2f”, Nilai1); printf(“Nilai kedua anda adalah %6.4f ?”,

printf(“Nilai kedua anda adalah %6.4f ?”, Nilai2);Nilai2); }

}

 /* Program untuk menampilkan data bilangan integer

 /* Program untuk menampilkan data bilangan integer dan string */ dan string */  #include “stdio.h” #include “stdio.h” #include “conio.h” #include “conio.h” void main() void main() { int Umur; { int Umur; char Nama[20]; char Nama[20]; clrscr(); clrscr();

puts(“Masukkan nama Anda : ); gets(Nama); puts(“Masukkan nama Anda : ); gets(Nama);

puts(“Masukkan umur Anda : “); scanf(“%d”, &Umur); puts(“Masukkan umur Anda : “); scanf(“%d”, &Umur); printf(“Nama

printf(“Nama Anda Anda : : %s %s \n”, \n”, Nama); Nama); //tipe //tipe data data stringstring printf(“Umur Anda : %d \n”, U

printf(“Umur Anda : %d \n”, Umur);mur); }

}

• Menampilkan data ke printerMenampilkan data ke printer

Untuk menampilkan data ke printer dapat menggunakan fungsi fprintf(), Untuk menampilkan data ke printer dapat menggunakan fungsi fprintf(), fputs() dan fputc().

fputs() dan fputc().

o

o Fungsi fprintf()Fungsi fprintf(): digunakan untuk mencetak semua jenis tipe data : digunakan untuk mencetak semua jenis tipe data keke

printer dan secara otomatis memberikan efek

(11)

o

o Fungsi fputs()Fungsi fputs(): digunakan untuk mencetak tipe data string ke printer: digunakan untuk mencetak tipe data string ke printer o

o Fungsi fputc()Fungsi fputc(): digunakan untuk mencetak tipe data karakter ke: digunakan untuk mencetak tipe data karakter ke

printer printer

1.2.5

1.2.5 KondisiKondisi a.

a. IF...THEN..., IF...THEN...ELSE... dan IF Bersarang (Nested IF)IF...THEN..., IF...THEN...ELSE... dan IF Bersarang (Nested IF)

Struktur IF, kita dapat membuat algoritma-algoritma yang melakukan perintah Struktur IF, kita dapat membuat algoritma-algoritma yang melakukan perintah berdasarkan kondisi tertentu. Perintah akan dilakukan jika hanya jika ekspresi berdasarkan kondisi tertentu. Perintah akan dilakukan jika hanya jika ekspresi boolean bernilai true (jika ekspresi boolean bernilai false maka perintah tidak  boolean bernilai true (jika ekspresi boolean bernilai false maka perintah tidak  akan dikerjakan). akan dikerjakan). IF...THEN.. IF...THEN.. .. IF...THEN...ELSE... IF...THEN...ELSE...

IF Bersarang (Nested IF) IF Bersarang (Nested IF)

IF <ekspresi boolean> then IF <ekspresi boolean> then

Perintah_1 Perintah_1 Else Else Perintah_2 Perintah_2 Endif  Endif 

IF <ekspresi boolean 1> then IF <ekspresi boolean 1> then

Perintah 1 Perintah 1

Else if <ekspresi boolean 2> then Else if <ekspresi boolean 2> then

Perintah 2 Perintah 2

Else if <ekspresi boolean n> then Else if <ekspresi boolean n> then

Perintah n Perintah n Else

Else Perintah Perintah n+1n+1 Endif 

Endif 

IF <ekspresi boolean> then IF <ekspresi boolean> then

Perintah Perintah Endif 

(12)

Contoh Algoritma 3: Contoh Algoritma 3: Program Algoritma 3: Program Algoritma 3:  //Algoritma Bilangan_Genap_Ganjil  //Algoritma Bilangan_Genap_Ganjil #include <stdio.h> #include <stdio.h> main() { main() { int Bil; int Bil; printf("masukan bilangan : "

printf("masukan bilangan : ");scanf("%d",&Bil););scanf("%d",&Bil); if (Bil % 2 == 0)

if (Bil % 2 == 0) {

{ printf("bilangan printf("bilangan genap");}genap");} else

else {

{ printf("bilangan printf("bilangan ganjil");}ganjil");} } } Contoh Algoritma 4: Contoh Algoritma 4: Algoritma Maksimum Algoritma Maksimum {

{ Menentukan bilangan terbesar dari tiga buah bilangan bulat  Menentukan bilangan terbesar dari tiga buah bilangan bulat }} Deklarasi Deklarasi A,B,C,Maks : integer A,B,C,Maks : integer Dekripsi Dekripsi Read(A, B, C) Read(A, B, C)

If (A>B) and (A>C) then If (A>B) and (A>C) then

Maks Maks←←AA

Else if (B>A) and (B>C) then Else if (B>A) and (B>C) then

Algoritma Bilangan_Genap_Ganjil Algoritma Bilangan_Genap_Ganjil {

{ Mencetak pesan ‘bilangan genap’ jika sebuah bilangan bulat yang dibaca Mencetak pesan ‘bilangan genap’ jika sebuah bilangan bulat yang dibaca dari piranti masukan merupakan bilangan genap dan sebaliknya

dari piranti masukan merupakan bilangan genap dan sebaliknya}} Deklarasi Deklarasi Bil : integer Bil : integer Deskripsi Deskripsi Read(Bil) Read(Bil)

If Bil mod 2 = 0 then If Bil mod 2 = 0 then

Write(‘bilangan genap’) Write(‘bilangan genap’) Else Else Write(‘bilangan ganjil’) Write(‘bilangan ganjil’) Endif  Endif 

(13)

Maks Maks←←BB Else Else Maks Maks←←CC Endif  Endif 

Write(’bilangan terbesar adalah, Maks) Write(’bilangan terbesar adalah, Maks) Program Algoritma 4: Program Algoritma 4:  //Algoritma Maksimum  //Algoritma Maksimum #include <stdio.h> #include <stdio.h> main() { main() { int A, B, C,Maks; int A, B, C,Maks; printf("A : ");scanf("%d",&A); printf("A : ");scanf("%d",&A); printf("B : "

printf("B : ");scanf("%d",&B););scanf("%d",&B); printf("C : "

printf("C : ");scanf("%d",&C););scanf("%d",&C); if ((A>B) && (A>C))

if ((A>B) && (A>C)) maks = A; maks = A;

else if ((B>A) && (B>C)) else if ((B>A) && (B>C))

maks = B; maks = B; else else maks = C; maks = C;

printf("bilangan terbesar adalah %d", Maks); printf("bilangan terbesar adalah %d", Maks); } } Contoh Algoritma 5: Contoh Algoritma 5: Algoritma Jumlah_Hari Algoritma Jumlah_Hari {

{ Menentukan jumlah hari dalam satu bulan Menentukan jumlah hari dalam satu bulan}} Deklarasi

Deklarasi AngkaBulan

AngkaBulan : : integer integer {1..12}{1..12} Tahun

Tahun : : integer integer {>0}{>0} JumlahHari : integer JumlahHari : integer Deskripsi Deskripsi Read(AngkaBulan,Tahun) Read(AngkaBulan,Tahun) Case (AngkaBulan) Case (AngkaBulan) AngkaBulan = [1,3,5,7,8,10,12] : JumlahHari AngkaBulan = [1,3,5,7,8,10,12] : JumlahHari ←←3131 AngkaBulan = [4,6,9,11] : JumlahHari AngkaBulan = [4,6,9,11] : JumlahHari ←←3030 AngkaBulan = 2: if Tahun mod 4 = 0 then AngkaBulan = 2: if Tahun mod 4 = 0 then

JumlahHari JumlahHari←←2929 Else Else JumlahHari JumlahHari←←2828

(14)

Endif  Endif  Endcase Endcase Write(JumlahHari) Write(JumlahHari) Program Algoritma 5: Program Algoritma 5:  //Algoritma Jumlah_Hari  //Algoritma Jumlah_Hari #include <stdio.h> #include <stdio.h> main() { main() {

int AngkaBulan,Tahun, JumlahHari; int AngkaBulan,Tahun, JumlahHari; printf("Angka Bulan : "

printf("Angka Bulan : " );scanf("%d",&AngkaBulan);scanf("%d",&AngkaBulan);); printf("Tahun : ");scanf("%d",&Tahun); printf("Tahun : ");scanf("%d",&Tahun); switch (AngkaBulan) { switch (AngkaBulan) { case 1: case 1: case 3: case 3: case 5: case 5: case 7: case 7: case 8: case 8: case 10: case 10:

case 12: JumlahHari = 31;break; case 12: JumlahHari = 31;break; case 4: case 4: case 6: case 6: case 9: case 9:

case 11 : JumlahHari = 30;break; case 11 : JumlahHari = 30;break;

case 2 : if (Tahun % 4 == 0) JumlahHari = 29; case 2 : if (Tahun % 4 == 0) JumlahHari = 29;

else JumlahHari = 28;break; else JumlahHari = 28;break; }

}

printf("Jumlah hari %d",JumlahHari); printf("Jumlah hari %d",JumlahHari); } } Contoh Algoritma 6: Contoh Algoritma 6: Algoritma Kalkulator Algoritma Kalkulator {

{ Mensimulasikan kalkulator sederhana. Menghitung hasil operasi aritmetika Mensimulasikan kalkulator sederhana. Menghitung hasil operasi aritmetika bila dibaca operand1, operator dan

bila dibaca operand1, operator dan operand2.operand2.}} Deklarasi

Deklarasi Op1,

Op1, Op2, Op2, Pilih Pilih : : integer integer {operand}{operand} Hasil

Hasil : : float float {hasil {hasil ’+’,’-’,’*’,’/’}’+’,’-’,’*’,’/’} Deskripsi Deskripsi Read(Op1,Op2, Pilih) Read(Op1,Op2, Pilih) Case (Pilih) Case (Pilih)

(15)

Pilih = 1 : Hasil

Pilih = 1 : Hasil ←←Op2 + Op2Op2 + Op2 Pilih = 2 : Hasil

Pilih = 2 : Hasil ←←Op2 - Op2Op2 - Op2 Pilih = 3 : Hasil

Pilih = 3 : Hasil ←←Op2 * Op2Op2 * Op2 Pilih = 4 : if

Pilih = 4 : if Op2Op2≠≠0 : hasil0 : hasil←←Op1/Op2Op1/Op2 else write(’error’) else write(’error’) Endcase Endcase Read(Hasil) Read(Hasil) Program Algoritma 6: Program Algoritma 6:  //Algoritma Bilangan_Genap_Ganjil  //Algoritma Bilangan_Genap_Ganjil #include <stdio.h> #include <stdio.h> main() { main() {

int Op1, Op2, Pilih; int Op1, Op2, Pilih; float Hasil; float Hasil; printf("Operand 1: ");scanf("%d",&Op1); printf("Operand 1: ");scanf("%d",&Op1); printf("Operand 2: ");scanf("%d",&Op2); printf("Operand 2: ");scanf("%d",&Op2); printf("1. Operator +\n"); printf("1. Operator +\n"); printf("2. Operator -\n"); printf("2. Operator -\n"); printf("3. Operator *\n"); printf("3. Operator *\n"); printf("4. Operator /\n"); printf("4. Operator /\n"); printf("Pilih Operator : "

printf("Pilih Operator : ");scanf("%d",&Pilih););scanf("%d",&Pilih); switch (Pilih) {

switch (Pilih) {

case 1 : {Hasil = Op1 + Op2; break;} case 1 : {Hasil = Op1 + Op2; break;} case 2 : {Hasil = Op1 - Op2; break;} case 2 : {Hasil = Op1 - Op2; break;} case 3 : {Hasil = Op1 * Op2; break;} case 3 : {Hasil = Op1 * Op2; break;} case 4 : {if

case 4 : {if (Op2 != 0) printf("%d",Op1/Op2);(Op2 != 0) printf("%d",Op1/Op2); else else printf("error");break;} printf("error");break;} } }

printf("Hasil dari perhitungan tersebut adalah %f",Hasil); printf("Hasil dari perhitungan tersebut adalah %f",Hasil); }

}

1.2.6

1.2.6 PengulanganPengulangan

Struktur pengulangan secara umum terdiri dari dua

Struktur pengulangan secara umum terdiri dari dua bagian:bagian: 1.

1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk  melaksanakan pengulangan.

melaksanakan pengulangan. 2.

(16)

a.

a. Struktur FORStruktur FOR

Struktur ini digunakan untuk menghasilkan pengulangan sejumlah kali yang Struktur ini digunakan untuk menghasilkan pengulangan sejumlah kali yang dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi.

eksekusi.

For

For Menaik Menaik For For MenurunMenurun For pencacah

For pencacah←←awal to akhir doawal to akhir do Aksi

Aksi Endfor Endfor

For pencacah

For pencacah←←akhir downto awal doakhir downto awal do Aksi Aksi endfor endfor Contoh Algoritma 7: Contoh Algoritma 7: Algoritma Penjumlahan_Deret Algoritma Penjumlahan_Deret {

{ Menjumlahan deret: 1+2+3+..+N dengan N adalah bilangan bulat  Menjumlahan deret: 1+2+3+..+N dengan N adalah bilangan bulat positif positif   yang dibaca dari piranti masukan jumlah deret

 yang dibaca dari piranti masukan jumlah deret dicetak ke piranti keluarandicetak ke piranti keluaran}} Deklarasi

Deklarasi N

N : : integer integer {banyaknya {banyaknya suku suku deret}deret} K

K : : integer integer {suku {suku deret}deret} Jumlah

Jumlah : : integer integer {Jumlah {Jumlah deret}deret} Deskripsi

Deskripsi Read(N)

Read(N) {banyaknya {banyaknya suku suku deret}deret} Jumlah

Jumlah←←0 0 {Inisialisasi jumlah {Inisialisasi jumlah deret}deret} For k 

For k ←←1 1 to to N N {ulangi {ulangi sebanyak sebanyak N N kali}kali} Jumlah

Jumlah←←Jumlah + k Jumlah + k  Endfor Endfor Write(Jumlah) Write(Jumlah) Program Algoritma 7: Program Algoritma 7:  //Algoritma Penjumlahan_Deret  //Algoritma Penjumlahan_Deret #include <stdio.h> #include <stdio.h> main() { main() { int N, K, Jumlah; int N, K, Jumlah;

printf("banyaknya suku deret : "

printf("banyaknya suku deret : " );scanf("%d",&N););scanf("%d",&N); Jumlah = 0; Jumlah = 0; for (K=1; K<=N; K++) { for (K=1; K<=N; K++) { Jumlah = Jumlah + K; } Jumlah = Jumlah + K; } printf("%d",Jumlah); printf("%d",Jumlah); } }

(17)

Contoh Algoritma 8: Contoh Algoritma 8:

Algoritma Hitung_Mundur Algoritma Hitung_Mundur {

{hitung mundur peluncuran roket hitung mundur peluncuran roket }} Deklarasi Deklarasi K : integer K : integer Deskripsi Deskripsi For K

For K←←10 downto 0 do10 downto 0 do Write(K) Write(K) Endfor Endfor Write(’Go’) Write(’Go’) Program Algoritma 8: Program Algoritma 8:  //Algoritma Hitung_Mundur  //Algoritma Hitung_Mundur #include <stdio.h> #include <stdio.h> main() { main() { int K; int K; for (K=10;K>=0;K--) { for (K=10;K>=0;K--) { printf("%d ",K); } printf("%d ",K); } printf("Go"); printf("Go"); } } b.

b. Struktur WhileStruktur While Bentuk umum: Bentuk umum: While kondisi do While kondisi do Aksi Aksi Endwhile Endwhile

Aksi akan dilaksanakan berulangkali selama kondisi bernilai true. Jika kondisi Aksi akan dilaksanakan berulangkali selama kondisi bernilai true. Jika kondisi bernilai false badan pengulangan tidak akan dilaksanakan, yang berarti bernilai false badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai. Yang harus diperhatikan adalah pengulangan harus pengulangan selesai. Yang harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika algoritma tersebut salah.

(18)

Contoh Algoritma 9: Contoh Algoritma 9:

Algoritma Menghitung_Rata_Rata Algoritma Menghitung_Rata_Rata {

{ Menghitung rata-rata N buah bilangan bulat yang dibaca dari piranti Menghitung rata-rata N buah bilangan bulat yang dibaca dari piranti masukan. N >0 masukan. N >0}} Deklarasi Deklarasi N ,X , K, Jumlah : integer N ,X , K, Jumlah : integer Rerata : real Rerata : real Deskripsi Deskripsi Read(N) Read(N) Jumlah Jumlah←←00 K K←←11 While K While K≤≤N doN do Read(X) Read(X) Jumlah

Jumlah←←Jumlah + XJumlah + X K K←←K+1K+1 Endwhile Endwhile {K>N} {K>N} Rerata

Rerata←←Jumlah/NJumlah/N write(Rerata) write(Rerata) Program Algoritma 9: Program Algoritma 9:  //Algoritma Menghitung_Rata_Rata  //Algoritma Menghitung_Rata_Rata #include <stdio.h> #include <stdio.h> main() { main() { int N , X, K, Jumlah; int N , X, K, Jumlah; float Rerata; float Rerata;

printf("Masukan banyaknya data :

printf("Masukan banyaknya data : ");scanf("%d",&N);");scanf("%d",&N); Jumlah = 0; Jumlah = 0; K =1; K =1; while (K <= N) { while (K <= N) {

printf("Data ke-%d : ",K);scanf("%d",&X); printf("Data ke-%d : ",K);scanf("%d",&X); Jumlah = Jumlah + X; Jumlah = Jumlah + X; K = K+1; K = K+1; } } Rerata = Jumlah/N; Rerata = Jumlah/N; printf("Rata-rata : %f",Rerata); printf("Rata-rata : %f",Rerata); } }

(19)

c.

c. Struktur do...whileStruktur do...while

Pada dasarnya struktur perulangan do....while sama saja dengan struktur Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while, hanya saja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas kemudian proses baru akan dijalankan, sementara while yang letaknya di atas kemudian proses baru akan dijalankan, sementara pada perulangan do....while, proses akan dilakukan terlebih dahulu baru pada perulangan do....while, proses akan dilakukan terlebih dahulu baru kemudian, seleksi while dilakukan. Jadi dengan menggunakan struktur kemudian, seleksi while dilakukan. Jadi dengan menggunakan struktur do…while sekurang-kurangny

do…while sekurang-kurangnya akan terjadi a akan terjadi satu kali perulangan.satu kali perulangan. Bentuk Umum: Bentuk Umum: Do Do Aksi Aksi While While Contoh Algoritma 10: Contoh Algoritma 10: Algoritma Sandi_Lewat Algoritma Sandi_Lewat {

{  Memvalidasi sandi-lewat yang dimasukkan oleh pengguna. Sandi-lewat   Memvalidasi sandi-lewat yang dimasukkan oleh pengguna. Sandi-lewat   yang benar disimpan sebagai konstanta. Jika sandi-lewat yang dimasukkan  yang benar disimpan sebagai konstanta. Jika sandi-lewat yang dimasukkan

benar, sistem boleh dimasuki, tetapi

benar, sistem boleh dimasuki, tetapi jika salah, ulangi lagijika salah, ulangi lagi}} Deklarasi

Deklarasi

Const Password = ’abc123’ Const Password = ’abc123’ Sandilewat : string Sandilewat : string Sah : boolean Sah : boolean Deskripsi Deskripsi Sah

Sah←←falsefalse do

do

Read(Sandilewat) Read(Sandilewat)

If Sandilewat = Password then If Sandilewat = Password then

Sah

Sah ←←truetrue Endif  Endif  while Sah=false while Sah=false Write(’OK’) Write(’OK’) Program Algoritma 10: Program Algoritma 10:  //Algoritma Sandi_Lewat  //Algoritma Sandi_Lewat #include <stdio.h> #include <stdio.h> main() { main() {

#define Password "abc123"; #define Password "abc123";

(20)

char Sandilewat; char Sandilewat; bool Sah; bool Sah; Sah = false; Sah = false; do do { {

printf("Masukan kata sandi : ");scanf("%c",Sandilewat); printf("Masukan kata sandi : ");scanf("%c",Sandilewat); If (Sandilewat = Password) If (Sandilewat = Password) Sah = true; Sah = true; } }

while (Sah == false); while (Sah == false); printf("OK"); printf("OK"); } } 1.3 1.3 KasusKasus 1.3.1 1.3.1 Kasus 1Kasus 1

Jika kita berbelanja di pasar swalayan/supemarket, nilai total belanja kita Jika kita berbelanja di pasar swalayan/supemarket, nilai total belanja kita seringkali bukan kelipatan pecahan rupiah yang berlaku. Misalnya nilai total seringkali bukan kelipatan pecahan rupiah yang berlaku. Misalnya nilai total belanja sebesar Rp. 19.212. andaikan saat ini pecahan rupiah yang berlaku paling belanja sebesar Rp. 19.212. andaikan saat ini pecahan rupiah yang berlaku paling kecil Rp. 25. selain i

kecil Rp. 25. selain i

tu, juga ada pecahan Rp. 50 dan Rp. 100. umumnya kasir pasar swalayan tu, juga ada pecahan Rp. 50 dan Rp. 100. umumnya kasir pasar swalayan membulatkan nilai belanja ke pecahan yan g terbesar jadi Rp. 19.212 dibulatkan membulatkan nilai belanja ke pecahan yan g terbesar jadi Rp. 19.212 dibulatkan menjadi Rp. 19.225. hal ini jels merugikan konsumen. Misalkan anda memiliki menjadi Rp. 19.225. hal ini jels merugikan konsumen. Misalkan anda memiliki pasar swalayan yang jujur dan tidak merugikan pembeli, sehingga jika ada nilai pasar swalayan yang jujur dan tidak merugikan pembeli, sehingga jika ada nilai belanja yang bukan kelipatan pecahan yang ada, maka nilai belanja itu dibulatkan belanja yang bukan kelipatan pecahan yang ada, maka nilai belanja itu dibulatkan ke pecahan terendah. Jadi Rp. 19.212 dibulatkan menjadi Rp. 19.200. tuliskan ke pecahan terendah. Jadi Rp. 19.212 dibulatkan menjadi Rp. 19.200. tuliskan algoritma dan program serta cantumkan output/hasilnya yang membaca nilai algoritma dan program serta cantumkan output/hasilnya yang membaca nilai belanja (integer) lalu membulatkannya ke nilai

belanja (integer) lalu membulatkannya ke nilai uang dengan pecahan terendah.uang dengan pecahan terendah.

1.3.2

1.3.2 Kasus 2Kasus 2

Seseorang mempunyai tabungan di sebuah bank. Ia dapat menyetor dan Seseorang mempunyai tabungan di sebuah bank. Ia dapat menyetor dan mengambil uangnya sendiri di bank tersebut, namun jumlah saldo minimum yang mengambil uangnya sendiri di bank tersebut, namun jumlah saldo minimum yang harus disisakan di dalam adalah Rp. 10.000. ini artinya, jika saldonya Rp. 10.000, harus disisakan di dalam adalah Rp. 10.000. ini artinya, jika saldonya Rp. 10.000, ia tidak dapat mengambil uang lagi. Kode transaksi untuk menyetor adalah 0 dan ia tidak dapat mengambil uang lagi. Kode transaksi untuk menyetor adalah 0 dan

(21)

kode transaksi untuk mengambil adalah 1. Buatlah algoritma yang kode transaksi untuk mengambil adalah 1. Buatlah algoritma yang mensimulasikan transaksi yang dilakukan orang tersebut. Algoritma menerima mensimulasikan transaksi yang dilakukan orang tersebut. Algoritma menerima masukan berupa kode transaksi dan jumlah uang yang disetor/diambil. masukan berupa kode transaksi dan jumlah uang yang disetor/diambil. Rancanglah algoritma tersebut sehingga memungkinkan penabung dapat Rancanglah algoritma tersebut sehingga memungkinkan penabung dapat melakukan transaksi berulangkali sampai saldo yang tersisa Rp. 10,000 atau melakukan transaksi berulangkali sampai saldo yang tersisa Rp. 10,000 atau   jumlah uang yang diambil lebih besar dari saldonya. Catatan nilai uang yang   jumlah uang yang diambil lebih besar dari saldonya. Catatan nilai uang yang diambil selalu merupakan kelipatan 20.000. Dari algoritma tersebut, buatlah diambil selalu merupakan kelipatan 20.000. Dari algoritma tersebut, buatlah program dan cantumkan output/hasilnya.

program dan cantumkan output/hasilnya.

1.4

1.4 Tugas – tugas PendahuluanTugas – tugas Pendahuluan

Tugas pendahuluan akan dikerjakan selama 30 menit di awal jam Tugas pendahuluan akan dikerjakan selama 30 menit di awal jam praktikum dengan menggunakan software Self

praktikum dengan menggunakan software Self AssessmentAssessment

1.5

1.5 Latihan Praktikum I dan IILatihan Praktikum I dan II 1.5.1

1.5.1 Latihan Praktikum I (Pertemuan Pertama)Latihan Praktikum I (Pertemuan Pertama)

Buatlah program berdasarkan algoritma-algoritma di bawah ini: Buatlah program berdasarkan algoritma-algoritma di bawah ini: Algoritma 1:

Algoritma 1:

Algoritma Hitung_Biaya_Percakapan Algoritma Hitung_Biaya_Percakapan {

{  Menghitung biaya percakapan telpon dengan menghitung berapa detik seseorang  Menghitung biaya percakapan telpon dengan menghitung berapa detik seseorang bicara kemudian menghitung biayanya dengan mengkalikan jumlah detik dengan bicara kemudian menghitung biayanya dengan mengkalikan jumlah detik dengan biaya percakapan perdetiknya. Waktu percakapan harus dikonversi ke

biaya percakapan perdetiknya. Waktu percakapan harus dikonversi ke detik.detik.}} Deklarasi

Deklarasi

Const Biaya_perdetik : 100 Const Biaya_perdetik : 100

Type Waktu <Jam, Menit, Detik :

Type Waktu <Jam, Menit, Detik : integer>integer> Var Awal, Akhir : Waktu

Var Awal, Akhir : Waktu

Detik_awal, Detik_akhir, Lama_bicara, Tdetik1, Tdetik2 : integer Detik_awal, Detik_akhir, Lama_bicara, Tdetik1, Tdetik2 : integer Biaya : real

Biaya : real Deskripsi

Deskripsi

Read(Awal.Jam, Awal.Menit, Awal.Detik) Read(Awal.Jam, Awal.Menit, Awal.Detik) Read(Akhir.Jam, Akhir.Menit,

Read(Akhir.Jam, Akhir.Menit, Akhir.Detik)Akhir.Detik) Tdetik1

Tdetik1←←Akhir.Jam * 3600 + Akhir.Menit * 60 Akhir.Jam * 3600 + Akhir.Menit * 60 + Akhir.Detik + Akhir.Detik  Tdetik2

Tdetik2←←Awal.Jam * 3600 + Awal.Menit * 60 + Awal.Jam * 3600 + Awal.Menit * 60 + Awal.Detik Awal.Detik  Lama_bicara

Lama_bicara←← Tdetik2 – Tdetik1Tdetik2 – Tdetik1 If Lama_bicara > = 0 then

If Lama_bicara > = 0 then Biaya

(22)

Write(’Biaya yang harus dibayar’, Biaya,

Write(’Biaya yang harus dibayar’, Biaya, ’rupiah’)’rupiah’) Endif  Endif  Algoritma 2: Algoritma 2: Algoritma Pecahan_Uang Algoritma Pecahan_Uang {

{ Membaca nilai uang (rupiah) dalam kelipatan 25-an, lalu menentukan berapa Membaca nilai uang (rupiah) dalam kelipatan 25-an, lalu menentukan berapa nilai tukar pecahan. Pecahan yang tersedia adalah Rp. 1000, Rp. 500, Rp. 100, nilai tukar pecahan. Pecahan yang tersedia adalah Rp. 1000, Rp. 500, Rp. 100, dan Rp. 50. Jika terakhir masih ada sisa, beri saja Permen (Plus Senyum dan Rp. 50. Jika terakhir masih ada sisa, beri saja Permen (Plus Senyum manis) manis)}} Deklarasi Deklarasi Uang : integer Uang : integer

Satuan, Puluhan, Ratusan, Limaratusan, Ribuan, Sisa :

Satuan, Puluhan, Ratusan, Limaratusan, Ribuan, Sisa : integerinteger Deskripsi

Deskripsi Read(Uang) Read(Uang) Ribuan

Ribuan ←←Uang div 1000Uang div 1000 Sisa

Sisa←←Ribuan mod 1000Ribuan mod 1000 If Sisa <> 0 then

If Sisa <> 0 then Limaratusan

Limaratusan←←Sisa div 500Sisa div 500 Sisa

Sisa←←Limaratusan mod 500Limaratusan mod 500 Endif 

Endif 

If Sisa <> 0 then If Sisa <> 0 then Ratusan

Ratusan←←Sisa div 100Sisa div 100 Sisa

Sisa←←Ratusan mod 100Ratusan mod 100 Endif 

Endif 

If Sisa <> 0 then If Sisa <> 0 then Puluhan

Puluhan←←Sisa div 50Sisa div 50 Sisa

Sisa←←Puluhan mod 50Puluhan mod 50 Endif 

Endif 

If Sisa <> 0 then If Sisa <> 0 then Satuan

Satuan←←’beri permen plus ’beri permen plus senyum’senyum’ Endif 

Endif 

Write(Ribuan, ’buah ribuan ’, Limaratusan, ’ buah lima ratusan ’, Ratusan, ’ buah Write(Ribuan, ’buah ribuan ’, Limaratusan, ’ buah lima ratusan ’, Ratusan, ’ buah seratusan ’, Puluhan, ’ buah puluhan ’, Sisa , Satuan)

seratusan ’, Puluhan, ’ buah puluhan ’, Sisa , Satuan)

Algoritma 3: Algoritma 3:

Algoritma Angka_mutu_mahasiswa Algoritma Angka_mutu_mahasiswa {

{  Nilai_akhir ditentukan dari nilai_tugas, UTS dan UAS dengan formula  Nilai_akhir ditentukan dari nilai_tugas, UTS dan UAS dengan formula nilai_akhir 

nilai_akhir ←←20% Nilai_Tugas + 30%20% Nilai_Tugas + 30% UTS + 50% UAS. Angka mutu (A, B, C,UTS + 50% UAS. Angka mutu (A, B, C,   D, E) ditentukan oleh nilai_akhir mahasiswa. Setelah itu menentukan angka   D, E) ditentukan oleh nilai_akhir mahasiswa. Setelah itu menentukan angka

mutu dengan formula: nilai_akhir >= 80

mutu dengan formula: nilai_akhir >= 80 →→’A’, 60 <= nilai_akhir < 80’A’, 60 <= nilai_akhir < 80 →→’B’,’B’, 40 <= nilai_akhir < 60

40 <= nilai_akhir < 60 →→ ’C’, 20 <= nilai_akhir < 40’C’, 20 <= nilai_akhir < 40→→’D’, nilai_akhir < 20’D’, nilai_akhir < 20

→ →’E ’E ’’}}

(23)

Deklarasi Deklarasi Nama : string Nama : string

Nilai_tugas, UTS, UAS : integer Nilai_tugas, UTS, UAS : integer Nilai_akhir : real Nilai_akhir : real Angka_mutu : char Angka_mutu : char Deskripsi Deskripsi

Read(Nama, Nilai_tugas, UTS, UAS) Read(Nama, Nilai_tugas, UTS, UAS) Nilai_akhir

Nilai_akhir←←0.2 * Nilai_tugas + 0.3 * UTS 0.2 * Nilai_tugas + 0.3 * UTS + 0.5 * UAS+ 0.5 * UAS If Nilai_akhir >= 80 then

If Nilai_akhir >= 80 then Angka_mutu

Angka_mutu ←←’A’’A’ Else if 

Else if Nilai_akhir >= 60 thenNilai_akhir >= 60 then

Angka_mutu

Angka_mutu →→’B’’B’

Else if 

Else if Nilai_akhir >= 40 thenNilai_akhir >= 40 then

Angka_mutu

Angka_mutu →→’C’’C’

Else if 

Else if Nilai_akhir >= 20 thenNilai_akhir >= 20 then

Angka_mutu

Angka_mutu →→’D’’D’ Else

Else

Angka_mutu

Angka_mutu →→’E’’E’ Endif 

Endif 

Write(Nama, ’nilai akhir: ’, Nilai_akhir, ’ angka mutu: ’, Angka_mutu) Write(Nama, ’nilai akhir: ’, Nilai_akhir, ’ angka mutu: ’, Angka_mutu) Algoritma 4

Algoritma 4::

Algoritma Empat_Persegi_Panjang Algoritma Empat_Persegi_Panjang {

{  Algoritma untuk menampilkan menu perhitungan empat persegi panjang,  Algoritma untuk menampilkan menu perhitungan empat persegi panjang, memilih menu dan melakukan

memilih menu dan melakukan proses perhitunganproses perhitungan}} Deklarasi

Deklarasi

NoMenu : integer NoMenu : integer Panjang, Lebar : real Panjang, Lebar : real

Luas, Keliling, Diagonal : real Luas, Keliling, Diagonal : real Deskripsi

Deskripsi {cetak menu} {cetak menu} write(’

write(’ Menu Menu Empat Empat Persegi Persegi Panjang Panjang ’)’) write(’

write(’ 1. 1. Hitung Hitung Luas Luas ’)’) write(’

write(’ 2. 2. Hitung Hitung Keliling Keliling ’)’) write(’

write(’ 3. 3. Hitung Hitung Panjang Panjang Diagonal Diagonal ’)’) write(’

write(’ 4. 4. Keluar Keluar Program Program ’)’) write(’

write(’ Masukan Masukan pilihan pilihan anda(1/2/3/4)? anda(1/2/3/4)? ’)’) read(NoMenu)

read(NoMenu) case (NoMenu) case (NoMenu)

NoMenu = 1 : read(Panjang, Lebar) NoMenu = 1 : read(Panjang, Lebar)

Luas

Luas←←Panjang * LebarPanjang * Lebar Write(Luas)

(24)

NoMenu = 2 : read(Panjang, Lebar) NoMenu = 2 : read(Panjang, Lebar)

Keliling

Keliling ←←(Panjang + Lebar) * 2(Panjang + Lebar) * 2 Write(Keliling)

Write(Keliling) NoMenu = 3 : read(Panjang, Lebar) NoMenu = 3 : read(Panjang, Lebar)

Diagonal

Diagonal ←←(Panjang * (Panjang * Panjang + Panjang + Lebar * LLebar * Lebar)ebar) Write(Diagonal)

Write(Diagonal) NoMenu = 4 :

NoMenu = 4 : write(’Keluar program...sampai jumpa’)write(’Keluar program...sampai jumpa’) Endcase Endcase Algoritma 5: Algoritma 5: Algoritma Upah_Karyawan Algoritma Upah_Karyawan {

{  Menghitung upah mingguan karyawan. Masukan yang dibaca dari piranti  Menghitung upah mingguan karyawan. Masukan yang dibaca dari piranti masukan adalah nama karyawan, golongan dan jumlah jam kerja. Nama masukan adalah nama karyawan, golongan dan jumlah jam kerja. Nama karyawan dan upahnya dicetak ke piranti keluaran

karyawan dan upahnya dicetak ke piranti keluaran}} Deklarasi

Deklarasi Const

Const JamNormal JamNormal = = 48 48 {jumlah {jumlah jam jam kerja kerja normal normal per per minggu}minggu} Const

Const UpahLembur UpahLembur = 30= 3000 00 {upah {upah per per jam lembur jam lembur Rp. 30Rp. 3000}00} Nama

Nama : : stringstring Gol

Gol : : char char {’A’,’B’,’C’,’D’}{’A’,’B’,’C’,’D’} JJK

JJK : : integer integer {jumlah {jumlah jam jam kerja}kerja} JamLembur

JamLembur : : integerinteger UpahPerJam

UpahPerJam : : real real {upah {upah per per jam}jam} UpahTotal

UpahTotal : : realreal Deskripsi Deskripsi Read(Nama, Gol, JJK) Read(Nama, Gol, JJK) Case (Gol) Case (Gol)

Gol = ’A’ : UpahPerJam

Gol = ’A’ : UpahPerJam←←4000.04000.0 Gol = ’B’ : UpahPerJam Gol = ’B’ : UpahPerJam←←5000.05000.0 Gol = ’C’ : UpahPerJam Gol = ’C’ : UpahPerJam←←6000.06000.0 Gol = ’D’ : UpahPerJam Gol = ’D’ : UpahPerJam←←7000.07000.0 Endcase Endcase If JJK

If JJK ≤≤ JamNormal thenJamNormal then UpahTotal

UpahTotal←←JJK * UpahPerJamJJK * UpahPerJam Else

Else

JamLembur

JamLembur←←JJK – JamNormalJJK – JamNormal UpahTotal

UpahTotal←←JamNormal * UpahPerJam + JamLembur * UpahLemburJamNormal * UpahPerJam + JamLembur * UpahLembur Endif 

Endif 

Write(Nama,UpahTotal) Write(Nama,UpahTotal)

(25)

1.5.2

1.5.2 Latihan Praktikum II (Pertemuan Kedua)Latihan Praktikum II (Pertemuan Kedua)

Buatlah program berdasarkan algoritma di bawah ini Buatlah program berdasarkan algoritma di bawah ini Algoritma 1:

Algoritma 1:

Algoritma Perpangkatan Algoritma Perpangkatan

{Menghitung perpangkatan an dengan n bilangan bulat

{Menghitung perpangkatan an dengan n bilangan bulat sembarang > 0. nilai asembarang > 0. nilai a dan n dibaca dari piranti masukan. Nilai perpangkatan dicetak ke piranti dan n dibaca dari piranti masukan. Nilai perpangkatan dicetak ke piranti keluaran}

keluaran} Deklarasi Deklarasi A

A : : real real {bilangan {bilangan yang yang dipangkatkan}dipangkatkan} N, M : integer {pemangkat}

N, M : integer {pemangkat} Hasil

Hasil : : real real {hasil {hasil perpangkatan}perpangkatan} K

K : : integer integer {pencatatan {pencatatan pengulangan}pengulangan} Deskripsi Deskripsi Read(A, N) Read(A, N) If N<0 then If N<0 then M

M←←-N {positifkan pangkatnya}-N {positifkan pangkatnya} else {N else {N ≥≥0}0} M M←←NN endif  endif  {hitung perpangkatan} {hitung perpangkatan} Hasil Hasil ←←11 for K for K←←1 to M do1 to M do Hasil

Hasil←←Hasil * AHasil * A endfor

endfor

{tuliskan hasil perpangkatan, bergantung pada n} {tuliskan hasil perpangkatan, bergantung pada n} if N < 0 then if N < 0 then write(1/Hasil) write(1/Hasil) else else write(Hasil) write(Hasil) endif  endif  Algoritma 2: Algoritma 2: Algoritma Konversi_Desimal_Ke_Biner Algoritma Konversi_Desimal_Ke_Biner {

{  Mengkonversi bilangan bulat tidak negatif dalam sistem desimal menjadi  Mengkonversi bilangan bulat tidak negatif dalam sistem desimal menjadi bilangan dalam sistem biner 

bilangan dalam sistem biner }} Deklarasi

Deklarasi

X, Biner : integer X, Biner : integer

(26)

Deskripsi Deskripsi Read(X) Read(X) Biner Biner ←←’’’’ do do Sisa

Sisa←←X mod 2X mod 2 X

X←←X div 2X div 2 Case (Sisa) Case (Sisa) 0 : Biner

0 : Biner ←←’0’ + Biner’0’ + Biner 1 : Biner

1 : Biner ←←’1’ + Biner’1’ + Biner endcase endcase while X while X ≠≠00 write(Biner) write(Biner) Algoritma 3: Algoritma 3: Algoritma Hitung_Rata_Rata Algoritma Hitung_Rata_Rata {

{  Menghitung nilai rata-rata data integer (  Menghitung nilai rata-rata data integer (≠≠9999). Data dibaca dari piranti9999). Data dibaca dari piranti masukan. Pembacaan data diakhiri dengan 999. nilai rata-rata dicetak ke masukan. Pembacaan data diakhiri dengan 999. nilai rata-rata dicetak ke  piranti masukan

 piranti masukan}} Deklarasi

Deklarasi Ndata

Ndata : : integer integer {pencatat {pencatat jumlah jumlah pembacaan pembacaan data}data} X

X : : integer integer {data {data yang yang dibaca}dibaca} Jumlah

Jumlah : : real real {jumlah {jumlah nilai nilai data data yang yang dibaca}dibaca} U

U : : real real {rata-rata {rata-rata data data integer}integer} Deskripsi

Deskripsi Jumlah Jumlah ←←00 Ndata

Ndata ←←0 0 {inisialisasi {inisialisasi pencatat pencatat pembacaan}pembacaan} Read(X)

Read(X) While X

While X ≠≠9999 do9999 do Ndata

Ndata←←Ndata Ndata +1 +1 {naikan {naikan pencatat pencatat jumlah jumlah pembacaan pembacaan data}data} Jumlah

Jumlah←←Jumlah + XJumlah + X Read(X)

Read(X) {baca {baca data data integer integer selanjutnya}selanjutnya} Endwhile {X = 9999}

Endwhile {X = 9999} If Ndata

If Ndata ≠≠0 then0 then U

U←←Jumlah/Ndata Jumlah/Ndata {rata-rata {rata-rata data data bilangan bilangan bulat}bulat} Else

Else

Write(’data tidak ada’) Write(’data tidak ada’) Endif 

(27)

Algoritma 4: Algoritma 4:

Algoritma Data_Minimum Algoritma Data_Minimum {

{  Menentukan bilangan terkecil dari N data integer yang dibaca dari piranti  Menentukan bilangan terkecil dari N data integer yang dibaca dari piranti masukan. Nilai N ditentukan terlebih dahulu (N>0)

masukan. Nilai N ditentukan terlebih dahulu (N>0)}} Deklarasi

Deklarasi N

N : : integer integer {banyaknya {banyaknya data data masukan, masukan, > > 0}0} X

X : : integer integer {data {data yang yang dibaca}dibaca} Min : integer {data terkecil/minimum} Min : integer {data terkecil/minimum} K

K : : integer integer {pencacah {pencacah pengulangan}pengulangan} Deskripsi

Deskripsi Read(N) Read(N) Read(X)

Read(X) {baca {baca data data pertama}pertama} Min

Min ←←X X {asumsikan {asumsikan min min adalah adalah data data pertama}pertama} For k  For k ←←2 to N do2 to N do Read(X) Read(X) If X < Min then If X < Min then Min Min←←XX Endif  Endif  Endfor Endfor Write(Min) Write(Min) Algoritma 5: Algoritma 5: Algoritma Upah_Karyawan Algoritma Upah_Karyawan {

{  Menentukan upah mingguang sejumlah karyawan. Data yang diperlukan  Menentukan upah mingguang sejumlah karyawan. Data yang diperlukan adalah nama karyawan dan jumlah jam kerja. Perhitungan upah karyawan adalah nama karyawan dan jumlah jam kerja. Perhitungan upah karyawan diulangi untuk karyawan lain sampai tidak ada lagi karyawan yang dihitung diulangi untuk karyawan lain sampai tidak ada lagi karyawan yang dihitung upahnya upahnya}} Deklarasi Deklarasi Const JamKerjaNormal = 48 Const JamKerjaNormal = 48 Const UpahPerJam = 2000 Const UpahPerJam = 2000 Const UpahLembur = 3000 Const UpahLembur = 3000 Namakar : string Namakar : string JumlahJamKerja : integer JumlahJamKerja : integer JumlahJamLembur : integer JumlahJamLembur : integer UpahTotal : real UpahTotal : real Jawab : char Jawab : char Stop : boolean Stop : boolean Deskripsi Deskripsi

(28)

Stop

Stop ←←falsefalse While not Stop do While not Stop do

Read(Namakar, JumlahJamKerja) Read(Namakar, JumlahJamKerja) If JumlahJamKerja

If JumlahJamKerja ≤≤JamKerjaNormal thenJamKerjaNormal then Upah

Upah←←JumlahJamKerja * UpahPerjamJumlahJamKerja * UpahPerjam Else

Else {jumlah jam {jumlah jam kerja kerja > > 48}48} JumlahJamLembur

JumlahJamLembur←←JumlahJamKerja – 48JumlahJamKerja – 48 Upahtotal

Upahtotal←←JamKerjaNormal * 2000 + JumlahJamLembur * 3000JamKerjaNormal * 2000 + JumlahJamLembur * 3000 Endif 

Endif 

Write(UpahTotal) Write(UpahTotal)

Write(’ulangi untuk karyawan lainnya ? (y/t) : ’) Write(’ulangi untuk karyawan lainnya ? (y/t) : ’) Read(Jawab)

Read(Jawab)

If Jawab=’t’ or Jawab=’T’ then If Jawab=’t’ or Jawab=’T’ then

Stop

Stop←←truetrue Endif  Endif  Endwhile Endwhile {Jawab = ’t’ or T} {Jawab = ’t’ or T}

Gambar

Tabel 1.1 Tipe Data Dasar Berdasarkan bahasa CTabel 1.1 Tipe Data Dasar Berdasarkan bahasa C
Tabel 1.4 Operator-operator PerbandinnganTabel 1.4 Operator-operator Perbandinngan
Tabel 1.5 Beberapa Operator UnaryTabel 1.5 Beberapa Operator Unary

Referensi

Dokumen terkait

Melaui model pembelajaran Kooperatif (Cooperative Learning) tipe Number Head Together (NHT) dan Student Team Achievment Division (STAD), siswa diharapkan dapat

Tujuan dari penelitian ini adalah untuk menggambarkan konsep manajemen kelas dengan strategi PAIKEM yang diterapkan dalam pelajaran sejarah di MTs Manba’ul ‘Ulum

Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, sehingga penulis dapat menyelesaikan skripsi ini dengan judul “ Pengaruh Lingkungan Kerja Non Fisik,

Evaluasi adalah proses untuk melihat apakah sistem pembelajaran yang sedang dibangun berhasil, sesuai dengan harapan awal atau tidak. Sebenarnya tahap evaluasi

Cirrus creased his brow, struggling to make sense of the words, and was just about to check the sphere round his neck, to see where Tierra del Fuego might be, when

Jika nyamuk tersebut menggigit anak yang sedang mengandung virus demam berdarah di darahnya, nyamuk itu akan dapat menyebarkannya kepada anak yang lain..

Kelompok I terdiri dari 2 varietas (Adira IV dan Adira I) dan 1 klon (BIC 369) berproduksi lebih tinggi dari klon lokal II baik pada lokasi Pleihari maupun KP Banjarbaru..

dirinya mampu mendidik anak-anaknya, harga diri wanita single parent dengan lebih rajin berkomunikasi dengan anak, selalu berusaha, bersemangat dan berjuang dalam