Minggu, 30 Juni 2013

QUEUE (ANTRIAN)

Pengertian Antrian
Antrian (Queue) merupakan kumpulan data yang mana penambahan elemen hanya bias
dilakukan pada suatu ujung yaitu rear /tail / belakang, dan pengha[usan dilakukan melalui
ujung yang lainnya yaitu front / head / depan. Antrian disebut FIFO (First In First Out) yaitu
elemen yang lebih dulu disisipkan merupakan elemen yang akan lebih dulu diambil.
Operasi-operasi dasar dari sebuah queue adalah :
1. Enqueue : proses penambahan elemen di posisi belakang
2. Dequeue : proses pengambilan elemen di posisi depan
Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat dilakukan terhadap
sebuah queue yaitu :
1. Operasi pemeriksaan queue kosong (fungsi kosong)
2. Operasi pemeriksaan queue penuh (fungsi penuh).
3. Operasi inisialisasi queue (fungsi inisialisasi)

Karakteristik Antrian
Karakteristik antrian sebagai berikut :
1. Elemen antrian yaitu item-item data yang terdapat di elemen antrian
2. Front (elemen terdepan dari antrian)
3. Tail (elemen terakhir dari antrian)
4. Count (jumlah elemen pada antrian)
5. Status antrian apakah penuh atau kosong.
- Penuh, jika elemen pada antrian mencapai kapasitas maximum antrian. Pada
kondisi ini, tidak mungkin dilakukan panambahan ke antrian.
- Kosong, jika tidak ada elemen pada antrian. Pada kondisi ini, tidak mungkin
dilakukan pengambilan elemen dari antrian.

Implementasi Antrian
Dengan menggunakan Array Statis
Keluar<-- | A | B | C | D | E | F | <--Masuk
                depan                    belakang
                             (a)
Jika ada elemen baru yang akan masuk pada gambar (a), maka ia akan diletakkan disebelah
kanan F (gambar (b)). Jika ada elemen yang akan dihapus, maka A akan dihapus lebih dulu
(gambar (c)).

Keluar<-- | A | B | C | D | E | F | G | H | <--Masuk
                  depan                            belakang
                                    (b)


Keluar<-- |    |    | C | D | E | F | G | H | <--Masuk
                             depan               belakang

                                          (c)

STACK (TUMPUKAN)

        Stack merupakan metode dalam menyimpan atau mengambil data ke dan dari memori.
Stack dapat dibratkan sebuah tumpukan barang dalam sebuah tempat yang hanya memiliki
satu pintu diatsnya (memasukan dan mengambil barang hanya dapat dilakukan melalui pintu
itu). Ukuran barang tersebut pas dengan pintunya, sehingga barang yang akan dikeluarkan
pertama kali adalah barang yang terkhir kali dumasukan. Contoh dalam kehidupan sehari-hari
adalah tumpukan piring di sebuah restoran yang tumpukannya dapat ditambah pada bagian
paling atas dan jika mengambilnya pun dari bagian paling atas pula. Lihat gambar 1. Dengan
demikian, kaidah stack adalah First In Last Out (FILO) atau Last In First Out (LIFO).

Ada 2 operasi paling dasar dari stack yang dapat dilakukan, yaitu :
1. Operasi push yaitu operasi menambahkan elemen pada urutan terakhir (paling atas).
2. Operasi pop yaitu operasi mengambil sebuah elemen data pada urutan terakhir dan
menghapus elemen tersebut dari stack.

Selain operasi dasar stack (push dan stack), ada lagi operasi lain yang dapat terjadi
dalam stack yaitu :
1. Proses deklarasi yaitu proses pendeklarasian stack.
2. Proses isempty yaitu proses pemeriksaan apakah stack dalam keadaan kosong.
3. Proses isfull yaitu proses pemeriksaan apakah stack telah penuh.
4. Proses inisialisasi yaitu proses pembuatan stack kosong, biasanya dengan pemberian
nilai untuk top.

Representasi stack dalam pemrograman, dapat dilakukan dengan 2 cara yaitu :
1. Representasi stack dengan array
2. Representasi stack dengan single linked list

Operasi-operasi stack secara lengkap adalah sebagai berikut :

1. Pendeklarasian stack
Proses pendeklarasian stack adalah proses pembuatan struktur stack dalam memori.
Karena stack dapat direpresentasikan dalam 2 cara, maka pendeklarasian stack pun ada
2 yaitu pendeklarasian stack menggunakan array dan single linked list, hanya pada bagain
ini hanya dibahas stack menggunakan array :

Pendeklarasian stack yang menggunakan array.
Suatu stack memiliki beberapa bagian yaitu
􀂃 top yang menunjuk posisi data terakhir (top)
􀂃 elemen yang berisi data yang ada dalam stack. Bagian ini lah yang berbentuk
array.
􀂃 maks_elemen yaitu variable yang menunjuk maksimal banyaknya elemen dalam
stack.
Dalam bahasa Pascal, pendeklarasiannya adalah :
Const max = 100;
Type tstack = record
Top:integer;
maks_elemen:integer;
elemen:array[1..max]of elemen;
var stack: tstack;

2. Inisialisasi
Inisialisasi stack adalah proses pembuatan suatu stack kosong. Adapun langkah-langkah
proses tersebut berdasarkan jenis penyimpanannya adalah :
Inisialisasi stack yang menggunakan array.
Proses inisialisasi untuk stack yang menggunakan array adalah dengan mengisi nilai
field top dengan 0 (nol) jika elemen pertama diawali dengan nomor 1.
Implementasinya dalam bahasa Pascal adalah :
procedure inisialisasi(var stack :tstack);
begin
stack.top:=0;
stack.maks_elemen:=max;
end;

3. Operasi IsEmpty
Operasi ini digunakan untuk memeriksa apakah stack dalam keadaan kosong. Operasi ini
penting dilakukan dalam proses pop. Ketika suatu stack dalam keadaan kosong, maka
proses pop tidak bisa dilakukan. Adapun langkah-langkah operasi ini adalah :
Operasi IsEmpty pada stack yang menggunakan array.
Operasi ini dilakukan hanya dengan memeriksa field top. Jika top bernilai 0 (untuk
elemen yang dimulai dengan index 1), maka berarti stack dalam keadaan empty
(kosong) yang akan me-return-kan true (1) dan jika tidak berarti stack mempunyai isi
dan me-return-kan nilai false (0)
Implementasi dalam bahasa Pascal adalah :
function isempty(stack : tstack): boolean;
begin
if (stack.top=0) then
isempty:= true
else
isempty:= false;
end;
Cara penggunaannya adalah :
{Penggunaan isempty dalam statement if}
if( isempty(stack) ) ...

4. Operasi IsFull
Operasi ini berguna untuk memeriksa keadaan stack apakah sudah penuh atau belum.
Operasi ini akan menghasilkan nilai true (1) jika stack telah penuh dan akan menghasilkan
nilai false (0) jika stack masih bisa ditambah. Langkah-langkah untuk operasi ini adalah :
Operasi IsFull pada stack yang menggunakan array.
Operasi ini akan memberikan nilai true (1) jika field top sama dengan field
maks_elemen (untuk array yang elemennya dimulai dari posisi 1).
Implementasinya dalam bahasa Pascal adalah :
function isfull(stack : tstack );
begin
if (stack.top=stack.maks_elemen) then
isfull:=true
else
isfull:=false;
end;

Cara pemanggilannya adalah :
{penggunaan isfull dalam statement if}
if( isfull(stack) ) … { jika stack tidak penuh}

5. Operasi Push
Operasi push adalah operasi dasar dari stack. Operasi ini berguna untuk menambah
suatu elemen data baru pada stack dan disimpan pada posisi top yang akan
mengakibatkan posisi top akan berubah. Langkah operasi ini adalah :
a. Operasi push pada stack yang menggunakan array.
Langkah operasi push dalam array adalah dengan :
􀂃 Periksa apakah stack penuh (isfull). Jika bernilai false/0 (tidak penuh) maka proses
push dilaksanakan dan jika pemeriksaan ini bernilai true/1 (stack penuh), maka
proses push digagalkan.
􀂃 Proses push-nya sendiri adalah dengan menambah field top dengan 1, kemudian
elemen pada posisi top diisi dengan elemen data baru.
Untuk lebih jelas, perhatikan lagi gambar 4 mengenai representasi stack dengan array..
Implementasinya dalam bahasa Pascal adalah :
Procedure push(var stack: tstack; baru:integer);
begin
if (isfull(stack)) then
begin
stack.top:= stack.top +1;
stack.elemen[stack.top]:=baru;
end
else
writeln(‘Stack Full. Push Gagal.’);
end;

Cara penggunaannya adalah :
push(stack,5); {push 5 ke dalam stack}

6. Operasi Pop
Operasi pop adalah salah satu operasi paling dasar dari stack. Operasi ini berguna untuk
mengambil elemen terakhir (top) dan kemudian menghapus elemen tersebut sehingga
posisi top akan berpindah. Operasi ini biasanya dibuat dalam bentuk function yang mereturn-
kan nilai sesuai data yang ada di top.
Operasi pop pada stack yang menggunakan array.
Langkah operasi pop pada stack yang menggunakan array adalah terlebih dahulu
memeriksa apakah stack sedang keadaan kosong, jika tidak kosong maka data
diambil pada posisi yang ditunjuk oleh posisi top, kemudian simpan dalam variable
baru dengan nama data, kemudian posisi top0. 
Implementasi operasi ini dalam bahasa Pascal adalah :
fuction pop(var stack: tstack): integer;
begin
if(isempty(stack)) then
begin
pop:=stack.elemen[stack.top];
stack.top:= stack.top -1;
end
else
pop:= 0;
end;
Cara pemanggilannya adalah :
Var data:integer;
begin
data=pop(stack);
end.


Jumat, 28 Juni 2013

PENGENALAN STRUKTUR DATA DAN ALGORITMA

 Pengenalan Struktur Data
Struktur data adalah sebuah skema organisasi, seperti record dan array, yang
diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasioperasi
spesifik dapat dilaksanakan pada data tersebut

 Pengenalan Algoritma
Algoritma adalah barisan langkah-langkah perhitungan dasar yang mengubah
masukan (dari beberapa fungsi matematika) menjadi keluaran.

Tipe Data
Tipe data yang digunakan dalam Turbo Pascal :
Tipe Sederhana
Tipe sederhana merupakan sebuah perubah hanya dimungkinkan untuk menyimpan sebuah
nilai data.

Tipe sederhana terdapat 2 tipe :
1. Tipe Ordinal (; tipe data bernilai bulat), dibagi :
- Tipe integer : tipe data yang tidak mempunyai titik desimal. Tipe integer mempunyai 5
tipe, yaitu:

Tipe Data Jangkauan Memori
Shortint -128 s/d 127 1 Byte
Byte 0 s/d 255 1 Byte
Integer -32768 s/d 32767 2 Byte
Word 0 s/d 65535 2 Byte
Longint -2147483638 s/d 2147483647 4 Byte

- Tipe boolean : tipe data yang mempunyai dua nilai, yaitu True dan False.
Operator yang digunakan : and, or atau not.

- Tipe char : digunakan untuk mendefinisikan tipe data yang nilainya merupakan
himpunan karakter yang dikenal komputer seperti yang tersaji dalam tabel ASCII.
Contoh : ‘A’ ‘B’ ‘C’ ‘1’ ‘ 2’ ‘3’

- Tipe terbilang (enumerated) : karena semua nilainya disebut satu persatu
Contoh : Type Hari = (minggu, senin, selasa, rabu, kamis, jumat, sabtu)
Bulan = (januari, febuari, maret, april, mei, juni, juli)

- Tipe subjangkauan (sub range)
Bentuk umum
Type pengenal = konstanta1konstanta2
Pengenal = nama type yang akan dideklarasikan
Konstanta1 = batas bawah nilai data
Konstanta2 = batas atas nilai data
Contoh : Type nilai = 0..100
Kemarau = april..oktober

Tipe Real (; tipe data bernilai pecahan)
Dalam Pascal terdapat 5 tipe :

Tipe Data Jangkauan Digit Signifikan Memori
Real 2.9e-39 s/d 1.7e38 11-12 6 Byte
Singla 1.5e-45 s/d 3.4e38 7-8 4 Byte
Double 5.0e-324 s/d 1.7e308 15-16 8 Byte
Extended 3.4e-4932 s/d 1.1e4932 19-20 10 Byte
Comp -9.2e18 s/d 9.2e18 19-20 8 Byte

String
Data yang bertipe string adalah tipe data yang berisi sederetan karakter yang banyaknya
karakter bisa berubah-ubah sesuai kebutuhan yaitu dari 1 sampai 255 karakter.
Bentuk umum :
Type pengenal = string[panjang]
Contoh : Type Nama = string [25]
Jurusan = string[40]

Tipe Terstruktur
Setiap perubah dapat menyimpan lebih dari sebuah data. Ada 4 buah tipe terstruktur, yaitu:

1. Tipe larik (Array)
Larik : tipe terstruktur yang mempunyai komponen dalam jumlah yang tetap dan setiap
komponen mempunyai tipe data yang sama, posisi masing-masing komponen dalam
larik dinyatakan sebagai nomor index.
Bentuk umum ;
Type Pengenal = array[tipe index] of type
Contoh : Var
Nilai = array[1..10] of byte;
Gaji = array[1...500] of integer;

2. Tipe rekaman (record)
Record : tipe data unutk menyimpan data berdasarkan objek.
Dalam record, dapat dikumpulkan item data yang masingmasing dapat mempunyai tipe
data berbeda-beda. Masing-masing item data disebut dengan field. Dalam komputer
dikenal sebagai file (berkas).

3. Type himpunan (set)
Meripakan suatu kumpulan dari objek yang mempunayi tipe datayang sama dan urutan
penulisannya tidak diperhatikan. Tipe-tipe obyek di dalam set disebut sebagi anggota
atau elemen himpunan.
Bentuk umum:
Type pengenal = set of tipe_data;

4. Tipe Berkas (file)
File: kumpulan sejumlah komponen yang bertipe data sama yang jjumlahnya tidak
tertentu dan biasanya disimpan dalam suatu media penyimpanan luar.
Bentuk umum :
Type Pengenal = file of pengenal1;
Pengenal : pengenal yang kan dinyatakan sebgai bertipe data berkas.

Pengenal1 : tipe data komponen berkas

5. Tipe Pointer
Tipe Pointer (mengacu alamat di memori).
Bentuk Umum
Type Pengenal = ^simpul
Simpul = tipe

contoh program C++

#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<iomanip.h>

garis()
{
cout<<"==========================================================="<<endl;
}

main()
{
int i,j,jh[5];
char kode[5],lagi[5],jenis[5][10];
long int banyak[5],bayar[5],kembali[5],harga[5],jb=0,total[5],pajak[5];

clrscr;
atas:
cout<<"\t\t\t\t ICE CREAM BUBLE ";cout<<endl;
cout<<"\t\t----------------------------------------------"<<endl;
cout<<"\t\t\t selamat datang di ice cream buble"<<endl<<endl;
cout<<"banyak jenis   :";cin>>j;
cout<<endl;

for (i=1;i<=j;i++)
{
cout<<"jenis ke"<<i<<endl;
cout<<"jenis rasa [S/C/V]                   :";cin>>kode[i];
cout<<"banyak beli                             :";cin>>banyak[i];
cout<<endl;

if (kode[i]=='S'||kode[i]=='s')
     {
            strcpy(jenis[i],"stroberi");
            harga[i]=7000;
     }
else if (kode[i]='C'||kode[i]=='c')   
     {
            strcpy(jenis[i],"Coklat");
            harga[i]=8000;
     }
else
     {
            strcpy(jenis[i],"vanila");
            harga[i]=9000;
     }
jh[i]=harga[i]*banyak[i];
jb=jb+jh[i];
}


cout<<endl;
cout<<"\t\t ICE CREAM BUBLE "<<endl;
   garis();
   cout<<"no.   jenis         harga             banyak     jumlah          "<<endl;
   cout<<"       rasa           satuan             beli       harga            "<<endl;
   garis();

for(i=1;i<=j;i++)
{
            cout<<setiosflags(ios::left)<<setw(6)<<i;
   cout<<setiosflags(ios::left)<<setw(15)<<jenis[i];
            cout<<setiosflags(ios::left)<<setw(15)<<harga[i];
            cout<<setiosflags(ios::left)<<setw(10)<<banyak[i];
   cout<<setiosflags(ios::left)<<setw(10)<<jh[i]<<endl;

}

cout<<endl;
garis();
cout<<"\t\t\t\t total     :"<<jb;
pajak[i]=jb*0.1;
cout<<"\t\t\t\t\t\t\t\t pajak 10%   :"<<pajak[i]<<endl;
total[i]=pajak[i]+jb;
cout<<"\t\t\t\t total bayar  :"<<total[i]<<endl;
cout<<"\t\t\t\t uang bayar   :";cin>>bayar[i];
kembali[i]=bayar[i]-total[i];
cout<<"\t\t\t\t uang kembali   :"<<kembali[i]<<endl;
cout<<"****TERIMA KASIH****"<<endl;
cout<<"ingin input lagi[Y/T] ?";cin>>lagi[i];
clrscr();

if(lagi[i] =='Y'||lagi[i]=='y')
goto atas;
getch();
}


manajemen dan bisnis, makalah rencana tetap

BAB I
PENDAHULUAN



A.    Latar Belakang

Organisasi siswa intra sekolah (OSIS) merupakan wadah untuk menampung dan menyalurkan serta mengembangkan kreatifitas peserta didik, baik dalam kegiatan kurikuler maupun ekstrakurikuler dalam rangka menunjang keberhasilan kurikuler. Dengan adanya organisasi ini, diharapkan sekolah akan merupakan suatu Wyatamandala (Lingkungan Pendidikan), yaitu lingkungan dengan suasana belajar yang efektif dan efisien, yang tergambar dengan hubungan harmonis antara guru dan peserta didik, peserta didik dengan peserta didik, demikian pula antara guru dengan guru dan antara peserta didik denga orang tua.

OSIS bertujuan agar peserta didik bertakwa kepada Tuhan Yang Maha Esa, hal ini sesuai dengan tujuan pendidikan nasional, mampu menjunjung tinggi kebudayaan nasional dan mampu menghadapi pengaruh yang datang dari luar yang dapat merusak atau bertentangan dengan kepribadian bangsan Indonesia, dapat meningkatkan prestasi, apreasiasi dan kreasi seni yang merupakan dasar pembentukan kepribadian dan budi pekerti yang luhur, serta dapat menumbuhkan dan membina sikap berbangsa dan bernegara serta mampu memelihara nilai-nilai perjuangan.

Agar nilai-nilai perjuangan diatas bisa terus berlangsung di dalam suatu organisasi, maka dianggap  perlu untuk melakukan regenarasi dan pengkaderan bagi para pengurus OSIS yang baru, dengan demikian kegiatan yang akan dilaksanakan diatas sangat perlu untuk dilaksanakan.

B.             Rumusan masalah
1.    Kegiatan Latihan Dasar Kepemimpinan Siswaa (LDKS)
2.    Susunan kepanitiaan LDKS
3.    Pembiayaan Kegiatan

C.                 Tujuan
1.      Mahasiswa dapat memahami tentang organisasi yang pernah diikuti.
2.      Mahasiswa mendapat pengalaman tentang kegiatan tersebut.


D .   SASARAN

1.    Mengembangkan potensi siswa secara optimal dan terpadu yang meliputi bakat, minat dan kreativitas.
2.    Memantapkan kepribadian siswa untuk mewujudkan ketahanan sekolah sebagai lingkungan pendidikan  sehingga terhindar dari usaha dan pengaruh negatif dan bertentangan dengan tujuan pendidikan.
3.    Mengaktualisasikan potensi siswa dalam pencapaian prestasi unggulan sesuai bakat dan minat.
4.    Menyiapkan siswa agar menjadi warga masyarakat yang berakhlak mulia, demokratis, menghormati hak-hak asasi manusia dalam rangka mewujudkan masyarakat madani (civil sociaty)

BAB II
PEMBAHASAN


A.   NAMA, WAKTU DAN TEMPAT  KEGIATAN

1.     Nama Kegiatan
Nama kegiatan yang akan dilaksanakan adalah Latihan Dasar Kepemimpinan Siswa  (LDKS) SMKN 1 pandeglang periode 2012/2013
2.    Waktu Kegiatan
Kegiatan LDKS ini diselenggarakan mulai tanggal 10 s.d 12 Februari 2013 mulai pukul 13.30 s.d 17.00 WIB (setelah selesai KBM)
3.    Tempat Kegiatan
Kegiatan LDKS ini bertempat di Kampus SMKN 1 Pandeglang, Ds. , Kec. Pagerageung, Kab.Tasikmalaya.

B.   PESERTA DAN PEMATERI KEGIATAN

1.    Peserta
Peserta yang mengikuti kegiatan ini adalah siswa dari perwakilan kelas VII dan kelas VIII sebanyak 50 orang dan unsur dari pengurus OSIS lama.
2.    Pembimbing
Yang bertindak sebagai pembimbing adalah pengurus OSIS periode 2012/2013
3.    Pemberi Materi
Yang bertindak sebagai pemberi materi dalam kegiatan ini adalah Guru- guru SMKN 1 Pandeglang. (Jadwal dan nama Pemberi materi terlampir)


Penanggung Jawab                 : Kepala SMKN 1 Pandeglang
Pembina                                  : Agus Ruhimat, S.Pd.
                                                : Jajang Gun-gun, S.Pd.
                                                : Dadang Kurnia, SE
C.    KEPANITIAAN

Ketua Pelaksana                      : Andrianto
Wakil Ketua                            : Novianti
Sekretaris                                : M Rizalul Fahmi
Wakil Sekretaris                      : Sukina Sri Elvira
Bendahara                               : Sopianto
1.      Seksi Acara                            : Mira Rahmawati
                                                    : Hikmayanti
                                              : Misbah Jaenuloh
2.      Seksi Konsumsi           : Tika Kartika
: Sri Desi
                                                : Tita Hanifa 
3.        Absensi                                   : Indri Kurniasih
                                                : Puri Purnama
4.      Seksi Keamanan                      : Urip
                                                     : Usep
                                               : Sholihin
  

3

D.  PEMBIAYAAN


1.      Pemasukan                                                                                     = Rp. 3000.000,-

2.      Pengeluaran

a.       Insentif panitia 16 x 3 hr x 20.000,-                     = Rp.1.600.000,-
b.      Konsumsi panitia 16 x 10.000,-                           = Rp.   160.000,-
c.       Insentif pemberi materi 8 x Rp. 20.000,-              = Rp.   160.000,-
d.      Penyusunan proposal                                           = Rp.     50.000,-
e.       Konsumsi pemberi materi 8 x Rp. 10.000,-          = Rp.     80.000,-
f.       ATK                                                                    = Rp.     50.000,-
g.      Perlengkapan games
-          Ember 15 x Rp. 15.000,-                              = Rp.   225.000,-
-          Tali rapia 2 kg x Rp. 15.000,-                       = Rp.     30.000,-
-          Jarum 1 kotak                                              = Rp.     30.000,-
-          Bola kecil 15 bh x Rp. 2.000,-                      =Rp.      30.000,-
-          Bambu 4 lonjor x Rp. 5.000,-                       = Rp.     20.000,-
h.      Dekorasi
-          Stereo foom 10 x Rp. 2000,-                          =Rp.      20.000,-
-          Kertas warna                                                   =Rp.        5.000,-
-          Lem                                                                 =Rp.      15.000,-
---------------------------------------------------------------------  (+)


Jumlah pengeluaran                                                                                 = Rp. 2.475.000,-
                                                                                                                  ---------------------  (-)
 
Sisa                                                                                                           =Rp.     525.000,-




BAB III
PENUTUP


Demikian kami susun proposal ini sebagai bahan pertimbangan dan pedoman dalam kegiatan yang yang akan dilaksanakan nanti. Semoga proposal ini bisa menjadi pegangan bagi semua pihak yang membutuhkannnya.
Akhirnya kami mengucapkan terima kasih yang sebesar-besarnya dan mohon maaf yang sebesar-besarnya kepada semua pihak yang berkepentingan
        



Ketua,





ANDRIANTO
Pandeglang, 7 Februari 2011
Sekretaris,




M RIZALUL FAHMI


Mengetahui,


Kepala Sekolah,





Drs. H. ADE DASMANA, MSI.
NIP. 19660409 199801 1 001
Pembina OSIS,





AGUS RUHIMAT, S.Pd
NIP. 19670809 199203 1 010