SlideShare a Scribd company logo
1 of 17
BAB VI
ARRAY SATU DIMENSI
A.PENDAHULUAN
Array adalah struktur data yang mengandung type data yang mempunyai type
sama.Suatu array adalah sekelompok memori yang berhubungan.Array mempunyai nama
dan type yang sama.Untuk merujuk lokasi tertentu atau elemen dalam array;array dan
angka posisi (disebut subscript atau indeks) dari elemen tersebut dalam array.Sebagai
contoh :
Algoritmik Bahasa Pascal Bahasa C
c[2]←2 c[2] :=2; c[2] = 2;
Adalah cara mengisi pada indeks 2 array c.
Array c dibawah ini mengandung 5 elemen.Elemen pertama array adalah elemen
ke-nol (bukan ke-1).Bilangan posisi yang diapit [] dinamakan subscript.Subcript harus
berupa integer atau ekspresi integer.
Nama array
c[1]
c[2]
c[3]
c[4]
c[5]
↑ bilangan posisi
Jika suatu program menggunakan ekspresi sebagai subscript maka ekspresi dievaluasi dulu
untuk menentukan subscript Jika a=1 dan b=3 c[a+b] adalah array c yang bernilai 72.
B.Deklarasi Array
Deklarasi array ditentukan dengan tipe dari setiap elemen dan banyaknya elemen
yang diperlukan oleh setiap array sehingga komputer mempersiapkan sejumlah
memori.Deklarasi array adalah sebagai berikut :
Algoritmik Bahasa Pascal Bahasa C
-45
6
0
72
1543
c: array [1…5] of integer c: array [1…5] of integer ; Int c[5];
Memberitahu komputer untuk menyediakan 5 elemen integer array c.Array bisa saja
dideklarasikan untuk berisi tipe data yang lain.Sebagai contoh,array tipe char dapat
digunakan untuk menyimpan string karakter.
C. Membaca elemen array
Oleh karena indeks array umumnya urut teratur,biasanya digunakan perulangan for
untuk mengakses elemen array.Perhatikan perbedaan dialek dalam Bahasa Pascal dan
Bahasa C di bawah ini.Diasumsikan :
Type larik = array [ 1..20] of integer
Bahasa Pascal Bahasa C
Procedure input_data(var x :
larik;n:byte):
Var I :integer;
begin
For i:=1 to n do
Begin
Write (‘data’,1’,:’);
Readln (x[i]);
end;
end;
Void baca_data (int A [],int n)
{ int i;
for (i = 0 ; i < I + +)
{
printf(“Data ke-%d :”,i+1);
scanf(“%d”,& A[i]);
}
}
Perhatikan bahwa array dalam bahasa pascal dimulai dari indeks 1 sampai dengan
indeks n sementara dalam bahasa C,indeks dimulai dari 0 sampai dengan (n-1).Dalam
bahasa pascal,parameter formal mempunyai harga default tidak berubah,artinya perubahna
yang dilakukan pada array dalam procedure ketika keluar dari procedure nilainya tidak
berubah.Dalam bahasa C,default parameternya adalah berubah.Sehingga dalam bahasa
pascal,bila diinginkan adanya perubahan pada array perlu ditambahkan var.Sedangkan
dalam bahasa C bila tidak diinginkan perubahan dalam array perlu ditambahkan cosnt.
D.Mencetak elemen array
Pada subprogram dalam bahasa C dibawah inimenggunakan kualifier cosnt karena
untuk mencetak data tidak diperlukan adanya perubahan pada data tersebut.
Bahasa Pascal Bahasa C
Procedure cetak (x : larik; n :byte);
var i :integer ;
begin
for i :=1 to n do
writeln (‘Data’,i’, : ‘, x[i]);
end;
void cetak_data (cosnt int A[],int n)
{ int i;
for (i =0;i< n; i++)
printf(“%d”,A[i];
}
Pada dasarnya , array merupakan fasilitas untuk mengelompokkan data yang betipe
sama.Ini berguna bila data tersebut dapat dimanfaatkan kembali.Sebagai contoh akan
diperhatikan pada kasus berikut ini.
Contoh 6.1
Carilah rata-rata dari n bilangan bulat dengan menggunakan array.
Algoritma 6.1
Fungsi rata(input x array [1..10] of integer ,ninteger) :real
{Diberikan n data kemudian dicari rata-ratanya}
Deklarasi
i, jumlah : integer
Deskripsi
jumlah ← 0
for I ← 1 to ndo
jumlah ← jumlah + x [i]
endfor
rata ← jumlah / n
Translasi 6.1
Bahasa Pascal Bahasa C
program mencari_rata_rata ;
user wincrt;
type larik = array [1..10] of integer ;
var n : integer; data :larik;
x_bar : real;
procedure masuk_data(var A :larik ; n
:integer);
var i : integer ;
begin
for i : = 1 to n do begin
write (‘Data ke :’,:’); readln (a[i]);
end;
end;
function rata ( x : larik;N : integer ; : real ;
var i : integer ; total :+ x[i];
begin
total :=0;
for i : 1 to N do total + x[i]
rata := total/N;
end;
begin
write(‘Berapa data:’);
#include <stdio.h>
void masuk_data(int A[],int n)
{ int i;
for ( i=0;i < n; i++);
{ printf(“Date ke-% : “,i+1);
Scanf(“%”,&A[i]);
}
}
fload rata (int x[] N)
{ int I;
float total=0;
for (i=0;i<N;i++) total = total +[i];
return(total/N);
}
main() {
int n;
int data [10];
float x_bar;
printf(“Berapa data :”);
scanf(“%”,&n);
masuk_data(data,n);
readln(n);
masuk_data(data,n);
x_bar := rata(data,n);
write(‘Rata-rata dari’,n,
‘bilangan adalah : ‘,x_bar:6:3);
end.
x_bar =rata(data,n);
printf(“Rata-rata dari %d bilangan adalah
:
%6.3f”,n,x_bar);
return 0;
}
Hampir tidak ada bedanya dengan algoritma 4.3.Karena tujuan akhirnya hanya
untuk mencari nilai rata-rata dari n bilangan bulat.Tentu akan sangat berguna bila nilai rata-
rata tersebut beserta datanya digunakan kembali sebagaimana kasus dibawah ini.
Kasus 6.2
Carilah nilai deviasi standar dari n buah data.
Analisis :
Rumus deviasi standar adalah :
std=
Terlihat bahwa nilai rata-rata dan datanya digunakan kembali.
Algoritma 6.2
Fungsi std(input x : array [1..10]of integer,n : integer,rata : real) : real
{Diberikan n data kemudian dicari rata-ratanya}
Deklarasi
i,jumlah : integer
Deskripsi
jumlah ← 0
for i ← 1 to n do
jumlah ← jumlah + sqr(x[i]-rata)
endfor
std ← sqr(jumlah/(n-1))
Translasi 6.2.
Bahasa Pascal Bahasa C
program standar_Deviasi;
user wincrt;
#include <stdio.>
#include <math.>
X[i] dipakai kembali
k
type larik = array [1..100] of real;
var n : integer; data : larik;
x_bar,dev standar : real;
procedure masuk_data(var A :larik;n : integer);
var : integer ;
begin
for i: =1 to do begin
write(‘Data ke :’,I,’)readln(A[i]);
end;
end;
function rata(x:larik;N;integer):real;
var i:integer;
total :real;
begin
total :=0;
for i := 1 to N do
total :=total +x[i];
rata := total/N;
end;
function STD (x:larik;N:integer;rata:real):real;
var i: integer;jumlah :real;
begin
jumlah :=0;
for I :=1 to N do
jumlah :=jumlah +sqr(+[i]-rata);
STD :=sqr (jumlah/N-1));
end;
begin
void masuk_data(int A[].int n)
{ int i;
for (i =;i < n;i++);
{ printf(“Data ke%d” :”,i+1);
Scanf(“%d”,&A[i]);
}
}
float rata(int x[],int N)
{ int i;
float total=0;
for (i =0;i<N;i++)
total =total + x[i];
return(total/N);
}
long sqr(int n ){return(n*n);}
float STD(const int x[],int N float rata)
{ int i;
float jumlah=0;
for (i =0;i++)
jumlah = jumlah + sqr (x[i]-rata);
return(sqr (jumlah /N-1)));
}
main() {
int n;
int data[10];
write(‘Berapa data:’);readln (n);
masuk_data(data,n);
x_bar :=rata(data,n);
dev_standar :=STD(data,n,x_bar);
writeln (‘nilai rata-rata =’,bar6.3);
writeln (‘standar deviasi=’,standar6.3);
end
float x_bar,dev_standar;
printf(“Berapa data :”); scanf(“%d”,&n);
masuk_data(data,n);
x_bar = rata(data,n);
dev_standar = STD (data,n,x_bar);
printf(“Nilai rata-rata =%6.3fn”,n,
x_bar);
printf(“standar deviasi =
%6.3f”,dev_standar);
return 0;
}
Kasus 6.3
Dengan menggunakan algoritma 5.2., buatlah algoritma untuk menentukan nilai
maksimum dari n bilangan.
Algoritma 6.3
function maksimum(input data :array[1..10]of integer,n : integer):integer
Deklarasi
i,temp :integer
Deskripsi
temp ←data[1]
for i←2 to n do
temp ←maksimum 2(temp,data[i]
maksimum ← temp
Tranlasi 6.3
Bahasa Pacal Bahasa C
program nilai_maksimum_n_bilangan;
user wincrt;
type larik = array [1..10]of integer;
#include <stdio.h>
void masuk_data(int A[],int n)
{ int i:
var n : integer;bilangan :larik;
procedure masuk_data(var A :larik; n :integer);
var i : integer;
begin
for i :=1 to n do begin
write(‘data ke :’,i’, :’);readln(A[i]);
end;
end;
funcation maksimum2(a,b :integer):integer;
begin
if (a>b)then maksimum2 :=a
else maksimum2:=b;
end;
functionmaksimum(data:larik;n:integer):integer;
var i,temp:integer;
begin
temp:=data[1];
for i:=2 to n do
temp:=maksimum2(temp,data[i]);
maksimum :=temp;
end;
begin
write(‘masukkan banyak data’);readln(n);
masuk_data(bilangan,n);
write(‘Nilai terbesar :’,maksimum(bilangan,n));
end.
for (i =0:i<n;i++)
{ printf(“Data ke-%d:”,i+1);
Scanf(“%”,&A[i]);
}
}
int maksimum2(int a,int b)
{ if (a>b)return(a);
else return(b);
}
int maksimum(int data[],int n)
{ int i,temp;
temp=data[0];
for (i =1;i<n;i++)
temp=maksimum2(temp,data[i]);
return(temp);
}
main() {
int n;
int bilangan[10];
printf(“Masukkan banyak data :”);
scanf(“%d”,&n);
masuk_data(bilangan,n);
printf(“Nilai terbesar:%d”,maksimum(bilangan,n));
return 0;
}
Kasus 6.4
Buatlah algoritma untuk menentukan nilai maksimum dan minimum dari n
bilangan.
Algoritma 6.4
Procedure maks_min(input data :larik,n:integer,output m1,m2 : integer)
Deklarasi
i:integer
Deskripsi
m1←data[1]
m2←data[1]
for i←2 to n do
if(data[i]>m1)then m1←data[i];
if(data[i]<m2)then m2←data[i];
endfor
Translasi 6.4
Bahasa Pascal Bahasa C
program nilai_maks_dan_min_n_bilangan;
uses wincrt;
type larik =array[1..10]of integer;
var maks,min,n:integer;
bilangan:larik;
procedure masuk_data(var
A:larik;n:integer);
#include <stdio.h>
void masuk_data(int A[],int n)
{ int i;
for (i=0;i<n,i++)
{ printf(“data ke-%:”,i+1);
scanf(“%d”,&A[i]);
}
var i:integer;
begin
for i:=1 to n do begin
write(‘data ke:’,1’,:’);readln(A[i];
end;
end;
procedure maks_min(data:larik;n:integer;
var m1,m2:integer);
var i :integer;
begin
m1:=data[1];
m2:=data[1];
for i:=2 to n do
begin
if(data[i]>m1)then m1:=data[i];
if(data[i]>m2)then m2:=data[i];
end;
end;
begin
write(‘masukkan banyak data:’);readln(n);
masuk_data(bilangan,n);
maks_min(bilangan,n,maks,min);
writeln(‘Nilai terbesar :’,maks);
writeln(‘Nilai terkecil :’,min);
end.
}
void maks_min(const int data[],int n,int*m1,int*m2)
{ int i;
*m1 =data[0];
*m2 =data[0];
for (i=1;i<n;i++)
{
if(data[i]>m1)*m1=data[i];
if(data[i]<*m2=data[i];
}
}
main() {
int n,maks,min;
int bilangan[10];
printf(“masukkan banyak data:”);
scanf(“%d”,&n);
masuk_data(bilangan,n);
maks_min(bilangan,n,&maks,&min);
printf(Nilai terbesar :%d/n”,maks);
printf(Nilai terkecil :%d”,min);
return 0;
}
Kasus 6.5
Tentukan modus dari n buah data berupa bilangan bulat,dimana besar datanya
antara 1 sampai dengan 10.
Analisis :
Modus adalah bilangan atau data yang paling sering muncul.Dengan kata
lain,frekuensi data terbesarlah yang dicari.Jadi langkah penyelesaian massalahnya adalah:
1.setiap jenis data dihitung frekuensi kemunculannya.
2.dari frekuensi-frekuensi tersebut dicari frekuensi terbesarnya.
Algoritma 6.5.a.
Procedure maksimum(data:larik;n:integer,output maks,item:integer)
{procedure ini hasil modifikasi dari algoritma(…)karena selain nilai maks dari larik
data,juga perlu diketahui besar datanya item}
Deklarasi
i:integer
Deskripsi
maks ←data[1]
item ←1
for ←2 to n do
if(data[i]>maks)then
maks ←data[i];
item ←data[i];
endif
endfor
Algoritma 6.5.b.
procedure frekuensi(data:larik;n:integer,output f:larik)
{data akan diambil nilai frekuensi f-nya}
Deklarasi
i:integer
Deklarasi
for ←1 to n do
f(data[i]:=f[data[i]]+1{dengan prinsip memasukkan bola kekeranjang yang sesuai
dengan nomornya }
endfor
Translasi 6.5
Bahasa Pascal Bahasa C
program menentukan_modus_n_bilangan;
useswincrt;
type larik=array[1...20]of integer;
var I,maks,modus,n:integer;
bilangan,fk:larik;
procedure masuk_data(var A:larik;n:integer);
var i:integer;
begin
for i:=1 to n do begin
write(‘data ke:’,I,’:’);readln(A[i]);
end;
end;
procedure maksimum(data:larik;n:integer;var
maks,item:integer);
var i:integer;
begin
maks:=data[1];
item:=2 to n do
if(data[i]>maks)then begin
maks :=data[i];
item:=i;
#include <stdio.h>
void masuk_data(int A[],int n)
{ int i:
for(i=0;i<n;i++)
{ printf(“Data ke-%d:”,i+1);
scanf(“%d”,&A[i]);
}
}
void maksimum(const int data[],int n,int *maks,int,*item)
{ int i:
*maks=data[0];
*item=1;
For (i=0;i<n;i++)
If (data[i]>*maks) {
*maks =data[i];
*item=I;
}
end;
end;
procedure frekuensi(data:larik;n:integer;var
f:larik);
var i:integer;
begin
for i:=1 to n do f[data[i]]:=f[data[i]]+1;
end;
begin
write(‘masukkan banyak data:’);readln(n);
masuk_data(bilangan,n);
frekuensi(bilangan,n,fk);
maksimum(fk,n,maks,modus);
writeln(‘Nilai modusnya :’,modus);
writeln(‘datanya sebanyak :’,maks);
end.
}
void frekuensi(const int data[],int n,int f[])
{ int I;
for (i=1:i<n;i++)++f(data[i]];
}
main() {
int bilangan[20]={0};
int n,maks,modus;
printf(“masukkan banyak data:”);
scanf(“%d”,&n);
masuk_data(bilangan,n);
frekuensi(bilangan,n,fk);
maksimum(fk,n,&maks,&modus);
printf(“Nilai modusnya :%d/n”,modus);
printf(“datanya sebanyak :%d”,maks);
return 0;
}
E.STRING
String dapat dipandang sebagai sederetan karakter (misalnya dengan panjang 255)
atau array[1..255] of char).
Kasus 6.6
Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan
palindrome atau tidak.Palindrom adalah suatu kata atau kalimat yang dibaca dari kiri ked
kanan sama dengan kalu dibaca dari kanan ke kiri.
Analisis
Misalnya kata yang akan dicek adalah “kasur rusak”.Maka hurup pertama
dicek,apakah sama dengan huruf pertama terakhir atau tidak,demikian pula untuk huruf
kedua dicek denganhuruf kedua terakhir sampai huruf yang di tengah kalimat.Bila
pengecekan selalu sama maka kalimat tersebut adalah palindrom.Jika terdapat satu huruf
saja yang tidak sama,kalimat tersebut bukanlah palindrome.
Algoritma 6.6.
Function palindrome (input s:string) : Boolean
Deklarasi
i, pj : integer
Deskripsi
palindrome ←true { diasumsikan benar,dibuktikan dengan penyangkalan }
pj ← length(s)
if(s[i]<>s[pj-i+1])then palindrome ← false
Translasi 6.6.
Bahasa Pascal Bahasa C
program mengecek_palindrom;
uses wincrt;
var kata : string;
functionnpalindrom(s:string):Boolean;
vai I,pj:integer;
begin
palindrome:=true;
pj:=lengh(s);
for I:=1 to (pj div 2)do
if(s[i]< > s[pj-i+1])then
palindrome:=false;
end;
begin
write(“masukkan sebuah kalimat:’);
#include< stdio.h>
#include <string.h>
int palindrome(char *s)
{ int I,pj;
pj =strlen(s);
for(i=0;i<=pj/2;i++)
if(s[i]!=s[pj-i-1])return 0;
return 1;
}
main() {
char*kata;
printf(“masukkan sebuah kalimat:”);
gets(kata);
if(palindrome(kata))
readln(kata);
if (palindrome(kata))then
writeln(kata,’adalah palindrom’)
else writeln(kata,’bukan palindrom’);
end.
printf(“%s adalah palindrome”,kata);
else printf(“%sbukan
palindrome”,kata);
return 0;
}
E.1 Subprogram yang berkaitan dengan string
Bahasa Pascal Bahasa C Arti
Length Strlen Mengembalikan panjang string
Copy Strcpy Menyalin string
concat Strcat Menggabung string
Delete Menghapus sebagian string
Insert Menyisipkan suatu string ke dalam string
Positif Strstr Mengembalikan posisi substring dalam string
upcase Toupper Mengubah menjadi huruf basar
E.2.Penggunaan
Translasi 6.7.Mencoba length
Bahasa Pascal Bahasa C
program mencoba_length;
uses wincrt;
var
p:integer;
kata:string;
begin
kata:=’Algoritma’;
p:=length(kata);
write(‘panjang kata:’,kata’,=’,p);
end.
#include < stdio.h>
#include < string.h>
main() {
char*kata=”Algoritma”;
int p;
p=strlen(kata);
printf(“panjang kata:%s=%d”,kata,p);
return 0:
}
Translasi 6.8. Mencoba copy
Bahasa Pascal Bahasa C
program mencoba_copy;
uses wincrt;
var kata,hasil:string;
begin
kata:=’Algoritma’;
hasil:=copy(kata,3,5);
write(‘hasil copy:’,hasil);
end.
#include < stdio.h>
#include < stdio.h>
typedef char *string;
string copy(string str,int dari,int panjang)
{ char buf[50];
strcpy(buf,str+dari-1);
buf[panjang]=0;
return buf;
}
main()
{ char*kata=”Algoritma”,
hasil = copy(kata,3,5);
printf(“hasil copy:%s”,hasil);
return 0;
}
Translasi 6.9. Mencoba Concat
Bahasa Pascal Bahasa C
program mencoba_concat;
uses wincrt;
var kata1,kata2,gabung:string;
begin
kata1:=’Algoritma’;
kata2:=’pemrograman’;
gabung:=concat(kata1,kata2);
write(‘kata gabungan:’,gabung);
end.
#include < stdio.h>
#include < stdio.h>
main()
{ char*kata1=”Algoritma”;
char*kata2=”Pemrograman”;
strcat(kata1,kata2);
printf(“kata gabungan :%s”,kata1);
return 0;
}
Translasi 6.10.Mencoba_delete
Bahasa Pascal Bahasa C
program mencoba_delete;
uses wincrt;
var kata:string;
begin
kata:=’Algoritma’;
delete(kata,3,5);
write(‘hasil setelah dihapus:’,kata);
end.
#include < stdio.h>
#include < stdio.h>
#define delete(str,posisi,panjang)
strcpy(str+posisi-1,str+posisi+panjang-
1)
main()
{ char *kata,3,5);
printf(“hasil setelah dihapus :%s”,kata);
return 0;
}
Translasi 6.11.Mencoba Insert
program mencoba_insert;
uses wincrt;
var kata1,kata2,kata3,gabung:string;
begin
kata1:=’Algoritma pemrograman’;
kata2:=’dan’;
insert(kata2,kata1,10);
write(‘setelah kata disisipi:’,kata1);
end.
Translasi 6.12.Mencoba Pos
program mencoba_pos;
uses wincrt;
var letak:integer;
kata1,kata2:string;
begin
kata1:=’Algoritma dan pemograman’;
kata2:=’dan’;
letak:=pos(kata2,kata1);
write(‘letak kata:’”,kata2,”’dalam”’kata1,”’kata1,”’pada posisi:’,letak);
end.
Translasi 6.13.Mencoba upcase
Bahasa Pascal Bahasa C
program mencoba_upcase;
uses wincrt;
var kata:string;
procedure ubah_ke_huruf_besar(var
s:string);
var i:integer;
begin
for i:=1 to length(s) do
s[i]:=upcase(s[i]);
end.
begin
kata:=’Algoritma dan pemograman’;
ubah_ke_huruf_besar(kata);
writeln(kata);
write(‘panjang kata=’,length(kata));
end.
#include < stdio.h>
#include < stdio.h>
void ubah_ke_huruf_besar(char *s)
{ int I;
for(;*s!=’/0;s++)
*s=toupper(*s);
}
main ()
{ char *kata=”Algoritma dan
pemrograman”;
ubah_ke_huruf_besar(kata);
printf(“%s/n”,kata);
printf(“panjang kata=%d”,strlen(kata));
return 0;
}

More Related Content

What's hot

What's hot (17)

Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Ix struktur pointer
Ix struktur pointerIx struktur pointer
Ix struktur pointer
 
Laporan
LaporanLaporan
Laporan
 
M04b dasar program c
M04b dasar program cM04b dasar program c
M04b dasar program c
 
3 pemrograman matlab
3 pemrograman matlab3 pemrograman matlab
3 pemrograman matlab
 
8 Data Record
8 Data Record8 Data Record
8 Data Record
 
Pertemuan V
Pertemuan VPertemuan V
Pertemuan V
 
97745784 asna-pascal
97745784 asna-pascal97745784 asna-pascal
97745784 asna-pascal
 
Dasar-dasar c++
Dasar-dasar c++Dasar-dasar c++
Dasar-dasar c++
 
Tipe data dan array
Tipe data dan arrayTipe data dan array
Tipe data dan array
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
3.dasar pemgrog c
3.dasar pemgrog c3.dasar pemgrog c
3.dasar pemgrog c
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Function
FunctionFunction
Function
 
5 perulangan
5 perulangan5 perulangan
5 perulangan
 
pengantar array PHP
pengantar array PHPpengantar array PHP
pengantar array PHP
 

Viewers also liked

Olymsearch Mini Brochure (For Investers)
Olymsearch Mini Brochure (For Investers)Olymsearch Mini Brochure (For Investers)
Olymsearch Mini Brochure (For Investers)Vu Tuyen Hoang
 
Lawcraft Series Installment 1
Lawcraft Series Installment 1Lawcraft Series Installment 1
Lawcraft Series Installment 1Joseph Nohavicka
 
2014 2015 ieee matlab projects lists
2014 2015 ieee matlab projects lists2014 2015 ieee matlab projects lists
2014 2015 ieee matlab projects listsIEEEJAVAPROJECTS
 
2014 ieee matlab projects titles globalsoft technologies
2014 ieee matlab projects titles globalsoft technologies2014 ieee matlab projects titles globalsoft technologies
2014 ieee matlab projects titles globalsoft technologiesIEEEMATLABPROJECTS
 
Проект постанови Кабінету міністрів України по дерегуляції - січень 2015
Проект постанови Кабінету міністрів України по дерегуляції - січень 2015Проект постанови Кабінету міністрів України по дерегуляції - січень 2015
Проект постанови Кабінету міністрів України по дерегуляції - січень 2015EasyBusiness
 
Vic xmas function photos_111214
Vic xmas function  photos_111214Vic xmas function  photos_111214
Vic xmas function photos_111214SIBA
 
Online Content Targeting
Online Content TargetingOnline Content Targeting
Online Content TargetingPim Stouten
 
Evaluation Question 7
Evaluation Question 7Evaluation Question 7
Evaluation Question 7monah1
 
Clirik featured product gypsum micronizer with ceiso
Clirik featured product gypsum micronizer with ceisoClirik featured product gypsum micronizer with ceiso
Clirik featured product gypsum micronizer with ceisoAmmy Cheng
 
UNIDAD VI: Redes de Computadoras
UNIDAD VI: Redes de ComputadorasUNIDAD VI: Redes de Computadoras
UNIDAD VI: Redes de Computadorasrei morales
 
Onalytica-Social-Media-Marketing-Top-100-Influencers-and-Brands
Onalytica-Social-Media-Marketing-Top-100-Influencers-and-BrandsOnalytica-Social-Media-Marketing-Top-100-Influencers-and-Brands
Onalytica-Social-Media-Marketing-Top-100-Influencers-and-BrandsRobert Alexander
 

Viewers also liked (16)

Olymsearch Mini Brochure (For Investers)
Olymsearch Mini Brochure (For Investers)Olymsearch Mini Brochure (For Investers)
Olymsearch Mini Brochure (For Investers)
 
Lawcraft Series Installment 1
Lawcraft Series Installment 1Lawcraft Series Installment 1
Lawcraft Series Installment 1
 
Rectificador de onda
Rectificador de ondaRectificador de onda
Rectificador de onda
 
2014 2015 ieee matlab projects lists
2014 2015 ieee matlab projects lists2014 2015 ieee matlab projects lists
2014 2015 ieee matlab projects lists
 
necrasov
necrasovnecrasov
necrasov
 
2014 ieee matlab projects titles globalsoft technologies
2014 ieee matlab projects titles globalsoft technologies2014 ieee matlab projects titles globalsoft technologies
2014 ieee matlab projects titles globalsoft technologies
 
Grammar book
Grammar bookGrammar book
Grammar book
 
Risorsa idrica, acqua potabile e buone pratiche
Risorsa idrica, acqua potabile e buone praticheRisorsa idrica, acqua potabile e buone pratiche
Risorsa idrica, acqua potabile e buone pratiche
 
Проект постанови Кабінету міністрів України по дерегуляції - січень 2015
Проект постанови Кабінету міністрів України по дерегуляції - січень 2015Проект постанови Кабінету міністрів України по дерегуляції - січень 2015
Проект постанови Кабінету міністрів України по дерегуляції - січень 2015
 
act 3er año
act 3er año act 3er año
act 3er año
 
Vic xmas function photos_111214
Vic xmas function  photos_111214Vic xmas function  photos_111214
Vic xmas function photos_111214
 
Online Content Targeting
Online Content TargetingOnline Content Targeting
Online Content Targeting
 
Evaluation Question 7
Evaluation Question 7Evaluation Question 7
Evaluation Question 7
 
Clirik featured product gypsum micronizer with ceiso
Clirik featured product gypsum micronizer with ceisoClirik featured product gypsum micronizer with ceiso
Clirik featured product gypsum micronizer with ceiso
 
UNIDAD VI: Redes de Computadoras
UNIDAD VI: Redes de ComputadorasUNIDAD VI: Redes de Computadoras
UNIDAD VI: Redes de Computadoras
 
Onalytica-Social-Media-Marketing-Top-100-Influencers-and-Brands
Onalytica-Social-Media-Marketing-Top-100-Influencers-and-BrandsOnalytica-Social-Media-Marketing-Top-100-Influencers-and-Brands
Onalytica-Social-Media-Marketing-Top-100-Influencers-and-Brands
 

Similar to modul algoritma Bab 6

Similar to modul algoritma Bab 6 (20)

6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6.adp array (larik)
6.adp array (larik)6.adp array (larik)
6.adp array (larik)
 
Pascal - Array.txt - Notepad.pdf
Pascal - Array.txt - Notepad.pdfPascal - Array.txt - Notepad.pdf
Pascal - Array.txt - Notepad.pdf
 
Pertemuan 4
Pertemuan 4Pertemuan 4
Pertemuan 4
 
modul algoritma Bab 2
modul algoritma Bab 2modul algoritma Bab 2
modul algoritma Bab 2
 
03 i-o
03 i-o03 i-o
03 i-o
 
Algo
AlgoAlgo
Algo
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
 
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascallistiati univ bung hata (1110013211051) Bahasa pemrograman pascal
listiati univ bung hata (1110013211051) Bahasa pemrograman pascal
 
Materi kuliah 15 array part 1
Materi kuliah 15   array part 1Materi kuliah 15   array part 1
Materi kuliah 15 array part 1
 
Laporan praktikum modul v
Laporan praktikum modul vLaporan praktikum modul v
Laporan praktikum modul v
 
Tutor C
Tutor CTutor C
Tutor C
 
A rray..
A rray..A rray..
A rray..
 
Array
ArrayArray
Array
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangJeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
 
Pertemuan 6 Struktur Data, Algoritma dan Pemrograman
Pertemuan 6 Struktur Data, Algoritma dan PemrogramanPertemuan 6 Struktur Data, Algoritma dan Pemrograman
Pertemuan 6 Struktur Data, Algoritma dan Pemrograman
 
4 pengolahan data array
4 pengolahan data array4 pengolahan data array
4 pengolahan data array
 

More from Eko Widyanto Napitupulu (11)

klasifikasi-komputer
klasifikasi-komputerklasifikasi-komputer
klasifikasi-komputer
 
Soal un paket b 2009
Soal un paket b 2009Soal un paket b 2009
Soal un paket b 2009
 
Indonesian edition
Indonesian editionIndonesian edition
Indonesian edition
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
 
modul algoritma Bab 1
modul algoritma Bab 1modul algoritma Bab 1
modul algoritma Bab 1
 
Presentasi pkn "HAM"
Presentasi pkn "HAM"Presentasi pkn "HAM"
Presentasi pkn "HAM"
 
Resistor paralel
Resistor paralelResistor paralel
Resistor paralel
 
pengertian ihsan dan masalah ihsan
pengertian ihsan dan masalah ihsanpengertian ihsan dan masalah ihsan
pengertian ihsan dan masalah ihsan
 
perangkat-keras
perangkat-kerasperangkat-keras
perangkat-keras
 
perangkat-lunak
perangkat-lunakperangkat-lunak
perangkat-lunak
 
Fungsi otak manusia
Fungsi otak manusiaFungsi otak manusia
Fungsi otak manusia
 

Recently uploaded

PPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptxPPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptxnursariheldaseptiana
 
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiCristianoRonaldo185977
 
manajemen analisis data export data epidata 3.1
manajemen analisis data export data epidata 3.1manajemen analisis data export data epidata 3.1
manajemen analisis data export data epidata 3.1YudiPradipta
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxrikosyahputra0173
 
415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompok415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompokelmalinda2
 
SOP MEDIA KOMUNIKASI DAN KOORDINASI pkms
SOP MEDIA KOMUNIKASI DAN KOORDINASI pkmsSOP MEDIA KOMUNIKASI DAN KOORDINASI pkms
SOP MEDIA KOMUNIKASI DAN KOORDINASI pkmsedyardy
 
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS AcehSKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS AcehBISMIAULIA
 
Metode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau SurveiMetode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau Surveikustiyantidew94
 
kesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptxkesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptxAhmadSyajili
 
VULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupan
VULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupanVULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupan
VULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupanBungaCitraNazwaAtin
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptAhmadSyajili
 

Recently uploaded (12)

PPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptxPPT Olah Nilai Kurikulum merdeka belajar.pptx
PPT Olah Nilai Kurikulum merdeka belajar.pptx
 
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet RiyadiManajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
Manajemen Lalu Lintas Baru Di Jalan Selamet Riyadi
 
manajemen analisis data export data epidata 3.1
manajemen analisis data export data epidata 3.1manajemen analisis data export data epidata 3.1
manajemen analisis data export data epidata 3.1
 
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
 
415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompok415418921-statistika- mean media modus data tunggal dan data kelompok
415418921-statistika- mean media modus data tunggal dan data kelompok
 
SOP MEDIA KOMUNIKASI DAN KOORDINASI pkms
SOP MEDIA KOMUNIKASI DAN KOORDINASI pkmsSOP MEDIA KOMUNIKASI DAN KOORDINASI pkms
SOP MEDIA KOMUNIKASI DAN KOORDINASI pkms
 
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS AcehSKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
SKP GURU satuan kinerja pegawai tahun 2023 untuk PNS Aceh
 
Metode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau SurveiMetode penelitian Deskriptif atau Survei
Metode penelitian Deskriptif atau Survei
 
kesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptxkesalahan tipe 1 dan 2 pada statistik.pptx
kesalahan tipe 1 dan 2 pada statistik.pptx
 
VULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupan
VULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupanVULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupan
VULKANISME.pdf vulkanisme dan pengaruh nya terhadap kehidupan
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 
pertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.pptpertemuan-3-distribusi pada-frekuensi.ppt
pertemuan-3-distribusi pada-frekuensi.ppt
 

modul algoritma Bab 6

  • 1. BAB VI ARRAY SATU DIMENSI A.PENDAHULUAN Array adalah struktur data yang mengandung type data yang mempunyai type sama.Suatu array adalah sekelompok memori yang berhubungan.Array mempunyai nama dan type yang sama.Untuk merujuk lokasi tertentu atau elemen dalam array;array dan angka posisi (disebut subscript atau indeks) dari elemen tersebut dalam array.Sebagai contoh : Algoritmik Bahasa Pascal Bahasa C c[2]←2 c[2] :=2; c[2] = 2; Adalah cara mengisi pada indeks 2 array c. Array c dibawah ini mengandung 5 elemen.Elemen pertama array adalah elemen ke-nol (bukan ke-1).Bilangan posisi yang diapit [] dinamakan subscript.Subcript harus berupa integer atau ekspresi integer. Nama array c[1] c[2] c[3] c[4] c[5] ↑ bilangan posisi Jika suatu program menggunakan ekspresi sebagai subscript maka ekspresi dievaluasi dulu untuk menentukan subscript Jika a=1 dan b=3 c[a+b] adalah array c yang bernilai 72. B.Deklarasi Array Deklarasi array ditentukan dengan tipe dari setiap elemen dan banyaknya elemen yang diperlukan oleh setiap array sehingga komputer mempersiapkan sejumlah memori.Deklarasi array adalah sebagai berikut : Algoritmik Bahasa Pascal Bahasa C -45 6 0 72 1543
  • 2. c: array [1…5] of integer c: array [1…5] of integer ; Int c[5]; Memberitahu komputer untuk menyediakan 5 elemen integer array c.Array bisa saja dideklarasikan untuk berisi tipe data yang lain.Sebagai contoh,array tipe char dapat digunakan untuk menyimpan string karakter. C. Membaca elemen array Oleh karena indeks array umumnya urut teratur,biasanya digunakan perulangan for untuk mengakses elemen array.Perhatikan perbedaan dialek dalam Bahasa Pascal dan Bahasa C di bawah ini.Diasumsikan : Type larik = array [ 1..20] of integer Bahasa Pascal Bahasa C Procedure input_data(var x : larik;n:byte): Var I :integer; begin For i:=1 to n do Begin Write (‘data’,1’,:’); Readln (x[i]); end; end; Void baca_data (int A [],int n) { int i; for (i = 0 ; i < I + +) { printf(“Data ke-%d :”,i+1); scanf(“%d”,& A[i]); } } Perhatikan bahwa array dalam bahasa pascal dimulai dari indeks 1 sampai dengan indeks n sementara dalam bahasa C,indeks dimulai dari 0 sampai dengan (n-1).Dalam bahasa pascal,parameter formal mempunyai harga default tidak berubah,artinya perubahna yang dilakukan pada array dalam procedure ketika keluar dari procedure nilainya tidak berubah.Dalam bahasa C,default parameternya adalah berubah.Sehingga dalam bahasa pascal,bila diinginkan adanya perubahan pada array perlu ditambahkan var.Sedangkan dalam bahasa C bila tidak diinginkan perubahan dalam array perlu ditambahkan cosnt. D.Mencetak elemen array Pada subprogram dalam bahasa C dibawah inimenggunakan kualifier cosnt karena untuk mencetak data tidak diperlukan adanya perubahan pada data tersebut. Bahasa Pascal Bahasa C Procedure cetak (x : larik; n :byte); var i :integer ; begin for i :=1 to n do writeln (‘Data’,i’, : ‘, x[i]); end; void cetak_data (cosnt int A[],int n) { int i; for (i =0;i< n; i++) printf(“%d”,A[i]; }
  • 3. Pada dasarnya , array merupakan fasilitas untuk mengelompokkan data yang betipe sama.Ini berguna bila data tersebut dapat dimanfaatkan kembali.Sebagai contoh akan diperhatikan pada kasus berikut ini. Contoh 6.1 Carilah rata-rata dari n bilangan bulat dengan menggunakan array. Algoritma 6.1 Fungsi rata(input x array [1..10] of integer ,ninteger) :real {Diberikan n data kemudian dicari rata-ratanya} Deklarasi i, jumlah : integer Deskripsi jumlah ← 0 for I ← 1 to ndo jumlah ← jumlah + x [i] endfor rata ← jumlah / n Translasi 6.1 Bahasa Pascal Bahasa C program mencari_rata_rata ; user wincrt; type larik = array [1..10] of integer ; var n : integer; data :larik; x_bar : real; procedure masuk_data(var A :larik ; n :integer); var i : integer ; begin for i : = 1 to n do begin write (‘Data ke :’,:’); readln (a[i]); end; end; function rata ( x : larik;N : integer ; : real ; var i : integer ; total :+ x[i]; begin total :=0; for i : 1 to N do total + x[i] rata := total/N; end; begin write(‘Berapa data:’); #include <stdio.h> void masuk_data(int A[],int n) { int i; for ( i=0;i < n; i++); { printf(“Date ke-% : “,i+1); Scanf(“%”,&A[i]); } } fload rata (int x[] N) { int I; float total=0; for (i=0;i<N;i++) total = total +[i]; return(total/N); } main() { int n; int data [10]; float x_bar; printf(“Berapa data :”); scanf(“%”,&n); masuk_data(data,n);
  • 4. readln(n); masuk_data(data,n); x_bar := rata(data,n); write(‘Rata-rata dari’,n, ‘bilangan adalah : ‘,x_bar:6:3); end. x_bar =rata(data,n); printf(“Rata-rata dari %d bilangan adalah : %6.3f”,n,x_bar); return 0; } Hampir tidak ada bedanya dengan algoritma 4.3.Karena tujuan akhirnya hanya untuk mencari nilai rata-rata dari n bilangan bulat.Tentu akan sangat berguna bila nilai rata- rata tersebut beserta datanya digunakan kembali sebagaimana kasus dibawah ini. Kasus 6.2 Carilah nilai deviasi standar dari n buah data. Analisis : Rumus deviasi standar adalah : std= Terlihat bahwa nilai rata-rata dan datanya digunakan kembali. Algoritma 6.2 Fungsi std(input x : array [1..10]of integer,n : integer,rata : real) : real {Diberikan n data kemudian dicari rata-ratanya} Deklarasi i,jumlah : integer Deskripsi jumlah ← 0 for i ← 1 to n do jumlah ← jumlah + sqr(x[i]-rata) endfor std ← sqr(jumlah/(n-1)) Translasi 6.2. Bahasa Pascal Bahasa C program standar_Deviasi; user wincrt; #include <stdio.> #include <math.> X[i] dipakai kembali k
  • 5. type larik = array [1..100] of real; var n : integer; data : larik; x_bar,dev standar : real; procedure masuk_data(var A :larik;n : integer); var : integer ; begin for i: =1 to do begin write(‘Data ke :’,I,’)readln(A[i]); end; end; function rata(x:larik;N;integer):real; var i:integer; total :real; begin total :=0; for i := 1 to N do total :=total +x[i]; rata := total/N; end; function STD (x:larik;N:integer;rata:real):real; var i: integer;jumlah :real; begin jumlah :=0; for I :=1 to N do jumlah :=jumlah +sqr(+[i]-rata); STD :=sqr (jumlah/N-1)); end; begin void masuk_data(int A[].int n) { int i; for (i =;i < n;i++); { printf(“Data ke%d” :”,i+1); Scanf(“%d”,&A[i]); } } float rata(int x[],int N) { int i; float total=0; for (i =0;i<N;i++) total =total + x[i]; return(total/N); } long sqr(int n ){return(n*n);} float STD(const int x[],int N float rata) { int i; float jumlah=0; for (i =0;i++) jumlah = jumlah + sqr (x[i]-rata); return(sqr (jumlah /N-1))); } main() { int n; int data[10];
  • 6. write(‘Berapa data:’);readln (n); masuk_data(data,n); x_bar :=rata(data,n); dev_standar :=STD(data,n,x_bar); writeln (‘nilai rata-rata =’,bar6.3); writeln (‘standar deviasi=’,standar6.3); end float x_bar,dev_standar; printf(“Berapa data :”); scanf(“%d”,&n); masuk_data(data,n); x_bar = rata(data,n); dev_standar = STD (data,n,x_bar); printf(“Nilai rata-rata =%6.3fn”,n, x_bar); printf(“standar deviasi = %6.3f”,dev_standar); return 0; } Kasus 6.3 Dengan menggunakan algoritma 5.2., buatlah algoritma untuk menentukan nilai maksimum dari n bilangan. Algoritma 6.3 function maksimum(input data :array[1..10]of integer,n : integer):integer Deklarasi i,temp :integer Deskripsi temp ←data[1] for i←2 to n do temp ←maksimum 2(temp,data[i] maksimum ← temp Tranlasi 6.3 Bahasa Pacal Bahasa C program nilai_maksimum_n_bilangan; user wincrt; type larik = array [1..10]of integer; #include <stdio.h> void masuk_data(int A[],int n) { int i:
  • 7. var n : integer;bilangan :larik; procedure masuk_data(var A :larik; n :integer); var i : integer; begin for i :=1 to n do begin write(‘data ke :’,i’, :’);readln(A[i]); end; end; funcation maksimum2(a,b :integer):integer; begin if (a>b)then maksimum2 :=a else maksimum2:=b; end; functionmaksimum(data:larik;n:integer):integer; var i,temp:integer; begin temp:=data[1]; for i:=2 to n do temp:=maksimum2(temp,data[i]); maksimum :=temp; end; begin write(‘masukkan banyak data’);readln(n); masuk_data(bilangan,n); write(‘Nilai terbesar :’,maksimum(bilangan,n)); end. for (i =0:i<n;i++) { printf(“Data ke-%d:”,i+1); Scanf(“%”,&A[i]); } } int maksimum2(int a,int b) { if (a>b)return(a); else return(b); } int maksimum(int data[],int n) { int i,temp; temp=data[0]; for (i =1;i<n;i++) temp=maksimum2(temp,data[i]); return(temp); } main() { int n; int bilangan[10]; printf(“Masukkan banyak data :”); scanf(“%d”,&n); masuk_data(bilangan,n); printf(“Nilai terbesar:%d”,maksimum(bilangan,n)); return 0; }
  • 8. Kasus 6.4 Buatlah algoritma untuk menentukan nilai maksimum dan minimum dari n bilangan. Algoritma 6.4 Procedure maks_min(input data :larik,n:integer,output m1,m2 : integer) Deklarasi i:integer Deskripsi m1←data[1] m2←data[1] for i←2 to n do if(data[i]>m1)then m1←data[i]; if(data[i]<m2)then m2←data[i]; endfor Translasi 6.4 Bahasa Pascal Bahasa C program nilai_maks_dan_min_n_bilangan; uses wincrt; type larik =array[1..10]of integer; var maks,min,n:integer; bilangan:larik; procedure masuk_data(var A:larik;n:integer); #include <stdio.h> void masuk_data(int A[],int n) { int i; for (i=0;i<n,i++) { printf(“data ke-%:”,i+1); scanf(“%d”,&A[i]); }
  • 9. var i:integer; begin for i:=1 to n do begin write(‘data ke:’,1’,:’);readln(A[i]; end; end; procedure maks_min(data:larik;n:integer; var m1,m2:integer); var i :integer; begin m1:=data[1]; m2:=data[1]; for i:=2 to n do begin if(data[i]>m1)then m1:=data[i]; if(data[i]>m2)then m2:=data[i]; end; end; begin write(‘masukkan banyak data:’);readln(n); masuk_data(bilangan,n); maks_min(bilangan,n,maks,min); writeln(‘Nilai terbesar :’,maks); writeln(‘Nilai terkecil :’,min); end. } void maks_min(const int data[],int n,int*m1,int*m2) { int i; *m1 =data[0]; *m2 =data[0]; for (i=1;i<n;i++) { if(data[i]>m1)*m1=data[i]; if(data[i]<*m2=data[i]; } } main() { int n,maks,min; int bilangan[10]; printf(“masukkan banyak data:”); scanf(“%d”,&n); masuk_data(bilangan,n); maks_min(bilangan,n,&maks,&min); printf(Nilai terbesar :%d/n”,maks); printf(Nilai terkecil :%d”,min); return 0; } Kasus 6.5 Tentukan modus dari n buah data berupa bilangan bulat,dimana besar datanya antara 1 sampai dengan 10. Analisis :
  • 10. Modus adalah bilangan atau data yang paling sering muncul.Dengan kata lain,frekuensi data terbesarlah yang dicari.Jadi langkah penyelesaian massalahnya adalah: 1.setiap jenis data dihitung frekuensi kemunculannya. 2.dari frekuensi-frekuensi tersebut dicari frekuensi terbesarnya. Algoritma 6.5.a. Procedure maksimum(data:larik;n:integer,output maks,item:integer) {procedure ini hasil modifikasi dari algoritma(…)karena selain nilai maks dari larik data,juga perlu diketahui besar datanya item} Deklarasi i:integer Deskripsi maks ←data[1] item ←1 for ←2 to n do if(data[i]>maks)then maks ←data[i]; item ←data[i]; endif endfor Algoritma 6.5.b. procedure frekuensi(data:larik;n:integer,output f:larik) {data akan diambil nilai frekuensi f-nya} Deklarasi i:integer Deklarasi for ←1 to n do f(data[i]:=f[data[i]]+1{dengan prinsip memasukkan bola kekeranjang yang sesuai dengan nomornya }
  • 11. endfor Translasi 6.5 Bahasa Pascal Bahasa C program menentukan_modus_n_bilangan; useswincrt; type larik=array[1...20]of integer; var I,maks,modus,n:integer; bilangan,fk:larik; procedure masuk_data(var A:larik;n:integer); var i:integer; begin for i:=1 to n do begin write(‘data ke:’,I,’:’);readln(A[i]); end; end; procedure maksimum(data:larik;n:integer;var maks,item:integer); var i:integer; begin maks:=data[1]; item:=2 to n do if(data[i]>maks)then begin maks :=data[i]; item:=i; #include <stdio.h> void masuk_data(int A[],int n) { int i: for(i=0;i<n;i++) { printf(“Data ke-%d:”,i+1); scanf(“%d”,&A[i]); } } void maksimum(const int data[],int n,int *maks,int,*item) { int i: *maks=data[0]; *item=1; For (i=0;i<n;i++) If (data[i]>*maks) { *maks =data[i]; *item=I; }
  • 12. end; end; procedure frekuensi(data:larik;n:integer;var f:larik); var i:integer; begin for i:=1 to n do f[data[i]]:=f[data[i]]+1; end; begin write(‘masukkan banyak data:’);readln(n); masuk_data(bilangan,n); frekuensi(bilangan,n,fk); maksimum(fk,n,maks,modus); writeln(‘Nilai modusnya :’,modus); writeln(‘datanya sebanyak :’,maks); end. } void frekuensi(const int data[],int n,int f[]) { int I; for (i=1:i<n;i++)++f(data[i]]; } main() { int bilangan[20]={0}; int n,maks,modus; printf(“masukkan banyak data:”); scanf(“%d”,&n); masuk_data(bilangan,n); frekuensi(bilangan,n,fk); maksimum(fk,n,&maks,&modus); printf(“Nilai modusnya :%d/n”,modus); printf(“datanya sebanyak :%d”,maks); return 0; } E.STRING String dapat dipandang sebagai sederetan karakter (misalnya dengan panjang 255) atau array[1..255] of char). Kasus 6.6 Buatlah suatu algoritma untuk mengecek apakah suatu kata atau kalimat merupakan palindrome atau tidak.Palindrom adalah suatu kata atau kalimat yang dibaca dari kiri ked kanan sama dengan kalu dibaca dari kanan ke kiri. Analisis Misalnya kata yang akan dicek adalah “kasur rusak”.Maka hurup pertama dicek,apakah sama dengan huruf pertama terakhir atau tidak,demikian pula untuk huruf kedua dicek denganhuruf kedua terakhir sampai huruf yang di tengah kalimat.Bila pengecekan selalu sama maka kalimat tersebut adalah palindrom.Jika terdapat satu huruf saja yang tidak sama,kalimat tersebut bukanlah palindrome.
  • 13. Algoritma 6.6. Function palindrome (input s:string) : Boolean Deklarasi i, pj : integer Deskripsi palindrome ←true { diasumsikan benar,dibuktikan dengan penyangkalan } pj ← length(s) if(s[i]<>s[pj-i+1])then palindrome ← false Translasi 6.6. Bahasa Pascal Bahasa C program mengecek_palindrom; uses wincrt; var kata : string; functionnpalindrom(s:string):Boolean; vai I,pj:integer; begin palindrome:=true; pj:=lengh(s); for I:=1 to (pj div 2)do if(s[i]< > s[pj-i+1])then palindrome:=false; end; begin write(“masukkan sebuah kalimat:’); #include< stdio.h> #include <string.h> int palindrome(char *s) { int I,pj; pj =strlen(s); for(i=0;i<=pj/2;i++) if(s[i]!=s[pj-i-1])return 0; return 1; } main() { char*kata; printf(“masukkan sebuah kalimat:”); gets(kata); if(palindrome(kata))
  • 14. readln(kata); if (palindrome(kata))then writeln(kata,’adalah palindrom’) else writeln(kata,’bukan palindrom’); end. printf(“%s adalah palindrome”,kata); else printf(“%sbukan palindrome”,kata); return 0; } E.1 Subprogram yang berkaitan dengan string Bahasa Pascal Bahasa C Arti Length Strlen Mengembalikan panjang string Copy Strcpy Menyalin string concat Strcat Menggabung string Delete Menghapus sebagian string Insert Menyisipkan suatu string ke dalam string Positif Strstr Mengembalikan posisi substring dalam string upcase Toupper Mengubah menjadi huruf basar E.2.Penggunaan Translasi 6.7.Mencoba length Bahasa Pascal Bahasa C program mencoba_length; uses wincrt; var p:integer; kata:string; begin kata:=’Algoritma’; p:=length(kata); write(‘panjang kata:’,kata’,=’,p); end. #include < stdio.h> #include < string.h> main() { char*kata=”Algoritma”; int p; p=strlen(kata); printf(“panjang kata:%s=%d”,kata,p); return 0: }
  • 15. Translasi 6.8. Mencoba copy Bahasa Pascal Bahasa C program mencoba_copy; uses wincrt; var kata,hasil:string; begin kata:=’Algoritma’; hasil:=copy(kata,3,5); write(‘hasil copy:’,hasil); end. #include < stdio.h> #include < stdio.h> typedef char *string; string copy(string str,int dari,int panjang) { char buf[50]; strcpy(buf,str+dari-1); buf[panjang]=0; return buf; } main() { char*kata=”Algoritma”, hasil = copy(kata,3,5); printf(“hasil copy:%s”,hasil); return 0; } Translasi 6.9. Mencoba Concat Bahasa Pascal Bahasa C program mencoba_concat; uses wincrt; var kata1,kata2,gabung:string; begin kata1:=’Algoritma’; kata2:=’pemrograman’; gabung:=concat(kata1,kata2); write(‘kata gabungan:’,gabung); end. #include < stdio.h> #include < stdio.h> main() { char*kata1=”Algoritma”; char*kata2=”Pemrograman”; strcat(kata1,kata2); printf(“kata gabungan :%s”,kata1); return 0; }
  • 16. Translasi 6.10.Mencoba_delete Bahasa Pascal Bahasa C program mencoba_delete; uses wincrt; var kata:string; begin kata:=’Algoritma’; delete(kata,3,5); write(‘hasil setelah dihapus:’,kata); end. #include < stdio.h> #include < stdio.h> #define delete(str,posisi,panjang) strcpy(str+posisi-1,str+posisi+panjang- 1) main() { char *kata,3,5); printf(“hasil setelah dihapus :%s”,kata); return 0; } Translasi 6.11.Mencoba Insert program mencoba_insert; uses wincrt; var kata1,kata2,kata3,gabung:string; begin kata1:=’Algoritma pemrograman’; kata2:=’dan’; insert(kata2,kata1,10); write(‘setelah kata disisipi:’,kata1); end. Translasi 6.12.Mencoba Pos program mencoba_pos; uses wincrt; var letak:integer; kata1,kata2:string; begin
  • 17. kata1:=’Algoritma dan pemograman’; kata2:=’dan’; letak:=pos(kata2,kata1); write(‘letak kata:’”,kata2,”’dalam”’kata1,”’kata1,”’pada posisi:’,letak); end. Translasi 6.13.Mencoba upcase Bahasa Pascal Bahasa C program mencoba_upcase; uses wincrt; var kata:string; procedure ubah_ke_huruf_besar(var s:string); var i:integer; begin for i:=1 to length(s) do s[i]:=upcase(s[i]); end. begin kata:=’Algoritma dan pemograman’; ubah_ke_huruf_besar(kata); writeln(kata); write(‘panjang kata=’,length(kata)); end. #include < stdio.h> #include < stdio.h> void ubah_ke_huruf_besar(char *s) { int I; for(;*s!=’/0;s++) *s=toupper(*s); } main () { char *kata=”Algoritma dan pemrograman”; ubah_ke_huruf_besar(kata); printf(“%s/n”,kata); printf(“panjang kata=%d”,strlen(kata)); return 0; }