Tutorial

Cara Mengonversi Jenis Data di Python 3

Published on December 2, 2020
Bahasa Indonesia
Cara Mengonversi Jenis Data di Python 3

Pengantar

Dalam Python, jenis data digunakan untuk mengklasifikasikan satu jenis data tertentu, menentukan nilai-nilai yang dapat Anda tetapkan pada jenisnya dan operasi yang dapat Anda lakukan padanya. Ketika melakukan pemrograman, ada saatnya kita perlu mengonversi nilai dengan jenis yang berbeda untuk memanipulasi nilai dengan cara yang berbeda. Misalnya, kita mungkin perlu menggabungkan nilai numerik dengan string, atau mewakili tempat desimal di dalam angka yang diinisialisasi sebagai nilai integer.

Tutorial ini akan memandu Anda mengenai konversi angka, string, tupel, dan daftar, serta memberikan contoh untuk membantu Anda membiasakan diri dengan kasus penggunaan yang berbeda-beda.

Mengonversi Jenis Angka

Dalam Python, ada dua jenis angka: integer dan angka pecahan atau float. Terkadang, Anda mengerjakan kode orang lain dan perlu mengonversi integer ke float atau sebaliknya, atau Anda mungkin menemukan bahwa Anda telah menggunakan integer sedangkan yang Anda perlukan adalah float. Python memiliki metode bawaan yang memungkinkan Anda untuk mengubah integer ke float dan float ke integer dengan mudah.

Mengonversi Integer ke Float

Metode Python float() akan mengonversi integer ke float. Untuk menggunakan fungsi ini, tambahkan bilangan integer di dalam tanda kurung:

float(57)

Dalam kasus ini, 57 akan dikonversi menjadi 57.0.

Anda juga dapat menggunakan ini dengan variabel. Mari kita nyatakan f sama dengan 57, lalu cetak float yang baru:

f = 57
print(float(f))
Output
57.0

Dengan menggunakan fungsi float(), kita dapat mengonversi integer ke float.

Mengonversi Float ke Integer

Python juga memiliki fungsi bawaan untuk mengonversi float menjadi integer: int().

Fungsi int() bekerja mirip seperti fungsi float(): Anda dapat menambahkan angka pecahan di dalam tanda kurung untuk mengonversinya menjadi integer:

int(390.8)

Dalam kasus ini, 390.8 akan dikonversi menjadi 390.

Anda juga dapat menggunakan ini dengan variabel. Mari kita nyatakan b sama dengan 125.0, dan c sama dengan 390.8, lalu cetak float yang baru:

b = 125.0
c = 390.8

print(int(b))
print(int(c))
Output
125 390

Ketika mengonversi float menjadi integer dengan fungsi int(), Python memotong desimal dan sisa pecahan untuk menciptakan integer. Meskipun mungkin kita ingin membulatkan 390,8 ke atas menjadi 391, Python tidak akan melakukannya melalui fungsi int().

Angka yang Dikonversi melalui Pembagian

Dalam Python 3, hasil pembagian yang relevan dikonversi dari integer ke float ketika melakukan pembagian, meskipun ini tidak diterapkan dalam Python 2. Maka dari itu, ketika Anda membagi 5 dengan 2, dalam Python 3 Anda akan mendapatkan angka pecahan sebagai jawabannya (2.5):

a = 5 / 2
print(a)
Output
2.5

Dalam Python 2, karena berhadapan dengan dua integer, Anda justru akan menerima integer sebagai jawaban: 5 / 2 = 2. Baca “Python 2 vs Python 3: Pertimbangan Praktis” untuk informasi lebih lanjut tentang perbedaan antara Python 2 dan Python 3.

Mengonversi dengan String

String adalah rangkaian dari satu karakter atau lebih (huruf, angka, simbol). String adalah bentuk umum dari data di program komputer, dan kita mungkin perlu mengonversi string ke angka atau angka ke string dengan cukup sering, terutama ketika kita mengambil data yang dihasilkan pengguna.

Mengonversi Angka ke String

Kita dapat mengonversi angka ke string menggunakan metode str(). Kita akan memasukkan angka atau variabel ke dalam tanda kurung dari metode tersebut, lalu nilai numerik itu akan dikonversi menjadi nilai string.

Pertama-tama, mari kita bahas tentang mengonversi integer. Untuk mengonversi integer 12 menjadi suatu nilai string, Anda dapat memasukkan 12 ke dalam metode str():

str(12)

Ketika menjalankan str(12) di dalam shell Python interaktif dengan perintah python di jendela terminal, Anda akan menerima keluaran berikut:

Output
'12'

Tanda kutip di antara angka 12 menandakan bahwa kini angka tersebut bukan lagi integer, melainkan nilai string.

Dengan variabel, kita dapat mulai melihat seberapa praktisnya melakukan konversi integer menjadi string. Katakanlah kita ingin melacak kemajuan pemrograman harian pengguna dan memasukkan jumlah baris kode yang mereka tulis dalam kurun waktu tertentu. Kita ingin menunjukkan umpan balik ini kepada pengguna dan kita akan mencetak nilai string serta integer di saat bersamaan:

user = "Sammy"
lines = 50

print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.")

Ketika menjalankan kode ini, kita menerima pesan kesalahan berikut:

Output
TypeError: Can't convert 'int' object to str implicitly

Kita tidak dapat menggabungkan string dan integer dalam Python, sehingga kita harus mengonversi variabel lines itu menjadi nilai string:

user = "Sammy"
lines = 50

print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.")

Sekarang, saat menjalankan kode, kita menerima keluaran berikut yang memberikan selamat kepada pengguna kita terkait kemajuan mereka:

Output
Congratulations, Sammy! You just wrote 50 lines of code.

Jika kita ingin mengonversi float menjadi string, alih-alih integer menjadi string, kita mengikuti langkah-langkah dan format yang sama. Ketika kita memasukkan float ke dalam metode str(), nilai string dari float akan dikembalikan. Kita dapat menggunakan baik nilai float itu sendiri atau suatu variabel:

print(str(421.034))

f = 5524.53
print(str(f))
Output
421.034 5524.53

Kita dapat menguji untuk memastikan bahwa prosesnya benar dengan menggabungkannya bersama suatu string:

f = 5524.53
print("Sammy has " + str(f) + " points.")
Output
Sammy has 5524.53 points.

Kita dapat merasa yakin float kita telah dikonversi dengan benar menjadi suatu string karena penggabungan telah dilakukan tanpa pesan kesalahan.

Mengonversi String ke Angka

String dapat dikonversi menjadi angka dengan metode int() dan float().

Jika string Anda tidak memiliki tempat desimal, kemungkinan besar Anda ingin mengonversinya menjadi integer dengan metode int().

Mari kita gunakan contoh pengguna Sammy yang melacak baris kode yang ditulis setiap hari. Kita mungkin ingin memanipulasi nilai-nilai tersebut dengan matematika untuk memberikan umpan balik yang lebih menarik bagi pengguna, tetapi nilai-nilai itu saat ini disimpan di dalam string:

lines_yesterday = "50"
lines_today = "108"

lines_more = lines_today - lines_yesterday

print(lines_more)
Output
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Karena dua nilai numerik disimpan dalam string, kita menerima pesan kesalahan. Operan - untuk pengurangan bukanlah operan yang valid untuk dua nilai string.

Mari kita modifikasi kodenya untuk menyertakan metode int() yang akan mengonversi string menjadi integer, dan memungkinkan kita melakukan operasi matematika dengan nilai-nilai yang awalnya adalah string.

lines_yesterday = "50"
lines_today = "108"

lines_more = int(lines_today) - int(lines_yesterday)

print(lines_more)
Output
58

Variabel lines_more secara otomatis merupakan integer, dan sama dengan nilai numerik 58 di dalam contoh ini.

Kita juga dapat mengonversi angka dalam contoh di atas menjadi nilai float dengan metode float() menggantikan metode int(). Alih-alih menerima keluaran 58, kita akan menerima keluaran 58.0, yang merupakan float.

Pengguna Sammy menghasilkan poin dalam nilai desimal

total_points = "5524.53"
new_points = "45.30"

new_total_points = total_points + new_points

print(new_total_points)
Output
5524.5345.30

Dalam kasus ini, menggunakan operan + dengan dua string adalah operasi yang valid, tetapi ini menggabungkan dua string alih-alih menambahkan dua nilai numerik bersama. Jadi, keluaran kita terlihat aneh karena hanya menempatkan dua nilai berdampingan.

Kita ingin mengonversi string ini menjadi float sebelum melakukan operasi matematika dengan metode float():

total_points = "5524.53"
new_points = "45.30"

new_total_points = float(total_points) + float(new_points)

print(new_total_points)
Output
5569.83

Karena kita telah mengonversi dua string menjadi float, kita menerima hasil yang diharapkan yang menambahkan 45.30 ke 5524.53.

Jika kita mencoba mengonversi nilai string dengan tempat desimal menjadi suatu integer, kita akan menerima pesan kesalahan:

f = "54.23"
print(int(f))
Output
ValueError: invalid literal for int() with base 10: '54.23'

Jika kita memasukkan nilai desimal dalam suatu string ke metode int(), kita akan menerima pesan kesalahan karena nilai tersebut tidak akan terkonversi menjadi integer.

Mengonversi string menjadi angka memungkinkan kita untuk memodifikasi jenis data yang digunakan secara cepat sehingga kita dapat melakukan operasi pada nilai numerik yang awalnya adalah string.

Mengonversi ke Tupel dan Daftar

Anda dapat menggunakan metode list() dan tuple() untuk mengonversi nilai yang diberikan kepada mereka menjadi jenis data daftar dan tupel secara berurutan. Dalam Python:

  • daftar adalah rangkaian berurutan yang dapat bermutasi dari elemen yang terkandung dalam tanda kurung persegi [ ].
  • tupel adalah rangkaian berurutan yang tak dapat bermutasi dari elemen yang terkandung dalam tanda kurung ( ).

Mengonversi ke Tupel

Mari kita mulai dengan mengonversi daftar menjadi tupel. Mengonversi daftar menjadi tupel dapat memungkinkan optimisasi terhadap program yang kita ciptakan, karena ini adalah jenis data yang tidak dapat bermutasi. Ketika kita menggunakan metode tuple(), metode ini akan menampilkan versi tupel dari nilai yang diberikan kepadanya.

print(tuple(['pull request', 'open source', 'repository', 'branch']))
Output
('pull request', 'open source', 'repository', 'branch')

Kita lihat bahwa tupel dicetak dalam keluaran, karena itemnya kini terkandung di dalam tanda kurung alih-alih tanda kurung persegi.

Mari kita gunakan tuple() dengan variabel yang mewakili suatu daftar:

sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp']
print(tuple(sea_creatures))
Output
('shark', 'cuttlefish', 'squid', 'mantis shrimp')

Sekali lagi, kita lihat bahwa nilai daftar berubah menjadi nilai tupel, yang diindikasikan oleh tanda kurung. Kita dapat mengonversi jenis data yang dapat melakukan iterasi ke tupel, termasuk string:

print(tuple('Sammy'))
Output
('S', 'a', 'm', 'm', 'y')

Karena kita dapat melakukan iterasi melalui string, kita dapat mengonversinya menjadi tupel dengan metode tuple(). Namun, kita akan menerima pesan kesalahan dengan jenis data yang tidak dapat melakukan iterasi seperti integer dan float:

print(tuple(5000))
Output
TypeError: 'int' object is not iterable

Meskipun memungkinkan untuk mengonversi integer menjadi string lalu mengonversinya menjadi tupel, seperti dalam tuple(str(5000)), opsi terbaiknya adalah memilih kode yang dapat dibaca dibandingkan konversi yang rumit.

Mengonversi ke Daftar

Mengonversi nilai untuk membuat daftar, khususnya tupel, dapat berguna ketika Anda perlu memiliki versi yang dapat bermutasi dari nilai itu.

Kita akan menggunakan metode list() untuk mengonversi tupel berikut menjadi suatu daftar. Karena sintaks untuk membuat daftar menggunakan tanda kurung, pastikan untuk menyertakan tanda kurung dari metode list() tersebut, dan dalam kasus ini metode print() juga:

print(list(('blue coral', 'staghorn coral', 'pillar coral')))
Output
['blue coral', 'staghorn coral', 'pillar coral']

Tanda kurung memberikan sinyal bahwa daftar telah dikembalikan dari nilai tupel asli yang diberikan melalui metode list().

Agar kode lebih mudah dibaca, kita dapat menghilangkan salah satu dari pasangan tanda kurung menggunakan variabel:

coral = ('blue coral', 'staghorn coral', 'pillar coral')
list(coral)

Jika kita mencetak list(coral), kita akan menerima keluaran yang sama seperti di atas.

Sama seperti tupel, string dapat dikonversi menjadi daftar:

print(list('shark'))
Output
['s', 'h', 'a', 'r', 'k']

Di sini, string 'shark' dikonversi menjadi daftar, yang memberikan versi yang dapat bermutasi dari nilai aslinya.

Kesimpulan

Tutorial Python ini menunjukkan cara mengonversi beberapa jenis data asli yang penting menjadi jenis data lainnya, terutama melalui metode bawaan. Mampu mengonversi jenis data dalam Python memberi Anda fleksibilitas tambahan saat menulis program Anda.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.