Senin, 04 Mei 2015

Stack atau Tumpukan (Pengantar Struktur Data)



Stack atau Tumpukan



DEFINISI LINIER LIST

Apa itu list linier? List Linier adalah suatu kumpulan yang terdiri dari beberapa elemen yang mempunya keturutan tertentu, dimana setiap elemennya mengandung 2 bagian yaitu, informasi mengenai tipe elemen tersebut dan alamat suksesor (next elemen).
Setiap elemennya terdiri dari 2 bagian:  
type ElemenList: <info: Infotype, Next: address>
 Dengan infotype yaitu tipe terdefinisi yang menyimpan data, sedangkan next adalah address alamat berikutnya.
Sebuah list linier dapat dikenali dengan:
  1. Elemen Pertamanya, biasanya melalui alamat elemen pertama yang disebut: First
  2. Alamat Elemen berikutnya (suksesor), yaitu suatu informasi alamat elemen berikutnya, biasanya disebut NEXT
  3. Setiap elemennya memiliki alamat, yaitu tempat elemen disimpan dan diacu
  4. Elemen terakhir, suatu alamat elemen yang berada di akhir
Berikut ini contoh pengalamatan elemen:
Alamat elemen pertama list L dapat diacu dengan notasi: FIRST(L)
Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi Selektor: Info(P), Next(P)
Kelebihan dari menggunakan tipe data list adalah:
  1. Pemakaian memori yang dinamis, sehingga kita bisa melakukan penghematan memori tergantung proses yang dikerjakan
  2. Untuk melakukan proses insert atau delete di list sangat sederhana
DEFINISI STACK
      Stack adalah suatu bentuk khusus dari linear list di mana operasi penyisipan dan penghapusan atas elemen-elemennya hanya dapat dilakukan pada satu sisi saja yang disebut sebagai “TOP”.
Misal diberikan Stack S sebagai berikut :

      S = [ S1, S2, .........., ST ]   maka TOP(S) = ST.

          Untuk menunjukkan jumlah elemen suatu stack digunakan notasi NOEL. Dari stack di atas, maka NOEL(S) = T.

OPERASI DASAR PADA STACK
      Ada empat operasi dasar yang didefinisikan pada stack, yaitu :
      1. CREATE(stack)
      2. ISEMPTY(stack)
      3. PUSH(elemen,stack)
      4. POP(stack)


CREATE
Operator ini berfungsi untuk membuat sebuah stack kosong dan didefinisikan bahwa :

NOEL(CREATE(S)) = 0 dan TOP(CREATE(S)) = null

ISEMPTY
      Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong.Operasinya akan bernilai boolean, dengan definisi sebagai berikut :
            ISEMPTY(S) = true, jika S adalah stack kosong
                                    = false, jika S bukan stack kosong
      atau
            ISEMPTY(S) = true, jika NOEL(S) = 0
                                    = false, jika NOEL(S) 0

Catatan : ISEMPTY(CREATE(S)) = true.

PUSH
 Operator ini berfungsi untuk menambahkan satu elemen ke dalam stack. Notasi yang digunakan adalah :

        PUSH(E,S)
Artinya : menambahkan elemen E ke dalam stack S.
 Elemen yang baru masuk ini akan menempati posisi TOP.
Jadi : TOP(PUSH(E,S)) = E.
Akibat dari operasi ini jumlah elemen dalam stack akan bertambah, artinya NOEL(S) menjadi lebih besar atau stack menjadi tidak kosong (ISEMPTY(PUSH(E,S)) = false).

POP
            Operator ini berfungsi untuk mengeluarkan satu elemen dari dalam stack. Notasinya :
                   POP(S)
Elemen yang keluar dari dalam stack adalah elemen yang berada pada posisi TOP. Akibat dari operasi ini jumlah elemen stack akan berkurang atau NOEL(S) berkurang dan elemen pada posisi TOP akan berubah. Operator POP ini tidak dapat digunakan pada stack kosong, artinya :

                   POP(CREATE(S)) = error condition

Catatan : TOP(PUSH(E,S)) = E

DEKLARASI STACK PADA BAHASA PEMROGRAMAN

    Dalam bahasa pemrograman, untuk menempatkan stack biasanya digunakan sebuah array. Tetapi perlu diingat di sini bahwa stack dan array adalah dua hal yang berbeda. Misalkan suatu variabel S adalah sebuah stack dengan 100 elemen. Diasumsikan elemen S adalah integer dan jumlah elemennya maksimum adalah 100 elemen. Untuk mendeklarasikan stack dengan menggunakan array, harus dideklarasikan pula variabel lain yaitu TOP_PTR yang merupakan indeks dari array. Variabel TOP_PTR ini digunakan untuk menyatakan elemen yang berada pada posisi TOP dalam stack tersebut. Selanjutnya gabungan kedua variabel ini diberi nama STACK_STRUCT. Kemudian didefinisikan bahwa :

            NOEL(S) = TOP_PTR
            ISEMPTY(S) = TRUE, jika TOP_PTR = 0 dan
                 FALSE, jika TOP_PTR > 0.

Maka bentuk deklarasinya dalam PASCAL adalah :

            TYPE Stack_Struct = Record
            Stack   : array[1..100] of integer
                        TopPtr : integer;
            End;
            VAR S : Stack_Struct;

Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu prosedur tersendiri, yaitu :


            PROCEDURE PUSH(Eon : integer);
            Begin
                If (S.TopPtr < NoelMax) Then Begin
                S.TopPtr := S.TopPtr + 1;
                S.Stack [S.TopPtr] := Eon
                                End
                Else Overflow_Condition
            End;

            PROCEDURE POP(Eoff : integer);
            Begin
                If (S.TopPtr > 0) Then Begin
                Eoff := S.Stack[S.TopPtr];
                S.TopPtr := S.TopPtr - 1
                End
                Else Underflow_Condition   
            End;

Catatan :
Overflow adalah suatu keadaan di mana kita melakukan operasi PUSH terhadap stack dalam keadaan penuh. Underflow adalah keadaan di mana kita melakukan operasi POP terhadap stack kosong. Eon adalah elemen yang akan dimasukkan ke dalam stack dan Eoff adalah elemen yang akan dikeluarkan dari dalam stack.
 

Selasa, 06 Januari 2015

PENERAPAN SISTEM INFORMASI MANAJEMEN KAS KECIL



Nama Kelompok         :
  • Flavia Domitilla
  • Indah Dewi P. N
  • Miftah Hunnajah
  • Riana Sari Indriani
  • Sis Mega
PENERAPAN SISTEM INFORMASI MANAJEMEN KAS KECIL
Pengertian Sistem dan Prosedur
Definisi Sistem dan Prosedur menurut Richard F. Neuchel dalam bukunya yang berjudul Manajemen by System, “Sistem adalah suatu jaringan sejumlah prosedur yang saling berhubungan yang dikembangkan sesuai dengan suatu pola (rencana) guna melaksanakan aktivitas utama perusahaan” (R.Soemita Adi Kusuma, 1985:2).
Suatu prosedur adalah operasi tulis menulis yang berurutan yang biasanya menyangkut beberapa orang dalam satu atau beberapa bagian, guna menjamin keseragaman pelaksanaan suatu transaksi perusahaan yang berulang-ulang. (R. Soemita Adi Kusuma,2)
Pengertian Kas
Kas merupakan elemen aktiva yang paling likuid dan hampir semua transaksi pada akhirnya akan berhubungan dengan kas.
Kas didalam pengertian akuntansi didefinisikan sebagai alat pertukaran yang dapat diterima untuk pelunasan hutang dan dapat diterima sebagai suatu setoran ke bank dengan jumlah sebesar nilai nominalnya, juga simpanan dalam bank atau tempat lain yang dapat diambil sewaktu-waktu. (Zaki Baridwan,1980:4)
Pernyataan di atas dapat dikemukakan bahwa kas merupakan alat pertukaran yang berupa uang atau yang dapat dipersamakan dengan uang baik yang ada di perusahaan maupun yang ada di bank yang dapat diambil sewaktu-waktu tanpa mengurangi nilai nominalnya. Kas sangat mudah dipindah tangankan dan tidak dapat dibuktikan kepemilikannya, sehingga kas sangat mudah diselewengkan. Oleh karena itu perlu diadakan pengawasan yang tepat terhadap kas dengan menerapkan sistem pengendalian intern yang baik.
Pengertian Pengendalian Intern
Pengertian pengendalian intern menurut American Institute Of Certified Public Accountan didefinisikan sebagai pengawasan intern, dimana :
Pengawasan intern meliputi struktur organisasi , semua metode dan pengukuran yang terkoordinasi dalam suatu perusahaan, untuk melindungi aktiva, menjaga ketelitian dan keterpercayaan data akuntansi, meningkatkan efisiensi dan mendorong dipatuhinya kebijaksanaan manajemen. (Wing Wahyu Winarno,1994:88)
Tujuan Sistem Pengendalian Intern adalah :
a. Menjaga Kekayaan dan Catatan Akuntansi
b. Memeriksa Ketelitian dan Keandalan Data Akuntansi
c. Mendorong Efisiensi
d. Mendorong Dipatuhinya Kebijakan Manajemen
Sistem Akuntansi Penerimaan Kas
Penerimaan kas perusahaan berasal dari dua sumber utama, yaitu penerimaan dari penjualan tunai dan penerimaan kas dari piutang atau dari penjualan secara kredit. Dibawah ini akan dibahas mengenai kedua sistem akuntansi penerimaan kas tersebut.
a. Sistem Penerimaan Kas dari Penjualan Tunai
Berdasarkan sistem pengendalian intern yang baik, sistem penerimaan kas dari penjualan tunai mengharuskan :
1. Penerimaan kas dalam bentuk tunai harus segera disetor ke bank dalam jumlah penuh dengan cara melibatkan pihak lain selain kasir untuk melakukan internal check.
2. Penerimaan kas secara tunai dilakukan melalui transaksi secara kredit, yang melibatkan bank penerbit kartu kredit dalam pencatatan transaksi penerimaan kas.
Prosedur penerimaan kas dari pejualan tunai ada tiga macam, yaitu :
1. Prosedur penerimaan kas dari over the counter sales.
2. Prosedur penerimaan kas dari cash on delivery sales ( COD sales ).
3. Prosedur penerimaan kas dari credit card sales.
Sistem penerimaan kas dari penjualan tunai melibatkan beberapa fungsi yang terkait, yaitu :
1. Fungsi Penjualan
2. Fungsi Kas
3. Fungsi Gudang
4. Fungsi Pengiriman
5. Fungsi Akuntansi
Informasi yang umumnya diperlukan oleh manajemen dalam penerimaan kas dari penjualan tunai adalah :
1. Jumlah pendapatan penjualan menurut jenis produk atau kelompok produk selama jangka waktu tertentu.
2. Jumlah kas yang diterima dari penjualan tunai.
3. Jumlah harga pokok produk yang dijual selama jangka waktu tertentu.
4. Nama dan alamat pembeli. Informasi ini diperlukan dalam penjualan produk tertentu , namun pada umumnya informasi nama dan alamat pembeli ini tidak diperlukan oleh manajemen dari kegiatan penjualan tunai.
5. Kuantitas produk yang yang dijual.
6. Otorisasi jabatan yang berwenang.
(Mulyadi, 1993:464-465)
Dokumen yang digunakan dalam sistem penerimaan kas dari penjualan tunai adalah :
1. Faktur Penjualan Tunai
2. Pita Register Kas
3. Credit Card Sales Slip
4. Bill Of Lading
5. Faktur Penjualan COD
6. Bukti Setor Bank
7. Rekap Harga Pokok Penjualan
Catatan akuntansi yang digunakan dalam sistem penerimaan kas dari penjualan tunai adalah :
1. Jurnal Penjualan
2. Jurnal Penerimaan Kas
3. Jurnal Umum
4. Kartu Persediaan
5. Kartu Gudang
Jaringan prosedur yang membentuk sistem penerimaan kas dari penjualan tunai adalah :
1. Prosedur Order Penjualan
2. Prosedur Penerimaan Kas
3. Prosedur Penyerahan Barang
4. Prosedur Pencatatan Penjualan Tunai
5. Prosedur Penyetoran Kas ke Bank
6. Prosedur Pencatatan Penerimaan Kas
7. Prosedur Pencatatan Harga Pokok Penjualan
Unsur pengendalian intern yang seharusnya ada dalam sistem penerimaan kas dari penjualan tunai adalah :
Organisasi
1. Fungsi penjualan harus terpisah dari fungsi kas.
2. Fungsi kas harus terpisah dari fungsi akuntansi .
3. Transaksi penjualan tunai harus dilaksanakan oleh fungsi penjualan, fungsi kas, fungsi pengiriman, dan fungsi akuntansi.
Sistem Otorisasi dan Prosedur Pencatatan
4. Penerimaan order dari pembeli diotorisai oleh fungsi penjualan dengan menggunakan formulir faktur penjualan tunai.
5. Penerimaan kas diotorisasi oleh fungsi kas dengan membubuhkan cap “lunas” pada faktur penjualan tunai dan penempelan pita register kas pada faktur tersebut.
6. Penjualan dengan kartu kredit bank didahului dengan permintaan otorisasi dari bank penerbit kartu kredit.
7. Penyerahan barang diotorisasi oleh fungsi pengiriman dengan cara membubuhkan cap “sudah diserahkan” pada faktur penjualan tunai.
8. Pencatatan ke dalam buku jurnal diotorisasi oleh fungsi akuntansi dengan cara memberikan tanda pada faktur penjualan tunai.
Praktek yang Sehat
9. Faktur penjualan tunai bernomor urut tercetak dan pemakaiannya dipertanggungjawabkan oleh fungsi penjualan.
10. Jumlah kas yang diterima dari penjualan tunai disetor seluruhnya ke bank pada hari yang sama dengan transaksi penjualan tunai atau hari kerja berikutnya.
11. Penghitungan saldo kas yang ada di tangan fungsi kas secara periodik dan secara mendadak oleh fungsi pemeriksa intern.( Mulyadi, 1993 : 472 – 473)