Anda di halaman 1dari 16

Modul Praktikum 10

I. Tujuan
Setelah mengerjakan tugas praktikum ini, mahasiswa/i diharapkan:
a) Memahami lebih dalam mengenai lanjut mengenai skema pemoresan
sekuensial dan penerapannya pada sejumlah kasus
b) Dapat mengimplementasikan tipe data array dan pemrosesannya untuk
table sederhana dan matrix ke dalam program-program C++.

II. Bahan Acuan


1. Pengertian Data

Data adalah rekaman atau catatan mengenai fakta dari suatu objek atau
peristiwa. Misalnya, data hasil pengukuran berupa angka-angka disebut dengan
data kuantitatif, sedangkan data teks yang bukan angka melainkan keterangan
atau label mengenai fakta objek / peristiwa tertentu disebut data kualitatif. Data
selain berupa teks dapat juga berupa suara ataupun gambar.

Dalam penggunaan sehari-hari, data dikumpulkan dan diolah menjadi informasi.


Dan informasi banyak digunakan untuk mendukung pengambilan keputusan.
Pada perkembangan lebih lanjut, kumpulan data / informasi dapat dianalisa untuk
mengenali trend, pola-pola, dan pengetahuan, hingga membentuk suatu basis
pengetahuan.

2. Tipe Data

Tipe data adalah pola representasi data dalam sistem komputer. Pola
representasi ini juga mempengaruhi berapa besar ruang yang diperlukan untuk
menyimpan suatu data. Dalam implementasi program, untuk mengolah data
tertentu, kita harus mendefinisikan tipe data dan nama data (variabel) penampung
data tersebut.

Dalam teks algoritma, mendefinisikan tipe data berarti:


• Menentukan nama tipe data tersebut di dalam kamus
• Mensepakati domain harga (atau nilai) yang dapat dimiliki oleh tipe data
tersebut
• Mensepakati penulisan konstanta (nilai data) dari tipe tersebut
• Mensepakati operator (operasi) yang dapat diterapkan pada nilai-nilai dari
tipe tersebut
Tipe Data Dasar

Ada sejumlah tipe data dasar yang telah tersedia (didefinisikan) dalam suatu
bahasa pemrograman dan dapat langsung digunakan di dalam algortima atau pun
program. Berikut adalah tipe-tipe data dasar yang biasanya dianggap sudah
tersedia dalam bahasa pemrograman:
• integer (bilangan bulat)
• real (bilangan pecahan)
• boolean (bilangan logika)
• character (karakter atau huruf dan tanda baca)

Tipe Data Array

Tipe Data Array adalah tipe dari sekumpulan elemen data yang mengacu setiap
elemen datanya melalui indeks. Array sederhan satu dimensi biasa disebut juga
dengan istilah vector, sedangkan array dua dimensi biasa juga disebut dengan
istilah tabel. Struktur data ini digunakan untuk merepresentasikan sekumpulan
informasi yang bertipe sama, misalnya daftar hadir, daftar nilai, daftar mata kuliah,
dll

Mendefinisikan data bertipe array dalam teks algoritma dilakukan dengan kata
kunci array diikuti dengan rentang nilai index dari array dan tipe data dari elemen
array. Berikut adalah contoh pendefinisian data bertipe array.

Nama-data : array [rentang-nilai-index] of tipe-data

Beberapa contoh kasus penggunaan array dapat dilihat pada materi kuliah
pertemuan-9.
3. Pemrograman Modular

Dalam menyelesaikan suatu persoalan, sering kali kita melakukan teknik yang
dikenal dengan istilah “devide and conquer”. Teknik ini memandang sebuah
persoalan besar / rumit dapat dipecah-pecah menjadi sejumlah sub-sub persoalan
yang lebih kecil / sederhana. Sub-sub persoalan yang lebih kecil / sederhana
akan lebih mudah diselesaikan. Teknik “devide menyelesaiakan persoalan
dengan tiga tahap berikut:

1) Memecah persoalan menjadi sub-sub persoalan yang lebih kecil atau


sederhana
2) Mencari solusi untuk setiap sub persoalan secara rekursif; dalam arti
subpersoalan dapat dipecah lagi menjadi sub-sub persoalan yang lebih
kecil dan lebih mudah diselesaikan.
3) Mengkombinasikan atau mengintegrasikan solusi seluruh sub persoalan
menjadi sebuah solusi bagi persoalan asalnya.

Teknik “devide and conquer” ini juga diterapkan pada pemrograman modular atau
disebut juga pemrograman terstruktur. Sebuah program yang besar dapat
dipecah-pecah menjadi sejumlah sub-sub program yang lebih kecil. Pemecahan
dilakukan berdasarkan fungsi komputasi spesifik yang harus diselesaikan oleh
setiap sub program. Jadi, setiap sub program memiliki tugas spesifik sub
persoalan yang harus diselesaikannya dan tidak tergantung dari sub persoalan
lainnya. Dengan pendekatan ini, setiap sub program dapat dibangun secara
terpisah tanpa tergantung dari sub program lainnya termasuk program utamanya.

Gambar berikut memperlihatkan sebuah struktur hirarki dari sebuah Program A


yang dipecah menjadi sejumlah sub-subprogram.
Dalam algoritma subprogram dapat diimplementasikan sebagai Fungsi atau
Prosedur, tergantung fungsi komputasi yang ditugaskan kepada subprogram.

Fungsi Prosedur

Subprogram yang melakukan Subprogram yang merupakan


transformasi atau pemetaan dari suatu serangkai aksi yang menghasilkan
nilai ke nilai lainnya efek neto suatu keadaan tertentu

Sebuah Fungsi akan menerima nilai Sebuah prosedur memiliki keadaan


dan menghasilkan nilai baru awal tertentu dan keadaan akhir
tertentu
Prosedur juga dapat menerima input
dan memberikan output kepada
pengguna atau pemanggilnya

Dalam program, fungsi digunakan atau Dalam program, prosedur digunakan


dipanggil dalam suatu ekspresi (dipanggil) sebagai sebuah aksi

Contoh: Contoh:
1. Fungsi SQRT: mengeluarkan 1. Prosedur Input: melakukan
sebuah nilai hasil akar kuadrat proses pembacaan nilai data
dari nilai input yang diterimanya dari alat masukan
2. Fungsi POW: mengeluarkan 2. Prosedur Output: melakukan
nilai x pangkat n dari nilai input proses pencetakan nilai data ke
n dan x yang diterimanya alat keluaran

Fungsi dan Prosedur harus didefinisikan terlebih dahulu sebelum digunakan


dalam program. Ada sejumlah fungsi dan prosedur yang telah terdefinisi dalam
sistem dan dapat langsung digunakan dalam algoritma program.

Fungsi dan Prosedur hasil analisa dan desain solusi sebuah program dengan
pendekatan modular, didefinisikan pada bagian kamus program ataupun pada
bagian kamus lokal sebuah fungsi ataupun prosedur.

Pendefinisian Fungsi

Berikut adalah notasi algoritmik untuk pendefinisian sebuah Fungsi.

Function Nama-Fungsi (Parameter-input : tipe) → tipe hasil


{ Spesifikasi fungsi: diberikan input … menghasilkan nilai … }
Kamus Lokal

{ deklarasikan semua nama data yg digunakan dalam algoritma fungsi;


kecuali parameter input }

Algoritma

{ deretan instruksi algoritmik: assignment, input, output, analisa kasus,


pengulangan }

{Pengiriman nilai di akhir fungsi}


→ nilai yang dikeluarkan

Fungsi didefinisikan dengan kata kunci Function, dilanjutkan menyebutkan nama


fungsi, dan mendefinisikan parameter inputnya, serta menyebutkan tipe data dari
nilai keluarannya seperti diperlihatkan pada skema di atas.

Fungsi dapat menerima input lebih dari satu nilai, untuk dipetakan ke nilai
keluarannya. Parameter fungsi didefinisikan dengan menyebukan nama data dan
tipe data dari parameter tersebut.

Fungsi dapat memilik nama-nama data yang dideklarasikan dalam kamus


lokalnya untuk kebutuhan mendukung proses komputasinya.

Bagian algoritma fungsi adalah tempat kita menuliskan langkah-langkah algoritmik


komputasi yang harus dilakukan dalam fungsi tersebut. Aksi terakhir dari sebuah
fungsi adalah aksi mengeluarkan nilai dari hasil proses komputasi yang
dilakukannya. Dalam skema di atas dapat dilihat notasinya: “→ nilai yang
dikeluarkan”. Simbol → digunakan dalam fungsi sebagai instruksi (aksi)
mengeluarkan nilai.

Pemanggilan Fungsi

Dalam program, fungsi digunakan dengan pemanggilan fungsi (Function Call).


Pemanggilan fungsi dilakukan dengan menuliskan nama fungsi beserta parameter
input nya dalam sebuah ekspresi (ingat, fungsi menghasilkan sebuah nilai).

Berikut adalah contoh penggunaan fungsi dalam sebuah program. Program


Panggil_FX membaca sebuah nilai real r, dan harus mencetak nilai f(r) = 2r + 4.
Untuk menggambar contoh penggunaan fungsi, proses kalkulasi 2r + 4
diimplementasikan kedalam sebuah fungsi F(x) = 2x + 4.

Program Panggil_FX
{ membaca nilai real r, dan mencetak nilai f(r) = 2r + 4 }
{ K. awal: …. }
{ K. akhir: …. }
Kamus
r : real {data yg dibaca}

Function Fx (x : real) → real


{Fungsi menerima nilai real x, mengeluarkan nilai real 2x+4}

Kamus Lokal
y : real {nilai keluaran fungsi Fx}

Algoritma
y2*x+4
→y

Algoritma
input (r)
output (Fx (r))

Perhatikan pada contoh di atas, fungsi Fx didefinisikan pada bagian kamus


program sebelum digunakan pada bagian algoritma program. Pendefinisian fungsi
mengikuti notasi algoritmik pendefinisian fungsi yang telah dijelaskan di bagian
sebelumnya. Fungsi Fx menggunakan nama lokal y untuk menampung hasil
penghitungan 2x + 4 sebelum dikeluarkan sebagai sebuah nilai hasil kalkusi
fungsi Fx. Perhatikan notasi “→ y” sebagai instruksi terakhir untuk mengeluarkan
nilai hasil kalkulasi 2x + 4.

Fungsi Fx digunakan oleh program di dalam perintah output untuk mencetak nilai
kalkulsi 2r + 4, yang dilakukan dengan pemanggilan fungsi Fx dengan
memberikan parameter input nilai r.

Pendefinisian Prosedur

Berikut adalah notasi algoritmik untuk pendefinisian sebuah Prosedur.

Procedure Nama-Prosedur (Parameter-formal : tipe)


{ Spesifikasi : … }
{ Keadaan awal : … }
{ Keadaan akhir : … }

Kamus Lokal

{ deklarasikan semua nama data yg digunakan dalam algoritma prosedur;


kecuali parameter formal }

Algoritma

{ deretan instruksi algoritmik: assignment, input, output, analisa kasus,


pengulangan }

Prosedur didefinisikan dengan kata kunci Procedure, dilanjutkan menyebutkan


nama prosedur, dan mendefinisikan parameter input / output nya beserta tipe data
dari masing-masing parameter seperti terlihat pada skema di atas.

Sebuah prosedur bisa memiliki lebih dari satu parameter atau pun tanpa
parameter. Setiap parameter harus didefinisikan tipe datanya dan jenisnya (input,
output, atau input / output). Parameter yg didefinisikan ini disebut dengan istilah
parameter formal. Ketika nanti prosedur dipanggil (digunakan) dengan beserta
parameter input dan / atau outputnya, parameter pada saat pemanggilan ini
disebut dengan istilah parameter aktual.

Prosedur dapat memilik nama-nama data yang dideklarasikan dalam kamus


lokalnya untuk kebutuhan mendukung proses komputasinya.

Bagian algoritma prosedur adalah tempat kita menuliskan langkah-langkah


algoritmik komputasi yang harus dilakukan dalam prosedur tersebut.

Pemanggilan Prosedur

Dalam program, prosedur digunakan dengan pemanggilan prosedur (Procedure


Call). Pemanggilan prosedur dilakukan dengan menuliskan nama prosedur
beserta parameter aktual nya sebagai sebuah aksi atau instruksi dalam bagian
algoritma.

Berikut adalah contoh penggunaan prosedur dalam sebuah program. Program


Panggil_Hitung memiliki 3 nama data integer A, B, dan C. Program melakukan
inisialisasi terhadap variabel B dan C dengan nilai masing-masing 3 dan 5.
Kemudian program memanggil prosedur Hitung untuk melakukan proses
komputasi dan mencetak nilai A, B, dan C hasil komputasi oleh prosedur Hitung.

Program Panggil_Hitung
{ contoh program melakukan komputasi dgn pemanggilan prosedur }
{ K. awal: nilai A sembarang; dan B dan C diinisialisiasi }
{ K. akhir: A, B, dan C berisi nilai hasil komputasi oleh prosedur Hitung dan
tercetak ke alat keluaran }

Kamus
A, B, C : integer
Procedure Hitung (output A : integer; input B, C : integer)
{Prosedur komputasi menghitung nilai A dan C}
{K. awal : … }
{K. akhir : …}

Kamus Lokal

Algoritma
A  10 + B - C
CC+4

Algoritma
B3
C5

Hitung (A, B, C)
output (A, B, C)

Hitung (C, A, B)
output (A, B, C)

Hitung (C, B, A)
output (A, B, C)

Perhatikan pada contoh di atas, prosedur Hitung memiliki sebuah parameter


output A, dan dua buah parameter input B dan C; ketiga nya bertipe integer.
Prosedur Hitung tidak memiliki nama data di kamus lokalnya, dan hanya
menggunakan parameter input dan output untuk proses komputasinya.

Prosedur Hitung melakukan proses kalkulasi untuk nilai A dan nilai C. Namun,
nilai yang dikembalikan sebagai output kepada program pemanggilnya hanya
parameter A saja. Nilai C meskipun dikalkulasi, hasilnya tidak dikembalikan
sebagai output bagi program pemanggilnya.

Pemanggilan pertama, Hitung (A, B, C). Pemanggilan ini mengasosiasikan nama


global A, ke nama lokal (parameter formal) A, nama global B ke nama lokal
(parameter formal) B, dan nama global C ke nama lokal (parameter formal) C.
Pemanggilan Hitung (A, B, C) ini menghasilkan perubahan keadaan menjadi nilai
nama global A berubah menjadi 8 (10 + B – C = 10 + 3 – 5), sedangkan nilai
nama global B dan C masing-masing tetap 3 dan 5. Output hasil kalkulasi di nama
lokal A oleh prosedur Hitung, dikembalikan ke nama global A sesuai parameter
aktualnya.

Pemanggilan kedua, Hitung (C, A, B). Pemanggilan ini mengasosiasikan nama


global C, ke nama lokal (parameter formal) A, nama global A ke nama lokal
(parameter formal) B, dan nama global B ke nama lokal (parameter formal) C.
Pemanggilan Hitung (C, A, B) ini menghasilkan perubahan keadaan menjadi nilai
nama global C berubah menjadi 15 (10 + B – C = 10 + 8 – 3), sedangkan nilai
global A dan B masing-masing tetap 8 dan 3. Output hasil kalkulasi di nama lokal
A oleh prosedur Hitung, dikembalikan ke nama global C sesuai parameter
aktualnya.

Pemanggilan ketiga, Hitung (C, B, A). Pemanggilan ini mengasosiasikan nama


global C, ke nama lokal (parameter formal) A, nama global B ke nama lokal
(parameter formal) B, dan nama global A ke nama lokal (parameter formal) C.
Pemanggilan Hitung (C, B, A) ini menghasilkan perubahan keadaan menjadi nilai
nama global C berubah menjadi 5 (10 + B – C = 10 + 3 – 8), sedangkan nilai
global A dan B masing-masing tetap 8 dan 3. Output hasil kalkulasi di nama lokal
A oleh prosedur Hitung, dikembalikan ke nama global C sesuai parameter
aktualnya.

4. Skema Pemrosan Sekuensial

Pemrosesan sekuensial adalah pemrosesan secara satu-persatu, dari


sekumpulan informasi sejenis yang setiap elemennya dapat diakses dengan
keterurutan tertentu (ada elemen suksesor).

Elemen bisa bertipe dasar (integer, real, character, boolean), atau juga type
bentukan terstruktur misal NilaiMK: <nim : String, nama : String, ipk : real>).
Deretan elemen tersebut dapat merupakan kumpulan elemen data yang dibaca
satu per satu dari peralatan input, dapat berupa data dalam sebuah array (tabel
atau matrix), dapat berupa data yang tersimpan dalam file sekuensial, ataupun
data dalam suatu struktur data list.

Pemrosesan sekuensial dapat dilakukan dengan dua cara :


• Model dengan MARK. Berakhirnya pemrosesan ditandai dengan suatu
elemen fiktif. Disebut fiktif karena bukan merupakan anggota dari data
yang diproses. Model dengan mark lebih banyak dipakai dalam
pemrograman praktis
• Model tanpa MARK. Berakhirnya pemrosesan ditandai dengan suatu
elemen yang merupakan elemen terakhir dari data yang diproses
Kumpulan informasi di atas demikian rupa sehingga setiap elemennya dapat
diakses melalui sejumlah primitif terdefinisi berikut:
• First_Element: elemen pertama dari kumpulan data
• Current_Element: elemen yang siap diproses
• Next_Element: elemen yang diakses setelah Current_Element
• EoP (End of Process): tanda akhir pemrosesan sekuensial (tidak ada lagi
Next_Elemen yg akan diproses).

Primitif-primitif di atas diimplementasikan dalam prosedur atau fungsi dengan


spesifikasi seperti berikut ini.

Procedure GetFirstElmt
{Aksi yang memberikan elemen pertama yang akan diproses secara
sekuensial}
{K. awal: CurrElmt berisi sembarang}
{K. akhir: CurrElmt berisi elemen pertama yang akan diproses}

Procedure GetNextElmt
{Aksi mendapatkan elemen berikutnya dari Current Element}
{K. awal: CurrElmt berisi current element}
{K. akhir: CurrElmt berisi elemen berikutnya yang akan diproses}

Function EoP → boolean


{Memberikan nilai true jika tidak ada lagi elemen berikutnya yang akan
diproses}

Dalam model proses dengan Mark, EoP bernilai true ketika current elemen berisi
elemen fiktif yang merupakan tanda dari akhir elemen data. Sedangkan dalam
model tanpa mark, EoP berinilai true ketika current elemen berisi elemen terakhir
dari kumpulan data yang diproses. Elemen terakhir mengandung informasi yang
menunjukkan atau menandakan bahwa elemen tersebut adalah elemen terakhir.
Berikut adalah contoh implementasi algoritma program NamaHari yang telah kita
diskusikan di kelas. Program NamaHari ini menyimpan daftar nama-nama hari
dalam seminggu ke dalam sebuah tabel hari dan mencetak daftar tersebut ke alat
keluaran. Inisialisasi tabel nama hari dan proses pencetakanya diimplementasikan
masing-masing dalam sebuah prosedur.

5. Translasi Notasi Algoritma ke Bahasa Pemrograman C++

Teks algoritma yang kita sepakati, terdiri dari tiga bagian, yakni:
• Judul: bagian yang menjelaskan tentang algoritma, berupa identitas atau
nama dan keterangan tambahan terkait dengan masalah yang akan
diselesaikan
• Kamus: bagian tempat kita data, prosedur, dan fungsi
• Algoritma: bagian tempat kita menuliskan langkah-langkah atau instruksi
penyelesaian masalah

Teks Algoritma:
001 Program Judul
002 {Deskripsi yang menjelaskan algoritma secara ringkas untuk
003 memudahkan pembaca memahami}
004 {Keadaan Awal: }
005 {Keadaan Akhir:}
006
007 Kamus
008 {Bagian tempat mendeklarasikan data, prosedur, dan fungsi}
009
010 Algoritma
011 {Bagian tempat menuliskan langkat-langkah atau instruksi
012 penyelesaian masalah }
013

Dalam bahasa pemrograman C++ bagian-bagian dalam teks algoritma di atas


dapat ditranslasi ke dalam teks program (source code) dengan format berikut:

001 // Program Judul


002 // Deskripsi yang menjelaskan algoritma secara ringkas untuk
003 // memudahkan // pembaca memahami
004 // Keadaan Awal: ………..
005 // Keadaan Akhir: ………..
006
007 // Kamus
008 // Bagian tempat mendeklarasikan data, prosedur, dan fungsi
009
010 #include <iostream>
011 using namespace std;
012
013 // Algoritma
014 int main()
015 {
016
017 // Bagian tempat menuliskan langkat-langkah atau instruksi
018 // penyelesaian masalah
019
020 Return 0;
021 }

Notasi // dalam teks program C++ menginformasikan bahwa apa yg ditulis setelah
tanda tersebut adalah komentar (bukan instruksi).

Baris ke-10 (#include <iostream> adalah instruksi bagi compiler C++ untuk
menambahkan kode-kode terkait dengan instruksi input dan output (iostream).
Dan, baris ke-11 adalah informasi bagi compiler C++ bahwa dalam teks program
kita menggunakan kata-kata kunci seperti cin, cout, endl, vector, string, dll yang
merupakan fitur-fitur dalam standard pustaka (library) bahasa pemrograman C++.

Implementasi pendefinisian Fungsi dalam Bahasa C++

Notasi Algoritma Bahasa C++

Function Nama-Fungsi (Parameter- // Function Nama-Fungsi (Parameter-


input : tipe) → tipe hasil // input : tipe) → tipe hasil
{ Spesifikasi fungsi: diberikan input // { Spesifikasi fungsi: diberikan input
… menghasilkan nilai … } // … menghasilkan nilai … }

Kamus Lokal Tipe hasil Nama-Fungsi (tipe


parameter input) {
{ deklarasikan semua nama data yg
digunakan dalam algoritma fungsi; // Kamus Lokal
kecuali parameter input }
// { deklarasikan semua nama data yg
Algoritma // digunakan dalam algoritma fungsi;
// kecuali parameter input }
{ deretan instruksi algoritmik:
assignment, input, output, analisa // Algoritma
kasus, pengulangan }
{ deretan instruksi algoritmik:
{Pengiriman nilai di akhir fungsi} assignment, input, output, analisa
→ nilai yang dikeluarkan kasus, pengulangan }

//{Pengiriman nilai di akhir fungsi}


return nilai yang dikeluarkan;

}
Implementasi pendefinisian Prosedur dalam Bahasa C++

Notasi Algoritma

Procedure Nama-Prosedur (Parameter-formal : tipe)


{ Spesifikasi : … }
{ Keadaan awal : … }
{ Keadaan akhir : … }

Kamus Lokal

{ deklarasikan semua nama data yg digunakan dalam algoritma prosedur;


kecuali parameter formal }

Algoritma

{ deretan instruksi algoritmik: assignment, input, output, analisa kasus,


pengulangan }

Bahasa C++

//Procedure Nama-Prosedur (Parameter-formal : tipe)


//{ Spesifikasi : … }
//{ Keadaan awal : … }
//{ Keadaan akhir : … }
void Nama-Prosedur (tipe parameter-formal) {

// Kamus Lokal

{ deklarasikan semua nama data yg digunakan dalam algoritma prosedur;


kecuali parameter formal }

//Algoritma

{ deretan instruksi algoritmik: assignment, input, output, analisa kasus,


pengulangan }

Implementasi pendefinisian Array dalam Bahasa C++

Notasi Algoritma Bahasa C++

#include <string>
Kamus // Kamus

w: array [1..14] of integer Int w[14];

hari : array [1..7] of string string hari[7];


idx : integer int idx;

Algoritma // Algoritma
Int main() {
hari[1]  “Minggu”
hari[2]  “Senin” hari[0] = “Minggu”;
hari[3]  “Selasa” hari[1] = “Senin”;
hari[4]  “Rabu” hari[2] = “Selasa”;
hari[5]  “Kamis” hari[3] = “Rabu”;
hari[6]  “Jumat” hari[4] = “Kamis”;
hari[7]  “Sabtu” hari[5] = “Jumat”;
hari[6] = “Sabtu”;

return 0;
}

Perhatikan perbedaan indeks elemen pertama antara teks algoritma dan


program C++. Indeks elemen pertama sebuah array dalam bahasa pemrograman
C++ dimulai dari indeks ke-0, bukan indeks-1. Pada contoh di atas, array hari
dideklarasikan memiliki 7 elemen, mulai dari elemen ke-0 hingga elemen ke-6.
Tidak ada elemen dengan indeks 7 dalam contoh di atas. Jika anda mencoba
mengakses elemen ke-7 hari[7], akan terjadi error pada saat eksekusi program.

6. Contoh

Berikut adalah contoh implementasi algoritma program NamaHari yang telah kita
diskusikan di kelas. Program NamaHari ini menyimpan daftar nama-nama hari
dalam seminggu ke dalam sebuah tabel hari dan mencetak daftar tersebut ke alat
keluaran. Inisialisasi tabel nama hari dan proses pencetakanya diimplementasikan
masing-masing dalam sebuah prosedur.

// Program JumlahDeret
// {menjumlahkan 1+2+3+4+....+N, model tanpa MARK}
// {K. awal: sembarang}
// {K. akhir: {K. akhir: nilai N terbaca dan mencetak hasil penjumlah deret
1+2+3+ … +N}
//
// Nama Programmer : ...
// Versi Program : ...
// Tgl Pembuatan : ...
// Tgl Revisi Terakhir : ...

#include <iostream>
using namespace std;

// Kamus
int i;
int N; // {banyaknya bilangan)
int Sum; // {hasil penjumlahan}

// Algoritma
int main() {

// Inisiasi
cout << "Banyaknya bilangan (N): "; cin >> N;
Sum = 0;

// GetFirstElmt
i = 1;

do {

// ProcessCurrElmt
Sum = Sum + i;

// GetNextElmt
i = i + 1;

} while (i <= N);

// Terminasi
cout << "Hasil penjumlahah deret: " << Sum;

return 0;
}

Berikut adalah contoh program Rata_Rata menghitung nilai rata-rata dari deret N.
Program Rata_Rata membaca nilai bertipe integer N (banyaknya bilangan dalam
deret bilangan integer positif). Kemudian program, menghitung nilai rata-rata dari
bilangan-bilangan deret N tersebut.

// Program Rata_Rata
// {menjumlahkan 1+2+3+4+....+N dan menghitung nilai rata-ratanya, model tanpa MARK}
// {K. awal: sembarang}
// {K. akhir: nilai N terbaca dan mencetak hasil penjumlah deret 1+2+3+ … +N; dan nilai rata-ratanya}
// Nama Programmer : NIM - Nama
// Versi Program :
// Tgl Pembuatan :
// Tgl Revisi Terakhir :
#include <iostream>
using namespace std;

// Kamus
int i;
int N; // {banyaknya bilangan)
float Sum; // {hasil penjumlahan}
float Rata2;

// Algoritma
int main() {

// Inisiasi
cout << "Banyaknya bilangan (N): "; cin >> N;
Sum = 0;

for (i = 1; i <= N; i++) {


// ProcessCurrElmt
Sum = Sum + i;
}

// Terminasi
Rata2 = Sum / N;
cout << "Nilai rata-rata dari deret " << N << " : " << Rata2;

return 0;
}

III. TUGAS

1. Uji coba contoh-contoh program

Lakukan uji coba implementasi program C++ dari contoh-contoh yang diberikan
di atas, yakni program JumlahDerat dan Rata_Rata. Hasil akhir yang diharapkan
dari tugas ini adalah anda memiliki 4 file program dan 1 file dokumen laporan
praktikum. Masing-masing program terdiri dari sebuah file source code (cpp) dan
sebuah executable file (exe).
.
2. Implementasi Algoritma Program Cacah dan Rata2DgnMark.

Implementasikan program Cacah dan Rata2DgnMark yang telah didiskusikan


dalam kelas. Kedua program tersebut, adalan contoh algoritma skema
pemrosesan sekuensi dengan menggunakan Mark sebagai tanda akhir proses.
Hasil akhir yang diharapkan dari tugas ini adalah anda memiliki 4 file program
dan 1 file dokumen laporan praktikum. Masing-masing program terdiri dari
sebuah file source code (cpp) dan sebuah executable file (exe).

Anda mungkin juga menyukai