Most useful free sites that are dating apps for singles on a tight budget

Most useful free sites that are dating apps for singles on a tight budget

Normally as rated by making use of website that is dating? Livechat makes it possible to trial try elitesingles by free sign up free on line. See the e-mail and dating dating on zoosk. Internet sites is the christian that is top and personals.

Enjoy a free trial offer – disabled dating free trial offer available.

Make connections with free engineering applications for the time callers can chat solution – okcupid is match fortunately for singles are searching for more onlinedatingtrials. Continue reading Most useful free sites that are dating apps for singles on a tight budget

Jual Tracker Mobil dan Engine

Main Article Points to Why People Gave Up on Gambling

Gambling online is any type of gambling conducted via the internet. This includes casinos, virtual poker and online sports betting. The internet has been a great boon to online gambling. The internet has provided a safe, easy and reliable way to conduct a lot of different kinds of gambling activities. Continue reading Jual Tracker Mobil dan Engine

Akhdani Tech Talk 2021 Series #7 – Penerapan Algoritma Naive Bayes pada Klasifikasi Data Penerimaan Pegawai

PENERAPAN ALGORITMA NAIVE BAYES PADA KLASIFIKASI DATA PENERIMAAN PEGAWAI

oleh: Maulana, Hardi, Akbar

Apa itu Klasifikasi Naive Bayes ?

Naïve Bayes Classifier merupakan Metode pengklasifikasian dg menggunakan metode probabilitas dan statistik yg dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi peluang di masa depan berdasarkan pengalaman di masa sebelumnya sehingga dikenal sebagai Teorema Bayes. Klasifikasi Naive Bayes diasumsikan bahwa ada atau tidak ciri tertentu dari sebuah kelas tidak adahubungannya dengan ciri dari kelas lainnya.

Alasan Memilih Algoritma Klasifikasi Naive Bayes ?

  • Naive Bayes Classifier bekerja sangat baik dibanding dengan model classifier lainnya. Hal ini dibuktikan oleh Xhemali , Hinde Stone dalam jurnalnya “Naïve Bayes vs. Decision Trees vs. Neural Networks in the Classification of Training Web Pages” mengatakan bahwa “Naïve Bayes Classifier memiliki tingkat akurasi yg lebih baik dibandingmodel classifier lainnya”.
  • Penggolong statistik: Melakukan prediksi probabilitas, misalnya: Memprediksi probabilitas keanggotaan kelas
  • Standar: Sekalipun metode Bayesian tidak dapat dilakukan secara komputasional, mereka dpaat memberikan standar pengambilna keputusan yang optimal yang ddapat diukur dengan metode lain.

Kelebihan dan Kekurangan Algoritma Naive Bayes

1. Kelebihan

  • Bisa dipakai untuk data kuantitatif maupun kualitatif
  • Tidak memerlukan jumlah data yang banyak
  • Tidak perlu melakukan data training yang banyak
  • Jika ada nilai yang hilang, maka bisa diabaikan dalam perhitungan.
  • Perhitungannya cepat dan efisien
  • Mudah dipahami
  • Mudah dibuat
  • Pengklasifikasian dokumen bisa dipersonalisasi, disesuaikan dengan kebutuhan setiap orang
  • Jika digunakan dalaam bahasa pemrograman, code-nya sederhana
  • Bisa digunakan untuk klasifikasi masalah biner ataupunmulticlass

2. Kekurangan

  • Apabila probabilitas kondisionalnya bernilai nol, maka probabilitas prediksi juga akan bernilai nol
  • Asumsi bahwa masing-masing variabel independen membuat berkurangnya akurasi, karena biasanya ada korelasi antara variabel yang satu dengan variabel yang lain
  • Keakuratannya tidak bisa diukur menggunakan satu probabilitas saja. Butuh bukti-bukti lain untuk membuktikannya.
  • Untuk membuat keputusan, diperlukan pengetahuan awal atau pengetahuan mengenai masa sebelumnya. Keberhasilannya sangat bergantung pada pengetahuan awal tersebut Banyak celah yang bisa mengurangi efektivitasnya
  • Dirancang untuk mendeteksi kata-kata saja, tidak bisa berupa gambar

skema-naive-bayesGambar 1.1. Skema Naive Bayes

Perancangan Sistem

flowchart-sistemGambar 2.1. Flowchart Sistem

diagram-classGambar 2.2. Diagram Kelas

Implementasi Klasifikasi Naive Bayes dan Rancangan Sistem 

Klasifikasi Naive bayes dibuat menggunakan bahasa pemrograman python yang terintegrasi dengan halaman web yang dibuat berdasarkan rancangan sistem diatas.

data-trainingGambar 3.1. Tabel Data Training

Tabel data training seperti gambar 3.1, data tersebut yang akan diklasifikasi menggunakan algoritma Naive Bayes dan digunakan sebagai pengambil keputusan untuk menentukan lulus atau tidaknya data baru calon pegawai.

halamanGambar 3.2. Halaman Form Input Sistem

dalam halaman web yang dibuat seperti Gambar 3.1. user akan menginput data calon pegawai seperti nama, nilai administrasi, nilai tes 1, nilai tes 2 dan nilai interviewnya. setelah user menginput data calon pegawai, sistem akan menentukan lulus atau tidaknya data calon pegawai berdasarkan hasil klasifikasi data training seperti pada gambar 3.3 dan gambar 3.4.lulus

Gambar 3.3. Tampilan Data Calon Pegawai Lulus

tidak-lulus

Gambar 3.4. Tampilan Data Calon Pegawai Tidak Lulus

Kesimpulan

1. Dengan adanya sistem ini, akan mempermudah pihak panitia penerimaan pegawai dalam memperkirakan calon pegawai yang akan bergabung sehingga panitia bisa mengambil keputusan untuk menerima atau tidak calon pegawai tersebut.

2. Pada algoritma Naive Bayes, semua attribut akan memberikan kontribusinya dalam pengambilan keputusan, dengan bobot atribut yang sama penting dan setiap atribut saling bebas satu sama lain.

Akhdani Tech Talk 2021 Series #6 – Load Test WebRTC

Load Test WebRTC

Oleh: Muhamad Indra Kusmana, Rahmat Hidayat, Rahmat Setiawan

Apa itu WebRTC?

WebRTC (Web Real-TIme Communication) merupakan teknologi yang memungkinkan kita melakukan komunikasi secara real-time menggunakan video dan audio secara langsung pada halaman web. Contoh aplikasi yang menggunakan teknologi ini misalnya Google Meet, Zoom, Microsoft Teams, dan sebagainya.

Teknologi WebRTC

WebRTC menggunakan 3 komponen utama:

  1. Media Stream
    Untuk penggunaan media device dan merepresentasikan data audio dan video kedalam bentuk stream.
  2. Peer Connection
    Memungkinkan 2 atau lebih pengguna terkoneksi secara bersamaan.
  3. Data Channel
    Memungkinkan pengguna mengirim data dalam bentuk text chat, file sharing, dsb secara bersamaan.

Apa itu Load Test?

Load test adalah proses pengujian non-functional suatu aplikasi dimana performa diuji dengan load tertentu. Proses ini dilakukan untuk mengetahui bagaimana suatu aplikasi dapat berjalan pada saat penggunaan dalam jumlah banyak dan waktu bersamaan.

Permasalahan Load Test pada WebRTC

Seperti aplikasi berbasis web yang diakses oleh banyak pengguna pada umumnya, tentunya load test perlu dilakukan pada aplikasi WebRTC untuk mengetahui performa dari aplikasi tersebut saat diakses oleh banyak pengguna pada waktu bersamaan. Sayangnya saat ini tidak banyak tools open source untuk yang tersedia untuk melakukan load test pada WebRTC. Selain itu beberapa tools hanya tersedia untuk aplikasi yang menggunakan platform yang sama dengan tools tersebut.

Tujuan

Sample aplikasi yang kami gunakan pada pengujian kali ini adalah sebuah aplikasi sederhana, dimana terdapat 2 halaman podium dan student. Halaman podium akan melakukan broadcast ke halaman student yang berada pada room yang sama berupa screen sharing dan audio. 

 1-1

Gambar 1.1: tampilan halaman podium

 1-2

Gambar 1.2: tampilan halaman student

Pada pengujian ini, akan dilakukan load test pada aplikasi WebRTC menggunakan Apache Jmeter dan Cypress. Metode pengujian dilakukan dengan cara melakukan sejumlah koneksi pada aplikasi. Hal ini dapat berguna untuk mengetahui berapa jumlah maksimal pengguna yang dapat terhubung pada aplikasi yang dibangun pada waktu bersamaan.

Apache JMeter

JMeter merupakan aplikasi berbasis Java yang didesain untuk melakukan load test mengukur performa suatu aplikasi. Pada pengujian ini, JMeter akan mensimulasikan sejumlah pengguna dengan membuat banyak koneksi menggunakan chrome headless mode.

 2-1

Gambar 2.1: Script untuk melakukan koneksi ke aplikasi WebRTC menggunakan chrome headless mode

2-2

Gambar 2.2: Hasil build dalam bentuk jar

2-3

Gambar 2.3: Konfigurasi pada JMeter dengan sampler menggunakan Java Request

2-4

Gambar 2.4: Hasil eksekusi JMeter(1)

2-5

Gambar 2.5: Hasil eksekusi JMeter (2)

2-6

Gambar 2.6: Console log aplikasi WebRTC menampilkan jumlah subscriber yang terhubung

 

Cypress

Cypress merupakan end-to-end test framework berbasis Javascript. Pada pengujian ini, penggunaan Cypress dilakukan untuk menyimulasikan sejumlah pengguna dengan membuka aplikasi WebRTC pada banyak halaman sekaligus.

3-1

Gambar 3.1: Script untuk melakukan koneksi ke aplikasi WebRTC

3-2

Gambar 3.2: Script untuk melakukan replikasi koneksi

3-3

Gambar 3.3: Hasil eksekusi Cypress

Kesimpulan

Beberapa poin penting pada penggunaan Apache JMeter:

  1. Tidak bisa menggunakan HTTP Sampler, sehingga harus menggunakan Sampler Java Request.
  2. Sulit mencari referensi, karena masih sangat jarang yang melakukan. Referensi terbaik yang didapat: https://www.cnblogs.com/chenkx6/p/13639629.html
  3. Hasil eksekusi pada JMeter menampilkan error meskipun koneksi berhasil dilakukan, sehingga untuk melihat jumlah koneksi yang terhubung dapat dilihat melalui log aplikasi

Poin penting pada penggunaan Cypress:

  1. Selalu terjadi error di sekitar iterasi ke-10. Terdapat tiket terkait issue tersebut pada forum https://github.com/cypress-io/cypress/issues/1305 (status: open saat pengujian dilakukan, 28 Januari 2021)

Akhdani Tech Talk 2021 Series #5 – Test Driven Development

Test Driven Development

Oleh: Agus, Dimas, Moris

Apa itu Test Driven Development (TDD)

Praktek koding yang pertama kali dibuat adalah uji tesnya, lalu membuat koding yang bisa membuat test tersebut lolos. Menagapa harus TDD ? TDD baiknya digunakan apabila Anda ingin menjaga base code dalam waktu yang lama.  TDD itu merupakan proses tertutup yang berulang. Hal ini membuat programmer paham dengan apa yang dia buat. Sebagai contoh berikut adalah gambaran dari proses pembuatan TDD tersebut

Mengapa menggunakan TDD?

Karena TDD adalah cara paling sederhana untuk mencapai kode berkualitas baik dan cakupan pengujian yang baik.

Untuk Jawaban lebih panjang, keep scrolling!

Lima langkah dalam flow TDD

  1. Baca, pahami dan proses permintaan fitur atau fix-bug.
  2. Terjemahkan persyaratan dengan menulis tes unit. Jika memiliki pengaturan hot-reload, unit test akan berjalan dan gagal karena belum ada kode yang diimplemen.
  3. Tulis dan implementasikan kode yang memenuhi persyaratan. Jalankan semua tes dan pastikan test berhasil/lulus. Jika ada yang tidak lulus ,silakan ulangi langkah ini.
  4. Bersihkan kode dengan refactoring.
  5. Check dan ulangi hingga test sudah bisa diimpelemtasikan untuk produksi (production).

tdd

tdd-red-green-refactoring-v3

 

 

Terdapat beberapa keuntungan dan kekurangan yang didapatkan jika menggunakan metode TDD. Berikut adalah contohnya :

Keuntungan : 

  1. Bisa memberitahu pada kondisi apa kodingan tersebut bisa berjalan sempurna dan tidak jalan sempurna. Programmer bisa mengetahui jika terjadi kesalahan karena sebelumnya kodingan tersebut berjalan dengan baik.
  2. Membuat waktu yang lebih singkat untuk melakukan refactor kodingan jika diperlukan, karena programmer dapat mengetes dengan mudah.
  3. Membuat programmer lebih percaya diri. karena apabila ada penambahan fitur, dapat dites dengan mudah.

Kekurangan : 

  1. Tidak mudah untuk memulai dengan TDD. Anda harus mengetahui mengetahui banyak praktik dan teknik baru. Contoh: unit testing, dan asertions, dll.
  2. Dibutuhkan lebih banyak waktu diawal saat melakukan pengembangan, karena Programmer harus menguji kode saat membuat kodingan juga.

Secara umum, TDD dapat dibagi menjadi 4 bagian yaitu : 

  1. Unit Testing: Unit test yang paling rendah. Biasanya yang di test hanya 1 method. Hal ini membuat unit testing mudah untuk digunakan.
  2. Integration Testing: Integration testing yang menyentuh beberapa class. Selain berhubungan dengan beberapa class, ada juga yang berhubungan dengan pihak external lainnya, misalnya API lain. 
  3. Functional Testing: Functional testing adalah tipe testing yang dilakukan kepada semua fitur. Testing ini agak memakan banyakan waktu karena fitur yang dites nya lebih banyak dari integration testing.
  4. Acceptance Testing: Acceptance testing merupakan test yang paling atas. Testing ini hanya dianggap sukses apabila customer sudah mengatakan testnya selesai.

Sebagai contoh, disini kita akan membuat 1 bagian TDD yaitu unit testing. Sebagai awalan, framework yang digunakan adalah menggunakan laravel (contoh menggunakan laravel karena saat menginstal laravel sudah sekaligus otomatis terinstal contoh unit testnya). Untuk menjalankan TDD secara otomatis, ketikan “vendor\bin\phpunit” pada root folder laravel.

Script test yang dibuat biasanya disimpan pada folder test\Unit

folder

lalu pada terminal akan muncul tampilan seperti ini

success1

hal tersebut menandakan bahwa semua test lolos.

sebagai contoh lain, kita buat 1 class yang bernama Calculate yang isinya 1 methode untuk menghitung luas

public function areaOfSquare($length)
{
    return pow($length, 2);
}

lalu buat class testnya yang bernama CalculateTest pada folder “tests\Unit”

 

folder-2

 

buat 1 method pada CalculateTest yang berfungsi untuk mengetes hasil balikan dari method “areaOfSquare” pada class “Calculate”

public function test_areaOfSquare_WhenCalledWithLength2_Return4()
{
    $this->calculate = new Calculate();

    $length = 2;

    $response = $this->calculate->areaOfSquare($length);

    $this->assertTrue(is_int($response));
    $this->assertEquals(4, $response);
}

jalankan test maka akan menghasilkan tampilan seperti berikut

success1

untuk apabila ada logic yang salah pada method “areaOfSquare” pada class “Calculate”, maka akan muncul tampilan seperti berikut.

error

 

disana disebutkan bahwa pada test “test_areaOfSquare_WhenCalledWithLength6_Return36″ hasil yang diharapkan adalah 36, sedangkan hasil yang keluar dari uji test adalah 216. dari sana bisa diambil kesimpulan bahwa kodingan di method “areaOfSquare” pada class “Calculate” terdapat kesalahan. Namun tidak menutup kemungkinan juga jika output yang ditulis pada script test yang dibuat salah. padahal hasil yang dikeluarkan oleh kodingan di method tersebut betul.

Kesimpulan :

Pengembangan berbasis tes (TDD) adalah teknik pengembangan di mana harus terlebih dahulu menulis tes yang gagal sebelum menulis kode fungsional baru. TDD dengan cepat diadopsi oleh pengembang perangkat lunak tangkas untuk pengembangan kode sumber aplikasi. TDD tidak menggantikan pengujian tradisional, melainkan mendefinisikan cara yang telah terbukti untuk memastikan pengujian unit yang efektif. Efek samping dari TDD adalah bahwa tes yang dihasilkan adalah contoh kerja untuk menjalankan kode, sehingga memberikan spesifikasi kerja untuk kode tersebut. Pengalaman pribadi, bahwa TDD bekerja dengan sangat baik dalam praktiknya dan ini adalah sesuatu yang harus dipertimbangkan oleh semua pengembang perangkat lunak.

 

Akhdani Tech Talk 2021 Series #4 – Deteksi Emosi pada teks Chat

Deteksi Emosi pada teks Chat

Oleh: Fildah A., Ikhsan H. Frasetiawan H.

  • Masalah dan Ide

    Bentuk komunikasi teks saat ini merupakan salah satu yang tidak bisa dipisahkan dari kehidupan kita, meskipun ada banyak aspek non verbal yang terkadang tidak mampu ditunjukkan melalui komunikasi teks. Dengan perkembangan AI hingga kini, sangat memungkinkan untuk menggali informasi non verbal dari sebuah teks seperti emosi agar tercipta suatu bentuk komunikasi teks yang lebih komprehensif. Kali ini tim techtalk akan membuat sebuah sistem prediksi emosi sederhana menggunakan machine learning dari data teks.

  • Requirements

  • Python versi 3
  • Modul sklearn
  • Modul nltk corpora
  • Flask
  • Tahap Implementasi

    1. Mencari dataset yang sesuai

    Untuk melakukan sebuah proses supervised learning, dataset yang diperlukan untuk proses training nanti adalah labeled dataset. Terdapat banyak dataset yang sudah dilabeli emosi tersedia secara gratis di internet, misalnya di https://www.kaggle.com/.
    Dataset yang dipilih untuk percobaan kali ini merupakan data tweet dalam Bahasa Inggris yang sudah dilabeli dengan berbagai macam emosi seperti senang, sedih, marah, khawatir, bosan, netral. Untuk menyederhanakan proses training dan prediksi, dipakai hanya data-data yang memiliki label senang, sedih dan netral.

image9Gambar 1. Snippet code untuk load dataset

2. Preprocessing data

Untuk mengoptimalkan proses ekstraksi fitur dan akurasi prediksi, perlu dilakukan ‘pembersihan’ dari kata-kata yang tidak menambah/memiliki makna maupun pengubahan kata menjadi kata dasar. Tahap-tahap preprocessing data meliputi beberapa hal berikut.

  • Memilih data dengan label happiness, sadness dan netral
  • tweet_id sentiment content
    1 1956967666 sadness layin n bed headache ughh waitin call
    2 1956967696 sadness funeral ceremony gloomy friday
    4 1956968416 neutral dannycastillo want trade someone houston ticke...
    6 1956968487 sadness sleep im thinking old friend want married damn...
    8 1956969035 sadness charviray charlene love miss
    ... ... ... ...
    39992 1753918881 neutral jasimmo oo showing french skill lol thing good...
    39993 1753918892 neutral haha yeah twitter many us know ppl care
    39994 1753918900 happiness succesfully following
    39995 1753918954 neutral
    39998 1753919043 happiness wassup beautiful follow peep new hit single ww...
    
    [19012 rows x 3 columns]
  • Penyeragaman huruf kapital menjadi huruf kecil (lowercase)
  •  tweet_id sentiment content
    1 1956967666 sadness layin n bed with a headache ughhhh...waitin on...
    2 1956967696 sadness funeral ceremony...gloomy friday...
    4 1956968416 neutral @dannycastillo we want to trade with someone w...
    6 1956968487 sadness i should be sleep, but im not! thinking about ...
    8 1956969035 sadness @charviray charlene my love. i miss you
    ... ... ... ...
    39992 1753918881 neutral @jasimmo ooo showing of your french skills!! l...
    39993 1753918892 neutral @sendsome2me haha, yeah. twitter has many uses...
    39994 1753918900 happiness succesfully following tayla!!
    39995 1753918954 neutral @johnlloydtaylor
    39998 1753919043 happiness @niariley wassup beautiful!!! follow me!! peep...
    
    [19012 rows x 3 columns]
  • Menghilangkan tanda baca
  •  tweet_id sentiment content
    1 1956967666 sadness layin n bed with a headache ughhhh waitin on...
    2 1956967696 sadness funeral ceremony gloomy friday
    4 1956968416 neutral dannycastillo we want to trade with someone w...
    6 1956968487 sadness i should be sleep but im not thinking about ...
    8 1956969035 sadness charviray charlene my love i miss you
    ... ... ... ...
    39992 1753918881 neutral jasimmo ooo showing of your french skills l...
    39993 1753918892 neutral sendsome2me haha yeah twitter has many uses...
    39994 1753918900 happiness succesfully following tayla
    39995 1753918954 neutral johnlloydtaylor
    39998 1753919043 happiness niariley wassup beautiful follow me peep...
    
    [19012 rows x 3 columns]
  • Menghilangkan stopwords
  •  tweet_id sentiment content
    1 1956967666 sadness layin n bed headache ughhhh waitin call
    2 1956967696 sadness funeral ceremony gloomy friday
    4 1956968416 neutral dannycastillo want trade someone houston ticke...
    6 1956968487 sadness sleep im thinking old friend want married damn...
    8 1956969035 sadness charviray charlene love miss
    ... ... ... ...
    39992 1753918881 neutral jasimmo ooo showing french skills lol things g...
    39993 1753918892 neutral sendsome2me haha yeah twitter many uses know p...
    39994 1753918900 happiness succesfully following tayla
    39995 1753918954 neutral johnlloydtaylor
    39998 1753919043 happiness niariley wassup beautiful follow peep new hit ...
    
    [19012 rows x 3 columns]
  • Mengubah kata ke bentuk kata dasar
  • tweet_id sentiment content
    1 1956967666 sadness layin n bed headache ughhhh waitin call
    2 1956967696 sadness funeral ceremony gloomy friday
    4 1956968416 neutral dannycastillo want trade someone houston ticke...
    6 1956968487 sadness sleep im thinking old friend want married damn...
    8 1956969035 sadness charviray charlene love miss
    ... ... ... ...
    39992 1753918881 neutral jasimmo ooo showing french skill lol thing goo...
    39993 1753918892 neutral sendsome2me haha yeah twitter many us know ppl...
    39994 1753918900 happiness succesfully following tayla
    39995 1753918954 neutral johnlloydtaylor
    39998 1753919043 happiness niariley wassup beautiful follow peep new hit ...
    
    [19012 rows x 3 columns]

image7Gambar 2. Snippet code untuk preprocessing data

3. Ekstraksi fitur

Mesin melakukan pembelajaran melalui suatu proses kalkulasi tertentu yang memetakan antara nilai input dan output dalam bentuk numerik. Dalam percobaan ini data yang akan dibaca tersedia dalam bentuk teks, sehingga perlu dilakukan pengubahan untuk data input (konten teks) maupun outputnya (label) dari teks menjadi nilai numerik.

3.1. Untuk label, proses transformasi dilakukan dengan cara mengubah label menjadi nilai 0…n sesuai banyaknya jenis label berbeda.

image8Gambar 3. Snippet code untuk encoding label

3.2. Untuk data konten teks, dilakukan 2 metode berbeda untuk mengekstraksi fitur-fitur yang dimiliki teks menjadi bentuk numerik yaitu CountVectorizer dan TF-IDF

image5Gambar 4. Snippet code untuk ekstraksi fitur

*CountVectorizer adalah sebuah metode mengubah data teks dengan menghitung banyaknya kemunculan sebuah kata dalam dokumen teks dan kemudian dari nilai hasil kemunculan tiap kata tersebut diubah menjadi bentuk vektor

*TF-IDF adalah sebuah metode mengubah data teks dengan memberikan bobot/nilai terhadap kata berdasarkan seberapa penting kata tersebut dianggap memberikan makna pada kalimat.

4.Melakukan training dan test

Sebelum melakukan training data dan test, dipisahkan terlebih dahulu antara data training dan tes dari dataset yang tersedia dengan rasio 9:1. Ada beberapa model yang dilakukan untuk percobaan, yaitu multinomial naive bayes dan linear svm.

image6Gambar 5. Snippet code untuk split dataset dan fit model

*Multinomial Naive Bayes adalah suatu model klasifikasi berdasarkan teorema bayes dengan mengasumsikan bahwa setiap aspek/fitur dianggap setara.
*Linear SVM adalah model klasifikasi dengan ide untuk mencari sebuah garis pemisah antara kelompok-kelompok vektor

image1Gambar 6. Hasil akurasi model

Model dengan akurasi tertinggi dipilih dan disimpan ke dalam bentuk objek untuk kemudian dipakai melakukan prediksi. Proses menyimpan model menggunakan joblib dari python.

image4Gambar 7. Snippet code dump model menggunakan joblib

5. Membuat web app dengan Flask

Flask merupakan microframework web app untuk python. Model terlebih dahulu di load, lalu dilakukan proses prediksi menggunakan model dan vocab hasil training.

image3Gambar 8. Snippet code app.py

image2Gambar 9. Menjalankan web app

6. Melakukan prediksi menggunakan input random

Setelah web app berhasil dijalankan, selanjutnya kita coba melakukan prediksi dengan input yang kita buat sendiri dengan cara mengetikkan pesan ke dalam textbox yang tersedia.

image11Gambar 10. Tampilan input teks untuk prediksi emosi

image10Gambar 11. Tampilan hasil prediksi

  • Saran pengembangan selanjutnya

  1. Sistem prediksi dengan Bahasa Indonesia
    Pengembangan sistem prediksi dalam Bahasa Indonesia membutuhkan dataset berlabel dan serangkaian langkah preprocessing untuk Bahasa Indonesia. Pada proses pencarian dataset sebelumnya, kami sempat menemukan dataset dengan Bahasa Indonesia. Namun, kami belum sempat eksplorasi lebih jauh mengenai library/modul preprocessing dari python apakah sudah tersedia untuk Bahasa Indonesia.
  2. Disambungkan dengan sosial media
    Sistem prediksi emosi berkaitan erat dengan kegiatan komunikasi teks. Dalam kegiatan sehari-hari kita tentu paling sering melakukan komunikasi teks melalui sosial media. Sistem prediksi emosi mungkin bisa dimanfaatkan untuk meningkatkan kualitas respon chatbot atau sejenisnya. Tentu saja harus dengan pengembangan model ML lebih lanjut agar prediksi bisa lebih akurat.

Sumber :
https://medium.com/the-research-nest/applied-machine-learning-part-3-3fd405842a18
https://towardsdatascience.com/develop-a-nlp-model-in-python-deploy-it-with-flask-step-by-step-744f3bdd7776
https://towardsdatascience.com/naive-bayes-classifier-81d512f50a7c
https://towardsdatascience.com/https-medium-com-pupalerushikesh-svm-f4b42800e989

Akhdani Tech Talk 2021 Series #3 – PENGGUNAAN E-PROCUREMENT BAGI PERUSAHAAN

Apakah e-Procurement itu??
e-Procurement adalah proses pengadaan barang/jasa pemerintah yang pelaksanaannya dilakukan secara elektronik dan berbasis web/internet dengan memanfaatkan fasilitas teknologi komunikasi dan informasi yang meliputi pelelangan umum secara elektronik yang diselenggarakan oleh Pusat Layanan Pengadaan Secara Elektronik (LPSE).
Dilatarbelakangi oleh tuntutan masyarakat dalam memperoleh informasi seluas-luasnya mengenai pengadaan barang/jasa pemerintah dan penyelenggaraan pemerintah yang baik dan bebas dari Korupsi, Kolusi, dan Nepotisme (KKN), maka pemerintah menerapkan e-Procurement dengan tujuan untuk menciptakan transparansi, efisiensi dan efektivitas serta akuntabilitas dalam pengadaan barang/jasa melalui media elektronik antara panitia dan penyedia jasa.

Jika kita berbicara tentang LPSE, Apakah LPSE itu? LPSE (Layanan Pengadaan Secara Elektronik) adalah layanan pengelolaan teknologi informasi untuk memfasilitasi pelaksanaan Pengadaan Barang/Jasa secara elektronik.

Dasar Hukum Pembentukan LPSE
Dasar hukum pembentukan Layanan Pengadaan Secara Elektronik adalah Pasal 73 Nomor 16 Tahun 2018 tentang pengadaan barang/jasa pemerintah yang ketentuan teknis operasionalnya diatur oleh Peraturan Lembaga LKPP Nomor 14 Tahun 2018 tentang Layanan pengadaan Secara Elektronik. Layanan Pengadaan Secara Elektronik dalam menyelenggarakan sistem pelayanan Pengadaan Barang/Jasa secara elektronik juga wajib memenuhi persyaratan sebagaimana yang ditentukan dalam Undang-undang Nomor 11 Tahun 2008 tentang Informasi dan Transaksi Elektronik.

SPSE (Sistem Pengadaan Secara Elektronik)
SPSE merupakan aplikasi e-Procurement yang dikembangkan oleh Direktorat Pengembangan Sistem Pengadaan Secara Elektronik – LKPP untuk digunakan oleh Layanan Pengadaan Secara Elektronik di seluruh K/L/PD. Aplikasi ini dikembangkan dengan semangat efisiensi nasional sehingga tidak memerlukan biaya lisensi, baik lisensi SPSE itu sendiri maupun perangkat lunak pendukungnya.
SPSE dikembangkan oleh LKPP bekerja sama dengan:
1. Badan Siber dan Sandi Negara (BSSN) untuk fungsi enkripsi dokumen;

logo_bssn
2. Badan Pengawasan Keuangan dan Pembangunan (BPKP) untuk sub sistem audit.

bpkp_logo

 

LKPP (Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah)

foto-lkpp
Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah (LKPP) merupakan Lembaga Pemerintah Non Departemen yang berada di bawah dan bertanggung jawab kepada Presiden dan dibentuk berdasarkan Perpres No 106 tahun 2007.
LKPP merupakan lembaga pemerintah satu-satunya yang mempunyai tugas melaksanakan pengembangan dan perumusan kebijakan pengadaan barang/jasa Pemerintah, dan dalam melaksanakan tugas dan fungsinya LKPP dikoordinasikan oleh Menteri Negara Perencanaan Pembangunan Nasional.

SIKaP (Sistem Informasi Kinerja Penyedia)

Aplikasi yang merupakan subsistem dari SPSE yang digunakan untuk mengelola data/informasi mengenai data kualifikasi Pelaku Usaha dan riwayat kinerja Penyedia Barang/Jasa.

Akhdani Tech Talk 2021 Series #2 – Smarthome

Masalah dan Ide

Pada zaman sekarang, dimana internet sudah menjadi hal yang lumrah bagi banyak orang, membuat teknologi ini dimanfaatkan dalam berbagai aspek untuk mempermudah pekerjaan sehari-hari. Salah satu penerapannya adalah smarthome, sekarang banyak perangkat-perangkat yang berada dirumah dan dapat di-Monitoring dan dikontrol secara lebih mudah melalui aplikasi mobile atau web dari jarak jauh dengan memanfaatkan jaringan internet. Tujuan dari smarthome ini adalah untuk mempermudah pekerjaan yang sebelumnya harus dilakukan secara manual dan berada di rumah, menjadi lebih efisien dan bisa dilakukan dari jarak jauh. Hal ini tentu saja membuat penghematan daya lebih maksimal, meningkatkan keamanan dan juga kenyamanan penghuni rumah. Smarthome sendiri merupakan sistem yang telah diprogram dan dapat bekerja dengan bantuan komputer untuk mengendalikan sebuah perangkat. Montoring dan kontrol  pada sistem smarthome membutuhkan berbagai macam komponen mulai dari hardware dan software yang terintegrasi. Pada penerapan kali ini perangkat yang digunakan adalah gabungan Lampu i-Switch dari Anjels, i-Net dari Anjels, Router, dan Server API. Anjels sendiri merupakan perusahaan yang menyediakan produk-produk IoT dan juga sebagai konsultan IoT.

Rencana Implementasi

Mengatur lampu melalui smartphone

schematic-document-page-1

Berikut ini merupakan skema pemasangan wireless control system pada lampu :

  1. Smarthome App (Smartphone)
    • Menerima status terkini dari Server API
    • Mengirimkan perintah konfigurasi lampu ke Server API
  2. Server API
    • Menerima perintah konfigurasi dari Smarthome App, kemudian Meneruskan perintah konfigurasi ke I-Net
    • Menerima status terkini lampu melalui I-Net, kemudian meneruskan status status terkini lampu ke Smarthome App
  3. I-Net
    • Menerima perintah dari Server API atau Voice Bridge dan mengirim konfigurasi ke I-Switch untuk penggunaan lampu.
  4. I-Switch
    • Menerima perintah dari I-Net, kemudian mengatur lampu sesuai perintah yang diterima
  5. Router
    • Menyediakan jaringan internet agar dapat diakses oleh publik

 

Cara Pemakaian dan Contoh

Contoh penggunaan dari sistem smarthome ini terdiri dari dua jenis, yaitu untuk monitoring, dan yang kedua untuk kontrol.

1. Hardware setup

  • Sambungkan i-Net dengan router yang tersambung koneksi internet
  • Sambungkan Server API dengan router yang satu jaringan dengan i-Net
  • Siapkan aplikasi smarthome app, bisa berupa web/mobile yang tersambung dengan koneksi internet

2. Software Setup

  • Install i-Net configurator
  • Untuk menambahkan device baru, buka i-Net configurator dan pilih menu Edit Devices (No. 10)

home-anjels

  • Kemudian pilih Add Device (B)

add-device-anjels

  • Setelah itu akan muncul device id yang tersedia, isi flied sesuai yang diinginkan dan pilih Save
  • Untuk mengakses device yang sudah didaftarkan, akses melalui

http://192.168.1.81:8181/device.cgi?dev={id_device}&cmd={command}. Id_device adalah id_device yang sudah didaftarkan sebelumnya, cmd adalah perintah yang di-request ke device.
Contoh untuk melihat status lampu :

http://192.168.1.81:8181/device.cgi?dev=2&cmd=128

Response dari comman ini adalah string angka 152 = on, 144 = off

  • Untuk contoh penerapan kali ini akan menggunakan sistem yang sedang dikembangkan untuk suatu apartemen, Server API menggunakan Java Spring Boot yang akan menerima request dengan parameter device id dan command, kemudian Server API akan mengirim url beserta parameter tersebut sesuai format berikut :
    http://192.168.1.81:8181/device.cgi?dev={id_device}&cmd={command}.
    Setelah itu response dari i-Net berupa string angka 1 = sukses, -1 = gagal.
    Pada sisi pengguna, aplikasi menggunakan Android Native. Untuk mengontrol lampu, dapat dilakukan dengan 2 metode :

    1. Mengatur lampu nyala atau mati
    2. Mengatur lampu sesuai kecerahan (jika lampu mendukung)

    whatsapp-image-2021-03-05-at-10-14-13-am