Senin, 22 Juni 2015

Algoritma & Struktur Data

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
Solusi:
Menggunakan Raptor _Procedure dalam Raptor
Klik kanan di bagian tab main, sehingga muncul
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
Algoritma : FUNCTION CekGigiMotor(Gigi:INTEGER, Kec:INTEGER) : 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;
}