Contoh Kasus A : Belajar Naik Motor
Si Nono baru lulus SMA, dia dikasih sepeda motor oleh ayahnya dengan merk YAMAHAL . Namun sayangnya motor tersebut bukan motor matic, jadi nono harus belajar mengenai memindahkan gigi dengan aturan yang diberikan ayahnya gigi 1 untuk kecepatan 0-40 km/jam, gigi 2 untuk kecepatan 41-60 km/jam, gigi 3 untuk 61-80 km/jam, dan gigi 4 untuk kecepatan lebih dari 80 km/jam. Tentukan apakah nono bisa mengendarai motor denga menggunakan gigi yang benar. Input
Baris pertama gigi motor yang sedang dipakai (1≤G≤4), baris kedua diisi oleh kecepatan yang sedang berjalan (0≤V≤180)
Output
1 – jika nono menggunakan gigi yang tepat 0 - jika nono menggunakan gigi yang salah Contoh No Input Output 1 1 35 1 2 4 20 0 3 3 80 1 Solusi:
Menggunakan Raptor Procedure dalam Raptor
Klik kanan di bagian tab main, sehingga muncul
Untuk kasus di atas
Isi dengan nama procedure Isi dengan parameter masukan
Sedangkan untuk tab gambar flowchart-nya adalah
Menggunakan Algoritma
Judul : Algoritma untuk memeriksa apakah gigi motor yang digunakan sesuai dengan kecepatan motor menggunakan Fungsi
Kamus : Gigi_Motor_Sekarang : INTEGER Kecepatan_Motor_Sekarang : INTEGER
IF(Gigi=1 AND Kec<=40) THEN CekGigiMotor1
ELSE
IF(Gigi=2 AND Kec<=60) THEN CekGigiMotor1
ELSE
IF(Gigi=3 AND Kec<=80) THEN CekGigiMotor1
ELSE
IF(Gigi=4 AND Kec>80) THEN CekGigiMotor1 ELSE CekGigiMotor0 ENDIF ENDIF ENDIF ENDIF END FUNCTION {Algoritma Pemanggil} INPUT Gigi_Motor_Sekarang INPUT Kecepatan_Motor_Sekarang
OUTPUT CekGigiMotor(Gigi_Motor_Sekarang, Kecepatan_Motor_Sekarang)
Judul : Algoritma untuk memeriksa apakah gigi motor yang digunakan sesuai dengan kecepatan motor menggunakan Prosedur
Kamus : Gigi_Motor_Sekarang : INTEGER Kecepatan_Motor_Sekarang : INTEGER
Status_Benar : INTEGER
Algoritma : PROCEDURE CekGigiMotor(Gigi:INTEGER, Kec:INTEGER, Status : INTEGER)
IF(Gigi=1 AND Kec<=40) THEN Status 1
ELSE
IF(Gigi=2 AND Kec<=60) THEN Status 1
ELSE
IF(Gigi=3 AND Kec<=80) THEN Status 1
ELSE
IF(Gigi=4 AND Kec>80) THEN Status 1
ELSE Status 0
ENDIF ENDIF ENDIF ENDIF END PROCEDURE {Algoritma Pemanggil} INPUT Gigi_Motor_Sekarang INPUT Kecepatan_Motor_Sekarang CekGigiMotor(Gigi_Motor_Sekarang, Kecepatan_Motor_Sekarang, Status_Benar) OUTPUT Status_Benar
Menggunakan Program (Bahasa C/C++)
//Program untuk memeriksa apakah gigi motor yang digunakan sesuai dengan kecepatan //motor menggunakan Fungsi
#include <stdio.h>
//Fungsi Cek Gigi yang digunakan
int Fungsi_CekGigiMotor(int Gigi, int Kec){ if(Gigi=1 AND Kec<=40) {
return 1; }else{
if(Gigi=2 AND Kec<=60) { return 1;
}else{
if(Gigi=3 AND Kec<=80) { return 1;
}else{
if(Gigi=4 AND Kec>80) { return 1; }else{ return 0; } } } } }//End Function //Program pemanggil int main(){
//deklarasi variabel data int Gigi_Motor_Sekarang; int Kecepatan_Motor_Sekarang; //Input
scanf("%d",&Gigi_Motor_Sekarang); scanf("%d",&Kecepatan_Motor_Sekarang); //Proses dan Output
//Panggil dan Output Fungsi
printf("%d\n",Fungsi_CekGigiMotor(Gigi_Motor_Sekarang, Kecepatan_Motor_Sekarang));
return 0; }
//Program untuk memeriksa apakah gigi motor yang digunakan sesuai dengan kecepatan //motor menggunakan Prosedur
#include <stdio.h>
//Prosedur Cek Gigi yang digunakan
void Prosedur_CekGigiMotor(int Gigi, int Kec, int Status){ if(Gigi=1 AND Kec<=40) {
Status=1; }else{
if(Gigi=2 AND Kec<=60) { Status=1;
}else{
if(Gigi=3 AND Kec<=80) { Status=1;
}else{
if(Gigi=4 AND Kec>80) { Status=1; }else{ Status=0; } } } } }//End Prosedur //Program pemanggil int main(){
//deklarasi variabel data int Gigi_Motor_Sekarang; int Kecepatan_Motor_Sekarang; int Status_Benar; //Input scanf("%d",&Gigi_Motor_Sekarang); scanf("%d",&Kecepatan_Motor_Sekarang); //Proses dan Output
//Panggil Prosedur Prosedur_CekGigiMotor(Gigi_Motor_Sekarang, Kecepatan_Motor_Sekarang, Status_Benar); //Output Prosedur printf("%d\n",Status_Benar); return 0; }
Contoh Kasus B : Deret Angka
Deret 1 + 3 + 5 + 7 + … + ????
Suku ke 1 2 3 4 … n
Berdasarkan pola deret dari suku ke-1 sampai suku ke-4 bisa kita bilang bahwa deret tersebut akan menjumlahkan semua bilangan ganjil. Oleh karena itu untuk suku ke-n isi deretnya adalah (2n-1) kenapa bisa ini?cari sendiri jawabannya
Input
Baris pertama suku terakhir dari deret (1≤N≤10000) Output
Jumlah Total deret Contoh No Input Output 1 1 1 2 4 16 3 2 4 Solusi:
Menggunakan Raptor Procedure dalam Raptor
Flowchart-nya, untuk tab gambar flowchart-nya adalah
Menggunakan Algoritma
Judul : Algoritma untuk menghitung deret bilangan ganjilmenggunakan Fungsi
Kamus : N : INTEGER Jml_Deret_Ganjil : INTEGER
Algoritma : FUNCTION Sum_Deret Ganjil(N:INTEGER) : INTEGER Jml_Deret_Ganjil 0
FOR I 1 TO N STEP 1 DO
Jml_Deret_Ganjil Jml_Deret_Ganjil + ((2*i)-1) ENDFOR
Sum_Deret_Ganjil Jml_Deret_Ganjil END FUNCTION
{Algoritma Pemanggil} INPUT N
OUTPUT Sum_Deret Ganjil(N)
Kamus : N : INTEGER
Jml_Deret_Ganjil : INTEGER
Algoritma : PROCEDURE Sum_Deret Ganjil(N:INTEGER, Total: INTEGER) Total 0
FOR I 1 TO N STEP 1 DO Total Total+ ((2*i)-1) ENDFOR END PROCEDURE {Algoritma Pemanggil} INPUT N Sum_Deret_Ganjil(N,Jml_Deret_Ganjil) OUTPUT Jml_Deret_Ganjil
Menggunakan Program (Bahasa C/C++)
//Program untuk menghitung nilai pada deret bilangan ganjil menggunakan Fungsi #include <stdio.h>
//Fungsi Hitung nilai deret bilangan ganjil int Fungsi_Sum_DeretGanjil(int N){
Jml_Deret_Ganjil = 0; for(int i=1;i<=N;i++) {
Jml_Deret_Ganjil = Jml_Deret_Ganjil + ((2*i)-1); }
return Jml_Deret_Ganjil }//End Function
//Program pemanggil int main(){
//deklarasi variabel data int N;
//Input
scanf("%d",&N); //Proses dan Output
//Panggil dan Output Fungsi
printf("%d\n",Fungsi_Sum_DeretGanjil(N)); return 0;
}
//Program untuk menghitung nilai pada deret bilangan ganjil menggunakan Prosedur #include <stdio.h>
//Prosedur Hitung nilai deret bilangan ganjil void Prosedur_ Sum_DeretGanjil(int N, int Total){
Total = 0;
for(int i=1;i<=N;i++) {
} }//End Prosedur //Program pemanggil int main(){
//deklarasi variabel data int N;
//Input
scanf("%d",&N); //Proses dan Output //Panggil Prosedur
Prosedur_ Sum_DeretGanjil(N, Total); //Output Prosedur
printf("%d\n",Total); return 0;
}
Selanjutnya silahkan kerjakan studi kasus berikut ini (selesaikan dengan menggunakan Fungsi dan/atau Prosedur)
Kasus A : Deret Angka
Dik deret bilangan berikut ini:1. ଵ ଵ+ ଶ ଷ+ ଷ + ⋯ +? ? ? 2. 2 – 4 + 6 – 8 ± … ± ??? 3. 1ଶ+ 2ଷ+ 3ସ+ ⋯ +? ? ? Input
Baris pertama suku terakhir dari deret (1≤N≤10000) Output
Kasus B : Permainan prima
Ada seorang penggemar bilangan prima ingin bermain-main dengan bilangan prima. Dia ingin menginput banyak bilangan pada table array dan kemudian dia ingin mencari bilangan prima pada table tersebut serta dia ingin menyulap semua bilangan primanya menjadi 0. Buatlah program untuk membantu orang tersebut dengan menggunakan fungsi atau procedure!
Desain Tampilan: --Menu Utama— 1. Input Bilangan
2. Tampilkan Bilangan Prima 3. Sulap Bilangan Prima jadi 0 Pilihan Anda :
Bila pilihan 1 : Baris pertama merupakan banyaknya baris (0 < b ≤ 15), dan baris kedua
merupakan banyaknya kolom (0 < k ≤ 25), baris selanjutnya adalah bilangan-bilangan pada posisi baris dan kolomnya.
Contoh: Input: 2
2 4 5 6 35
Bila pilihan 2 : Tampilkan bilangan prima pada table bilangan tersebut Output: 2 3 5
Bila pilihan 3 : Tampilkan table bilangan setelah bilangan prima dirubah menjadi 0 Contoh:
Output: 0 0
4 0
(catatan: pilihan 2 dan 3 bisa di lakukan setelah melakukan pilihan 1)
Kasus C : Perhitungan Bangun Ruang
Ada seorang matematikawan yang sedang mengajarkan bangun ruang, namun dia kebingungan dalam membuat program untuk menghitung luas permukaan dan volume dari beberapa bangun ruang. Buatlah program untuk membantu matematikawan tersebut dengan menggunakan fungsi atau procedure!
Desain Tampilan: --Menu Utama—
Menghitung Luas Permukaan dan Volume 1. Balok
2. Tabung 3. Kerucut Pilihan Anda :
Bila pilihan 1 : Lakukan input keperluan balok dan tampilkan luas permukaan serta volumenya. Contoh:
Input: 2 //input panjang 3//input lebar 4//input tinggi Output: 52//luas permukaan
24//volume
Bila pilihan 2 : Lakukan input keperluan tabung dan tampilkan luas permukaan serta volumenya. (lihat contoh pada pilihan 1)
Bila pilihan 3 : Lakukan input keperluan kerucut dan tampilkan luas permukaan serta volumenya. (lihat contoh pada pilihan 1)
(catatan: inputan bagi semua bangun ruang tersebut adalah keperluan untuk menghitungnya, misal pada balok diperlukan p, l, dan t. untuk tabung dan kerucut cari sendiri)
Kasus D : Data Tukang Cilok
Ada seorang penjual cilok yang berpikir modern. Dia berpikir bahwa setiap penjualannya dia menyisihkan 10% dari hasil jualannya per hari, dan datanya diinputkan setelah seminggu. Kemudian dia ingin menambahkan fitur untuk mencari penyisihan uang terkecil di hari ke berapa. Buatlah program untuk membantu matematikawan tersebut dengan menggunakan fungsi atau procedure!
Desain Tampilan: --Menu Utama— 1. Input Data 2. View Data
3. Cari Penyisihan Uang Terkecil Pilihan Anda :
Bila pilihan 1 : Lakukan input berikut:
< hari ke berapa (1 sampai <= 7 ) > < hasil penjualannya per hari > Contoh: Input: 1 25000 2 80000 3 80000 4 50000 5 75000 7 50000
Bila pilihan 2 : Tampilkan data dengan format berikut:
<hari ke-> <hasil penjualannya> <10 % dari uang yang disisihkan*hasil penjualannya> Contoh: Output: 1 25000 2500 2 80000 8000 3 80000 8000 4 50000 5000 5 75000 7500 7 50000 5000
Bila pilihan 3 : Tampilkan hari ke berapa yang jumlah uang sisihannya terkecil < hari > < hasi penjualannya > < uang yang disisihkan >
Contoh:
Output: 1 25000 2500
Kasus E : Perumahan Tahan Banjir
Sebuah kantor pembangunan perumahan yang bernama “Perumahan Tahan Banjir” ingin mendata rumah – rumah yang ada di dalam perumahan tersebut, mulai dari rumah kosong, dan rumah yang sudah berpenghuni, dan juga mengetahui masing2 tipe rumah yang ada sehingga bisa mengetahui area perumahan yang sudah dipakai
Tampilan pertama berisi menu pilihan yang pertama yang terdiri dari. 1. Input luas perumahan
2. Input rumah (jumlah rumah, tipe rumah, kosong/tidak)
3. Output jumlah rumah yang kosong atau tidak, dan luas area perumahan yang tidak kosong Contoh
+++++Perumahan Tahan Banjir++++++ 1. Input Luas Perumahan
2. Input Rumah
3. Output jumlah rumah kosong dan tidak luas lahan perumahan yang berpenghuni Pilih : 1
Total luas perumahan (m2) : 500000 Pilih : 2
Input jumlah rumah : 2 Rumah 1
Tipe : 24
Berpenghuni : 1 //1 untuk ia dan 0 untuk tidak Rumah 2 Tipe: 32 Berpenghuni : 1 Pilih: 3 Jumlah rumah : 2 Berpenghuni : 2 Kosong : 0
Luas lahan berpenghuni :
Luas lahan perumahan dikurang luas lahan berpenghuni 500000 – (luas tipe 24 + luas tipe 32)
Kasus F : Progam Rumus rumus matematika
Seorang guru matematika mengadakan sebuah lomba kompetisi program, program tersebut berisi rumus rumus hitung matematika.
Tampilan pertama berisi menu pilihan yang pertama yang terdiri dari. 1. Hitung luas segitiga
2. Hitung Luas Segi empat 3. Hitung Luas persegi Contoh
++++++ Rumus - rumus Matematika ++++ 1. Luas segitiga
2. Luas Segi empat 3. Luas Persegi Pilih : 1 Alas : 4 Tinggi : 2 Luas : 4 Pilih : 2 Sisi : 2 Luas : 4 Pilih : 3 Panjang : 4 Lebar: 2 Luas : 8 By. Kurnia
Kasus G : Menghitung IPK
Seorang mahasiswa baru tidak terbiasa dengan aturan perhitungan IPK, lalu ia bertanya pada Dosen, setelah bertanya pada dosen ia dapat menghitung ipk nya, namun si mahasiswa ini adalah orang yang pelupa, lalu ia bertanya lagi kepada dosen. Saking banyaknya bertanya akhirnya c dosen menyurun mahasiswa tersebut untuk membuat program menghitung IPK
Contoh
+++ IPK Kalkulator +++ 1. Input mata kuliah 2. Hitung IPK Pilih : 1
Input jumlah matakuliah : 3 Matakuliah 1 Nama Matakuliah : Jumlah SKS : Nilai : A/B/C/D Matakuliah 2 Nama Matakuliah : Jumlah SKS : Nilai : A/B/C/D Matakuliah 3 Nama Matakuliah : Jumlah SKS : Nilai : A/B/C/D Pilih : 2
IPK anda adalah :
Kasus H : Baris jadi kolom, kolom jadi baris
Pada sebuah kasus matematika, seorang mahasiswa diberi tugas oleh dosennya untuk mengubah sebuah array berdimensi dua, yaitu baris menjadi kolom , dan kolom menjadi baris. Dengan menerapkan fungsi atau prosedur buat programnya
Input
Baris kedua banyaknya kolom (k) dan baris (b) array
Baris ketiga sampai sampai b adalah nilai dari array berdimensi banyak
Output
Array yang telah diubah antara kolom dan barisnya
Contoh Input Output 3 4 1 2 3 5 6 7 8 9 0 1 5 8 2 6 9 3 7 0 By. Kurnia