Archive for 2015
Distribusi Frekuensi
Definisi Distribusi Frekuensi
Jenis Distribusi Frekuensi
Tujuan Distribusi Frekuensi : untuk mengatur data mentah (belum dikelompokan) ke dalam bentuk yang rapi tanpa mengurangi inti informasi yang ada, Data menjadi informatif dan mudah dipahami.
Ditinjau dari jenisnya : Numerik : pengelompokan data berdasarkan angka – angka tertentu, biasanya sajikan dengan grafik histogram. Kategorikal : pengelompokan data berdasarkan kategori – kategori tertentu, biasanya disajikan dengan grafik batang, lingkaran dan gambar.
Ditinjau dari nyata tidaknya frekuensi : Absolut, jumlah bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu. Relatif, juga dinamakan tabel persentase.
Ditinjau dari kesatuannya : Satuan, Kumulatif.
Data yang diolah merupakan suatu deret hitung yang berdiri sendiri.
Jenis Tabel Distribusi Frekuensi:
Langkah-langkah menjawab soal di atas seperti ini :
Langkah 1 : Urutkan dari yang terkecil hingga yang terbesar guna memudahkan dalam melakukan pernghitungan.
jika:
- Merupakan penyusunan data ke dalam kelas – kelas tertentu dimana setiap indiIvidu/item hanya termasuk kedalam salah satu kelas tertentu
- Pengelompokan data ke dalam beberapa kategori yang menunjukan banyaknya data dalam setiap kategori dan setiap data tidak dapat dimasukan ke dalam dua atau lebih kategori.
- Distribusi Frekuensi adalah penyusunan data dalam kelas-kelas interval. (Kuswanto,2006).
- Distribusi Frekuensi adalah membuat uraian dari suatu hasil penelitian dan menyajikan hasil penelitian tersebut dalam bentuk yang baik, yakni bentuk stastistik popular yang sederhana sehingga kita dapat lebih mudah mendapat gambaran tentang situasi hasil penelitian. (Djarwanto,1982).
- Distribusi Frekuensi atau Tabel Frekuensi adalah suatu tabel yang banyaknya kejadian atau frekuensi (cases) didistribusikan ke dalam kelompok-kelompok (kelas-kelas) yang berbeda. (Budiyuwono,1987).
Jenis Distribusi Frekuensi
Tujuan Distribusi Frekuensi : untuk mengatur data mentah (belum dikelompokan) ke dalam bentuk yang rapi tanpa mengurangi inti informasi yang ada, Data menjadi informatif dan mudah dipahami.
Ditinjau dari jenisnya : Numerik : pengelompokan data berdasarkan angka – angka tertentu, biasanya sajikan dengan grafik histogram. Kategorikal : pengelompokan data berdasarkan kategori – kategori tertentu, biasanya disajikan dengan grafik batang, lingkaran dan gambar.
Ditinjau dari nyata tidaknya frekuensi : Absolut, jumlah bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu. Relatif, juga dinamakan tabel persentase.
Ditinjau dari kesatuannya : Satuan, Kumulatif.
Data yang diolah merupakan suatu deret hitung yang berdiri sendiri.
Jenis Tabel Distribusi Frekuensi:
- Tabel distribusi frekuensi data tunggal, menyajikan frekuensi data yang tidak dikelompokkan.
- Tabel distribusi frekuensi data kelompok, menyajikan pencaran frekuensi data yang kelompokkan.
- Tabel distribusi frekuensi kumulatif, menyajikan frekuensi yang datanya selalu ditambahkan.
- Tabel distribusi frekuensi relative, menyajikan data frekuensi yang bukan sebenarnya, misalnya dalam bentuk persen.
Langkah-langkah menjawab soal di atas seperti ini :
Langkah 1 : Urutkan dari yang terkecil hingga yang terbesar guna memudahkan dalam melakukan pernghitungan.
Kemudian tentukan
Nilai Max & Nilai Min, untuk membuat jangkauan (Range).
Min =
35
Max =
99
Range =
99-35 = 64
Langkah 2
: Sebenarnya tidak ada aturan pasti, untuk mudahnya bisa
menggunakan aturan Sturges.
Aturan Sturges K = 1 +
3,322 log n atau K = 1+3,3 log n
K = banyaknya
kelas
n = banyaknya jumlah
data observasi
Banyaknya data atau n
= 80 maka...
K
= 1 + 3,3 log 80
= 1 + 3,3 (1,903)
= 1 + 6,279
= 7,279 ≈ 7
= 1 + 6,279
= 7,279 ≈ 7
Langkah 3
: Panjang/Lebar Kelas (Interval).
Interval adalah selisih batas atas
dan batas bawah dari suatu kategori.
jika:
Panjang Kelas P = J/K
= Xn-X1/K
K = banyaknya kelas
Xn = nilai observasi
terbesar
X1 = nilai observasi
terkecil
Maka :
P = 99-35/7
=64/7
= 9,143 ≈ 9
P = 99-35/7
=64/7
= 9,143 ≈ 9
Langkah 4 : Tabulasi
dan Tabel Frekuensi.
Batas kelas
: Nilai terendah dan tertinggi
Batas kelas dalam
suatu interval kelas terdiri dari dua macam :
·
Batas kelas bawah – lower class limit, Nilai teredah
dalam suati interval kelas.
·
Batas kelas atas – upper class limit, Nilai teringgi
dalam suatu interval kelas.
Pada tabel di atas, 44
merupakan nilai tertinggi kelas ke 1, dan 45 merupakan nilai terendah kelas ke
2. Begitupun seterusnya.
Nilai tengah
: Tanda atau perinci dari suatu interval kelas dan merupakan suatu angka
yang dapat dianggap mewakili suatu interval kelas. Nilai tengah kelas,
kelasnya berada di tengah-tengah pada setiap interval kelas.
Nilai
tengah kelas 1 : (35+44)/2 = 39,5
Nilai
tengah kelas 2 : (45+54)/2 = 49,5
Nilai
tengah kelas 3 : (55+64)/2 = 59,5
Dst.
Nilai tepi kelas
: Nilai batas antara kelas yang memisahkan nilai antara kelas satu dengan
kelas lainnya. Penjumlahan nilai atas kelas dengan nilai bawah kelas
diantaranya dan di bagi dua.
Nilai
tepi kelas 2 : (44+45)/2 = 44,5
Nilai tepi
kelas 3 : (54+55)/2 = 54,5
Nilai
tepi kelas 4 : (64+65)/2 = 64,5
Dst.
Distribusi Frekuensi
Absolut & Relatif :
Absolut : Jumlah
bilangan yang menyatakan banyaknya data pada suatu kelompok tertentu.
Relatif : Jumlah
persentase yang menyatakan banyaknya data pada suatu kelompok tertentu.
Frekuensi setiap kelas dibandingkan dengan frekuensi total. Tujuannya adalah
untuk memudahkan membaca data secara tepat dan tidak kehilangan makna dari
kandungan data.
Frekuensi Relatif =
Frekuensi Kelas/Jumlah Kelas x 100
Pada tebel diatas,
Frek.
Relatif kelas 1 : (3/80)x100 = 3,75
Frek.
Relatif kelas 2 : (3/80)x100 = 3,75
Frek.
Relatif kelas 3 : (8/80)x100 = 10
Frek.
Relatif kelas 4 : (21/80)x100 = 26,25
Dst
Distribusi Frekuensi
Satuan & Kumulatif
·
Distribusi frekuensi satuan : frekuensi yang
menunjukkan berapa banyak data pada kelompok tertentu.
·
Distribusi frekuensi kumulatif : distribusi frekuensi
yang menunjukkan jumlah frekuensi pada sekelompok nilai tertentu, mulai dari
kelompok sebelumnya sampai dengan kelompok tersebut.
·
Frekuensi kumulatif kurang dari : penjumlahan dari
mulai frekuensi terendah sampai kelas tertinggi dan jumlah akhirnya merupakan
jumlah data (n).
·
Frekuensi kumulatif lebih dari : pengurangan dari
jumlah data (n) dengan frekuensi setiap kelas dimulai dari kelas terendah dan
jumlah akhirnya adalah nol.
Grafik
Histogram :
Histogram merupakan
diagram balok. Histogram menghubungkan antara tepi kelas interval dengan
pada sumbu horizontal (X) dan frekuensi setiap kelas pada sumbu vertikal (Y).
Grafik
Polygon :
Menggunakan
garis yang mengubungkan titik – titik yang merupakan koordinat antara
nilai tengah kelas dengan jumlah frekuensi pada kelas tersebut.
Kurva
Ogif / Ogive :
Merupkan diagram garis yang menunjukan kombinasi antara
interval kelas dengan frekuensi kumulatif.
SCRIPT C++ PENGURUTAN (SORTING)
1. Insertion Sort
2.Tree Sort
#include<iostream>
using namespace std;
struct tree{
int info;
tree *Left, *Right;
};
tree *root;
class TreeSort{
public:
int no_of_elements;
int elements[10];
public:
void getarray();
void sortit();
void insert1(int);
tree *insert2(tree *, tree *);
void display(tree *);
};
void TreeSort::getarray(){
cout<<"Masukkan elemen yang anda inginkan:";
cin>>no_of_elements;
cout<<"masukan angka: \n";
for(int i=0;i<no_of_elements;i++){
cin>>elements[i];
}
}
void TreeSort::sortit(){
for(int i = 0; i < no_of_elements; i++){
insert1(elements[i]);
}
}
tree* TreeSort::insert2(tree *temp,tree *newnode){
if(temp==NULL){
temp=newnode;
}
else if(temp->info < newnode->info){
insert2(temp->Right,newnode);
if(temp->Right==NULL)
temp->Right=newnode;
}
else{
insert2(temp->Left,newnode);
if(temp->Left==NULL)
temp->Left=newnode;
}
return temp;
}
void TreeSort::insert1(int n){
tree *temp=root,*newnode;
newnode=new tree;
newnode->Left=NULL;
newnode->Right=NULL;
newnode->info=n;
root=insert2(temp,newnode);
}
/* Inorder traversal */
void TreeSort::display(tree *t = root){
if(root==NULL){
cout<<"Nothing to display";
}else
if(t!=NULL){
display(t->Left);
cout<<t->info<<" ";
display(t->Right);
}
}
int main(){
TreeSort TS;
TS.getarray();
TS.sortit();
TS.display();
return 0;
}
3. Bubble Sort
4. Exchange Sort
using namespace std;
#include<iostream>
int main(void)
{
int array[5]; // An array of integers.
int length = 5; // Lenght of the array.
int i, j;
int temp;
//Some input
for (i = 0; i < 5; i++)
{
cout << "Masukan angka: ";
cin >> array[i];
}
//Algorithm
for(i = 0; i < (length -1); i++)
{
for (j=(i + 1); j < length; j++)
{
if (array[i] < array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
//Some output
for (i = 0; i < 5; i++)
{
cout << array[i] << endl;
}
}
5. Selection Sort
#include<iostream>
#include<conio.h>
using namespace std;
template <class T>
void s_sort(T a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[j]<a[i]) //for descending order use if(a[j]>a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
int main()
{
int a[100],i,n;
cout<<"Masukan jumlah elemen:\n";
cin>>n;
cout<<"\nmasukan angka:\n";
for(i=0;i<n;i++)
{
cout<<"\nmasukan:";
cin>>a[i];
}
s_sort(a,n);
cout<<"\nAfter Sorting\n";
for(i=0;i<n;i++)
{
cout<<a[i]<<"\t";
}
getch();
return 0;
}
6. Heap Sort
#include <iostream>
#include <conio.h>
using namespace std;
void max_heapify(int *a, int i, int n)
{
int j, temp;
temp = a[i];
j = 2*i;
while (j <= n)
{
if (j < n && a[j+1] > a[j])
j = j+1;
if (temp > a[j])
break;
else if (temp <= a[j])
{
a[j/2] = a[j];
j = 2*j;
}
}
a[j/2] = temp;
return;
}
void heapsort(int *a, int n)
{
int i, temp;
for (i = n; i >= 2; i--)
{
temp = a[i];
a[i] = a[1];
a[1] = temp;
max_heapify(a, 1, i - 1);
}
}
void build_maxheap(int *a, int n)
{
int i;
for(i = n/2; i >= 1; i--)
{
max_heapify(a, i, n);
}
}
int main()
{
int n, i, x;
cout<<"Masukan jumlah elemen:\n";
cin>>n;
int a[20];
for (i = 1; i <= n; i++)
{
cout<<"masukan angka:"<<(i)<<endl;
cin>>a[i];
}
build_maxheap(a,n);
heapsort(a, n);
cout<<"sorted output\n";
for (i = 1; i <= n; i++)
{
cout<<a[i]<<endl;
}
getch();
}
7. Quick Sort
8. Merge Sort
9. Shell Sort
Senin, 13 April 2015
#include <conio.h>
using namespace std;
int main()
{
int a[10], i, j, k, temp;
cout<<"masukan angka:\n";
for (i = 0; i < 16; i++)
{
}
for (i = 1; i < 10; i++)
{
for (j = i; j >= 1; j--)
{
if (a[j] < a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
else
break;
}
}
cout<<"sorted array\n"<<endl;
for (k = 0; k < 16; k++)
{
cout<<a[k]<<endl;
}
getch();
}
2.Tree Sort
#include<iostream>
using namespace std;
struct tree{
int info;
tree *Left, *Right;
};
tree *root;
class TreeSort{
public:
int no_of_elements;
int elements[10];
public:
void getarray();
void sortit();
void insert1(int);
tree *insert2(tree *, tree *);
void display(tree *);
};
void TreeSort::getarray(){
cout<<"Masukkan elemen yang anda inginkan:";
cin>>no_of_elements;
cout<<"masukan angka: \n";
for(int i=0;i<no_of_elements;i++){
cin>>elements[i];
}
}
void TreeSort::sortit(){
for(int i = 0; i < no_of_elements; i++){
insert1(elements[i]);
}
}
tree* TreeSort::insert2(tree *temp,tree *newnode){
if(temp==NULL){
temp=newnode;
}
else if(temp->info < newnode->info){
insert2(temp->Right,newnode);
if(temp->Right==NULL)
temp->Right=newnode;
}
else{
insert2(temp->Left,newnode);
if(temp->Left==NULL)
temp->Left=newnode;
}
return temp;
}
void TreeSort::insert1(int n){
tree *temp=root,*newnode;
newnode=new tree;
newnode->Left=NULL;
newnode->Right=NULL;
newnode->info=n;
root=insert2(temp,newnode);
}
/* Inorder traversal */
void TreeSort::display(tree *t = root){
if(root==NULL){
cout<<"Nothing to display";
}else
if(t!=NULL){
display(t->Left);
cout<<t->info<<" ";
display(t->Right);
}
}
int main(){
TreeSort TS;
TS.getarray();
TS.sortit();
TS.display();
return 0;
}
3. Bubble Sort
#include<iostream>
using namespace std;
int main(){
//declaring array
int array[5];
cout<<"masukan acak 5 angka: "<<endl;
for(int i=0; i<5; i++)
{
//Taking input in array
cin>>array[i];
}
cout<<endl;
cout<<"Input array : "<<endl;
for(int j=0; j<5; j++)
{
//Displaying Array
cout<<"\t\t\tValue at "<<j<<" Index: "<<array[j]<<endl;
}
cout<<endl;
// Bubble Sort Starts Here
int temp;
for(int i2=0; i2<=4; i2++)
{
for(int j=0; j<4; j++)
{
//Swapping element in if statement
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
// Displaying Sorted array
cout<<" Sorted Array : "<<endl;
for(int i3=0; i3<5; i3++)
{
cout<<"\t\t\tValue at "<<i3<<" Index: "<<array[i3]<<endl;
}
return 0;
}
4. Exchange Sort
using namespace std;
#include<iostream>
int main(void)
{
int array[5]; // An array of integers.
int length = 5; // Lenght of the array.
int i, j;
int temp;
//Some input
for (i = 0; i < 5; i++)
{
cout << "Masukan angka: ";
cin >> array[i];
}
//Algorithm
for(i = 0; i < (length -1); i++)
{
for (j=(i + 1); j < length; j++)
{
if (array[i] < array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
//Some output
for (i = 0; i < 5; i++)
{
cout << array[i] << endl;
}
}
5. Selection Sort
#include<iostream>
#include<conio.h>
using namespace std;
template <class T>
void s_sort(T a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[j]<a[i]) //for descending order use if(a[j]>a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
int main()
{
int a[100],i,n;
cout<<"Masukan jumlah elemen:\n";
cin>>n;
cout<<"\nmasukan angka:\n";
for(i=0;i<n;i++)
{
cout<<"\nmasukan:";
cin>>a[i];
}
s_sort(a,n);
cout<<"\nAfter Sorting\n";
for(i=0;i<n;i++)
{
cout<<a[i]<<"\t";
}
getch();
return 0;
}
6. Heap Sort
#include <iostream>
#include <conio.h>
using namespace std;
void max_heapify(int *a, int i, int n)
{
int j, temp;
temp = a[i];
j = 2*i;
while (j <= n)
{
if (j < n && a[j+1] > a[j])
j = j+1;
if (temp > a[j])
break;
else if (temp <= a[j])
{
a[j/2] = a[j];
j = 2*j;
}
}
a[j/2] = temp;
return;
}
void heapsort(int *a, int n)
{
int i, temp;
for (i = n; i >= 2; i--)
{
temp = a[i];
a[i] = a[1];
a[1] = temp;
max_heapify(a, 1, i - 1);
}
}
void build_maxheap(int *a, int n)
{
int i;
for(i = n/2; i >= 1; i--)
{
max_heapify(a, i, n);
}
}
int main()
{
int n, i, x;
cout<<"Masukan jumlah elemen:\n";
cin>>n;
int a[20];
for (i = 1; i <= n; i++)
{
cout<<"masukan angka:"<<(i)<<endl;
cin>>a[i];
}
build_maxheap(a,n);
heapsort(a, n);
cout<<"sorted output\n";
for (i = 1; i <= n; i++)
{
cout<<a[i]<<endl;
}
getch();
}
7. Quick Sort
#include <iostream>
void quickSort(int a[], int first, int last);
int pivot(int a[], int first, int last);
void swap(int& a, int& b);
void swapNoTemp(int& a, int& b);
void print(int array[], const int& N);
using namespace std;
int main()
{
int test[] = { 7, -13, 1, 3, 10, 5, 2, 4 };
int N = sizeof(test)/sizeof(int);
cout << "Size of test array :" << N << endl;
cout << "Before sorting : " << endl;
print(test, N);
quickSort(test, 0, N-1);
cout << endl << endl << "After sorting : " << endl;
print(test, N);
return 0;
}
/**
* Quicksort.
* @param a - The array to be sorted.
* @param first - The start of the sequence to be sorted.
* @param last - The end of the sequence to be sorted.
*/
void quickSort( int a[], int first, int last )
{
int pivotElement;
if(first < last)
{
pivotElement = pivot(a, first, last);
quickSort(a, first, pivotElement-1);
quickSort(a, pivotElement+1, last);
}
}
/**
* Find and return the index of pivot element.
* @param a - The array.
* @param first - The start of the sequence.
* @param last - The end of the sequence.
* @return - the pivot element
*/
int pivot(int a[], int first, int last)
{
int p = first;
int pivotElement = a[first];
for(int i = first+1 ; i <= last ; i++)
{
/* If you want to sort the list in the other order, change "<=" to ">" */
if(a[i] <= pivotElement)
{
p++;
swap(a[i], a[p]);
}
}
swap(a[p], a[first]);
return p;
}
/**
* Swap the parameters.
* @param a - The first parameter.
* @param b - The second parameter.
*/
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
/**
* Swap the parameters without a temp variable.
* Warning! Prone to overflow/underflow.
* @param a - The first parameter.
* @param b - The second parameter.
*/
void swapNoTemp(int& a, int& b)
{
a -= b;
b += a;// b gets the original value of a
a = (b - a);// a gets the original value of b
}
/**
* Print an array.
* @param a - The array.
* @param N - The size of the array.
*/
void print(int a[], const int& N)
{
for(int i = 0 ; i < N ; i++)
cout << "array[" << i << "] = " << a[i] << endl;
}
8. Merge Sort
using namespace std;
#include <iostream>
#include <conio.h>
void merge(int *,int, int , int );
void mergesort(int *a, int low, int high)
{
int mid;
if (low < high)
{
mid=(low+high)/2;
mergesort(a,low,mid);
mergesort(a,mid+1,high);
merge(a,low,high,mid);
}
return;
}
void merge(int *a, int low, int high, int mid)
{
int i, j, k, c[50];
i = low;
k = low;
j = mid + 1;
while (i <= mid && j <= high)
{
if (a[i] < a[j])
{
c[k] = a[i];
k++;
i++;
}
else
{
c[k] = a[j];
k++;
j++;
}
}
while (i <= mid)
{
c[k] = a[i];
k++;
i++;
}
while (j <= high)
{
c[k] = a[j];
k++;
j++;
}
for (i = low; i < k; i++)
{
a[i] = c[i];
}
}
int main()
{
int a[20], i, b[20];
cout<<"enter the elements\n";
for (i = 0; i < 5; i++)
{
cin>>a[i];
}
mergesort(a, 0, 4);
cout<<"sorted array\n";
for (i = 0; i < 5; i++)
{
cout<<a[i];
}
cout<<"\nenter the elements\n";
for (i = 0; i < 5; i++)
{
cin>>b[i];
}
mergesort(b, 0, 4);
cout<<"sorted array\n";
for (i = 0; i < 5; i++)
{
cout<<b[i];
}
getch();
}
9. Shell Sort
using namespace std;
#include <iostream>
#include <conio.h>
void read(int a[10], int n){
cout<<"Reading\n";
for(int i = 0; i < n; i++)
cin>>a[i];
}
void display(int a[10], int n){
for(int i = 0; i < n; i++)
cout<<a[i]<<"\t";
}
void shell(int a[10], int n){
int gap = n/2;
do{
int swap;
do{
swap = 0;
for(int i = 0; i < n - gap; i++)
if(a[i] > a[i+gap])
{
int t = a[i];
a[i] = a[i+gap];
a[i+gap] = t;
swap = 1;
}
}
while(swap);
}
while(gap = gap / 2);
}
int main(){
int a[10];
cout<<"enter n\n";
cin>>n;
read(a,n);
cout<<"before sorting\n";
display(a,n);
shell(a,n);
cout<<"\nafter sorting\n";
display(a,n);
getch();
}
Senin, 13 April 2015