Program ini membuat aplikasi konverter suhu yang mampu mengkonversi empat jenis satuan suhu (Celcius, Fahrenheit, Kelvin, dan Reamur) berdasarkan 12 rumus yang ditentukan. Aplikasi ini menggunakan antarmuka grafis yang memiliki komponen seperti combobox, textfield, label dan tombol untuk memasukkan input, memilih satuan awal dan tujuan, menampilkan hasil konversi, serta memberikan informasi tentang program.
Dokumen tersebut membahas tentang suhu dan termometer. Terdapat penjelasan tentang definisi suhu, jenis-jenis termometer, dan konversi satuan suhu antara skala Celcius, Reamur, Fahrenheit, dan Kelvin.
Bab II membahas tentang sekuen, operator aritmatika, dan pemrograman dalam bahasa Pascal dan C. Beberapa contoh algoritma dan program yang diberikan meliputi penjumlahan bilangan bulat, perkalian bilangan bulat, konversi satuan, dan representasi bilangan bulat dalam bentuk kuotien dan sisa. Secara umum bab ini menjelaskan tentang konsep dasar algoritma dan pemrograman serta contoh-contoh penerapannya dalam bahasa Pascal dan C.
Modular Java dapat digunakan di berbagai lingkungan antarmuka seperti konsol, desktop, web dan Android berkat konsep modularnya. Tulisan ini membahas penggunaan kembali kelas yang sama pada berbagai lingkungan tersebut, yakni kelas 'AkarKuadrat' untuk menghitung akar kuadrat yang digunakan pada program berbasis konsol, desktop, web dan Android.
Teks ini membahas cara membuat dan menjalankan program Java sederhana, mulai dari program berbasis teks yang menampilkan teks 'Hello ..' hingga penjelasan tentang penginstalan Java Development Kit dan cara mengkompilasi serta menjalankan kode Java."
Program ini membahas cara membuat aplikasi yang dapat menghitung nilai akar dan determinan persamaan kuadrat. Program akan menerima input nilai a, b, dan c dari user, kemudian menghitung determinan, akar pertama, dan akar kedua berdasarkan rumus yang diberikan. Kelas AkarKuadrat dibuat untuk menghitung nilai-nilai tersebut, sedangkan kelas lain yang berisi metode main akan digunakan untuk mengeksekusi perhitungan dan menamp
Program ini membahas konversi satuan suhu antara Celcius, Reamur, Fahrenheit dan Kelvin menggunakan bahasa pemrograman Pascal. Terdiri dari 12 prosedur untuk mengkonversi setiap satuan suhu satu sama lain dengan memasukkan nilai awal dan menampilkan hasil konversinya. Program ini dapat memudahkan pengguna dalam mengkonversi berbagai satuan suhu.
Lingkaran, konversi suhu, bilangan ganjil, diskriminanIrsal Shabirin
Dokumen tersebut berisi flowchart dan algoritma untuk menyelesaikan beberapa permasalahan matematika sederhana seperti menghitung keliling dan luas lingkaran, konversi suhu, menampilkan bilangan ganjil, dan menyelesaikan persamaan kuadrat.
Dokumen tersebut membahas tentang suhu dan termometer. Terdapat penjelasan tentang definisi suhu, jenis-jenis termometer, dan konversi satuan suhu antara skala Celcius, Reamur, Fahrenheit, dan Kelvin.
Bab II membahas tentang sekuen, operator aritmatika, dan pemrograman dalam bahasa Pascal dan C. Beberapa contoh algoritma dan program yang diberikan meliputi penjumlahan bilangan bulat, perkalian bilangan bulat, konversi satuan, dan representasi bilangan bulat dalam bentuk kuotien dan sisa. Secara umum bab ini menjelaskan tentang konsep dasar algoritma dan pemrograman serta contoh-contoh penerapannya dalam bahasa Pascal dan C.
Modular Java dapat digunakan di berbagai lingkungan antarmuka seperti konsol, desktop, web dan Android berkat konsep modularnya. Tulisan ini membahas penggunaan kembali kelas yang sama pada berbagai lingkungan tersebut, yakni kelas 'AkarKuadrat' untuk menghitung akar kuadrat yang digunakan pada program berbasis konsol, desktop, web dan Android.
Teks ini membahas cara membuat dan menjalankan program Java sederhana, mulai dari program berbasis teks yang menampilkan teks 'Hello ..' hingga penjelasan tentang penginstalan Java Development Kit dan cara mengkompilasi serta menjalankan kode Java."
Program ini membahas cara membuat aplikasi yang dapat menghitung nilai akar dan determinan persamaan kuadrat. Program akan menerima input nilai a, b, dan c dari user, kemudian menghitung determinan, akar pertama, dan akar kedua berdasarkan rumus yang diberikan. Kelas AkarKuadrat dibuat untuk menghitung nilai-nilai tersebut, sedangkan kelas lain yang berisi metode main akan digunakan untuk mengeksekusi perhitungan dan menamp
Program ini membahas konversi satuan suhu antara Celcius, Reamur, Fahrenheit dan Kelvin menggunakan bahasa pemrograman Pascal. Terdiri dari 12 prosedur untuk mengkonversi setiap satuan suhu satu sama lain dengan memasukkan nilai awal dan menampilkan hasil konversinya. Program ini dapat memudahkan pengguna dalam mengkonversi berbagai satuan suhu.
Lingkaran, konversi suhu, bilangan ganjil, diskriminanIrsal Shabirin
Dokumen tersebut berisi flowchart dan algoritma untuk menyelesaikan beberapa permasalahan matematika sederhana seperti menghitung keliling dan luas lingkaran, konversi suhu, menampilkan bilangan ganjil, dan menyelesaikan persamaan kuadrat.
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdffadlurrahman260903
Ppt landasan pendidikan tentang pendidikan seumur hidup.
Prodi pendidikan agama Islam
Fakultas tarbiyah dan ilmu keguruan
Universitas Islam negeri syekh Ali Hasan Ahmad addary Padangsidimpuan
Pendidikan sepanjang hayat atau pendidikan seumur hidup adalah sebuah system konsepkonsep pendidikan yang menerangkan keseluruhan peristiwa-peristiwa kegiatan belajarmengajar yang berlangsung dalam keseluruhan kehidupan manusia. Pendidikan sepanjang
hayat memandang jauh ke depan, berusaha untuk menghasilkan manusia dan masyarakat yang
baru, merupakan suatu proyek masyarakat yang sangat besar. Pendidikan sepanjang hayat
merupakan asas pendidikan yang cocok bagi orang-orang yang hidup dalam dunia
transformasi dan informasi, yaitu masyarakat modern. Manusia harus lebih bisa menyesuaikan
dirinya secara terus menerus dengan situasi yang baru.
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum MerdekaFathan Emran
Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka - abdiera.com. Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka. Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka.
Materi ini membahas tentang defenisi dan Usia Anak di Indonesia serta hubungannya dengan risiko terpapar kekerasan. Dalam modul ini, akan diuraikan berbagai bentuk kekerasan yang dapat dialami anak-anak, seperti kekerasan fisik, emosional, seksual, dan penelantaran.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdffadlurrahman260903
Ppt landasan pendidikan tentang pendidikan seumur hidup.
Prodi pendidikan agama Islam
Fakultas tarbiyah dan ilmu keguruan
Universitas Islam negeri syekh Ali Hasan Ahmad addary Padangsidimpuan
Pendidikan sepanjang hayat atau pendidikan seumur hidup adalah sebuah system konsepkonsep pendidikan yang menerangkan keseluruhan peristiwa-peristiwa kegiatan belajarmengajar yang berlangsung dalam keseluruhan kehidupan manusia. Pendidikan sepanjang
hayat memandang jauh ke depan, berusaha untuk menghasilkan manusia dan masyarakat yang
baru, merupakan suatu proyek masyarakat yang sangat besar. Pendidikan sepanjang hayat
merupakan asas pendidikan yang cocok bagi orang-orang yang hidup dalam dunia
transformasi dan informasi, yaitu masyarakat modern. Manusia harus lebih bisa menyesuaikan
dirinya secara terus menerus dengan situasi yang baru.
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum MerdekaFathan Emran
Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka - abdiera.com. Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka. Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka.
Materi ini membahas tentang defenisi dan Usia Anak di Indonesia serta hubungannya dengan risiko terpapar kekerasan. Dalam modul ini, akan diuraikan berbagai bentuk kekerasan yang dapat dialami anak-anak, seperti kekerasan fisik, emosional, seksual, dan penelantaran.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits.
To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups.
Technology
For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did.
While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis.
Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad.
Age and Gender
When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same.
Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers.
Race Affects Attitudes
As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
Creative operations teams expect increased AI use in 2024. Currently, over half of tasks are not AI-enabled, but this is expected to decrease in the coming year. ChatGPT is the most popular AI tool currently. Business leaders are more actively exploring AI benefits than individual contributors. Most respondents do not believe AI will impact workforce size in 2024. However, some inhibitions still exist around AI accuracy and lack of understanding. Creatives primarily want to use AI to save time on mundane tasks and boost productivity.
Organizational culture includes values, norms, systems, symbols, language, assumptions, beliefs, and habits that influence employee behaviors and how people interpret those behaviors. It is important because culture can help or hinder a company's success. Some key aspects of Netflix's culture that help it achieve results include hiring smartly so every position has stars, focusing on attitude over just aptitude, and having a strict policy against peacocks, whiners, and jerks.
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
PepsiCo provided a safe harbor statement noting that any forward-looking statements are based on currently available information and are subject to risks and uncertainties. It also provided information on non-GAAP measures and directing readers to its website for disclosure and reconciliation. The document then discussed PepsiCo's business overview, including that it is a global beverage and convenient food company with iconic brands, $91 billion in net revenue in 2023, and nearly $14 billion in core operating profit. It operates through a divisional structure with a focus on local consumers.
Content Methodology: A Best Practices Report (Webinar)contently
This document provides an overview of content methodology best practices. It defines content methodology as establishing objectives, KPIs, and a culture of continuous learning and iteration. An effective methodology focuses on connecting with audiences, creating optimal content, and optimizing processes. It also discusses why a methodology is needed due to the competitive landscape, proliferation of channels, and opportunities for improvement. Components of an effective methodology include defining objectives and KPIs, audience analysis, identifying opportunities, and evaluating resources. The document concludes with recommendations around creating a content plan, testing and optimizing content over 90 days.
How to Prepare For a Successful Job Search for 2024Albert Qian
The document provides guidance on preparing a job search for 2024. It discusses the state of the job market, focusing on growth in AI and healthcare but also continued layoffs. It recommends figuring out what you want to do by researching interests and skills, then conducting informational interviews. The job search should involve building a personal brand on LinkedIn, actively applying to jobs, tailoring resumes and interviews, maintaining job hunting as a habit, and continuing self-improvement. Once hired, the document advises setting new goals and keeping skills and networking active in case of future opportunities.
A report by thenetworkone and Kurio.
The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands.
It’s important that you’re ready to implement new strategies in 2024.
Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024.
You’ll learn:
- The latest trends in AI and automation, and what this means for an evolving paid search ecosystem.
- New developments in privacy and data regulation.
- Emerging ad formats that are expected to make an impact next year.
Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape.
If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.
5 Public speaking tips from TED - Visualized summarySpeakerHub
From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world.
With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively.
The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage.
Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience.
See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers
See the original article on Forbes here:
http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world.
Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance.
For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age.
Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.
The document provides career advice for getting into the tech field, including:
- Doing projects and internships in college to build a portfolio.
- Learning about different roles and technologies through industry research.
- Contributing to open source projects to build experience and network.
- Developing a personal brand through a website and social media presence.
- Networking through events, communities, and finding a mentor.
- Practicing interviews through mock interviews and whiteboarding coding questions.
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
1. Core updates from Google periodically change how its algorithms assess and rank websites and pages. This can impact rankings through shifts in user intent, site quality issues being caught up to, world events influencing queries, and overhauls to search like the E-A-T framework.
2. There are many possible user intents beyond just transactional, navigational and informational. Identifying intent shifts is important during core updates. Sites may need to optimize for new intents through different content types and sections.
3. Responding effectively to core updates requires analyzing "before and after" data to understand changes, identifying new intents or page types, and ensuring content matches appropriate intents across video, images, knowledge graphs and more.
A brief introduction to DataScience with explaining of the concepts, algorithms, machine learning, supervised and unsupervised learning, clustering, statistics, data preprocessing, real-world applications etc.
It's part of a Data Science Corner Campaign where I will be discussing the fundamentals of DataScience, AIML, Statistics etc.
Time Management & Productivity - Best PracticesVit Horky
Here's my presentation on by proven best practices how to manage your work time effectively and how to improve your productivity. It includes practical tips and how to use tools such as Slack, Google Apps, Hubspot, Google Calendar, Gmail and others.
The six step guide to practical project managementMindGenius
The six step guide to practical project management
If you think managing projects is too difficult, think again.
We’ve stripped back project management processes to the
basics – to make it quicker and easier, without sacrificing
the vital ingredients for success.
“If you’re looking for some real-world guidance, then The Six Step Guide to Practical Project Management will help.”
Dr Andrew Makar, Tactical Project Management
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
My javanote02
1. Tri Sapto Adji BCC Manokwari
Membuat Aplikasi Konverter Suhu
Pada pembahasan sebelumnya kita telah belajar bagaimana membuat dan menjalankan
aplikasi sederhana, baik itu berbasis konsol maupun GUI (Graphical User Interface)
menggunakan bahasa pemrograman Java. Pada workshop yang kedua ini, kita akan
meningkat ke jenjang yang sedikit lebih rumit untuk membuat sebuah aplikasi Konverter
Suhu. Aplikasi ini dibuat untuk mampu melakukan konversi dari dan menjadi empat jenis
satuan suhu yang umum digunakan yakni : Celcius, Fahrenheit, Kelvin dan Reamur.
Rumus atau formula yang digunakan adalah sebagai berikut :
Dari Satuan Ke Satuan Rumus
Celcius (C) Fahrenheit (F) 9
F = C + 32
5
Kelvin (K) K = C + 273
Reamur (R) 4
R = C
5
Fahrenheit (F) Celcius (C) 5
C = (F32)
9
Kelvin (K) 5
K = (F32)+273
9
Reamur (R) 4
R = (F32)
9
Kelvin (K) Celcius (C) C = K273
Fahrenheit (F) 9
F = (K273)+32
5
Reamur (R) 4
R = (K273)
5
Reamur (R) Celcius (C) 5
C = R
4
Fahrenheit (F) 9
F = R + 32
4
Kelvin (K) 5
K = R + 273
4
Dengan adanya 12 formula diatas, berarti kita harus membuat sebanyak 12 fungsi (metode
yang memiliki nilai balik) yang masingmasing berisi satu perhitungan dari rumusrumus
tersebut di atas. Fungsifungsi atau metodemetode tersebut nantinya dirancang untuk
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 1/18
2. Tri Sapto Adji BCC Manokwari
mampu menghitung bilangan pecahan, oleh karena itu kita menggunakan tipe data yang
dapat menampung nilai bilangan pecahan, yakni float.
Sebelum sampai ke pembuatan fungsifungsi tersebut, yang wajib kita lakukan adalah
membuat desain antar muka yang mampu melakukan halhal sebagai berikut :
1. Menampilkan keterangan tentang program.
2. Menerima input bilangan dari user.
3. Menampilkan daftar pilihan satuan suhu yang dapat dipilih oleh user.
4. Menampilkan nama satuan sesuai dengan pilihan dari daftar pilihan satuan suhu
yang dipilih oleh user.
5. Memerintahkan program melakukan perhitungan sesuai dengan input bilangan dan
satuan suhu yang dipilih oleh user.
6. Menampilkan hasil perhitungan.
Komponenkomponen yang dapat digunakan untuk itu adalah :
1. Sebuah obyek berkelas JMenuItem yang apabila diklik akan menampilkan
keterangan tentang program.
2. Dua buah obyek berkelas JFormattedTextField berupa kotak isian untuk menerima
input dan menampilkan output hasil perhitungan.
3. Dua buah obyek berkelas JComboBox berupa daftar pilihan besaran suhu yang akan
dikonversi dan daftar pilihan besaran suhu hasil konversi.
4. Dua buah obyek berkelas JLabel untuk menampilkan nama satuan suhu sesuai
dengan nama besaran suhu yang dipilih pada daftar pilihan, dan sebuah obyek
JLabel lagi untuk menampilkan judul di bagian atas program (seperti sebuah
heading).
5. Sebuah obyek tombol berkelas JButton untuk memerintahkan program melakukan
perhitungan berdasarkan besaran suhu yang dipilih dan angka yang diinput oleh
user.
Berikut adalah source code dari program tersebut :
//Berkas KonverterSuhu.java
//Author : Tri Sapto Adji, S.Pd.
// @Manokwari, Papua Barat, Indonesia
import javax.swing.*;
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 2/18
3. Tri Sapto Adji BCC Manokwari
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.text.*;
import java.net.URL;
public class KonverterSuhu extends JFrame {
JMenuItem item;
JComboBox daftar1;
JComboBox daftar2;
JFormattedTextField teks1;
JFormattedTextField teks2;
JLabel satuan1;
JLabel satuan2;
JButton hitung;
int[] hasil;
public static void main(String[] args) {
KonverterSuhu ks = new KonverterSuhu();
ks.pack();
PosisiFrame.center(ks);//Membutuhkan file PosisiFrame.class pada direktori kerja
ks.setVisible(true);
}
public KonverterSuhu() {
super("JKonverter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar batangMenu = new JMenuBar();
setJMenuBar(batangMenu);
JMenu menu = new JMenu("Menu");
batangMenu.add(menu);
item = new JMenuItem("Tentang JKonverter", cekIcon("JKonverter.png"));
menu.add(item);
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
if(ae.getSource() == item) keterangan();
}
});
JLabel judul = new JLabel("<html><h1><center>KONVERTER SUHU</center></h1></html>");
JPanel panel0 = new JPanel();
panel0.add(judul);
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(4,3,10,5));
panel1.add(new JLabel("Dari :"));
panel1.add(new JLabel("Nilai :"));
panel1.add(new JLabel(""));
String[] suhu = {"Celcius", "Fahrenheit", "Kelvin", "Reamur"};
daftar1 = new JComboBox (suhu);
daftar1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
JComboBox combo = (JComboBox)ae.getSource();
String s = (String)combo.getSelectedItem();
String t = (s.equals("Kelvin"))?s:"<html><sup>o</sup>"+s+"</html>";
satuan1.setText(t);
teks2.setValue(null);
}
});
panel1.add(daftar1);
teks1 = new JFormattedTextField(NumberFormat.getNumberInstance());
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 3/18
6. Tri Sapto Adji BCC Manokwari
}
private float kelvinToReamur() {
float kelvin = Float.valueOf(teks1.getValue().toString()).floatValue();
float Reamur = 4f/5 * (kelvin-273);
return Reamur;
}
private float reamurToCelcius() {
float reamur = Float.valueOf(teks1.getValue().toString()).floatValue();
float Celcius = 5f/4 * reamur;
return Celcius;
}
private float reamurToFahrenheit() {
float reamur = Float.valueOf(teks1.getValue().toString()).floatValue();
float Fahrenheit = 9f/4 * reamur + 32;
return Fahrenheit;
}
private float reamurToKelvin() {
float reamur = Float.valueOf(teks1.getValue().toString()).floatValue();
float Kelvin = 5f/4 * reamur + 273;
return Kelvin;
}
private ImageIcon cekIcon(String path) {
URL imgURL = KonverterSuhu.class.getResource(path);
if(imgURL != null) {
return new ImageIcon(imgURL);
}else {
System.err.println("Maaf, icon pada " + path + " tidak ada");
return null;
}
}
private void keterangan() {
JOptionPane.showMessageDialog(
null,
"<html><h1>JKonverter</h1><hr> <h2>Program untuk mengkonversi Suhu</h2>" +
"<br>Dibuat oleh Tri Sapto Adji, S.Pd."+
"<br>@Manokwari, Papua Barat Indonesia<br>Oktober 2011"+
"<br><br>JKonverter by Tri Sapto Adji, S.Pd. is a Freeware."+
"<br>It was created in order to be usefull"+
"<br>but "Without Any Guarantee" for the mistake"+
"<br>or error that'll happen by using this program." +
"<br>Use it at your own risk!",
"Tentang JKonverter",
1, cekIcon("JKonverter1.png")
);
}
}
Mari kita bahas source code program tersebut. Barisbaris pertama merupakan deklarasi
import yang harus disertakan berkaitan dengan berbagai komponen yang kita gunakan.
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 6/18
7. Tri Sapto Adji BCC Manokwari
Deklarasi ini harus ada karena memuat berbagai konstruktor dan method dari kelaskelas
komponen dalam program kita. Setelah itu pendeklarasian kelas, yakni kelas bernama
KonverterSuhu yang merupakan kelas turunan dari JFrame. Kodenya adalah :
public class KonverterSuhu extends JFrame {
...........
...........
}
Kemudian kita perlu mendeklarasikan komponenkomponen yang akan digunakan untuk
menampung nilai input, menampilkan satuan suhu dan output hasil perhitungan, serta
tombol perintah untuk melakukan perhitungan. Hal itu terdapat pada deklarasi :
JMenuItem item;
JComboBox daftar1;
JComboBox daftar2;
JFormattedTextField teks1;
JFormattedTextField teks2;
JLabel satuan1;
JLabel satuan2;
int[] hasil;
JButton hitung;
Perhatikan baris terakhir pada deklarasi tersebut, terdapat variabel array atau larik yakni
int[] hasil. Variabel tersebut bukanlah merupakan komponen dari kontainer JFrame yang
akan kita gunakan untuk mendesain antar muka program, tetapi merupakan variabel yang
nantinya akan kita gunakan untuk menampung nilai index dari item pada daftar pilihan
satuan suhu yang dipilih oleh pengguna. Berdasarkan nilai index dari item yang dipilih
tersebut kita akan mengatur fungsi mana yang nantinya akan dikerjakan oleh program dari
12 perhitungan yang telah dituliskan rumusnya pada pembahasan di awal.
Selanjutnya adalah deklarasi dari method main. Sebagaimana kita ketahui, bahwa method
main harus ada pada sebuah kelas program java yang akan dieksekusi sebagai sebuah
program. Di dalamnya terdapat pembentukan obyek berkelas KonverterSuhu (kelas yang
sedang kita bahas pembuatannya sekarang) yang kita beri nama ks. Terdapat juga
pengaturan propertynya berupa ukuran framenya (ks.pack()), pengaturan posisinya di
tengah layar (PosisiFrame.center(ks)), dan menampilkan frame tersebut di layar
(ks.setVisible(true)). Perhatikan pernyataan (PosisiFrame.center(ks)), pernyataan
tersebut membutuhkan adanya file PosisiFrame.class pada direktori yang sama. Kelas
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 7/18
8. Tri Sapto Adji BCC Manokwari
tersebut telah dibuat sendiri sebelumnya. Di dalamnya terdapat metode center untuk
memposisikan suatu frame atau jendela di tengahtengah layar. Jika Anda menghapus
pernyataan tersebut, program KonverterSuhu kita masih dapat dijalankan, tetapi posisinya
tidak berada di tengahtengah layar monitor, melainkan pada sudut kiri atas layar monitor
Anda. Berikut adalah source code dari file PosisiFrame.class tersebut :
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.Toolkit;
public class PosisiFrame {
public static void center(JFrame jf) {
Dimension ukuranLayar = Toolkit.getDefaultToolkit().getScreenSize();
Dimension ukuranFrame = jf.getSize();
int x = (ukuranLayar.width - ukuranFrame.width)/2;
int y = (ukuranLayar.height - ukuranFrame.height)/2;
jf.setLocation(x,y);
}
}
Selanjutnya adalah menciptakan konstruktor dari kelas KonverterSuhu yang kita buat.
Konstruktor adalah method yang harus dituliskan untuk menginisialisasi instans dari suatu
kelas. Artinya apabila kelas tersebut dipanggil melalui pembentukan obyeknya, maka baris
baris kode pada konstruktor inilah yang akan dijalankan. Syarat utama dari suatu
konstruktor adalah bahwa namanya harus sama dengan nama kelas, tetapi tanpa kata kunci
class. Suatu konstruktor boleh memiliki suatu parameter atau argumen sebagaimana halnya
suatu method (tetapi pada program kita kali ini, kita tidak menyertakan adanya suatu
parameter).
Hal pertama yang kita lakukan adalah memberikan judul yang akan ditampilkan pada title
bar dari Frame yang akan ditampilkan, serta mengatur agar frame tersebut dapat ditutup
bila user mengklik tombol exit pada frame tersebut melalui baris kode :
//Memberikan judul pada title bar
super("JKonverter");
//Mengatur agar jendela/frame dapat ditutup bila tombol exit diklik
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 8/18
9. Tri Sapto Adji BCC Manokwari
Yang harus menjadi perhatian Anda adalah baris kode yang menggunakan kata kunci super
tersebut harus ditulis pada baris pertama dalam method konstruktor, jika ditulis bukan pada
baris pertama akan muncul pesan kesalahan. Sedangkan pernyataan pada baris berikutnya
dapat Anda tulis pada baris mana saja, yang penting masih dalam blok konstruktor tersebut.
Selanjutnya kita akan merancang susunan antar muka program kita. Pertamatama kita
akan mengatur bagaimana menempatkan komponen JMenuItem item yang telah
dideklarasikan sebelumnya. JMenuItem ini harus ditempatkan pada komponen JMenu.
Sedangkan JMenu sendiri harus dipasang pada suatu bar yang disebut JMenuBar. Kemudian
obyek JMenuBar ini ditempatkan pada Frame (jendela) program kita. Dengan kata lain, kita
mendeklarasikan terlebih dahulu obyek berkelas JMenuBar, kemudian mendeklarasikan
obyek berkelas JMenu. Selanjutnya menempatkan obyek JMenu tersebut ke obyek
JMenuBar, dan menempatkan obyek JMenuBar tersebut ke frame. Adapun obyek
JMenuItem yang telah dideklarasikan sebelumnya perlu didefinisikan terlebih dahulu
sebelum ditempatkan pada obyek JMenu tersebut. Berikut adalah source codenya yang
sudah ditambahkan dengan penjelasan :
//deklarasi & definisi obyek JMenuBar bernama batangMenu
JMenuBar batangMenu = new JMenuBar();
//menempatkan obyek batangMenu pada frame
setJMenuBar(batangMenu);
//deklarasi & definisi obyek JMenu bernama menu
JMenu menu = new Jmenu("Menu");
//menempatkan obyek menu pada obyek batangMenu
batangMenu.add(menu);
//mendefinisikan obyek item yang telah dideklarasikan sebelumnya
item = new JMenuItem("Tentang JKonverter", cekIcon("JKonverter.png"));
//menempatkan obyek item pada obyek menu
menu.add(item);
Perhatikan baris kode
item = new JMenuItem("Tentang JKonverter", cekIcon("JKonverter.png"));
Baris tersebut berisi pendefinisian obyek item berkelas JMenuItem yang telah
dideklarasikan sebelumnya menggunakan salah satu konstruktor yang telah disediakan oleh
kelas javax.swing.JMenuItem. Konstruktor tersebut memiliki dua argumen, yakni argumen
pertama berisi string yang akan ditampilkan pada menu, argumen kedua berisi gambar
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 9/18
10. Tri Sapto Adji BCC Manokwari
(icon) yang akan tampil bersamaan dengan string tersebut.
Selanjutnya, kita harus mengatur respon apa yang akan diberikan terhadap aksi kepada
komponen tersebut (Respon apa yang akan terjadi jika obyek bernama item yang berkelas
JMenuItem diklik tersebut diklik). Aksi yang diberikan kepada obyek tersebut disebut
sebagai event. Java memperlakukan suatu event sebagai suatu obyek. Agar suatu event
dapat dikenal oleh java, maka event tersebut haruslah didaftarkan terlebih dahulu.
Pendaftaran dilakukan dengan menambahkan suatu event listener. Event listener pada java
ada bermacammacam, tergantung kepada obyek apa yang dikenai event tertentu.
Misalnya, untuk obyek berkelas JMenuitem, event listener yang dapat diterapkan adalah
ActionListener. Cara mendaftarkannya adalah menggunakan metode addActionListener
pada obyek berkelas JMenuitem tersebut dengan parameternya sebuah obyek berkelas
ActionListener. Obyek berkelas ActionListener yang kita gunakan kali ini adalah tidak
bernama, sehingga kita hanya menuliskannya sebagai new ActionListener(). (Dalam kasus
lain kita akan menggunakan obyek ActionListener yang diberi nama).
Dalam kelas ActionListener sendiri terdapat sebuah metode abstrak bernama
actionPerformed yang bertipe void (tidak memiliki nilai kembalian). Anda harus
mendefinisikan sendiri rutin aksi yang akan dilakukannya pada obyek berkelas ActionEvent.
Kemudian kita harus mengatur agar obyek bernama item berkelas JMenuItem ini nantinya
apabila diklik menggunakan mouse akan menampilkan keterangan dari program konverter
suhu kita. Caranya cukup dengan menambahkan metode addActionListener pada obyek
item ini, lalu menciptakan suatu obyek yang mengimplementasikan ActionListener yang
mengatur respon yang diberikan jika item ini diklik. Source kodenya adalah :
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
if(ae.getSource() == item) keterangan();
}
});
Method actionPerformed(ActionEvent ae) merupakan abstract method yang akan
dijalankan dengan pemicunya berupa obyek dari ActionEvent yang akan membaca kejadian
atau aksi yang dilakukan oleh pengguna. Berdasarkan ActionEvent inilah suatu
actionPerformed dikerjakan. Isi dari blok method ini adalah sebuah baris kode yang kita
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 10/18
11. Tri Sapto Adji BCC Manokwari
definisikan sendiri, yakni if(ae.getSource() == item) keterangan(); yang menyatakan
bahwa jika aksi yang diberikan adalah bersumber dari obyek bernama item (yang berkelas
JMenuItem sebagaimana telah didefinisikan sebelumnya), maka suatu method bernama
keterangan( ) akan dikerjakan. Method keterangan( ) sendiri adalah suatu metode yang
didefinisikan sendiri oleh kita, yakni untuk menampilkan suatu kotak berisi pesan atau
informasi tentang program ini. Method keterangan( ) ini dapat dilihat pada barisbaris
terakhir dari source kode program tersebut.
private void keterangan() {
JOptionPane.showMessageDialog(
null,
"<html><h1>JKonverter</h1><hr> <h2>Program untuk mengkonversi Suhu</h2>" +
"<br>Dibuat oleh Tri Sapto Adji, S.Pd."+
"<br>@Manokwari, Papua Barat Indonesia<br>Oktober 2011"+
"<br><br>JKonverter by Tri Sapto Adji, S.Pd. is a Freeware."+
"<br>It was created in order to be usefull"+
"<br>but "Without Any Guarantee" for the mistake"+
"<br>or error that'll happen by using this program." +
"<br>Use it at your own risk!",
"Tentang JKonverter",
1, cekIcon("JKonverter1.png")
);
}
Sebelum kita lanjutkan dengan komponenkomponen lainnya, coba terlebih dahulu Anda
kompilasi program ini dengan perintah :
javac KonverterSuhu.java
Jika tidak ada kesalahan maka kita dapat melanjutkan dengan pengaturan komponen
komponen lainnya. Jika ada kesalahan, coba cek apa keterangan yang muncul pada konsol
dan dimana (baris ke berapa) kesalahan(kesalahan) tersebut terjadi. Perbaiki kemudian
kompilasi ulang dengan perintah tersebut di atas. Kemudian coba jalankan program
tersebut dengan perintah :
java KonverterSuhu
Jika berhasil akan muncul sebuah antar muka yang berukuran sangat kecil sebagaimana
gambar berikut.
Gunakan (drag) mouse untuk memperbesar ukuran frame program tersebut. Program Anda tersebut
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 11/18
12. Tri Sapto Adji BCC Manokwari
berukuran sangat kecil karena Anda menyertakan kode ks.pack() dalam method main. Baris
kode ini digunakan untuk mengatur ukuran frame agar menyesuaikan dengan ukuran komponen
dalam frame tersebut. Nah, karena program Anda tersebut hanya menyertakan sebuah komponen
yakni menu yang berkelas JMenu dan belum menyertakan komponen-komponen lainnya di
dalamnya maka ukurannya menjadi seperti yang Anda lihat (selebar dan setinggi komponen menu).
Anda jangan khawatir karena nantinya setelah kita menambahkan komponen-komponen seperti
JButton, JLabel dan lainnya, maka ukuran jendela frame dengan sendirinya akan menyesuaikan
dengan komponen-komponen tersebut. Jika Anda menginginkan panjang dan lebar tertentu, Anda
dapat mengganti baris kode ks.pack(); tersebut dengan kode ks.setSize(x,y); dimana x adalah
ukuran lebar frame dalam satuan pixel dan y adalah ukuran tinggi frame dalam satuan pixel.
Jika Anda mengklik Menu Menu > Tentang Jkonverter, maka akan tampil sebuah kotak
dialog sebagai berikut :
Klik tombol OK untuk menutup kotak dialog tersebut, kemudian klik tombol exit di sudut
atas program JKonverter untuk menutup program tersebut.
Kita lanjutkan dengan menempatkan komponenkomponen lainnya. Komponenkomponen
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 12/18
13. Tri Sapto Adji BCC Manokwari
tersebut kita atur dalam tiga posisi penempatan, yakni posisi di atas, tengah dan bawah.
Untuk itu Anda harus membuat tiga buah obyek kontainer berkelas JPanel, dan mengatur
layoutnya dengan kelas BorderLayout. Kelas BorderLayout adalah sebuah kelas pada java
untuk mengatur tata letak komponen dalam suatu kontainer pada posisi atas (NORTH),
kanan (EAST), bawah (SOUTH), kiri (WEST) dan tengah (CENTER). Jadi disini Anda
meletakkan tiga buah obyek kontainer lainnya (berkelas JPanel) yang lebih kecil di dalam
kontainer induk (berkelas JFrame) yang merupakan jendela program Anda. Masingmasing
obyek kontainer berkelas JPanel tersebut nantinya akan diisi dengan komponenkomponen
yang telah dideklarasikan sebelumnya, yakni obyekobyek berkelas JComboBox,
JFormattedTextField dan JLabel.
Berikut adalah source code untuk mendeklarasikan dan mendefinisikan komponen judul
berkelas JLabel dan kontainer berkelas JPanel, kemudian menempatkan komponen judul
tersebut pada kontainer berkelas JLabel tersebut.
JLabel judul = new JLabel("<html><h1><center>KONVERTER SUHU</center></h1></html>");
JPanel panel0 = new JPanel();
panel0.add(judul);
Perhatikan pada pernyataanpernyataan yang terdapat dalam method keterangan dan
dalam pendefinisian obyek judul berikut ini :
JLabel judul = new JLabel("<html><h1><center>KONVERTER SUHU</center></h1></html>");
Terdapat penggunaan skrip html. Hal ini karena memang java dapat menggunakan skrip
tersebut untuk mengatur tampilan dari suatu teks (string). Anda boleh saja tidak
menggunakan kodekode html jika hanya ingin menampilkan teks yang biasabiasa saja.
Selanjutnya adalah penciptaan obyek berkelas JPanel bernama panel0, dan menempatkan
komponen judul tersebut ke dalamnya. Sedangkan obyekobyek lainnya kecuali obyek
hitung yang berkelas JButton ditempatkan pada obyek panel1 dengan layoutnya
BorderLayout dengan 4 baris 3 kolom, jarak antara baris 10px dan jarak antara kolom 5px.
Penempatannya mulai dari kiri ke kanan hingga sebanyak 3 kolom terisi kemudian turun ke
baris berikutnya.
Komponen terakhir adalah obyek berkelas JButton yang bernama hitung yang ditempatkan
pada obyek JPanel yakni panel2 dengan alignment tengah (center). Sampai disini
pengaturan tata letak seluruh komponen telah selesai.
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 13/18
14. Tri Sapto Adji BCC Manokwari
Perhatikan gambar berikut.
Jika Anda melihat kembali kepada source code program KonverterSuhu kita, terdapat tiga
(3) event listener lainnya yang didaftarkan pada obyek daftar1, daftar2 yang berkelas
JComboBox dan obyek button yang berkelas JButton. Sama seperti obyek item, kita juga
menggunakan metode addActionListener untuk mengatur responrespon yang disiapkan
untuk ketiga obyek tersebut.
Kita lihat bahwa obyek event yang dikenakan pada obyek daftar1 sebenarnya ditujukan
untuk mengatur tulisan apa yang akan ditampilkan pada obyek satuan1 yang berkelas
JLabel. Obyek satuan1 tersebut kita gunakan untuk menampilkan satuan suhu sesuai
dengan pilihan item yang terdapat pada obyek daftar1 yang berkelas JComboBox tersebut.
daftar1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
JComboBox combo = (JComboBox)ae.getSource();
String s = (String)combo.getSelectedItem();
String t = (s.equals("Kelvin"))?s:"<html><sup>o</sup>"+s+"</html>";
satuan1.setText(t);
teks2.setValue(null);
}
});
Dari baris kode tersebut, kita lihat bahwa jika item terpilih dari obyek combo berkelas
JComboBox adalah Kelvin, maka yang akan ditampilkan adalah sama dengan pilihan
tersebut (yakni Kelvin). Selain itu maka yang akan ditampilkan adalah teks o<nama item
terpilih>, sehingga jika yang terpilih adalah item Celcius maka yang ditampilkan adalah
teks oCelcius, jika item Fahrenheit yang terpilih maka yang akan ditampilkan adalah teks
o
Fahrenheit dan jika item Reamur yang terpilih maka yang akan ditampilkan adalah teks
o
Reamur. Jadi hanya jika item terpilih adalah Kelvin maka teks yang akan ditampilkan
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 14/18
15. Tri Sapto Adji BCC Manokwari
adalah sama dengan item pilihan tersebut (yakni Kelvin tanpa o).
Hal yang sama juga diterapkan pada obyek daftar2, obyek eventnya digunakan untuk
mengatur tampilan dari obyek satuan2 yang berkelas JLabel.
daftar2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
JComboBox combo = (JComboBox)ae.getSource();
String s = (String)combo.getSelectedItem();
String t = (s.equals("Kelvin"))?s:"<html><sup>o</sup>"+s+"</html>";
satuan2.setText(t);
teks2.setValue(null);
}
});
Terakhir adalah event listener yang diberikan kepada obyek bernama button yang berkelas
JButton. Obyek ini kita gunakan untuk melakukan perhitungan konversi suhu berdasarkan
nilai yang diisi pada kotak isian teks1 yang berkelas JFormattedTextField, dan pilihan
besaran suhu yang dipilih pada kotak pilihan (combo box) daftar1 dan daftar2 yang sudah
dibahas sebelumnya. Nilai index dari item yang dipilih pada kedua kotak pilihan tersebut
ditampung dalam variabel larik hasil bertipe integer. Karena ada dua kotak pilihan (yakni
daftar1 dan daftar2) maka variabel hasil ini juga memiliki panjang 2. Hal ini dapat kita lihat
pada pernyataan definisi :
hasil = new int[2];
Selanjutnya kita atur agar supaya komponen pertama dari variabel hasil (yakni hasil[0])
tersebut diisi dengan nilai index terpilih dari obyek daftar1 (berkelas JcomboBox),
sedangkan komponen keduanya (yakni hasil[1]) diisi dengan nilai index terpilih dari obyek
daftar2. Variabel obyek daftar1 sendiri berisi empat (4) buah item, yakni Celscius,
Fahrenheit, Kelvin dan Reamur. Penomoran index dari keempat item tersebut dimulai dari
0, sehingga nilai index yang dimiliki oleh itemitem tersebut adalah : Celcius = 0,
Fahrenheit =1, Kelvin = 2 dan Reamur = 3. Hal yang persis sama juga terjadi pada variable
obyek daftar2. Hal ini dapat diwujudkan melalui pernyataan :
hasil[0] = daftar1.getSelectedIndex();
hasil[1] = daftar2.getSelectedIndex();
Sehingga apabila user memilih item Celcius pada obyek daftar1 tersebut kemudian memilih
item Kelvin pada obyek daftar2 maka nilai dari variabel hasil[0] akan diisi dengan nilai 0
dan variable hasil[1] diisi dengan nilai 2. Kemudian saat tombol button diklik program java
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 15/18
16. Tri Sapto Adji BCC Manokwari
akan memeriksa action apa yang cocok untuk dikerjakan. Untuk itu tombol button (obyek
button yang berkelas JButton) sendiri kita daftarkan sebagai sebuah obyek ActionListener.
hitung = new JButton("Konversi");
hitung.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent ae) {
hasil = new int[2];
hasil[0] = daftar1.getSelectedIndex();
hasil[1] = daftar2.getSelectedIndex();
if(teks1.getValue()==null) return;
if(hasil[0]==hasil[1]) teks2.setValue(teks1.getValue());
if(hasil[0]!=hasil[1]) {
if(hasil[0]==0 && hasil[1]==1) teks2.setValue(celciusToFahrenheit());
if(hasil[0]==0 && hasil[1]==2) teks2.setValue(celciusToKelvin());
if(hasil[0]==0 && hasil[1]==3) teks2.setValue(celciusToReamur());
if(hasil[0]==1 && hasil[1]==0) teks2.setValue(fahrenheitToCelcius());
if(hasil[0]==1 && hasil[1]==2) teks2.setValue(fahrenheitToKelvin());
if(hasil[0]==1 && hasil[1]==3) teks2.setValue(fahrenheitToReamur());
if(hasil[0]==2 && hasil[1]==0) teks2.setValue(kelvinToCelcius());
if(hasil[0]==2 && hasil[1]==1) teks2.setValue(kelvinToFahrenheit());
if(hasil[0]==2 && hasil[1]==3) teks2.setValue(kelvinToReamur());
if(hasil[0]==3 && hasil[1]==0) teks2.setValue(reamurToCelcius());
if(hasil[0]==3 && hasil[1]==1) teks2.setValue(reamurToFahrenheit());
if(hasil[0]==3 && hasil[1]==2) teks2.setValue(reamurToKelvin());
}
}
}
});
Ternyata pernyataan yang cocok adalah pernyataan :
if(hasil[0]==0 && hasil[1]==2) teks2.setValue(celciusToKelvin());
Pernyataan tersebut menyatakan bahwa jika variabel hasil[0] bernilai 0 (item Celcius
dipilih) dan variabel hasil[1] bernilai 2 (item Kelvin dipilih) maka obyek teks2 (yang
berkelas JformattedTextField) akan diisi dengan nilai hasil perhitungan yang dikerjakan
oleh fungsi celciusToKelvin( ). Fungsi celciusToKelvin sendiri didefinisikan sebagai sebuah
fungsi dengan nilai kembalian bertipe Float yang melakukan perhitungan : K = C + 273.
Dalam program java rumus tersebut dikerjakan oleh blok pernyataan berikut :
private float celciusToKelvin() {
float celcius = Float.valueOf(teks1.getValue().toString()).floatValue();
float Kelvin = celcius + 273;
return Kelvin;
}
Perhatikan bahwa yang dihitung adalah nilai yang diambil dari variabel teks1 yang
dikonversi menjadi bilangan bertipe float melalui baris pernyataan :
float celcius = Float.valueOf(teks1.getValue().toString()).floatValue();
Kemudian dilakukan perhitungan :
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 16/18
17. Tri Sapto Adji BCC Manokwari
float Kelvin = celcius + 273;
Hasilnya dijadikan sebagai nilai kembalian dari fungsi celciusToKelvin tersebut melalui
pernyataan :
return Kelvin;
Bagaimana jika kotak isian teks1 belum diisi nilai apapun atau masih kosong? Pernyataan
berikutlah yang akan dikerjakan :
if(teks1.getValue()==null) return;
Pernyataan tersebut berarti, jika variabel teks1 masih kosong maka tidak ada aktivitas
apapun yang dilakukan. Sedangkan bila kedua daftar pilihan suhu mempunyai nilai yang
sama (misalnya Celcius dan Celcius, atau Fahrenheit dan Fahrenheit) maka baris
pernyataan berikut akan dikerjakan :
if(hasil[0]==hasil[1]) teks2.setValue(teks1.getValue());
Kita lihat dari pernyataan tersebut bahwa jika item yang terpilih pada kedua list pilihan
adalah sama, maka nilai pada teks2 akan diset sama dengan nilai pada teks1.
Pilihanpilihan lainnya (12 pilihan sesuai formula pada tabel di halaman pertama)
diterjemahkan menjadi 12 fungsi (method yang memiliki nilai kembalian) yang berbeda,
dan akan dijalankan pada saat obyek button diklik sesuai dengan kondisi dari itemitem
terpilih (nilai indeks dari variabel hasil[0] dan hasil[1]).
if(hasil[0]==0 && hasil[1]==1) teks2.setValue(celciusToFahrenheit());
if(hasil[0]==0 && hasil[1]==2) teks2.setValue(celciusToKelvin());
if(hasil[0]==0 && hasil[1]==3) teks2.setValue(celciusToReamur());
if(hasil[0]==1 && hasil[1]==0) teks2.setValue(fahrenheitToCelcius());
if(hasil[0]==1 && hasil[1]==2) teks2.setValue(fahrenheitToKelvin());
if(hasil[0]==1 && hasil[1]==3) teks2.setValue(fahrenheitToReamur());
if(hasil[0]==2 && hasil[1]==0) teks2.setValue(kelvinToCelcius());
if(hasil[0]==2 && hasil[1]==1) teks2.setValue(kelvinToFahrenheit());
if(hasil[0]==2 && hasil[1]==3) teks2.setValue(kelvinToReamur());
if(hasil[0]==3 && hasil[1]==0) teks2.setValue(reamurToCelcius());
if(hasil[0]==3 && hasil[1]==1) teks2.setValue(reamurToFahrenheit());
if(hasil[0]==3 && hasil[1]==2) teks2.setValue(reamurToKelvin());
Pada bagian akhir dari program kita, sebelum method keterangan terdapat sebuah method
yang berisi pernyataanpernyataan sebagai berikut :
private ImageIcon cekIcon(String path) {
URL imgURL = KonverterSuhu.class.getResource(path);
if(imgURL != null) {
return new ImageIcon(imgURL);
}else {
System.err.println("Maaf, icon pada " + path + " tidak ada");
return null;
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 17/18
18. Tri Sapto Adji BCC Manokwari
}
}
Metode cekIcon tersebut kita buat untuk memudahkan kita dalam memilih dan
menampilkan icon atau gambar yang ingin kita tampilkan pada program tersebut. Sehingga
saat kita perlu memilih dan ingin menampilkan sebuah gambar, kita tinggal memanggil
metode tersebut dengan argumennya adalah URL (lokasi dan nama) dari gambar tersebut.
Selamat mencoba … !
Workshop Java Bag. 2 – Membuat Aplikasi Konverter Suhu halaman 18/18