LAPORAN KEGIATAN MAGANG PEMBELAJARAN DI LUAR PROGRAM STUDI MERDEKA BELAJAR KAMPUS MERDEKA MAGANG STUDI INDEPENDEN BERSERTIFIKAT DI PT REKAINDO GLOBAL JASA MADIUN Dibuat Oleh: Muhammad Haikal Hanif 20501241052 PROGRAM STUDI S – 1 PENDIDIKAN TEKNIK ELEKTRO UNIVERSITAS NEGERI YOGYAKARTA 2022 iii KATA PENGANTAR Puji syukur kehadirat Allah Swt. yang telah memberikan nikmat kehidupan, nikmat kesehatan dan nikmat keberagamaan sehingga saya mampu menyelesaikan penyusunan Laporan Kegiatan Pembelajaran di Luar Program Studi non-Perguruan Tinggi. Sholawat serta salam saya panjatkan kepada Nabi Muhammad saw. yang telah membimbing umat manusia dari zaman kegelapan hingga zaman yang terangbenderang dan kaya akan ilmu pengetahuan seperti saat ini. Laporan ini saya susun sebagai bentuk evaluasi dan pengakuan hasil pembelajaran yang telah saya lakukan selama empat bulan dari tanggal 22 Agustus 2022 hingga tanggal 22 Desember 2022 Di PT Rekaindo Global Jasa, Madiun, Jawa Timur. Segala lembar pengesahan dan data-data disajikan guna memperkuat validitas dari laporan ini. Penyususnan laporan magang ini telah memanfaatkaan bantuan-bantuan dari berbagai pihak yang terlibat. Ucapan terima kasih saya lampirkan kepada pihak-pihak sebagai penghormatan. 1. Bapak Prof. Dr. Sumaryanto, M.Kes., AIFO. selaku Rektor Universitas Negeri Yogyakarta. 2. Bapak Prof. Herman Dwi Surjono Ph.D. selaku Dekan Fakultas Teknik Universitas Negeri Yogyakarta. 3. Ibu Dr. Phil. Nurhening Yuniarti, M.T. selaku Ketua Jurusan Pendidikan Teknik Elektro dan Ketua Program Studi S1 Pendidikan Teknik Elektro. 4. Bapak Ir. Alex Sandria Jaya Wardhana, S.Pd., M.T. selaku pembimbing MSIB Jurusan Pendidikan Teknik Elektro UNY di PT Rekaindo Global Jasa. 5. Bapak Ir. M. Fatoni selaku Presiden Direktur PT. Rekaindo Global Jasa. 6. Bapak Rizqi Ervani, S.T. selaku Pembimbing Lapangan PT Rekaindo Global Jasa 7. Karyawan dan Karyawati PT Rekaindo Global Jasa yang telah dengan penuh antusias membimbing kegiatan magang. 8. Teman-teman kelompok MSIB PKKM yang telah saling membantu, memotivasi, dan mendukung proses kegiatan magang. 9. Keluarga yang mendukung dan memberikan restu kepada saya. iv Saya menyadari bahwa pembuatan laporan magang ini masih akan perlu banyak perbaikan dan revisi dalam berbagai aspek. Maka dari itu, saya akan bersikap terbuka terhadap segala saran, kritik, masukan, serta bimbingan yang membangun. Saya harap laporan ini menjadi bukti perkembangan pembelajaran saya selama menjadi mahasiswa Universitas Negeri Yogyakarta dan bermanfaat bagi pembaca. Atas perhatiannya, saya ucapkan terima kasih. Madiun, 22 Desember 2022 Muhammad Haikal Hanif v DAFTAR ISI KATA PENGANTAR ........................................................................................ iv DAFTAR ISI....................................................................................................... vi BAB I....................................................................................................................1 PENDAHULUAN................................................................................................1 A. Latar Belakang .....................................................................................1 B. Tujuan Kegiatan ...................................................................................2 C. Target Kegiatan ....................................................................................2 D. Sasaran Kegiatan ..................................................................................2 BAB II ..................................................................................................................3 ANALISIS SITUASI DAN PERENCANAAN PROGRAM ............................3 A. Analisis Situasi ......................................................................................3 B. Rencana Program dan Kegiatan .......................................................21 BAB III...............................................................................................................23 PERSIAPAN......................................................................................................23 A. Persiapan .............................................................................................23 B. Sumber Daya Manusia .......................................................................24 BAB IV ...............................................................................................................26 PELAKSANAAN ..............................................................................................26 A. Pelaksanaan Program ........................................................................26 B. Capaian Program ...............................................................................32 BAB V ..............................................................................................................100 EVALUASI PELAKSANAAN PROGRAM DAN RENCANA KEBERLANJUTAN ....................................................................................................100 vi A. Kekuatan ...........................................................................................100 B. Hambatan..........................................................................................100 C. Pengalaman Baik ..............................................................................100 D. Rencana Tindak Lanjut ...................................................................101 BAB VI.............................................................................................................102 KESIMPULAN DAN SARAN........................................................................102 A. Kesimpulan .......................................................................................102 B. Saran .................................................................................................102 DAFTAR PUSTAKA ......................................................................................104 vii BAB I A. Latar Belakang PENDAHULUAN Keterampilan dunia kerja merupakan target utama saat mahasiswa memutuskan untuk memulai jenjang pendidikan tinggi di sebuah perguruan tinggi. Universitas Negeri Yogyakarta menjadi salah satu universitas yang mendukung penuh mahasiswa untuk dapat memfasilitasi kebutuhan akan pentingnya kesinambungan keterampilan pembelajaran dengan kebutuhan perusahaan di dunia kerja. Kesempatan melakukan magang pada Program Kompetisi Kampus Merdeka (PK-KM) dengan basis Magang Studi Independen Bersertifikat inilah yang mendorong Universitas Negeri Yogyakarta untuk dapat mempercayakan mahasiswanya memupuk pengalaman di lembaga non-Perguruan Tinggi. Magang Studi Independen Bersertifikat (MSIB) adalah sebuah program magang yang difokuskan dengan penyesuaian pengalaman belajar mahasiswa pada permasalahan-permasalahan yang sedang terjadi di mitra atau industri. Mahasiswa yang mengikuti program magang ini memfokuskan target pembelajarannya sesuai pekerjaan yang diberikan oleh mitra atau industri terkait. Pembelajaran dilakukan secara mandiri ataupun kolektif (berkelompok) dengan bimbingan mentor. Pembelajaran yang dilakukan pada program magang ini dikaitkan dengan program lain dari Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi (Kemendikbudristek) yang berfokus pada fundamental kinerja kampus, yakni Program Kompetisi Kampus Merdeka (PK-KM). Program Kompetisi Kampus Merdeka (PK-KM) merupakan program yang dibuat oleh Kemendikbudristek berupa kompetisi kampus dengan sistem seleksi berkelompok berdasarkan jumlah mahasiswa aktif dan penilaian akreditasi untuk meningkatkan penguatan prinsip link and match sehingga berdampak pada kualitas tenaga kependidikan kampus dalam misi menerapkan Tri Dharma Perguruan Tinggi. Pembentukan pengalaman kerja dan tantangan seperti ini yang sangat dibutuhkan oleh Jurusan Pendidikan Teknik Elektro Universitas Negeri Yogyakarta sehingga tidak hanya pihak kampus yang berupaya meningkatkan kualitas kinerja, tetapi mahasiswa juga dapat merasakan manfaatnya sebagai penuntut ilmu agar kompetensi yang dipersiapkan sesuai dengan kebutuhan industri. 1 B. Tujuan Kegiatan Tujuan pelaksanaan kegiatan magang terbagi menjadi tiga aspek, yakni tujuan untuk mahasiswa, tujuan untuk mitra atau industri terkait, dan tujuan untuk kampus Universitas Negeri Yogyakarta. 1. Tujuan untuk mahasiswa meliputi a. pemberian pengalaman kerja sesuai dengan jurusan kuliah yang diikuti dan; b. pelatihan kompetensi dengan cara menyesuaikan materi perkuliahan dengan pekerjaan dan pembelajaran yang didapat di mitra atau industri. 2. Tujuan untuk mitra atau perusahaan meliputi a. pembangunan relasi kerja sama dengan kampus dan; b. pemanfaatan bantuan untuk memecahkan masalah dan menyelesaikan proyek-proyek yang ada di mitra atau industri. 3. Tujuan untuk Universitas Negeri Yogyakarta meliputi a. pembangunan relasi kerja sama dengan mitra atau industri serta; b. peninjauan luas tolak ukur keterampilan mahasiswa terhadap kesesuaian kurikulum dengan kebutuhan mitra atau industri. C. Target Kegiatan Target yang ditetapkan dalam kegiatan magang menjadi acuan penting ketuntasan dan keberhasilan kegiatan magang. Target kegiatan magang ini adalah 1. memperoleh pengalaman kerja sesuai dengan mata kuliah yang dipelajari; 2. melatih mahasiswa untuk menumbuhkan jiwa adaptif terhadap permasalahan yang muncul dan jiwa kompetitif di dunia kerja, serta; 3. menyelesaikan pembelajaran dan pekerjaan sesuai dengan ketentuan mitra atau industri. D. Sasaran Kegiatan Kegiatan magang ini memiliki sasaran yang merangkum hal-hal menunjang pemenuhan target kegiatan, sasaran dari kegiatan magang ini meliputi 1. penuntasan mata kuliah praktik kerja industri dan; 2. pelaksanaan konversi/pengakuan Satuan Kredit Semester (SKS)/nilai hasil perkuliahan ke mata kuliah yang bersesuaian. 2 BAB II A. ANALISIS SITUASI DAN PERENCANAAN PROGRAM Analisis Situasi PT. Rekaindo Global Jasa adalah perusahaan Indonesia yang dimiliki bersama oleh PT. INKA, Nippon Sharyo Ltd, Sumitomo Corporation, dan KOPINKA. Bergerak di bidang jasa konsultan engineering dan support komponen kereta api untuk mendukung proses produksi kereta api PT. INKA (Persero) dan anak perusahaan terkait. Tata nilai perusahaan PT. Rekaindo Global Jasa adalah dengan menetapkan tata kelola perusahaan yang baik, berkomitment memiliki tata nilai sebagai prinsip perusahaan untuk mewujudkan visi dan misi. PT. Rekaindo Global Jasa memiliki enam tata perusahaan yang dapat menjadi pedoman bagi seluruh karyawan dalam menjalankan aktivitas kerja sehari-hari. PT. Rekaindo Global Jasa memiliki logo yang masing-masing logonya memiliki arti yang bermakna, yaitu : Gambar 2.1 Logo PT Rekaindo Global Jasa Warna merah diartikan bahwa PT. Rekaindo Global Jasa adalah perusahaan yang selalu mengedepankan profesionalisme, berani dan siap menghadapi tantangan bisnis secara global, giat dan penuh semangat dalam mencari pelanggan untuk meraih tujuan perusahaan. Warna biru melambangkan ketenangan, keyakinan, keseriusan PT. Rekaindo Global Jasa dalam menjalankan kegiatan bisnisnya, sehingga mendapatkan kepercayaan dari pemangku kepentingan (stakeholder). 3 Warna hitam pada tulisan REKA berarti PT. Rekaindo Global Jasa adalah perusahaan yang kuat, tegas, dan REKA selalu mengedepankan mutu dan tepat waktu saat menghasilkan produk-produknya. BOLA: Terdiri dari satu bola besar berwarna merah dan dua bola kecil yang berwarna merah dan berwarna biru, sehingga membentuk lingkaran yang sempurna menuju satu arah. Tulisan “REKA” dengan font Arial berwarna hitam, tinggi tulisan sejajar dengan lingkaran luar yang berwarna merah. Lingkaran bola dan tulisan “REKA” merupakan satu kesatuan logo PT. Rekaindo Global Jasa. 1. Visi dan Misi a. Visi PT. Rekaindo Global Jasa Untuk mencapai kemakmuran dan mewujudkan impian melalui kegiatan bisnis yang sehat dan bersih dengan menetapkan tujuan yang jelas dan mencapainya dengan antusias. b. Misi PT. Rekaindo Global Jasa REKA bertujuan untuk menjadi sebuah organisasi global yang terus- menerus tetap selangkah lebih maju dalam menangani perubahan, menciptakan nilai baru melalui rekayasa, perancangan & konsultan jasa untuk rolling stock dan berkontribusi secara luas terhadap pertumbuhan masyarakat Indonesia dan industri kereta api. 2. Letak Geografis Perusahaan 4 Gambar 2.2 Lokasi Geografis PT Rekaindo Global Jasa Letak PT. Rekaindo Global Jasa (PT. REKA) berada di pusat Kota Madiun, Jawa Timur. Alamat lengkapnya adalah Jl. Candi Sewu No.30, Madiun Lor, Kec. Manguharjo, Kota Madiun, Jawa Timur, Kode Pos 63122, Telepon 0351-4773030, Email sekretariat@ptekaindo.co.id, serta web www.ptrekaindo.co.id 3. Jenis Pekerjaan yang ada di Industri Gambar 2.3 Bagan struktur organissasi PT. Rekaindo Global Jasa Pekerjaan-pekerjaan yang dilakukan di PT. Rekaindo Global Jasa terdiri dari beberapa divisi beserta jobdesk yang dilakukan, antara lain: a. Technology & Operation Director Melakukan fungsi perencanaan, pengorganisasian, pelaksanaan, dan pengendalian terkait kegiatan teknologi, pengendalian kualitas dan operasi produksi tier 1 dan 2 component serta penyediaan jasa engineering dan pengujian. 5 1) Divisi Teknologi dan Pengendalian Kualitas Menyusun jobdesk operasional, mengusulkan kebijakan & sistem prosedur, melaksanakan tugas pokok, mengawasi, mengendalikan pekerjaan serta Menyusun laporan di Divisi Teknologi dan pengendalian Kualitas, meliputi : a) Produk tier 1 dan 2 component memberikan arahan dan koordinasi kepada engineer, drafter, tenaga perawatan kereta api berpenggerak dan staf yang memiliki jobdesk menyiapkan dokumen-dokumen engineering , memastikan jenis dan kualitas produk/layanan yang dihasilkan sesuai diskusi dan kemauan dari pelanggan dan standar keselamatan kerja dengan waktu yang sudah ditetapkan. b) Produk tier 1 dan 2 component yang meliputi rencana desain mekanik, desain sistem mekanik, dan komponennya, kegiatan verifikasi, validasi, dan finalisasi desain sistem mekanik (jika diperlukan), dengan proses release desain mekanik ke produksi. c) Produk tier 1 dan 2 component yang meliputi rencana desain elektrik, desain sistem elektrik, dan komponennya, kegiatan verifikasi, validasi, dan finalisasi desain sistem mekanik (jika diperlukan), desain wiring dan routing harness kabel sampai dengan proses release desain cutting harness ke produksi. d) Kegiatan Pengendalian Kualitas dengan mengikuti prosedur dan standar pemeriksaan/pengujian sesuai dengan persyaratan & spesifikasi yang telah ditentukan terhadap realisasi proses produksi (incoming, inproses, and final. 1) Electrical & Mechanical Engineering Departement Mengkoordinasikan, mengendalikan, mengawasi, dan melaksanakan kegiatan seta Menyusun laporan di Departemen Elecrical & Mechanical Engineering yang meliputi : a) Produk tier 1 dan 2 component yang meliputi rencana desain mekanik, desain sistem mekanik dan komponennya, kegiatan verifikasi, validasi dan finalisasi desain sistem mekanik pebuatan prototype desain sistem mekanik (jika dibutuhkan). 6 b) Produk tier 1 dan 2 component yang meliputi rencana desain elektrik, desain sistem elektrik, dan komponennya, kegiatan verifikasi, validasi, dan finalisasi desain sistem elektrik (jika diperlukan), desain wiring dan routing haness kabel sampai dengan proses relase desain cutting harness ke produksi. c) Menyusun desain detail sistem, mekanik, elektrik, dan otomasi, evaluasi desain yang sudah ada pada seluruh produk yang menjadi target maupun yang dihasilkan perusahaan. 2) Electrical Engineering Section Menjalankan kegiatan bagian electrical engineering yang meliputi rencna desain, gambar skematik diagram propulsi dan auxiliary serta komponennya, kegiatan verifikasi, validasi dan finalisasi desain sistem elektrik, mengkoordinasikan pembuatan prototype qiring harness sampai dengan memastikan desain telah sesuai dengan realisasi produk. 3) Mechanical Engineering Section Menjalankan kegiatan bagian Mechanical engineering yang meliputi rencna desain, gambar sistem mekanik serta komponennya, kegiatan verifikasi, validasi dan finalisasi desain sistem mekanik, mengkoordinasikan pembuatan prototype sistem mekanik sampai dengan proses relase desain sistem mekanik ke produksi. 4) Production Engineering Section Menjalankan kegiatan di bagian Production Engineering yang meliputi : a) Manufacturing Drawing (MD). b) Welding Procedure (WP). c) Process Instruction (PI). d) Manufacturing Part List (MPL). e) Design Jig & Tools. f) Bill Of Material Jig and Tools. g) Consumable Tools. h) Program & Template. i) Bill of Quality (BQ) komponen pendukung. j) Informasi Teknologi dalm menunjang produk perusahaan. 5) Quality & After Sales Departement 7 Menyusun rencana operasional, mengusulkan kebijakan & sistem prosedur, melaksanakan, mengawasi, mengendalikan pekerjaan dan Menyusun laporan di Departemen Quality & After Sales pada bidang Incoming Quality Control, In Process Quality Control and After Sales yang meliputi : a) Memastikan jenis dan kualitas produk/layanan yang dihasilkan sesuai dengan kebutuhan pelanggan dan standar keselamatan, serta terselesaikan dalam jangka waktu yang telah ditetapkan. b) Mengkoordinasikan kegiatan bidang Quality Control, yaitu mengelola pemeriksaan dan pengukuan untuk memastikan kualitas selama proses produksi sesia dengan spesifikasi yang telah ditentukan meliputi barang masuk (incoming), pemeriksaan produk daam proses pengerjaan (inprocess). c) Mengkoordinasikan kegiatan bidang final insprection testing yaitu mengelola pemeriksaan dan pengujian untuk memastikan kualitas produk final yang dihasilkan sesuai dengan spesifikasi yang disepakati. d) Mengkoordinasikan dan melakukan fungsi perencanaan, pengorganisasian, pelaksanaan dan pengendalian terkait dengan kegiatan purna jual untuk semua produk yang dihasilkan perusahaan termasuk membuat Manual Instruction (MI) untuk produk yang sudah ada dan pengelolaan pelaksanaan training kepada Customer. 6) Incoming Quality Control Section Menjalankan kegiatan di bagian Incoming Quality Control yang meliputi pemeriksaan dan pengujian untuk memastikan kualitas barang yang akan diterima sesuai dengan persyaratan. 7) In Progress Quality Control Section Menjalankan kegiatan di bagian In Process Quality Control yang meluputi pemeriksaan dan pengujian untuk pemeriksaan untuk mematikan kualitas selama proses produksi dan kualitas produk final yang dihasilkan sesuai dengan persyaratan. 8) After Sales Section Menjalankan kegiatan di bagian After Sales yang terkait dengan operasinalisasi kegiatan purna jual untuk semua produk yang dihasilkan perusahaan 8 termasuk membuat Manual Intrukction (MI) untuk produk yang sudah ada dan pengelolaan pelaksanaan training kepada customer. 9) Operation Division Menyusun rencana operasional, mengusulkan kebijakan dan sistem prosedur, melaksanakan tugas pokok, mengawasi, mengendalikan pekerjaan serta Menyusun laporan di Divisi Operasi meliputi : a) Pengadaan barang produksi, pengadaan jasa produksi, perencanaan dan pengendalian pengadaan serta persediaan barang produksi sehingga dapat mendukung pencapaia sasaran perusahaan . b) Perencanaan dan pengendalian produksi meliputi memastikan kesiapan metode, proses, dan pengendalian kegiatan produksi, memastikan ketetapan jadwal produksi dan kesipan material produksi. c) Tier 1 & 2 component dan produk lainnya agar target penjualan produk sesuai dengan persyaratan desain, sertifikasi produk, dan dalam kurun waktu (time frame) yang telah ditentukan. 10) Logistic Departement a) Mengkoordinasikan dan melakukan fungsi perencanaan, pengorganisasian, pelaksanaan dan pengendalian terkait dengan kegatan pengadaan dan pembelian material/komponen & jasa, monitoring kontrak, evaluasi dan pembinaan pemasok untuk memenuhi kebutuhan perusahaan. b) Menjalankan kegiatan yang terkait dengan kegiatan penerimaan barang dan jasa, pengelolaan penyimpanan barang, serta pengiriman produk kepada customer. 11) Purching Section a) Pengadaan dan pengendalian material/barang sesuai dengan purchase request (PR) yang telah diterbitkan. b) Manajemen pemasok meliputi seleksi pemasok, evaluasi pemasok, dan reevaluasi pemasok. 12) Warehouse & Expedition Section Melakukan kegiatan di bagian pergudangan & distribusi yang meliputi : 2) Perhitungan kuantitas. 3) Penyimpanan. 9 4) Distribusi material ke produksi. 5) Pengiriman produk kepada customer. 13) Production Planning and Controlling Departement a) Mengkooridnasikan dan melakukan kegiatan yang terkait dengan perencanaan proses produksi, pengendalian proses produksi dan pengendalian material, asset & tool di produksi serta pekerjaan yang dikontrakan kepada pihak ketiga. b) Menyiapkan informasi pembelian dan menerbitkan purchase request (PR) untuk pengadaan material/barang yang dibutuhkan perusahaan, serta memastikan barang yang dibeli sesuai dengan spesifikasinya. 14) Production Planning Section a) Merencanakan operasional produksi, Menyusun master plan dan mengelola jadwal produksi, memastikan kesiapan metode proses produksi sehingga proses produksi dapat berjalan sesuai dengn target waktu yang ditentukan. b) Menyiapkan informasi pembelian dan menerbitkan purchase request (PR) untuk pengadaan material/barang yang dibutuhkan perusahaan, serta memastikan barang yang dibeli sesuai dengan spesifikasinya. 15) Production Controlling Section Memastikan ketepatan jadwal produksi, kesiapan material, fasilitas produksi termasuk memberikan umpan balik untuk perbaikan proses produksi dan layanan untuk mendukung pencapaian target produksi sesuai dengan target waktu. 16) Production Departement a) Mengarahkan dan mengkoordinasikan, serta melakukan fungsi prencanaan, pengorganisasian, pelaksanaan dan pengendalian terkait dengan kegiatan produksi untuk seluruh produk yang dihasilkan perusahaan. b) Melakukan kegiatan yang terkait dengan kegiatan persiapan sampai dengan penyelesaian produk akhir. 17) Fabrication Section a) Pekerjaan metal working dan memastikan tersedianya produk awal sesuai dengan persyaratan desain dan spesifikasi produk dalam kurun waktu (time frame) yang telah ditentukan. 10 b) Perakita komponen dan perakitan akhir untuk seluruh produk yang dibuat oleh perusahaan. c) Melakukan self check atas hasil pekerjaan yang dilakukannya. 18) Finish Section a) Kegiatan persiapan material kabel dan aksesoris, pengecatan, serta sealer. b) Kegiatan bidang instalasi komponen dan fitting terkait pemasangan komponen elektrik dan instalasi kabel pada produk yang dihasilkan perusahaan. c) Kegiatan bidang connection terkait mengkoneksi semua kabel pada komponen dan melaksanakan perbaikan atas NCR dari unit Quality agar pekerjaan sesuai dengan kualitas yang di tetapkan. d) Melakukan self check atas hasil pekerjaan yang dilakukannya. 19) Bidding & Pricing Departement Menyusun rencana operasional, mengusulkan kebijakan & sistem prosedur, mengawasi, mengendalikan pekerjaan serta Menyusun laporan di Departemen Bidding & Pricing, yang meliputi : a) Kegiatan bidang preparation & administration yaitu persiapan penawaran dan administrasinya meliputi persyaratan penawaran/tender, pengolahan data yang dibutuhkan, koordinasi terkait dukungan administrasi, penyusunan dokumen penawaran/proposal dan pricing, pengolahan data data kegiatan pemasaran, penyimpanan dokumen serta distribusi dokumen. b) Kegiatan bidang pricing yaitu pembuatan Analisa harga, pengendalian kontrak, strategi dan Analisa harga penjualan, pengendalian kontrak, strategi dan Analisa harga penjualan, pengendalian dan moniotoring proses realisasi kontrak setelah penandatangan kontrak. 20) Project Deprtement a) Melaksanakan kegiatan dalam bidang pengelolaan proyek termasuk perencanaan dan pengawasan proyek untuk memastikan penyelesaian proyek tepat waktu da sesuai anggaran\menyiapkan dan mengolah data yang dibtuhkan, mengkoordinir personil yang mengerjakan proyek, memantau kemajuan, memberi informasi kepada pemangku kepentingan sebagai bahan keputusan strategis dalam kaitan penyelesaian proyek. 11 b) Menyiapkan dan mengolah data yang dibutuhkan, mengkoordinir pernonil yang mengerjakan proyek, memantau kemajuan, memberi informasi kepada para pemangku kepentingan sebagai bahan keputusan strategis dalam kaitan penyelesaian proyek. a. HR Director Melakukan fungsi perencanaan, pengorganisasian, pelaksanaan dan pengendalian terkait kegiatan keuangan dan sumber daya manusia. 1) Human Resource & General Affairs Division Menyusun renana operasional, mengusulkan kebijakan & sistem prosedur, melaksanakan tugas pokok, mengawasi, mengendalikan pekerjaan serta Menyusun laporan divisi SDM & Umum, yang meliputi : a) Perencanan dan pegembangan SDM, konseling karyawan, evaluasi/penilaian kerja, pemenuhan kesejahteraan karyawan, fasilitas kerja, fasilitas Kesehatan, serta menjalin hubungan industri antara perusahaan, karyawan, serikat pekerja, pemerintah, dan lembaga eksternal lainnya dan mengelola database SDM. b) Mengkoordinasikan dan melakukan fungsi perencanaan, pengorganisasian, pelaksanaan dan pengendalian kegiatan terkait liaison officer kehumasan, protokoler, kesekretariatan, pengaman perusahaan, dan legal. c) Pelayan makan karyawan, akomodasi tamu, pelayanan kendaraan dinas, fasilitas kantor ATK, mebeler, dan pemeliharan inventaris kantor sehingga dapat terjaga komunikasi dan pelayanan yang baik. d) Mengkoordinasikan dan elakukan fungsi perencanaan pengorganisasian, pelajsanaan dan pengendalian kegiatan manajemen IT dan maintenance asset perusahaan. 2) HR & General Affairs Departemen Mengkoordinasikan dan melakukan fungsi perencanaan, pengorganisasian, pelaksanaan dan pegendalian terkait dengan operasionalisasi kegiatan : a) Pengembangan organisasi dan sistem, rekrutmen dan seleksi SDM untuk memastikan ketersediaan SDM, kesejahteraan SDM & hubungan industrial, 12 kerjasama dengan perguruan tinggi/instasi terkait serta pelaksanaa kerja praktik/penelitian. b) Koseling karyawan, evaluasi/penilaian kinerja, pengembangan SDM & Diklat. c) Tata usaha & pengelolaan asset meliputi inventarisasi, pelaporan, pengawasan, pengendalian, pemanfaatan, pengarsipan, dan optimasisasi asset perusahaan. d) Pengamanan perusahaan, dan program CSR. E. umum meliputi : • Pelayan makan karyawan. • Akomodasi tamu. • Pelayanan kendaraan dinas. • Fasilitas kantor ATK. • Meleber. 3) Human Resource Section Melakukan operasionalilasi kegiatan yang terkait dengan rekrutmen an seleksi SDM, kesejahteraan SDM & hubungan industrial, Kerjasama dengan perguruan tinggi/instansi terkait serta pelaksanaan kerja praktik/penelitian. Konseling karyawan, evaluasi/penilaian kinerja, pengembangan SDM & Diklat. 4) General Affairs Section a) Melakukan operasionalisasi kegiatan rumah tangga perusahaan, pengamaanan perusahaan, program CSR, dan penata-usahaan asset perusahaan. b) Melakukan kegiatan umum, meliputi: • Pelayanan makan karyawan. • Akomodasi tamu. • Pelaanan kendaraan dinas. • Fasilitas kantor. • Meleber. 5) Corporate Secretary & Legal Departement Mengkoordinasikan dan melakukan fungsi perencanaan, pengorganisasian, pelaksanaan dan pengendalian terkait dengan operasionalisasi kegiatan : a) Mengkoordinir penyusunan rencana kerja perusahaan . 13 b) Kesektariatan, liaison officer, kehumasan dan protokoler perusahaan. c) Legal dan GCG Perusahaan ‘pelaporan perusahaan yang meliputi pelaporan kepada direksi, Dewan Komisaris, dan Pemegang Saham. 6) Corporate Secretary Section a) Melakukan operasionalisasi kegiatan yang terkait dengan kegiatan liaison officer, kehumasan, dan protokoler perusahaan. b) Pelporan perusahaan yang meliputi pelaporan kepada direksi, dewan komisaris, dan pemegang saham. 7) Leal Section Melakukan operasionalisasi kegiatan yang terkait dengan legal perizinan, dan GCG Perusahaan. 8) IT & Maintenance Departement a) Mengkoordinasikan dan melakukan operasionalisasi kegiatan yang terkait dengan manajemen IT, operasi dan layanan IT, serta pengelolaan seluruh kegiatan terkait sistem informasi perusahaan (IT) . b) Melakukan operasionalisasi kegiatan yang terkait dengan pemeliharaan dan perbaikan Gedung, mesih. Dan fasilitas lain di lingkungan perusahaan. 9) Information Technology Section Melakukan operasionalisasi kegiatan yang terkait dengan manajemen IT, operasi dan layanan IT, serta pengelolaan seluruh kegiatan terkait sistem informasi perusaahaan (IT). 10) Maintenance Section Melakukan operasionalisasi kegiatan yang terkait dengan pemeliharaan Gedung, mesin, dan fasilitas lain di lingkungan perusahaan. 11) MRTJ Project Melakukan dukungan kepada Nippon Sharyo untuk kegiatan terkit pekerjaan maintenance dalam masa garansi kereta MRT dalam rangka memenuhi kebutuhan pelanggan. 4. Proses Produksi (barang dan atau jasa) Reka menyediakan produk barang dan jasa, antara lain : 1. Jasa 14 a. Engineering PT. Rekaindo Global Jasa telah 23 tahun melayani jasa engineering, seperti 3D Design, Manufacturing Drawing, 3D Rendering, Animation, Calculation, Prototyping. b. Maintenance Menawarkan Rolling Stock Maintenance Service untuk produk kereta api Indonesia, seperti produk Rolling Stock PT. INKA (Persero) dan PT. MRT Jakarta. c. Manufacturing Melayani jasa manufaktur produk berupa Laser Cutting Service, Metal Forming, Assembly Welding, dan CNC Machining. 2. Produk a. Sleeper Seat Gen 1 Sleeper Seat produk REKA yang telah terpasang pada kereta sleeper produksi PT INKA, yang merupakan kereta pesanan dari PT KAI yang dioperasikan untuk jurusan Jakarta – Surabaya pada rangkaian kereta Argo Bromo Anggrek. Sleeper Seat produk REKA ini menggunakan material synthetic leather dan solid wood pada cover enclosure, genuine leather pada main seat, stainless pada body frame. b. Multimedia On Demand (MOD) REKA mendukung Multimedia On Demand (MOD) pada Sleeper Seat Gen 2 untuk menunjang fasilitas di dalam kereta. Multimedia berbasis android dari brand FUNTORO ini memiliki fitur dimensi layar 12 inch, memory 500 GB, musik, video, game, GPS, TV streaming, announcement, port USB 5 Volt, audio jack 3,5 mm, power supply 220VAC. c. Corrugated Bellow Merupakan elemen penghubung yang fleksibel antar gerbong kereta. Produk ini dikembangkan dan diproduksi pada tahun 2019. d. Train Propulsion & Auxiliary Produk Train Propulsion yang telah di-supply REKA berupa produk Static Inverter, Rectifier, VVVF, Converter dan Power distribution sebagai 15 pendukung pada motpr traksi untuk penggerak kereta dan kebutuhan kelistrikan. e. Sliding Plug Door System Pintu dengan sistem pneumatic ini dipasang pada gerbong kereta kelas eksekutif. Dengan fitur anti trap, sistem penguncian mekanik dan elektrik, waktu pembukaan pintu 10 detik, serta dapat secara manual ketika keadan darurat. f. PIDS PIDS (Passanger Information Display System) digunakan untuk menampilkan informasi real – time kepada penumpang di dalam kereta. Data informasi terintegrasi dengan main system kereta yang dapat diakses oleh kru melalui kabin kontrol. g. Lighting Product Komponen produk lampu yang digunakan di dalam kereta seperti reading lamp, saloon lamp, tail lamp, dan side signal lamp. h. Train Electric Panel Panel elektrik yang digunakan pada kereta seperti feeder panel passanger coach Bangladesh Railway, battery panel, control panel LRT Jabodetabek, instrument dashboard, relay MC sidewall panel LRT Jabodetabek, compressor panel, distribution panel, junction box panel, bus switch panel, AV panel, AC panel. i. Electrical Panel For Building Pada tahun 2020, REKA mencoba mengembangkan bisnis panel listrik dengan memproduksi panel listrik pada bangunan seperti sub distribution panel, distribution panel, HVAC panel, dan PJU panel. j. Manufacture product Produk yang diproduksi oleh REKA atas permintaan pelanggan. Produk yang telah diproduksi oleh REKA seperti PERTASHOP 3000L, manual mini pump untuk jual beli BBM yang ada pada warung kecil, trolley jet V.1 untuk tempat mesin pesawat yang digunakan untuk pembelajaran, container LANUD, alat uji AC, modul ajar AC PPI, lampu ornamen, kafe kontainer, laser marking untuk souvenir, dan laser pemotong. 16 5. Peralatan dan bahan yang diperlukan untuk mewujudkan produk (barang atau jasa) yang diharapkan 1. Pipe Bending Machine Gambar 2.3 Pipe Bencing Machine 2. Laser Fiber Machine Gambar 2.4 Laser Fiber Machine 3. 3D Printer Gambar 2.5 3D Printer 17 4. Orbital Welding Machine Gambar 2.6 Orbital Welding Machine 5. Press Brake Bending Machine Gambar 2.7 Press Brake Bending Machine 6. Spring Forming Machine Gambar 2.8 Spring Forming Machine 7. Non Metal Laser & Grafir Machine Gambar 2.9 Non Metal Laser & Grafir Machine 18 8. CNC Router Machine Gambar 2.10 CNC Router Machine 9. Metal Marking Machine Gambar 2.11 Metal Marking Machine 10. Chemical Box Gambar 2.12 Chemical Box 11. Foam Sealing Machine 19 Gambar 2.13 Foam Sealing Machine 12. Band Saw Gambar 2.14 Band Saw 13. Welding Machine GMAW Inverter Gambar 2.15 Welding Machine GMAW Inverter 14. Welding Machine SMAW Inverter Gambar 2.16 Welding Machine SMAW Inverter 15. Welding Machine GTAW Inverter Gambar 2.17 Welding Maching GTAW Inverter 20 16. Welding Machine Spot Welding Inverter Gambar 2.18 Welding Machine Spot Welding Inverter 17. Crimping Machine Gambar 2.19 Crimping Machine 18. Cutting Cable Machine Gambar 2.20 Cutting Cable Machine B. Rencana Program dan Kegiatan Rencana kegiatan yang dilakukan selama bulan Agustus – Desember 2022 adalah mengenal sistem kerja PT. Rekaindo Global Jasa dan melakukan kegiatan yang berhubungan dengan konversi SKS / Mata Kuliah, Rencaha Program kegiatan dilakukan sebagai berikut: Tabel 1. Timeline Rencana Kegiatan dari Agustus-Desember No. Kegiatan Bulan 1 2 3 4 5 21 1 Pengenalan jobdesk kerja PT. Rekaindo 2 Melakukan konversi mata kuliah / SKS dengan membuat skematik gambar rangkaian dan analisis komponen 3 Mengerjakan project awal PT. Rekaindo Global Jasa yang berkaitan dengan konversi mata kuliah / SKS 4 Kerja lapangan di lapangan untuk mengecek kondisi project 5 Melakukan finishing tugas akhir, seperti menyelesaikan project di PT. Rekaindo Global Jasa 22 BAB III PERSIAPAN A. Persiapan a. Melakukan Pembekalan Persiapan dilakukan dengan melaksanakan sesi pembekalan mengenai mata kuliah yang akan dibutuhkan pada PT Rekaindo Global Jasa. 1. Elektronika Daya 2. Pemrograman Komputer 3. Pengenalan Software PSIM b. Membuat Timeline Kegiatan No. 1 Kegiatan (Minggu Ke-) Aug Sept Okt Nov 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Pengenalan jobdesk kerja PT. Rekaindo 2 Melakukan konversi mata kuliah / SKS 3 Pembuatan Program Running Text Berbasis Arduino dan MySQL phpMyAdmin 4 Pembuatan Program CCTV Berbasis QtCreator 5 Pembuatan Artificial Intelligence untuk Deteksi Coupler 23 kereta Menggunakan CCTV 6 7 Pembuatan Program PLC Pintu Kereta Menggunakan PLC WAGO Optimalisasi Program CCTV pada HMI Berbasis Ubuntu B. Sumber Daya Manusia a. Pengenalan area kerja Pengenalan area kerja membuat kelompok khusus yang akan menangani pekerjaan-pekerjaan yang diberikan oleh mentor, kelompok beranggotakan 1. Ade Pengalasan, 2. Muhammad Fikri, dan 3. Muhammad Haikal Hanif. b. Pembuatan Program Running Text Berbasis Arduino dan MySQL phpMyAdmin Pembuatan program running text berbasis Arduiono dan MySQL phpMyAdmin membuat kelompok khusus yang akan menangani pekerjaan tersebut, kelompok k beranggotakan 1. Ade Pengalasan, 2. Muhammad Fikri, dan 3. Muhammad Haikal Hanif. c. Pembuatan Program CCTV Berbasis QtCreator Pembuatan program CCTV berbasis QtCreator membuat kelompok khusus yang akan menangani pekerjaan tersebut, kelompokvberanggotakan 1. Ade Pengalasan, 2. Muhammad Fikri, dan 3. Muhammad Haikal Hanif. 24 d. Pembuatan Artificial Intelligence untuk Deteksi Coupler kereta Menggunakan CCTV Pembuatan Artifivial Intelligence untuk deteksi coupler kereta menggunakan CCTV membuat kelompok khusus yang akan menangani pekerjaan tersebut, kelompok beranggotakan 1. Ade Pengalasan, 2. Muhammad Fikri, dan 3. Muhammad Haikal Hanif. e. Pembuatan Program PLC Pintu Kereta Menggunakan PLC WAGO Pembuatan program PLC pintu kereta menggunakan PLC WAGO membuat kelompok khusus yang akan menangani pekerjaan tersebut, kelompok beranggotakan 1. Ade Pengalasan, 2. Muhammad Fikri, dan 3. Muhammad Haikal Hanif. f. Optimalisasi Program CCTV pada HMI Berbasis Ubuntu Optimalisasi program CCTV pada HMI berbasis ubuntu membuat kelompok khusus yang akan menangani pekerjaan tersebut, kelompok beranggotakan 1. Ade Pengalasan, 2. Muhammad Fikri, dan 3. Muhammad Haikal Hanif. g. Pembuatan Program Modbus untuk Gardu Traksi Pembuatan program Modbus untuk gardu traksi membuat kelompok khusus yang akan menangani pekerjaan tersebut, kelompok beranggotakan 1. Ditha Ihda Liany, 2. Muhammad Haikal Hanif, 3. Muhammad Yoga Pangestu, dan 4. Novia Endriani. 25 BAB IV A. Pelaksanaan Program PELAKSANAAN Program Kompetisi Kampus Merdeka (PK-KM) MSIB yang dilakukan dalam rentang waktu dari tanggal 23 Agustus 2022 hingga 22 Desember 2022 memiliki capaian yang dirangkum dalam bentuk tabel rincian kegiatan selama di PT Rekaindo Global Jasa. Secara umum, kegiatan magang ini diisi dengan mengikuti kegiatan keahlian khusus mulai dari pengenalan perusahaan, penyelesaian proyek komponen untuk kereta tram di Taman Mini Indonesia Indah, penyelesaian proyek kereta modul untuk fasilitas belajar di Politeknik Negeri Madiun, hingga proyek konversi mata kuliah. 1. Pemrograman Running Text pada LCD P4.75 Kegiatan keahlian ini berfokus pada pengenalan pemrograman Arduino dengan Library RONN. Selain itu, dilakukan juga pengenalan komponen pada LCD Running Text 4 panel menggunakan Library RONN sebagai animator. Percobaan perancangan Running Text 4 panel yang digabung menjadi satu tampilan program. Melalui topik pekerjaan ini, saya membahas dan mempelajari melalui diskusi tim, konsultasi dengan mentor lapangan, dan pencarian referensi melalui internet. Saya melakukan pembelajaran pembuatan Running Text pada LED 4 Panel untuk Tram Mover Taman Mini Indonesia Indah. Sasaran utama dari pembuatan Running Text ini adalah untuk membuat animasi, teks, dan transisisi antarteks maupun antara teks dengan logo yang diintegrasikan ke layar besar yang terdiri dari LED 4 panel gabungan sehingga membentuk animasi dan pemunculan teks yang besar. Integrasi antara arduino dengan server phpMyAdmin dengan basis server maker Laragon membuat tulisan pada layar dapat dimodifikasi secara jarak jauh menggunakan server local host. Dengan memasukkan tulisan yang diinginkan, maka tulisan tersebut akan muncul di layar panel LCD. Karena panel ini membagi tulisan menjadi dua baris, maka kami perlu melakukan rekayasa tipe data yang dapat memisahkan sebuah data menjadi beberapa data yang akan diletakkan di dua baris berbeda. 26 Gambar 4.1 2. Pemrograman CCTV dengan Image Processing Pada kegiatan ini, proyek dilakukan dengan memrogram CCTV untuk dapat tampil di perangkat komputer menggunakan bantuan perangkat lunak compiler QtCreator. Mencoba merancang antarmuka dengan bahasa kode python. Program disusun secara bertahap dari menampilkan jendela kosong, berkembang ke menampilkan kamera laptop, hingga melakukan berbagai optimalisasi sehingga program mampu menampilkan CCTV dengan jendela program sederhana. 27 3. Train Coupler Detection Kegiatan ini meliputi pembuatan Artificial Intelligence. Berbagai percobaan dalam membuat Artificial Intelligence telah dilakukan mulai dari pembuatan program menggunakan beberapa jenis bahasa program seperti bahasa Python dan bahasa C. Pada akhirnya, bahasa Python menjadi jenis bahasa program yang paling efektif dan efisien untuk mencapai goal yang sudah ditetapkan oleh mentor atau pembimbing kegiatan keahlian ini karena bahasa Python lebih mudah dimengerti walaupun kecepatan compiling tidak secepat bahasa C. Selain itu, pembuatan Artificial Intelligence juga memanfaatkan fasilitas Google Colab agar mempermudah compiling secara bertahap dan memberikan tindakan perbaikan eror dengan lebih efisien. 28 4. Train Door Wago PLC Proyek yang selanjutnya dilakukan pada kegiatan keahlian yang dibimbing oleh mentor lapangan adalah pembuatan rangkaian PLC untuk pintu kereta. Pembuatan rangkaian ini merupakan simulasi pembukaan serta penutupan pintu kereta menggunakan tombol sebagai input dan relay serta buzzer sebagai outputnya. Pada penerapannya di PLC hingga ke hardware berupa prototipe pintu kereta, hasilnya akan berupa pembukaan pintu kereta secara perlahan dengan indikator buzzer menyala hingga pintu selesai membuka. Sebaliknya, ketika pintu menutup, pintu kereta akan perlahan menutup dengan indikator buzzer menyala hingga pintu selesai menutup. 29 30 5. HMI Interface PIDS PNM Proyek keahlian yang selanjutnya ditugaskan setelah menyelesaikan proyek PLC pintu kereta adalah optimalisasi Interface pada HMI dengan sistem operasi Ubuntu. Proyek ini merupakan lanjutan dari pembuatan program CCTV dengan image processing karena sebelumnya program dibuat di perangkat dengan sistem operasi Windows sedangkan rencana penerapan program di lapangan adalah menggunakan perangkat dengan sistem operasi Ubuntu. Karena sistem operasi Windows dan juga Ubuntu memiliki perbedaan yang cukup signifikan dalam penamaan syntax dan kode program, kegiatan optimalisasi CCTV ini dirangkum ke dalam satu program kegiatan keahlian yang berbeda. Dengan bantuan mentor dan tim peserta magang yang lain, proyek dapat terselesaikan dengan berbagai penyesuaian dan pengompilasian kompleks. 31 B. Capaian Program Kegiatan magang ini memiliki capaian program yang selanjutnya akan dilakukan konversi atau pengakuan nilai mata kuliah selama melaksanakan kegiatan PK-KM di PT Rekaindo Global Jasa dari tanggal 23 Agustus 2022 hingga 22 Desember 2022. Mata kuliah yang diajukan untuk melakukan pengonversian terdiri dari beberapa subjek yang sudah ditentukan sesuai prodi. 1. Mata Kuliah Praktik Teknik Antarmuka Indikator : 1. Mahasiswa mampu menjelaskan konsep dasar antarmuka dan mengapa antarmuka perlu ada. 2. Mahasiswa mampu menjelaskan dan menggunakan standar-standar antarmuka RS-485 dan Modbus. Bobot SKS : 2 SKS Teknik antarmuka merupakan ilmu komputer yang melibatkan komunikasi antara beberapa perangkat keras, dan perangkat lunak. Implementasi komunikasi antar muka adalah antara prosesor atau komputer dengan perangkat periferal yang 32 bertindak sebagai jembatan untuk memungkinkan terjadinya hubungan komunikasi sehingga kedua perangkat dapat bertukar data dengan benar. Perencanaan sambungan merupakan bagian penting dalam dunia kelistrikan. Dalam bidang elektronika, kini telah dikembangkan sistem komunikasi yang memungkinkan penggunanya untuk mengolah data, menawarkan berbagai kemudahan dan efisiensi dalam pengiriman data, sehingga sistem tersebut bekerja secara optimal sebagai sarana komunikasi. RS485 merupakan teknologi komunikasi serial yang dikembangkan sebagai sistem komunikasi yang dapat digunakan dalam jarak jauh yaitu hingga 1,2 kilometer. Biasanya digunaka untuk komunikasi one-to-many, menghubungkan 32 perangkat pengisi daya secara bersamaan hanya dengan dua kabel. Modbus dengan RS485 adalah komunikasi multipoint yang dilakukan oleh master dan slave. Modbus saling terhubung menggunakan Programmable Logic Controller (PLC) bermerk wago, Human Machine Interface (HMI), I/O device¸dan sambungan komunikasi USB-RS485 atau RJ45-RS485 dengan perangkat lunak monitoring gardu traksi berbasis QtCreator. 1. Desain User Interface a. Menu Gardu Traksi, pada menu ini terdapat 5 menu yang terdiri dari pengenalan komponen, skema elektrik, monitoring, layout, dan about. Gambar. Desain menu gardu Traksi 33 Gambar. Desain menu monitoring gardu traksi Gambar. Desain menu Skema elektrik gardu traksi Gambar. . Desain menu Pengenalan Komponen Gambar. . Desain menu Layout Gardu Traksi 34 b. Program Qledindictor.cpp Gambar. Program Qledindicator.cpp #include <QPainter> #include "qledindicator.h" const qreal qLedindicator::scaledSize = 2000; /* Visual Studio static const mess */ qLedindicator::qLedindicator(QWidget *parent) : QAbstractButton(parent) { setFixedSize(28,28); setCheckable(true); onColor1 = QColor(0,255,0); onColor2 = QColor(0,192,0); offColor1 = QColor(255,0,0); offColor2 = QColor(255,0,0); } void qLedindicator::ledState_clicked(bool checked) { setChecked(true); update(); } void qLedindicator::setLedSize(int size) { setFixedSize(size+10, size+10); update(); } void qLedindicator::resizeEvent(QResizeEvent *event) { 35 } update(); void qLedindicator::paintEvent(QPaintEvent *event) { qreal realSize = qMin(width(), height()); QRadialGradient gradient; QPainter painter(this); QPen pen(Qt::black); pen.setWidth(1); painter.setRenderHint(QPainter::Antialiasing); painter.translate(width()/2, height()/2); painter.scale(realSize/scaledSize, realSize/scaledSize); gradient = QRadialGradient (QPointF(-500,-500), 1500, QPointF(500,-500)); gradient.setColorAt(0, QColor(224,224,224)); gradient.setColorAt(1, QColor(28,28,28)); painter.setPen(pen); painter.setBrush(QBrush(gradient)); painter.drawEllipse(QPointF(0,0), 500, 500); gradient = QRadialGradient (QPointF(500,500), 1500, QPointF(500,500)); gradient.setColorAt(0, QColor(224,224,224)); gradient.setColorAt(1, QColor(28,28,28)); painter.setPen(pen); painter.setBrush(QBrush(gradient)); painter.drawEllipse(QPointF(0,0), 450, 450); painter.setPen(pen); if( isChecked() ) { gradient = QRadialGradient (QPointF(-500,-500), 1500, QPointF(-500,-500)); gradient.setColorAt(0, onColor1); gradient.setColorAt(1, onColor2); } else { gradient = QRadialGradient (QPointF(500,500), 1500, QPointF(500,500)); gradient.setColorAt(0, offColor1); gradient.setColorAt(1, offColor2); } painter.setBrush(gradient); painter.drawEllipse(QPointF(0,0), 400, 400); } 36 c. Program Mainwindow.cpp Gambar. Program mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QTextStream> #include <QMessageBox> #include <QFileDialog> #include <QFile> #include <QDebug> #include <QDesktopServices> #include <QScrollArea> //header modbbus #include <QUrl> #include <QtCore> #include <QtGui> #include <QModbusTcpClient> int flag_Gardu_komponen = 0; int flag_Gardu_modulAjar = 0; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) , lastRequest(nullptr)//modbus init variable , modbusDevice() ,m_coils(99999, false) ,m_holdingRegisters(99999, 0u) //modbus init variable { ui->setupUi(this); this->setWindowIcon(QIcon(":/picture_Gardu/logo.ico")); this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint); 37 /*==========DIRECTORY DOWNLOAD DATASHEET==========*/ k_Path = "/M:/!TITIP DEWI/1. Modul Ajar PNM/Program QT/Monitoring_Gardu/Datasheet/5_Gardu/Komponen"; ma_Path = "/M:/!TITIP DEWI/1. Modul Ajar PNM/Program QT/Monitoring_Gardu/Datasheet/5_Gardu/Modul Ajar"; ui->stackedWidget->setCurrentIndex(7); ui->Led_POWER_ON->setLedSize(80); ui->Led_HSCB->setLedSize(80); ui->Led_Proteksi_Voltage->setLedSize(80); ui->Led_Proteksi_Current->setLedSize(80); ui->Led_Frequency->setLedSize(80); ui->Led_Ground_Fault->setLedSize(80); /*==========LED DI MENU SKEMATIK==========*/ ui->Led_Genset->setLedSize(45); ui->Led_HSCB_1->setLedSize(45); ui->Led_Kereta->setLedSize(45); //inisialisasi modbus if (modbusDevice) { modbusDevice->disconnectDevice(); delete modbusDevice; modbusDevice = nullptr; } modbusDevice = new QModbusTcpClient(this); if (!modbusDevice) return; if (modbusDevice->state() != QModbusDevice::ConnectingState) { const QUrl url = QUrl::fromUserInput(ipSlave); modbusDevice>setConnectionParameter(QModbusDevice::NetworkPortParameter, url.port()); modbusDevice>setConnectionParameter(QModbusDevice::NetworkAddressParamet er, url.host()); modbusDevice->setTimeout(1000); modbusDevice->setNumberOfRetries(3); if (!modbusDevice->connectDevice()) { ui->statusbar->setStyleSheet("color: rgb(255, 0, 0)"); 38 ui->statusbar->showMessage(tr("Connect failed: ") + modbusDevice->errorString(), 1000); } else { timerReceiveModbus= new QTimer(); timerReceiveModbus->setTimerType(Qt::PreciseTimer); QObject::connect(timerReceiveModbus, SIGNAL(timeout()), this,SLOT(sendreadRequest())); } } else { modbusDevice>disconnectDevice();/*stateChanged(QModbusDevice::Unconnected State);*/ } timerScanPort = new QTimer(); timerScanPort->setTimerType(Qt::PreciseTimer); //connect(modbusDevice, SIGNAL(stateChanged(QModbusDevice::State)), this, SLOT(stateChanged(QModbusDevice::State))); //END INIT MODBUS } MainWindow::~MainWindow() { if (modbusDevice){ modbusDevice->disconnectDevice(); delete modbusDevice; } delete ui; } /*KOMUNIKASU MODBUS*/ void MainWindow::stateChanged(QModbusDevice::State state) { QString s; switch(state) { case QModbusDevice::UnconnectedState: s = "UnconnectedState!"; timerScanPort->singleShot(1000,this, &MainWindow::koneksi_modbus); break; case QModbusDevice::ConnectingState: s = "ConnectingState!"; 39 break; case QModbusDevice::ConnectedState: s = "ConnectedState!"; break; case QModbusDevice::ClosingState: s = "ClosingState!"; timerScanPort->singleShot(1000,this, &MainWindow::koneksi_modbus); break; } ui->statusbar->setStyleSheet("color: rgb(0, 0, 0)"); ui->statusbar->showMessage(s,1000); } void MainWindow::koneksi_modbus() { /*==================== KONFIGURASI MODBUS =========================================*/ timerReceiveModbus->stop(); if (modbusDevice) { modbusDevice->disconnectDevice(); delete modbusDevice; modbusDevice = nullptr; } modbusDevice = new QModbusTcpClient(this); if (!modbusDevice) return; { if (modbusDevice->state() != QModbusDevice::ConnectingState) const QUrl url = QUrl::fromUserInput(ipSlave); modbusDevice>setConnectionParameter(QModbusDevice::NetworkPortParameter, url.port()); modbusDevice>setConnectionParameter(QModbusDevice::NetworkAddressParamet er, url.host()); modbusDevice->setTimeout(1000); modbusDevice->setNumberOfRetries(3); if (!modbusDevice->connectDevice()) { ui->statusbar->setStyleSheet("color: rgb(255, 0, 0)"); 40 ui->statusbar->showMessage(tr("Connect failed: ") + modbusDevice->errorString(), 1000); } else { timerReceiveModbus= new QTimer(); timerReceiveModbus->setTimerType(Qt::PreciseTimer); QObject::connect(timerReceiveModbus, SIGNAL(timeout()), this,SLOT(sendreadRequest())); timerReceiveModbus->start(10); } } else { modbusDevice>disconnectDevice();/*stateChanged(QModbusDevice::Unconnected State);*/ } connect(modbusDevice, SIGNAL(stateChanged(QModbusDevice::State)), this, SLOT(stateChanged(QModbusDevice::State))); } void MainWindow::sendreadRequest() { slaveAddress=1; MainWindow::statereadReady(slaveAddress,0,5, QModbusDataUnit::Coils); MainWindow::statereadReady(slaveAddress,0,28, QModbusDataUnit::HoldingRegisters); } void MainWindow::readDataModbus() { if (!modbusDevice) return; auto reply = qobject_cast<QModbusReply *>(sender()); if (!reply) return; if (reply->error() == QModbusDevice::TimeoutError) { ui->statusbar->setStyleSheet("color: rgb(255, 0, 0)"); ui->statusbar->showMessage(tr("Read response error: %1 (code: 0x%2)"). arg(reply->errorString()). arg(reply->error(), -1, 16), 1000); 41 } else if (reply->error() == QModbusDevice::ProtocolError) { ui->statusbar->setStyleSheet("color: rgb(255, 0, 0)"); ui->statusbar->showMessage(tr("Read response error: %1 (Modbus exception: 0x%2)"). arg(reply->errorString()). arg(reply->rawResult().exceptionCode(), -1, 16), 1000); } else if (reply->error() == QModbusDevice::NoError) { const QModbusDataUnit unit = reply->result(); for (uint i = 0; i < unit.valueCount(); i++) { const QString entry = tr("Address: %1, Value: %2, RegType : %3").arg(unit.startAddress() + i).arg(QString::number(unit.value(i),unit.registerType() <= QModbusDataUnit::HoldingRegisters ? 10 : 16)).arg(unit.registerType()); qDebug() << entry; if(unit.registerType()==QModbusDataUnit::Coils){ ui->Led_HSCB->setChecked(unit.value(0)); ui->Led_HSCB_1->setChecked(unit.value(0)); ui->Led_Proteksi_Current->setChecked(unit.value(1)); ui->Led_Frequency->setChecked(unit.value(2)); ui->Led_Ground_Fault->setChecked(unit.value(3)); ui->Led_Proteksi_Voltage->setChecked(unit.value(4)); // ui->Led_Genset->setChecked(unit.value(5)); // ui->Led_POWER_ON->setChecked(unit.value(6)); // ui->Led_Kereta->setChecked(unit.value(7)); } if(unit.registerType()==QModbusDataUnit::HoldingRegisters){ double val_gen_freq = unit.value(0)/(double)10; quint16 val_gen_I_l1_MSB = unit.value(1)/(double)10; quint16 val_gen_I_l1_LSB = unit.value(2)/(double)10; quint32 val_gen_I_l1_gabung = static_cast<quint32>(val_gen_I_l1_MSB<<16) | static_cast<quint32>(val_gen_I_l1_LSB); quint16 val_gen_I_l2_MSB = unit.value(3)/(double)10; quint16 val_gen_I_l2_LSB = unit.value(4)/(double)10; quint32 val_gen_I_l2_gabung = static_cast<quint32>(val_gen_I_l2_MSB<<16) | static_cast<quint32>(val_gen_I_l2_LSB); 42 quint16 val_gen_I_l3_MSB = unit.value(5)/(double)10; quint16 val_gen_I_l3_LSB = unit.value(6)/(double)10; quint32 val_gen_I_l3_gabung = static_cast<quint32>(val_gen_I_l3_MSB<<16) | static_cast<quint32>(val_gen_I_l3_LSB); quint16 val_gen_P_l1_MSB = unit.value(7)/(double)10; quint16 val_gen_P_l1_LSB = unit.value(8)/(double)10; quint32 val_gen_P_l1_gabung = static_cast<quint32>(val_gen_P_l1_MSB<<16) | static_cast<quint32>(val_gen_P_l1_LSB); quint16 val_gen_P_l2_MSB = unit.value(9)/(double)10; quint16 val_gen_P_l2_LSB = unit.value(10)/(double)10; quint32 val_gen_P_l2_gabung = static_cast<quint32>(val_gen_P_l2_MSB<<16) | static_cast<quint32>(val_gen_P_l2_LSB); quint16 val_gen_P_l3_MSB = unit.value(11)/(double)10; quint16 val_gen_P_l3_LSB = unit.value(12)/(double)10; quint32 val_gen_P_l3_gabung = static_cast<quint32>(val_gen_P_l3_MSB<<16) | static_cast<quint32>(val_gen_P_l3_LSB); quint16 val_gen_V_l1_MSB = unit.value(13)/(double)10; quint16 val_gen_V_l1_LSB = unit.value(14)/(double)10; quint32 val_gen_V_l1_gabung = static_cast<quint32>(val_gen_V_l1_MSB<<16) | static_cast<quint32>(val_gen_V_l1_LSB); quint16 val_gen_V_l2_MSB = unit.value(15)/(double)10; quint16 val_gen_V_l2_LSB = unit.value(16)/(double)10; quint32 val_gen_V_l2_gabung = static_cast<quint32>(val_gen_V_l2_MSB<<16) | static_cast<quint32>(val_gen_V_l2_LSB); quint16 val_gen_V_l3_MSB = unit.value(17)/(double)10; quint16 val_gen_V_l3_LSB = unit.value(18)/(double)10; quint32 val_gen_V_l3_gabung = static_cast<quint32>(val_gen_V_l3_MSB<<16) | static_cast<quint32>(val_gen_V_l3_LSB); 1)+"°C"); double val_rtd_1 = unit.value(19)/(double)10; ui->nilai_RTD_1->setText(QString::number(val_rtd_1,'f', double val_rtd_2 = unit.value(20)/(double)10; 43 1)+"°C"); ui->nilai_RTD_2->setText(QString::number(val_rtd_2,'f', double val_acct_l1 = unit.value(21)/(double)10; ui->nilai_ACCT_L1>setText(QString::number(val_acct_l1,'f', 1)+"A"); double val_acct_l2 = unit.value(22)/(double)10; ui->nilai_ACCT_L2>setText(QString::number(val_acct_l2,'f', 1)+"A"); double val_acct_l3 = unit.value(23)/(double)10; ui->nilai_ACCT_L3>setText(QString::number(val_acct_l3,'f', 1)+"A"); double val_acpt = unit.value(24)/(double)10; ui->nilai_ACPT_L1->setText(QString::number(val_acpt,'f', 1)+"V"); ui->nilai_ACPT_L2->setText(QString::number(val_acpt,'f', 1)+"V"); ui->nilai_ACPT_L3->setText(QString::number(val_acpt,'f', 1)+"V"); double val_dcct = unit.value(25)/(double)10; ui->nilai_DCCT->setText(QString::number(val_dcct,'f', 1)+"A"); double val_dcpt = unit.value(26)/(double)10; ui->nilai_DCPT->setText(QString::number(val_dcpt,'f', 1)+"V"); double val_noise = unit.value(27)/(double)10; ui->nilai_Noise->setText(QString::number(val_noise,'f', 1)+"dB"); } } } reply->deleteLater(); } void MainWindow::statereadReady(int slaveAddress, int StartAddress, int Qty,QModbusDataUnit::RegisterType table) { // if (!modbusDevice) // return; if (auto *reply = modbusDevice>sendReadRequest(readRequest(StartAddress,Qty,table),slaveAddres s)) { if (!reply->isFinished()){ connect(reply, &QModbusReply::finished, this, &MainWindow::readDataModbus); } 44 } } else{ // broadcast replies return immediately delete reply; } QModbusDataUnit MainWindow::readRequest(int StartAddress, int Qty, QModbusDataUnit::RegisterType table) const { return QModbusDataUnit(table, StartAddress, Qty); } void MainWindow::statewriteReady(int slaveAddress, int StartAddress, int Qty, QModbusDataUnit::RegisterType table) { if (!modbusDevice) return; QModbusDataUnit writeUnit = writeRequest(StartAddress, Qty, table); table = writeUnit.registerType(); for (uint ii = 0; ii < writeUnit.valueCount(); ii++) { if (table == QModbusDataUnit::Coils) writeUnit.setValue(ii, m_coils[ii + writeUnit.startAddress()]); else writeUnit.setValue(ii, m_holdingRegisters[ii + writeUnit.startAddress()]); } if (auto *reply = modbusDevice->sendWriteRequest(writeUnit, slaveAddress)) { if (!reply->isFinished()) { connect(reply, &QModbusReply::finished, this, [this, reply]() { if (reply->error() == QModbusDevice::ProtocolError) { statusBar()->showMessage(tr("Write response error: %1 (Mobus exception: 0x%2)") .arg(reply->errorString()).arg(reply>rawResult().exceptionCode(), -1, 16), 1000); } else if (reply->error() != QModbusDevice::NoError) { statusBar()->showMessage(tr("Write response error: %1 (code: 0x%2)"). arg(reply->errorString()).arg(reply->error(), -1, 16), 1000); } 45 } } reply->deleteLater(); }); } else { // broadcast replies return immediately reply->deleteLater(); } QModbusDataUnit MainWindow::writeRequest(int StartAddress, int Qty, QModbusDataUnit::RegisterType table) const { return QModbusDataUnit(table, StartAddress, Qty); } /*END KOMUNIKASI MODBUS*/ /*=======================================MENU INTRODUKSI=============================*/ void MainWindow::on_PB_Intro_Gardu_clicked() { ui->stackedWidget->setCurrentIndex(1); } void MainWindow::on_pb_state_BACK_GARDU_Intro_clicked() { ui->stackedWidget->setCurrentIndex(0); } /*=======================================MENU INTRODUKSI KOMPONEN=============================*/ void MainWindow::on_pb_state_GARDU_Intro_Komponen_clicked() { ui->stackedWidget->setCurrentIndex(2); ui->stackedWidget_GARDU_Intro->setCurrentIndex(0); } void MainWindow::on_pb_state_BACK_GARDU_Pengenalan_Kompone n_clicked() { ui->stackedWidget->setCurrentIndex(1); } void MainWindow::on_PB_GARDU_LAA_clicked() 46 { flag_Gardu_komponen = 1; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("LISTRIK ALIRAN ATAS (LAA)"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/1 _LAA.jpeg"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\n\nListrik Aliran Atas atau LAA adalah suatu kawat transmisi yang\ndigunakan untuk mengalirkan tegangan dan daya dari gardu\ntraksi menuju kereta menggunakan pantograf up and down \npada kawat cartenery\n\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_GENSET_clicked() { flag_Gardu_komponen = 2; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("GENSET"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/2 _Genset.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nGenset (Generator Set) merupakan komponen utama yang mampu\nmembangkitkan tenaga listrik yang digunakan sebagai sumber utama\npada gardu traksi dengan menggunakan bahan bakar solar\n\nSPESIFIKASI\nEngine Rotating Speed : 1500 rpm\nPoer Output : 380 kVA\nFrequency : 50 Hz\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); 47 } void MainWindow::on_PB_GARDU_ACB_clicked() { flag_Gardu_komponen = 3; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("AIR CIRCUIT BREAKER (ACB)"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/3 _ACB.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nACB (Air Circuit Breaker) merupakan komponen yang berfungsi\nsebagai pemutus rangkaian saat terjadi kelebihan arus yang melewati\nkapasitas ACB. ACB memanfaatkan udara untuk meredam timbulnya busur api saat ACB dinyalakan, yang digunakan sebagai pengaman di\nsistem gardu traksi bagian tegangan AC\n\nSPESIFIKASI\nRated Current : 630A\nRated Operational Voltage : 690V\nPower Loss : 31 W\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_DSwitch_AC_clicked() { flag_Gardu_komponen = 4; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("DISCONNECTOR SWITCH AC"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/4 _Disconnector Switch AC.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); 48 ui->label_GARDU_Intro_Keterangan->setText("\nDisconnector Switch AC merupakan komponen pada Gardu Traksi\nyang berfungsi sebagai pemisah aliran listrik dari sumber yang masuk\nke gardu traksi, serta merupakan alat pengaman saat\n melakukan pemeliharaan\n\nSPESIFIKASI\nRated Current : 630A\nRated Voltage : 380 VAC\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_TRAFO_SET_UP_clicked() { flag_Gardu_komponen = 5; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("TRAFO STEP UP"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/5 _Trafo Step Up.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nTrafo Step Up merupakan komponen pada gardu traksi yang\ndigunakan untuk menaikkan tegangan 380VAC menjadi 600VAC. Ciri\ndari transformator step-up adalah memiliki jumlah lilitan sekunder yang\nlebih banyak daripada lilitan primer\n\nSPESIFIKASI\nFrequency : 50 Hz\nPrimary Voltage : 380 V\nSecondary Voltage : 560 V\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_RECTIFIER_clicked() { flag_Gardu_komponen = 6; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("RECTIFIER"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); 49 QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/6 _Rectifier.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\n\nRectifier merupakan komponen pada gardu traksi yang\ndigunakan untuk mengubah tegangan AC menjadi tegangan DC\n\nSPESIFIKASI\nInput Voltage : 1400 VAC\nPower : 560 kW\nDC Current : 300 A\nOutput Voltage : 1890 VDC\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_HSCB_clicked() { flag_Gardu_komponen = 7; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("HIGH SPEED CIRCUIT BREAKE"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/7 _HSCB.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nHSCB atau High Speed Circuit Breaker merupakan sebuah alat\nproteksi untuk lintas kereta api rel listrik, pada penggunaannya\nsama seperti circuit breaker yang ada pada umumnya, akan\ntetapi memiliki kecepatan dalam melakukan trip pada arus\nberlebih yang berfungsi untuk mengamankan pada tegangan DC\n\nSPESIFIKASI\nRated Voltage : 1000 VDC\nRated Current : 1000 A\nWorking ambient temperature : -25 to +70°C\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_DSwitch_DC_clicked() { flag_Gardu_komponen = 8; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); 50 ui->label_GARDU_Intro_Judul->setText("DISCONNECTOR SWITCH DC"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/8 _Disconnector Switch DC.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nDisconnected Switch DC merupakan komponen pada Gardu\nTraksi yang berfungsi sebagai pemisah aliran listrik dari\nsumber yang masuk ke gardu traksi dan merupakan alat\npengaman saat melakukan pemeliharaan\n\nSPESIFIKASI\nRated Voltage : 1500 VDC\nOperational Temperature : -40C to +80C\nRated Current : 160 to 630 A\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_TRAFO_ARUS_AC_clicked() { flag_Gardu_komponen = 9; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("CURRENT TRANSFORMATOR AC(ACCT)"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/9 _Trafo Arus AC.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nCurrent Transformator AC (ACCT) merupakan sensor untuk\npembacaan arus yang mengalir pada tegangan AC\n\nSPESIFIKASI\nSupply Voltage (±3 %) : ±15 V\nCurrent consumption : < ±20 mA\nInsulation resistance @ 500 VDC : > 500 MΩ\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } 51 void MainWindow::on_PB_GARDU_TRAFO_POTENSIAL_AC_clicked( ) { flag_Gardu_komponen = 10; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("POTENTIAL TRANSFORMATOR AC (ACPT)"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/1 0_Trafo Potensial AC.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nPotential Transformator AC (ACPT) merupakan sensor untuk\npembacaan tegangan yang mengalir pada tegangan AC\n\nSPESIFIKASI\nRated Output : 0-20mA/4-20mA/0-5V/1-5V/0-10V\nSupply Voltge (±5%) : +12V DC / +24V DC / +220V DC\nCurrent Consumption : ≤35mA\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_TRAFO_ARUS_DC_clicked() { flag_Gardu_komponen = 11; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("CURRENT TRANSFORMATOR DC (DCCT)"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/1 1_Trafo Arus DC.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nCurrent Transformator DC (DCCT) merupakan sensor untuk\npembacaan arus yang mengalir pada tegangan DC\n\nSPESIFIKASI\nInput 52 Impedance : 5KΩ\nInput Voltage : 25v\nInput Current : 5mA\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_TRAFO_POTENSIAL_DC_clicked( ) { flag_Gardu_komponen = 12; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("POTENTIAL TRANSFORMATOR DC (DCPT)"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/1 2_Trafo Potensial DC.jpg"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_Intro_Keterangan->setText("\nPotential Transformator DC (DCPT) merupakan sensor untuk\npembacaan tegangan yang mengalir pada tegangan DC\n\nSPESIFIKASI\nRated Output : 0-20mA/4-20mA/0-5V/1-5V/0-10V\nSupply Voltge (±5%) : +12V DC / +24V DC / +220V DC\nCurrent Consumption : ≤35mA\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_NOICE_SENSORE_clicked() { flag_Gardu_komponen = 13; ui->stackedWidget_GARDU_Intro->setCurrentIndex(1); ui->label_GARDU_Intro_Judul->setText("NOICE SENSORE"); ui->label_GARDU_Intro_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_komp(":/picture_Gardu/Komponen/5_Gardu/Komponen/1 3_Noice Sensore.png"); ui->label_GARDU_Intro_Gambar>setPixmap(pix_gardu_komp.scaled(250,250,Qt::KeepAspectRatio)); 53 ui->label_GARDU_Intro_Keterangan->setText("\nNoice Sensor merupakan sensor yang digunakan untuk\npembacaan kebisingan yang ditumbulkan pada unit genset\n\nSPESIFIKASI\nDC Supply : 10-30 Vdc\nMaximum power consumption : 1.2 W\nFrequency range : kHz 20Hz~12.5\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_Intro_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_pb_GARDU_Datasheet_clicked() { if(flag_Gardu_komponen==1){ QString file = k_Path+ QLatin1Char('/') +"1_LAA.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==2){ QString file = k_Path+ QLatin1Char('/') +"2_Genset.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==3){ QString file = k_Path+ QLatin1Char('/') +"3_ACB.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==4){ QString file = k_Path+ QLatin1Char('/') +"4_Disconnector Switch AC.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==5){ QString file = k_Path+ QLatin1Char('/') +"5_Trafo Step Up.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==6){ QString file = k_Path+ QLatin1Char('/') +"6_Rectifier.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==7){ QString file = k_Path+ QLatin1Char('/') +"7_HSCB.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } 54 else if(flag_Gardu_komponen==8){ QString file = k_Path+ QLatin1Char('/') +"8_Disconnector Switch DC.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==9){ QString file = k_Path+ QLatin1Char('/') +"9_Trafo Arus AC.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==10){ QString file = k_Path+ QLatin1Char('/') +"10_Trafo Potensial AC.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==11){ QString file = k_Path+ QLatin1Char('/') +"11_Trafo Arus DC.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==12){ QString file = k_Path+ QLatin1Char('/') +"12_Trafo Potensial DC.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_komponen==13){ QString file = k_Path+ QLatin1Char('/') +"13_Noice Sensore.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } } /*=======================================MENU INTRODUKSI MODUL AJAR=============================*/ void MainWindow::on_pb_state_GARDU_Intro_Modul_Ajar_clicked() { ui->stackedWidget->setCurrentIndex(3); ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(0); } 55 void MainWindow::on_pb_state_BACK_GARDU_Modul_Ajar_clicked() { ui->stackedWidget->setCurrentIndex(1); } void MainWindow::on_PB_GARDU_HMI_DIPLAY_clicked() { flag_Gardu_modulAjar = 1; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("HMI DISPLAY"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/1_HMI DISPLAY.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nHMI Display merupakan monitor yang digunakan untuk menampilkan\nprogram HMI (Human Machine Interface) pada modul ajar Gardu Traksi.\nTipe HMI Dissplay yang digunakan ini adalah MPPC1001PC\n\nSPESIFIKASI\nDisplay Size : 10,4 inch\nMax. Resolution : 1024 x 768\nPower Input : 24V DC\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Powe_Supply_clicked() { flag_Gardu_modulAjar = 2; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("POWER SUPPLY LRS-75"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/2_POWER SUPPLY LRS-75.png"); 56 ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPower Supply yang digunakan pada modul ajar memiliki 2 tipe, salah satu\ntipenya yaitu LRS-75. Tipe ini digunakan untuk mengubah tegangan 220V AC\nmenjadi 12V DC. Dengan menambahkan rangkaian buck-boost converter, power\nsupply ini digunakan untuk supplay daya komponen lain yang memiliki\nkebutuhan daya 15V DC\n\nSPESIFIKASI\nOutput Rated Power : 70W - 76.8W\nInput Voltage Range : 85 ~ 264VAC 120 ~ 373VDC\nProtection Over Load : 110 ~ 150% rated output power\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Power_Supply_2_clicked() { flag_Gardu_modulAjar = 3; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("POWER SUPPLY LRS-350"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/3_POWER SUPPLY LRS-350.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(300,300,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPower Supply LRS-350 merupakan komponen yang digunakan untuk mengubah\ntegangan 220V AC menjadi 24V DC. Power supply ini digunakan untuk supply\ndaya komponen lain yang memiliki kebutuhan daya 24V DC\n\nSPESIFIKASI\nProtection : Overload 110 - 140%\nOutput DC Voltage : 3.3V - 48V\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_MCB_clicked() { flag_Gardu_modulAjar = 4; 57 ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("MCB"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/4_MCB.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(280,280,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nMiniature Circuit Breaker merupakan komponen yang digunakan untuk\nmembatasi arus listrik ketika beban lebih. MCB akan otomatis memutus arus\nlistrik jika arus yang melewatinya melebihi arus nominal MCB tersebut\n\nSPESIFIKASI\nRated Current (In) : 10 A\nRated Short-Circuit (Ac) : 4.5kA\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_Main_clicked() { flag_Gardu_modulAjar = 5; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MAIN CONTROL"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/5_PLC MAIN CONTROL.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC Main Control yang digunakan merupakan PLC Modular. PLC Main Control\nmerupakan jenis PLC yang digunakan sebagai pengendali semua aktivitas PLC\nsesuai program yang dimasukkan, tipe PLC yang digunakan Wago, Main CPU\n750-8207/025001\n\nSPESIFIKASI\nCPU : Cortex A8, 600 MHz\nOperating System : Real-time Linux (with RT-Preempt patch)\nProgram Memory : 16 MB\n(Spesifikasi lain bisa dilihat pada Datasheet)"); 58 ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_PSU_clicked() { flag_Gardu_modulAjar = 6; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL POWER SUPPLY"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/6_PLC MODUL - POWER SUPPLY.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC Modul - Power Supply merupakann jenis PLC yang digunakan sebagai power\ndaya modul PLC lainnya, tipe modul PLC yang digunakan WAGO, 750-602\n\nSPESIFIKASI\nCurrent via power jumper contacts (max) : DC10 [A]\nVoltage via power jumper contacts (max) : 24 V DC\nOperating Temperature : 0°C ... +55°C\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_DI_clicked() { flag_Gardu_modulAjar = 7; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL DI"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/7_PLC MODUL - DI.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); 59 ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC Modul - DI (Digital Input) merupakan jenis modul PLC yang digunakan untuk\nmenerima sinyal masukan yang hanya berupa dua kondisi yaitu 0 atau 1,\ntipe modul PLC yang digunakan 7501405\n\nSPESIFIKASI\nSignal Type (voltage) : 24 VDC\nInput Current per Channel for Signal(0) typ : 0.6 A\nInput Filter (Digital) : 3 ms\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_DO_clicked() { flag_Gardu_modulAjar = 8; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL DO"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/8_PLC MODUL - DO.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC Modul - DO (Digital Output) merupakan jenis modul PLC yang digunakan\nuntuk mengirim suatu sinyal digital yang berasal dari perintah PLC menuju\nperalatan lain, tipe modul PLC yang digunakan WAGO, 750-530\n\nSPESIFIKASI\nSignal Type (voltage) : 24 VDC\nOutput Current per Channel : 0.5 A\nSwitching Frequency (max) : 2 kHz\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_AI_Tegangan_clicked() { flag_Gardu_modulAjar = 9; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL AI TEGANGAN"); 60 ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/9_PLC MODUL - AI TEGANGAN.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC MODUL - AI TEGANGAN merupakan jenis modul PLC yang digunakan untuk\nmenerima sinyal masukan berupa tegangan, kemudian di proses menjadi ADC,\ntipe modul PLC yang digunakan 750-468\n\nSPESIFIKASI\nSignal Type : 0 - 10V DC\nMax. Input Voltage : 35V\nResolution : 12 bits\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_AI_Arus_clicked() { flag_Gardu_modulAjar = 10; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL AI ARUS"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/10_PLC MODUL - AI ARUS.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC Modul - AI ARUS merupakan jenis modul PLC yang digunakan untuk\nmenerima sinyal masukan berupa arus, kemudian di proses menjadi ADC, tipe\nmodul PLC yang digunakan WAGO, 750455\n\nSPESIFIKASI\nSignal type (current) : 4 … 20 mADC\nSensor connection : 4 x (2-wire)\nResolution [bit] : 12 bits\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } 61 void MainWindow::on_PB_GARDU_Plc_RTD_clicked() { flag_Gardu_modulAjar = 11; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL RTD"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/11_PLC MODUL - RTD.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC MODUL - RTD (Resistive Temperature Detector) merupakan jenis modul PLC \nyang digunakan untuk menerima input analog dari resistansi sensor suhu\nPT-100, tipe yang digunakan WAGO, 750464\n\nSPESIFIKASI\nSensor Type : Pt-100\nCurrent Consumtion (5 V system supply) : 50mA\nIsolation : 500 V system/field\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_2_clicked() { flag_Gardu_modulAjar = 12; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL POWER MEASUREMENT"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/12_PLC MODUL - POWER MEASUREMENT.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC MODUL - POWER MEASUREMENT merupakan jenis modul PLC yang digunakan\nuntuk menerima sinyal masukan berupa transformasi arus kemudian di proses\nmenjadi ADC, tipe modul PLC 62 yang digunakan 750-493/000-001\n\nSPESIFIKASI\nFrequency range with deactivated DC filter : 0 … 2000 Hz\nLimit frequency : 7.2 kHz\nResolution [bit] : 16 bits\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_Interface_1_clicked() { flag_Gardu_modulAjar = 13; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL INTERFACE 1"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/14_PLC MODUL - INTERFACE 2.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(260,260,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC MODUL - INTERFACE 1 merupakan jenis modul PLC yang digunakan untuk\nmenghubungkan perangkat interface RS-485/-422 atau RS-232C ke sistem I/O\nWAGO 750. Tipe yang digunakan modul ini Wago, 750-652\n\nSPESIFIKASI\nSupply Voltage (system) : 5 VDC; via data contacts\nIsolation : 500 V system/field\nCurrent consumption (5V system supply) : 85 mA\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_Interface_2_clicked() { flag_Gardu_modulAjar = 14; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL INTERFACE 2"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); 63 QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/15_PLC MODUL - END MODUL.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC MODUL - INTERFACE 2 merupakan jenis modul yang digunakan\nuntuk menghubungkan perangkat interface RS-485/-422 atau\nRS-232C ke sistem I/O WAGO 750 dengan protocol CAN Bus. Tipe\nyang digunakan modul ini Wago, 750658\n\nSPESIFIKASI\nSupply Voltage (system) : 5 VDC; via data contacts\nIsolation (peak value) : Um = 500 V system/supply\nCurrent consumption (5V system supply) : 50 mA\n(Spesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_PB_GARDU_Plc_1_clicked() { flag_Gardu_modulAjar = 15; ui->stackedWidget_GARDU_ModulAjar->setCurrentIndex(1); ui->label_GARDU_ModulAjar_Judul->setText("PLC MODUL END"); ui->label_GARDU_ModulAjar_Judul->setFont(QFont("MS Shell Dlg 2", 17, QFont::Bold)); QPixmap pix_gardu_mod(":/picture_Gardu/Komponen/5_Gardu/Modul Ajar/15_PLC MODUL - END MODUL.png"); ui->label_GARDU_ModulAjar_Gambar>setPixmap(pix_gardu_mod.scaled(250,250,Qt::KeepAspectRatio)); ui->label_GARDU_ModulAjar_Keterangan->setText("\nPLC MODUL - END MODUL merupakan jenis modul PLC yang digunakan sebagai \nakhir rakitan PLC Modul sebagai pelengkap sirkuit data internal, tipe yang \ndigunakan WAGO, 750600\n\nSPESIFIKASI\nAmbient Temperature (operation) : 0 ..... +55ºC\nSurrounding air temperature (storage) : -25 .... +85 ºC\nSpesifikasi lain bisa dilihat pada Datasheet)"); ui->label_GARDU_ModulAjar_Keterangan->setFont(QFont("MS Shell Dlg 2", 10)); } void MainWindow::on_pb_GARDU_ModulAjar_Datasheet_clicked() { 64 if(flag_Gardu_modulAjar==1){ QString file = ma_Path+ QLatin1Char('/') +"1_HMI DISPLAY.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==2){ QString file = ma_Path+ QLatin1Char('/') +"2_POWER SUPPLY LRS-75.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==3){ QString file = ma_Path+ QLatin1Char('/') +"3_POWER SUPPLY LRS-3503_PLC Main.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==4){ QString file = ma_Path+ QLatin1Char('/') +"4_MCB.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==5){ QString file = ma_Path+ QLatin1Char('/') +"5_PLC MAIN CONTROL.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==6){ QString file = ma_Path+ QLatin1Char('/') +"6_PLC MODUL POWER SUPPLY.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==7){ QString file = ma_Path+ QLatin1Char('/') +"7_PLC MODUL DI.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==8){ QString file = ma_Path+ QLatin1Char('/') +"8_PLC MODUL DO.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==9){ 65 QString file = ma_Path+ QLatin1Char('/') +"9_PLC MODUL AI TEGANGAN.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==10){ QString file = ma_Path+ QLatin1Char('/') +"10_PLC MODUL AI ARUS.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==11){ QString file = ma_Path+ QLatin1Char('/') +"11_PLC MODUL RTD.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==12){ QString file = ma_Path+ QLatin1Char('/') +"12_PLC MODUL POWER MEASUREMENT.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==13){ QString file = ma_Path+ QLatin1Char('/') +"13_PLC MODUL INTERFACE 1.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==14){ QString file = ma_Path+ QLatin1Char('/') +"14_PLC MODUL INTERFACE 2.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } else if(flag_Gardu_modulAjar==15){ QString file = ma_Path+ QLatin1Char('/') +"15_PLC MODUL END MODUL.pdf"; QUrl url = QUrl::fromLocalFile(file); QDesktopServices::openUrl(url); } } /*=======================================MENU SKEMATIK============================*/ void MainWindow::on_PB_Elektrik_Gardu_clicked() { ui->stackedWidget->setCurrentIndex(4); 66 timerScanPort->singleShot(1000,this, &MainWindow::koneksi_modbus); } void MainWindow::on_pb_state_BACK_GARDU_Skematik_clicked() { ui->stackedWidget->setCurrentIndex(0); timerReceiveModbus->stop(); } /*=======================================MENU MONITORING============================*/ void MainWindow::on_PB_Monitoring_Gardu_clicked() { ui->stackedWidget->setCurrentIndex(5); timerScanPort->singleShot(1000,this, &MainWindow::koneksi_modbus); } void MainWindow::on_pb_state_BACK_GARDU_Monitoring_clicked() { ui->stackedWidget->setCurrentIndex(0); timerReceiveModbus->stop(); } /*=======================================LAYOUT RUANG GARDU============================*/ void MainWindow::on_PB_Layout_Gardu_clicked() { ui->stackedWidget->setCurrentIndex(6); } void MainWindow::on_pb_state_BACK_GARDU_Layout_clicked() { ui->label_Keterangan_Genset2->setText(" "); ui->label_Keterangan_Genset1->setText("1"); ui->label_Keterangan_Trafo2->setText(" "); ui->label_Keterangan_Trafo1->setText("1"); ui->label_Keterangan_BoxAC_2->setText(" "); ui->label_Keterangan_BoxAC_1->setText("1"); ui->label_Keterangan_BoxDC_2->setText(" "); 67 ui->label_Keterangan_BoxDC_1->setText("1"); ui->label_Keterangan_ModulAjar_2->setText(" "); ui->label_Keterangan_ModulAjar_1->setText("1"); } ui->stackedWidget->setCurrentIndex(0); void MainWindow::on_pb_Layout_Genset_clicked() { if(ui->label_Keterangan_Genset1->text()=="1"){ ui->label_Keterangan_Genset2->setText("GENERATOR SET"); ui->label_Keterangan_Genset1->setText("0"); } else if(ui->label_Keterangan_Genset2->text()=="GENERATOR SET"){ ui->label_Keterangan_Genset2->setText(" "); ui->label_Keterangan_Genset1->setText("1"); } } void MainWindow::on_pb_Layout_Trafo_clicked() { if(ui->label_Keterangan_Trafo1->text()=="1"){ ui->label_Keterangan_Trafo2>setText("TRANSFORMATOR"); ui->label_Keterangan_Trafo1->setText("0"); } else if(ui->label_Keterangan_Trafo2>text()=="TRANSFORMATOR"){ ui->label_Keterangan_Trafo2->setText(" "); ui->label_Keterangan_Trafo1->setText("1"); } } void MainWindow::on_pb_Layout_BoxAC_clicked() { if(ui->label_Keterangan_BoxAC_1->text()=="1"){ ui->label_Keterangan_BoxAC_2->setText("BOX ALTERNATOR\nCURRENT (AC)"); ui->label_Keterangan_BoxAC_1->setText("0"); } else if(ui->label_Keterangan_BoxAC_2->text()=="BOX ALTERNATOR\nCURRENT (AC)"){ ui->label_Keterangan_BoxAC_2->setText(" "); ui->label_Keterangan_BoxAC_1->setText("1"); } } 68 void MainWindow::on_pb_Layout_BoxDC_clicked() { if(ui->label_Keterangan_BoxDC_1->text()=="1"){ ui->label_Keterangan_BoxDC_2->setText("BOX DIRECT\nCURRENT (DC)"); ui->label_Keterangan_BoxDC_1->setText("0"); } else if(ui->label_Keterangan_BoxDC_2->text()=="BOX DIRECT\nCURRENT (DC)"){ ui->label_Keterangan_BoxDC_2->setText(" "); ui->label_Keterangan_BoxDC_1->setText("1"); } } void MainWindow::on_pb_Layout_ModulAjar_clicked() { if(ui->label_Keterangan_ModulAjar_1->text()=="1"){ ui->label_Keterangan_ModulAjar_2->setText("MODUL AJAR\nGARDU TRAKSI"); ui->label_Keterangan_ModulAjar_1->setText("0"); } else if(ui->label_Keterangan_ModulAjar_2->text()=="MODUL AJAR\nGARDU TRAKSI"){ ui->label_Keterangan_ModulAjar_2->setText(" "); ui->label_Keterangan_ModulAjar_1->setText("1"); } } void MainWindow::on_pb_Layout_NoiceSensor_clicked() { if(ui->label_Keterangan_NoiceSensor->text()=="1"){ ui->label_Keterangan_NoiceSensor_2->setText("SENSOR NOISE"); ui->label_Keterangan_NoiceSensor->setText("0"); } else if(ui->label_Keterangan_NoiceSensor_2->text()=="SENSOR NOISE"){ ui->label_Keterangan_NoiceSensor_2->setText(" "); ui->label_Keterangan_NoiceSensor->setText("1"); } } void MainWindow::on_pb_GARDU_Layout_Room_toBoxAC_clicked() { ui->stackedWidget->setCurrentIndex(8); ui->label_Keterangan_Genset2->setText(" "); 69 } ui->label_Keterangan_Genset1->setText("1"); ui->label_Keterangan_Trafo2->setText(" "); ui->label_Keterangan_Trafo1->setText("1"); ui->label_Keterangan_BoxAC_2->setText(" "); ui->label_Keterangan_BoxAC_1->setText("1"); ui->label_Keterangan_BoxDC_2->setText(" "); ui->label_Keterangan_BoxDC_1->setText("1"); ui->label_Keterangan_ModulAjar_2->setText(" "); ui->label_Keterangan_ModulAjar_1->setText("1"); void MainWindow::on_pb_GARDU_Layout_Room_toBoxDC_clicked() { ui->stackedWidget->setCurrentIndex(9); } ui->label_Keterangan_Genset2->setText(" "); ui->label_Keterangan_Genset1->setText("1"); ui->label_Keterangan_Trafo2->setText(" "); ui->label_Keterangan_Trafo1->setText("1"); ui->label_Keterangan_BoxAC_2->setText(" "); ui->label_Keterangan_BoxAC_1->setText("1"); ui->label_Keterangan_BoxDC_2->setText(" "); ui->label_Keterangan_BoxDC_1->setText("1"); ui->label_Keterangan_ModulAjar_2->setText(" "); ui->label_Keterangan_ModulAjar_1->setText("1"); /*=======================================LAYOUT BOX AC============================*/ /*=============================================ME NU ABOUT=========================================== ===============*/ void MainWindow::on_PB_About_clicked() { ui->stackedWidget->setCurrentIndex(7); } void MainWindow::on_pb_back_copyright_clicked() { 70 ui->stackedWidget->setCurrentIndex(0); } /*================================================ ================================================== =====*/ bool flag_hscb=false; void MainWindow::on_pb_HSCB_clicked() { if(!flag_hscb){ slaveAddress =1; indexRegister = 32768; m_coils.setBit(indexRegister,1); MainWindow::statewriteReady(slaveAddress,indexRegister,1, QModbusDataUnit::Coils); flag_hscb =true; } else { slaveAddress =1; indexRegister = 32768; m_coils.setBit(indexRegister,0); MainWindow::statewriteReady(slaveAddress,indexRegister,1, QModbusDataUnit::Coils); flag_hscb =false; } } /*=======================================LAYOUT BOX AC============================*/ void MainWindow::on_pb_state_BACK_GARDU_Layout_BoxAC_clicke d() { ui->stackedWidget->setCurrentIndex(0); } ui->label_Keterangan_DSwitch_AC_2->setText(" "); ui->label_Keterangan_DSwitch_AC_1->setText("1"); ui->label_Keterangan_ACB_2->setText(" "); ui->label_Keterangan_ACB_1->setText("1"); ui->label_Keterangan_ACCT_2->setText(" "); ui->label_Keterangan_ACCT_1->setText("1"); ui->label_Keterangan_RECTIFIER_2->setText(" "); ui->label_Keterangan_RECTIFIER_1->setText("1"); ui->label_Keterangan_ACPT_2->setText(" "); ui->label_Keterangan_ACPT_1->setText("1"); 71 void MainWindow::on_pb_GARDU_Layout_BoxAC_toRoom_clicked() { ui->stackedWidget->setCurrentIndex(6); } ui->label_Keterangan_DSwitch_AC_2->setText(" "); ui->label_Keterangan_DSwitch_AC_1->setText("1"); ui->label_Keterangan_ACB_2->setText(" "); ui->label_Keterangan_ACB_1->setText("1"); ui->label_Keterangan_ACCT_2->setText(" "); ui->label_Keterangan_ACCT_1->setText("1"); ui->label_Keterangan_RECTIFIER_2->setText(" "); ui->label_Keterangan_RECTIFIER_1->setText("1"); ui->label_Keterangan_ACPT_2->setText(" "); ui->label_Keterangan_ACPT_1->setText("1"); void MainWindow::on_pb_GARDU_Layout_BoxAC_toBoxDC_clicked() { ui->stackedWidget->setCurrentIndex(9); } ui->label_Keterangan_DSwitch_AC_2->setText(" "); ui->label_Keterangan_DSwitch_AC_1->setText("1"); ui->label_Keterangan_ACB_2->setText(" "); ui->label_Keterangan_ACB_1->setText("1"); ui->label_Keterangan_ACCT_2->setText(" "); ui->label_Keterangan_ACCT_1->setText("1"); ui->label_Keterangan_RECTIFIER_2->setText(" "); ui->label_Keterangan_RECTIFIER_1->setText("1"); ui->label_Keterangan_ACPT_2->setText(" "); ui->label_Keterangan_ACPT_1->setText("1"); void MainWindow::on_pb_Layout_DSwitch_AC_clicked() { if(ui->label_Keterangan_DSwitch_AC_1->text()=="1"){ ui->label_Keterangan_DSwitch_AC_2>setText("DISCONNECTOR\nSWITCH AC"); ui->label_Keterangan_DSwitch_AC_1->setText("0"); } else if(ui->label_Keterangan_DSwitch_AC_2>text()=="DISCONNECTOR\nSWITCH AC"){ ui->label_Keterangan_DSwitch_AC_2->setText(" "); ui->label_Keterangan_DSwitch_AC_1->setText("1"); } } 72 void MainWindow::on_pb_Layout_ACB_clicked() { if(ui->label_Keterangan_ACB_1->text()=="1"){ ui->label_Keterangan_ACB_2->setText("AIR CIRCUIT\nBREAKER (ACB)"); ui->label_Keterangan_ACB_1->setText("0"); } else if(ui->label_Keterangan_ACB_2->text()=="AIR CIRCUIT\nBREAKER (ACB)"){ ui->label_Keterangan_ACB_2->setText(" "); ui->label_Keterangan_ACB_1->setText("1"); } } void MainWindow::on_pb_Layout_ACCT_clicked() { if(ui->label_Keterangan_ACCT_1->text()=="1"){ ui->label_Keterangan_ACCT_2>setText("CURRENT\nTRANSFORMATOR\nAC (ACCT)"); ui->label_Keterangan_ACCT_1->setText("0"); } else if(ui->label_Keterangan_ACCT_2>text()=="CURRENT\nTRANSFORMATOR\nAC (ACCT)"){ ui->label_Keterangan_ACCT_2->setText(" "); ui->label_Keterangan_ACCT_1->setText("1"); } } void MainWindow::on_pb_Layout_RECTIFIER_clicked() { if(ui->label_Keterangan_RECTIFIER_1->text()=="1"){ ui->label_Keterangan_RECTIFIER_2->setText("RECTIFIER"); ui->label_Keterangan_RECTIFIER_1->setText("0"); } else if(ui->label_Keterangan_RECTIFIER_2>text()=="RECTIFIER"){ ui->label_Keterangan_RECTIFIER_2->setText(" "); ui->label_Keterangan_RECTIFIER_1->setText("1"); } } void MainWindow::on_pb_Layout_ACPT_clicked() { 73 if(ui->label_Keterangan_ACPT_1->text()=="1"){ ui->label_Keterangan_ACPT_2>setText("POTENTIAL\nTRANSFORMATOR\nAC (ACPT)"); ui->label_Keterangan_ACPT_1->setText("0"); } else if(ui->label_Keterangan_ACPT_2>text()=="POTENTIAL\nTRANSFORMATOR\nAC (ACPT)"){ ui->label_Keterangan_ACPT_2->setText(" "); ui->label_Keterangan_ACPT_1->setText("1"); } } /*=======================================LAYOUT BOX DC============================*/ void MainWindow::on_pb_state_BACK_GARDU_Layout_BoxDC_clicke d() { ui->stackedWidget->setCurrentIndex(0); } ui->label_Keterangan_DSwitch_DC_2->setText(" "); ui->label_Keterangan_DSwitch_DC_1->setText("1"); ui->label_Keterangan_DCPT_2->setText(" "); ui->label_Keterangan_DCPT_1->setText("1"); ui->label_Keterangan_DCCT_2->setText(" "); ui->label_Keterangan_DCCT_1->setText("1"); ui->label_Keterangan_HSCB_2->setText(" "); ui->label_Keterangan_HSCB_1->setText("1"); void MainWindow::on_pb_GARDU_Layout_BoxDC_toBoxAC_clicked() { ui->stackedWidget->setCurrentIndex(8); } ui->label_Keterangan_DSwitch_DC_2->setText(" "); ui->label_Keterangan_DSwitch_DC_1->setText("1"); ui->label_Keterangan_DCPT_2->setText(" "); ui->label_Keterangan_DCPT_1->setText("1"); ui->label_Keterangan_DCCT_2->setText(" "); ui->label_Keterangan_DCCT_1->setText("1"); ui->label_Keterangan_HSCB_2->setText(" "); ui->label_Keterangan_HSCB_1->setText("1"); void MainWindow::on_pb_GARDU_Layout_BoxDC_toRoom_clicked() { 74 ui->stackedWidget->setCurrentIndex(6); } ui->label_Keterangan_DSwitch_DC_2->setText(" "); ui->label_Keterangan_DSwitch_DC_1->setText("1"); ui->label_Keterangan_DCPT_2->setText(" "); ui->label_Keterangan_DCPT_1->setText("1"); ui->label_Keterangan_DCCT_2->setText(" "); ui->label_Keterangan_DCCT_1->setText("1"); ui->label_Keterangan_HSCB_2->setText(" "); ui->label_Keterangan_HSCB_1->setText("1"); void MainWindow::on_pb_Layout_DSwitch_DC_clicked() { if(ui->label_Keterangan_DSwitch_DC_1->text()=="1"){ ui->label_Keterangan_DSwitch_DC_2>setText("DISCONNECTOR\nSWITCH DC"); ui->label_Keterangan_DSwitch_DC_1->setText("0"); } else if(ui->label_Keterangan_DSwitch_DC_2>text()=="DISCONNECTOR\nSWITCH DC"){ ui->label_Keterangan_DSwitch_DC_2->setText(" "); ui->label_Keterangan_DSwitch_DC_1->setText("1"); } } void MainWindow::on_pb_Layout_DCPT_clicked() { if(ui->label_Keterangan_DCPT_1->text()=="1"){ ui->label_Keterangan_DCPT_2>setText("POTENTIAL\nTRANSFORMATOR\nDC (DCPT)"); ui->label_Keterangan_DCPT_1->setText("0"); } else if(ui->label_Keterangan_DCPT_2>text()=="POTENTIAL\nTRANSFORMATOR\nDC (DCPT)"){ ui->label_Keterangan_DCPT_2->setText(" "); ui->label_Keterangan_DCPT_1->setText("1"); } } void MainWindow::on_pb_Layout_DCCT_clicked() { if(ui->label_Keterangan_DCCT_1->text()=="1"){ ui->label_Keterangan_DCCT_2>setText("CURRENT\nTRANSFORMATOR\nDC (DCCT)"); ui->label_Keterangan_DCCT_1->setText("0"); 75 } else if(ui->label_Keterangan_DCCT_2>text()=="CURRENT\nTRANSFORMATOR\nDC (DCCT)"){ ui->label_Keterangan_DCCT_2->setText(" "); ui->label_Keterangan_DCCT_1->setText("1"); } } void MainWindow::on_pb_Layout_HSCB_clicked() { if(ui->label_Keterangan_HSCB_1->text()=="1"){ ui->label_Keterangan_HSCB_2->setText("HIGH SPEED\nCIRCUIT BREAKER\n(HSCB)"); ui->label_Keterangan_HSCB_1->setText("0"); } else if(ui->label_Keterangan_HSCB_2->text()=="HIGH SPEED\nCIRCUIT BREAKER\n(HSCB)"){ ui->label_Keterangan_HSCB_2->setText(" "); ui->label_Keterangan_HSCB_1->setText("1"); } } void MainWindow::on_PB_exit_clicked() { this->close(); } d. Program Main.cpp Gambar. Program main.cpp e. Flowchart 76 f. Display Overview DSE7320 MKII dijadikan sebagai slave modbus SERIAL dengan konfigurasi komuikasi: - Interface communication RS485 - Baudrate 115200 - Slave id 10 - Parity even 77 Data halaman tegangan battery engine yang akan di request oleh scada gardu traksi dengan register address : - Battery => 0x0405 Charge Alternatif => 0x0404 PLC WAGO 750-8207 dijadikan sebagai slave modbus TCP/IP dengan konfigurasi komunikasi menggunakan port 502. 78 Address pada PLC WAGO 192.168.10.250 Konfigurasi IP Fungsi sendreadRequest() digunakan untuk mengirim pesan request modbus TCP/IP yang ditujukan kepada slave PLC WAGO Fungsi RTUsendreadRequest() digunakan untuk mengirim pesan request modbus Serial yang ditujukan kepada slave DSE7320 MKII. Fungsi readDataModbus() digunakan untuk membaca data response yang dikirim oleh server kepada client sesuai dengan format yang di request oleh client. 79 Fungsi RTUreadDataModbus() digunakan untuk membaca data response yang dikirim oleh slave kepada master sesuai dengan format yang di request oleh master. Data yang telah diterima dari slave kemudian diolah dan akan ditampilkan seperti pada tampilan monitoring gardu traksi. g. Dokumentasi - Pada dokumentasi dibawah ini merupakan interface dari genset. Dimana system control genset mulai dari tegangan battery, arus, dan kontrol gardu traksi pada genset dari PC menggunakan RS485 untuk dikoneksikan ke deepsea genset. Koneksi program interface PC melalui komunikasi RJ45 untuk menghubungkan HMI ke modul gardu. 80 2. Mata Kuliah Praktik Perencanaan Sistem Otomasi Industri Indikator : 1. Mahasiswa mempraktikkan perencanaan dan pembuatan sebuah aplikasi sistem kendali / mekatronika. 2. Mahasiswa dapat menerapkan perencanaan sistem otomasi mesin-mesin dan atau peralatan elektronik/elektrik industri era 4.0 dan pengembangannya untuk berbagai proses pengendalian. 3. Mahasiswa dapat membuat perangkat hardware maupun software untuk mendukung operasionalisasi perancangan dan pengembangan sistem kendali otomasi (berbasis mikrokontroler yang minimalnya memiliki dua variabel masukan dan dua variabel keluaran) Bobot SKS : 2 SKS 81 Kegiatan ini dilakukan untuk project gardu traksi, dimana adanya PLC berfungsi untuk menyalakan HSCB secara otomatis untuk on atau off nya. Terlihat sistematika sebagai berikut : Gambar. Cara kerja PLC ke HSCB Proyek yang dikerjakan adalah membuat ladder diagram untuk PSU ke HSCB menggunakan 2 kontak HSCB. Rangkaian PLC yang ada pada software e! COCKPIT ini digunakan untuk communication serial antara modbus master pada sisi penerima data dan juga modbus slave pada sisi pengirim data. Penerima data untuk proyek sistem otomasi pada gardu induk adalah PLC wago dengam HMI yang digunakan untuk menampilkan data-data dari sensor. Pada rangkaian gardu traksi, terdapat sensor tegangan dan sensor arus yang berfungsi untuk membaca tegangan dan arus untuk masuk ke PLC dan akan ditampilkan di HMI untuk memonitoring system pada gardu traksi. Gambar. Penerima Data Gardu Traksi 82 Gambar. Program PLC monitoring HSCB Gambar. Rangkaian modbus master dan slave 83 Gambar. Tampilan PLC Membaca Sensor Proyek Sistem Otomasi pada Gardu Traksi dapat disimpulkan dengan menggunakan 2 sensor (tegangan dan arus) untuk membaca dan menginput jumlah arus dan tegangan yang akan di transfer menuju PLC untuk mengaktifkan HSCB. Karena pada gardu traksi, HSCB merupakan sistem proteksi yang berfungsi sebagai sistem proteksi ketika terjadinya arus hubung singkat, karena pada kereta sangat rentan jika terjadi hubung singkat. Prinsip kerja HSCB yang memiliki coil harus tertriger arus terlebih dahulu agar coil HSCB bisa aktif. Akan tetapi dengan tegangan 110 V, jika terlalu lama dihidupkan akan mengakibatkan HSCB mengeluarkan busur api. Maka dari itu dibutuhkannya sistem otomasi menggunakan PLC sebagai alat untuk kontrol ON atau OFF nya HSCB pada sistem gardu traksi. Pada PLC keluaran 1 menuju Power Relay 1 yang berfungsi menhubungkan kontaktor HSCB 1 untuk mentrigger MSCB selama 3 detik, lalu PLC memerintahkan kontaktor HSCB 1 (sebagai NC) HSCB 2 (sebagai NO) untuk off, karena pada tegangan 110 V di HSCB jika terlalu lama akan mengakibatkan busur api. Selanjutnya, PLC keluaran menuju Power Relay 2 yang berfungsi menhubungkan kontaktor HSCB 2 (sebagai NC) HSCB 1 (sebagai NO) yang terdapat resistor 84 disana, sebagai hambatan agar HSCB dapat bekerja lebih lama, tanpa menimbulkan busur api. Setelah itu, PLC akan membaca nilai dari hasil bacaan sensor tegangan dan arus tersebut dan dikirimkan ke HMI gardu traksi, atau pada menu monitoring. Dokumentasi : 3. Mata Kuliah Sistem Kendali Indikator : Mahasiswa mampu memahami proses dan pemodelan, kendali sekuensial, kendali dengan teknik umpan bailk, pemodelan matematis dari sistem fisis dengan pendekatan diagram blok dengan transformasi Laplace-nya dan signal flow graph, analisa respon sistem orde 1,2 dan tinggi; stabilitas sistem pengaturan, contoh aplikasi dan aksi kontrol dasar (on/off, P, PI, PD, PID). Serta pengenalan penggunaan MATLAB sebagai alat bantu analisis respon, kestabilan sistem dan perancangan kontroler Bobot SKS : 2 SKS 1. Melakukan kontrol kecepatan motor DC dengan rangkaian kendali kecepatan dan rangkaian kendali arus. Pada rangkaian ini menggunakan rangkaian DC Chopper yang mengubah tegangan masukan DC konstan menjadi tegangan DC agar dapat dikendalikan. Saya juga membuat perbedaan kontrol kecepatan motor DC dengan software Mathlab dan PSIM. Rangkaian listrik pada Speed Control of DC motor merupakan 85 rangkaian yang dapat mengkontrol kecepatan motor DC sesuai keinginan. Kontrol kecepatan motor DC dilakukan secara otomatis oleh pengontrol (PI). Rangkaian listrik pada Speed Control of DC Motor ini menggunakan supply tegangan 1500 Volt DC dengan menggunakan IGBT, diode, dan induktor sebagai perangkat pasif yang menyimpan energi dalam Medan Magnet dan mengembalikan energi ke sirkuit kapan pun diperlukan. Sistem kerjanya, kendali PI akan bekerja untuk memilih nilai kesalahan antara nilai set point dengan nilai umpan baliknya. Gambar. Konfigurasi Sistem Kecepatan Motor DC Gambar. Subsystem Kendali Kecepatan Gambar. Subsystem Kendali Arus 2. Perbedaan sistem kecepatan motor DC menggunakan rangkaian pre-charge dengan software PSIM dan tidak menggunakan rangkaian pre-charge dengan menggunakan software MATHLAB. Dengan hasil pembahasan a. Model rangkaian kontrol pada Speed Control of DC motor Gambar. Rangkaian kontrol pada Speed Control of DC motor Mathlab 86 Gambar. Rangkaian kontrol pada Speed Control of DC motor Mathlab Pada rangkaian ini terdiri dari : - PWM Generator yang berfungsi sebagai duty cycle pada gelombang (untuk mentrigger IGBT) - Relai yang berfungsi sebagai ON dan OFF kontroler - PI Controler yang berfungsi sebagai metode perhitungan sistem kendali b. Model rangkaian keseluruhan Speed Control of DC motor Gambar. Model perancangan rangkaian Speed Control of DC motor Mathlab Selanjutnya adalah rangkaian Speed Control of DC motor dengan input rangkaian pre-charge, seperti gambar berikut: Gambar. Model perancangan rangkaian Speed Control of DC motor - Terdapat dua perbedaan antara rangkaian menggunakan pre-charge dengan yang tidak. Pada percobaan 1 menggunakan PSIM dengan rangkana pre-charge dan di software Mathlab menggunakan rangkaian tanpa pre-change. Terdapat perbedaan gelombang input antar keduanya, terlihat pada gelombang berikut ini : 87 Gambar. Gelombang input tanpa rangkaian precharge Gambar. Gelombang input menggunakan rangkaian pre-charge Grafik Gelombang Input Terlihat bahwa jika 1,505 menggunakan 1,500 rangkaian precharge pada saat 1,495 swicthing, 1,490 tegangan tidak 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 langsung 1500 VDC, precharge non-prechage melainkan down terlebih dahulu lalu di stabil pada tegangan 1500 VDC. Sedangkan rangkaian yang tidak memakai pre-charge dari awal saat proses switching dimulai langsung pada tegangan 1500 VDC. - Terdapat 4 output motor DC penguat terpisah yang dihubungan secara seri, Di hitung dari jumlah output 1500 dibagi ke 4 motor. 1 motor DC mendapatkan output sebanyak 375 VDC. Hal ini dapat dilihat pada gambar gelombang output di bawah ini: Gambar. Gelombang output 4 motor DC tanpa precharge Gambar. Gelombang output 4 motor DC menggunakan pre-charge 88 Grafik Gelombang Output 400 300 200 100 0 0 0.02 0.04 non-prechage 0.06 0.08 0.1 prechage Dari perbedaan di atas, dapat dianalisis, bahwa menggunakan rangkaian pre-charge pada input tidak berpengaruh pada output motor DC. Rangkaian Pre-charge akan bekerja pada awal proses switching aja, tidak mempengaruhi tegangan output saat motor DC bekerja. - ;; - Dioda pada rangkaian Speed Control of DC motor ll sebagai komponen se3mikonduktor yang membloking arus mencegah arus listrik mengarah ke aliran awal yang akan memiliki dampak merusakan IGBT. 4. Mata Kuliah Praktik Pembangkit Tenaga Listrik Indikator : 1. Merumuskan karakteristik Alternator 2. Melakukan pemaralelan generator 3. Mengoperasikan, merawat, dan memperbaiki genset Bobot SKS : 2 SKS 89 Yang saya lakukan adalah dengan project gardu traksi untuk sistem monitoring distribusi dan transmisi untuk simulasi modul kereta. Transmisi di kereta yang mendapat sumber dari genset 350 KVA dan listrik aliran atas terdapat kawat sumber yang terhubung langsung ke pantograph kereta. Terdapat juga rangkaian kontrol dengan sistem otomasi. Hal yang dilakukan saya adalah : 1. Melakukan identifikasi komponen-komponen yang ada di gardu traksi. Dimana pada sistem transmisi gardu traksi modul ajar kereta terdapat genset sebagai sumber tegangan 350 KVA, box panel ac, box panel dc, sistem proteksi (arrester, disconnecting switch, dan grounding) sebagai proteksi kawat sumbernya. Sedangkan sistem di gardu induknya terdapat sistem proteksi (ACB, Disconnecting Switch, MCB, dan HSCB), terdapat juga rangkaian rectifier, sensor tegangan, sensor arus, PC computer Trafo step up, resistor, DCPT, ACPT, PLC, dan High Power Relay. 90 Gambar. Identifikasi Box panel DC Gambar. Box panel DC Gambar. HSCB Gardu Traksi 91 Gambar. Box Panel AC Terdapat beberapa komponen seperti arrester untuk penangkal petir, MCB 3 phase, MCB 1 Phase, ACPT, KR1 dan KR2 Gambar. Komponen Box AC 92 Gambar. Sistem connecting Genset Gambar. Rangkaian Rectifier Gambar. Trafo Step Up Gardu Traksi 93 2. Memasang komponen-komponen yang ada di gardu traksi. Komponen yang sudah di identifikasi, selanjutnya adalah memasang komponen yang sudah di identifikasi. Yang dilakukan saya adalah menghubungkan interface menggunakan RS485 ke deepsea learning pada genset, melakukan wiring dari box panel AC dan box panel DC, dan melakukan wiring pada modul gardu. Hal ini dilakukan agar genset dapat dioperasikan menggunakan protokol modbus yang dikontrol melalui komputer. 94 Gambar. Koneksi PC ke Deepsea Genset 95 Gambar. Sistem Monitoring Genset Gambar. Deepsea Genset 3. Menganalisis sistem transmisi pada gardu traksi modul ajar kereta. Transmisi pada kereta yang berasal dari sumber genset 350 KVA. Pada gardu traksi, terdapat panel AC dan panel DC. Pada sistem kereta ada pantograph yang mengalir aliran listrik ke kawat sumber, agar kereta mendapatkan aliran listrik. Pada sistem transmisi, terdapat beberapa komponen sistem proteksi yang digunakan, seperti arrester sebagai penangkal petir, disconnecting switch yang berfungsi untuk memisahkan perangkat listrik yang mengalami gangguan dan tidak, dan grounding untuk menghantar arus listrik yang bocor yang akan langsung menuju ke tanah. 96 Gambar. Aliran listrik atas untuk Kereta Gambar. Kereta yang digunakan untuk modul ajar 97 4. Menganalisis aliran daya dan sistem distribusi gardu traksi. Aliran daya pada gardu traksi berasal dari genset sebesar 350 KVA, Genset tersebut dikontrol dengan dipsy untuk mengambil datanya dari interface. Genset memiliki sistem kontrol dengan PC untuk program dan ambil data dari monitor pc diambil pake serial. Genset sendiri memiliki sistem proteksi yang berbeda dari sistem transmisi, seperti disconnecting switch dan AC. Pada panel box AC, disconnecting switch yang berfungsi untuk memisahkan perangkat listrik yang mengalami gangguan dan tidak, ACB (Air Circuit Breaker) dan MCB (Miniature Circuit Breaker) memiliki fungsi proteksi sebagai melindungi arus listrik jika ada masalah tegangan naik atau turun, panas berlebih, dan lain-lain. Terdapat juga Trafo dengan spesifikasi kapasitas 350KVA dan rated voltage 380 V. trafo step up. Dikarenakan membutuhkan tegangan 600 Volt. Sedangkan trafo hanya bisa mensupplay, sesuai rumus : VDC = 1,4 x VAC VDC = 1,4 x 380 VDC = 532 VDC Maka dari itu, dibutuhkannya trafo step up untuk menaikan tegangan menjadi 600 VDC. Setelah itu, ada rangkaian rectifier untuk merubah tegangan AC dari panel DC. Untuk masuk ke box modul ajar dan panel DC. Terdapat juga sensor tegangan dan sensor arus yang masuk ke PLC untuk menampilkan data arus dan tegangan yang di dapatkan. Setelah itu masuk ke panel box DC. Pada sistem DC, 600 VDC memiliki proteksi HSCB (High Speed Circuit Breaker) dan Disconnecting switch. HSCB lebih unggul dibandingkan dengan ACB, karena Ketika trip terjadi HSCB berjalan lebih cepat dibandingkan dengan ACB. Dikarenakan beban yang digunakan di kereta, agar tidak terjadi rawan hubung singkat. HSCB juga digunakan untuk mengamankan sistem AC agar pemutusan lebih cepat. HSCB pada sistem kontrol memiliki coil kontak dimana kontak akan bekerja ketika coilnya 98 ada arus yang masuk ke triger tengan arus. Pada HSCB coil bisa di kontrol on dan off nya jika ada arus lebih melalui PLC. Karena jika HSCB salah triger coil, akan mengakibatkan busur api untuk dari itu, ditambahkannya kontraktor HSCB 2 yang terdapat resistor sebesar 253 Ohm untuk menurunkan arus listrik agar tegangan nya menurun, dan tidak terjadinya busur api. Gambar. Skematik hubungan PLC dengan HSCB 99 BAB V EVALUASI PELAKSANAAN PROGRAM DAN RENCANA KEBERLANJUTAN A. Kekuatan 1. Memberikan pengalaman belajar diluar kampus yang berbeda. Melakukan proses interaksi dan adaptasi dengan dunia kerja adalah salah satu pengalaman baik yang tidak banyak didapatkan oleh mahasiswa dalam proses belajar mengajar di kampus. 2. Selama proses kegiatan PKKM MSIB di PT. Rekaindo Global Jasa ini, mendapatkan hard skills seperti keterampilan, problem solving, kekuatan analisis, pengalaman programming, dan terjun langsung ke dunia kerja. Selain itu juga mendapatkan soft skills seperti etika profesi atau kerja, komunikasi, dan kerja sama. 3. Mahasiswa mendapatkan networking untuk di dunia bekerja, yang merupakan hal dibutuhkan setelah lulus nanti. 4. Mahasiswa juga mendapatkan pengalaman magang yang membawanya untuk menciptakan inspirasi dalam menyusun tugas akhir atau skripsi. B. Hambatan 1. Pertama kali realisasi program PKKM MSIB UNY di Jurusan Pendidikan Teknik Elektro sehingga masih sangat pemula skill mahasiswa yang di dapatkan dari pembekalan dibandingkan dengan dunia kerja langsung. 2. Variasi mata kuliah pilihan dan kejelasan jobdesk pekerjaan kurang memadai sehingga berpengaruh pada konversi nilai pada mata kuliah pilihan yang ada, yang pada akhirnya tidak terhitung kedalam SKS yang pernah ditempuh. C. Pengalaman Baik Adapun pengalaman baik yang akan diperoleh dengan kegiatan PKKM MSIB ini adalah membantu mahasiswa dalam membangun jaringan yang bernmanfaat bagi peluang kerja, menambah pengalaman, dan membuka wawasan mahasiswa yang dapat menginspirasi dalam penulisan tugas akhir. 100 D. Rencana Tindak Lanjut 1. Melakukan evaluasi pada pelaksanaan kedua program yang sudah dilaksanakan, dan melengkapi dengan instrument-instrumen agar capaian program dapat terukur dengan jelas dan baik. 2. Melakukan pengembangan jumlah kerja sama dengan mitra untuk program selanjutnya 3. Melakukan pengembangan jumlah program yang akan ditawarkan kepada mahasiswa. 101 BAB VI A. Kesimpulan KESIMPULAN DAN SARAN Kegiatan Program Kompetisi Kampus Merdeka (PK-KM) yang mengikutsertakan mahasiswa Jurusan Pendidikan Teknik Elektro dalam program Magang Studi Independen Bersertifikat (MSIB) memiliki kesimpulan yang dirangkum dalam poin-poin penting. 1. Menciptakan pengalaman kerja nyata untuk mahasiswa. 2. Mengembangkan keterampilan-keterampilan yang dibutuhkan di dunia industri yang dalam hal ini adalah PT Rekaindo Global Jasa. 3. Penguatan konsep link and match pada perkuliahan dapat terealisasikan di pihak mahasiswa karena keterampilan yang dibutuhkan mampu digunakan sebagai bentuk pengakuan nilai atau konversi ke mata kuliah yang relevan dengan pekerjaan-pekerjaan yang diberikan di PT Rekaindo Global Jasa. 4. Menciptakan hubungan kerja sama yang baik antara pihak kampus dengan pihak mitra atau industri sehingga dapat berdampak pada terbukanya ruang untuk kerja sama secara berkelanjutan di masa mendatang. B. Saran PK-KM MSIB berjalan dengan lancar dan memiliki nilai-nilai pelaksanaan yang dapat ditingkatkan untuk pelaksanaan program serupa di masa mendatang. Saran yang akan dijabarkan terbagi menjadi tiga perspektif, yakni saran untuk mahasiswa, saran untuk mitra atau perusahaan, serta saran untuk pihak universitas. 1. Bagi mahasiswa, a. diharapkan ke depannya mampu melakukan persiapan pelaksanaan magang dengan lebih matang; b. diharapkan ke depannya mampu menjalin dan menjaga hubungan komunikasi dengan baik antara mahasiswa dengan karyawan dan lingkungan sekitarnya agar dapat terus menjaga kesan baik untuk menunjang kualitas kinerja magang mahasiswa; serta c. diharapkan ke depannya mampu meningkatkan kualitas manajemen waktu agar pekerjaan dapat terselesaikan dengan tepat waktu. 102 2. Bagi mitra atau industri, a. diharapkan mampu meningkatkan kualitas hubungan kerja sama agar mempermudah mahasiswa pada tingkat-tingkat selanjutnya yang akan melakukan kegiatan magang selanjutnya; b. diharapkan mampu memberikan arahan yang jelas dan lebih terarah; serta c. diharapkan mampu memberikan ketentuan-ketentuan pekerjaan sesuai dengan tujuan magang yang ditetapkan dengan kesepakatan dua belah pihak antara pihak perusahaan dengan pihak universitas. 3. Bagi universitas, a. diharapkan mampu meningkatkan kualitas hubungan kerja sama untuk membuka peluang akan kerja sama lainnya di masa mendatang; b. diharapkan mampu memberikan arahan yang jelas dan lebih terarah terkait ketentuan penyelesaian kegiatan magang bagi mahasiswa; serta c. diharapkan mampu memberikan pengawasan lebih terhadap kinerja mahasiswa di lokasi magang dan kebijakan perusahaan dalam mempekerjakan mahasiswa. 103 DAFTAR PUSTAKA Budi Cahyono, A. B. (2017). PROTOTIPE PANEL MONITORING LAMPU LISTRIK TERPUSAT MENGGUNAKAN KOMUNIKASI RS485. Seminar Ilmu Nasional Terapan (SNITER) 2017. Datya, A. I. (2019). Implementasi Elemen User Interactive (UI) Dan User Experience (UI) Dalam Perancangan Antarmuka Sistem Informasi ETourism Di Bali Berbasis Web. SINTESA Prosiding. dkk, P. (2022). PANDUAN PELAKSANAAN PEMBELAJARAN DI LUAR PROGRAM STUDI MERDEKA BELAJAR KAMPUS MERDEKA. Kampus Merdeka. Microcredential, T. (2021). Magang dan Studi Independen Bersertifikat. Jakarta: Indonesia, Kementrian Pendidikan dan Kebudayaan Republik Indonesia. Muchamad Chadiq Zakaria, E. K. (2020). Sistem Monitoring Instrument Air Compressor (IAC) berbasis SCADA dengan Komunikasi Modbus RTU RS-485. J-Eltrik. P, A. J. (2023). SOFTWARE DESIGN SYSTEM SCADA GARDU TRAKSI. Engineering Specification. Zuly Budiarso, E. W. (2015). Implementasi Teknik I/O Interfacing berbasis Arduino. Jurnal Teknologi Informasi DINAMIK. 104 105