If ROM has no data inputs, how is it able to produce data outputs?
ROM has two types of input.

Data is supplied at manufacturing time. It's immutable. Early ROMs had the data 'wired in' as patterns of diodes. Now it tends to be masked in for high volume devices, though there are electrical ways (blowing fuses, charging floating gates etc) to set the data in small volume devices. 

An address is supplied at run time to tell the ROM which stored data to select and output. There's no way at run time to change the data that's stored, like there is with RAM.

If you want to call the address 'data' because changing it changes the output, then that's up to you. You can place whatever semantic meaning you like on any signal, and if it works for you, then it works for you. For instance, a not uncommon use of small ROMs is to act as a completely general logic gate, with the K-map stored as ROM data, and the address inputs the logic inputs. It makes more sense here to call the inputs 'logic inputs' when you're using the gate, though still address lines when you're creating it.

However, with wide, deep memory, the rest of the world finds self-consistency and meaning in treating the address differently from data, so you'll have difficulty communicating with everybody else.