Mohon tunggu...
Fajar Dewantoro
Fajar Dewantoro Mohon Tunggu... Akuntan - Mahasiswa Magister Akuntansi Universitas Mercu Buana

NIM: 55522110018 Mata Kuliah: Audit Sistem Informasi Dosen Pengampu: Prof. Dr. Apollo, M.Si., Ak. Program Studi: Magister Akuntansi Fakultas Ekonomi dan Bisnis Universitas Mercu Buana

Selanjutnya

Tutup

Ruang Kelas

TB2 Audit Sistem Informasi Prof. Apollo: Aplikasi SQL pada Audit Laporan Keuangan Perusahaan Dagang

14 November 2023   21:39 Diperbarui: 15 November 2023   06:27 614
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

1. Pendahuluan 

 Database (basis data) dirancang untuk memudahkan akses, pengelolaan, dan pembaruan kumpulan data tertentu. Dalam kegiatan bisnis database digunakan untuk melacak semua transaksi, mendapatkan wawasan tentang apa yang akan membantu mereka beroperasi lebih efisien, dan, sebagai hasilnya, membantu pemilik, manajer, dan analis membuat keputusan yang lebih baik.
 SQL adalah singkatan dari Structured Query Language, sebuah bahasa pemrograman yang dibuat pada awal tahun 1970an oleh IBM,  database adalah sekumpulan informasi yang diatur menurut aturan tertentu untuk kemudahan akses, pengelolaan, dan pembaruan. Database SQL adalah kumpulan data yang menggunakan bahasa SQL. Komponen ini terdiri dari tabel dengan baris dan kolom yang berisi data dan kunci utama unik. Basis data tersebut dapat membuat tautan  atau hubungan antara data dengan menggabungkan tabel. Itu sebabnya juga disebut sebagai database relasional. Bisnis menggunakan database SQL untuk mengumpulkan, menyimpan, dan mengambil informasi tentang orang, produk, lokasi, dll. Di dalam Aplikasi SQL memungkinkan seorang analis untuk melakukan operasi pemrosesan data dasar dan menjalankan kueri kompleks untuk menghitung kinerja bisnis dan memberikan wawasan yang dapat membantu organisasi. pengambilan keputusan yang lebih baik, membantu mengoptimalkan alur kerja, dan membuat rencana untuk masa depan.Bisnis lebih memilih database relasional karena lebih mudah untuk dimanipulasi dan dipelihara, memproses kueri lebih cepat, memberikan konsistensi data yang lebih baik, portabel, interaktif, dan menggunakan bahasa standar. SQL memiliki perintah dasar serta perintah untuk melakukan berbagai operasi pemrosesan data, termasuk menggabungkan tabel dan mengatur izin akses. SQL memiliki banyak versi, seperti MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database, dan lainnya, yang mungkin memiliki perbedaan sintaksis dan fungsional. 

2.Fungsi SQL

Bahasa kueri ini memiliki banyak fungsi. Berikut adalah beberapa penjelasan tentang fungsi yang dimiliki bahasa pemrograman tersebut.

1. Kemampuan untuk mengedit dan mengakses database

Fungsi pertama dari bahasa kueri ini adalah untuk mendapatkan akses ke database dengan menulis berbagai perintah untuk menyesuaikan kueri yang sudah ditetapkan. Untuk ilustrasi, Anda memiliki kemampuan untuk membuat, mengupdate, menambahkan, dan menghapus tabel, basis data, dan jenis informasi lainnya yang tidak diperlukan oleh sistem.

2. Kemampuan melakukan Kueri

Dapat mengeksekusi berbagai kueri adalah fungsi kedua. Penggunaan masukkan kueri ini bertujuan untuk memberikan perintah langsung pada sistem untuk mengelola sistem database, seperti fungsi alter, grant, trigger, dan sebagainya.

3. Memiliki kemampuan untuk mengatur hak akses user

Fungsi ketiga adalah mengawasi dan mengatur hak akses untuk pandangan, tabel, dan prosedur database. Tujuan dari hak akses ini adalah untuk membatasi akses pengguna sesuai dengan kebutuhan sistem yang digunakan.

3. Fitur-Fitur Dalam SQL

SQL dapat digunakan untuk melakukan pengujian dan merupakan teknik untuk melakukan pertanyaan dalam lingkungan database.
Beberapa pernyataan SQL yang sering digunakan adalah:

a. Select

Memilih dan menampilkan data database dilakukan dengan perintah ini.Ketika digunakan bersamaan dengan perintah FROM, yang digunakan untuk memilih tabel dan WHERE yang akan digunakan untuk memfilter data yang Akan kami tunjukkan.

b. Select Distinct

Untuk menampilkan data tanpa duplikat, perintah SELECT DISTINCT digunakan. Perintah Menghapus Duplikat di Excel menghasilkan hasil yang sama.

c. Where

Dalam penjelasan perintah SELECT, perintah WHERE digunakan untuk memfilter data. Proses penggunaan di sini bergantung pada jenis data yang digunakan standar.

d. Group by

Perintah "GROUP BY" adalah fungsi agregat yang memiliki fungsi yang mirip dengan pivot dalam Microsoft Excel. Umumnya, perintah ini digunakan bersama dengan fungsi agregat lainnya, contohnya seperti;

Sum: untuk menjumlahkan atau menyimpulkan nilai dari suatu kolom dalam tabel.

Count: dapat digunakan untuk menghitung berapa banyak baris dalam tabel yang dipilih.

AVG: alat untuk menghitung nilai rata-rata atau rata-rata dari kolom dalam tabel.

e. Having

Fitur ini dapat menggunakan perintah ini bersama dengan GROUP BY.Tujuannya adalah agar hanya hasil yang sesuai dengan ditampilkan kriteria hanya memiliki.

f. Order by

Fitur ini untuk mengurutkan (sort) tampilan tabel berdasarkan kolom tertentu yang telah kami pilih. Peringkat Nilai dapat diurutkan secara ascending (ASC), yaitu dari nilai terkecil hingga nilai tertinggi.terbesar, atau turunan (DESC), yang berarti diurutkan dari nilai tertinggi sampai yang terakhir paling kecil.

SQL Joins
SQL Joins

g. Join

merupakan perintah yang dapat digunakan untuk menggabungkan dua tabel. Operasi ini dapat menggunakan berbagai variasi JOIN.

SQL memiliki banyak operasi string yang sering digunakan, seperti:

a. SUBSTR: menggunakan substring atau bagian teks.

b. CONCAT: cara untuk menggabungkan banyak string menjadi satu string.

4. Operasi Dalam SQL

1. Operasi Artmatika

Tipe data numerik dapat menggunakan operasi aritmatika, dengan perintah yang sama. matematik umumnya, dengan tanda "+" untuk menambah, "" untuk mengurangi, dan "*" untuk perkalian. dan untuk pembagian, "/"

2. Operasi Logika

Operasi ini dapat menggunakannya untuk tipe data BOOLEAN, yang berarti data dengan nilai TRUE/FALSE. Operasi logika AND dan OR adalah jenis operasi merupakan paling umum digunakan.

3. Operasi Tanggal

Operasi ini menginstruksikan perintah tipe data karakter dapat diubah menjadi untuk melakukan filter tanggal (tipe data tanggal)


4. Create Table

Operasi ini Create Table digunakan untuk perintah menambahkan tabel ke database.

5. Penjelasan aplikasi DBeaver

DBeaver adalah perangkat lunak manajemen basis data dan alat pengembangan yang mendukung berbagai sistem basis data. Ini adalah perangkat lunak open-source yang tersedia secara gratis dan kompatibel dengan berbagai platform, termasuk Windows, Linux, dan macOS. Beberapa fitur utama DBeaver meliputi:

1. Dukungan untuk Berbagai Basis Data: DBeaver mendukung berbagai sistem basis data, termasuk MySQL, PostgreSQL, SQLite, Oracle, Microsoft SQL Server, MongoDB, dan banyak lagi.

2. Antarmuka Pengguna Grafis (GUI): DBeaver menyediakan antarmuka pengguna grafis yang intuitif untuk menjelajahi dan mengelola struktur basis data serta menjalankan kueri SQL.

3. Editor SQL: DBeaver memiliki editor SQL yang canggih dengan fitur seperti penyorotan sintaksis, penyelesaian otomatis, dan pengelolaan kueri yang kuat.

4. Manajemen Koneksi: Perangkat ini memungkinkan pengguna untuk mengelola koneksi ke berbagai basis data dan menyediakan fitur seperti penyimpanan ulang koneksi, bookmark, dan pencarian koneksi.

5. Pengelolaan Schema dan Data: DBeaver memungkinkan pengguna untuk mengelola struktur skema basis data, membuat dan mengubah tabel, serta mengelola data dalam tabel.

6. Ekspor dan Impor Data: DBeaver mendukung ekspor dan impor data dari dan ke berbagai format file, memudahkan pengguna untuk mentransfer data antara basis data.

7. Alat Migrasi: DBeaver menyediakan alat migrasi yang memungkinkan pengguna untuk mentransfer skema dan data antara basis data yang berbeda.

8. Dukungan untuk Data Grafis: Beberapa jenis basis data mendukung tampilan data grafis, dan DBeaver menyediakan dukungan untuk tampilan ini.

DBeaver adalah alat yang populer di kalangan pengembang dan administrator basis data karena fleksibilitasnya dan dukungan yang luas untuk berbagai sistem basis data.

6. Contoh pengaplikasian SQL pada Audit Laporan Keuangan Perusahaan Dagang.

Gambaran umum perusahaan

PT FAJAR GEMILANG merupakan jenis Perusahaan Dagang yang bergerak di bidang bahan makanan dan minuman import. Adapun produk yang dijual oleh PT FAJAR GEMILANG berasal dari negara kawasan ASia

6.1 Dalam pengoperasian praktik offline maka perlu dilakukan instalasi atau pemasangan Database dan DBMS yang diperlukan. Database yang digunakan dalam contoh kasus ini adalah database MySQL. Untuk pengguna OS Windows maka instalasi MySQL Windows menggunakan Laragon. Laragon adalah sebuah perangkat lunak memungkinkan membuat server web lokal di komputer Anda. Laragon dapat membuat dan menguji situs web tanpa harus terhubung ke internet. Laragon memiliki beberapa keunggulan dibandingkan XAMPP, seperti menjadi lebih cepat dan ringan. Laragon dapat didownload pada situs laragon.org/download

Download Laragon (Dokpri)
Download Laragon (Dokpri)
6.2 Pada langkah selanjutnya, setelah dilakukan install (pemasangan) aplikasi laragon yang telah di download, maka langkah-langkah yang harus dilakukan sebagai berikut:

Instalasi Laragon 1  (Dokpri)
Instalasi Laragon 1  (Dokpri)

Instalasi Laragon 2  (Dokpri)
Instalasi Laragon 2  (Dokpri)

Instalasi Laragon 3  (Dokpri)
Instalasi Laragon 3  (Dokpri)
Instalasi Laragon 4  (Dokpri)
Instalasi Laragon 4  (Dokpri)
Kemudian pada langkah terakhir yaitu melakukan restart komputer untuk menyempurnakan pemasangan aplikasi laragon

Instalasi Laragon 5  (Dokpri)
Instalasi Laragon 5  (Dokpri)
6.3 Setelah instalasi aplikasi Laragon berhasil Selanjutnya download aplikasi DBeaver sebagai aplikasi pengelolaan database atau DBMS. Aplikasi DBeaver didownload pada situs https://dbeaver.io/download (DBeaver Community 23.2.4)

Download Aplikasi DBeaver  (Dokpri)
Download Aplikasi DBeaver  (Dokpri)
Setelah perangkat lunak Aplikasi DBeaver telah berhasil didownload, maka langkah selanjutnya yaitu melakukan penginstallan dengan step-by-step seperti di bawah ini :

Instalasi Aplikasi DBeaver 1  (Dokpri)
Instalasi Aplikasi DBeaver 1  (Dokpri)
Instalasi Aplikasi DBeaver 2  (Dokpri)
Instalasi Aplikasi DBeaver 2  (Dokpri)
Instalasi Aplikasi DBeaver 3 (Dokpri)
Instalasi Aplikasi DBeaver 3 (Dokpri)
Instalasi Aplikasi DBeaver 4 (Dokpri)
Instalasi Aplikasi DBeaver 4 (Dokpri)
Instalasi Aplikasi DBeaver 5 (Dokpri)
Instalasi Aplikasi DBeaver 5 (Dokpri)
Instalasi Aplikasi DBeaver 6 (Dokpri)
Instalasi Aplikasi DBeaver 6 (Dokpri)
Instalasi Aplikasi DBeaver 7 (Dokpri)
Instalasi Aplikasi DBeaver 7 (Dokpri)

6.4 Setelah aplikasi DBeaver berhasil diintalasi, langkah selanjutnya untuk memulai proses audit dengan menggunakan SQL yaitu hal pertama yang dilakukan adalah dengan membuka aplikasi laragon kemudian klik start all

Akviasi Laragaon (start all) Dokpri
Akviasi Laragaon (start all) Dokpri
Akviasi Laragaon (start all) 2 (Dokpri)
Akviasi Laragaon (start all) 2 (Dokpri)
6.5 Setelah aplikasi laragon aktif, maka langka selanjutnya adalah membuka aplikasi DBeaver dan selesaikan instalasi dengan mendownload komponen yang masih belum terinstall.

Instalasi dan download komponen di aplikasi DBeaver (Dokpri)
Instalasi dan download komponen di aplikasi DBeaver (Dokpri)
6.6 Langkah selanjutnya, apabila setelah selesai penginstallan komponen kemudian dilakukan connect ke database mySQL dengan klik new database connection, kemudian pilih MySQL

database connection aplikasi DBeaver, pilih MySQL (Dokpri)
database connection aplikasi DBeaver, pilih MySQL (Dokpri)
6.7 Pada menu aplikasi DBeaver, di menu connection setting maka pilih pengaturan seperti default di bawah ini dan kemudian klik finish connection setting, dan kemudian klik finish

Pilih connection setting, pilih default, klik finish (Dokpri)
Pilih connection setting, pilih default, klik finish (Dokpri)
6.8 Langkah selanjutnya, setelah terhubung dengan localhost kemudian di aplikasi DBeaver buka menu open SQL script dan isi dengan script yang telah disiapkan dan kemudian klik execute SQL script

Open SQL Script, klik execute SQL script (Dokpri)
Open SQL Script, klik execute SQL script (Dokpri)
6.9 Setelah berhasil klik execute SQL script, langkah selanjutnya kemudian klik refresh dan database akan muncul seperti tampilan di bawah ini

klik refresh dan database (Dokpri)
klik refresh dan database (Dokpri)
6.10 Dalam menu database di aplikasi DBeaver, berikut ini adalah tampilan isi dari database yang telah dibuat yang teridiri menu (bigmom_wholecake, classicmodels, principal_accounting, sys)

menu principal_accounting (Dokpri)
menu principal_accounting (Dokpri)
isi menu principal_accounting teridri bagan akun dan jurnal 2019 (Dokpri)
isi menu principal_accounting teridri bagan akun dan jurnal 2019 (Dokpri)
6.11 Pada fungsi pertama yang akan dijalankan adalah Basic Selection. Fungsi ini berguna untuk menampilkan isi dari tabel, atau sebagian isi tabel yang memenuhi kriteria tertentu. Pada praktik audit yang dijalankan kali ini langkah pertama yang dilakukan adalah mendapatkan seluruh data jurnal transaksi pada database dari tabel jurnal transaksi.

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut :

select * from principal_accounting.jurnal2019

Setelah selesai klik execute SQL script dan akan muncul tampilan tabel yang seperti dibawah ini:

select * from principal_accounting.jurnal2019 (Dokpri)
select * from principal_accounting.jurnal2019 (Dokpri)

6.12 Pada tahap selanjutnya fungsi yang dijalankan adalah memunculkan sebagian dari isi tabel yang memenuhi kriteria tertentu

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut:

select jurnal2019.tgl, jurnal2019.kode_akun, jurnal2019.debet, jurnal2019.kredit from principal_accounting.jurnal2019

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

select jurnal2019.tgl, jurnal2019.kode_akun, jurnal2019.debet, jurnal2019.kredit from principal_accounting.jurnal2019 (Dokpri)
select jurnal2019.tgl, jurnal2019.kode_akun, jurnal2019.debet, jurnal2019.kredit from principal_accounting.jurnal2019 (Dokpri)

6.13 Pada tahap langkah selanjutnya adalah mendapatkan buku besar transaksi penjualan dari akun penjualan (41001)

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut:

select * from principal_accounting.jurnal2019

where kode_akun = 41001

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

select * from principal_accounting.jurnal2019where kode_akun = 41001 (Dokpri)
select * from principal_accounting.jurnal2019where kode_akun = 41001 (Dokpri)

6.14 Dari data penjualan tersebut bisa difilter lagi untuk penjualan yang nominalnya di atas Rp. 100.000 dengan memasukkan perintah sebagai berikut :

select * from principal_accounting.jurnal2019

where kode_akun = 41001 and kredit>100000

/*Penjualan di atas 100.000*/

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

penjualan yang nominalnya di atas Rp. 100.000 (Dokpri)
penjualan yang nominalnya di atas Rp. 100.000 (Dokpri)

Namun, jika ingin mengubah perintah menjadi penjualan yang nominalnya di atas Rp. 10.000 maka perintah yang dimasukkan adalah sebagai berikut :

select * from principal_accounting.jurnal2019

where kode_akun = 41001 and kredit>10000

/*Penjualan di atas 10.000*/

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

penjualan yang nominalnya di atas Rp. 10.000  (Dokpri)
penjualan yang nominalnya di atas Rp. 10.000  (Dokpri)

6.15 Penggunaan pada menu Fungsi Join:

  • Pada database yang sudah dinormalisasi terdapat beberapa kolom dalam tabel transaksi yang isinya adalah kode, sehingga sebuah tabel dalam database tidak bisa langsung dipakai untuk pengambilan keputusan.
  • Contohnya pada tabel transaksi penjualan, produk yang terjual dalam tabel tersebut akan ditulis/disimpan sebagai kode produk, bukan nama produknya karena nama produknya ada di tabel master produk.
  • Jika kita ingin mencari nama produk apa yang terjual tersebut, maka kita harus mencocokkan kode produk yang ada di tabel transaksinya ke tabel master.
  • Dalam bahasa SQL, kita sedang menggabungkan (JOIN) tabel transaksi penjualan dengan tabel master produk, dengan kolom kunci untuk untuk penggabungan kedua tabel tersebut (ON) yaitu kode produk.
  • Baru setelah kita JOIN kedua tabel tersebut, akan dihasilkan informasi yang lebih berguna untuk pengambilan keputusan, misalnya jumlah penjualan per produk.

Contoh dalam menerapkan fungsi JOIN adalah menggabungkan semua kolom yang ada pada daftar jurnal dengan bagan akun

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut:

select * from principal_accounting.jurnal2019

join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

Menu join daftar jurnal dengan bagan akun (Dokpri)
Menu join daftar jurnal dengan bagan akun (Dokpri)

6.16 Pada tahap selanjutnya,  untuk mendapatakan daftar transaksi suatu akun pada hal ini yang ingin dimunculkan adalah misalnya pada akun "Biaya Entertainment",

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut:

select * from principal_accounting.jurnal2019

join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

where bagan_akun.nama_akun like '%Biaya Entertainment%' 

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

Biaya Entertainment (Dokpri)
Biaya Entertainment (Dokpri)

6.17 Pada langkah selanjutnya adalah mendapatkan data pada daftar jurnal yang dicatat menggunakan akun yang tidak terdaftar pada bagan akun.

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut:

select * from principal_accounting.jurnal2019

join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

where nama_akun is null

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu join, akun yang tidak terdaftar pada bagan akun. (Dokpri)
menu join, akun yang tidak terdaftar pada bagan akun. (Dokpri)

Setelah dilakukan execute script SQl ternyata tidak ada data yang muncul, artinya perintah yang dilakukan kurang tepat. Langkah yang kurang tepat tersebut adalah karena kita hanya memasukkan perintah JOIN saja yang dibaca oleh SQL sebagai tipe inner JOIN yang hanya memunculkan record pada daftar jurnal yang memiliki pasangan pada bagan akun, sedangkan yang kita harus lakukan saat ini menentukan jenis JOIN nya. Jenis JOIN yang tepat untuk perintah ini adalah Left JOIN yaitu mengambil seluruh data pada tabel jurnal baik ada pasangan pada bagan akun maupun tidak. Maka perintah yang dimasukkan adalah sebagai berikut :

select * from principal_accounting.jurnal2019

left join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

where nama_akun is null

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu left join, akun yang tidak terdaftar pada bagan akun. (Dokpri)
menu left join, akun yang tidak terdaftar pada bagan akun. (Dokpri)

Hal-hal yang perlu diperhatikan saat menjalankan fungsi JOIN :

  • Jika ingin menggabungkan dua tabel (Tabel A dan Tabel B) dapat digunakan syntax JOIN.
  • Penggabungan dilakukan menggunakan key yang sama dari dua tabel tersebut menggunakan syntax ON.
  • Ada beberapa jenis JOIN, yang paling umum adalah Inner JOIN, Left JOIN, dan Right JOIN.
  • Jika ingin menggabungkan lebih dari dua tabel, maka penggabungan dilakukan secara bertahap.

6.18 Pada tahap selanjutnya adalah menggunakan fungsi Right JOIN yaitu fungsi yang mengambil seluruh data pada bagan akun baik ada pasangan pada daftar jurnal maupun tidak.

Script yang diinput untuk menjalankan fungsi tersebut adalah sebagai berikut:

select * from principal_accounting.jurnal2019

right join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

where no_bukti is null

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu right join (Dokpri)
menu right join (Dokpri)

Beberapa hal-hal yang perlu diperhatikan sebagai berikut:

Pemberian nama alias

  • Nama tabel maupun kolom yang dipilih bisa diberikan nama alias
  • Tujuannya, bisa untuk memperpendek nama tabel/kolom yang dipilih, atau juga untuk menghindari duplikasi jika ada nama tabel/kolom yang sama. Bisa juga agar nama kolom mudah diingat.
  • Nama alias diberikan menggunakan syntax AS

LIKE dan IS NULL

LIKE

  • LIKE bisa berfungsi seperti search, dika diaplikasikan pada kolom dengan format text (varchar)
  • MySQL menyediakan 2 wildcard characters untuk menyusun kondisi menggunakan LIKE, yaitu % dan _
  • % digunakan untuk merepresentasikan karakter sebelum atau sesudah keyword, tanpa ada batasan jumlah. Semetara _ hanya 1 karakter, sebelum atau sesudah keyword.

IS NULL

  • IS NULL sebetulnya merupakan syntax yang pada dasarnya digunakan untuk melihat apakah nilai suatu kolom NULL. Dalam database , NULL berbeda dengan 0, atau karakter text berisi spasi (seperti ini “ ”)\
  • Jika suatu kolom bernilai NULL, maka memang kolom tersebut tidak ada isinya apa-apa.
  • IS NULL menjadi senjata yang cukup ampuh jika digabung dengan Left JOIN, yaitu untuk mencari record yang tidak ada pasangannya ketika dilakukan JOIN dengan metode LEFT JOIN. Karena LEFT JOIN akan menghasilkan kolom kosong (NULL) pada record yang tidak ada pasangannya ketika dilakukan JOIN.

6.19 Pada fungsi selanjutnya yang akan diterapkan pada praktik audit kali ini adalah CONDITIONAL. Fungsi CONDITIONAL bertujuan untuk menghasilkan nilai berdasarkan kondisi tertentu. Jika pada pengujian sebelumnya terdapat jurnal transaksi yang dicatat menggunakan akun yang tidak terdapat pada bagan akun,buat kesimpulan.

Adapun untuk membuat kesimpulan perintah yang dimasukkan adalah sebagai berikut :

select * ,

case

 when nama_akun is null then 'kode akun tidak terdapat di bagan akun'

 else 'bukan anomali'

end as kesimpulan

from principal_accounting.jurnal2019

left join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

where nama_akun is null

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

Menu conditional (Dokpri)
Menu conditional (Dokpri)

Hal yang perlu diperhatikan dalam fungsi CONDITIONAL

  • Untuk membuat kolom baru berdasarkan kondisi tertentu digunakan syntax CASE.
  • Masing-masing kondisi tersebut kemudian dirumuskan logikanya menggunakan syntax WHEN atau ELSE.
  • Nilai jika kondisi tersebut benar ditentukan menggunakan syntax THEN.
  • Jika sudah selesai, maka diakhiri dengan menggunakan syntax END.

6.20 Selanjutnya apabila ingin menggabungkan beberapa teks pada kesimpulan, maka menggunakan fungsi CONCAT. CONCAT adalah syntax untuk menyambungkan beberapa teks menjadi satu. Hasil output dari CONCAT adalah berupa teks. Adapun perintah yang dimasukkan untuk menjalankan fungsi tersebut adalah sebagai berikut :

select * ,

case

when nama_akun is null then concat('nomor bukti',no_bukti,'memiliki kode akun',kode_akun,'yang tidak tedapat dibagan akun')

else 'bukan anomali'

end as kesimpulan

from principal_accounting.jurnal2019

left join principal_accounting.bagan_akun

on bagan_akun.kode = jurnal2019.kode_akun

where nama_akun is null

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu concat (Dokpri)
menu concat (Dokpri)

6.21 Pada fungsi selanjutnya yang akan diterapkan adalah Summary dan Aggregation, yaitu pencacahan berdasarkan kolom tertentu. Adapun contoh fungsi dari Summary dan Aggregation adalah sebagai berikut :

  • Menghitung berapa nilai rata-rata transaksi penjualan suatu produk pada suatu periode tertentu.
  • Menentukan produk mana yang yang paling banyak terjual pada suatu periode tertentu.
  • Menghitung berapa saldo akun kas dan bank per akhir suatu periode.

Beberapa hal yang perlu diperhatikan dalam fungsi Summary dan Aggregation adalah :

Summary :

COUNT = Pencacahan

SUM = Jumlah Total

MAX = NIlai Terbesar

MIN = Nilai Terkecil

AVG = Nilai Rata-Rata

Aggregation :

  • Mengelompokkan data berdasarkan kolom tertentu.
  • Kolom yang dijadikan dasar pengelompokkan ditentukan dengan syntax GROUP BY.
  • Setelah dikelompokkan kolom lain dapat dilakukan summary

Fungsi pertama yang akan dijalankan adalah menghitung jumlah record/baris pada daftar jurnal. Adapun fungsi yang digunakan adalah COUNT. Perintah yang dimasukkan adalah sebagai berikut :

select count(*) from principal_accounting.jurnal2019

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu count (Dokpri)
menu count (Dokpri)

Langkah selanjutnya mencari nilai penjualan tertinggi dengan memasukkan perintah sebagai berikut :

select max(kredit) as penjualan_tertinggi

from principal_accounting.jurnal2019

where kode_akun = 41001

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu max, akun penjualan (Dokpri)
menu max, akun penjualan (Dokpri)

Selain menentukan nilai penjualan tertinggi kita juga dapat mencari nilai penjualan terendah, rata-rata nilai penjualan, dan total nilai penjualan dengan memasukkan perintah sebagai berikut :

select max(kredit) as penjualan_tertinggi,

min(kredit) as penjualan_terendah,

avg(kredit) as rata_rata_penjualan,

sum(kredit) as total_nilai_penjualan

from principal_accounting.jurnal2019

where kode_akun = 41001

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

Menu max, min, avg, sum akun penjualan (Dokpri)
Menu max, min, avg, sum akun penjualan (Dokpri)

6.22 Pada langkah selanjutnya adalah melakukan pengujian untuk mengetahui apakah pengendalian aplikasi sudah memadai sehingga total debet dan kredit pada daftar jurnal sudah balance. Adapun perintah yang dimasukkan adalah sebagai berikut :

select

sum(debet) as jumlah_debet,

sum(kredit) as jumlah_kredit

from principal_accounting.jurnal2019

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menu sum jumlah debet dan jumlah kredit (Dokpri)
menu sum jumlah debet dan jumlah kredit (Dokpri)

6. 23 Setelah didapatkan hasil dari perintah tersebut diketahui bahwa jumlah debet dan kredit pada daftar jurnal tidak balance. Kemudian untuk menambahkan keterangan hasil pengujian kita bisa memasukkan perintah sebagai berikut :

select

sum(debet) as jumlah_debet,

sum(kredit) as jumlah_kredit,

case

 when sum(debet) != sum(kredit) then "jurnal tidak balance"

 else "jurnal balance"

end as kesimpulan_audit

from principal_accounting.jurnal2019

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

daftar jurnal tidak balance (Dokpri)
daftar jurnal tidak balance (Dokpri)

Langkah selanjutnya adalah melakukan pengujian lanjutan untuk menemukan jurnal mana saja yang tidak balance. Adapun perintah yang dimasukkan adalah sebagai berikut :

select

no_bukti,

sum(debet) as jumlah_debet,

sum(kredit) as jumlah_kredit

from principal_accounting.jurnal2019

group by principal_accounting.jurnal2019.no_bukti

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

jurnal mana saja yang tidak balance (Dokpri)
jurnal mana saja yang tidak balance (Dokpri)

Kemudian untuk menambahkan kesimpulan hasil pengujian maka perintah yang dimasukkan adalah sebagai berikut :

select

no_bukti,

sum(debet) as jumlah_debet,

sum(kredit) as jumlah_kredit,

case

 when sum(debet) != sum(kredit) then "jurnal tidak balance"

 else "jurnal balance"

end as kesimpulan

from principal_accounting.jurnal2019

group by principal_accounting.jurnal2019.no_bukti

having sum(debet) != sum(kredit)

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

kesimpulan hasil pengujian (Dokpri)
kesimpulan hasil pengujian (Dokpri)

6.24 Untuk praktik audit selanjutnya adalah mengaudit data penjualan dengan menggunakan database bigmom_wholecake terdiri dari (master_invoice, produk_master, sales_detail, customer_master, sales_order) seperti tampilan di bawah ini :

database bigmom_wholecake (Dokpri)
database bigmom_wholecake (Dokpri)

Fungsi pertama yang dilakukan adalah memunculkan seluruh data invoice yang ada pada database. Adapun perintah yang dimasukkan adalah sebagai berikut :

select * from bigmom_wholecake.master_invoice

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

data invoice yang ada pada database (Dokpri)
data invoice yang ada pada database (Dokpri)

6.25 Selanjutnya menjalankan fungsi untuk mendapatkan data 100 Invoice dengan nilai transaksi terbesar sebagai sampel. Adapun perintah yang dimasukkan adalah sebagai berikut :

select * from bigmom_wholecake.master_invoice

order by jumlah desc

limit 100

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

data 100 Invoice dengan nilai transaksi terbesar sebagai sampel (Dokpri)
data 100 Invoice dengan nilai transaksi terbesar sebagai sampel (Dokpri)

6.26 Pada langkah selanjutnya adalah menggabungkan data pada sales detail dengan produk master dan sales order. Adapun perintah yang dimasukkan adalah sebagai berikut :

select *

from bigmom_wholecake.sales_detail sd

left join bigmom_wholecake.produk_master pm on sd.kode_produk = pm.kode_produk

left join bigmom_wholecake.sales_order so on so.no_do

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

menggabungkan data pada sales detail dengan produk master dan sales order (Dokpri)
menggabungkan data pada sales detail dengan produk master dan sales order (Dokpri)

6.27 Setelah berhasil mendapatkan data yang akan dipergunakan dalam proses audit langkah selanjutnya adalah menentukan periode yang akan diuji. Dalam hal ini kita akan mengaudit data di Bulan 5 atau Bulan Mei, maka perintah yang dimasukkan adalah sebagai berikut :

select sd.kode_produk, pm.nama_produk, so.tgl_do, sd.quantity

from bigmom_wholecake.sales_detail sd

left join bigmom_wholecake.produk_master pm on sd.kode_produk = pm.kode_produk

left join bigmom_wholecake.sales_order so on so.no_do = sd.no_do

where month (so.tgl_do) = 5

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

data so.tgl_do bulan 5 Mei (Dokpri)
data so.tgl_do bulan 5 Mei (Dokpri)

Setelah muncul data yang kita inginkan kemudian data difilter berdasarkan kode dan nama produk, serta memunculkan jumlah produk yang terjual selama Bulan Mei. Adapun perintah yang dimasukkan adalah sebagai berikut :

select sd.kode_produk, pm.nama_produk, sum(sd.quantity)

from bigmom_wholecake.sales_detail sd

left join bigmom_wholecake.produk_master pm on sd.kode_produk = pm.kode_produk

left join bigmom_wholecake.sales_order so on so.no_do = sd.no_do

where month (so.tgl_do) = 5

group by sd.kode_produk, pm.nama_produk

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

memunculkan jumlah produk yang terjual selama Bulan Mei (Dokpri)
memunculkan jumlah produk yang terjual selama Bulan Mei (Dokpri)

5.28 Selanjutnya untuk mengurutkan data penjualan dari yang terbesar ke yang terkecil maka fungsi yang dimasukkan adalah sebagai berikut :

 select sd.kode_produk, pm.nama_produk, sum(sd.quantity) kuantitas_terjual

from bigmom_wholecake.sales_detail sd

left join bigmom_wholecake.produk_master pm on sd.kode_produk = pm.kode_produk

left join bigmom_wholecake.sales_order so on so.no_do = sd.no_do

where month (so.tgl_do) = 5

group by sd.kode_produk, pm.nama_produk

order by kuantitas_terjual desc

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

data penjualan dari yang terbesar ke yang terkecil bulan Mei (Dokpri)
data penjualan dari yang terbesar ke yang terkecil bulan Mei (Dokpri)

Kemudian, apabila ingin menentukan 5 nilai penjualan terbesar selama Bulan Mei maka perintah yang dimasukkan adalah sebagai berikut :

select sd.kode_produk, pm.nama_produk, sum(sd.quantity) kuantitas_terjual

from bigmom_wholecake.sales_detail sd

left join bigmom_wholecake.produk_master pm on sd.kode_produk = pm.kode_produk

left join bigmom_wholecake.sales_order so on so.no_do = sd.no_do

where month (so.tgl_do) = 5

group by sd.kode_produk, pm.nama_produk

order by kuantitas_terjual desc

limit 5

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

5 nilai penjualan terbesar selama Bulan Mei (Dokpri)
5 nilai penjualan terbesar selama Bulan Mei (Dokpri)

Beberapa hal yang perlu diperhatikan pada ORDER BY dan LIMIT

ORDER BY

  • Berfungsi untuk mengurutkan data.
  • Ada 2 jenis yaitu ASC dan DESC. ASC mengurutkan data dari yang paling kecil ke yang paling besar, sedangkan DESC mengurutkan data dari yang paling besar ke yang paling kecil.

LIMIT

  • LIMIT digunakan untuk membatasi beberapa baris dari hasil query yang akan ditampilkan.

5.29 Fungsi selanjutnya yang akan dipraktikkan adalah Sub Query. Sub Query dilakukan untuk menganalisis data secara bertahap. Satu tahapan analisis dilakukan menggunakan query tertentu, yang hasilnya akan digunakan untuk tahapan analisis berikutnya. Untuk mendapatakan list invoice yang nilainya di atas rata-rata nilai penjualan yang akan digunakan sebagai sampel audit langkah pertama yang dilakukan adalah mencari nilai rata-rata dari total penjualan pada invoice tersebut dengan memasukkan perintah sebagai berikut :

select avg(jumlah) from bigmom_wholecake.master_invoice mi

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

Sub Query, rata-rata dari total penjualan pada invoice (Dokpri)
Sub Query, rata-rata dari total penjualan pada invoice (Dokpri)

Selanjutnya setelah didapat nilai rata-rata penjualan dari total invoice langkah yang dilakukan adalah menentukan invoice mana saja yang nilainya di atas rata-rata nilai penjualan. Adapun perintah yang dimasukkan adalah sebagai berikut :

select * from bigmom_wholecake.master_invoice mi

where mi.jumlah >

(

select avg(jumlah) from bigmom_wholecake.master_invoice mi

)

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

Inovoice diatas rata-rata nilai penjualan (Dokpri)
Inovoice diatas rata-rata nilai penjualan (Dokpri)

5.30 Selanjutnya untuk melakukan pengujian apakah terdapat total sales yang ada pada sales order yang tidak sesuai dengan sales detailnya maka perintah yang dimasukkan adalah sebagai berikut :

select * from bigmom_wholecake.sales_order so

left join

(select no_do, sum(total) nilai_penjualan_detail from bigmom_wholecake.sales_detail sd

group by no_do) sales_detail_summary

on so.no_do = sales_detail_summary.no_do

where so.total_sales != sales_detail_summary.nilai_penjualan_detail

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

total sales yang ada pada sales order yang tidak sesuai dengan sales detailnya (Dokpri)
total sales yang ada pada sales order yang tidak sesuai dengan sales detailnya (Dokpri)

Dari hasil pengujian diketahui bahwa terdapat selisih antara sales order dengan sales detail pada hampir keseluruhan data. Hal ini disebakan karena selisih PPN yang harusnya dimasukkan dalam perintah pengujian. Untuk mendapatkan data yang lebih tepat terkait data yang memiliki selisih antara sales order dan sales detail maka perintah yang dimasukkan adalah sebagai berikut :

select * from bigmom_wholecake.sales_order so

left join

(select no_do, sum(total) nilai_penjualan_detail from bigmom_wholecake.sales_detail sd

group by no_do) sales_detail_summary

on so.no_do = sales_detail_summary.no_do

where so.total_sales-so.ppn != sales_detail_summary.nilai_penjualan_detail

Kemudian klik execute SQL script, maka akan muncul tampilan seperti di bawah ini :

selisih antara sales order dengan sales detail (Dokpri)
selisih antara sales order dengan sales detail (Dokpri)

Dari hasil data di atas diketahui masih ada data yang memiliki selisih antara sales order dan sales detail yang bukan disebabkan dari selisih angka PPN.

Daftar referensi:

Daftar referensi:

Badan Pemeriksa Keuangan Republik Indonesia (BPK-RI). (2021). Buku Peserta Diklat TABK Untuk Pemeriksaan LKPP/LKKL/LBUN. Jakarta: Badiklat BPK RI.

Utomo, St. Dwiarso Utomo dan Suhartono, E. (2018). Pengauditan Pengolahan Data Elektronik (PDE ). Jakarta: Salemba Empat.

Data, Warteg. “Teknik Audit Berbantuan Komputer (TABK) Menggunakan SQL” Youtube, diunggah oleh Warteg Data, 21 Juni 2021

https://codingstudio.id/blog/mengenal-sql/

https://dbeaver.io/

https://laragon.org/download/index.html

https://codingstudio.id/blog/mengenal-sql/

HALAMAN :
Mohon tunggu...

Lihat Konten Ruang Kelas Selengkapnya
Lihat Ruang Kelas Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun