Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

Sebelum mulai membangun model permasalahan, tentunya kita terlebih dahulu harus mengetahui jenis-jenis model yang ada. Terdapat enam jenis model yang umum digunakan untuk menggambarkan masalah dalam dunia algoritma / pemrograman, yaitu:

  1. Model Numerik

    Model numerik merupakan model matematis yang paling sederhana, yang dibuat untuk mendeskripsikan jumlah atau ukuran dari sesuatu. Model numerik menggunakan angka (1, 2, 3, dst) untuk mendeskripsikan suatu hal. Misalkan gambar di bawah:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Model Numerik Sapi

    memberikan informasi sejumlah sapi yang ada di dalam kotak. Model numerik paling sederhana dan informatif yang dapat kita ambil dari gambar tersebut adalah ‘Lima ekor Sapi’ atau ‘Lima Sapi’.

  2. Model Simbolik

    Jika kita mengembangkan model numerik lebih jauh, kita kemudian dapat menambahkan simbol-simbol baru untuk melakukan pemrosesan terhadap angka-angka yang ada pada model numerik. Terdapat empat buah simbol dasar untuk pemrosesan angka, yaitu \(+, -, \times, \text{dan} \div\). Simbol \(=\) juga digunakan untuk menandakan kesamaan nilai antara ruas kiri dan ruas kanan dari \(=\).

    Note

    Simbol \(\times \text{dan} \div\) akan dituliskan sebagai \(*\) dan \(/\) pada tulisan ini, karena kedua simbol tersebut lebih umum digunakan pada lingkungan ilmu komputer.

    Jadi, sebuah ekspresi matematika seperti ini:

    \[10 = 5 * 2\]

    dapat dikatakan adalah sebuah model simbolik. Tentunya operator-operator numerik yang disebutkan sebelumnya memiliki aturan tertentu untuk beropearsi. Aturan-aturan umum yang kita temui untuk operator numerik yaitu:

    1. Hukum Kumulatif, di mana \(a + b = b + a\) dan \(a * b = b * a\).
    2. Hukum Asosiatif, di mana \(a + (b + c) = (a + b) + c\) dan \(a * (b * c) = (a * b) * c\).
    3. Hukum Distribusi, di mana \(a * (b + c) = (a * b) + (a * c)\).
    4. Hukum Invers, yaitu \(a + (-a) = 0\) dan a * frac{1}{a} = 1.
    5. Hukum Identitas, yaitu \(a + 0 = a$ dan $a * 1 = a\).
    6. Perkalian dengan 0, yaitu \(a * 0 = 0\).

    Penjelasan mengenai kegunaan dan cara kerja dari hukum-hukum tersebut tidak akan dibahas lagi, karena dianggap telah diketahui oleh pembaca. Yang perlu diperhatikan adalah bagaimana kita menuliskan simbol-simbol seperti $a$ dan $b$, untuk melambangkan semua bilangan-bilangan yang mengikuti hukum-hukum di atas. Simbol-simbol yang dapat melambangkan bilangan atau nilai lain secara generik seperti ini dikenal dengan nama variabel.

    Sebuah variabel merupakan simbol yang digunakan untuk merepresentasikan nilai yang dapat berubah kapanpun, tergantung dari nilai yang kita berikan kepada variabel tersebut. Variabel digunakan dalam model simbolik untuk mewakili nilai-nilai yang dapat berubah sewaktu-waktu, misalnya nilai yang harus dibaca dari masukan pengguna atau nilai yang diambil secara acak. Sebuah model bahkan dapat terdiri dari hanya variabel saja, misalnya model matematika untuk menghitung luas sebuah persegi panjang dapat dituliskan seperti berikut:

    \[L = p * l\]

    di mana \(p\) dan \(l\) mewakili panjang dan lebar persegi panjang, yang nilainya selalu berbeda-beda, tergantung dengan persegi panjang yang akan dihitung luasnya. Nilai \(L\), yang merepersentasikan luas persegi panjang, sendiri bergantung kepada nilai \(p\) dan \(l\), sehingga kita tidak akan mendapatkan nilai \(L\) yang konstan.

    Deklarasi variabel sendiri dilakukan dengan menggunakan perintah $let$, seperti berikut:

    \[\text{let }L = \text{Luas Persegi}\]

    Selain model-model dengan variabel, tentunya kita juga memiliki model-model yang memiliki bilangan konstan yang tidak berubah, misalnya untuk menghitung luas segitiga:

    \[L = \frac{1}{2} * a * t\]

    atau model untuk menghitung keliling lingkaran:

    \[K = 2 * \pi * r\]

    Nilai-nilai yang tidak pernah berubah pada kedua model di atas (seperti \(2\), \(\frac{1}{2}\), dan \(\pi\)) dikenal dengan nama konstanta. Perhatikan bahwa konstanta dapat mencakup angka “mentah” seperti \(2\) ataupun simbol yang dikenal secara luas seperti \(\pi\). Konstanta biasanya dideklarasikan pada awal model atau kamus data program, dan tidak pernah berubah nilainya selama model tersebut digunakan.

    Dari berbagai komponen dan contoh model simbolik yang telah kita lihat, dapat disimpulkan bahwa model simbolik merupakan model yang menggambarkan interaksi dan operasi antar komponen numerik secara abstrak. Abstraksi dari komponen numerik (angka) pada model simbolik dilakukan dengan menggunakan variabel dan konstanta.

  3. Model Spasial

    Tidak semua permasalahan yang diselesaikan oleh matematika atau komputer selalu berhubungan langsung dengan angka. Terkadang kita menjumpai juga masalah-masalah yang berhubungan dengan representasi dunia nyata seperti perhitungan jarak dua objek atau pencarian jalur terdekat untuk kendaraan. Secara tradisional, model untuk penyelesaian masalah seperti ini digambarkan dengan peta, graph, dan gambar-gambar teknis lainnya.

    Untuk dunia komputer, model-model dunia nyata biasanya digambarkan dengan menggunakan koordinat. Sistem koordinat yang paling populer digunakan dalam hal ini adalah koordinat kartesius. Koordinat kartesius merupakan sistem koordinat yang menggambarkan sebuah nilai riil di dalam kumpulan nilai yang direpresentasikan dengan sebuah garis. Sistem kartesius dapat digambarkan dalam banyak dimensi, sesuai dengan jumlah kumpulan nilai yang digambarkan. Untuk memudahkan pengertian, gambar di bawah memperlihatkan contoh sistem koordinat kartesius dua dimensi:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Sistem Koordinat Kartesius

    Untuk menyederhanakan masalah, mayoritas algoritma dan solusi yang dikembangkan dalam kuliah ini akan dilakukan dengan menggunakan sistem kartesius dua dimensi. Sistem tiga dimensi dan satu dimensi dianggap dapat diimplementasikan menggunakan konsep yang sama dengan sistem dua dimensi.

    Data pada sistem kartesius dua dimensi dapat direpresentasikan dalam bentuk sebuah titik, yaitu kombinasi antara sumbu x dan sumbu y:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Titik pada Kartesius

    atau sebuah garis, yang direpresentasikan dengan sebuah fungsi matematika:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Garis pada Kartesius

    Dalam prakteknya, kita juga akan sering memerlukan informasi arah pergerakan dari sebuah garis. Untuk merepresentasikan hal tersebut, kita dapat menambahkan sebuah tanda panah pada garis:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Garis Berarah pada Kartesius

    dan yang terakhir, kita dapat juga merepresentasikan sebuah bentuk atau bidang, menggunakan kombinasi beberapa garis:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Bidang pada Kartesius

    Untuk melakukan pemrosesan data-data yang ada di dalam sistem kartesius, kita dapat melakukan operasi terhadap titik-titik yang merepresentasikan data tersebut. Titik-titik direpresentasikan dalam bentuk matriks atau array. Misalnya, segitiga yang ada pada gambar di atas dapat direperesentasikan sebagai matriks berikut:

    \[\begin{split}\begin{bmatrix} -3 & 4 & 1 \\ 1 & 3 & -2 \end{bmatrix}\end{split}\]

    Dan kemudian tentunya kita dapat melakukan operasi-operasi matriks untuk melakukan berbagai hal terhadap segitiga tersebut.

  4. Model Logis

    Model logis merupakan cara memodelkan masalah berdasarkan logika matematika. Terdapat empat cabang utama dari logika matematika, yaitu teori himpunan, teori model, teori rekursif, dan teori pembuktian. Masing-masing teori memiliki cara pemodelan yang berbeda-beda, untuk merepresentasikan masalah yang berbeda. Tulisan ini hanya akan membahas pemodelan logis pada bidang himpunan, dan relevansinya dengan salah satu sistem yang paling populer di dunia komputer: basis data.

    Himpunan, seperti namanya, memodelkan sekumpulan entitas yang memiliki atribut (ciri khas) tertentu. Dalam menentukan atribut tujuan dari pengunaan himpunan lebih penting daripada kesamaan ciri khas dari entitas, sehingga terkadang atribut dari elemen-elemen dalam himpunan tidak selalu dapat dilihat dengan mudah. Misalnya, kita dapat mendeklarasikan sebuah himpunan dengan nama “Himpunan Barang dalam Handbag” dengan isi berupa “handphone, gunting kuku, alat make-up, tissue, dompet, alat tulis, dan karet gelang”. Secara sekilas semua entitas yang ada di dalam himpunan tidak terlihat memiliki atribut yang jelas, meskipun himpunan ini adalah himpunan yang valid.

    Terdapat dua aturan khusus yang harus dipenuhi oleh sebuah himpunan, yaitu:

    1. Himpunan harus didefinisikan dengan tepat. Sebuah entitas yang ada di dunia hanya dapat memiliki dua status berkaitan dengan himpunan yang didefinisikan: TERMASUK dalam himpunan atau TIDAK TERMASUK. Tidak boleh ada elemen yang bersifat ambigu, dalam arti tidak jelas masuk ke dalam himpunan atau tidak. Misalnya, kita tidak dapat mendefinisikan sebuah himpunan yang berisi “Orang Tinggi” karena tidak terdapat definisi dari “tinggi” yang jelas. Apakah 170 cm termasuk tinggi? 180?

      Yang dapat kita definisikan ialah himpunan yang berisi “Orang dengan tinggi badan di atas 175 cm”, sehingga tidak terdapat perdebatan mengenai apakah 170 cm termasuk tinggi atau tidak.

    2. Setiap elemen dalam himpunan harus unik. Sebuah himpunan tidak boleh memiliki nilai ganda. Aturan ini menyebabkan banyak himpunan yang ada di dunia nyata tidak dapat direpresentasikan dengan himpunan matematika. Misalnya, kita dapat saja memiliki himpunan sendok yang terdiri dari banyak sendok identik. Dalam himpunan matematis, hal ini tidak diperbolehkan. Aturan ini juga menyebabkan penggabungan himpunan menjadi sedikit berbeda. Himpunan berisi angka 1, 2, 3, 4 jika digabungkan dengan himpunan 3, 4, 5, 6 akan menghasilkan himpunan 1, 2, 3, 4, 5, 6. Ide “nilai unik” untuk setiap elemen dalam himpunan ini lah yang menjadi dasar dari pengindeksan dan primary key dari basis data relasional.

    Pemodelan himpunan sendiri biasanya dilakukan dengan menggunakan diagram Venn. Gambar di bawah memberikan contoh sebuah diagram Venn, yang menggambarkan himpunan dari segi empat:

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Contoh Diagram Venn

    Dari gambar diagram Venn di atas, kita dapat melihat bagaimana seluruh persegi adalah juga persegi panjang, dan baik persegi maupun persegi panjang adalah merupakan segi empat. Jika kita menambahkan jenis segi empat lainnya, misalnya trapesium, dapatkah anda menggambarkan diagram Venn-nya?

  5. Model Statistik

    Terdapat banyak permasalahan di dunia nyata yang tidak dapat dimodelkan dengan mudah menggunakan keempat model matematis yang telah kita bahas sebelumnya. Terkadang kita dihadapkan dengan permasalahan yang sangat kompleks, sampai-sampai memodelkan dan menganalisa setiap situasi yang mempengaruhi masalah tersebut akan menjadi sangat mahal, memerlukan banyak orang, dan banyak waktu.

    Sebagai contoh, bayangkan jika kita diminta untuk melakukan prakiraan cuaca. Dengan menggunakan model matematis yang ada, kita akan memerlukan sangat banyak kalkulasi, yang saling mempengaruhi satu sama lainnya. Praktisnya, kita harus mampu melakukan simulasi terhadap seluruh elemen yang ada di bumi untuk melakukan prakiraan cuaca dengan tepat. Hal ini tentunya sangat tidak efektif untuk dilakukan. Lalu bagaimana para ahli sekarang melakukan prakiraan cuaca?

    Jawabannya adalah model statistik. Dengan mengumpulkan sampel data cuaca pada masa lalu, kita dapat melihat kecenderungan atau tren cuaca yang akan terjadi sesuai dengan keadaan cuaca kita sekarang. Pada dasarnya, sebuah model statistik melakukan analisa tren terhadap sampel data yang relevan untuk meniadakan ketidak pastian atau keadaan khusus. Dengan mengambil keadaan rata-rata dari sekumpulan data, kita akan mendapatkan kecenderungan dari sebuah keadaan jika dihadapkan dengan keadaan umumnya.

    Tuliskan beberapa hal yang harus diingat atau diperhatikan dalam menuliskan himpunan

    Contoh Model Statistik

    Gambar di atas menunjukkan contoh dari model statistik. Ingat, bahwa kesimpulan yang dapat diambil dari sebuah model statistik hanyalah berupa kecenderungan atau tren. Kita tidak bisa membuktikan sesuatu atau memberikan hasil yang pasti menggunakan statistik. Dapat dikatakan bahwa kalimat seperti “statistik membuktikan ...” pada tulisan ilmiah populer kurang tepat.

  6. Pseudocode

    Semua model matematis yang telah dijelaskan sebelumnya merupakan model matematika yang digunakan dan dimengerti oleh manusia. Jika ingin menggunakan model matematis tersebut di komputer, terlebih dahulu kita harus melakukan konversi menjadi kode program yang dapat dibaca dan dimengerti oleh komputer. Kode program sendiri dimodelkan dengan banyak cara, dan yang paling relevan dengan algoritma ialah pseudocode.

    Pseudocode memberikan langkah-langkah penyelesaian masalah dengan menggunakan bahasa manusia, dengan sedikit batasan sesuai dengan konstruk logika komputer. Pseudocode tidak memiliki konstruk untuk bahasa pemrograman tertentu, sehingga pseudocode harus bisa diimplementasikan dengan bahasa pemrograman apapun. Berikut adalah contoh pseudocode sederhana:

    for i = 1 to 5 do print i end for

    Untuk penjelasan lebih mendetail tentang pseudocode, silahkan baca kembali bahan kuliah untuk Pemrograman Dasar.

Kita telah melihat model matematis yang umum digunakan untuk menyelesaikan masalah. Pertanyaan selanjutnya tentunya adalah: kapan kita menggunakan model A dan kapan menggunakan model B? Bagaimana membuat model A menjadi kode program yang dapat dijalankan oleh komputer?