--Modul yang mencetak nilai secara sekaligus.
local p = {}
 
function p.print(o, value)
	if type(o) ~= "table" then return p end
	if type(value) == "nil" then return p end 
	o[#o+1]=tostring(value) -- Disimpan satu per satu sesuai dengan input
	return p --Mengembalikan (return) nilai
end

function p.printf(o, formatstring, ...)
	if type(o) ~= "table" then return p end
	--Jika type(value) == "nil" maka return p end 
	o[#o+1]=string.format(formatstring, ...) -- Disimpan satu per satu sesuai dengan input
	return p --Mengembalikan (return) nilai
end


function p.printall(o)
	return table.concat(o, "", 1, #o) -- Pada tabel o nilai yang disimpan dikumpulkan lalu melakukan pengembalian nilai (return) sekaligus
end

function p.example()
	--[[
	local t ={}
	p.print(t, "Halo!<br />")
	p.print(t, nil)
	p.print(t, "1+1=")
	p.print(t, 1+1)
	return p.printall(t)
	]]
	p:print("Halo!<br />")
	p:print(nil)
	p:print("1+1=")
	p:print(1+1)
	return p:printall()
end

return p